nge driver & VLAN support

Cejka Rudolf cejkar at
Thu Apr 10 01:23:00 PDT 2003

Mike Hogsett wrote (2003/04/09):
> 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.

It seems that you have the same problems as we had in the past with
em driver. Here is my posting without any response to Bill Paul,
hope it helps (the other possible buggy drivers are bge, nge, txp
and gx, because they all call vlan_input_tag()):

... I think that I saw some related VLAN commits by you, Luigi,
can you help, please? Or do you know anybody else?

Date: Thu, 27 Feb 2003 18:04:38 +0100
From: Cejka Rudolf <cejkar at>
To: Bill Paul <wpaul at>
Subject: Re: cvs commit: src/sys/dev/fxp if_fxp.c if_fxpreg.h if_fxpvar.h

Bill Paul wrote (2003/02/26):
>   Modified files:
>     sys/dev/fxp          if_fxp.c if_fxpreg.h if_fxpvar.h 

>   This chip has hardware VLAN support as well. I hope to enable
>   support for this eventually.

Hello, are you really interested in hardware VLAN support? If so,
please look at kern/46405 - it seems that drivers with implemented
hardware VLAN support does not work correctly if there is packet
priority != 0. It has been fixed in em driver by Prafulla Deuskar
(kern/45907 and kern/46028), but according to sources it seems that
other drivers with hardware VLAN support still does not work and it
seems that there is nobody interested to fix VLAN support in FreeBSD.
Or please can you tell me, who else from kernel developers is really
interested in VLAN support?

There is function vlan_input_tag() with parameter "t" and I think that
it is expected to be "VLAN Tag" containing ID and Priority and drivers
do it in this way (except for em driver, which masks VLAN ID from VLAN
Tag thanks to fix from Prafulla). However, we think that it should be
fixed directly in vlan_input_tag() function and this function should
mask VLAN ID from VLAN Tag inside itself - but it does not do it.

Thank you very much.

Rudolf Cejka <cejkar at>
Brno University of Technology, Faculty of Information Technology
Bozetechova 2, 612 66  Brno, Czech Republic

More information about the freebsd-questions mailing list