- Support for 1G/10G MACs
- Accelerates the system level Ethernet performance when using 1G and 10G MACs.
- Data Widths of 32 and 64 on AXI4-Stream
- The AXI4-Streams connected to the Ethernet MAC can be configured to 32-bit or 64-bit widths. Usually, a 32-bit width is used with a 1G AMD MAC and 64-bits for a 10G MAC.
- Ethernet Offload Selection
- Supports configurable, independent offload features on the transmit and receive sides. The IP can be configured to support only transmit, only receive, or both transmit and receive. This helps in resource count reduction when only a transmit or receive side offload is needed.
- Maximum MTU Size
- Supports configurable MTU size with a default value of 1500. The IP can support a maximum MTU size of 9000.
- Offloading Capabilities on the TX Side
-
- Checksum offload (CSO)
- Calculates the IPv4 checksum, as well as, TCP/UDP checksum for the required packets and appends them at their respective positions.
- Generic Segmentation Offload (GSO)
- Hardware offloading technique widely used to improve the performance by
reducing the processing time in the CPU. On the transmit side, the
IP receives the large chunks of data from the AXI MCDMA IP, segments
them into multiple MTU sized packets, and appends the header. The IP
needs control information for each packet along with the data to
perform GSO. The control information is received from the
mm2s_ctrlinterface from the MCDMA IP along with the input data. GSO is currently supported only for UDP IPv4 packets. The other packets, which are not eligible for segmentation and packets for GSO, are not enabled through the control interface are bypassed similar to checksum offload. - Zero Padding
- Output packets which are less than a 64 byte size are appended with
zeroes to match 64 bytes and sent on the
tx_axisstreaming interface. No other fields in the packet header are touched while zero padding.
- Offloading Capabilities on the RX Side
-
- Checksum offload (CSO)
- Calculates the IPv4 checksum as well as TCP/UDP checksum for the required packets. It then compares with the checksum received on the packet and validates the accuracy of the packet. If the checksum value does not match, the packet is reported as an error packet on the corresponding status interface.
- Generic Receive Offload (GRO)
- Offloading technique widely used to improve the performance by optimizing the per packet processing time. On the receive side, the IP receives small packets from Ethernet MAC. When the header matches and GRO packets are received, they are clubbed together and sent to MCDMA as a larger packet. The accumulated large packet is sent to AXI MCDMA in multiple fragments. GRO is supported for UDP IPv4 packets only. The rest of the packets are sent as non-GRO packets with TDEST 0. GRO packets are sent with the TDEST value corresponding to the GRO port.
- Hashing (3 tuple/5 tuple)
- While comparing the GRO headers, the IP compares the following fields to decide the port
of the GRO:
- Protocol
- Source port
- Destination port
- Source IP Address
- Destination IP Address
When the 3 tuple algorithm is selected, only the Destination IP address, destination port, and protocol fields are compared for port mapping.
When the 5 tuple algorithm is selected, all the five fields mentioned above are compared for port mapping. It is your responsibility to make sure different sets of header fields are configured for different ports.