Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
rte_pmd_i40e.h(3)		      DPDK		       rte_pmd_i40e.h(3)

NAME
     rte_pmd_i40e.h

SYNOPSIS
     #include <rte_compat.h>
     #include <rte_ethdev.h>
     #include <rte_ether.h>

   Data Structures
     struct rte_pmd_i40e_mb_event_param
     struct rte_pmd_i40e_ddp_version
     struct rte_pmd_i40e_ddp_device_id
     struct rte_pmd_i40e_profile_info
     struct rte_pmd_i40e_profile_list
     struct rte_pmd_i40e_proto_info
     struct rte_pmd_i40e_ptype_info
     struct rte_pmd_i40e_queue_region_conf
     struct rte_pmd_i40e_pkt_template_action
     struct rte_pmd_i40e_pkt_template_input
     struct rte_pmd_i40e_pkt_template_conf

   Macros
     #define RTE_PMD_I40E_PTYPE_USER_DEFINE_MASK   0x80000000

   Enumerations
     enum     rte_pmd_i40e_mb_event_rsp     {	 RTE_PMD_I40E_MB_EVENT_NOOP_ACK,
	 RTE_PMD_I40E_MB_EVENT_NOOP_NACK,	  RTE_PMD_I40E_MB_EVENT_PROCEED,
	 RTE_PMD_I40E_MB_EVENT_MAX }
     enum rte_pmd_i40e_package_op {  }
     enum rte_pmd_i40e_package_info
     enum rte_pmd_i40e_queue_region_op {  }
     enum rte_pmd_i40e_pkt_template_behavior
     enum  rte_pmd_i40e_pkt_template_status  {	RTE_PMD_I40E_PKT_TEMPLATE_NO_RE-
	 PORT_STATUS, RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID, RTE_PMD_I40E_PKT_TEM-
	 PLATE_REPORT_ID_FLEX_4, RTE_PMD_I40E_PKT_TEMPLATE_REPORT_FLEX_8 }

   Functions
     int rte_pmd_i40e_flow_add_del_packet_template (uint16_t port, const  struct
	 rte_pmd_i40e_pkt_template_conf *conf, uint8_t add)
     int rte_pmd_i40e_ping_vfs (uint16_t port, uint16_t vf)
     int  rte_pmd_i40e_set_vf_mac_anti_spoof  (uint16_t  port,	uint16_t  vf_id,
	 uint8_t on)
     int rte_pmd_i40e_set_vf_vlan_anti_spoof  (uint16_t  port,	uint16_t  vf_id,
	 uint8_t on)
     int rte_pmd_i40e_set_tx_loopback (uint16_t port, uint8_t on)
     int  rte_pmd_i40e_set_vf_unicast_promisc  (uint16_t  port,  uint16_t vf_id,
	 uint8_t on)
     int rte_pmd_i40e_set_vf_multicast_promisc (uint16_t port,	uint16_t  vf_id,
	 uint8_t on)
     int  rte_pmd_i40e_set_vf_mac_addr	(uint16_t  port,  uint16_t vf_id, struct
	 rte_ether_addr *mac_addr)
     int rte_pmd_i40e_remove_vf_mac_addr (uint16_t port, uint16_t vf_id,  struct
	 rte_ether_addr *mac_addr)
     int  rte_pmd_i40e_set_vf_vlan_stripq  (uint16_t  port, uint16_t vf, uint8_t
	 on)
     int  rte_pmd_i40e_set_vf_vlan_insert  (uint16_t   port,   uint16_t   vf_id,
	 uint16_t vlan_id)
     int  rte_pmd_i40e_set_vf_broadcast  (uint16_t port, uint16_t vf_id, uint8_t
	 on)
     int rte_pmd_i40e_set_vf_vlan_tag (uint16_t port,  uint16_t  vf_id,  uint8_t
	 on)
     int   rte_pmd_i40e_set_vf_vlan_filter  (uint16_t  port,  uint16_t	vlan_id,
	 uint64_t vf_mask, uint8_t on)
     int  rte_pmd_i40e_get_vf_stats  (uint16_t	port,  uint16_t  vf_id,   struct
	 rte_eth_stats *stats)
     int rte_pmd_i40e_reset_vf_stats (uint16_t port, uint16_t vf_id)
     int rte_pmd_i40e_set_vf_max_bw (uint16_t port, uint16_t vf_id, uint32_t bw)
     int rte_pmd_i40e_set_vf_tc_bw_alloc (uint16_t port, uint16_t vf_id, uint8_t
	 tc_num, uint8_t *bw_weight)
     int  rte_pmd_i40e_set_vf_tc_max_bw  (uint16_t port, uint16_t vf_id, uint8_t
	 tc_no, uint32_t bw)
     int rte_pmd_i40e_set_tc_strict_prio (uint16_t port, uint8_t tc_map)
     int  rte_pmd_i40e_process_ddp_package  (uint16_t	port,	uint8_t   *buff,
	 uint32_t size, enum rte_pmd_i40e_package_op op)
     int  rte_pmd_i40e_get_ddp_info  (uint8_t  *pkg,  uint32_t pkg_size, uint8_t
	 *info, uint32_t size, enum rte_pmd_i40e_package_info type)
     int rte_pmd_i40e_get_ddp_list (uint16_t port, uint8_t *buff, uint32_t size)
     int    rte_pmd_i40e_ptype_mapping_update	  (uint16_t	port,	  struct
	 rte_pmd_i40e_ptype_mapping  *mapping_items, uint16_t count, uint8_t ex-
	 clusive)
     int rte_pmd_i40e_ptype_mapping_reset (uint16_t port)
     int     rte_pmd_i40e_ptype_mapping_get	(uint16_t      port,	  struct
	 rte_pmd_i40e_ptype_mapping   *mapping_items,  uint16_t  size,	uint16_t
	 *count, uint8_t valid_only)
     int rte_pmd_i40e_ptype_mapping_replace  (uint16_t	port,  uint32_t  target,
	 uint8_t mask, uint32_t pkt_type)
     int  rte_pmd_i40e_add_vf_mac_addr	(uint16_t  port,  uint16_t vf_id, struct
	 rte_ether_addr *mac_addr)
     int   rte_pmd_i40e_flow_type_mapping_update    (uint16_t	 port,	  struct
	 rte_pmd_i40e_flow_type_mapping  *mapping_items, uint16_t count, uint8_t
	 exclusive)
     int    rte_pmd_i40e_flow_type_mapping_get	  (uint16_t	port,	  struct
	 rte_pmd_i40e_flow_type_mapping *mapping_items)
     int rte_pmd_i40e_flow_type_mapping_reset (uint16_t port)
     int    rte_pmd_i40e_query_vfid_by_mac    (uint16_t   port,   const   struct
	 rte_ether_addr *vf_mac)
     int    rte_pmd_i40e_rss_queue_region_conf	  (uint16_t    port_id,     enum
	 rte_pmd_i40e_queue_region_op op_type, void *arg)
     int   rte_pmd_i40e_inset_get   (uint16_t	port,	uint8_t  pctype,  struct
	 rte_pmd_i40e_inset *inset, enum rte_pmd_i40e_inset_type inset_type)
     int  rte_pmd_i40e_inset_set  (uint16_t   port,   uint8_t	pctype,   struct
	 rte_pmd_i40e_inset *inset, enum rte_pmd_i40e_inset_type inset_type)
     static int rte_pmd_i40e_inset_field_get (uint64_t inset, uint8_t field_idx)
     static   int   rte_pmd_i40e_inset_field_set   (uint64_t   *inset,	 uint8_t
	 field_idx)
     static  int  rte_pmd_i40e_inset_field_clear   (uint64_t   *inset,	 uint8_t
	 field_idx)
     __rte_experimental  int  rte_pmd_i40e_get_fdir_info  (uint16_t port, struct
	 rte_eth_fdir_info *fdir_info)
     __rte_experimental int rte_pmd_i40e_get_fdir_stats (uint16_t  port,  struct
	 rte_eth_fdir_stats *fdir_stat)
     __rte_experimental int rte_pmd_i40e_set_gre_key_len (uint16_t port, uint8_t
	 len)
     __rte_experimental   int	rte_pmd_i40e_set_switch_dev  (uint16_t	port_id,
	 struct rte_eth_dev *switch_dev)
     __rte_experimental  int   rte_pmd_i40e_set_pf_src_prune   (uint16_t   port,
	 uint8_t on)

Detailed Description
     i40e PMD specific functions.

     EXPERIMENTAL: this API may change, or be removed, without prior notice

     Definition in file rte_pmd_i40e.h.

Macro Definition Documentation
   #define RTE_PMD_I40E_PTYPE_USER_DEFINE_MASK	 0x80000000
     ptype  mapping  table  only accept RTE_PTYPE_XXX or 'user defined' ptype. A
     ptype with MSB set will be regarded as a user defined  ptype.  Below  macro
     help to create a user defined ptype.

     Definition at line 176 of file rte_pmd_i40e.h.

Enumeration Type Documentation
   enum rte_pmd_i40e_mb_event_rsp
     Response sent back to i40e driver from user app after callback

     Enumerator

     RTE_PMD_I40E_MB_EVENT_NOOP_ACK
	    skip mbox request and ACK

     RTE_PMD_I40E_MB_EVENT_NOOP_NACK
	    skip mbox request and NACK

     RTE_PMD_I40E_MB_EVENT_PROCEED
	    proceed with mbox request

     RTE_PMD_I40E_MB_EVENT_MAX
	    max value of this enum

     Definition at line 28 of file rte_pmd_i40e.h.

   enum rte_pmd_i40e_package_op
     Option of package processing.

     Enumerator

     RTE_PMD_I40E_PKG_OP_WR_ADD
	    load package and add to info list

     RTE_PMD_I40E_PKG_OP_WR_DEL
	    load package and delete from info list

     RTE_PMD_I40E_PKG_OP_WR_ONLY
	    load package without modifying info list

     Definition at line 49 of file rte_pmd_i40e.h.

   enum rte_pmd_i40e_package_info
     Types of package information.

     Definition at line 60 of file rte_pmd_i40e.h.

   enum rte_pmd_i40e_queue_region_op
     Option types of queue region.

     Enumerator

     RTE_PMD_I40E_RSS_QUEUE_REGION_SET
	    add queue region set

     RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET
	    add PF region pctype set

     RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET
	    add queue region user priority set

     RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON
	    ALL  configuration	about  queue  region from up layer at first will
	    only keep in DPDK software stored in driver, only after  '	FLUSH_ON
	    ',	it  commit all configuration to HW. Because PMD had to set hard-
	    ware configuration at a time, so it will record all up layer command
	    at first.

     RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF

     Definition at line 81 of file rte_pmd_i40e.h.

   enum rte_pmd_i40e_pkt_template_behavior
     Behavior will be taken if raw packet template is matched.

     Definition at line 234 of file rte_pmd_i40e.h.

   enum rte_pmd_i40e_pkt_template_status
     Flow director report status It defines what will be reported if raw  packet
     template is matched.

     Enumerator

     RTE_PMD_I40E_PKT_TEMPLATE_NO_REPORT_STATUS
	    report nothing

     RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID
	    only report FD ID

     RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID_FLEX_4
	    report FD ID and 4 flex bytes

     RTE_PMD_I40E_PKT_TEMPLATE_REPORT_FLEX_8
	    report 8 flex bytes

     Definition at line 244 of file rte_pmd_i40e.h.

Function Documentation
   int	rte_pmd_i40e_flow_add_del_packet_template  (uint16_t  port, const struct
     rte_pmd_i40e_pkt_template_conf * conf, uint8_t add)
     Add or remove raw packet template filter to Flow Director.

     Parameters
	 port The port identifier of the Ethernet device.
	 conf Specifies configuration parameters of raw packet template filter.
	 add Specifies an action to be taken - add or remove raw packet template
	 filter.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if conf invalid.

	 * (-ENOTSUP) not supported by firmware.

   int rte_pmd_i40e_ping_vfs (uint16_t port, uint16_t vf)
     Notify VF when PF link status changes.

     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_i40e_set_vf_mac_anti_spoof  (uint16_t  port,   uint16_t   vf_id,
     uint8_t on)
     Enable/Disable VF MAC anti spoofing.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id 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_i40e_set_vf_vlan_anti_spoof  (uint16_t  port,	uint16_t  vf_id,
     uint8_t on)
     Enable/Disable VF VLAN anti spoofing.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id VF on which to set VLAN anti spoofing.
	 on 1 - Enable VFs VLAN anti spoofing. 0 - Disable VFs VLAN anti  spoof-
	 ing.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int rte_pmd_i40e_set_tx_loopback (uint16_t port, uint8_t on)
     Enable/Disable TX loopback on all the PF and VFs.

     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_i40e_set_vf_unicast_promisc  (uint16_t  port,	uint16_t  vf_id,
     uint8_t on)
     Enable/Disable VF unicast promiscuous mode.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id VF on which to set.
	 on 1 - Enable. 0 - Disable.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int rte_pmd_i40e_set_vf_multicast_promisc  (uint16_t  port,	uint16_t  vf_id,
     uint8_t on)
     Enable/Disable VF multicast promiscuous mode.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id VF on which to set.
	 on 1 - Enable. 0 - Disable.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int	rte_pmd_i40e_set_vf_mac_addr  (uint16_t  port,	uint16_t  vf_id,  struct
     rte_ether_addr * mac_addr)
     Set the VF MAC address.

     PF should set MAC address before VF initialized, if PF sets the MAC address
     after VF initialized, new MAC address won't be effective  until  VF  reini-
     tialize.

     This will remove all existing MAC filters.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id 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_i40e_remove_vf_mac_addr  (uint16_t  port, uint16_t vf_id, struct
     rte_ether_addr * mac_addr)
     Remove the VF MAC address.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id 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_i40e_set_vf_vlan_stripq (uint16_t port, uint16_t vf, uint8_t on)
     Enable/Disable vf vlan strip for all queues in a pool

     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.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int rte_pmd_i40e_set_vf_vlan_insert (uint16_t port, uint16_t vf_id,	uint16_t
     vlan_id)
     Enable/Disable vf vlan insert

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id 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_i40e_set_vf_broadcast (uint16_t port, uint16_t vf_id, uint8_t on)

     Enable/Disable vf broadcast mode

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id ID specifying VF.
	 on 0 - Disable broadcast. 1 - Enable broadcast.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int rte_pmd_i40e_set_vf_vlan_tag (uint16_t port, uint16_t vf_id, uint8_t on)
     Enable/Disable vf vlan tag

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id ID specifying VF.
	 on 0 - Disable VF's vlan tag. n - Enable VF's vlan tag.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int	rte_pmd_i40e_set_vf_vlan_filter  (uint16_t   port,   uint16_t	vlan_id,
     uint64_t vf_mask, uint8_t on)
     Enable/Disable VF VLAN filter

     Parameters
	 port The port identifier of the Ethernet device.
	 vlan_id ID specifying VLAN
	 vf_mask Mask to filter VF's
	 on 0 - Disable VF's VLAN filter. 1 - Enable VF's VLAN filter.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-ENOTSUP) not supported by firmware.

   int	 rte_pmd_i40e_get_vf_stats   (uint16_t	 port,	uint16_t  vf_id,  struct
     rte_eth_stats * stats)
     Get VF's statistics

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id VF on which to get.
	 stats A pointer to a structure of type rte_eth_stats to be filled  with
	 the values of device counters for the following set of statistics:

	 * ipackets with the total of successfully received packets.

	 * opackets with the total of successfully transmitted packets.

	 * ibytes with the total of successfully received bytes.

	 * obytes with the total of successfully transmitted bytes.

	 * ierrors with the total of erroneous received packets.

	 * oerrors with the total of failed transmitted packets.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int rte_pmd_i40e_reset_vf_stats (uint16_t port, uint16_t vf_id)
     Clear VF's statistics

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id VF on which to get.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int rte_pmd_i40e_set_vf_max_bw (uint16_t port, uint16_t vf_id, uint32_t bw)
     Set VF's max bandwidth.

     Per  VF  bandwidth limitation and per TC bandwidth limitation cannot be en-
     abled in parallel. If per TC bandwidth is enabled, this function will  dis-
     able it.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id ID specifying VF.
	 bw  Bandwidth for this VF. The value should be an absolute bandwidth in
	 Mbps. The bandwidth is a L2 bandwidth counting the  bytes  of	ethernet
	 packets. Not count the bytes added by physical layer.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-ENOTSUP) not supported by firmware.

   int	rte_pmd_i40e_set_vf_tc_bw_alloc  (uint16_t port, uint16_t vf_id, uint8_t
     tc_num, uint8_t * bw_weight)
     Set all the TCs' bandwidth weight on a specific VF.

     The bw_weight means the percentage occupied by the TC. It can be  taken  as
     the relative min bandwidth setting.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id ID specifying VF.
	 tc_num Number of TCs.
	 bw_weight  An	array  of relative bandwidth weight for all the TCs. The
	 summary of the bw_weight should be 100.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-ENOTSUP) not supported by firmware.

   int rte_pmd_i40e_set_vf_tc_max_bw (uint16_t	port,  uint16_t  vf_id,  uint8_t
     tc_no, uint32_t bw)
     Set a specific TC's max bandwidth on a specific VF.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id ID specifying VF.
	 tc_no Number specifying TC.
	 bw Max bandwidth for this TC. The value should be an absolute bandwidth
	 in Mbps. The bandwidth is a L2 bandwidth counting the bytes of ethernet
	 packets. Not count the bytes added by physical layer.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-ENOTSUP) not supported by firmware.

   int rte_pmd_i40e_set_tc_strict_prio (uint16_t port, uint8_t tc_map)
     Set some TCs to strict priority mode on a physical port.

     Parameters
	 port The port identifier of the Ethernet device.
	 tc_map A bit map for the TCs.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-ENOTSUP) not supported by firmware.

   int rte_pmd_i40e_process_ddp_package (uint16_t port, uint8_t * buff, uint32_t
     size, enum rte_pmd_i40e_package_op op)
     Load/Unload a ddp package

     Parameters
	 port The port identifier of the Ethernet device.
	 buff buffer of package.
	 size size of buffer.
	 op Operation of package processing

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-EEXIST) if profile exists.

	 * (-EACCES) if profile does not exist.

	 * (-ENOTSUP) if operation not supported.

   int	rte_pmd_i40e_get_ddp_info  (uint8_t  * pkg, uint32_t pkg_size, uint8_t *
     info, uint32_t size, enum rte_pmd_i40e_package_info type)
     rte_pmd_i40e_get_ddp_info - Get profile's info

     Parameters
	 pkg buffer of package.
	 pkg_size package buffer size
	 info buffer for response
	 size response buffer size
	 type type of information requested

     Returns

	 * (0) if successful.

	 * (-ENOTSUP) if information type not supported by the profile.

	 * (-EINVAL) if bad parameter.

   int rte_pmd_i40e_get_ddp_list (uint16_t port, uint8_t * buff, uint32_t size)
     rte_pmd_i40e_get_ddp_list - Get loaded profile list

     Parameters
	 port port id
	 buff buffer for response
	 size buffer size

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

   int	   rte_pmd_i40e_ptype_mapping_update	 (uint16_t     port,	  struct
     rte_pmd_i40e_ptype_mapping  * mapping_items, uint16_t count, uint8_t exclu-
     sive)
     Update hardware defined ptype to software defined packet type  mapping  ta-
     ble.

     Parameters
	 port pointer to port identifier of the device.
	 mapping_items the base address of the mapping items array.
	 count number of mapping items.
	 exclusive the flag indicate different ptype mapping update method. -(0)
	 only  overwrite  referred  PTYPE mapping, keep other PTYPEs mapping un-
	 changed. -(!0) overwrite referred PTYPE mapping, set other PTYPEs  maps
	 to PTYPE_UNKNOWN.

   int rte_pmd_i40e_ptype_mapping_reset (uint16_t port)
     Reset hardware defined ptype to software defined ptype mapping table to de-
     fault.

     Parameters
	 port pointer to port identifier of the device

   int	    rte_pmd_i40e_ptype_mapping_get	(uint16_t      port,	  struct
     rte_pmd_i40e_ptype_mapping  *  mapping_items,  uint16_t  size,  uint16_t  *
     count, uint8_t valid_only)
     Get hardware defined ptype to software defined ptype mapping items.

     Parameters
	 port pointer to port identifier of the device.
	 mapping_items the base address of the array to store returned items.
	 size the size of the input array.
	 count the place to store the number of returned items.
	 valid_only  -(0)  return  full mapping table. -(!0) only return mapping
	 items which packet_type != RTE_PTYPE_UNKNOWN.

   int	rte_pmd_i40e_ptype_mapping_replace  (uint16_t  port,  uint32_t	 target,
     uint8_t mask, uint32_t pkt_type)
     Replace a specific or a group of software defined ptypes with a new one

     Parameters
	 port pointer to port identifier of the device
	 target the packet type to be replaced
	 mask  -(0)  target  represent	a specific software defined ptype. -(!0)
	 target is a mask to represent a group of software defined ptypes.
	 pkt_type the new packet type to overwrite

   int	rte_pmd_i40e_add_vf_mac_addr  (uint16_t  port,	uint16_t  vf_id,  struct
     rte_ether_addr * mac_addr)
     Add a VF MAC address.

     Add  more	MAC  address for VF. The existing MAC addresses are still effec-
     tive.

     Parameters
	 port The port identifier of the Ethernet device.
	 vf_id 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_i40e_flow_type_mapping_update    (uint16_t	port,	  struct
     rte_pmd_i40e_flow_type_mapping * mapping_items, uint16_t count, uint8_t ex-
     clusive)
     Update hardware defined pctype to software defined flow type mapping table.

     Parameters
	 port pointer to port identifier of the device.
	 mapping_items the base address of the mapping items array.
	 count number of mapping items.
	 exclusive  the  flag  indicate  different pctype mapping update method.
	 -(0) only overwrite referred PCTYPE mapping, keep other PCTYPEs mapping
	 unchanged. -(!0) overwrite referred PCTYPE mapping, set  other  PCTYPEs
	 maps to PCTYPE_INVALID.

   int	   rte_pmd_i40e_flow_type_mapping_get	  (uint16_t	port,	  struct
     rte_pmd_i40e_flow_type_mapping * mapping_items)
     Get software defined flow type to hardware defined pctype mapping items.

     Parameters
	 port pointer to port identifier of the device.
	 mapping_items the base address of the array to  store	returned  items.
	 array	 should   be   allocated   by	caller	 with  minimum	size  of
	 RTE_PMD_I40E_FLOW_TYPE_MAX items

   int rte_pmd_i40e_flow_type_mapping_reset (uint16_t port)
     Reset hardware defined pctype to software defined flow type  mapping  table
     to default.

     Parameters
	 port pointer to port identifier of the device

   int	  rte_pmd_i40e_query_vfid_by_mac    (uint16_t	 port,	  const   struct
     rte_ether_addr * vf_mac)
     On the PF, find VF index based on VF MAC address

     Parameters
	 port pointer to port identifier of the device
	 vf_mac the mac address of the vf to determine index of

     Returns
	 The index of vfid If successful. -EINVAL: vf mac address does not exist
	 for this port -ENOTSUP: i40e not supported for this port.

   int	  rte_pmd_i40e_rss_queue_region_conf	 (uint16_t     port_id,     enum
     rte_pmd_i40e_queue_region_op op_type, void * arg)
     Do RSS queue region configuration for that port as the command option type

     Parameters
	 port_id The port identifier of the Ethernet device.
	 op_type Queue region operation type
	 arg Queue region operation type specific data

   int	 rte_pmd_i40e_inset_get   (uint16_t   port,   uint8_t	pctype,   struct
     rte_pmd_i40e_inset * inset, enum rte_pmd_i40e_inset_type inset_type)
     Get input set

     Parameters
	 port The port identifier of the Ethernet device.
	 pctype HW pctype.
	 inset Buffer for input set info.
	 inset_type Type of input set.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-ENOTSUP) if operation not supported.

   int	 rte_pmd_i40e_inset_set   (uint16_t   port,   uint8_t	pctype,   struct
     rte_pmd_i40e_inset * inset, enum rte_pmd_i40e_inset_type inset_type)
     Set input set

     Parameters
	 port The port identifier of the Ethernet device.
	 pctype HW pctype.
	 inset Input set info.
	 inset_type Type of input set.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

	 * (-ENOTSUP) if operation not supported.

   static  int	rte_pmd_i40e_inset_field_get (uint64_t inset, uint8_t field_idx)
     [inline],	[static]
     Get bit value for some field index

     Parameters
	 inset Input set value.
	 field_idx Field index for input set.

     Returns

	 * (1) if set.

	 * (0) if cleared.

     Definition at line 1006 of file rte_pmd_i40e.h.

   static int rte_pmd_i40e_inset_field_set (uint64_t * inset, uint8_t field_idx)
     [inline],	[static]
     Set bit value for some field index

     Parameters
	 inset Input set value.
	 field_idx Field index for input set.

     Returns

	 * (-1) if failed.

	 * (0) if success.

     Definition at line 1032 of file rte_pmd_i40e.h.

   static  int	rte_pmd_i40e_inset_field_clear	(uint64_t   *	inset,	 uint8_t
     field_idx) [inline],  [static]
     Clear bit value for some field index

     Parameters
	 inset Input set value.
	 field_idx Field index for input set.

     Returns

	 * (-1) if failed.

	 * (0) if success.

     Definition at line 1057 of file rte_pmd_i40e.h.

   __rte_experimental  int  rte_pmd_i40e_get_fdir_info	(uint16_t  port,  struct
     rte_eth_fdir_info * fdir_info)
     Get port fdir info

     Parameters
	 port The port identifier of the Ethernet device.
	 fdir_info The fdir info of the port

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-ENOTSUP) if operation not supported.

   __rte_experimental int  rte_pmd_i40e_get_fdir_stats	(uint16_t  port,  struct
     rte_eth_fdir_stats * fdir_stat)
     Get port fdir status

     Parameters
	 port The port identifier of the Ethernet device.
	 fdir_stat The fdir status of the port

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-ENOTSUP) if operation not supported.

   __rte_experimental  int  rte_pmd_i40e_set_gre_key_len (uint16_t port, uint8_t
     len)
     Set GRE key length

     Parameters
	 port The port identifier of the Ethernet device.
	 len Length of gre-key

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-ENOTSUP) if operation not supported.

   __rte_experimental int rte_pmd_i40e_set_switch_dev (uint16_t port_id,  struct
     rte_eth_dev * switch_dev)
     For  ipn3ke,  i40e works with FPGA. In this situation, i40e get link status
     from fpga, fpga works as switch_dev for i40e. This function set  switch_dev
     for i40e.

     Parameters
	 port_id port_id of i40e device to be set switch device.
	 switch_dev target switch device from which i40e device to get link sta-
	 tus from.

     Returns

	 * (less than 0) if failed.

	 * (0) if success.

   __rte_experimental  int rte_pmd_i40e_set_pf_src_prune (uint16_t port, uint8_t
     on)
     Enable/Disable source prune on all the PF.

     Parameters
	 port The port identifier of the Ethernet device.
	 on 1 - Enable source prune. 0 - Disable source prune.

     Returns

	 * (0) if successful.

	 * (-ENODEV) if port invalid.

	 * (-EINVAL) if bad parameter.

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026	       rte_pmd_i40e.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=RTE_PMD_I40E_MB_EVENT_PROCEED&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help