跳转至

功能预览


标签说明F

  • [uses] : 驱动需要使用的应用输入信息
  • [implements] : 驱动实现的功能
  • [provides] : 驱动提供的功能
  • [related] : 功能对应的API

速率

  • [provides] rte_eth_dev_info: speed_capa:RTE_ETH_LINK_SPEED_*.
  • [related] API: rte_eth_dev_info_get().

链路状态

包括:链路速率,单工/双工,链路状态(up/down)

  • [implements] eth_dev_ops: link_update.
  • [implements] rte_eth_dev_data: dev_link.
  • [related] API: rte_eth_link_get(), rte_eth_link_get_nowait().

链路状态事件

  • [uses] user config: dev_conf.intr_conf.lsc.
  • [uses] rte_eth_dev_data: dev_flags:RTE_ETH_DEV_INTR_LSC.
  • [uses] rte_eth_event_type: RTE_ETH_EVENT_INTR_LSC.
  • [implements] rte_eth_dev_data: dev_link.
  • [provides] rte_pci_driver.drv_flags: RTE_PCI_DRV_INTR_LSC.
  • [related] API: rte_eth_link_get(), rte_eth_link_get_nowait().

设备移出事件

  • [uses] user config: dev_conf.intr_conf.rmv.
  • [uses] rte_eth_dev_data: dev_flags:RTE_ETH_DEV_INTR_RMV.
  • [uses] rte_eth_event_type: RTE_ETH_EVENT_INTR_RMV.
  • [provides] rte_pci_driver.drv_flags: RTE_PCI_DRV_INTR_RMV.

队列状态事件

  • [uses] rte_eth_event_type: RTE_ETH_EVENT_QUEUE_STATE.

接收中断

  • [uses] user config: dev_conf.intr_conf.rxq.
  • [implements] eth_dev_ops: rx_queue_intr_enable, rx_queue_intr_disable.
  • [related] API: rte_eth_dev_rx_intr_enable(), rte_eth_dev_rx_intr_disable().

多线程无锁使用发送队列

如果PMD设置了RTE_ETH_TX_OFFLOAD_MT_LOCKFREE,
多个现成可以同时使用该队列发送数据并且不用加锁

  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_MT_LOCKFREE.
  • [provides] rte_eth_dev_info: tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_MT_LOCKFREE.
  • [related] API: rte_eth_tx_burst().

mbuf快速释放

当发送队列使用完mbuf后(并且该mbuf未被其他地方引用),可以快速释放

  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE.
  • [provides] rte_eth_dev_info: tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE.

按需释放发送mbuf

  • [implements] eth_dev_ops: tx_done_cleanup.
  • [related] API: rte_eth_tx_done_cleanup().

启动/停止网口队列

  • [implements] eth_dev_ops: rx_queue_start, rx_queue_stop, tx_queue_start, tx_queue_stop.
  • [related] API: rte_eth_dev_rx_queue_start(), rte_eth_dev_rx_queue_stop(), rte_eth_dev_tx_queue_start(), rte_eth_dev_tx_queue_stop().

更新MTU

  • [implements] eth_dev_ops: mtu_set.
  • [implements] rte_eth_dev_data: mtu.
  • [provides] rte_eth_dev_info: max_rx_pktlen.
  • [related] API: rte_eth_dev_set_mtu(), rte_eth_dev_get_mtu().

分散接受

接受分段的mbuf

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_SCATTER.
  • [implements] datapath: Scattered Rx function.
  • [implements] rte_eth_dev_data: scattered_rx.
  • [provides] eth_dev_ops: rxq_info_get:scattered_rx.
  • [related] eth_dev_ops: rx_pkt_burst.

2.13. Buffer Split on Rx

Scatters the packets being received on specified boundaries to segmented mbufs.

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT.
  • [uses] rte_eth_rxconf: rx_conf.rx_seg, rx_conf.rx_nseg.
  • [implements] datapath: Buffer Split functionality.
  • [provides] rte_eth_dev_info: rx_offload_capa:RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT.
  • [related] API: rte_eth_rx_queue_setup().

2.14. LRO

Supports Large Receive Offload.

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_TCP_LRO. dev_conf.rxmode.max_lro_pkt_size.
  • [implements] datapath: LRO functionality.
  • [implements] rte_eth_dev_data: lro.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_LRO, mbuf.tso_segsz.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_TCP_LRO.
  • [provides] rte_eth_dev_info: max_lro_pkt_size.

TSO

  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_TCP_TSO.
  • [uses] rte_eth_desc_lim: nb_seg_max, nb_mtu_seg_max.
  • [uses] mbuf: mbuf.ol_flags: RTE_MBUF_F_TX_TCP_SEG, RTE_MBUF_F_TX_IPV4, RTE_MBUF_F_TX_IPV6, RTE_MBUF_F_TX_IP_CKSUM.
  • [uses] mbuf: mbuf.tso_segsz, mbuf.l2_len, mbuf.l3_len, mbuf.l4_len.
  • [implements] datapath: TSO functionality.
  • [provides] rte_eth_dev_info: tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_TCP_TSO,RTE_ETH_TX_OFFLOAD_UDP_TSO.

网口混杂模式

  • [implements] eth_dev_ops: promiscuous_enable, promiscuous_disable.
  • [implements] rte_eth_dev_data: promiscuous.
  • [related] API: rte_eth_promiscuous_enable(), rte_eth_promiscuous_disable(), rte_eth_promiscuous_get().

组播功能

  • [implements] eth_dev_ops: allmulticast_enable, allmulticast_disable.
  • [implements] rte_eth_dev_data: all_multicast.
  • [related] API: rte_eth_allmulticast_enable(), rte_eth_allmulticast_disable(), rte_eth_allmulticast_get().

单播MAC过滤

  • [implements] eth_dev_ops: mac_addr_set, mac_addr_add, mac_addr_remove.
  • [implements] rte_eth_dev_data: mac_addrs.
  • [related] API: rte_eth_dev_default_mac_addr_set(), rte_eth_dev_mac_addr_add(), rte_eth_dev_mac_addr_remove(), rte_eth_macaddr_get().

多播MAC过滤

  • [implements] eth_dev_ops: set_mc_addr_list.
  • [related] API: rte_eth_dev_set_mc_addr_list().

2.20. RSS hash

  • [uses] user config: dev_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_RSS_FLAG.
  • [uses] user config: dev_conf.rx_adv_conf.rss_conf.
  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_RSS_HASH.
  • [provides] rte_eth_dev_info: flow_type_rss_offloads.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_RSS_HASH, mbuf.rss.

Inner RSS

内部报头的RSS哈希

  • [uses] rte_flow_action_rss: level.
  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_RSS_HASH.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_RSS_HASH, mbuf.rss.

更新RSS key

Supports configuration of Receive Side Scaling (RSS) hash computation. Updating Receive Side Scaling (RSS) hash key.

  • [implements] eth_dev_ops: rss_hash_update, rss_hash_conf_get.
  • [provides] rte_eth_dev_info: hash_key_size.
  • [related] API: rte_eth_dev_rss_hash_update(), rte_eth_dev_rss_hash_conf_get().

更新RSS重定向表

  • [implements] eth_dev_ops: reta_update, reta_query.
  • [provides] rte_eth_dev_info: reta_size.
  • [related] API: rte_eth_dev_rss_reta_update(), rte_eth_dev_rss_reta_query().

VMDq

Supports Virtual Machine Device Queues (VMDq).

  • [uses] user config: dev_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_VMDQ_FLAG.
  • [uses] user config: dev_conf.rx_adv_conf.vmdq_dcb_conf.
  • [uses] user config: dev_conf.rx_adv_conf.vmdq_rx_conf.
  • [uses] user config: dev_conf.tx_adv_conf.vmdq_dcb_tx_conf.
  • [uses] user config: dev_conf.tx_adv_conf.vmdq_tx_conf.

SR-IOV

  • [implements] rte_eth_dev_data: sriov.

数据中心桥接

  • [uses] user config: dev_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_DCB_FLAG.
  • [uses] user config: dev_conf.rx_adv_conf.vmdq_dcb_conf.
  • [uses] user config: dev_conf.rx_adv_conf.dcb_rx_conf.
  • [uses] user config: dev_conf.tx_adv_conf.vmdq_dcb_tx_conf.
  • [uses] user config: dev_conf.tx_adv_conf.vmdq_tx_conf.
  • [implements] eth_dev_ops: get_dcb_info.
  • [related] API: rte_eth_dev_get_dcb_info().

VLAN过滤

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_VLAN_FILTER.
  • [implements] eth_dev_ops: vlan_filter_set.
  • [related] API: rte_eth_dev_vlan_filter().

flow控制

  • [implements] eth_dev_ops: flow_ctrl_get, flow_ctrl_set, priority_flow_ctrl_set, priority_flow_ctrl_queue_info_get, priority_flow_ctrl_queue_configure
  • [related] API: rte_eth_dev_flow_ctrl_get(), rte_eth_dev_flow_ctrl_set(), rte_eth_dev_priority_flow_ctrl_set(), rte_eth_dev_priority_flow_ctrl_queue_info_get(), rte_eth_dev_priority_flow_ctrl_queue_configure().

发送速率限制

Supports Tx rate limitation for a queue.

  • [implements] eth_dev_ops: set_queue_rate_limit.
  • [related] API: rte_eth_set_queue_rate_limit().

关联加密

Supports inline crypto processing defined by rte_security library to perform crypto operations of security protocol while packet is received in NIC. NIC is not aware of protocol operations. See Security library and PMD documentation for more details.

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_SECURITY,
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_SECURITY.
  • [uses] mbuf: mbuf.l2_len.
  • [implements] rte_security_ops: session_create, session_update, session_stats_get, session_destroy, set_pkt_metadata, capabilities_get.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_SECURITY, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_SECURITY.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD, mbuf.ol_flags:RTE_MBUF_F_TX_SEC_OFFLOAD, mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED.
  • [provides] rte_security_ops, capabilities_get: action: RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO

关联协议

Supports inline protocol processing defined by rte_security library to perform protocol processing for the security protocol (e.g. IPsec, MACSEC) while the packet is received at NIC. The NIC is capable of understanding the security protocol operations. See security library and PMD documentation for more details.

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_SECURITY,
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_SECURITY.
  • [uses] mbuf: mbuf.l2_len.
  • [implements] rte_security_ops: session_create, session_update, session_stats_get, session_destroy, set_pkt_metadata, get_userdata, capabilities_get.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_SECURITY, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_SECURITY.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD, mbuf.ol_flags:RTE_MBUF_F_TX_SEC_OFFLOAD, mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED.
  • [provides] rte_security_ops, capabilities_get: action: RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL

CRC卸载

Supports CRC stripping by hardware. A PMD assumed to support CRC stripping by default. PMD should advertise if it supports keeping CRC.

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_KEEP_CRC.

VLAN标签卸载

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_VLAN_STRIP,RTE_ETH_RX_OFFLOAD_VLAN_FILTER,RTE_ETH_RX_OFFLOAD_VLAN_EXTEND.
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_VLAN_INSERT.
  • [uses] mbuf: mbuf.ol_flags:RTE_MBUF_F_TX_VLAN, mbuf.vlan_tci.
  • [implements] eth_dev_ops: vlan_offload_set.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_VLAN_STRIPPED, mbuf.ol_flags:RTE_MBUF_F_RX_VLAN mbuf.vlan_tci.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_VLAN_STRIP, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_VLAN_INSERT.
  • [related] API: rte_eth_dev_set_vlan_offload(), rte_eth_dev_get_vlan_offload().

2.34. QinQ offload

Supports QinQ (queue in queue) offload.

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_QINQ_STRIP.
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_QINQ_INSERT.
  • [uses] mbuf: mbuf.ol_flags:RTE_MBUF_F_TX_QINQ, mbuf.vlan_tci_outer.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_QINQ_STRIPPED, mbuf.ol_flags:RTE_MBUF_F_RX_QINQ, mbuf.ol_flags:RTE_MBUF_F_RX_VLAN_STRIPPED, mbuf.ol_flags:RTE_MBUF_F_RX_VLAN mbuf.vlan_tci, mbuf.vlan_tci_outer.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_QINQ_STRIP, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_QINQ_INSERT.

2.35. FEC

Supports Forward error correction. Forward error correction (FEC) is a bit error correction mode. It adds error correction information to data packets at the transmit end, and uses the error correction information to correct the bit errors generated during data packet transmission at the receive end. This improves signal quality but also brings a delay to signals. This function can be enabled or disabled as required.

  • [implements] eth_dev_ops: fec_get_capability, fec_get, fec_set.
  • [provides] rte_eth_fec_capa: speed:RTE_ETH_SPEED_NUM_*, capa:RTE_ETH_FEC_MODE_TO_CAPA().
  • [related] API: rte_eth_fec_get_capability(), rte_eth_fec_get(), rte_eth_fec_set().

IP报文重组

  • [provides] eth_dev_ops: ip_reassembly_capability_get, ip_reassembly_conf_get, ip_reassembly_conf_set.
  • [related] API: rte_eth_ip_reassembly_capability_get(), rte_eth_ip_reassembly_conf_get(), rte_eth_ip_reassembly_conf_set().

L3校验和卸载

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_IPV4_CKSUM.
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_IPV4_CKSUM.
  • [uses] mbuf: mbuf.ol_flags:RTE_MBUF_F_TX_IP_CKSUM, mbuf.ol_flags:RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IPV6.
  • [uses] mbuf: mbuf.l2_len, mbuf.l3_len.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_IP_CKSUM_UNKNOWN | RTE_MBUF_F_RX_IP_CKSUM_BAD | RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_IP_CKSUM_NONE.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_IPV4_CKSUM, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_IPV4_CKSUM.

L4校验和卸载

Supports L4 checksum offload.

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_UDP_CKSUM,RTE_ETH_RX_OFFLOAD_TCP_CKSUM,RTE_ETH_RX_OFFLOAD_SCTP_CKSUM.
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_UDP_CKSUM,RTE_ETH_TX_OFFLOAD_TCP_CKSUM,RTE_ETH_TX_OFFLOAD_SCTP_CKSUM.
  • [uses] mbuf: mbuf.ol_flags:RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IPV6, mbuf.ol_flags:RTE_MBUF_F_TX_L4_NO_CKSUM | RTE_MBUF_F_TX_TCP_CKSUM | RTE_MBUF_F_TX_SCTP_CKSUM | RTE_MBUF_F_TX_UDP_CKSUM.
  • [uses] mbuf: mbuf.l2_len, mbuf.l3_len.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_L4_CKSUM_UNKNOWN | RTE_MBUF_F_RX_L4_CKSUM_BAD | RTE_MBUF_F_RX_L4_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_NONE.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_UDP_CKSUM,RTE_ETH_RX_OFFLOAD_TCP_CKSUM,RTE_ETH_RX_OFFLOAD_SCTP_CKSUM, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_UDP_CKSUM,RTE_ETH_TX_OFFLOAD_TCP_CKSUM,RTE_ETH_TX_OFFLOAD_SCTP_CKSUM.

时间戳卸载

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_TIMESTAMP.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_TIMESTAMP.
  • [provides] mbuf: mbuf.timestamp.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa: RTE_ETH_RX_OFFLOAD_TIMESTAMP.
  • [related] eth_dev_ops: read_clock.

MACsec卸载

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_MACSEC_STRIP.
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_MACSEC_INSERT.
  • [uses] mbuf: mbuf.ol_flags:RTE_MBUF_F_TX_MACSEC.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_MACSEC_STRIP, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_MACSEC_INSERT.

内部L3校验和

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM.
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM.
  • [uses] mbuf: mbuf.ol_flags:RTE_MBUF_F_TX_IP_CKSUM, mbuf.ol_flags:RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IPV6, mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_IP_CKSUM, mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_IPV4 | RTE_MBUF_F_TX_OUTER_IPV6.
  • [uses] mbuf: mbuf.outer_l2_len, mbuf.outer_l3_len.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_OUTER_IP_CKSUM_BAD.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM.

内部L4校验和

  • [uses] rte_eth_rxconf,rte_eth_rxmode: offloads:RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM.
  • [provides] mbuf: mbuf.ol_flags:RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN | RTE_MBUF_F_RX_OUTER_L4_CKSUM_BAD | RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD | RTE_MBUF_F_RX_OUTER_L4_CKSUM_INVALID.
  • [uses] rte_eth_txconf,rte_eth_txmode: offloads:RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM.
  • [uses] mbuf: mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_IPV4 | RTE_MBUF_F_TX_OUTER_IPV6. mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_UDP_CKSUM.
  • [uses] mbuf: mbuf.outer_l2_len, mbuf.outer_l3_len.
  • [provides] rte_eth_dev_info: rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM, tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM.

共享接收队列

  • [uses] rte_eth_dev_info: dev_capa:RTE_ETH_DEV_CAPA_RXQ_SHARE.
  • [uses] rte_eth_dev_info,rte_eth_switch_info: rx_domain, domain_id.
  • [uses] rte_eth_rxconf: share_group, share_qid.
  • [provides] mbuf: mbuf.port.

解析类型

  • [implements] eth_dev_ops: dev_supported_ptypes_get,
  • [related] API: rte_eth_dev_get_supported_ptypes(), rte_eth_dev_set_ptypes(), dev_ptypes_set.
  • [provides] mbuf: mbuf.packet_type.

时间同步

支持IEEE1588/802.1AS 时间戳

  • [implements] eth_dev_ops: timesync_enable, timesync_disable timesync_read_rx_timestamp, timesync_read_tx_timestamp, timesync_adjust_time, timesync_read_time, timesync_write_time.
  • [related] API: rte_eth_timesync_enable(), rte_eth_timesync_disable(), rte_eth_timesync_read_rx_timestamp(), rte_eth_timesync_read_tx_timestamp, rte_eth_timesync_adjust_time(), rte_eth_timesync_read_time(), rte_eth_timesync_write_time().

接受描述符状态

Supports check the status of a Rx descriptor. When rx_descriptor_status is used, status can be “Available”, “Done” or “Unavailable”.

  • [implements] rte_eth_dev: rx_descriptor_status.
  • [related] API: rte_eth_rx_descriptor_status().

发送描述符状态

Supports checking the status of a Tx descriptor. Status can be “Full”, “Done” or “Unavailable.”

  • [implements] rte_eth_dev: tx_descriptor_status.
  • [related] API: rte_eth_tx_descriptor_status().

统计

  • [implements] eth_dev_ops: stats_get, stats_reset.
  • [related] API: rte_eth_stats_get, rte_eth_stats_reset().

统计扩展

  • [implements] eth_dev_ops: xstats_get, xstats_reset, xstats_get_names.
  • [implements] eth_dev_ops: xstats_get_by_id, xstats_get_names_by_id.
  • [related] API: rte_eth_xstats_get(), rte_eth_xstats_reset(), rte_eth_xstats_get_names, rte_eth_xstats_get_by_id(), rte_eth_xstats_get_names_by_id(), rte_eth_xstats_get_id_by_name().

队列统计

  • [implements] eth_dev_ops: queue_stats_mapping_set.
  • [related] API: rte_eth_dev_set_rx_queue_stats_mapping(), rte_eth_dev_set_tx_queue_stats_mapping().

获取设备固件版本信息

  • [implements] eth_dev_ops: fw_version_get.
  • [related] API: rte_eth_dev_fw_version_get().

2.52. EEPROM dump

Supports getting/setting device eeprom data.

  • [implements] eth_dev_ops: get_eeprom_length, get_eeprom, set_eeprom.
  • [related] API: rte_eth_dev_get_eeprom_length(), rte_eth_dev_get_eeprom(), rte_eth_dev_set_eeprom().

2.53. Module EEPROM dump

Supports getting information and data of plugin module eeprom.

  • [implements] eth_dev_ops: get_module_info, get_module_eeprom.
  • [related] API: rte_eth_dev_get_module_info(), rte_eth_dev_get_module_eeprom().

导出设备寄存器信息

  • [implements] eth_dev_ops: get_reg.
  • [related] API: rte_eth_dev_get_reg_info().

LED

打开或关闭设备的LED

  • [implements] eth_dev_ops: dev_led_on, dev_led_off.
  • [related] API: rte_eth_led_on(), rte_eth_led_off().

接收队列运行时设置

  • [provides] rte_eth_dev_info: dev_capa:RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP.
  • [related] API: rte_eth_dev_info_get().

发送队列运行时设置

  • [provides] rte_eth_dev_info: dev_capa:RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP.
  • [related] API: rte_eth_dev_info_get().

2.71. Burst模式信息

获取Rx/Tx报文burst模式信息

  • [implements] eth_dev_ops: rx_burst_mode_get, tx_burst_mode_get.
  • [related] API: rte_eth_rx_burst_mode_get(), rte_eth_tx_burst_mode_get().

2.72. PMD power management using monitor addresses

Supports getting a monitoring condition to use together with Ethernet PMD power management (see Power Management for more details).

  • [implements] eth_dev_ops: get_monitor_addr

其他开发选项

  • rxq_info_get
  • txq_info_get
  • vlan_tpid_set
  • vlan_strip_queue_set
  • vlan_pvid_set
  • rx_queue_count
  • uc_hash_table_set
  • uc_all_hash_table_set
  • udp_tunnel_port_add
  • udp_tunnel_port_del
  • tx_pkt_prepare