[Bulk] Re: [Xorp-hackers] Some thoughts

Kristian Larsson kristian@juniks.net
Tue, 8 Nov 2005 18:28:44 +0100


On Tue, Nov 08, 2005 at 10:14:56AM +0000, Mark Handley wrote:
> On 11/8/05, Kristian Larsson <kristian@juniks.net> wrote:
> > Shouldn't you enable vlan-tagging on the physical
> > interface instead of on a vif?
> >
> > interfaces {
> >   interface fxp0 {
> >     vlan-tagging: true;
> >     vif fxp0 {
> >       bla bla
> >     }
> >     vif vlan0 {
> >       vlan-tag: 20;
> >     }
> >   }
> > }
> 
> Yes, this is what Mike also suggested.
Sorry for repeating.
> 
> 
> > though I'd still rather go with
> > interfaces {
> >   interface fxp0 {
> >     vlan-tagging: true;
> >     vif 0 {
> >       description: "this is untagged";
> >     }
> >     vif 20 {
> >       description: "this is tagged with tag 20";
> >       perhaps including vlan-tag 20;
> >     }
> >   }
> > }
> >
> > I like the skip superflous stuff like "vlan" :)
> 
> The issue is that you really want vif names to be something that has
> direct meaning to the kernel or it gets really hard to integrate any
> non-XORP software (eg dhcpd, etc).
We could store the actual interface in a variable somewhere :)
> 
> 
> > I'm not sure how you intend that "vlan0" in your
> > example should be handled. Is it like
> > FreeBSD-vlan0 ie you can only have one per system,
> > if so the user would have to keep track of all the
> > vlan interfaces. not good.
> > Or is it per interface, would the following work?
> 
> On FreeBSD you can create as many vlan virtual interfaces as you need.
>  But there's only on namespace.  For example (trimmed a little to
> remove IP addresses, etc):
> 
> vulture 107 # ifconfig
> sk0: flags=8802<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         ether 00:11:d8:71:0f:d1
> dc0: flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         options=8<VLAN_MTU>
>         ether 00:a0:cc:39:95:1c
> vlan0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         ether 00:a0:cc:39:95:1c
>         vlan: 33 parent interface: dc0
> vlan1: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         ether 00:a0:cc:39:95:1c
>         vlan: 34 parent interface: dc0
> vlan2: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1496
>         ether 00:11:d8:71:0f:d1
>         vlan: 33 parent interface: sk0
> 
> This machine has two physical interfaces (sk0 and dc0), and three vlan
> vifs configured, vlan0, vlan1, vlan2.  vlan- and vlan 1 are on dc0. 
> vlan2 is on sk0.  Both vlan0 and vlan2 are using vlan tag 33.
> 
> This would then map to a XORP config of:
> 
> interfaces {
>  interface sk0 {
>    vlan-tagging: true
>    vif sk0 {
>    }
>    vif vlan0 {
>       vlan-tag: 33
>    }
>    vif vlan1 {
>       vlan-tag: 34
>    }
>  }
>  interface dc0 {
>    vlan-tagging: true
>    vif dc0 {
>    }
>    vif vlan2 {
>      vlan-tag: 33
>    }
> }
> 
> Thus the vif namespace maps directly to the kernel namespace on FreeBSD.
This would have to be done automatically. We have
boxes here with close to or perhaps even beyond
thousand VLANs spread on different interfaces,
although we're not running FreeBSD I bet there are
people out there who do. You can't keep track of
the vlan interfaces therefore I thought that the
user specifys:
interfaces {
  interface fxp0 {
    vif 0 {
    }
    vif 3 {
    }
  }
  interface fxp1 {
    vif 0 {
    }
    vif 3 {
    }
  }
}

Which would result in
 xorp> show interfaces
 fxp0/0: Flags:<NO-CARRIER,ENABLED,BROADCAST,MULTICAST> mtu 1500
        inet 1.3.3.7 subnet 1.3.3.0/24 broadcast 1.3.3.255
	vlan: untagged, interface fxp0
        physical index 6
        ether 0:80:c8:cd:20:8c
 fxp0/3: Flags:<NO-CARRIER,ENABLED,BROADCAST,MULTICAST> mtu 1500
        inet 1.3.3.7 subnet 1.3.3.0/24 broadcast 1.3.3.255
	vlan: 3, interface vlan0
        physical index 6
        ether 0:80:c8:cd:20:8c
 fxp1/0: Flags:<NO-CARRIER,ENABLED,BROADCAST,MULTICAST> mtu 1500
        inet 1.3.3.7 subnet 1.3.3.0/24 broadcast 1.3.3.255
	vlan: untagged, interface fxp1
        physical index 6
        ether 0:80:c8:cd:20:8c
 fxp1/3: Flags:<NO-CARRIER,ENABLED,BROADCAST,MULTICAST> mtu 1500
        inet 1.3.3.7 subnet 1.3.3.0/24 broadcast 1.3.3.255
	vlan: 3, interface vlan1
        physical index 6
        ether 0:80:c8:cd:20:8c

I realise this might be harder to program but if xorp is going for 
production environments I beleive there is little choice.

   Kristian

> 
>  - Mark