DPDK
20.05.0
|
#include <rte_ethdev_driver.h>
Go to the source code of this file.
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 |
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_set_switch_dev (uint16_t port_id, struct rte_eth_dev *switch_dev) |
i40e PMD specific functions.
EXPERIMENTAL: this API may change, or be removed, without prior notice
Definition in file rte_pmd_i40e.h.
#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 170 of file rte_pmd_i40e.h.
Response sent back to i40e driver from user app after callback
Definition at line 22 of file rte_pmd_i40e.h.
Option of package processing.
Definition at line 43 of file rte_pmd_i40e.h.
Types of package information.
Definition at line 54 of file rte_pmd_i40e.h.
Option types of queue region.
Definition at line 75 of file rte_pmd_i40e.h.
Behavior will be taken if raw packet template is matched.
Definition at line 228 of file rte_pmd_i40e.h.
Flow director report status It defines what will be reported if raw packet template is matched.
Definition at line 238 of file rte_pmd_i40e.h.
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.
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. |
int rte_pmd_i40e_ping_vfs | ( | uint16_t | port, |
uint16_t | vf | ||
) |
Notify VF when PF link status changes.
port | The port identifier of the Ethernet device. |
vf | VF id. |
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.
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. |
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.
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. |
int rte_pmd_i40e_set_tx_loopback | ( | uint16_t | port, |
uint8_t | on | ||
) |
Enable/Disable TX loopback on all the PF and VFs.
port | The port identifier of the Ethernet device. |
on | 1 - Enable TX loopback. 0 - Disable TX loopback. |
int rte_pmd_i40e_set_vf_unicast_promisc | ( | uint16_t | port, |
uint16_t | vf_id, | ||
uint8_t | on | ||
) |
Enable/Disable VF unicast promiscuous mode.
port | The port identifier of the Ethernet device. |
vf_id | VF on which to set. |
on | 1 - Enable. 0 - Disable. |
int rte_pmd_i40e_set_vf_multicast_promisc | ( | uint16_t | port, |
uint16_t | vf_id, | ||
uint8_t | on | ||
) |
Enable/Disable VF multicast promiscuous mode.
port | The port identifier of the Ethernet device. |
vf_id | VF on which to set. |
on | 1 - Enable. 0 - Disable. |
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.
port | The port identifier of the Ethernet device. |
vf_id | VF id. |
mac_addr | VF MAC address. |
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.
port | The port identifier of the Ethernet device. |
vf_id | VF id. |
mac_addr | VF MAC address. |
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
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. |
int rte_pmd_i40e_set_vf_vlan_insert | ( | uint16_t | port, |
uint16_t | vf_id, | ||
uint16_t | vlan_id | ||
) |
Enable/Disable vf vlan insert
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. |
int rte_pmd_i40e_set_vf_broadcast | ( | uint16_t | port, |
uint16_t | vf_id, | ||
uint8_t | on | ||
) |
Enable/Disable vf broadcast mode
port | The port identifier of the Ethernet device. |
vf_id | ID specifying VF. |
on | 0 - Disable broadcast. 1 - Enable broadcast. |
int rte_pmd_i40e_set_vf_vlan_tag | ( | uint16_t | port, |
uint16_t | vf_id, | ||
uint8_t | on | ||
) |
Enable/Disable vf vlan tag
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. |
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
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. |
int rte_pmd_i40e_get_vf_stats | ( | uint16_t | port, |
uint16_t | vf_id, | ||
struct rte_eth_stats * | stats | ||
) |
Get VF's statistics
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:
|
int rte_pmd_i40e_reset_vf_stats | ( | uint16_t | port, |
uint16_t | vf_id | ||
) |
Clear VF's statistics
port | The port identifier of the Ethernet device. |
vf_id | VF on which to get. |
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.
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. |
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.
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. |
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.
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. |
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.
port | The port identifier of the Ethernet device. |
tc_map | A bit map for the TCs. |
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
port | The port identifier of the Ethernet device. |
buff | buffer of package. |
size | size of buffer. |
op | Operation of package processing |
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
pkg | buffer of package. |
pkg_size | package buffer size |
info | buffer for response |
size | response buffer size |
type | type of information requested |
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
port | port id |
buff | buffer for response |
size | buffer 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 | ||
) |
Update hardware defined ptype to software defined packet type mapping table.
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.
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.
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
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.
port | The port identifier of the Ethernet device. |
vf_id | VF id. |
mac_addr | VF MAC address. |
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.
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.
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.
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
port | pointer to port identifier of the device |
vf_mac | the mac address of the vf to determine index of |
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
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
port | The port identifier of the Ethernet device. |
pctype | HW pctype. |
inset | Buffer for input set info. |
inset_type | Type of input set. |
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
port | The port identifier of the Ethernet device. |
pctype | HW pctype. |
inset | Input set info. |
inset_type | Type of input set. |
|
inlinestatic |
Get bit value for some field index
inset | Input set value. |
field_idx | Field index for input set. |
Definition at line 1000 of file rte_pmd_i40e.h.
|
inlinestatic |
Set bit value for some field index
inset | Input set value. |
field_idx | Field index for input set. |
Definition at line 1026 of file rte_pmd_i40e.h.
|
inlinestatic |
Clear bit value for some field index
inset | Input set value. |
field_idx | Field index for input set. |
Definition at line 1051 of file rte_pmd_i40e.h.
__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.
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. |