Thread (209 messages) 209 messages, 11 authors, 2021-04-12

Re: [dpdk-dev] [PATCH v9 00/10] ethdev: support SubFunction representor

From: Ferruh Yigit <hidden>
Date: 2021-03-16 19:19:05

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help