net/ice: use ethernet copy API to do MAC assignment
[dpdk.git] / drivers / net / ice / ice_ethdev.c
index 2cbd82c..6b344cb 100644 (file)
@@ -166,6 +166,8 @@ static const struct rte_pci_id pci_id_ice_map[] = {
        { RTE_PCI_DEVICE(ICE_INTEL_VENDOR_ID, ICE_DEV_ID_C822N_BACKPLANE) },
        { RTE_PCI_DEVICE(ICE_INTEL_VENDOR_ID, ICE_DEV_ID_C822N_QSFP) },
        { RTE_PCI_DEVICE(ICE_INTEL_VENDOR_ID, ICE_DEV_ID_C822N_SFP) },
+       { RTE_PCI_DEVICE(ICE_INTEL_VENDOR_ID, ICE_DEV_ID_C822N_10G_BASE_T) },
+       { RTE_PCI_DEVICE(ICE_INTEL_VENDOR_ID, ICE_DEV_ID_C822N_SGMII) },
        { .vendor_id = 0, /* sentinel */ },
 };
 
@@ -873,7 +875,7 @@ ice_add_mac_filter(struct ice_vsi *vsi, struct rte_ether_addr *mac_addr)
                ret = -ENOMEM;
                goto DONE;
        }
-       rte_memcpy(&f->mac_info.mac_addr, mac_addr, ETH_ADDR_LEN);
+       rte_ether_addr_copy(mac_addr, &f->mac_info.mac_addr);
        TAILQ_INSERT_TAIL(&vsi->mac_list, f, next);
        vsi->mac_num++;
 
@@ -1576,7 +1578,7 @@ ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type)
                cfg = ICE_AQ_VSI_PROP_SECURITY_VALID |
                        ICE_AQ_VSI_PROP_FLOW_DIR_VALID;
                vsi_ctx.info.valid_sections |= rte_cpu_to_le_16(cfg);
-               cfg = ICE_AQ_VSI_FD_ENABLE | ICE_AQ_VSI_FD_PROG_ENABLE;
+               cfg = ICE_AQ_VSI_FD_ENABLE;
                vsi_ctx.info.fd_options = rte_cpu_to_le_16(cfg);
                vsi_ctx.info.max_fd_fltr_dedicated =
                        rte_cpu_to_le_16(hw->func_caps.fd_fltr_guar);
@@ -1604,9 +1606,10 @@ ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type)
 
                cfg = ICE_AQ_VSI_PROP_FLOW_DIR_VALID;
                vsi_ctx.info.valid_sections |= rte_cpu_to_le_16(cfg);
-               cfg = ICE_AQ_VSI_FD_ENABLE | ICE_AQ_VSI_FD_PROG_ENABLE;
+               cfg = ICE_AQ_VSI_FD_PROG_ENABLE;
                vsi_ctx.info.fd_options = rte_cpu_to_le_16(cfg);
                vsi_ctx.info.sw_id = hw->port_info->sw_id;
+               vsi_ctx.info.sw_flags2 = ICE_AQ_VSI_SW_FLAG_LAN_ENA;
                ret = ice_vsi_config_tc_queue_mapping(vsi,
                                                      &vsi_ctx.info,
                                                      ICE_DEFAULT_TCMAP);
@@ -1660,16 +1663,16 @@ ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type)
 
        if (type == ICE_VSI_PF) {
                /* MAC configuration */
-               rte_memcpy(pf->dev_addr.addr_bytes,
-                          hw->port_info->mac.perm_addr,
-                          ETH_ADDR_LEN);
+               rte_ether_addr_copy((struct rte_ether_addr *)
+                                       hw->port_info->mac.perm_addr,
+                                   &pf->dev_addr);
 
-               rte_memcpy(&mac_addr, &pf->dev_addr, RTE_ETHER_ADDR_LEN);
+               rte_ether_addr_copy(&pf->dev_addr, &mac_addr);
                ret = ice_add_mac_filter(vsi, &mac_addr);
                if (ret != ICE_SUCCESS)
                        PMD_INIT_LOG(ERR, "Failed to add dflt MAC filter");
 
-               rte_memcpy(&mac_addr, &broadcast, RTE_ETHER_ADDR_LEN);
+               rte_ether_addr_copy(&broadcast, &mac_addr);
                ret = ice_add_mac_filter(vsi, &mac_addr);
                if (ret != ICE_SUCCESS)
                        PMD_INIT_LOG(ERR, "Failed to add MAC filter");
@@ -3267,7 +3270,7 @@ static int ice_macaddr_set(struct rte_eth_dev *dev,
                PMD_DRV_LOG(ERR, "Failed to add mac filter");
                return -EIO;
        }
-       memcpy(&pf->dev_addr, mac_addr, ETH_ADDR_LEN);
+       rte_ether_addr_copy(mac_addr, &pf->dev_addr);
 
        flags = ICE_AQC_MAN_MAC_UPDATE_LAA_WOL;
        ret = ice_aq_manage_mac_write(hw, mac_addr->addr_bytes, flags, NULL);