Checksum Calculation; Vlan Tag Strip; Figure 16: Class Of Service Example - Broadcom NetXtreme/NetLink BCM5718 Series Programmer's Manual

Table of Contents

Advertisement

BCM5718 Programmer's Guide
Rule 1: Control = 0xc400020C
Where:
Mask/Value
Where:
Rule 2: Control = 0x84028207
Where:
Mask/Value
Where:

Checksum Calculation

Whether the host software NOS supports checksum offload or not, the Ethernet controller automatically
calculates the IP, TCP, and UDP of received packets as described in RFC 791, RFC 793, and RFC 768,
respectively.
Which protocol checksum value is produced can be determined by reading the status flag field in the Receive
Return Ring. The valid flag values in the status flag field are IP_CHECKSUM and TCP_UDP_CHECKSUM.
When a valid checksum is produced, the values of the checksums are found in the corresponding receive buffer
descriptor register. These values should be 0xFFFF for a valid checksum or any other value if the checksum
was incorrectly calculated. Assert the Receive No Pseudo-header Checksum bit of the Mode Control register
(see
"Mode Control Register (offset: 0x6800)" on page
checksums.

VLAN Tag Strip

Receiving VLAN-tagged (IEEE 802.1q-compliant) packets are automatically supported by the Ethernet
controller. There is no register or setting required to receive packets that are VLAN-tagged. The VLAN tag is
automatically stripped from the IEEE 802.1q-compliant packet at reception and then placed in a receive buffer
descriptor's two byte VLAN tag field. The flag field has the BD_FLAGS_VLAN_TAG bit set when a valid VLAN
packet is received. After the packet has been serviced by the host software, these fields should be zeroed out.
In the Receive MAC Mode register (offset 0x468–0x46b), the Keep VLAN Tag Diag Mode bit (bit 10) can be set
to force the Ethernet controller to not strip the VLAN tag from the packet. This is only for diagnostic purposes.
Broadcom
®
January 29, 2016 • 5718-PG108-R

Figure 16: Class of Service Example

Enable + And with next (chain with next rule)
Mask -Value/Mask is split into two 16-bit values
Comparison Operator –Equal
Header Type – Start of Data
Class -Return Ring 2
Offset -12 bytes from start of frame
= 0xffff 8137
Mask – 0xffff
Value - IPX
Enable
Mask – Value/Mask split into two 16-bit values
Comparison Operator –Greater Than
Header Type – Start of Data
Class -Return Ring 2
Offset – 7 bytes from start of data
=0xff00 0600
Mask – 0xff00
Value – 0600
468) to not to include Pseudo-header in TCP/UDP
Checksum Calculation
Page 98

Hide quick links:

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the NetXtreme/NetLink BCM5718 Series and is the answer not in the manual?

Questions and answers

This manual is also suitable for:

Netxtreme/netlink bcm5717Netxtreme/netlink bcm5718Netxtreme/netlink bcm5719Netxtreme/netlink bcm5720

Table of Contents