Provided by: dpdk-doc_24.11.2-2_all bug

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_REPORT_STATUS,
           RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID, RTE_PMD_I40E_PKT_TEMPLATE_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 exclusive)
       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
              hardware 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 spoofing.

       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 reinitialize.

       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 enabled  in  parallel.  If  per  TC
       bandwidth is enabled, this function will disable 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 exclusive)
       Update hardware defined ptype to software defined packet 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 ptype mapping update method. -(0) only overwrite referred PTYPE
           mapping, keep other PTYPEs mapping unchanged. -(!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 default.

       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 effective.

       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 exclusive)
       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 status 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.

DPDK                                             Version 24.11.2                               rte_pmd_i40e.h(3)