rte_pmd_ixgbe.h(3)
โจ rte_pmd_ixgbe.h โจ โ library functions manual ๐ฆ
okay bestie, welcome to the ixgbe era. this is the header for all the rte_pmd_ixgbe goodies, and it is long, so we're doing this in parts. stay with me ๐
๐ธ NAME ๐ธ
rte_pmd_ixgbe.h โ the header where all the ixgbe PMD specific functions live, fr fr.
๐ SYNOPSIS ๐
#include <rte_compat.h>
#include <rte_ethdev.h>
#include <rte_ether.h>
๐ Data Structures ๐
struct rte_pmd_ixgbe_mb_event_param
๐ Enumerations ๐
enum rte_pmd_ixgbe_mb_event_rsp { RTE_PMD_IXGBE_MB_EVENT_NOOP_ACK, RTE_PMD_IXGBE_MB_EVENT_NOOP_NACK, RTE_PMD_IXGBE_MB_EVENT_PROCEED, RTE_PMD_IXGBE_MB_EVENT_MAX }
๐ Functions ๐
int rte_pmd_ixgbe_ping_vf (uint16_t port, uint16_t vf)
int rte_pmd_ixgbe_set_vf_mac_addr (uint16_t port, uint16_t vf, struct
rte_ether_addr *mac_addr)
int rte_pmd_ixgbe_set_vf_vlan_anti_spoof (uint16_t port, uint16_t vf,
uint8_t on)
int rte_pmd_ixgbe_set_vf_mac_anti_spoof (uint16_t port, uint16_t vf,
uint8_t on)
int rte_pmd_ixgbe_set_vf_vlan_insert (uint16_t port, uint16_t vf,
uint16_t vlan_id)
int rte_pmd_ixgbe_set_tx_loopback (uint16_t port, uint8_t on)
int rte_pmd_ixgbe_set_all_queues_drop_en (uint16_t port, uint8_t on)
int rte_pmd_ixgbe_set_vf_split_drop_en (uint16_t port, uint16_t vf,
uint8_t on)
int rte_pmd_ixgbe_set_vf_vlan_stripq (uint16_t port, uint16_t vf,
uint8_t on)
int rte_pmd_ixgbe_macsec_enable (uint16_t port, uint8_t en, uint8_t rp)
int rte_pmd_ixgbe_macsec_disable (uint16_t port)
int rte_pmd_ixgbe_macsec_config_txsc (uint16_t port, uint8_t *mac)
int rte_pmd_ixgbe_macsec_config_rxsc (uint16_t port, uint8_t *mac,
uint16_t pi)
int rte_pmd_ixgbe_macsec_select_txsa (uint16_t port, uint8_t idx,
uint8_t an, uint32_t pn, uint8_t *key)
int rte_pmd_ixgbe_macsec_select_rxsa (uint16_t port, uint8_t idx,
uint8_t an, uint32_t pn, uint8_t *key)
int rte_pmd_ixgbe_set_vf_rxmode (uint16_t port, uint16_t vf, uint16_t
rx_mask, uint8_t on)
int rte_pmd_ixgbe_set_vf_rx (uint16_t port, uint16_t vf, uint8_t on)
int rte_pmd_ixgbe_set_vf_tx (uint16_t port, uint16_t vf, uint8_t on)
int rte_pmd_ixgbe_set_vf_vlan_filter (uint16_t port, uint16_t vlan,
uint64_t vf_mask, uint8_t vlan_on)
int rte_pmd_ixgbe_set_vf_rate_limit (uint16_t port, uint16_t vf,
uint32_t tx_rate, uint64_t q_msk)
int rte_pmd_ixgbe_set_tc_bw_alloc (uint16_t port, uint8_t tc_num,
uint8_t *bw_weight)
int rte_pmd_ixgbe_bypass_init (uint16_t port)
int rte_pmd_ixgbe_bypass_state_show (uint16_t port, uint32_t *state)
int rte_pmd_ixgbe_bypass_state_set (uint16_t port, uint32_t *new_state)
int rte_pmd_ixgbe_bypass_event_show (uint16_t port, uint32_t event,
uint32_t *state)
int rte_pmd_ixgbe_bypass_event_store (uint16_t port, uint32_t event,
uint32_t state)
int rte_pmd_ixgbe_bypass_wd_timeout_store (uint16_t port, uint32_t
timeout)
int rte_pmd_ixgbe_bypass_ver_show (uint16_t port, uint32_t *ver)
int rte_pmd_ixgbe_bypass_wd_timeout_show (uint16_t port, uint32_t
*wd_timeout)
int rte_pmd_ixgbe_bypass_wd_reset (uint16_t port)
int rte_pmd_ixgbe_mdio_lock (uint16_t port)
int rte_pmd_ixgbe_mdio_unlock (uint16_t port)
int rte_pmd_ixgbe_mdio_unlocked_read (uint16_t port, uint32_t reg_addr,
uint32_t dev_type, uint16_t *phy_data)
int rte_pmd_ixgbe_mdio_unlocked_write (uint16_t port, uint32_t reg_addr,
uint32_t dev_type, uint16_t phy_data)
int rte_pmd_ixgbe_upd_fctrl_sbp (uint16_t port, int enable)
__rte_experimental int rte_pmd_ixgbe_get_fdir_info (uint16_t port,
struct rte_eth_fdir_info *fdir_info)
__rte_experimental int rte_pmd_ixgbe_get_fdir_stats (uint16_t port,
struct rte_eth_fdir_stats *fdir_stats)
that's a lot of functions, and yes, we're covering every single one. no skipping. periodt ๐
๐ Detailed Description ๐
ixgbe PMD specific functions. that's the whole vibe โ these are the extras that only exist for the ixgbe driver, not the generic ethdev stuff.
Definition in file rte_pmd_ixgbe.h.
๐ฎ Enumeration Type Documentation ๐ฎ
enum rte_pmd_ixgbe_mb_event_rsp
Response sent back to ixgbe driver from user app after callback ๐ซถ
Enumerator:
RTE_PMD_IXGBE_MB_EVENT_NOOP_ACKโ skip mbox request and ACKRTE_PMD_IXGBE_MB_EVENT_NOOP_NACKโ skip mbox request and NACKRTE_PMD_IXGBE_MB_EVENT_PROCEEDโ proceed with mbox requestRTE_PMD_IXGBE_MB_EVENT_MAXโ max value of this enum
Definition at line 653 of file rte_pmd_ixgbe.h.
๐ Function Documentation ๐
int rte_pmd_ixgbe_ping_vf (uint16_t port, uint16_t vf)
Notify VF when PF link status changes. like a lil "hey bestie, link changed" tap on the shoulder โจ
Parameters:
portโ The port identifier of the Ethernet device.vfโ VF id.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if vf invalid.
int rte_pmd_ixgbe_set_vf_mac_addr (uint16_t port, uint16_t vf, struct rte_ether_addr * mac_addr)
Set the VF MAC address. giving that VF its whole identity ngl ๐
Parameters:
portโ The port identifier of the Ethernet device.vfโ VF id.mac_addrโ VF MAC address.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if vf or mac_addr is invalid.
int rte_pmd_ixgbe_set_vf_vlan_anti_spoof (uint16_t port, uint16_t vf, uint8_t on)
Enable/Disable VF VLAN anti spoofing. protecting the VLAN vibe from impostors ๐
Parameters:
portโ The port identifier of the Ethernet device.vfโ VF on which to set VLAN anti spoofing.onโ 1 - Enable VFs VLAN anti spoofing. 0 - Disable VFs VLAN anti spoofing.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_set_vf_mac_anti_spoof (uint16_t port, uint16_t vf, uint8_t on)
Enable/Disable VF MAC anti spoofing. same energy, but for MAC this time ๐ฆ
Parameters:
portโ The port identifier of the Ethernet device.vfโ VF on which to set MAC anti spoofing.onโ 1 - Enable VFs MAC anti spoofing. 0 - Disable VFs MAC anti spoofing.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_set_vf_vlan_insert (uint16_t port, uint16_t vf, uint16_t vlan_id)
Enable/Disable vf vlan insert. sticking a VLAN tag on like it's the finishing touch ๐
Parameters:
portโ The port identifier of the Ethernet device.vfโ ID specifying VF.vlan_idโ 0 - Disable VF's vlan insert. n - Enable; n is inserted as the vlan id.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_set_tx_loopback (uint16_t port, uint8_t on)
Enable/Disable tx loopback. the packet goes out and comes right back home ๐ชฉ
Parameters:
portโ The port identifier of the Ethernet device.onโ 1 - Enable tx loopback. 0 - Disable tx loopback.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_set_all_queues_drop_en (uint16_t port, uint8_t on)
set all queues drop enable bit. lowkey the "drop everything" switch for all pools ๐
Parameters:
portโ The port identifier of the Ethernet device.onโ 1 - set the queue drop enable bit for all pools. 0 - reset the queue drop enable bit for all pools.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_set_vf_split_drop_en (uint16_t port, uint16_t vf, uint8_t on)
set drop enable bit in the VF split rx control register. one VF, one bit, no drama ๐ธ
Parameters:
portโ The port identifier of the Ethernet device.vfโ ID specifying VF.onโ 1 - set the drop enable bit in the split rx control register. 0 - reset the drop enable bit in the split rx control register.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_set_vf_vlan_stripq (uint16_t port, uint16_t vf, uint8_t on)
Enable/Disable vf vlan strip for all queues in a pool. taking the VLAN tag off on RX, iconic behavior โ๏ธ
Parameters:
portโ The port identifier of the Ethernet device.vfโ ID specifying VF.onโ 1 - Enable VF's vlan strip on RX queues. 0 - Disable VF's vlan strip on RX queues.
Returns:
(0)if successful.(-ENOTSUP)if hardware doesn't support this feature.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.
notice how this one can hit you with (-ENOTSUP) too โ not every NIC has the range, bestie ๐ญ
int rte_pmd_ixgbe_macsec_enable (uint16_t port, uint8_t en, uint8_t rp)
Enable MACsec offload. crypto mode activated ๐ฅ
Parameters:
portโ The port identifier of the Ethernet device.enโ 1 - Enable encryption (encrypt and add integrity signature). 0 - Disable encryption (only add integrity signature).rpโ 1 - Enable replay protection. 0 - Disable replay protection.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-ENOTSUP)if hardware doesn't support this feature.
int rte_pmd_ixgbe_macsec_disable (uint16_t port)
Disable MACsec offload. okay we're done being mysterious ๐ง
Parameters:
portโ The port identifier of the Ethernet device.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-ENOTSUP)if hardware doesn't support this feature.
int rte_pmd_ixgbe_macsec_config_txsc (uint16_t port, uint8_t * mac)
Configure Tx SC (Secure Connection). setting up the sending side's secure lil bond ๐
Parameters:
portโ The port identifier of the Ethernet device.macโ The MAC address on the local side.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-ENOTSUP)if hardware doesn't support this feature.
int rte_pmd_ixgbe_macsec_config_rxsc (uint16_t port, uint8_t * mac, uint16_t pi)
Configure Rx SC (Secure Connection). and now the receiving side gets its secure match ๐ซถ
Parameters:
portโ The port identifier of the Ethernet device.macโ The MAC address on the remote side.piโ The PI (port identifier) on the remote side.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-ENOTSUP)if hardware doesn't support this feature.
int rte_pmd_ixgbe_macsec_select_txsa (uint16_t port, uint8_t idx, uint8_t an, uint32_t pn, uint8_t * key)
Enable Tx SA (Secure Association). loving the acronym stack, honestly โญ
Parameters:
portโ The port identifier of the Ethernet device.idxโ The SA to be enabled (0 or 1).anโ The association number on the local side.pnโ The packet number on the local side.keyโ The key on the local side.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-ENOTSUP)if hardware doesn't support this feature.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_macsec_select_rxsa (uint16_t port, uint8_t idx, uint8_t an, uint32_t pn, uint8_t * key)
Enable Rx SA (Secure Association). same as above but make it the remote side's problem ๐
Parameters:
portโ The port identifier of the Ethernet device.idxโ The SA to be enabled (0 or 1)anโ The association number on the remote side.pnโ The packet number on the remote side.keyโ The key on the remote side.
Returns:
(0)if successful.(-ENODEV)if port invalid.(-ENOTSUP)if hardware doesn't support this feature.(-EINVAL)if bad parameter.
int rte_pmd_ixgbe_set_vf_rxmode (uint16_t port, uint16_t vf, uint16_t rx_mask, uint8_t on)
Set RX L2 Filtering mode of a VF of an Ethernet device.
Parameters
portโ the port identifier of the Ethernet device, bestie. It's your entry pass ๐๏ธvfโ VF id.rx_maskโ the RX mode mask, which is one or more of accepting Untagged Packets, packets that match the PFUTA table, Broadcast and Multicast Promiscuous.RTE_ETH_VMDQ_ACCEPT_UNTAG,RTE_ETH_VMDQ_ACCEPT_HASH_UC,RTE_ETH_VMDQ_ACCEPT_BROADCASTandRTE_ETH_VMDQ_ACCEPT_MULTICASTwill be used inrx_mode.onโ1= Enable a VF RX mode.0= Disable a VF RX mode.
Returns
(0)if successful. slay โจ(-ENOTSUP)if hardware doesn't support.(-ENODEV)ifport_idinvalid.(-EINVAL)if bad parameter.
๐
rte_pmd_ixgbe_set_vf_rx
int rte_pmd_ixgbe_set_vf_rx (uint16_t port, uint16_t vf, uint8_t on)
Enable or disable a VF traffic receive of an Ethernet device. like, flip the switch on whether this VF is allowed to receive at all ๐ซถ
Parameters
portโ the port identifier of the Ethernet device.vfโ VF id.onโ1= Enable a VF traffic receive.0= Disable a VF traffic receive.
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-ENODEV)ifport_idinvalid.(-EINVAL)if bad parameter.
๐ธ rte_pmd_ixgbe_set_vf_tx
int rte_pmd_ixgbe_set_vf_tx (uint16_t port, uint16_t vf, uint8_t on)
Enable or disable a VF traffic transmit of the Ethernet device. same vibe as the RX one but for the send side ๐ค
Parameters
portโ the port identifier of the Ethernet device.vfโ VF id.onโ1= Enable a VF traffic transmit.0= Disable a VF traffic transmit.
Returns
(0)if successful.(-ENODEV)ifport_idinvalid.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ rte_pmd_ixgbe_set_vf_vlan_filter
int rte_pmd_ixgbe_set_vf_vlan_filter (uint16_t port, uint16_t vlan, uint64_t vf_mask, uint8_t vlan_on)
Enable/Disable hardware VF VLAN filtering by an Ethernet device of received VLAN packets tagged with a given VLAN Tag Identifier. yes, that's the whole sentence, and yes it's a mouthful โ basically: "hey, packets wearing this VLAN tag, do we let the VFs see them or not ๐ญ"
Parameters
portโ the port identifier of the Ethernet device.vlanโ the VLAN Tag Identifier whose filtering must be enabled or disabled.vf_maskโ bitmap listing which VFs participate in the VLAN filtering.vlan_onโ1= Enable VFs VLAN filtering.0= Disable VFs VLAN filtering.
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-ENODEV)ifport_idinvalid.(-EINVAL)if bad parameter.
๐ฅ rte_pmd_ixgbe_set_vf_rate_limit
int rte_pmd_ixgbe_set_vf_rate_limit (uint16_t port, uint16_t vf, uint32_t tx_rate, uint64_t q_msk)
Set the rate limitation for a vf on an Ethernet device. no more letting one VF hog the whole link, we're doing boundaries now ๐ง
Parameters
portโ the port identifier of the Ethernet device.vfโ VF id.tx_rateโ the tx rate allocated from the total link speed for this VF id.q_mskโ the queue mask which need to set the rate.
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support this feature.(-ENODEV)ifport_idinvalid.(-EINVAL)if bad parameter.
โญ rte_pmd_ixgbe_set_tc_bw_alloc
int rte_pmd_ixgbe_set_tc_bw_alloc (uint16_t port, uint8_t tc_num, uint8_t * bw_weight)
Set all the TCs' bandwidth weight.
The bw_weight means the percentage occupied by the TC. It can be taken as the relative min bandwidth setting. think of it as splitting a pizza ๐ where nobody's slice is allowed to be sad.
Parameters
portโ the port identifier of the Ethernet device.tc_numโ number of TCs.bw_weightโ an array of relative bandwidth weight for all the TCs. The summary of thebw_weightshould be100.
Returns
(0)if successful.(-ENODEV)if port invalid.(-EINVAL)if bad parameter.(-ENOTSUP)not supported by firmware.
๐ฆ rte_pmd_ixgbe_bypass_init
int rte_pmd_ixgbe_bypass_init (uint16_t port)
Initialize bypass logic. This function needs to be called before executing any other bypass API.
bestie this is the prerequisite. skip it and every other bypass call in this page is gonna be out here doing nothing. do not skip it ๐
Parameters
portโ the port identifier of the Ethernet device.
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ rte_pmd_ixgbe_bypass_state_show
int rte_pmd_ixgbe_bypass_state_show (uint16_t port, uint32_t * state)
Return bypass state. it's a read, not a write, don't get it twisted ๐
Parameters
portโ the port identifier of the Ethernet device.stateโ the return bypass state.(1)Normal mode(2)Bypass mode(3)Isolate mode
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ rte_pmd_ixgbe_bypass_state_set
int rte_pmd_ixgbe_bypass_state_set (uint16_t port, uint32_t * new_state)
Set bypass state โ now we're the ones choosing the mode ๐๏ธ
Parameters
portโ the port identifier of the Ethernet device.new_stateโ the current bypass state.(1)Normal mode(2)Bypass mode(3)Isolate mode
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ rte_pmd_ixgbe_bypass_event_show
int rte_pmd_ixgbe_bypass_event_show (uint16_t port, uint32_t event, uint32_t * state)
Return bypass state when given event occurs. "so like... when that happens, what mode do we end up in?" and this tells you โจ
Parameters
portโ the port identifier of the Ethernet device.eventโ the bypass event(1)Main power on (power button is pushed)(2)Auxiliary power on (power supply is being plugged)(3)Main power off (system shutdown and power supply is left plugged in)(4)Auxiliary power off (power supply is being unplugged)(5)Display or set the watchdog timer
stateโ the bypass state when given event occurred.(1)Normal mode(2)Bypass mode(3)Isolate mode
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ง rte_pmd_ixgbe_bypass_event_store
int rte_pmd_ixgbe_bypass_event_store (uint16_t port, uint32_t event, uint32_t state)
Set bypass state when given event occurs. same events as above, but now you're the one assigning the state instead of just peeking at it ๐
Parameters
portโ the port identifier of the Ethernet device.eventโ the bypass event(1)Main power on (power button is pushed)(2)Auxiliary power on (power supply is being plugged)(3)Main power off (system shutdown and power supply is left plugged in)(4)Auxiliary power off (power supply is being unplugged)(5)Display or set the watchdog timer
stateโ the assigned state when given event occurs.(1)Normal mode(2)Bypass mode(3)Isolate mode
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ rte_pmd_ixgbe_bypass_wd_timeout_store
int rte_pmd_ixgbe_bypass_wd_timeout_store (uint16_t port, uint32_t timeout)
Set bypass watchdog timeout count. tick tock โฐ
Parameters
portโ the port identifier of the Ethernet device.timeoutโ the timeout to be set.(0)0 seconds (timer is off)(1)1.5 seconds(2)2 seconds(3)3 seconds(4)4 seconds(5)8 seconds(6)16 seconds(7)32 seconds
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
โจ rte_pmd_ixgbe_bypass_ver_show
int rte_pmd_ixgbe_bypass_ver_show (uint16_t port, uint32_t * ver)
Get bypass firmware version. drop the version number bestie ๐ท๏ธ
Parameters
portโ the port identifier of the Ethernet device.verโ the firmware version
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ธ rte_pmd_ixgbe_bypass_wd_timeout_show
int rte_pmd_ixgbe_bypass_wd_timeout_show (uint16_t port, uint32_t * wd_timeout)
Return bypass watchdog timeout in seconds ๐ฐ๏ธ
Parameters
portโ the port identifier of the Ethernet device.wd_timeoutโ the return watchdog timeout."0"represents timer expired(0)0 seconds (timer is off)(1)1.5 seconds(2)2 seconds(3)3 seconds(4)4 seconds(5)8 seconds(6)16 seconds(7)32 seconds
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ rte_pmd_ixgbe_bypass_wd_reset
int rte_pmd_ixgbe_bypass_wd_reset (uint16_t port)
Reset bypass watchdog timer. fresh start, no cap ๐
Parameters
portโ the port identifier of the Ethernet device.
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-EINVAL)if bad parameter.
๐ rte_pmd_ixgbe_mdio_lock
int rte_pmd_ixgbe_mdio_lock (uint16_t port)
Acquire swfw semaphore lock for MDIO access. grab the lock before you go poking at PHY registers, we're not animals ๐ซถ
Parameters
portโ the port identifier of the Ethernet device.
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-ENODEV)if port invalid.(IXGBE_ERR_SWFW_SYNC)If sw/fw semaphore acquisition failed
๐ rte_pmd_ixgbe_mdio_unlock
int rte_pmd_ixgbe_mdio_unlock (uint16_t port)
Release swfw semaphore lock used for MDIO access. give it back, bestie, other people wanna talk to the PHY too ๐ญ
Parameters
portโ the port identifier of the Ethernet device.
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-ENODEV)if port invalid.
๐ rte_pmd_ixgbe_mdio_unlocked_read
int rte_pmd_ixgbe_mdio_unlocked_read (uint16_t port, uint32_t reg_addr, uint32_t dev_type, uint16_t * phy_data)
Read PHY register using MDIO without MDIO lock. The lock must be taken separately before calling this API.
fr fr do NOT just call this raw. take the lock yourself first, the name is literally warning you ๐
Parameters
portโ the port identifier of the Ethernet device.reg_addrโ 32 bit PHY Registerdev_typeโ used to define device base addressphy_dataโ pointer for reading PHY register data
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-ENODEV)if port invalid.(IXGBE_ERR_PHY)If PHY read command failed
๐ rte_pmd_ixgbe_mdio_unlocked_write
int rte_pmd_ixgbe_mdio_unlocked_write (uint16_t port, uint32_t reg_addr, uint32_t dev_type, uint16_t phy_data)
Write data to PHY register using without MDIO lock. The lock must be taken separately before calling this API.
same energy as above โ this one's locked out on purpose. handle the lock yourself or suffer ๐
Parameters
portโ the port identifier of the Ethernet device.reg_addrโ 32 bit PHY Registerdev_typeโ used to define device base addressphy_dataโ data to write to PHY register
Returns
(0)if successful.(-ENOTSUP)if hardware doesn't support.(-ENODEV)if port invalid.(IXGBE_ERR_PHY)If PHY read command failed
๐ rte_pmd_ixgbe_upd_fctrl_sbp
int rte_pmd_ixgbe_upd_fctrl_sbp (uint16_t port, int enable)
Parameters
portโ the port identifier of the Ethernet device.enableโ0to disable and nonzero to enable'SBP'bit in FCTRL register to receive all packets
Returns
(0)if successful.(-ENODEV)if port invalid.(-ENOTSUP)if hardware doesn't support this feature.
โญ rte_pmd_ixgbe_get_fdir_info
__rte_experimental int rte_pmd_ixgbe_get_fdir_info (uint16_t port, struct rte_eth_fdir_info * fdir_info)
Get port fdir info. yes it's tagged __rte_experimental โ that's the "handle with care, this API might still change" badge ๐โจ
Parameters
portโ the port identifier of the Ethernet device.fdir_infoโ the fdir info of the port
Returns
โฆand the return list rolls straight into the next part, we're not done yet ๐ซถ
...and that one wraps up with the returns, which are giving:
(0)if successful ๐ clean win, we love to see it(-ENODEV)if port invalid ๐ that port does not exist bestie(-ENOTSUP)if operation not supported ๐ sorry, the hardware said no
__rte_experimental int rte_pmd_ixgbe_get_fdir_stats (uint16_t port, struct rte_eth_fdir_stats * fdir_stats)
Get port fdir status ๐ธ
Yeah, the __rte_experimental is right there in the name, no notes, we simply read it and proceed.
Parameters
portโ the port identifier of the Ethernet device. it's giving "which one" energy ๐fdir_statsโ the fdir status of the port โจ (yes it hands you the stats through this pointer, that's the whole vibe)
Returns
(0)if successful ๐ซถ(-ENODEV)if port invalid ๐ซ(-ENOTSUP)if operation not supported ๐ญ
no cap, that's the whole function. three possible returns, zero drama.
Author ๐
Generated automatically by Doxygen for DPDK from the source code.
likeโฆ nobody hand-wrote this one, the robot did it. iconic honestly ๐ค๐
and that's the whole page, bestie!! ๐ this was DPDK Version 25.11.3, page rte_pmd_ixgbe.h(3), and every single detail made it in โ no cap, we kept it all ๐ง๐ go forth and get_fdir_stats responsibly, mwah ๐
๐ฆ where this page comes from
- ubuntu resolute: dpdk-doc 25.11.3-0ubuntu0.26.04.1 ยท BSD-3-Clause
- ubuntu stonking: dpdk-doc 25.11.3-1 ยท BSD-3-Clause
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms