Queue and vector resources for a given vport, are stored in the idpf_vport structure. At the time of configuration, these resources are accessed using vport pointer. Meaning, all the config path functions are tied to the default queue and vector resources of the vport.
There are use cases which can make use of config path functions to configure queue and vector resources that are not tied to any vport. One such use case is PTP secondary mailbox creation (it would be in a followup series). To configure queue and interrupt resources for such cases, we can make use of the existing config infrastructure by passing the necessary queue and vector resources info. To achieve this, group the existing queue and vector resources into default resource group and refactor the code to pass the resource pointer to the config path functions. This series also includes patches which generalizes the send virtchnl message APIs and mailbox API that are necessary for the implementation of PTP secondary mailbox. --- v4: * avoid returning an error in idpf_vport_init if PTP timestamp caps are not supported * re-flow the commit messages and cover letter to ~72chars per line based on off-list feedback from Paul Menzel <pmen...@molgen.mpg.de> v3: * rebase on top of libeth XDP and other patches v2: * rebase on top of PTP patch series Pavan Kumar Linga (9): idpf: introduce local idpf structure to store virtchnl queue chunks idpf: use existing queue chunk info instead of preparing it idpf: introduce idpf_q_vec_rsrc struct and move vector resources to it idpf: move queue resources to idpf_q_vec_rsrc structure idpf: reshuffle idpf_vport struct members to avoid holes idpf: add rss_data field to RSS function parameters idpf: generalize send virtchnl message API idpf: avoid calling get_rx_ptypes for each vport idpf: generalize mailbox API drivers/net/ethernet/intel/idpf/idpf.h | 152 ++- drivers/net/ethernet/intel/idpf/idpf_dev.c | 12 +- .../net/ethernet/intel/idpf/idpf_ethtool.c | 87 +- drivers/net/ethernet/intel/idpf/idpf_lib.c | 233 ++-- drivers/net/ethernet/intel/idpf/idpf_ptp.c | 17 +- drivers/net/ethernet/intel/idpf/idpf_txrx.c | 639 +++++----- drivers/net/ethernet/intel/idpf/idpf_txrx.h | 36 +- drivers/net/ethernet/intel/idpf/idpf_vf_dev.c | 15 +- .../net/ethernet/intel/idpf/idpf_virtchnl.c | 1130 ++++++++--------- .../net/ethernet/intel/idpf/idpf_virtchnl.h | 81 +- 10 files changed, 1252 insertions(+), 1150 deletions(-) -- 2.43.0