Re: TEST PLEASE: if_tun patch
From: Brooks Davis (brooks_at_one-eyed-alien.net)
Date: 09/29/03
- Previous message: Greg 'groggy' Lehey: "Re: HEADSUP: Change of makedev() semantics."
- In reply to: Poul-Henning Kamp: "TEST PLEASE: if_tun patch"
- Next in thread: Poul-Henning Kamp: "Re: TEST PLEASE: if_tun patch"
- Reply: Poul-Henning Kamp: "Re: TEST PLEASE: if_tun patch"
- Reply: Pawel Malachowski: "Re: TEST PLEASE: if_tun patch"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sun, 28 Sep 2003 22:04:42 -0700 To: Poul-Henning Kamp <phk@phk.freebsd.dk>
On Sat, Sep 27, 2003 at 11:57:19PM +0200, Poul-Henning Kamp wrote:
>
> Please test this patch:
>
> http://phk.freebsd.dk/patch/if_tun.patch
>
> There is a slight change in semantics in that the interface will disappear
> entirely when the /dev/tun%d device is closed.
>
> If no objections this will be committed in some days.
> | Properly dismantle and remove the interface and destroy the dev_t
> | at last close of the device.
I'm not convinced this is the right direction to move in. The problem
is that users are beginning to expect that pseudo-interfaces be created
with network interface cloning, but tun, tap, and vmnet aren't. I'm
concerned that this destroy on last close semantic will make it harder
to implement that. I guess if we moved to a model where we allowed both
methods to work, we could somehow add an extra reference when we cloned
interfaces via "ifconfig <if> create", but I don't know the devfs side
well enough to know if that's possible.
This doesn't constitute an objection since I've had over a year to fix
these drivers, but I'd appreciate it if you would give it some thought.
-- Brooks
P.S. Since you're moving it anyway, we make the assumption in the
network code that the ifnet struct is the first member of the softc so
you might want to fix tun while you're there. See the comment around
if_var.h:111.
-- Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4
- application/pgp-signature attachment: stored
- Previous message: Greg 'groggy' Lehey: "Re: HEADSUP: Change of makedev() semantics."
- In reply to: Poul-Henning Kamp: "TEST PLEASE: if_tun patch"
- Next in thread: Poul-Henning Kamp: "Re: TEST PLEASE: if_tun patch"
- Reply: Poul-Henning Kamp: "Re: TEST PLEASE: if_tun patch"
- Reply: Pawel Malachowski: "Re: TEST PLEASE: if_tun patch"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
- Re: Static vs. Dynamic typing
... > If you call methods with an expectation of their semantics (ie: ... >
GunFighter interface? ... I want a type which specifies exactly that handful and
no ... (comp.object) - Re: Static vs. Dynamic typing
... > If you call methods with an expectation of their semantics (ie: ... >
GunFighter interface? ... I want a type which specifies exactly that handful and
no ... (comp.programming) - Re: Interface freeloading on a superclass - is it good practice?
... > Who's talking about changing any method signatures? ... > the subject
of any interface contracts written by the same authors of the ... any future changes to
the *precise semantics* of the methods ... Because Sun don't know or care about
your interface's rigid semantic ... (comp.lang.java.programmer) - Re: Tell, Dont Ask
... The whole point was for Range to ensure its own invariant. ... Here my solution
was constrained by separate setHigh and SetLow interface methods in the original example. ...
If that is all of the semantics of Range that is relevant to the problem in hand, then I would
probably provide setValueand let Range determine whether its internal High or Low gets set based on the
invariant. ... The 'require' in Range enforces an invariant that is implicit in the semantics
of a 'range'. ... (comp.object) - Re: Classes as units of reuse
... One can see this in something as simple as a String class where different libraries will provides
somewhat different interfaces for basically the same semantics. ... This is manifested
during reuse when a client in a new reuse context wants to access the object semantics using a different
interface than the one provided by the object's class. ... However, such overhead is usually
not excessive at larger scales, such as subsystems because it is small compared to the subsystem
functionality. ... The high level view enabled us to deal with high level control in a quite elegant
fashion because at that level of abstraction we didn't care what the individual data element values
were; we just needed to manipulate the aggregate. ... (comp.object)