[dpdk-dev,v2,7/7] net/enic: flow API documentation

Message ID 20170331020622.25498-8-johndale@cisco.com (mailing list archive)
State Changes Requested, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

John Daley (johndale) March 31, 2017, 2:06 a.m. UTC
  Update enic NIC guide, release notes and add flow API to the
supported features list.

Signed-off-by: John Daley <johndale@cisco.com>
---
 doc/guides/nics/enic.rst               | 44 ++++++++++++++++++++++++++++++++++
 doc/guides/nics/features/enic.ini      |  1 +
 doc/guides/rel_notes/release_17_05.rst |  6 +++++
 3 files changed, 51 insertions(+)
  

Comments

John McNamara April 2, 2017, 3:18 p.m. UTC | #1
> -----Original Message-----
> From: John Daley [mailto:johndale@cisco.com]
> Sent: Friday, March 31, 2017 3:06 AM
> To: Yigit, Ferruh <ferruh.yigit@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>
> Cc: dev@dpdk.org; John Daley <johndale@cisco.com>
> Subject: [PATCH v2 7/7] net/enic: flow API documentation
> 
> Update enic NIC guide, release notes and add flow API to the supported
> features list.
> 
> Signed-off-by: John Daley <johndale@cisco.com>
> ---
>  doc/guides/nics/enic.rst               | 44
> ++++++++++++++++++++++++++++++++++
>  doc/guides/nics/features/enic.ini      |  1 +
>  doc/guides/rel_notes/release_17_05.rst |  6 +++++
>  3 files changed, 51 insertions(+)
> 
> diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst index
> c535b589c..a71add3ab 100644
> --- a/doc/guides/nics/enic.rst
> +++ b/doc/guides/nics/enic.rst
> @@ -140,6 +140,43 @@ Masking of these feilds for partial match is also
> supported.
>  Without advanced filter support, the flow director is limited to IPv4
> perfect filtering of the 5-tuple with no masking of fields supported.
> 
> +.. _enic-genic-flow-api:
> +
> +Generic Flow API support
> +------------------------
> +
> +Generic Flow API is supported. The baseline support is:
> +
> +- **1200 series VICs**

If you wanted you could make the different series into sub headings.
However, that is up to you. The docs are also okay as is.

Acked-by: John McNamara <john.mcnamara@intel.com>
  
Ferruh Yigit May 12, 2017, 12:11 p.m. UTC | #2
On 3/31/2017 3:06 AM, John Daley wrote:
> Update enic NIC guide, release notes and add flow API to the
> supported features list.
> 
> Signed-off-by: John Daley <johndale@cisco.com>
> ---
>  doc/guides/nics/enic.rst               | 44 ++++++++++++++++++++++++++++++++++
>  doc/guides/nics/features/enic.ini      |  1 +
>  doc/guides/rel_notes/release_17_05.rst |  6 +++++

Patch needs to be rebased on top of latest next-net, to switch release
file 17.08, also enic.rst merge conflicts.

Thanks,
ferruh

>  3 files changed, 51 insertions(+)
<...>
  
John Daley (johndale) May 17, 2017, 3:03 a.m. UTC | #3
This V3 is rebased on dpdk-next-net and retargeted at 17.08.  Also,
inner ipv4, ipv6, udp, tcp support added for 1300 series VICs.

thank you,
johnd

John Daley (6):
  net/enic: flow API skeleton
  net/enic: flow API for NICs with advanced filters enabled
  net/enic: flow API for NICs with advanced filters disabled
  net/enic: flow API for Legacy NICs
  net/enic: flow API debug
  net/enic: flow API documentation

 config/common_base                     |    1 +
 doc/guides/nics/enic.rst               |   51 ++
 doc/guides/nics/features/enic.ini      |    1 +
 doc/guides/rel_notes/release_17_08.rst |    6 +
 drivers/net/enic/Makefile              |    1 +
 drivers/net/enic/enic.h                |   15 +-
 drivers/net/enic/enic_ethdev.c         |   21 +-
 drivers/net/enic/enic_flow.c           | 1547 ++++++++++++++++++++++++++++++++
 drivers/net/enic/enic_main.c           |    3 +
 drivers/net/enic/enic_res.c            |   15 +
 drivers/net/enic/enic_rxtx.c           |   16 +-
 11 files changed, 1671 insertions(+), 6 deletions(-)
 create mode 100644 drivers/net/enic/enic_flow.c
  
Ferruh Yigit May 17, 2017, 11:12 a.m. UTC | #4
On 5/17/2017 4:03 AM, John Daley wrote:
> This V3 is rebased on dpdk-next-net and retargeted at 17.08.  Also,
> inner ipv4, ipv6, udp, tcp support added for 1300 series VICs.
> 
> thank you,
> johnd
> 
> John Daley (6):
>   net/enic: flow API skeleton
>   net/enic: flow API for NICs with advanced filters enabled
>   net/enic: flow API for NICs with advanced filters disabled
>   net/enic: flow API for Legacy NICs
>   net/enic: flow API debug
>   net/enic: flow API documentation

Hi John,

I am getting multiple build errors from multiple reasons, I suspect
there was a git merge issue in the patchset, can you please double check
building the patchset?

Thanks,
ferruh
  

Patch

diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index c535b589c..a71add3ab 100644
--- a/doc/guides/nics/enic.rst
+++ b/doc/guides/nics/enic.rst
@@ -140,6 +140,43 @@  Masking of these feilds for partial match is also supported.
 Without advanced filter support, the flow director is limited to IPv4
 perfect filtering of the 5-tuple with no masking of fields supported.
 
+.. _enic-genic-flow-api:
+
+Generic Flow API support
+------------------------
+
+Generic Flow API is supported. The baseline support is:
+
+- **1200 series VICs**
+
+5-tuple exact Flow support for 1200 series adapters. This allows:
+
+  - Attributes: ingress
+  - Items: ipv4, ipv6, udp, tcp (must exactly match src/dst IP
+    addresses and ports and all must be specified).
+  - Actions: queue and void
+  - Selectors: 'is'
+
+- **1300 series VICS with Advanced filters disabled**
+
+With advanced filters disabled, an IPv4 or IPv6 item must be specified
+in the pattern.
+
+  - Attributes: ingress
+  - Items: eth, ipv4, ipv6, udp, tcp, vxlan, inner eth (full hdr masking)
+  - Actions: queue and void
+  - Selectors: 'is', 'spec' and 'mask'. 'last' is not supported
+
+- **1300 series VICS with Advanced filters enabled**
+
+  - Attributes: ingress
+  - Items: eth, ipv4, ipv6, udp, tcp, vxlan, inner eth (full hdr masking)
+  - Actions: queue, mark, flag and void
+  - Selectors: 'is', 'spec' and 'mask'. 'last' is not supported
+
+More features may be added in future firmware and new versions of the VIC.
+Please refer to the release notes.
+
 Limitations
 -----------
 
@@ -169,6 +206,13 @@  Limitations
 - Flow director features are not supported on generation 1 Cisco VIC adapters
   (M81KR and P81E)
 
+- The number of filters that can be specified with the Generic Flow API is
+  dependent on how many header fields are being masked. Use 'flow create' in
+  a loop to determine how many filters your VIC will support (not more than
+  1000 for 1300 series VICs. Filter are checked for matching in the order they
+  were added. Since there currently is no grouping or priority support,
+  'catch-all' filters should be added last.
+
 How to build the suite?
 -----------------------
 The build instructions for the DPDK suite should be followed. By default
diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini
index 51b330fa8..f1a877043 100644
--- a/doc/guides/nics/features/enic.ini
+++ b/doc/guides/nics/features/enic.ini
@@ -19,6 +19,7 @@  VLAN filter          = Y
 CRC offload          = Y
 VLAN offload         = Y
 Flow director        = Y
+Flow API             = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
 Packet type parsing  = Y
diff --git a/doc/guides/rel_notes/release_17_05.rst b/doc/guides/rel_notes/release_17_05.rst
index 26ae57f44..73b66eb17 100644
--- a/doc/guides/rel_notes/release_17_05.rst
+++ b/doc/guides/rel_notes/release_17_05.rst
@@ -98,6 +98,12 @@  New Features
   Rx queues can be armed with an interrupt which will trigger on the
   next packet arrival.
 
+* **Added Generic Flow API support to enic.**
+
+  Generic flow API support for Ethernet, VLAN, IPv4, IPv6, UDP, TCP, VxLAN and
+  inner Ethernet pattern items with QUEUE, MARK and FLAG action for ingress
+  traffic.
+
 * **Updated the sfc_efx driver.**
 
   * Generic flow API support for Ethernet, VLAN, IPv4, IPv6, UDP and TCP