From: jamal <hadi@cyberus.ca>
To: Ben Greear <greearb@candelatech.com>
Cc: Sandy Harris <sandy@storm.ca>,
linux-kernel <linux-kernel@vger.kernel.org>,
"netdev@oss.sgi.com" <netdev@oss.sgi.com>
Subject: Re: routable interfaces WAS( Re: [PATCH] hashed device lookup(DoesNOTmeet Linus' sumission policy!)
Date: Mon, 8 Jan 2001 08:05:49 -0500 (EST) [thread overview]
Message-ID: <Pine.GSO.4.30.0101080642000.18916-100000@shell.cyberus.ca> (raw)
In-Reply-To: <3A594F55.298EBCF8@candelatech.com>
On Sun, 7 Jan 2001, Ben Greear wrote:
> jamal wrote:
> > As in my response to Matti, i thing a netdevice is a generalized link
> > layer structure and should remain that way.
>
> Yes, but VLANs are a link-layer structure too, and things like tunnels
> are really link-layer too, as far as protocols using them are concerned.
>
> With tunneling and virtual interfaces, you could conceivably do something
> like:
>
> OC3 - ATM - Ethernet - VLAN - IP - IP-Sec - IP
> as well as plain old:
> Ethernet - IP
>
> Which of these are netdevices?
>
I think you are mixing up the packet munging/management part of the entity
and the data part. There is a very close relation, however the munger is
_not_ a netdevice. The entry l2 protocol demuxing selects the munger.
> (I argue that at least the Ethernet-over-ATM, VLAN, and IP-Sec entities could
> profit from being a net_device at it's core.)
>
> You argue that we should split the net_device into physical and virtual
> portions.
Iam not asking for this. It is pseudo-already-there.
What i am asking for is consistency. A virtual IP address is "virtual" and
resides on top of a link (eg ethernet) as does a VLAN. Yet a VLAN gets its
own life as a netdevice. Why? so that it can be "routable".
> Perhaps you could give an idea of the data members that would belong in the new
> structures? I argue that you lose the minute you need one in both structures :)
>
I dont have to add new data structures. The ifa structure on a netdevice
is sufficient. It has a name/label, it has an IP address, it lacks an
ifindex. counters is the other lacking one (thinking of what Gleb posted).
A vlan device could be a simple IP-alias.
I am not all bent to insist that it has to be an ifa. What matters is
consistency. I want an alias to be used by a route daemon. The easiest
brute force way is to make it a netdevice. You might hack this from the
route daemon itself as well but as Gleb was pointing out SNMP wont be
happy.
> > > This has seeming worked well for VLANs: Maybe net_device is already
> > > general enough??
> >
> > I think it is not proper to generalize netdevices for IP. I am not
> > thinking of dead protocols like IPX, more of other newer encapsulations
> > such as MPLS etc.
>
> MPLS can run over FrameRelay, Ethernet, and ATM, at the moment (right?).
>
> What if you want to run MPLS over an IP-Sec link? If you want it to
> magically work, IP-Sec could be a net_device with it's own particular
> member methods and private data that let it do the right thing.
>
Again, this is an issue of netdevice data vs its associated methods/mungers.
>
> What if you had an inverse-MUX type of device that spanned two different
> physical interfaces. Then, one can go down, but the virtual interface
> is still up. So, there is not a one-to-one coorespondence. At a higher
> level, what if your interface is some tunnel running over IP. IP in turn
> can be routed out any physical interface (and may dynamically change due
> to routing protocols.)
it's that thin line between a netdevice and the packet munging.
Today the first association is via a l2 demux point -- that split is very
clean, IMO.
An IP packet comes in, you invoke the IP handling code. a type
ETH_P_802_1Q comes in you invoke the vlan handling code. At some point
along that path you invoke the ip handling code which ends up invoking the
IPSEC handler etc. IP/GRE or IPIP tunnels get handled the same way.
NOTE that this has absolutely nothing to do with a netdevice. Your VLAN
code manages the state mapping of what vlanid maps to what skb->dev. I
would say this is where the one-to-one mapping is maintained. You dont
have to assume a device to get the mapping.
Infact each of those stages maintains some state to work. IP maintains a
route table.
it should probably be refined further to be based on a classification of
any sort needed instead of the incremental classification only.
The posting by Matti pointed to some page that was suggesting a netif_rx
per input device. I also think this is that linked association that a
netdvice is a net-munger as well as a routable interface.
Maybe the netdevice is the best abstraction for a routable interface
because it is already stamped in people's heads and also because IP rules.
Once you've stripped all headers and done what you need to do just pass it
to a dev->rx() and it will take it from there. I still see confusion.
BTW,The problem you described will face you on a VLAN spanning two physical
ports ;-> Do tell me how you solve it.
cheers,
jamal
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2001-01-08 13:07 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-08 8:12 [PATCH] hashed device lookup (New Benchmarks) Ben Greear
2001-01-06 21:33 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!) Ben Greear
2001-01-06 23:17 ` David S. Miller
2001-01-07 4:06 ` Ben Greear
2001-01-07 13:42 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission Alan Cox
2001-01-07 15:33 ` Matti Aarnio
2001-01-07 16:46 ` Alan Cox
2001-01-07 17:32 ` Matti Aarnio
2001-01-07 19:02 ` Ben Greear
2001-01-07 18:06 ` Alan Cox
2001-01-07 18:53 ` Matti Aarnio
2001-01-07 19:30 ` Ben Greear
2001-01-07 18:30 ` Alan Cox
2001-01-07 22:40 ` 5116
2001-01-08 2:19 ` David Ford
2001-01-09 20:25 ` Christopher E. Brown
2001-01-10 2:47 ` Ben Greear
2001-01-07 18:21 ` jamal
2001-01-07 19:00 ` Matti Aarnio
2001-01-07 19:10 ` jamal
2001-01-07 19:24 ` Matti Aarnio
2001-01-08 0:21 ` jamal
2001-01-07 19:37 ` Ben Greear
2001-01-07 18:53 ` jamal
2001-01-07 5:36 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!) David S. Miller
2001-01-07 3:29 ` Chris Wedgwood
2001-01-07 6:15 ` Ben Greear
2001-01-07 10:22 ` David Ford
2001-01-07 12:01 ` David S. Miller
2001-01-08 5:32 ` Andi Kleen
2001-01-08 6:12 ` Chris Wedgwood
2001-01-08 6:26 ` Andi Kleen
2001-01-08 6:57 ` David Ford
2001-01-08 13:08 ` jamal
2001-01-09 13:28 ` Blu3Viper
2001-01-08 6:13 ` Blu3Viper
2001-01-07 12:13 ` Chris Wedgwood
2001-01-07 12:19 ` David Ford
2001-01-07 16:56 ` jamal
2001-01-07 17:37 ` Gleb Natapov
2001-01-07 18:02 ` routable interfaces WAS( " jamal
2001-01-07 19:21 ` routable interfaces WAS( Re: [PATCH] hashed device lookup (DoesNOT " Ben Greear
2001-01-07 18:29 ` jamal
2001-01-07 18:51 ` Gleb Natapov
2001-01-07 19:05 ` jamal
2001-01-07 19:19 ` routable interfaces WAS( Re: [PATCH] hashed device lookup(DoesNOT " Sandy Harris
2001-01-07 20:42 ` Ben Greear
2001-01-08 0:37 ` jamal
2001-01-08 5:25 ` routable interfaces WAS( Re: [PATCH] hashed device lookup(DoesNOTmeet " Ben Greear
2001-01-08 13:05 ` jamal [this message]
2001-01-07 3:29 ` [PATCH] hashed device lookup (Does NOT meet " Andi Kleen
2001-01-07 4:00 ` jamal
2001-01-07 4:06 ` Andi Kleen
2001-01-07 5:43 ` David S. Miller
2001-01-07 11:40 ` [little bit OT] ip _IS_ _NOT_ ifconfig and route ! (was Re: [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!)) Henning P. Schmiedehausen
2001-01-07 11:50 ` David S. Miller
2001-01-07 13:47 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission Alan Cox
2001-01-07 16:12 ` jamal
2001-01-07 16:51 ` Alan Cox
2001-01-07 15:56 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!) jamal
2001-01-07 16:30 ` Gleb Natapov
2001-01-07 16:36 ` jamal
2001-01-07 19:54 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumissionpolicy!) Ben Greear
2001-01-07 6:24 ` Ben Greear
2001-01-07 5:29 ` Andi Kleen
2001-01-07 6:22 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!) Ben Greear
2001-01-07 5:27 ` Andi Kleen
2001-01-07 8:11 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!) (Benchmarks) Ben Greear
2001-01-07 7:15 ` Andi Kleen
2001-01-08 7:00 ` [PATCH] hashed device lookup (New Benchmarks) David S. Miller
2001-01-08 16:26 ` Ben Greear
2001-01-08 16:50 ` Andi Kleen
2001-01-09 16:27 ` Ben Greear
2001-01-07 13:50 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission Alan Cox
2001-01-07 16:44 ` Miquel van Smoorenburg
2001-01-07 19:09 ` Ben Greear
2001-01-07 5:40 ` [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!) David S. Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.GSO.4.30.0101080642000.18916-100000@shell.cyberus.ca \
--to=hadi@cyberus.ca \
--cc=greearb@candelatech.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@oss.sgi.com \
--cc=sandy@storm.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®