[PATCH v11 02/18] net/idpf: add support for device initialization

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Fri Oct 28 17:14:23 CEST 2022


On 10/25/22 11:57, Andrew Rybchenko wrote:
> On 10/24/22 16:12, Junfeng Guo wrote:
>> Support device init and add the following dev ops:
>>   - dev_configure
>>   - dev_close
>>   - dev_infos_get
>>
>> Signed-off-by: Beilei Xing <beilei.xing at intel.com>
>> Signed-off-by: Xiaoyun Li <xiaoyun.li at intel.com>
>> Signed-off-by: Xiao Wang <xiao.w.wang at intel.com>
>> Signed-off-by: Junfeng Guo <junfeng.guo at intel.com>

[snip]

>> +struct idpf_adapter *
>> +idpf_find_adapter(struct rte_pci_device *pci_dev)
> 
> It looks like the function requires corresponding lock to be
> held. If yes, it should be documented and code fixed. If no,
> it should be explaiend why.

I still don't understand it is a new patch. It is hardly safe to
return a pointer to an element list when you drop lock.

>> +    /* valid only if rxq_model is split Q */
>> +    uint16_t num_rx_bufq;
>> +
>> +    uint16_t max_mtu;
> 
> unused

Comments? It is still in place in a new version.

>> +int
>> +idpf_vc_get_caps(struct idpf_adapter *adapter)
>> +{
>> +    struct virtchnl2_get_capabilities caps_msg;
>> +    struct idpf_cmd_info args;
>> +    int err;
>> +
>> +     memset(&caps_msg, 0, sizeof(struct virtchnl2_get_capabilities));
>> +     caps_msg.csum_caps =
>> +         VIRTCHNL2_CAP_TX_CSUM_L3_IPV4        |
>> +         VIRTCHNL2_CAP_TX_CSUM_L4_IPV4_TCP    |
>> +         VIRTCHNL2_CAP_TX_CSUM_L4_IPV4_UDP    |
>> +         VIRTCHNL2_CAP_TX_CSUM_L4_IPV4_SCTP    |
>> +         VIRTCHNL2_CAP_TX_CSUM_L4_IPV6_TCP    |
>> +         VIRTCHNL2_CAP_TX_CSUM_L4_IPV6_UDP    |
>> +         VIRTCHNL2_CAP_TX_CSUM_L4_IPV6_SCTP    |
>> +         VIRTCHNL2_CAP_TX_CSUM_GENERIC        |
>> +         VIRTCHNL2_CAP_RX_CSUM_L3_IPV4        |
>> +         VIRTCHNL2_CAP_RX_CSUM_L4_IPV4_TCP    |
>> +         VIRTCHNL2_CAP_RX_CSUM_L4_IPV4_UDP    |
>> +         VIRTCHNL2_CAP_RX_CSUM_L4_IPV4_SCTP    |
>> +         VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_TCP    |
>> +         VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_UDP    |
>> +         VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_SCTP    |
>> +         VIRTCHNL2_CAP_RX_CSUM_GENERIC;
>> +
>> +     caps_msg.seg_caps =
>> +         VIRTCHNL2_CAP_SEG_IPV4_TCP        |
>> +         VIRTCHNL2_CAP_SEG_IPV4_UDP        |
>> +         VIRTCHNL2_CAP_SEG_IPV4_SCTP        |
>> +         VIRTCHNL2_CAP_SEG_IPV6_TCP        |
>> +         VIRTCHNL2_CAP_SEG_IPV6_UDP        |
>> +         VIRTCHNL2_CAP_SEG_IPV6_SCTP        |
>> +         VIRTCHNL2_CAP_SEG_GENERIC;
>> +
>> +     caps_msg.rss_caps =
>> +         VIRTCHNL2_CAP_RSS_IPV4_TCP        |
>> +         VIRTCHNL2_CAP_RSS_IPV4_UDP        |
>> +         VIRTCHNL2_CAP_RSS_IPV4_SCTP        |
>> +         VIRTCHNL2_CAP_RSS_IPV4_OTHER        |
>> +         VIRTCHNL2_CAP_RSS_IPV6_TCP        |
>> +         VIRTCHNL2_CAP_RSS_IPV6_UDP        |
>> +         VIRTCHNL2_CAP_RSS_IPV6_SCTP        |
>> +         VIRTCHNL2_CAP_RSS_IPV6_OTHER        |
>> +         VIRTCHNL2_CAP_RSS_IPV4_AH        |
>> +         VIRTCHNL2_CAP_RSS_IPV4_ESP        |
>> +         VIRTCHNL2_CAP_RSS_IPV4_AH_ESP        |
>> +         VIRTCHNL2_CAP_RSS_IPV6_AH        |
>> +         VIRTCHNL2_CAP_RSS_IPV6_ESP        |
>> +         VIRTCHNL2_CAP_RSS_IPV6_AH_ESP;
>> +
>> +     caps_msg.hsplit_caps =
>> +         VIRTCHNL2_CAP_RX_HSPLIT_AT_L2        |
>> +         VIRTCHNL2_CAP_RX_HSPLIT_AT_L3        |
>> +         VIRTCHNL2_CAP_RX_HSPLIT_AT_L4V4    |
>> +         VIRTCHNL2_CAP_RX_HSPLIT_AT_L4V6;
>> +
>> +     caps_msg.rsc_caps =
>> +         VIRTCHNL2_CAP_RSC_IPV4_TCP        |
>> +         VIRTCHNL2_CAP_RSC_IPV4_SCTP        |
>> +         VIRTCHNL2_CAP_RSC_IPV6_TCP        |
>> +         VIRTCHNL2_CAP_RSC_IPV6_SCTP;
>> +
>> +     caps_msg.other_caps =
>> +         VIRTCHNL2_CAP_RDMA            |
>> +         VIRTCHNL2_CAP_SRIOV            |
>> +         VIRTCHNL2_CAP_MACFILTER        |
>> +         VIRTCHNL2_CAP_FLOW_DIRECTOR        |
>> +         VIRTCHNL2_CAP_SPLITQ_QSCHED        |
>> +         VIRTCHNL2_CAP_CRC            |
>> +         VIRTCHNL2_CAP_WB_ON_ITR        |
>> +         VIRTCHNL2_CAP_PROMISC            |
>> +         VIRTCHNL2_CAP_LINK_SPEED        |
>> +         VIRTCHNL2_CAP_VLAN;
> 
> I'm wondering why all above capabilities are mentioned in the
> patch? What does the API do? Do it is request it? Negotiage?

Can I have answer on my question?



More information about the dev mailing list