net/i40e: remove i40evf
The default VF driver for Intel 700 Series Ethernet Controller already switch to iavf in DPDK 21.05. And i40evf is no need to maintain now, so remove i40evf related code. Signed-off-by: Robin Zhang <robinx.zhang@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
parent
a97974f986
commit
fe2a571c70
@ -392,7 +392,7 @@ Set up Virtual Functions on host_server_1
|
||||
cat /sys/bus/pci/devices/0000\:02\:00.0/sriov_numvfs
|
||||
echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/sriov_numvfs
|
||||
cat /sys/bus/pci/devices/0000\:02\:00.0/sriov_numvfs
|
||||
rmmod i40evf
|
||||
rmmod iavf
|
||||
|
||||
vm_virtio_vf_one_212_46.sh
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -492,7 +492,7 @@ Set up Virtual Functions on host_server_2
|
||||
cat /sys/bus/pci/devices/0000\:03\:00.0/sriov_numvfs
|
||||
echo 1 > /sys/bus/pci/devices/0000\:03\:00.0/sriov_numvfs
|
||||
cat /sys/bus/pci/devices/0000\:03\:00.0/sriov_numvfs
|
||||
rmmod i40evf
|
||||
rmmod iavf
|
||||
|
||||
vm_virtio_one_migrate.sh
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -1,40 +0,0 @@
|
||||
;
|
||||
; Supported features of the 'i40e_vf' network poll mode driver.
|
||||
;
|
||||
; Refer to default.ini for the full list of available PMD features.
|
||||
;
|
||||
[Features]
|
||||
Rx interrupt = Y
|
||||
Link status = Y
|
||||
Link status event = Y
|
||||
Fast mbuf free = P
|
||||
Queue start/stop = Y
|
||||
Power mgmt address monitor = Y
|
||||
Jumbo frame = Y
|
||||
Scattered Rx = Y
|
||||
TSO = Y
|
||||
Promiscuous mode = Y
|
||||
Allmulticast mode = Y
|
||||
Unicast MAC filter = Y
|
||||
Multicast MAC filter = Y
|
||||
RSS hash = Y
|
||||
RSS key update = Y
|
||||
RSS reta update = Y
|
||||
VLAN filter = Y
|
||||
CRC offload = Y
|
||||
VLAN offload = Y
|
||||
QinQ offload = P
|
||||
L3 checksum offload = P
|
||||
L4 checksum offload = P
|
||||
Inner L3 checksum = P
|
||||
Inner L4 checksum = P
|
||||
Packet type parsing = Y
|
||||
Rx descriptor status = Y
|
||||
Tx descriptor status = Y
|
||||
Basic stats = Y
|
||||
Extended stats = Y
|
||||
Multiprocess aware = Y
|
||||
FreeBSD = Y
|
||||
Linux = Y
|
||||
x86-32 = Y
|
||||
x86-64 = Y
|
@ -26,7 +26,7 @@ Refer to :numref:`figure_single_port_nic`.
|
||||
|
||||
Therefore, a NIC is logically distributed among multiple virtual machines (as shown in :numref:`figure_single_port_nic`),
|
||||
while still having global data in common to share with the Physical Function and other Virtual Functions.
|
||||
The DPDK fm10kvf, i40evf, igbvf or ixgbevf as a Poll Mode Driver (PMD) serves for the Intel® 82576 Gigabit Ethernet Controller,
|
||||
The DPDK fm10kvf, iavf, igbvf or ixgbevf as a Poll Mode Driver (PMD) serves for the Intel® 82576 Gigabit Ethernet Controller,
|
||||
Intel® Ethernet Controller I350 family, Intel® 82599 10 Gigabit Ethernet Controller NIC,
|
||||
Intel® Fortville 10/40 Gigabit Ethernet Controller NIC's virtual PCI function, or PCIe host-interface of the Intel Ethernet Switch
|
||||
FM10000 Series.
|
||||
|
@ -164,14 +164,6 @@ Deprecation Notices
|
||||
consistent with existing outer header checksum status flag naming, which
|
||||
should help in reducing confusion about its usage.
|
||||
|
||||
* i40e: As there are both i40evf and iavf pmd, the functions of them are
|
||||
duplicated. And now more and more advanced features are developed on iavf.
|
||||
To keep consistent with kernel driver's name
|
||||
(https://patchwork.ozlabs.org/patch/970154/), i40evf is no need to maintain.
|
||||
Starting from 21.05, the default VF driver of i40e will be iavf, but i40evf
|
||||
can still be used if users specify the devarg "driver=i40evf". I40evf will
|
||||
be deleted in DPDK 21.11.
|
||||
|
||||
* net: ``s_addr`` and ``d_addr`` fields of ``rte_ether_hdr`` structure
|
||||
will be renamed in DPDK 21.11 to avoid conflict with Windows Sockets headers.
|
||||
|
||||
|
@ -148,6 +148,10 @@ Removed Items
|
||||
blacklist/whitelist are removed. Users must use the new
|
||||
block/allow list arguments.
|
||||
|
||||
* i40e: Removed i40evf driver.
|
||||
iavf already became the default VF driver for i40e devices,
|
||||
so there is no need to maintain i40evf.
|
||||
|
||||
|
||||
API Changes
|
||||
-----------
|
||||
|
@ -162,7 +162,6 @@ static inline uint64_t i40e_read64_addr(volatile void *addr)
|
||||
rte_write32_wc_relaxed((rte_cpu_to_le_32(value)), reg)
|
||||
|
||||
#define I40E_WRITE_FLUSH(a) I40E_READ_REG(a, I40E_GLGEN_STAT)
|
||||
#define I40EVF_WRITE_FLUSH(a) I40E_READ_REG(a, I40E_VFGEN_RSTAT)
|
||||
|
||||
#define I40E_READ_REG(hw, reg) i40e_read_addr(I40E_PCI_REG_ADDR((hw), (reg)))
|
||||
#define I40E_WRITE_REG(hw, reg, value) \
|
||||
|
@ -1230,55 +1230,6 @@ struct i40e_vsi_vlan_pvid_info {
|
||||
} config;
|
||||
};
|
||||
|
||||
struct i40e_vf_rx_queues {
|
||||
uint64_t rx_dma_addr;
|
||||
uint32_t rx_ring_len;
|
||||
uint32_t buff_size;
|
||||
};
|
||||
|
||||
struct i40e_vf_tx_queues {
|
||||
uint64_t tx_dma_addr;
|
||||
uint32_t tx_ring_len;
|
||||
};
|
||||
|
||||
/*
|
||||
* Structure to store private data specific for VF instance.
|
||||
*/
|
||||
struct i40e_vf {
|
||||
struct i40e_adapter *adapter; /* The adapter this VF associate to */
|
||||
struct rte_eth_dev_data *dev_data; /* Pointer to the device data */
|
||||
uint16_t num_queue_pairs;
|
||||
uint16_t max_pkt_len; /* Maximum packet length */
|
||||
bool promisc_unicast_enabled;
|
||||
bool promisc_multicast_enabled;
|
||||
|
||||
rte_spinlock_t cmd_send_lock;
|
||||
uint32_t version_major; /* Major version number */
|
||||
uint32_t version_minor; /* Minor version number */
|
||||
uint16_t promisc_flags; /* Promiscuous setting */
|
||||
uint32_t vlan[I40E_VFTA_SIZE]; /* VLAN bit map */
|
||||
|
||||
/* Multicast addrs */
|
||||
struct rte_ether_addr mc_addrs[I40E_NUM_MACADDR_MAX];
|
||||
uint16_t mc_addrs_num; /* Multicast mac addresses number */
|
||||
|
||||
/* Event from pf */
|
||||
bool dev_closed;
|
||||
bool link_up;
|
||||
enum virtchnl_link_speed link_speed;
|
||||
bool vf_reset;
|
||||
volatile uint32_t pend_cmd; /* pending command not finished yet */
|
||||
int32_t cmd_retval; /* return value of the cmd response from PF */
|
||||
u16 pend_msg; /* flags indicates events from pf not handled yet */
|
||||
uint8_t *aq_resp; /* buffer to store the adminq response from PF */
|
||||
|
||||
/* VSI info */
|
||||
struct virtchnl_vf_resource *vf_res; /* All VSIs */
|
||||
struct virtchnl_vsi_resource *vsi_res; /* LAN VSI */
|
||||
struct i40e_vsi vsi;
|
||||
uint64_t flags;
|
||||
};
|
||||
|
||||
#define I40E_MAX_PKT_TYPE 256
|
||||
#define I40E_FLOW_TYPE_MAX 64
|
||||
|
||||
@ -1289,11 +1240,8 @@ struct i40e_adapter {
|
||||
/* Common for both PF and VF */
|
||||
struct i40e_hw hw;
|
||||
|
||||
/* Specific for PF or VF */
|
||||
union {
|
||||
struct i40e_pf pf;
|
||||
struct i40e_vf vf;
|
||||
};
|
||||
/* Specific for PF */
|
||||
struct i40e_pf pf;
|
||||
|
||||
/* For vector PMD */
|
||||
bool rx_bulk_alloc_allowed;
|
||||
@ -1462,7 +1410,6 @@ int i40e_add_macvlan_filters(struct i40e_vsi *vsi,
|
||||
int total);
|
||||
bool is_device_supported(struct rte_eth_dev *dev, struct rte_pci_driver *drv);
|
||||
bool is_i40e_supported(struct rte_eth_dev *dev);
|
||||
bool is_i40evf_supported(struct rte_eth_dev *dev);
|
||||
void i40e_set_symmetric_hash_enable_per_port(struct i40e_hw *hw,
|
||||
uint8_t enable);
|
||||
int i40e_validate_input_set(enum i40e_filter_pctype pctype,
|
||||
@ -1508,26 +1455,15 @@ int i40e_vf_representor_uninit(struct rte_eth_dev *ethdev);
|
||||
#define I40E_DEV_PRIVATE_TO_ADAPTER(adapter) \
|
||||
((struct i40e_adapter *)adapter)
|
||||
|
||||
/* I40EVF_DEV_PRIVATE_TO */
|
||||
#define I40EVF_DEV_PRIVATE_TO_VF(adapter) \
|
||||
(&((struct i40e_adapter *)adapter)->vf)
|
||||
|
||||
static inline struct i40e_vsi *
|
||||
i40e_get_vsi_from_adapter(struct i40e_adapter *adapter)
|
||||
{
|
||||
struct i40e_hw *hw;
|
||||
|
||||
if (!adapter)
|
||||
return NULL;
|
||||
|
||||
hw = I40E_DEV_PRIVATE_TO_HW(adapter);
|
||||
if (hw->mac.type == I40E_MAC_VF || hw->mac.type == I40E_MAC_X722_VF) {
|
||||
struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(adapter);
|
||||
return &vf->vsi;
|
||||
} else {
|
||||
struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(adapter);
|
||||
return pf->main_vsi;
|
||||
}
|
||||
struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(adapter);
|
||||
|
||||
return pf->main_vsi;
|
||||
}
|
||||
#define I40E_DEV_PRIVATE_TO_MAIN_VSI(adapter) \
|
||||
i40e_get_vsi_from_adapter((struct i40e_adapter *)adapter)
|
||||
@ -1550,10 +1486,6 @@ i40e_get_vsi_from_adapter(struct i40e_adapter *adapter)
|
||||
#define I40E_PF_TO_ADAPTER(pf) \
|
||||
((struct i40e_adapter *)pf->adapter)
|
||||
|
||||
/* I40E_VF_TO */
|
||||
#define I40E_VF_TO_HW(vf) \
|
||||
(&(((struct i40e_vf *)vf)->adapter->hw))
|
||||
|
||||
static inline void
|
||||
i40e_init_adminq_parameter(struct i40e_hw *hw)
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1942,12 +1942,10 @@ i40e_dev_rx_queue_setup(struct rte_eth_dev *dev,
|
||||
const struct rte_eth_rxconf *rx_conf,
|
||||
struct rte_mempool *mp)
|
||||
{
|
||||
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
|
||||
struct i40e_adapter *ad =
|
||||
I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
|
||||
struct i40e_vsi *vsi;
|
||||
struct i40e_pf *pf = NULL;
|
||||
struct i40e_vf *vf = NULL;
|
||||
struct i40e_rx_queue *rxq;
|
||||
const struct rte_memzone *rz;
|
||||
uint32_t ring_size;
|
||||
@ -1958,22 +1956,14 @@ i40e_dev_rx_queue_setup(struct rte_eth_dev *dev,
|
||||
|
||||
offloads = rx_conf->offloads | dev->data->dev_conf.rxmode.offloads;
|
||||
|
||||
if (hw->mac.type == I40E_MAC_VF || hw->mac.type == I40E_MAC_X722_VF) {
|
||||
vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
|
||||
vsi = &vf->vsi;
|
||||
if (!vsi)
|
||||
return -EINVAL;
|
||||
reg_idx = queue_idx;
|
||||
} else {
|
||||
pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
|
||||
vsi = i40e_pf_get_vsi_by_qindex(pf, queue_idx);
|
||||
if (!vsi)
|
||||
return -EINVAL;
|
||||
q_offset = i40e_get_queue_offset_by_qindex(pf, queue_idx);
|
||||
if (q_offset < 0)
|
||||
return -EINVAL;
|
||||
reg_idx = vsi->base_queue + q_offset;
|
||||
}
|
||||
pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
|
||||
vsi = i40e_pf_get_vsi_by_qindex(pf, queue_idx);
|
||||
if (!vsi)
|
||||
return -EINVAL;
|
||||
q_offset = i40e_get_queue_offset_by_qindex(pf, queue_idx);
|
||||
if (q_offset < 0)
|
||||
return -EINVAL;
|
||||
reg_idx = vsi->base_queue + q_offset;
|
||||
|
||||
if (nb_desc % I40E_ALIGN_RING_DESC != 0 ||
|
||||
(nb_desc > I40E_MAX_RING_DESC) ||
|
||||
@ -2282,10 +2272,8 @@ i40e_dev_tx_queue_setup(struct rte_eth_dev *dev,
|
||||
unsigned int socket_id,
|
||||
const struct rte_eth_txconf *tx_conf)
|
||||
{
|
||||
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
|
||||
struct i40e_vsi *vsi;
|
||||
struct i40e_pf *pf = NULL;
|
||||
struct i40e_vf *vf = NULL;
|
||||
struct i40e_tx_queue *txq;
|
||||
const struct rte_memzone *tz;
|
||||
uint32_t ring_size;
|
||||
@ -2296,20 +2284,14 @@ i40e_dev_tx_queue_setup(struct rte_eth_dev *dev,
|
||||
|
||||
offloads = tx_conf->offloads | dev->data->dev_conf.txmode.offloads;
|
||||
|
||||
if (hw->mac.type == I40E_MAC_VF || hw->mac.type == I40E_MAC_X722_VF) {
|
||||
vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
|
||||
vsi = &vf->vsi;
|
||||
reg_idx = queue_idx;
|
||||
} else {
|
||||
pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
|
||||
vsi = i40e_pf_get_vsi_by_qindex(pf, queue_idx);
|
||||
if (!vsi)
|
||||
return -EINVAL;
|
||||
q_offset = i40e_get_queue_offset_by_qindex(pf, queue_idx);
|
||||
if (q_offset < 0)
|
||||
return -EINVAL;
|
||||
reg_idx = vsi->base_queue + q_offset;
|
||||
}
|
||||
pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
|
||||
vsi = i40e_pf_get_vsi_by_qindex(pf, queue_idx);
|
||||
if (!vsi)
|
||||
return -EINVAL;
|
||||
q_offset = i40e_get_queue_offset_by_qindex(pf, queue_idx);
|
||||
if (q_offset < 0)
|
||||
return -EINVAL;
|
||||
reg_idx = vsi->base_queue + q_offset;
|
||||
|
||||
if (nb_desc % I40E_ALIGN_RING_DESC != 0 ||
|
||||
(nb_desc > I40E_MAX_RING_DESC) ||
|
||||
|
@ -12,7 +12,6 @@ objs = [base_objs]
|
||||
sources = files(
|
||||
'i40e_ethdev.c',
|
||||
'i40e_rxtx.c',
|
||||
'i40e_ethdev_vf.c',
|
||||
'i40e_pf.c',
|
||||
'i40e_fdir.c',
|
||||
'i40e_flow.c',
|
||||
|
@ -2410,8 +2410,7 @@ int rte_pmd_i40e_flow_type_mapping_reset(uint16_t port)
|
||||
|
||||
dev = &rte_eth_devices[port];
|
||||
|
||||
if (!is_i40e_supported(dev) &&
|
||||
!is_i40evf_supported(dev))
|
||||
if (!is_i40e_supported(dev))
|
||||
return -ENOTSUP;
|
||||
|
||||
i40e_set_default_pctype_table(dev);
|
||||
@ -2431,8 +2430,7 @@ int rte_pmd_i40e_flow_type_mapping_get(
|
||||
|
||||
dev = &rte_eth_devices[port];
|
||||
|
||||
if (!is_i40e_supported(dev) &&
|
||||
!is_i40evf_supported(dev))
|
||||
if (!is_i40e_supported(dev))
|
||||
return -ENOTSUP;
|
||||
|
||||
ad = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
|
||||
@ -2460,8 +2458,7 @@ rte_pmd_i40e_flow_type_mapping_update(
|
||||
|
||||
dev = &rte_eth_devices[port];
|
||||
|
||||
if (!is_i40e_supported(dev) &&
|
||||
!is_i40evf_supported(dev))
|
||||
if (!is_i40e_supported(dev))
|
||||
return -ENOTSUP;
|
||||
|
||||
if (count > I40E_FLOW_TYPE_MAX)
|
||||
|
Loading…
Reference in New Issue
Block a user