[dpdk-dev] [PATCH 02/14] ethdev: move MAC filter type to i40e driver
Guo, Jia
jia.guo at intel.com
Wed Oct 21 06:01:41 CEST 2020
> -----Original Message-----
> From: Andrew Rybchenko <arybchenko at solarflare.com>
> Sent: Sunday, October 18, 2020 10:09 PM
> To: Xing, Beilei <beilei.xing at intel.com>; Guo, Jia <jia.guo at intel.com>;
> Thomas Monjalon <thomas at monjalon.net>; Yigit, Ferruh
> <ferruh.yigit at intel.com>; Andrew Rybchenko
> <andrew.rybchenko at oktetlabs.ru>
> Cc: dev at dpdk.org
> Subject: [PATCH 02/14] ethdev: move MAC filter type to i40e driver
>
> net/i40e driver is the only user of the enum rte_mac_filter_type.
> Move the define to the driver and use i40e_ prefix instead of rte_.
>
> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
> ---
> drivers/net/i40e/i40e_ethdev.c | 58 ++++++++++++++++----------------
> drivers/net/i40e/i40e_ethdev.h | 15 +++++++--
> drivers/net/i40e/i40e_pf.c | 2 +-
> drivers/net/i40e/rte_pmd_i40e.c | 30 ++++++++---------
> lib/librte_ethdev/rte_eth_ctrl.h | 11 ------
> 5 files changed, 58 insertions(+), 58 deletions(-)
>
Where is the related remove in testpmd about the rte_mac_filter_type?
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 217a7bbbd8..e298d7aee6 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -4329,9 +4329,9 @@ i40e_macaddr_add(struct rte_eth_dev *dev,
>
> rte_memcpy(&mac_filter.mac_addr, mac_addr,
> RTE_ETHER_ADDR_LEN);
> if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_FILTER)
> - mac_filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
> + mac_filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
> else
> - mac_filter.filter_type = RTE_MAC_PERFECT_MATCH;
> + mac_filter.filter_type = I40E_MAC_PERFECT_MATCH;
>
> if (pool == 0)
> vsi = pf->main_vsi;
> @@ -5537,7 +5537,7 @@ i40e_update_default_filter_setting(struct i40e_vsi
> *vsi)
> mac = &f->mac_info.mac_addr;
> rte_memcpy(&mac->addr_bytes, hw->mac.perm_addr,
> ETH_ADDR_LEN);
> - f->mac_info.filter_type = RTE_MACVLAN_PERFECT_MATCH;
> + f->mac_info.filter_type = I40E_MACVLAN_PERFECT_MATCH;
> TAILQ_INSERT_TAIL(&vsi->mac_list, f, next);
> vsi->mac_num++;
>
> @@ -5545,7 +5545,7 @@ i40e_update_default_filter_setting(struct i40e_vsi
> *vsi)
> }
> rte_memcpy(&filter.mac_addr,
> (struct rte_ether_addr *)(hw->mac.perm_addr),
> ETH_ADDR_LEN);
> - filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
> + filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
> return i40e_vsi_add_mac(vsi, &filter); }
>
> @@ -6011,7 +6011,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
>
> /* MAC/VLAN configuration */
> rte_memcpy(&filter.mac_addr, &broadcast, RTE_ETHER_ADDR_LEN);
> - filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
> + filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
>
> ret = i40e_vsi_add_mac(vsi, &filter);
> if (ret != I40E_SUCCESS) {
> @@ -6039,15 +6039,15 @@ i40e_vsi_config_vlan_filter(struct i40e_vsi *vsi,
> bool on)
> struct i40e_mac_filter *f;
> void *temp;
> struct i40e_mac_filter_info *mac_filter;
> - enum rte_mac_filter_type desired_filter;
> + enum i40e_mac_filter_type desired_filter;
> int ret = I40E_SUCCESS;
>
> if (on) {
> /* Filter to match MAC and VLAN */
> - desired_filter = RTE_MACVLAN_PERFECT_MATCH;
> + desired_filter = I40E_MACVLAN_PERFECT_MATCH;
> } else {
> /* Filter to match only MAC */
> - desired_filter = RTE_MAC_PERFECT_MATCH;
> + desired_filter = I40E_MAC_PERFECT_MATCH;
> }
>
> num = vsi->mac_num;
> @@ -6990,18 +6990,18 @@ i40e_add_macvlan_filters(struct i40e_vsi *vsi,
> rte_cpu_to_le_16(filter[num + i].vlan_id);
>
> switch (filter[num + i].filter_type) {
> - case RTE_MAC_PERFECT_MATCH:
> + case I40E_MAC_PERFECT_MATCH:
> flags =
> I40E_AQC_MACVLAN_ADD_PERFECT_MATCH |
>
> I40E_AQC_MACVLAN_ADD_IGNORE_VLAN;
> break;
> - case RTE_MACVLAN_PERFECT_MATCH:
> + case I40E_MACVLAN_PERFECT_MATCH:
> flags =
> I40E_AQC_MACVLAN_ADD_PERFECT_MATCH;
> break;
> - case RTE_MAC_HASH_MATCH:
> + case I40E_MAC_HASH_MATCH:
> flags =
> I40E_AQC_MACVLAN_ADD_HASH_MATCH |
>
> I40E_AQC_MACVLAN_ADD_IGNORE_VLAN;
> break;
> - case RTE_MACVLAN_HASH_MATCH:
> + case I40E_MACVLAN_HASH_MATCH:
> flags =
> I40E_AQC_MACVLAN_ADD_HASH_MATCH;
> break;
> default:
> @@ -7065,18 +7065,18 @@ i40e_remove_macvlan_filters(struct i40e_vsi *vsi,
> rte_cpu_to_le_16(filter[num + i].vlan_id);
>
> switch (filter[num + i].filter_type) {
> - case RTE_MAC_PERFECT_MATCH:
> + case I40E_MAC_PERFECT_MATCH:
> flags =
> I40E_AQC_MACVLAN_DEL_PERFECT_MATCH |
>
> I40E_AQC_MACVLAN_DEL_IGNORE_VLAN;
> break;
> - case RTE_MACVLAN_PERFECT_MATCH:
> + case I40E_MACVLAN_PERFECT_MATCH:
> flags =
> I40E_AQC_MACVLAN_DEL_PERFECT_MATCH;
> break;
> - case RTE_MAC_HASH_MATCH:
> + case I40E_MAC_HASH_MATCH:
> flags =
> I40E_AQC_MACVLAN_DEL_HASH_MATCH |
>
> I40E_AQC_MACVLAN_DEL_IGNORE_VLAN;
> break;
> - case RTE_MACVLAN_HASH_MATCH:
> + case I40E_MACVLAN_HASH_MATCH:
> flags =
> I40E_AQC_MACVLAN_DEL_HASH_MATCH;
> break;
> default:
> @@ -7421,8 +7421,8 @@ i40e_vsi_add_mac(struct i40e_vsi *vsi, struct
> i40e_mac_filter_info *mac_filter)
> f = i40e_find_mac_filter(vsi, &mac_filter->mac_addr);
> if (f != NULL)
> return I40E_SUCCESS;
> - if ((mac_filter->filter_type == RTE_MACVLAN_PERFECT_MATCH) ||
> - (mac_filter->filter_type == RTE_MACVLAN_HASH_MATCH))
> {
> + if (mac_filter->filter_type == I40E_MACVLAN_PERFECT_MATCH ||
> + mac_filter->filter_type == I40E_MACVLAN_HASH_MATCH) {
>
> /**
> * If vlan_num is 0, that's the first time to add mac, @@ -
> 7433,8 +7433,8 @@ i40e_vsi_add_mac(struct i40e_vsi *vsi, struct
> i40e_mac_filter_info *mac_filter)
> vsi->vlan_num = 1;
> }
> vlan_num = vsi->vlan_num;
> - } else if ((mac_filter->filter_type == RTE_MAC_PERFECT_MATCH) ||
> - (mac_filter->filter_type ==
> RTE_MAC_HASH_MATCH))
> + } else if (mac_filter->filter_type == I40E_MAC_PERFECT_MATCH ||
> + mac_filter->filter_type == I40E_MAC_HASH_MATCH)
> vlan_num = 1;
>
> mv_f = rte_zmalloc("macvlan_data", vlan_num * sizeof(*mv_f), 0);
> @@ -7449,8 +7449,8 @@ i40e_vsi_add_mac(struct i40e_vsi *vsi, struct
> i40e_mac_filter_info *mac_filter)
> ETH_ADDR_LEN);
> }
>
> - if (mac_filter->filter_type == RTE_MACVLAN_PERFECT_MATCH ||
> - mac_filter->filter_type == RTE_MACVLAN_HASH_MATCH) {
> + if (mac_filter->filter_type == I40E_MACVLAN_PERFECT_MATCH ||
> + mac_filter->filter_type == I40E_MACVLAN_HASH_MATCH) {
> ret = i40e_find_all_vlan_for_mac(vsi, mv_f, vlan_num,
> &mac_filter->mac_addr);
> if (ret != I40E_SUCCESS)
> @@ -7487,7 +7487,7 @@ i40e_vsi_delete_mac(struct i40e_vsi *vsi, struct
> rte_ether_addr *addr)
> struct i40e_mac_filter *f;
> struct i40e_macvlan_filter *mv_f;
> int i, vlan_num;
> - enum rte_mac_filter_type filter_type;
> + enum i40e_mac_filter_type filter_type;
> int ret = I40E_SUCCESS;
>
> /* Can't find it, return an error */
> @@ -7497,14 +7497,14 @@ i40e_vsi_delete_mac(struct i40e_vsi *vsi, struct
> rte_ether_addr *addr)
>
> vlan_num = vsi->vlan_num;
> filter_type = f->mac_info.filter_type;
> - if (filter_type == RTE_MACVLAN_PERFECT_MATCH ||
> - filter_type == RTE_MACVLAN_HASH_MATCH) {
> + if (filter_type == I40E_MACVLAN_PERFECT_MATCH ||
> + filter_type == I40E_MACVLAN_HASH_MATCH) {
> if (vlan_num == 0) {
> PMD_DRV_LOG(ERR, "VLAN number shouldn't be 0");
> return I40E_ERR_PARAM;
> }
> - } else if (filter_type == RTE_MAC_PERFECT_MATCH ||
> - filter_type == RTE_MAC_HASH_MATCH)
> + } else if (filter_type == I40E_MAC_PERFECT_MATCH ||
> + filter_type == I40E_MAC_HASH_MATCH)
> vlan_num = 1;
>
> mv_f = rte_zmalloc("macvlan_data", vlan_num * sizeof(*mv_f), 0);
> @@ -7518,8 +7518,8 @@ i40e_vsi_delete_mac(struct i40e_vsi *vsi, struct
> rte_ether_addr *addr)
> rte_memcpy(&mv_f[i].macaddr, &f->mac_info.mac_addr,
> ETH_ADDR_LEN);
> }
> - if (filter_type == RTE_MACVLAN_PERFECT_MATCH ||
> - filter_type == RTE_MACVLAN_HASH_MATCH) {
> + if (filter_type == I40E_MACVLAN_PERFECT_MATCH ||
> + filter_type == I40E_MACVLAN_HASH_MATCH) {
> ret = i40e_find_all_vlan_for_mac(vsi, mv_f, vlan_num, addr);
> if (ret != I40E_SUCCESS)
> goto DONE;
> diff --git a/drivers/net/i40e/i40e_ethdev.h
> b/drivers/net/i40e/i40e_ethdev.h index 1466998aa1..458219c784 100644
> --- a/drivers/net/i40e/i40e_ethdev.h
> +++ b/drivers/net/i40e/i40e_ethdev.h
> @@ -288,11 +288,22 @@ struct rte_flow {
> struct i40e_adapter;
> struct rte_pci_driver;
>
> +/**
> + * MAC filter type
> + */
> +enum i40e_mac_filter_type {
> + I40E_MAC_PERFECT_MATCH = 1, /**< exact match of MAC addr. */
> + I40E_MACVLAN_PERFECT_MATCH, /**< exact match of MAC addr
> and VLAN ID. */
> + I40E_MAC_HASH_MATCH, /**< hash match of MAC addr. */
> + /** hash match of MAC addr and exact match of VLAN ID. */
> + I40E_MACVLAN_HASH_MATCH,
> +};
> +
> /**
> * MAC filter structure
> */
> struct i40e_mac_filter_info {
> - enum rte_mac_filter_type filter_type;
> + enum i40e_mac_filter_type filter_type;
> struct rte_ether_addr mac_addr;
> };
>
> @@ -347,7 +358,7 @@ struct i40e_veb {
> /* i40e MACVLAN filter structure */
> struct i40e_macvlan_filter {
> struct rte_ether_addr macaddr;
> - enum rte_mac_filter_type filter_type;
> + enum i40e_mac_filter_type filter_type;
> uint16_t vlan_id;
> };
>
> diff --git a/drivers/net/i40e/i40e_pf.c b/drivers/net/i40e/i40e_pf.c index
> 03c2070c3f..65d649b627 100644
> --- a/drivers/net/i40e/i40e_pf.c
> +++ b/drivers/net/i40e/i40e_pf.c
> @@ -844,7 +844,7 @@
> i40e_pf_host_process_cmd_add_ether_address(struct i40e_pf_vf *vf,
> for (i = 0; i < addr_list->num_elements; i++) {
> mac = (struct rte_ether_addr *)(addr_list->list[i].addr);
> rte_memcpy(&filter.mac_addr, mac, RTE_ETHER_ADDR_LEN);
> - filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
> + filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
> if (rte_is_zero_ether_addr(mac) ||
> i40e_vsi_add_mac(vf->vsi, &filter)) {
> ret = I40E_ERR_INVALID_MAC_ADDR;
> diff --git a/drivers/net/i40e/rte_pmd_i40e.c
> b/drivers/net/i40e/rte_pmd_i40e.c index 17938e7d30..790d042002 100644
> --- a/drivers/net/i40e/rte_pmd_i40e.c
> +++ b/drivers/net/i40e/rte_pmd_i40e.c
> @@ -211,7 +211,7 @@ i40e_vsi_rm_mac_filter(struct i40e_vsi *vsi)
> struct i40e_mac_filter *f;
> struct i40e_macvlan_filter *mv_f;
> int i, vlan_num;
> - enum rte_mac_filter_type filter_type;
> + enum i40e_mac_filter_type filter_type;
> int ret = I40E_SUCCESS;
> void *temp;
>
> @@ -219,14 +219,14 @@ i40e_vsi_rm_mac_filter(struct i40e_vsi *vsi)
> TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
> vlan_num = vsi->vlan_num;
> filter_type = f->mac_info.filter_type;
> - if (filter_type == RTE_MACVLAN_PERFECT_MATCH ||
> - filter_type == RTE_MACVLAN_HASH_MATCH) {
> + if (filter_type == I40E_MACVLAN_PERFECT_MATCH ||
> + filter_type == I40E_MACVLAN_HASH_MATCH) {
> if (vlan_num == 0) {
> PMD_DRV_LOG(ERR, "VLAN number
> shouldn't be 0");
> return I40E_ERR_PARAM;
> }
> - } else if (filter_type == RTE_MAC_PERFECT_MATCH ||
> - filter_type == RTE_MAC_HASH_MATCH)
> + } else if (filter_type == I40E_MAC_PERFECT_MATCH ||
> + filter_type == I40E_MAC_HASH_MATCH)
> vlan_num = 1;
>
> mv_f = rte_zmalloc("macvlan_data", vlan_num *
> sizeof(*mv_f), 0); @@ -241,8 +241,8 @@ i40e_vsi_rm_mac_filter(struct
> i40e_vsi *vsi)
> &f->mac_info.mac_addr,
> ETH_ADDR_LEN);
> }
> - if (filter_type == RTE_MACVLAN_PERFECT_MATCH ||
> - filter_type == RTE_MACVLAN_HASH_MATCH) {
> + if (filter_type == I40E_MACVLAN_PERFECT_MATCH ||
> + filter_type == I40E_MACVLAN_HASH_MATCH) {
> ret = i40e_find_all_vlan_for_mac(vsi, mv_f,
> vlan_num,
> &f-
> >mac_info.mac_addr);
> if (ret != I40E_SUCCESS) {
> @@ -275,8 +275,8 @@ i40e_vsi_restore_mac_filter(struct i40e_vsi *vsi)
>
> /* restore all the MACs */
> TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
> - if ((f->mac_info.filter_type ==
> RTE_MACVLAN_PERFECT_MATCH) ||
> - (f->mac_info.filter_type ==
> RTE_MACVLAN_HASH_MATCH)) {
> + if (f->mac_info.filter_type ==
> I40E_MACVLAN_PERFECT_MATCH ||
> + f->mac_info.filter_type == I40E_MACVLAN_HASH_MATCH)
> {
> /**
> * If vlan_num is 0, that's the first time to add mac,
> * set mask for vlan_id 0.
> @@ -286,8 +286,8 @@ i40e_vsi_restore_mac_filter(struct i40e_vsi *vsi)
> vsi->vlan_num = 1;
> }
> vlan_num = vsi->vlan_num;
> - } else if ((f->mac_info.filter_type ==
> RTE_MAC_PERFECT_MATCH) ||
> - (f->mac_info.filter_type ==
> RTE_MAC_HASH_MATCH))
> + } else if (f->mac_info.filter_type ==
> I40E_MAC_PERFECT_MATCH ||
> + f->mac_info.filter_type ==
> I40E_MAC_HASH_MATCH)
> vlan_num = 1;
>
> mv_f = rte_zmalloc("macvlan_data", vlan_num *
> sizeof(*mv_f), 0); @@ -303,8 +303,8 @@ i40e_vsi_restore_mac_filter(struct
> i40e_vsi *vsi)
> ETH_ADDR_LEN);
> }
>
> - if (f->mac_info.filter_type ==
> RTE_MACVLAN_PERFECT_MATCH ||
> - f->mac_info.filter_type == RTE_MACVLAN_HASH_MATCH)
> {
> + if (f->mac_info.filter_type ==
> I40E_MACVLAN_PERFECT_MATCH ||
> + f->mac_info.filter_type == I40E_MACVLAN_HASH_MATCH)
> {
> ret = i40e_find_all_vlan_for_mac(vsi, mv_f,
> vlan_num,
> &f-
> >mac_info.mac_addr);
> if (ret != I40E_SUCCESS) {
> @@ -768,7 +768,7 @@ int rte_pmd_i40e_set_vf_broadcast(uint16_t port,
> uint16_t vf_id,
>
> if (on) {
> rte_memcpy(&filter.mac_addr, &broadcast,
> RTE_ETHER_ADDR_LEN);
> - filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
> + filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
> ret = i40e_vsi_add_mac(vsi, &filter);
> } else {
> ret = i40e_vsi_delete_mac(vsi, &broadcast); @@ -2388,7
> +2388,7 @@ rte_pmd_i40e_add_vf_mac_addr(uint16_t port, uint16_t vf_id,
> return -EINVAL;
> }
>
> - mac_filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
> + mac_filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
> rte_ether_addr_copy(mac_addr, &mac_filter.mac_addr);
> ret = i40e_vsi_add_mac(vsi, &mac_filter);
> if (ret != I40E_SUCCESS) {
> diff --git a/lib/librte_ethdev/rte_eth_ctrl.h
> b/lib/librte_ethdev/rte_eth_ctrl.h
> index bbb94eccce..a3d49e0913 100644
> --- a/lib/librte_ethdev/rte_eth_ctrl.h
> +++ b/lib/librte_ethdev/rte_eth_ctrl.h
> @@ -56,17 +56,6 @@ enum rte_filter_op {
> RTE_ETH_FILTER_OP_MAX
> };
>
> -/**
> - * MAC filter type
> - */
> -enum rte_mac_filter_type {
> - RTE_MAC_PERFECT_MATCH = 1, /**< exact match of MAC addr. */
> - RTE_MACVLAN_PERFECT_MATCH, /**< exact match of MAC addr
> and VLAN ID. */
> - RTE_MAC_HASH_MATCH, /**< hash match of MAC addr. */
> - /** hash match of MAC addr and exact match of VLAN ID. */
> - RTE_MACVLAN_HASH_MATCH,
> -};
> -
> /**
> * Define all structures for Ethertype Filter type.
> */
> --
> 2.17.1
More information about the dev
mailing list