Data Sheet
Inline Functions—Ethernet Controller I210
283
IPv4 headers are accepted if they are any size greater than or equal to five (Dwords). If the IPv4
header is properly decoded, the IP checksum is checked for validity. The RXCSUM.IPOFLD bit must be
set for this filter to pass.
7.1.7.1.4 IPv6 Filter
This filter checks for valid IPpv6 headers, which are a fixed size and have no checksum. The IPv6
extension headers accepted are: hop-by-hop, destination options, and routing. The maximum size next
header accepted is 16 Dwords (64 bytes).
7.1.7.1.5 IPv6 Extension Headers
IPv4 and TCP provide header lengths, which enable hardware to easily navigate through these headers
on packet reception for calculating checksum and CRCs, etc. For receiving IPv6 packets; however,
there is no IP header length to help hardware find the packet's ULP (such as TCP or UDP) header. One
or more IPv6 extension headers might exist in a packet between the basic IPv6 header and the ULP
header. The hardware must skip over these extension headers to calculate the TCP or UDP checksum
for received packets.
The IPv6 header length without extensions is 40 bytes. The IPv6 field Next Header Type indicates what
type of header follows the IPv6 header at offset 40. It might be an upper layer protocol header such as
TCP or UDP (Next Header Type of 6 or 17, respectively), or it might indicate that an extension header
follows. The final extension header indicates with its Next Header Type field the type of ULP header for
the packet.
IPv6 extension headers have a specified order. However, destinations must be able to process these
headers in any order. Also, IPv6 (or IPv4) might be tunneled using IPv6, and thus another IPv6 (or
IPv4) header and potentially its extension headers might be found after the extension headers.
The IPv4 Next Header Type is at byte offset nine. In IPv6, the first Next Header Type is at byte offset
six.
All IPv6 extension headers have the Next Header Type in their first eight bits. Most have the length in
the second eight bits (Offset Byte[1]) as listed in Table 7-19:
Table 7-20 lists the encoding of the Next Header Type field and information on determining each
header type's length. The IPv6 extension headers are not otherwise processed by the I210 so their
details are not covered here.
Table 7-19. Typical IPv6 Extended Header Format (Traditional Representation)
0 1 2 3 4 5 6 7
1
8 9 0 1 2 3 4 5
2 3
6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Next Header Type Length