Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/106603 _apply patch failure_ Submitter: Ke Zhang Date: Thursday, January 27 2022 09:21:44 Applied on: CommitID:5f6bc8a4edc50ba74eb28f974b6ebacdb799a5db Apply patch set 106603 failed: Checking patch drivers/net/ice/ice_dcf_vf_representor.c... error: while searching for: } return ret; } static const struct eth_dev_ops ice_dcf_vf_repr_dev_ops = { .dev_configure = ice_dcf_vf_repr_dev_configure, .dev_start = ice_dcf_vf_repr_dev_start, error: patch failed: drivers/net/ice/ice_dcf_vf_representor.c:513 error: while searching for: .vlan_tpid_set = ice_dcf_vf_repr_vlan_tpid_set, .stats_reset = ice_dcf_vf_repr_stats_reset, .stats_get = ice_dcf_vf_repr_stats_get, }; int error: patch failed: drivers/net/ice/ice_dcf_vf_representor.c:531 Applying patch drivers/net/ice/ice_dcf_vf_representor.c with 2 rejects... Rejected hunk #1. Rejected hunk #2. diff a/drivers/net/ice/ice_dcf_vf_representor.c b/drivers/net/ice/ice_dcf_vf_representor.c (rejected hunks) @@ -513,6 +513,56 @@ ice_dcf_vf_repr_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) } return ret; } +static int +ice_dcf_add_del_vlan_v2(struct rte_eth_dev *dev, uint16_t vlanid, bool add) +{ + struct ice_dcf_vf_repr *repr = dev->data->dev_private; + struct ice_dcf_hw *hw = ice_dcf_vf_repr_hw(repr); + struct virtchnl_vlan_filter_list_v2 vlan_filter; + struct dcf_virtchnl_cmd args; + struct virtchnl_vlan *vlan_setting; + int err; + + vlan_setting = &vlan_filter.filters[0].outer; + memset(&vlan_filter, 0, sizeof(vlan_filter)); + vlan_filter.vport_id = hw->vf_vsi_map[repr->vf_id] & ~VIRTCHNL_DCF_VF_VSI_VALID; + vlan_filter.num_elements = 1; + vlan_setting->tpid = RTE_ETHER_TYPE_VLAN; + vlan_setting->tci = vlanid; + + memset(&args, 0, sizeof(args)); + args.v_op = add ? VIRTCHNL_OP_ADD_VLAN_V2 : VIRTCHNL_OP_DEL_VLAN_V2; + args.req_msg = (uint8_t *)&vlan_filter; + args.req_msglen = sizeof(vlan_filter); + + err = ice_dcf_execute_virtchnl_cmd(hw, &args); + if (err) { + PMD_DRV_LOG(ERR, "Fail to execute command %s", + add ? "OP_ADD_ETH_ADDR" : "OP_DEL_ETH_ADDR"); + return err; + } + return 0; +} + +static int +ice_dcf_vf_repr_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) +{ + struct ice_dcf_vf_repr *repr = dev->data->dev_private; + int err; + + if (!ice_dcf_vlan_offload_ena(repr)) { + PMD_DRV_LOG(ERR, "It is not VLAN_V2"); + return -ENOTSUP; + } + + err = ice_dcf_add_del_vlan_v2(dev, vlan_id, on); + if (err) { + PMD_DRV_LOG(ERR, "Failed to set vlan filter, err:%d", err); + return -ENOTSUP; + } + return 0; +} + static const struct eth_dev_ops ice_dcf_vf_repr_dev_ops = { .dev_configure = ice_dcf_vf_repr_dev_configure, .dev_start = ice_dcf_vf_repr_dev_start, @@ -531,6 +581,7 @@ static const struct eth_dev_ops ice_dcf_vf_repr_dev_ops = { .vlan_tpid_set = ice_dcf_vf_repr_vlan_tpid_set, .stats_reset = ice_dcf_vf_repr_stats_reset, .stats_get = ice_dcf_vf_repr_stats_get, + .vlan_filter_set = ice_dcf_vf_repr_vlan_filter_set, }; int https://lab.dpdk.org/results/dashboard/patchsets/20839/ UNH-IOL DPDK Community Lab