English
Language : 

82598EB Datasheet, PDF (280/596 Pages) Intel Corporation – Intel® 82598EB 10 Gigabit Ethernet Controller Datasheet
Intel® 82598EB 10 GbE Controller - 802.1q VLAN Support
3.5.5.3 Transmitting and Receiving 802.1q Packets
Since the 802.1q tag is only four bytes, adding and stripping of tags could be done completely in
software. (In other words, for transmits, software inserts the tag into packet data before it builds the
transmit descriptor list, and for receives, software strips the 4-byte tag from the packet data before
delivering the packet to upper layer software) However, because adding and stripping of tags in
software adds over-head for the host, the 82598 has additional capabilities to add and strip tags in
hardware. See Section 3.5.5.3.1 and Section 3.5.5.3.2.
3.5.5.3.1 Adding 802.1q Tags on Transmits
Software might command the 82598 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 82598 inserts a VLAN tag into the packet that it
transmits over the wire. The TPID field of the 802.1q tag comes from the VET register, and the TCI of
the 802.1q tag comes from the VLAN field of the legacy transmit descriptor or the VLAN Tag field of the
advanced transmit descriptor. Refer to Table 3-65 for more information regarding hardware insertion of
tags for transmits.
3.5.5.3.2 Stripping 802.1q Tags on Receives
Software might instruct the 82598 to strip 802.1q VLAN tags from received packets. If the
VLNCTRL.VME bit is set to 1b, and the incoming packet is an 802.1q VLAN packet (it's Ethernet Type
field matched the VET), then the 82598 strips the 4-byte VLAN tag from the packet and stores the TCI
in the VLAN Tag field of the receive descriptor.
The 82598 also sets the VP bit in the receive descriptor to indicate that the packet had a VLAN tag that
was stripped. If the VLNCTRL.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. Refer to Table 3-79 for more
information regarding receive packet filtering.
3.5.5.4 802.1q VLAN Packet Filtering
VLAN filtering is enabled by setting the VLNCTRL.VFE bit to 1b. If enabled, hardware compares the type
field of the incoming packet to a 16-bit field in the VLAN Ether Type (VET) register. If the VLAN type
field in the incoming packet matches the VET register, the packet is then compared against the VLAN
Filter Table Array for acceptance.
The Virtual LAN ID field indexes a 4096-bit vector. If the indexed bit in the vector is one; there is a
virtual LAN match. Software might set the entire bit vector to ones if the node does not implement
802.1q filtering.
The 4096-bit vector is comprised of 128, 32-bit registers. Matching to this bit vector follows the same
algorithm as for Multicast Address filtering. The VLAN Identifier (VID) field consists of 12 bits. The
upper seven bits of this field are decoded to determine the 32-bit register in the VLAN Filter Table Array
to address and the lower five bits determine which of the 32 bits in the register to evaluate for
matching.
Two other bits in the VLNCTRL register, CFIEN and CFI, are also used in conjunction with 802.1q VLAN
filtering operations. CFIEN enables the comparison of the value of the CFI bit in the 802.1q packet to
the Receive Control register CFI bit as acceptance criteria for the packet.
Note: The VFE bit does not effect whether the VLAN tag is stripped. It only effects whether the
VLAN packet passes the receive filter.
Table 3-79 lists reception actions per control bit settings.
280