The 100 Gbit/s MAC supports 100 Gbit/s Ethernet. The 100 Gbit/s MAC is optimized for line-speed throughput for receive and transmit operations used in the SmartNIC.
Link state
The current state of the Ethernet link is indicated in the rte_eth_link data structure. The rte_eth_link_get_nowait function can be used to retrieve the current link status for the specified port. The function populates an rte_eth_link structure with information about the link status, including the speed, duplex mode, and whether the link is up or down.
Length handling
The Ethernet frame length, without preamble/SFD but including CRC, determines MAC handling as:
- Length < 64 bytes: The frame is discarded and counted as dropped.
- Length > 10,000 bytes: The frame is hard-sliced to 10,000 bytes. The packet length retrieved from the pkt_len field in the rte_mbuf structure is 10,000 bytes.
The maximum size of a frame that is transmitted without fragmentation can be configured using DPDK API, rte_eth_dev_set_mtu. For more information on the fragmentation feature and the MTU, see IP Fragmentation.
Error handling
A code violation (CV) error and a cyclic redundancy check (CRC) error for an Ethernet frame can be detected and handled in the SmartNIC.
These errors are counted in the SmartNIC, and the error counters are available via rte_eth_stats_get and rte_eth_xstats_get. More detailed information on statistics, see Statistics.
Frame forward format
- Received Ethernet frames are forwarded by the MAC without the preamble/SFD but with the FCS.
- The FCS is not included in the frames that are forwarded to the host.
- The recalculated FCS is added when frames are transmitted.