nge driver & VLAN support

Mike Hogsett hogsett at csl.sri.com
Wed Apr 9 12:41:32 PDT 2003


I am having difficulty getting (802.1q) VLANs to work with the nge driver.
I have VLANs working successfully with several FreeBSD systems using the
fxp driver.

Here are the specifics :

Host:
     System    : FreeBSD 4.8-RELEASE
     Net Card  : Netgear GA621 

Switch:
     System    : Cisco Catalyst 5500 [ Hw:2.0 Fw:3.1.2 Fw1:4.2(1) Sw:4.3(1a) ]
     Module    : WS-X5403 [ Hw:1.3 Fw:4.5(2) Sw:4.3(1a) ]

Media: 1000baseSX

I can successfully bring the interface up in a non-trunk (non-vlan)
configuration[*1].  In this configuration the interface works very well. I
have transferred several gigabytes accross the link in this configuration
with no interface errors reported on either side of the link.

I am not able to get any success when I configure the port as a 802.1q
trunk on the Cisco and configure device vlan0 on the host.  nge0 shows
link, as does the Cisco, but no packets get through vlan0.

If I `tcpdump' nge0 I see vlan tagged frames, but all the vlan numbers are
wrong.  On the Cisco I manually pruned the `vlans allowed on trunk' down
to vlans 505 and 800.  Vlan 505 packets show up in the tcpdump output of
nge0 as vlan 2305 and vlan 800 packets show up in the output as vlan 256.

If anyone can offer any insight into my problem, or offer further ways to
diagnose the problem I would greatly appreciate it.

 - Michael Hogsett



[*1] Although I can get the interface working great in this mode it does
not come up correctly.  The only mode supported on this port on the Cisco
WS-X5403 is 1000base full-duplex.  If I configure this into the rc.conf
file for nge0 ("... media 1000baseSX mediaopt full-duplex ...") the Cisco
never sees the link come up.  If I omit `media' and `mediaopt' the link
comes up on the Cisco, but the host has autoselected `half-duplex' which
obviously does not work.  To work around this problem I inserted an
additional `ifconfig nge0 media 1000baseSX mediaopt full-duplex up'
immediately after `network_pass1' in /etc/rc so that the interface is
configured correctly prior to the launching of daemons (such as ntpd and
sendmail).  Although this workaround is effective, it is prone to upgrade
errors when /etc/rc is replaced.




More information about the freebsd-questions mailing list