[Xorp-users] VLAN Interfaces

Joe Coco jcoco at meccorp.mec.edu
Fri Feb 11 10:41:29 PST 2011


Hello everyone,

>Nope. It hasn't worked (with a linux kernel) since 1.6. I remember when
> I looked into the code I came away thinking it might have worked with
> freebsd kernels once upon a time...

This may very well end up in the development list, but for now.

The problem, the way I see it is, the code is set up to create VLAN's using the VLAN_PLUS_VID method,
vs the  DEV_PLUS_VID method. For example, we add vlan 300 to eth3. Our configuration looks like this:

   interfaces {
        interface eth3 {
            vif "eth3.300" {
                disable: false
                vlan {
                    vlan-id: 300
                }
                address 3.3.3.3 {
                    prefix-length: 24
                    disable: false
                }
            }
        }
    }

So I would expect to see an interface eth3.300 in /proc/net/vlan, but instead it creates a file

/proc/net/vlan/vlan300

The file looks lke this:

eth3.300  VID: 300       REORDER_HDR: 1  dev->priv_flags: 1
         total frames received            0
          total bytes received            0
      Broadcast/Multicast Rcvd            0

      total frames transmitted            0
       total bytes transmitted            0
            total headroom inc            0
           total encap on xmit            0
Device: eth3
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
EGRESSS priority Mappings:

And or vlan config (/proc/net/vlan/config) has a type:

asterisk:/proc/net/vlan# cat config
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_PLUS_VID_NO_PAD
eth3.300       | 300  | eth3

Yet, it DOES put an entry in /proc/net/dev for eth3.300 and NOT vlan300

eth3.300:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

And it DOES create an interface for eth3.300:

eth3.300  Link encap:Ethernet  HWaddr 00:30:48:BD:29:99
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

And last but not least, it spits this information to the log:

[ 2011/02/11 11:08:16.627330  ERROR xorp_fea:6610 FEA fea/data_plane/ifconfig/ifconfig_set.cc:661 push_vif_address ] Failed to configure address because of device not found:
IfConfigSetNetlinkSocket::add_addr: check_nl_req: Cannot add address '3.3.3.3' on interface 'eth3' vif 'eth3.300': AF_NETLINK NLMSG_ERROR message: No such device

Because the basic end result is, we do in fact have an eth3.300, but it did NOT put my IP address on it.

So I suspect that we have two problems.

1) It's setting the wrong vlan model/type when probing the vlan module and configuring it wrong in proc
2) I suspect when it's trying to add the IP address to eth3.300, it's trying to modify an interface vlan300 (but I have no proof)


I've only been looking at the source for the past few hours, so I don't have a good handle on how it works but If someone can point me into the right
direction to set the vlan type/model up to DEV_PLUS_VID and for NL to look at the appropriate device that would be wonderful!

-- Joe



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ICSI.Berkeley.EDU/pipermail/xorp-users/attachments/20110211/fab82f09/attachment.html 


More information about the Xorp-users mailing list