[dpdk-dev,v3,6/6] net/enic: flow API documentation
Checks
Commit Message
Update enic NIC guide, release notes and add flow API to the
supported features list.
Signed-off-by: John Daley <johndale@cisco.com>
Reviewed-by: Nelson Escobar <neescoba@cisco.com>
---
doc/guides/nics/enic.rst | 51 ++++++++++++++++++++++++++++++++++
doc/guides/nics/features/enic.ini | 1 +
doc/guides/rel_notes/release_17_08.rst | 6 ++++
3 files changed, 58 insertions(+)
Comments
On 5/17/2017 4:03 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>
> Reviewed-by: Nelson Escobar <neescoba@cisco.com>
<...>
> How to build the suite
> ----------------------
> +=======
This part looks like git merge error?
> +- 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
> +the ENIC PMD library will be built into the DPDK library.
<...>
Sorry for the inconvenience Ferruh, hopefully this set will work better.
V4 patchset changes:
- include patch that was missing in V3 which caused compile errors
- put mark and flag support into a separate patch to make it more clear
what the code changes in enic_rxtx.c were for
- fixed a documentation merge error
- fix copyright, remove unnecessary check for dev == NULL
thanks,
johnd
John Daley (8):
net/enic: bring NIC interface functions up to date
net/enic: flow API skeleton
net/enic: flow API for NICs with advanced filters enabled
net/enic: flow API mark and flag support
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 | 52 ++
doc/guides/nics/features/enic.ini | 1 +
doc/guides/rel_notes/release_17_08.rst | 6 +
drivers/net/enic/Makefile | 1 +
drivers/net/enic/base/cq_enet_desc.h | 13 +
drivers/net/enic/base/vnic_dev.c | 162 +++-
drivers/net/enic/base/vnic_dev.h | 5 +-
drivers/net/enic/base/vnic_devcmd.h | 81 +-
drivers/net/enic/enic.h | 15 +-
drivers/net/enic/enic_clsf.c | 16 +-
drivers/net/enic/enic_ethdev.c | 18 +-
drivers/net/enic/enic_flow.c | 1544 ++++++++++++++++++++++++++++++++
drivers/net/enic/enic_main.c | 3 +
drivers/net/enic/enic_res.c | 15 +
drivers/net/enic/enic_rxtx.c | 16 +-
16 files changed, 1904 insertions(+), 45 deletions(-)
create mode 100644 drivers/net/enic/enic_flow.c
On 5/17/2017 11:38 PM, John Daley wrote:
> Sorry for the inconvenience Ferruh, hopefully this set will work better.
>
> V4 patchset changes:
> - include patch that was missing in V3 which caused compile errors
> - put mark and flag support into a separate patch to make it more clear
> what the code changes in enic_rxtx.c were for
> - fixed a documentation merge error
> - fix copyright, remove unnecessary check for dev == NULL
>
> thanks,
> johnd
>
> John Daley (8):
> net/enic: bring NIC interface functions up to date
> net/enic: flow API skeleton
> net/enic: flow API for NICs with advanced filters enabled
> net/enic: flow API mark and flag support
> 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
Series applied to dpdk-next-net/master, thanks.
@@ -213,6 +213,45 @@ or ``vfio`` in non-IOMMU mode.
Please see :ref:`Limitations <enic_limitations>` for limitations in
the use of SR-IOV.
+.. _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, ipv4, ipv6, udp, tcp
+ - Actions: queue and void
+ - Selectors: 'is', 'spec' and 'mask'. 'last' is not supported
+ - In total, up to 64 bytes of mask is allowed across all haeders
+
+- **1300 series VICS with Advanced filters enabled**
+
+ - Attributes: ingress
+ - Items: eth, ipv4, ipv6, udp, tcp, vxlan, inner eth, ipv4, ipv6, udp, tcp
+ - Actions: queue, mark, flag and void
+ - Selectors: 'is', 'spec' and 'mask'. 'last' is not supported
+ - In total, up to 64 bytes of mask is allowed across all haeders
+
+More features may be added in future firmware and new versions of the VIC.
+Please refer to the release notes.
+
.. _enic_limitations:
Limitations
@@ -262,6 +301,18 @@ Limitations
How to build the suite
----------------------
+=======
+- 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
+the ENIC PMD library will be built into the DPDK library.
Refer to the document :ref:`compiling and testing a PMD for a NIC
<pmd_build_and_test>` for details.
@@ -20,6 +20,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
@@ -41,6 +41,12 @@ New Features
Also, make sure to start the actual text at the margin.
=========================================================
+* **Added Generic Flow API support to enic.**
+
+ Generic flow API support for Ethernet, VLAN, IPv4, IPv6, UDP, TCP, VxLAN and
+ inner Ethernet IPv4, IPv6, UDP, TCP pattern items with QUEUE, MARK and FLAG
+ action for ingress traffic.
+
Resolved Issues
---------------