mbox series

[0/7] ethdev: add new Rx offload flags

Message ID 20190816055511.2322-1-pbhagavatula@marvell.com (mailing list archive)
Headers
Series ethdev: add new Rx offload flags |

Message

Pavan Nikhilesh Bhagavatula Aug. 16, 2019, 5:55 a.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Add new Rx offload flags `DEV_RX_OFFLOAD_RSS_HASH` and
`DEV_RX_OFFLOAD_FLOW_MARK`. These flags can be used to enable/disable PMD
writes to rte_mbuf fields `hash.rss` and `hash.fdir.hi` and also
`ol_flags:PKT_RX_RSS` and `ol_flags:PKT_RX_FDIR`.

Add new packet type set function `rte_eth_dev_set_supported_ptypes`, allows
application to inform PMDs about the packet types it is interested in.
Based on ptypes requested by application PMDs can optimize the Rx path.

For example, if a given PMD doesn't support any packet types that the
application is interested in then the application can disable[1] writes
to `mbuf.packet_type` done by the PMD and use a software ptype parser.
	[1] rte_eth_dev_set_supported_ptypes(*port_id*, 0);


Pavan Nikhilesh (7):
  ethdev: add set ptype function
  ethdev: add mbuf RSS update as a offload
  ethdev: add flow action type update as an offload
  net: update Rx RSS hash offload capabilities
  net: update Rx flow action offload capabilities
  net: add ptype set default functionality
  examples/eventdev_pipeline: add new Rx RSS hash offload

 doc/guides/nics/features.rst            | 24 ++++++++++++++++++---
 drivers/net/atlantic/atl_ethdev.c       | 12 +++++++++++
 drivers/net/bnxt/bnxt_ethdev.c          | 14 ++++++++++++-
 drivers/net/cxgbe/cxgbe.h               |  3 ++-
 drivers/net/cxgbe/cxgbe_ethdev.c        | 10 +++++++++
 drivers/net/dpaa/dpaa_ethdev.c          | 13 +++++++++++-
 drivers/net/dpaa2/dpaa2_ethdev.c        | 13 +++++++++++-
 drivers/net/e1000/igb_ethdev.c          | 13 ++++++++++++
 drivers/net/e1000/igb_rxtx.c            |  3 ++-
 drivers/net/enetc/enetc_ethdev.c        | 10 +++++++++
 drivers/net/enic/enic_ethdev.c          | 10 +++++++++
 drivers/net/enic/enic_res.c             |  4 +++-
 drivers/net/failsafe/failsafe_ops.c     | 10 +++++++++
 drivers/net/fm10k/fm10k_ethdev.c        | 13 +++++++++++-
 drivers/net/hinic/hinic_pmd_ethdev.c    |  3 ++-
 drivers/net/i40e/i40e_ethdev.c          |  5 ++++-
 drivers/net/i40e/i40e_ethdev_vf.c       |  1 +
 drivers/net/i40e/i40e_rxtx.c            |  9 ++++++++
 drivers/net/i40e/i40e_rxtx.h            |  1 +
 drivers/net/iavf/iavf_ethdev.c          | 16 +++++++++++++-
 drivers/net/ice/ice_ethdev.c            |  5 ++++-
 drivers/net/ice/ice_rxtx.c              |  9 ++++++++
 drivers/net/ice/ice_rxtx.h              |  1 +
 drivers/net/ixgbe/ixgbe_ethdev.c        | 13 ++++++++++++
 drivers/net/ixgbe/ixgbe_rxtx.c          |  4 +++-
 drivers/net/liquidio/lio_ethdev.c       |  3 ++-
 drivers/net/mlx4/mlx4.c                 |  1 +
 drivers/net/mlx4/mlx4.h                 |  1 +
 drivers/net/mlx4/mlx4_ethdev.c          | 21 +++++++++++++++++++
 drivers/net/mlx4/mlx4_rxq.c             |  3 ++-
 drivers/net/mlx5/mlx5.c                 |  2 ++
 drivers/net/mlx5/mlx5.h                 |  1 +
 drivers/net/mlx5/mlx5_ethdev.c          | 21 +++++++++++++++++++
 drivers/net/mlx5/mlx5_rxq.c             |  4 +++-
 drivers/net/mvneta/mvneta_ethdev.c      | 22 +++++++++++++++++++
 drivers/net/mvpp2/mrvl_ethdev.c         | 22 +++++++++++++++++++
 drivers/net/netvsc/hn_ethdev.c          |  3 ++-
 drivers/net/netvsc/hn_rndis.c           |  3 ++-
 drivers/net/netvsc/hn_var.h             |  3 ++-
 drivers/net/netvsc/hn_vf.c              | 10 ++++++++-
 drivers/net/nfp/nfp_net.c               | 13 +++++++++++-
 drivers/net/octeontx/octeontx_ethdev.c  | 10 +++++++++
 drivers/net/octeontx2/otx2_ethdev.c     |  4 +++-
 drivers/net/octeontx2/otx2_ethdev.h     | 17 ++++++++-------
 drivers/net/octeontx2/otx2_flow_parse.c |  3 ++-
 drivers/net/octeontx2/otx2_lookup.c     |  9 ++++++++
 drivers/net/qede/qede_ethdev.c          | 14 ++++++++++++-
 drivers/net/sfc/sfc_ethdev.c            | 11 ++++++++++
 drivers/net/sfc/sfc_rx.c                |  4 +++-
 drivers/net/tap/rte_eth_tap.c           | 10 +++++++++
 drivers/net/thunderx/nicvf_ethdev.c     | 10 +++++++++
 drivers/net/thunderx/nicvf_ethdev.h     |  3 ++-
 drivers/net/vmxnet3/vmxnet3_ethdev.c    | 15 ++++++++++++-
 examples/eventdev_pipeline/main.c       |  4 ++++
 lib/librte_ethdev/rte_ethdev.c          | 28 +++++++++++++++++++++++++
 lib/librte_ethdev/rte_ethdev.h          | 19 +++++++++++++++++
 lib/librte_ethdev/rte_ethdev_core.h     |  6 ++++++
 57 files changed, 483 insertions(+), 36 deletions(-)

--
2.22.0
  

Comments

Jerin Jacob Kollanukkaran Aug. 16, 2019, 6:02 a.m. UTC | #1
> -----Original Message-----
> From: pbhagavatula@marvell.com <pbhagavatula@marvell.com>
> Sent: Friday, August 16, 2019 11:25 AM
> To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; ferruh.yigit@intel.com
> Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula
> <pbhagavatula@marvell.com>
> Subject: [dpdk-dev] [PATCH 0/7] ethdev: add new Rx offload flags
> 
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> 
> Add new Rx offload flags `DEV_RX_OFFLOAD_RSS_HASH` and
> `DEV_RX_OFFLOAD_FLOW_MARK`. These flags can be used to
> enable/disable PMD writes to rte_mbuf fields `hash.rss` and `hash.fdir.hi`
> and also `ol_flags:PKT_RX_RSS` and `ol_flags:PKT_RX_FDIR`.
> 
> Add new packet type set function `rte_eth_dev_set_supported_ptypes`,
> allows application to inform PMDs about the packet types it is interested in.
> Based on ptypes requested by application PMDs can optimize the Rx path.
> 
> For example, if a given PMD doesn't support any packet types that the
> application is interested in then the application can disable[1] writes to
> `mbuf.packet_type` done by the PMD and use a software ptype parser.
> 	[1] rte_eth_dev_set_supported_ptypes(*port_id*, 0);
> 
> 
> Pavan Nikhilesh (7):
>   ethdev: add set ptype function
>   ethdev: add mbuf RSS update as a offload
>   ethdev: add flow action type update as an offload
>   net: update Rx RSS hash offload capabilities
>   net: update Rx flow action offload capabilities
>   net: add ptype set default functionality
>   examples/eventdev_pipeline: add new Rx RSS hash offload

Missing the examples update to disable ptype when not needed.