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