On 15.4.2011 12:49, Reyk Floeter wrote:
On Thu, Apr 14, 2011 at 04:37:31PM +0000, Stuart Henderson wrote:
01:20:38.556705 802.1Q vid 0 pri 0 802.1Q vid 123 pri 0 arp who-has
10.3.3.2 tell 10.3.3.1

your config is OK, something is broken there. I guess this will make
it function but it's not a correct fix.


well, it works fine on the 82598 (heavily tested and used in
production here) but seems to be broken on the 82599.  it is either a
hardware bug on the 82599 or related to the fact that it uses slighlty
different advanced descriptors.  this should be a more accurate
workaround for now (until we're able to fix it on the 82599):

#if NVLAN>  0
         if (hw->mac.type == ixgbe_mac_82598EB)
                 ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;
#endif

Index: if_ix.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_ix.c,v
retrieving revision 1.50
diff -u -p -r1.50 if_ix.c
--- if_ix.c     13 Apr 2011 00:14:18 -0000      1.50
+++ if_ix.c     14 Apr 2011 16:36:58 -0000
@@ -1453,7 +1453,7 @@ ixgbe_setup_interface(struct ix_softc *s
        ifp->if_capabilities = IFCAP_VLAN_MTU;

  #if NVLAN>  0
-       ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;
+//     ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;
  #endif

  #ifdef IX_CSUM_OFFLOAD


hello,

i have found this datasheet:

http://download.intel.com/design/network/datashts/82599_datasheet.pdf

maybe it's worth something maybe not ...



7.4.3.1 Adding 802.1q Tags on Transmits

Software might instruct the 82599 to insert an 802.1q VLAN tag on a per-packet basis. If the VLE bit in the transmit descriptor is set to 1b, then the 82599 inserts a VLAN tag into the packet that it transmits over the wire. The Tag Protocol Identifier b TPID (VLAN Ether Type) field of the 802.1q tag comes from the DMATXCTL.VT, and the Tag Control Information (TCI) of the 802.1q tag comes from the VLAN field of the legacy transmit descriptor or the VLAN Tag field of the advanced data transmit descriptor.



7.4.3.2 Stripping 802.1q Tags on Receives

Software might instruct the 82599 to strip 802.1q VLAN tags from received packets. The policy whether to strip the VLAN tag is configurable per queue. If the RXDCTL.VME bit for a given queue is set to 1b, and the incoming packet is an 802.1q VLAN packet (that is, its Ethernet Type field matched the VLNCTRL.VET), then the 82599 strips the 4-byte VLAN tag from the packet, and stores the TCI in the VLAN Tag field of the receive descriptor. The 82599 also sets the VP bit in the receive descriptor to indicate that the packet had a VLAN tag that was stripped. If the RXDCTL.VME bit is not set, the 802.1q packets can still be received if they pass the receive filter, but the VLAN tag is not stripped and the VP bit is not set.


--
/hrvoje

Reply via email to