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_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
    "FLUSH_OFF " is just clean all configuration about queue region just now, and restore all to DPDK i40e driver default config when start up.

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.

  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.

  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.

  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.