Re: em promiscuous mode bug?

From: Pyun YongHyeon <pyunyh_at_gmail.com>
Date: Wed, 26 Jul 2006 11:22:35 +0900
On Tue, Jul 25, 2006 at 08:07:04AM +0200, Ian FREISLICH wrote:
 > Hi
 > 
 > It seems that placing an em(4) interface into promiscuous mode the
 > card stops doing hardware offload of 802.1Q tagging, in fact, it
 > stops tagging entirely if vlanhwtag is enabled on the card.
 > 
 > With vlanhwtag:
 > 15:40:48.050645 00:00:5e:00:01:02 > 01:00:5e:00:00:12, ethertype IPv4 (0x0800), length 70: (tos 0x10, ttl 255, id 44821, offset 0, flags [DF], proto: VRRP (112), length: 56) 196.30.82.61 > 224.0.0.18: VRRPv2, Advertisement, vrid 2, prio 10, authtype none, intvl 1s, length 36, addrs(7): 157.248.206.115,76.246.42.167,148.235.231.80,70.180.123.113,201.169.28.232,19.31.18.203,59.148.50.175
 > 
 > Without vlanhwtag:
 > 15:40:57.419522 00:00:5e:00:01:02 > 01:00:5e:00:00:12, ethertype 802.1Q (0x8100), length 74: vlan 1001, p 0, ethertype IPv4, (tos 0x10, ttl 255, id 44867, offset 0, flags [DF], proto: VRRP (112), length: 56) 196.30.82.61 > 224.0.0.18: VRRPv2, Advertisement, vrid 2, prio 10, authtype none, intvl 1s, length 36, addrs(7): 157.248.206.115,76.246.42.176,8.148.142.115,171.178.137.11,211.216.40.239,67.124.122.122,253.155.32.152
 > 
 > The interface is placed in promiscuous mode by the carp driver.
 > 
 > em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
 >         options=cb<RXCSUM,TXCSUM,VLAN_MTU,POLLING,VLAN_HWCSUM>
 >         ether 00:04:23:cf:50:00
 >         media: Ethernet autoselect (1000baseTX <full-duplex>)
 >         status: active
 > 
 > vlan1001: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
 >         inet 196.30.82.62 netmask 0xfffffff0 broadcast 196.30.82.63
 >         ether 00:04:23:cf:50:00
 >         media: Ethernet autoselect (1000baseTX <full-duplex>)
 >         status: active
 >         vlan: 1001 parent interface: em0
 > 
 > carp1001: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
 >         inet 196.30.82.60 netmask 0xfffffff0 
 >         carp: BACKUP vhid 2 advbase 1 advskew 0
 > 

Hardware VLAN tagging was disabled in em(4) when it operates
in promiscuous mode and em(4) will insert a VLAN tag in the
driver.
I think em(4) does very bad thing regarding VLAN when the NIC
is operating in promiscuous mode. At present em(4) can prepend
a new mbuf to an existing mbuf chain after loading DMA maps.
Since the mbuf chain used on loading DMA maps and VLAN tag
inserted mbuf chain is not the same chain, it could result in
unexpected result.

You may work around it by disabling vlanhwtag. Anyway, the
hardware VLAN feature is not used at all when the NIC is in
promiscuous mode.

 > I've also noticed that the re(4) driver on the 8169 chip miss-tags
 > frames when vlanhwtag is enabled.
 > 

-- 
Regards,
Pyun YongHyeon
Received on Wed Jul 26 2006 - 00:22:19 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:58 UTC