On 3/11/2021 1:13 PM, Xueming Li wrote:
SubFunction [1] is a portion of the PCI device, a SF netdev has its own
dedicated queues(txq, rxq). A SF netdev supports E-Switch representation
offload similar to existing PF and VF representors. A SF shares PCI
level resources with other SFs and/or with its parent PCI function.

 From SmartNIC perspective, when PCI device is shared for multi-host,
representors for host controller and host PF is required.

This patch set introduces new representor types in addtion to existing
VF representor. Syntax:

[[c#]pf#]vf#: VF port representor/s from controller/pf
[[c#]pf#]sf#: SF port representor/s from controller/pf
#: VF representor - for backwards compatibility

"#" is number instance, list or range, valid examples:
   1, [1,3,5], [0-3], [0,2-4,6]

For backward compatibility, this patch also introduces new netdev
capability to indicate the capability of supportting SF representor.

Version history:
  RFC:
        initial version [2]
  V2:
     - separate patch for represnetor infrastructure, controller, pf and
       sf.
     - replace representor ID macro with functions:
       rte_eth_representor_id_encode()
       rte_eth_representor_id_parse()
     - new patch to allow devargs with same PCI BDF but different
       representors.
     - other minor code updates according to comments, thanks Andrew!
     - update document
  V3:
     - improve probing of allowed devargs with same name.
     - parse single word of kvargs as key.
     - update kvargs test cases.
  V4:
     - split first representor refactor patch into
       1: add representor type
       2: refector representor list parsing
     - push the patch supporting multi-devargs for same device.
  V5:
     - add comments for parsing functions
     - update switch_representation.rst - Thanks Ajit
  V6:
     - split representor types into different patches, move to
       rte_ethdev.h
     - improvements of rte_eth_devargs_process_list() according to
       Andrew's suggestion
     - fixed PF probe failure for Intel i40e
     - replace ethdev SF capability with rte_eth_representor_info_get()
     - add new ethdev ops api to get representor info from PMD
     - replace representor ID encode/decode with conversion from
       representor info
     - change ethdev representor iterator to use new ID encoding
  V7:
     - error on duplicated representor argument:
       DBDF,representor=a,representor=b
     - fix pf representor type parsing
     - other small fixes suggested by Andrew.
  V8:
        - remove the "ignore" hint from pmd representor info
        - changed representor_id type in representor info to u32
        - rename rte_eth_representor_id_convert() to ..._get()
        - other small fixes suggested by Andrew
  V9:
        - more document for PMD to implement representor_info_get
          callback
        - updated ice and txgbe to adapt new representor type
        - updated 21.05 release notes
        - other small fixes suggested by Ferruh and Andrew, thanks.


Xueming Li (10):
   ethdev: introduce representor type
   ethdev: refactor representor port list parsing
   ethdev: support new VF representor syntax
   ethdev: support sub function representor
   kvargs: update parser to support multiple lists
   ethdev: support PF index in representor
   ethdev: support multi-host in representor
   ethdev: new API to get representor info
   ethdev: representor iterator compare complete info
   doc/release: add representor enhancements


Series applied to dpdk-next-net/main, thanks.

Reply via email to