[Xorp-hackers] Some thoughts

Hasso Tepper hasso@linux.ee
Mon, 7 Nov 2005 15:01:55 +0200


Mark Handley wrote:
> The standard Unix naming scheme sucks, and was a hack to retro-fit
> virtual interface naming into a framework that was intended only for
> physical interface naming.

Yes, I agree that it really sucks.
 
> Juniper's naming scheme is the ideal.  But they re-wrote the
> networking stack, and we only get that luxury when we run on click,
> which we don't want to mandate.  We couldn't do this and run on a
> stock Unix forwarding path.

In theory this can be done. There are virtual interface naming schemes
which fit to Junos scheme (vlans in linux and freebsd > 5.3 AFAIK etc).
So there two choices - not 1:1 xorp vif <-> kernel interface name
mapping or just not to deal with these interfaces which don't fit to
this scheme. Both are quite bad choices of course.

> So, the compromise is what we ended up with.  We have the
> physical/virtual split being explicit, which allows properties of
> physical interfaces to be dealt with as a whole, and provides an
> appropriate framework for dealing with things such as creating VLANs
> or ATM VCs on a physical interface (where we have a forwarding path
> such as click, and control over naming).  But we also have a namespace
> (VIFs) which can directly map to Unix interface names when we're
> running on regular Unix kernels.

OK. So basically this means that if someone (I'm not saying that this
"someone" will be me, but it might happen ;) will implement vlans in
linux, configuration will look like something like this?:

interfaces {
    interface eth0 {
        vif eth0 {
        }
        vif eth0.1 {
        }
    }
}

In *BSD systems this will be something like this:

interfaces {
    interface fxp0 {
        vif fxp0 {
        }
        vif vlan0 {
        }
    }
}

Several small problems/questions:

* BSD's need command to configure vlan tag, in Linux it's already there
  in vlan name. Mandate command to Linux scheme as well? Maybe it's even
  good idea to show that it's vlan? ("vlan-id <tag>" command in Junos)
* In BSD's vlans on different interfaces must not conflict, no problem
  in Linux.
* Additional command in interface node to show that vif's (except
  default) will be vlans (vlan-tagging in Junos)?


with my best wishes,

-- 
Hasso Tepper