[dpdk-test-report] |WARNING| pw99537-99538 [PATCH] [v7, 3/3] doc: remove i40evf related documentation

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Wed Oct 6 15:44:13 CEST 2021


Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/99537

_apply patch failure_

Submitter: Zhang, RobinX <robinx.zhang at intel.com>
Date: Friday, September 24 2021 06:22:28 
Applied on: CommitID:2700326085033fd13339a8de31f58a95d1ee9c3f
Apply patch set 99537-99538 failed:

Checking patch drivers/net/i40e/base/i40e_osdep.h...
error: while searching for:
	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) \

error: patch failed: drivers/net/i40e/base/i40e_osdep.h:162
Checking patch drivers/net/i40e/i40e_ethdev.h...
error: while searching for:
	} 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


error: patch failed: drivers/net/i40e/i40e_ethdev.h:1229
error: while searching for:
	/* Common for both PF and VF */
	struct i40e_hw hw;

	/* Specific for PF or VF */
	union {
		struct i40e_pf pf;
		struct i40e_vf vf;
	};

	/* For vector PMD */
	bool rx_bulk_alloc_allowed;

error: patch failed: drivers/net/i40e/i40e_ethdev.h:1288
error: while searching for:
			     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,

error: patch failed: drivers/net/i40e/i40e_ethdev.h:1461
error: while searching for:
#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;
	}
}
#define I40E_DEV_PRIVATE_TO_MAIN_VSI(adapter) \
	i40e_get_vsi_from_adapter((struct i40e_adapter *)adapter)

error: patch failed: drivers/net/i40e/i40e_ethdev.h:1507
error: while searching for:
#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)
{

error: patch failed: drivers/net/i40e/i40e_ethdev.h:1549
Checking patch drivers/net/i40e/i40e_ethdev_vf.c...
error: drivers/net/i40e/i40e_ethdev_vf.c: does not exist in index
Checking patch drivers/net/i40e/i40e_rxtx.c...
error: while searching for:
			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;

error: patch failed: drivers/net/i40e/i40e_rxtx.c:1942
error: while searching for:

	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;
	}

	if (nb_desc % I40E_ALIGN_RING_DESC != 0 ||
	    (nb_desc > I40E_MAX_RING_DESC) ||

error: patch failed: drivers/net/i40e/i40e_rxtx.c:1958
error: while searching for:
			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;

error: patch failed: drivers/net/i40e/i40e_rxtx.c:2282
error: while searching for:

	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;
	}

	if (nb_desc % I40E_ALIGN_RING_DESC != 0 ||
	    (nb_desc > I40E_MAX_RING_DESC) ||

error: patch failed: drivers/net/i40e/i40e_rxtx.c:2296
Checking patch drivers/net/i40e/meson.build...
error: while searching for:
sources = files(
        'i40e_ethdev.c',
        'i40e_rxtx.c',
        'i40e_ethdev_vf.c',
        'i40e_pf.c',
        'i40e_fdir.c',
        'i40e_flow.c',

error: patch failed: drivers/net/i40e/meson.build:12
Checking patch drivers/net/i40e/rte_pmd_i40e.c...
error: while searching for:

	dev = &rte_eth_devices[port];

	if (!is_i40e_supported(dev) &&
	    !is_i40evf_supported(dev))
		return -ENOTSUP;

	i40e_set_default_pctype_table(dev);

error: patch failed: drivers/net/i40e/rte_pmd_i40e.c:2410
error: while searching for:

	dev = &rte_eth_devices[port];

	if (!is_i40e_supported(dev) &&
	    !is_i40evf_supported(dev))
		return -ENOTSUP;

	ad = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);

error: patch failed: drivers/net/i40e/rte_pmd_i40e.c:2431
error: while searching for:

	dev = &rte_eth_devices[port];

	if (!is_i40e_supported(dev) &&
	    !is_i40evf_supported(dev))
		return -ENOTSUP;

	if (count > I40E_FLOW_TYPE_MAX)

error: patch failed: drivers/net/i40e/rte_pmd_i40e.c:2460
Applying patch drivers/net/i40e/base/i40e_osdep.h with 1 reject...
Rejected hunk #1.
Applying patch drivers/net/i40e/i40e_ethdev.h with 5 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Applying patch drivers/net/i40e/i40e_rxtx.c with 4 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Applying patch drivers/net/i40e/meson.build with 1 reject...
Rejected hunk #1.
Applying patch drivers/net/i40e/rte_pmd_i40e.c with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
diff a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h	(rejected hunks)
@@ -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) \
diff a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h	(rejected hunks)
@@ -1229,55 +1229,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
 
@@ -1288,11 +1239,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;
@@ -1461,7 +1409,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,
@@ -1507,26 +1454,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)
@@ -1549,10 +1485,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)
 {
diff a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c	(rejected hunks)
@@ -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) ||
diff a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build	(rejected hunks)
@@ -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',
diff a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c	(rejected hunks)
@@ -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)
Checking patch drivers/net/iavf/iavf_ethdev.c...
error: while searching for:
	return ret;
}

static int
iavf_drv_i40evf_check_handler(__rte_unused const char *key,
			      const char *value, __rte_unused void *opaque)
{
	if (strcmp(value, "i40evf"))
		return -1;

	return 0;
}

static int
iavf_drv_i40evf_selected(struct rte_devargs *devargs, uint16_t device_id)
{
	struct rte_kvargs *kvlist;
	int ret = 0;

	if (device_id != IAVF_DEV_ID_VF &&
	    device_id != IAVF_DEV_ID_VF_HV &&
	    device_id != IAVF_DEV_ID_X722_VF &&
	    device_id != IAVF_DEV_ID_X722_A0_VF)
		return 0;

	if (devargs == NULL)
		return 0;

	kvlist = rte_kvargs_parse(devargs->args, NULL);
	if (kvlist == NULL)
		return 0;

	if (!rte_kvargs_count(kvlist, RTE_DEVARGS_KEY_DRIVER))
		goto exit;

	/* i40evf driver selected when there's a key-value pair:
	 * driver=i40evf
	 */
	if (rte_kvargs_process(kvlist, RTE_DEVARGS_KEY_DRIVER,
			       iavf_drv_i40evf_check_handler, NULL) < 0)
		goto exit;

	ret = 1;

exit:
	rte_kvargs_free(kvlist);
	return ret;
}

static int eth_iavf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
			     struct rte_pci_device *pci_dev)
{
	if (iavf_dcf_cap_selected(pci_dev->device.devargs) ||
	    iavf_drv_i40evf_selected(pci_dev->device.devargs,
				     pci_dev->id.device_id))
		return 1;

	return rte_eth_dev_pci_generic_probe(pci_dev,

error: patch failed: drivers/net/iavf/iavf_ethdev.c:2547
error: while searching for:
RTE_PMD_REGISTER_PCI(net_iavf, rte_iavf_pmd);
RTE_PMD_REGISTER_PCI_TABLE(net_iavf, pci_id_iavf_map);
RTE_PMD_REGISTER_KMOD_DEP(net_iavf, "* igb_uio | vfio-pci");
RTE_PMD_REGISTER_PARAM_STRING(net_iavf, "cap=dcf driver=i40evf");
RTE_LOG_REGISTER_SUFFIX(iavf_logtype_init, init, NOTICE);
RTE_LOG_REGISTER_SUFFIX(iavf_logtype_driver, driver, NOTICE);
#ifdef RTE_ETHDEV_DEBUG_RX

error: patch failed: drivers/net/iavf/iavf_ethdev.c:2621
Applying patch drivers/net/iavf/iavf_ethdev.c with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
diff a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c	(rejected hunks)
@@ -2547,58 +2547,10 @@ iavf_dcf_cap_selected(struct rte_devargs *devargs)
 	return ret;
 }
 
-static int
-iavf_drv_i40evf_check_handler(__rte_unused const char *key,
-			      const char *value, __rte_unused void *opaque)
-{
-	if (strcmp(value, "i40evf"))
-		return -1;
-
-	return 0;
-}
-
-static int
-iavf_drv_i40evf_selected(struct rte_devargs *devargs, uint16_t device_id)
-{
-	struct rte_kvargs *kvlist;
-	int ret = 0;
-
-	if (device_id != IAVF_DEV_ID_VF &&
-	    device_id != IAVF_DEV_ID_VF_HV &&
-	    device_id != IAVF_DEV_ID_X722_VF &&
-	    device_id != IAVF_DEV_ID_X722_A0_VF)
-		return 0;
-
-	if (devargs == NULL)
-		return 0;
-
-	kvlist = rte_kvargs_parse(devargs->args, NULL);
-	if (kvlist == NULL)
-		return 0;
-
-	if (!rte_kvargs_count(kvlist, RTE_DEVARGS_KEY_DRIVER))
-		goto exit;
-
-	/* i40evf driver selected when there's a key-value pair:
-	 * driver=i40evf
-	 */
-	if (rte_kvargs_process(kvlist, RTE_DEVARGS_KEY_DRIVER,
-			       iavf_drv_i40evf_check_handler, NULL) < 0)
-		goto exit;
-
-	ret = 1;
-
-exit:
-	rte_kvargs_free(kvlist);
-	return ret;
-}
-
 static int eth_iavf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 			     struct rte_pci_device *pci_dev)
 {
-	if (iavf_dcf_cap_selected(pci_dev->device.devargs) ||
-	    iavf_drv_i40evf_selected(pci_dev->device.devargs,
-				     pci_dev->id.device_id))
+	if (iavf_dcf_cap_selected(pci_dev->device.devargs))
 		return 1;
 
 	return rte_eth_dev_pci_generic_probe(pci_dev,
@@ -2621,7 +2573,7 @@ static struct rte_pci_driver rte_iavf_pmd = {
 RTE_PMD_REGISTER_PCI(net_iavf, rte_iavf_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_iavf, pci_id_iavf_map);
 RTE_PMD_REGISTER_KMOD_DEP(net_iavf, "* igb_uio | vfio-pci");
-RTE_PMD_REGISTER_PARAM_STRING(net_iavf, "cap=dcf driver=i40evf");
+RTE_PMD_REGISTER_PARAM_STRING(net_iavf, "cap=dcf");
 RTE_LOG_REGISTER_SUFFIX(iavf_logtype_init, init, NOTICE);
 RTE_LOG_REGISTER_SUFFIX(iavf_logtype_driver, driver, NOTICE);
 #ifdef RTE_ETHDEV_DEBUG_RX
Checking patch doc/guides/howto/lm_bond_virtio_sriov.rst...
error: while searching for:
   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

vm_virtio_vf_one_212_46.sh
~~~~~~~~~~~~~~~~~~~~~~~~~~

error: patch failed: doc/guides/howto/lm_bond_virtio_sriov.rst:392
error: while searching for:
   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

vm_virtio_one_migrate.sh
~~~~~~~~~~~~~~~~~~~~~~~~

error: patch failed: doc/guides/howto/lm_bond_virtio_sriov.rst:492
Checking patch doc/guides/nics/features/i40e_vf.ini...
error: doc/guides/nics/features/i40e_vf.ini: does not exist in index
Checking patch doc/guides/nics/intel_vf.rst...
error: while searching for:

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

error: patch failed: doc/guides/nics/intel_vf.rst:26
error: while searching for:
    assignment in hypervisor. Take qemu for example, the device assignment should carry the IAVF device id (0x1889) like
    ``-device vfio-pci,x-pci-device-id=0x1889,host=03:0a.0``.

    Starting from DPDK 21.05, the default VF driver for Intel® 700 Series Ethernet Controller will be IAVF. No new feature
    will be added into i40evf except bug fix until it's removed in DPDK 21.11. Between DPDK 21.05 and 21.11, by using the
    ``devargs`` option ``driver=i40evf``, i40evf PMD still can be used on Intel® 700 Series Ethernet Controller, for example::

    -a 81:02.0,driver=i40evf

    When IAVF is backed by an Intel® E810 device, the "Protocol Extraction" feature which is supported by ice PMD is also
    available for IAVF PMD. The same devargs with the same parameters can be applied to IAVF PMD, for detail please reference
    the section ``Protocol extraction for per queue`` of ice.rst.

error: patch failed: doc/guides/nics/intel_vf.rst:88
Checking patch doc/guides/rel_notes/deprecation.rst...
error: while searching for:
  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.


error: patch failed: doc/guides/rel_notes/deprecation.rst:164
Checking patch doc/guides/rel_notes/release_21_11.rst...
error: while searching for:
  blacklist/whitelist are removed. Users must use the new
  block/allow list arguments.


API Changes
-----------

error: patch failed: doc/guides/rel_notes/release_21_11.rst:126
Applying patch doc/guides/howto/lm_bond_virtio_sriov.rst with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applying patch doc/guides/nics/intel_vf.rst with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applying patch doc/guides/rel_notes/deprecation.rst with 1 reject...
Rejected hunk #1.
Applying patch doc/guides/rel_notes/release_21_11.rst with 1 reject...
Rejected hunk #1.
diff a/doc/guides/howto/lm_bond_virtio_sriov.rst b/doc/guides/howto/lm_bond_virtio_sriov.rst	(rejected hunks)
@@ -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
 ~~~~~~~~~~~~~~~~~~~~~~~~
diff a/doc/guides/nics/intel_vf.rst b/doc/guides/nics/intel_vf.rst	(rejected hunks)
@@ -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.
@@ -88,12 +88,6 @@ For more detail on SR-IOV, please refer to the following documents:
     assignment in hypervisor. Take qemu for example, the device assignment should carry the IAVF device id (0x1889) like
     ``-device vfio-pci,x-pci-device-id=0x1889,host=03:0a.0``.
 
-    Starting from DPDK 21.05, the default VF driver for Intel® 700 Series Ethernet Controller will be IAVF. No new feature
-    will be added into i40evf except bug fix until it's removed in DPDK 21.11. Between DPDK 21.05 and 21.11, by using the
-    ``devargs`` option ``driver=i40evf``, i40evf PMD still can be used on Intel® 700 Series Ethernet Controller, for example::
-
-    -a 81:02.0,driver=i40evf
-
     When IAVF is backed by an Intel® E810 device, the "Protocol Extraction" feature which is supported by ice PMD is also
     available for IAVF PMD. The same devargs with the same parameters can be applied to IAVF PMD, for detail please reference
     the section ``Protocol extraction for per queue`` of ice.rst.
diff a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst	(rejected hunks)
@@ -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.
 
diff a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst	(rejected hunks)
@@ -126,6 +126,8 @@ Removed Items
   blacklist/whitelist are removed. Users must use the new
   block/allow list arguments.
 
+* i40e: Removed i40evf driver. Due to iavf already became the default VF
+  driver for i40e devices, so remove i40evf due to it's no need to maintain.
 
 API Changes
 -----------

https://lab.dpdk.org/results/dashboard/patchsets/18927/

UNH-IOL DPDK Community Lab


More information about the test-report mailing list