From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <shahafs@mellanox.com>
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-eopbgr150048.outbound.protection.outlook.com [40.107.15.48])
 by dpdk.org (Postfix) with ESMTP id 69F0B11C5
 for <dev@dpdk.org>; Mon, 13 May 2019 07:26:24 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YDwgEYrBQg5aooFim6TeYv2sVyUdz7qi9Ru1ZmzXbgQ=;
 b=WN5SajMBtf00DdTJpaR6P1kZCTeYVDnyXnIMG2tUhRQymqH3Af9LhEwrepVUyUuB5hiyXG008apZMSP5q3QU3bkS6/Du89sB9svqi9cg3ueY2g4P/u9e+Jk0UgUaBqsg/Gz1r/sv8RIKqmSNp5gipOa/Q7U+9TF10j/0R+xw7t8=
Received: from AM0PR0502MB3795.eurprd05.prod.outlook.com (52.133.45.150) by
 AM0PR0502MB3650.eurprd05.prod.outlook.com (52.133.46.32) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1878.21; Mon, 13 May 2019 05:26:22 +0000
Received: from AM0PR0502MB3795.eurprd05.prod.outlook.com
 ([fe80::8c0:a6ef:6abc:334d]) by AM0PR0502MB3795.eurprd05.prod.outlook.com
 ([fe80::8c0:a6ef:6abc:334d%7]) with mapi id 15.20.1878.024; Mon, 13 May 2019
 05:26:22 +0000
From: Shahaf Shuler <shahafs@mellanox.com>
To: Ori Kam <orika@mellanox.com>, Yongseok Koh <yskoh@mellanox.com>, Matan
 Azrad <matan@mellanox.com>, Thomas Monjalon <thomas@monjalon.net>
CC: "dev@dpdk.org" <dev@dpdk.org>, Ori Kam <orika@mellanox.com>
Thread-Topic: [dpdk-dev] [PATCH v2] doc: fix update release notes for Mellanox
 drivers
Thread-Index: AQHVCQH3iBmYxfDcxUmmCR7KilLndqZofTZQ
Date: Mon, 13 May 2019 05:26:22 +0000
Message-ID: <AM0PR0502MB37952943E0415CC982CBBA10C30F0@AM0PR0502MB3795.eurprd05.prod.outlook.com>
References: <1557685859-121772-1-git-send-email-orika@mellanox.com>
 <1557693197-129982-1-git-send-email-orika@mellanox.com>
In-Reply-To: <1557693197-129982-1-git-send-email-orika@mellanox.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=shahafs@mellanox.com; 
x-originating-ip: [31.154.10.105]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f6d381d5-8aeb-4024-bc86-08d6d7638951
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);
 SRVR:AM0PR0502MB3650; 
x-ms-traffictypediagnostic: AM0PR0502MB3650:
x-ms-exchange-purlcount: 2
x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr
x-microsoft-antispam-prvs: <AM0PR0502MB3650B2D640DBF9A3DE5A177AC30F0@AM0PR0502MB3650.eurprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-forefront-prvs: 0036736630
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(376002)(346002)(136003)(396003)(39860400002)(189003)(199004)(74316002)(5660300002)(966005)(305945005)(68736007)(53946003)(6506007)(19627235002)(102836004)(5024004)(186003)(99286004)(14444005)(256004)(7110500001)(26005)(14454004)(7736002)(478600001)(229853002)(6436002)(55016002)(30864003)(86362001)(2420400007)(486006)(15650500001)(476003)(52536014)(8936002)(110136005)(54906003)(4326008)(71190400001)(11346002)(71200400001)(25786009)(446003)(66066001)(3846002)(7696005)(6116002)(53936002)(76176011)(6246003)(107886003)(2906002)(9686003)(6306002)(73956011)(66476007)(66556008)(64756008)(66446008)(81156014)(81166006)(66946007)(316002)(76116006)(33656002)(579004);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3650;
 H:AM0PR0502MB3795.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: mellanox.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 36vpoHuhH+5krjh7mq9uXZwWZB+pocJCrv1mtxsTywMSXr/vV2uGTmmmH4dMrsQZdTdx2pRez59mZmyTWP4q87gGzQJNXDDaLeFRhIIskQIjWsWXcNyjz9joXcLcN6NUiKeMcy46uxPNp3dnHxgjPVpwTe8nFtgGmFaV0aUXpw9gsqlug5ht/9OCzPfYqR2C4nG9VWLseZ04jQ7QkM+dN/ID9TfOFY4oWuxbB9a0LfANuAjS2DpiTkmhEC/0HnijKzm1BCbEtZFD+Rm1nm9lSH/7aIBVX/tGNsmSV6r0PFnxcdGe8Wyop6KZRJdlcV/1W2ATQsOozPxp4arF/Y+Ec/CL5t6pnKA8HZZ0/OUPBHwiFmNhbnwM2aC3pgUcqnpaW98rWrzGkr9OmCbrSQHDt4OHHWbqiPk8Tqq9y08/mAE=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: Mellanox.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6d381d5-8aeb-4024-bc86-08d6d7638951
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 May 2019 05:26:22.2124 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3650
Subject: Re: [dpdk-dev] [PATCH v2] doc: fix update release notes for
	Mellanox	drivers
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 13 May 2019 05:26:24 -0000

Hi Ori,

See some comments below.=20

Sunday, May 12, 2019 11:33 PM, Ori Kam:
> Subject: [dpdk-dev] [PATCH v2] doc: fix update release notes for Mellanox
> drivers
>=20
> This patch adds some missing features to Mellanox drivers release notes.
> It also updates the mlx5/mlx4 documentations.
>=20
> Fixes: d85b204b5dba ("doc: update release notes for Mellanox drivers")
> Cc: yskoh@mellanox.com
>=20
> Signed-off-by: Ori Kam <orika@mellanox.com>
>=20
> ---
>=20
> v2:
>  * fix checkpatch warning.
>=20
> ---
>  doc/guides/nics/mlx4.rst               |   2 +-
>  doc/guides/nics/mlx5.rst               | 150 ++++++++++++++++++++++-----=
------
>  doc/guides/rel_notes/release_19_05.rst |  10 ++-
>  3 files changed, 109 insertions(+), 53 deletions(-)
>=20
> diff --git a/doc/guides/nics/mlx4.rst b/doc/guides/nics/mlx4.rst index
> f6d7a16..5c6bbde 100644
> --- a/doc/guides/nics/mlx4.rst
> +++ b/doc/guides/nics/mlx4.rst
> @@ -253,7 +253,7 @@ thanks to these environment variables:
>  Mellanox OFED as a fallback
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>=20
> -- `Mellanox OFED`_ version: **4.4, 4.5**.
> +- `Mellanox OFED`_ version: **4.4, 4.5, 4.6**.
>  - firmware version: **2.42.5000** and above.
>=20
>  .. _`Mellanox OFED`:
> http://www.mellanox.com/page/products_dyn?product_family=3D26&mtag=3Dli
> nux_sw_drivers
> diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index
> 325e9f6..5cf7744 100644
> --- a/doc/guides/nics/mlx5.rst
> +++ b/doc/guides/nics/mlx5.rst
> @@ -7,7 +7,7 @@ MLX5 poll mode driver
>=20
>  The MLX5 poll mode driver library (**librte_pmd_mlx5**) provides support
> for **Mellanox ConnectX-4**, **Mellanox ConnectX-4 Lx** , **Mellanox -
> ConnectX-5**, **Mellanox ConnectX-6** and **Mellanox Bluefield**
> families
> +ConnectX-5**, **Mellanox ConnectX-6** and **Mellanox BlueField**
> +families
>  of 10/25/40/50/100/200 Gb/s adapters as well as their virtual functions =
(VF)
> in SR-IOV context.
>=20
> @@ -62,8 +62,8 @@ Features
>  - RX VLAN stripping.
>  - TX VLAN insertion.
>  - RX CRC stripping configuration.
> -- Promiscuous mode.
> -- Multicast promiscuous mode.
> +- Promiscuous mode on PF and VF.
> +- Multicast promiscuous mode on PF and VF.
>  - Hardware checksum offloads.
>  - Flow director (RTE_FDIR_MODE_PERFECT,
> RTE_FDIR_MODE_PERFECT_MAC_VLAN and
>    RTE_ETH_FDIR_REJECT).
> @@ -78,6 +78,11 @@ Features
>  - Rx HW timestamp.
>  - Tunnel types: VXLAN, L3 VXLAN, VXLAN-GPE, GRE, MPLSoGRE, MPLSoUDP.
>  - Tunnel HW offloads: packet type, inner/outer RSS, IP and UDP checksum
> verification.
> +- Nic HW offloads: encapsulation (vxlan, gre, mplsoudp, mplsogre), NAT,
> +routing, TTL
> +  increment/decrement, count, drop, mark. For details please see
> :ref:`Supported hardware offloads using rte_flow API`.
> +- Flow insertion rate of more then million flows per second. When using
> Direct Rules.

Replace '.' with ',' .

> +- Support groups.

Support for multiple rte_flow groups.

> +- Support raw encapsulation offload.

Can't it be part of the encapsulation part above?

>=20
>  Limitations
>  -----------
> @@ -112,8 +117,6 @@ Limitations
>    is set to multi-packet send or Enhanced multi-packet send. Otherwise i=
t
> must have
>    less than 50 segments.
>=20
> -- Count action for RTE flow is **only supported in Mellanox OFED**.
> -
>  - Flows with a VXLAN Network Identifier equal (or ends to be equal)
>    to 0 are not supported.
>=20
> @@ -124,13 +127,6 @@ Limitations
>  - VF: flow rules created on VF devices can only match traffic targeted a=
t the
>    configured MAC addresses (see ``rte_eth_dev_mac_addr_add()``).
>=20
> -.. note::
> -
> -   MAC addresses not already present in the bridge table of the associat=
ed
> -   kernel network device will be added and cleaned up by the PMD when
> closing
> -   the device. In case of ungraceful program termination, some entries m=
ay
> -   remain present and should be removed manually by other means.
> -

This is still correct, why removed?

>  - When Multi-Packet Rx queue is configured (``mprq_en``), a Rx packet ca=
n
> be
>    externally attached to a user-provided mbuf with having
> EXT_ATTACHED_MBUF in
>    ol_flags. As the mempool for the external buffer is managed by PMD, al=
l
> the @@ -147,30 +143,18 @@ Limitations
>    To receive IPv6 Multicast messages on VM, explicitly set the relevant
>    MAC address using rte_eth_dev_mac_addr_add() API.
>=20
> -- E-Switch VXLAN tunnel is not supported together with outer VLAN.
> -
> -- E-Switch Flows with VNI pattern must include the VXLAN decapsulation
> action.
> -
> -- E-Switch VXLAN decapsulation Flow:
> +- E-Switch decapsulation Flow:
>=20
>    - can be applied to PF port only.
>    - must specify VF port action (packet redirection from PF to VF).
> -  - must specify tunnel outer UDP local (destination) port, wildcards no=
t
> allowed.
> -  - must specify tunnel outer VNI, wildcards not allowed.
> -  - must specify tunnel outer local (destination)  IPv4 or IPv6 address,
> wildcards not allowed.
> -  - optionally may specify tunnel outer remote (source) IPv4 or IPv6,
> wildcards or group IPs allowed.
>    - optionally may specify tunnel inner source and destination MAC
> addresses.
>=20
> -- E-Switch VXLAN encapsulation Flow:
> +- E-Switch  encapsulation Flow:
>=20
>    - can be applied to VF ports only.
>    - must specify PF port action (packet redirection from VF to PF).
> -  - must specify the VXLAN item with tunnel outer parameters.
> -  - must specify the tunnel outer VNI in the VXLAN item.
> -  - must specify the tunnel outer remote (destination) UDP port in the
> VXLAN item.
> -  - must specify the tunnel outer local (source) IPv4 or IPv6 in the , t=
his
> address will locally (with scope link) assigned to the outer network inte=
rface,
> wildcards not allowed.
> -  - must specify the tunnel outer remote (destination) IPv4 or IPv6 in t=
he
> VXLAN item, group IPs allowed.
> -  - must specify the tunnel outer destination MAC address in the VXLAN
> item, this address will be used to create neigh rule.
> +
> +- Groups, E-Switch steering, fast inseration rate are supported only wit=
h
> Mellanox OFED 4.6.2 and above.

I think the right place for such limitations is the table below (Supported =
hardware offloads using rte_flow API).=20

>=20
>  Statistics
>  ----------
> @@ -227,7 +211,7 @@ These options can be modified in the ``.config`` file=
.
>=20
>  .. note::
>=20
> -   For Bluefield, target should be set to ``arm64-bluefield-linux-gcc``.=
 This
> +   For BlueField, target should be set to
> + ``arm64-bluefield-linux-gcc``. This
>     will enable ``CONFIG_RTE_LIBRTE_MLX5_PMD`` and set
> ``RTE_CACHE_LINE_SIZE`` to
>     64. Default armv8a configuration of make build and meson build set it=
 to
> 128
>     then brings performance degradation.
> @@ -277,8 +261,8 @@ Run-time configuration
>=20
>    Supported on:
>=20
> -  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> -  - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> +  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
> +  - POWER9 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
>=20
>  - ``rxq_cqe_pad_en`` parameter [int]
>=20
> @@ -296,7 +280,7 @@ Run-time configuration
>=20
>    Supported on:
>=20
> -  - CPU having 128B cacheline with ConnectX-5 and Bluefield.
> +  - CPU having 128B cacheline with ConnectX-5 and BlueField.
>=20
>  - ``rxq_pkt_pad_en`` parameter [int]
>=20
> @@ -308,8 +292,8 @@ Run-time configuration
>=20
>    Supported on:
>=20
> -  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> -  - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> +  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
> +  - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
>=20
>  - ``mprq_en`` parameter [int]
>=20
> @@ -375,13 +359,13 @@ Run-time configuration
>=20
>    This option should be used in combination with ``txq_inline`` above.
>=20
> -  On ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and Bluefield
> without
> +  On ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and BlueField
> + without
>    Enhanced MPW:
>=20
>          - Disabled by default.
>          - In case ``txq_inline`` is set recommendation is 4.
>=20
> -  On ConnectX-5, ConnectX-6 and Bluefield with Enhanced MPW:
> +  On ConnectX-5, ConnectX-6 and BlueField with Enhanced MPW:
>=20
>          - Set to 8 by default.
>=20
> @@ -395,14 +379,14 @@ Run-time configuration
>          - Set to 8 by default on ARMv8.
>          - Set to 4 by default otherwise.
>=20
> -  On Bluefield
> +  On BlueField
>=20
>          - Set to 16 by default.
>=20
>  - ``txq_mpw_en`` parameter [int]
>=20
>    A nonzero value enables multi-packet send (MPS) for ConnectX-4 Lx and
> -  enhanced multi-packet send (Enhanced MPS) for ConnectX-5, ConnectX-6
> and Bluefield.
> +  enhanced multi-packet send (Enhanced MPS) for ConnectX-5, ConnectX-6
> and BlueField.
>    MPS allows the TX burst function to pack up multiple packets in a
>    single descriptor session in order to save PCI bandwidth and improve
>    performance at the cost of a slightly higher CPU usage. When @@ -417,1=
3
> +401,13 @@ Run-time configuration
>    DEV_TX_OFFLOAD_VXLAN_TNL_TSO, DEV_TX_OFFLOAD_GRE_TNL_TSO,
> DEV_TX_OFFLOAD_VLAN_INSERT``.
>    When those offloads are requested the MPS send function will not be
> used.
>=20
> -  It is currently only supported on the ConnectX-4 Lx, ConnectX-5, Conne=
ctX-
> 6 and Bluefield
> +  It is currently only supported on the ConnectX-4 Lx, ConnectX-5,
> + ConnectX-6 and BlueField
>    families of adapters.
>    On ConnectX-4 Lx the MPW is considered un-secure hence disabled by
> default.
>    Users which enable the MPW should be aware that application which
> provides incorrect
>    mbuf descriptors in the Tx burst can lead to serious errors in the hos=
t
> including, on some cases,
>    NIC to get stuck.
> -  On ConnectX-5, ConnectX-6 and Bluefield the MPW is secure and enabled
> by default.
> +  On ConnectX-5, ConnectX-6 and BlueField the MPW is secure and enabled
> by default.
>=20
>  - ``txq_mpw_hdr_dseg_en`` parameter [int]
>=20
> @@ -443,14 +427,14 @@ Run-time configuration
>=20
>  - ``tx_vec_en`` parameter [int]
>=20
> -  A nonzero value enables Tx vector on ConnectX-5, ConnectX-6 and
> Bluefield NICs if the number of
> +  A nonzero value enables Tx vector on ConnectX-5, ConnectX-6 and
> + BlueField NICs if the number of
>    global Tx queues on the port is less than ``txqs_max_vec``.
>=20
>    This option cannot be used with certain offloads such as
> ``DEV_TX_OFFLOAD_TCP_TSO,
>    DEV_TX_OFFLOAD_VXLAN_TNL_TSO, DEV_TX_OFFLOAD_GRE_TNL_TSO,
> DEV_TX_OFFLOAD_VLAN_INSERT``.
>    When those offloads are requested the MPS send function will not be
> used.
>=20
> -  Enabled by default on ConnectX-5, ConnectX-6 and Bluefield.
> +  Enabled by default on ConnectX-5, ConnectX-6 and BlueField.
>=20
>  - ``rx_vec_en`` parameter [int]
>=20
> @@ -480,10 +464,15 @@ Run-time configuration
>=20
>    A nonzero value enables the DV flow steering assuming it is supported
>    by the driver.
> -  The DV flow steering is not supported on switchdev mode.
>=20
>    Disabled by default.
>=20
> +- ``dv_esw_en`` parameter [int]
> +
> +  A nonzero value enables E-Switch using Direct Rules.
> +
> +  Enabled by default if supported.
> +
>  - ``mr_ext_memseg_en`` parameter [int]
>=20
>    A nonzero value enables extending memseg when registering DMA
> memory. If @@ -545,7 +534,7 @@ DPDK and must be installed separately:
>  - **libmlx5**
>=20
>    Low-level user space driver library for Mellanox
> -  ConnectX-4/ConnectX-5/ConnectX-6/Bluefield devices, it is automaticall=
y
> loaded
> +  ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices, it is
> + automatically loaded
>    by libibverbs.
>=20
>    This library basically implements send/receive calls to the hardware @=
@ -
> 567,7 +556,7 @@ DPDK and must be installed separately:
>    their devices:
>=20
>    - mlx5_core: hardware driver managing Mellanox
> -    ConnectX-4/ConnectX-5/ConnectX-6/Bluefield devices and related
> Ethernet kernel
> +    ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices and related
> + Ethernet kernel
>      network devices.
>    - mlx5_ib: InifiniBand device driver.
>    - ib_uverbs: user space driver for Verbs (entry point for libibverbs).
> @@ -575,7 +564,7 @@ DPDK and must be installed separately:
>  - **Firmware update**
>=20
>    Mellanox OFED/EN releases include firmware updates for
> -  ConnectX-4/ConnectX-5/ConnectX-6/Bluefield adapters.
> +  ConnectX-4/ConnectX-5/ConnectX-6/BlueField adapters.
>=20
>    Because each release provides new features, these updates must be
> applied to
>    match the kernel modules and libraries they come with.
> @@ -595,7 +584,7 @@ releases.
>  RDMA Core with Linux Kernel
>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>=20
> -- Minimal kernel version : v4.14 or the most recent 4.14-rc (see `Linux
> installation documentation`_)
> +- Minimal kernel version : v4.14 or the most recent 5.1.0-rc (see
> +`Linux installation documentation`_)
>  - Minimal rdma-core version: v15+ commit 0c5f5765213a ("Merge pull
> request #227 from yishaih/tm")
>    (see `RDMA Core installation documentation`_)
>  - When building for i686 use:
> @@ -622,7 +611,8 @@ thanks to these environment variables:
>  Mellanox OFED/EN
>  ^^^^^^^^^^^^^^^^
>=20
> -- Mellanox OFED version: **4.4, 4.5** / Mellanox EN version: **4.5**
> +- Mellanox OFED version: ** 4.5, 4.6** /
> +  Mellanox EN version: **4.5, 4.6**
>  - firmware version:
>=20
>    - ConnectX-4: **12.21.1000** and above.
> @@ -630,7 +620,7 @@ Mellanox OFED/EN
>    - ConnectX-5: **16.21.1000** and above.
>    - ConnectX-5 Ex: **16.21.1000** and above.
>    - ConnectX-6: **20.99.5374** and above.
> -  - Bluefield: **18.99.3950** and above.
> +  - BlueField: **18.25.1010** and above.
>=20
>  While these libraries and kernel modules are available on OpenFabrics
> Alliance's `website
> <https://eur03.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fww
> w.openfabrics.org%2F&amp;data=3D02%7C01%7Cshahafs%40mellanox.com%7
> C6432343b75294926c94c08d6d71918dc%7Ca652971c7d2e4d9ba6a4d149256f4
> 61b%7C0%7C0%7C636932900128053421&amp;sdata=3Dd8coRBxwMI62n%2FB1I
> E4mOcoVHs4lsiDl7kSgVljJBeY%3D&amp;reserved=3D0>`__ and provided by
> package @@ -766,6 +756,34 @@ Quick Start Guide on OFED/EN  6. Compile
> DPDK and you are ready to go. See instructions on
>     :ref:`Development Kit Build System <Development_Kit_Build_System>`
>=20
> +Enable E-Switch mode
> +--------------------

It is how to enable switchdev mode right? Not e-switch mode.=20
Need to put a few words on what it is switchdev mode and why it is needed.=
=20

> +
> +1. Enable SRIOV mode:
> +
> +  .. code-block:: console
> +
> +        mlxconfig -d <mst device> set SRIOV_EN=3Dtrue
> +
> +2. Configure the number of VFs:

This is the max number of VFs.

> +
> +  .. code-block:: console
> +
> +        mlxconfig -d <mst device> set NUM_OF_VFS=3D<num of vfs>
> +        echo <num of vfs > /sys/class/net/<net
> + device>/device/sriov_numvfs

Need to reset FW after it.

Also - where do you create the actual VFs?

> +
> +3. Unbind the device (can be rebind after the switchdev mode):
> +
> +  .. code-block:: console
> +
> +        echo -n "<device pci address" >
> + /sys/bus/pci/drivers/mlx5_core/unbind
> +
> +4. Enbale switchdev mode:
> +
> +  .. code-block:: console
> +
> +        echo switchdev > /sys/class/net/<net
> + device>/compat/devlink/mode
> +
>  Performance tuning
>  ------------------
>=20
> @@ -842,6 +860,38 @@ Performance tuning
>     - Configure per-lcore cache when creating Mempools for packet buffer.
>     - Refrain from dynamically allocating/freeing memory in run-time.
>=20
> +Supported hardware offloads using rte_flow API
> +----------------------------------------------
> +
> +.. _Supported hardware offloads using rte_flow API:
> +
> +.. table:: Supported hardware offloads using rte_flow API
> +
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Offload       | E-Switch  | NIC PF      | VF representor  | PF repr=
esentor |
> +   |               | (SRIOV)   | (non SRIOV) | (SRIOV)         | (SRIOV)=
        |
> +
> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D
> =3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
> +   | Encapsulation |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Multi table   |     V     |     V       |        V        |       V=
*       |
> +   | support       |           |             |                 |        =
        |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | NAT           |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Routing       |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | TTL inc/dec   |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Count         |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Drop          |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Mark          |    N/A    |     V       |        V        |       V=
*       |
> +
> + +---------------+-----------+-------------+-----------------+---------
> + -------+
> +
> +| V ConnectX-5
> +| V* ConnectX-5 & BlueField
> +

What is the difference between E-Switch (SRIOV), VF representor (SRIOV) and=
 PF representor (SRIOV)? On switchdev mode every rule is either for the VF/=
uplink representor.=20

The matrix is a bit more complex than what you show here.=20
IMO-  the matrix has 2 column (E-Switch and NIC) and 2/3 dimensions (minima=
l NIC that support, minimal DPDK that support, minimal OFED/upstream kernel=
 which support(?)). =20
The columns need to be RTE_FLOW actions (let's leave the RTE_FLOW items asi=
de for a moment). Because NAT, for example, may require different actions o=
n different implementations.=20


>  Notes for testpmd
>  -----------------
>=20
> @@ -863,7 +913,7 @@ Usage example
>  -------------
>=20
>  This section demonstrates how to launch **testpmd** with Mellanox -
> ConnectX-4/ConnectX-5/ConnectX-6/Bluefield devices managed by
> librte_pmd_mlx5.
> +ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by
> librte_pmd_mlx5.
>=20
>  #. Load the kernel modules:
>=20
> diff --git a/doc/guides/rel_notes/release_19_05.rst
> b/doc/guides/rel_notes/release_19_05.rst
> index 4e0eed5..489273b 100644
> --- a/doc/guides/rel_notes/release_19_05.rst
> +++ b/doc/guides/rel_notes/release_19_05.rst
> @@ -148,10 +148,16 @@ New Features
>     * Added support for multiport InfiniBand device.
>     * Added control of excessive memory pinning by kernel.
>     * Added support of DMA memory registration by secondary process.
> -   * Added Direct Rule support in Direct Verbs flow driver.
>     * Added support of per-process device registers, reserving identical =
VA
> space
>       is not needed anymore.
> -   * Added E-Switch support in Direct Verbs flow driver.
> +   * Added Direct Rule support for Nic steering, in Direct Verbs driver.
> +   * Added Direct Rule support for E-Switch steering, in Direct Verbs dr=
iver.

People who read the release notes doesn't necessarily read the entire mlx5 =
manual. It is not clear what Direct rule is and why it is good.
I would drop this part.


> +   * Added support for jump action for both E-Switch and Nic when using
> +     Direct Rules.

How can user know if it uses Direct rule or not? I would just stick with:
"Support rte_flow jump action"

> +   * Added Group Support for Nic steering when using Direct Rules.

Again:
"Support multiple rte_flow groups"

> +   * Support millions of offloaded flow rules.
> +   * Improved flow insertion rate to millions of flows per second when u=
sing
> +     Direct Rules and group larger then 0.

I would say:
* flow engine re-design to support large scale deployments. This include:
1. support millions of rte_flow rules
2. fast flow insertion and deletion up to 1M flow update per second.=20


>=20
>  * **Renamed avf to iavf.**
>=20
> --
> 1.8.3.1

From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id C3A40A00E6
	for <public@inbox.dpdk.org>; Mon, 13 May 2019 07:26:25 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 8288B2BC1;
	Mon, 13 May 2019 07:26:25 +0200 (CEST)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-eopbgr150048.outbound.protection.outlook.com [40.107.15.48])
 by dpdk.org (Postfix) with ESMTP id 69F0B11C5
 for <dev@dpdk.org>; Mon, 13 May 2019 07:26:24 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YDwgEYrBQg5aooFim6TeYv2sVyUdz7qi9Ru1ZmzXbgQ=;
 b=WN5SajMBtf00DdTJpaR6P1kZCTeYVDnyXnIMG2tUhRQymqH3Af9LhEwrepVUyUuB5hiyXG008apZMSP5q3QU3bkS6/Du89sB9svqi9cg3ueY2g4P/u9e+Jk0UgUaBqsg/Gz1r/sv8RIKqmSNp5gipOa/Q7U+9TF10j/0R+xw7t8=
Received: from AM0PR0502MB3795.eurprd05.prod.outlook.com (52.133.45.150) by
 AM0PR0502MB3650.eurprd05.prod.outlook.com (52.133.46.32) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1878.21; Mon, 13 May 2019 05:26:22 +0000
Received: from AM0PR0502MB3795.eurprd05.prod.outlook.com
 ([fe80::8c0:a6ef:6abc:334d]) by AM0PR0502MB3795.eurprd05.prod.outlook.com
 ([fe80::8c0:a6ef:6abc:334d%7]) with mapi id 15.20.1878.024; Mon, 13 May 2019
 05:26:22 +0000
From: Shahaf Shuler <shahafs@mellanox.com>
To: Ori Kam <orika@mellanox.com>, Yongseok Koh <yskoh@mellanox.com>, Matan
 Azrad <matan@mellanox.com>, Thomas Monjalon <thomas@monjalon.net>
CC: "dev@dpdk.org" <dev@dpdk.org>, Ori Kam <orika@mellanox.com>
Thread-Topic: [dpdk-dev] [PATCH v2] doc: fix update release notes for Mellanox
 drivers
Thread-Index: AQHVCQH3iBmYxfDcxUmmCR7KilLndqZofTZQ
Date: Mon, 13 May 2019 05:26:22 +0000
Message-ID:
 <AM0PR0502MB37952943E0415CC982CBBA10C30F0@AM0PR0502MB3795.eurprd05.prod.outlook.com>
References: <1557685859-121772-1-git-send-email-orika@mellanox.com>
 <1557693197-129982-1-git-send-email-orika@mellanox.com>
In-Reply-To: <1557693197-129982-1-git-send-email-orika@mellanox.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=shahafs@mellanox.com; 
x-originating-ip: [31.154.10.105]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f6d381d5-8aeb-4024-bc86-08d6d7638951
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);
 SRVR:AM0PR0502MB3650; 
x-ms-traffictypediagnostic: AM0PR0502MB3650:
x-ms-exchange-purlcount: 2
x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr
x-microsoft-antispam-prvs: <AM0PR0502MB3650B2D640DBF9A3DE5A177AC30F0@AM0PR0502MB3650.eurprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-forefront-prvs: 0036736630
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(376002)(346002)(136003)(396003)(39860400002)(189003)(199004)(74316002)(5660300002)(966005)(305945005)(68736007)(53946003)(6506007)(19627235002)(102836004)(5024004)(186003)(99286004)(14444005)(256004)(7110500001)(26005)(14454004)(7736002)(478600001)(229853002)(6436002)(55016002)(30864003)(86362001)(2420400007)(486006)(15650500001)(476003)(52536014)(8936002)(110136005)(54906003)(4326008)(71190400001)(11346002)(71200400001)(25786009)(446003)(66066001)(3846002)(7696005)(6116002)(53936002)(76176011)(6246003)(107886003)(2906002)(9686003)(6306002)(73956011)(66476007)(66556008)(64756008)(66446008)(81156014)(81166006)(66946007)(316002)(76116006)(33656002)(579004);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3650;
 H:AM0PR0502MB3795.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: mellanox.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 36vpoHuhH+5krjh7mq9uXZwWZB+pocJCrv1mtxsTywMSXr/vV2uGTmmmH4dMrsQZdTdx2pRez59mZmyTWP4q87gGzQJNXDDaLeFRhIIskQIjWsWXcNyjz9joXcLcN6NUiKeMcy46uxPNp3dnHxgjPVpwTe8nFtgGmFaV0aUXpw9gsqlug5ht/9OCzPfYqR2C4nG9VWLseZ04jQ7QkM+dN/ID9TfOFY4oWuxbB9a0LfANuAjS2DpiTkmhEC/0HnijKzm1BCbEtZFD+Rm1nm9lSH/7aIBVX/tGNsmSV6r0PFnxcdGe8Wyop6KZRJdlcV/1W2ATQsOozPxp4arF/Y+Ec/CL5t6pnKA8HZZ0/OUPBHwiFmNhbnwM2aC3pgUcqnpaW98rWrzGkr9OmCbrSQHDt4OHHWbqiPk8Tqq9y08/mAE=
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: Mellanox.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6d381d5-8aeb-4024-bc86-08d6d7638951
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 May 2019 05:26:22.2124 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3650
Subject: Re: [dpdk-dev] [PATCH v2] doc: fix update release notes for
	Mellanox	drivers
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190513052622.esewZdTGx1ni8kh3KonQhJ5EaKYcnq_4wVTcw2kxtHM@z>

Hi Ori,

See some comments below.=20

Sunday, May 12, 2019 11:33 PM, Ori Kam:
> Subject: [dpdk-dev] [PATCH v2] doc: fix update release notes for Mellanox
> drivers
>=20
> This patch adds some missing features to Mellanox drivers release notes.
> It also updates the mlx5/mlx4 documentations.
>=20
> Fixes: d85b204b5dba ("doc: update release notes for Mellanox drivers")
> Cc: yskoh@mellanox.com
>=20
> Signed-off-by: Ori Kam <orika@mellanox.com>
>=20
> ---
>=20
> v2:
>  * fix checkpatch warning.
>=20
> ---
>  doc/guides/nics/mlx4.rst               |   2 +-
>  doc/guides/nics/mlx5.rst               | 150 ++++++++++++++++++++++-----=
------
>  doc/guides/rel_notes/release_19_05.rst |  10 ++-
>  3 files changed, 109 insertions(+), 53 deletions(-)
>=20
> diff --git a/doc/guides/nics/mlx4.rst b/doc/guides/nics/mlx4.rst index
> f6d7a16..5c6bbde 100644
> --- a/doc/guides/nics/mlx4.rst
> +++ b/doc/guides/nics/mlx4.rst
> @@ -253,7 +253,7 @@ thanks to these environment variables:
>  Mellanox OFED as a fallback
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>=20
> -- `Mellanox OFED`_ version: **4.4, 4.5**.
> +- `Mellanox OFED`_ version: **4.4, 4.5, 4.6**.
>  - firmware version: **2.42.5000** and above.
>=20
>  .. _`Mellanox OFED`:
> http://www.mellanox.com/page/products_dyn?product_family=3D26&mtag=3Dli
> nux_sw_drivers
> diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index
> 325e9f6..5cf7744 100644
> --- a/doc/guides/nics/mlx5.rst
> +++ b/doc/guides/nics/mlx5.rst
> @@ -7,7 +7,7 @@ MLX5 poll mode driver
>=20
>  The MLX5 poll mode driver library (**librte_pmd_mlx5**) provides support
> for **Mellanox ConnectX-4**, **Mellanox ConnectX-4 Lx** , **Mellanox -
> ConnectX-5**, **Mellanox ConnectX-6** and **Mellanox Bluefield**
> families
> +ConnectX-5**, **Mellanox ConnectX-6** and **Mellanox BlueField**
> +families
>  of 10/25/40/50/100/200 Gb/s adapters as well as their virtual functions =
(VF)
> in SR-IOV context.
>=20
> @@ -62,8 +62,8 @@ Features
>  - RX VLAN stripping.
>  - TX VLAN insertion.
>  - RX CRC stripping configuration.
> -- Promiscuous mode.
> -- Multicast promiscuous mode.
> +- Promiscuous mode on PF and VF.
> +- Multicast promiscuous mode on PF and VF.
>  - Hardware checksum offloads.
>  - Flow director (RTE_FDIR_MODE_PERFECT,
> RTE_FDIR_MODE_PERFECT_MAC_VLAN and
>    RTE_ETH_FDIR_REJECT).
> @@ -78,6 +78,11 @@ Features
>  - Rx HW timestamp.
>  - Tunnel types: VXLAN, L3 VXLAN, VXLAN-GPE, GRE, MPLSoGRE, MPLSoUDP.
>  - Tunnel HW offloads: packet type, inner/outer RSS, IP and UDP checksum
> verification.
> +- Nic HW offloads: encapsulation (vxlan, gre, mplsoudp, mplsogre), NAT,
> +routing, TTL
> +  increment/decrement, count, drop, mark. For details please see
> :ref:`Supported hardware offloads using rte_flow API`.
> +- Flow insertion rate of more then million flows per second. When using
> Direct Rules.

Replace '.' with ',' .

> +- Support groups.

Support for multiple rte_flow groups.

> +- Support raw encapsulation offload.

Can't it be part of the encapsulation part above?

>=20
>  Limitations
>  -----------
> @@ -112,8 +117,6 @@ Limitations
>    is set to multi-packet send or Enhanced multi-packet send. Otherwise i=
t
> must have
>    less than 50 segments.
>=20
> -- Count action for RTE flow is **only supported in Mellanox OFED**.
> -
>  - Flows with a VXLAN Network Identifier equal (or ends to be equal)
>    to 0 are not supported.
>=20
> @@ -124,13 +127,6 @@ Limitations
>  - VF: flow rules created on VF devices can only match traffic targeted a=
t the
>    configured MAC addresses (see ``rte_eth_dev_mac_addr_add()``).
>=20
> -.. note::
> -
> -   MAC addresses not already present in the bridge table of the associat=
ed
> -   kernel network device will be added and cleaned up by the PMD when
> closing
> -   the device. In case of ungraceful program termination, some entries m=
ay
> -   remain present and should be removed manually by other means.
> -

This is still correct, why removed?

>  - When Multi-Packet Rx queue is configured (``mprq_en``), a Rx packet ca=
n
> be
>    externally attached to a user-provided mbuf with having
> EXT_ATTACHED_MBUF in
>    ol_flags. As the mempool for the external buffer is managed by PMD, al=
l
> the @@ -147,30 +143,18 @@ Limitations
>    To receive IPv6 Multicast messages on VM, explicitly set the relevant
>    MAC address using rte_eth_dev_mac_addr_add() API.
>=20
> -- E-Switch VXLAN tunnel is not supported together with outer VLAN.
> -
> -- E-Switch Flows with VNI pattern must include the VXLAN decapsulation
> action.
> -
> -- E-Switch VXLAN decapsulation Flow:
> +- E-Switch decapsulation Flow:
>=20
>    - can be applied to PF port only.
>    - must specify VF port action (packet redirection from PF to VF).
> -  - must specify tunnel outer UDP local (destination) port, wildcards no=
t
> allowed.
> -  - must specify tunnel outer VNI, wildcards not allowed.
> -  - must specify tunnel outer local (destination)  IPv4 or IPv6 address,
> wildcards not allowed.
> -  - optionally may specify tunnel outer remote (source) IPv4 or IPv6,
> wildcards or group IPs allowed.
>    - optionally may specify tunnel inner source and destination MAC
> addresses.
>=20
> -- E-Switch VXLAN encapsulation Flow:
> +- E-Switch  encapsulation Flow:
>=20
>    - can be applied to VF ports only.
>    - must specify PF port action (packet redirection from VF to PF).
> -  - must specify the VXLAN item with tunnel outer parameters.
> -  - must specify the tunnel outer VNI in the VXLAN item.
> -  - must specify the tunnel outer remote (destination) UDP port in the
> VXLAN item.
> -  - must specify the tunnel outer local (source) IPv4 or IPv6 in the , t=
his
> address will locally (with scope link) assigned to the outer network inte=
rface,
> wildcards not allowed.
> -  - must specify the tunnel outer remote (destination) IPv4 or IPv6 in t=
he
> VXLAN item, group IPs allowed.
> -  - must specify the tunnel outer destination MAC address in the VXLAN
> item, this address will be used to create neigh rule.
> +
> +- Groups, E-Switch steering, fast inseration rate are supported only wit=
h
> Mellanox OFED 4.6.2 and above.

I think the right place for such limitations is the table below (Supported =
hardware offloads using rte_flow API).=20

>=20
>  Statistics
>  ----------
> @@ -227,7 +211,7 @@ These options can be modified in the ``.config`` file=
.
>=20
>  .. note::
>=20
> -   For Bluefield, target should be set to ``arm64-bluefield-linux-gcc``.=
 This
> +   For BlueField, target should be set to
> + ``arm64-bluefield-linux-gcc``. This
>     will enable ``CONFIG_RTE_LIBRTE_MLX5_PMD`` and set
> ``RTE_CACHE_LINE_SIZE`` to
>     64. Default armv8a configuration of make build and meson build set it=
 to
> 128
>     then brings performance degradation.
> @@ -277,8 +261,8 @@ Run-time configuration
>=20
>    Supported on:
>=20
> -  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> -  - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> +  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
> +  - POWER9 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
>=20
>  - ``rxq_cqe_pad_en`` parameter [int]
>=20
> @@ -296,7 +280,7 @@ Run-time configuration
>=20
>    Supported on:
>=20
> -  - CPU having 128B cacheline with ConnectX-5 and Bluefield.
> +  - CPU having 128B cacheline with ConnectX-5 and BlueField.
>=20
>  - ``rxq_pkt_pad_en`` parameter [int]
>=20
> @@ -308,8 +292,8 @@ Run-time configuration
>=20
>    Supported on:
>=20
> -  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> -  - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> Bluefield.
> +  - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
> +  - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5, ConnectX-6 and
> BlueField.
>=20
>  - ``mprq_en`` parameter [int]
>=20
> @@ -375,13 +359,13 @@ Run-time configuration
>=20
>    This option should be used in combination with ``txq_inline`` above.
>=20
> -  On ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and Bluefield
> without
> +  On ConnectX-4, ConnectX-4 LX, ConnectX-5, ConnectX-6 and BlueField
> + without
>    Enhanced MPW:
>=20
>          - Disabled by default.
>          - In case ``txq_inline`` is set recommendation is 4.
>=20
> -  On ConnectX-5, ConnectX-6 and Bluefield with Enhanced MPW:
> +  On ConnectX-5, ConnectX-6 and BlueField with Enhanced MPW:
>=20
>          - Set to 8 by default.
>=20
> @@ -395,14 +379,14 @@ Run-time configuration
>          - Set to 8 by default on ARMv8.
>          - Set to 4 by default otherwise.
>=20
> -  On Bluefield
> +  On BlueField
>=20
>          - Set to 16 by default.
>=20
>  - ``txq_mpw_en`` parameter [int]
>=20
>    A nonzero value enables multi-packet send (MPS) for ConnectX-4 Lx and
> -  enhanced multi-packet send (Enhanced MPS) for ConnectX-5, ConnectX-6
> and Bluefield.
> +  enhanced multi-packet send (Enhanced MPS) for ConnectX-5, ConnectX-6
> and BlueField.
>    MPS allows the TX burst function to pack up multiple packets in a
>    single descriptor session in order to save PCI bandwidth and improve
>    performance at the cost of a slightly higher CPU usage. When @@ -417,1=
3
> +401,13 @@ Run-time configuration
>    DEV_TX_OFFLOAD_VXLAN_TNL_TSO, DEV_TX_OFFLOAD_GRE_TNL_TSO,
> DEV_TX_OFFLOAD_VLAN_INSERT``.
>    When those offloads are requested the MPS send function will not be
> used.
>=20
> -  It is currently only supported on the ConnectX-4 Lx, ConnectX-5, Conne=
ctX-
> 6 and Bluefield
> +  It is currently only supported on the ConnectX-4 Lx, ConnectX-5,
> + ConnectX-6 and BlueField
>    families of adapters.
>    On ConnectX-4 Lx the MPW is considered un-secure hence disabled by
> default.
>    Users which enable the MPW should be aware that application which
> provides incorrect
>    mbuf descriptors in the Tx burst can lead to serious errors in the hos=
t
> including, on some cases,
>    NIC to get stuck.
> -  On ConnectX-5, ConnectX-6 and Bluefield the MPW is secure and enabled
> by default.
> +  On ConnectX-5, ConnectX-6 and BlueField the MPW is secure and enabled
> by default.
>=20
>  - ``txq_mpw_hdr_dseg_en`` parameter [int]
>=20
> @@ -443,14 +427,14 @@ Run-time configuration
>=20
>  - ``tx_vec_en`` parameter [int]
>=20
> -  A nonzero value enables Tx vector on ConnectX-5, ConnectX-6 and
> Bluefield NICs if the number of
> +  A nonzero value enables Tx vector on ConnectX-5, ConnectX-6 and
> + BlueField NICs if the number of
>    global Tx queues on the port is less than ``txqs_max_vec``.
>=20
>    This option cannot be used with certain offloads such as
> ``DEV_TX_OFFLOAD_TCP_TSO,
>    DEV_TX_OFFLOAD_VXLAN_TNL_TSO, DEV_TX_OFFLOAD_GRE_TNL_TSO,
> DEV_TX_OFFLOAD_VLAN_INSERT``.
>    When those offloads are requested the MPS send function will not be
> used.
>=20
> -  Enabled by default on ConnectX-5, ConnectX-6 and Bluefield.
> +  Enabled by default on ConnectX-5, ConnectX-6 and BlueField.
>=20
>  - ``rx_vec_en`` parameter [int]
>=20
> @@ -480,10 +464,15 @@ Run-time configuration
>=20
>    A nonzero value enables the DV flow steering assuming it is supported
>    by the driver.
> -  The DV flow steering is not supported on switchdev mode.
>=20
>    Disabled by default.
>=20
> +- ``dv_esw_en`` parameter [int]
> +
> +  A nonzero value enables E-Switch using Direct Rules.
> +
> +  Enabled by default if supported.
> +
>  - ``mr_ext_memseg_en`` parameter [int]
>=20
>    A nonzero value enables extending memseg when registering DMA
> memory. If @@ -545,7 +534,7 @@ DPDK and must be installed separately:
>  - **libmlx5**
>=20
>    Low-level user space driver library for Mellanox
> -  ConnectX-4/ConnectX-5/ConnectX-6/Bluefield devices, it is automaticall=
y
> loaded
> +  ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices, it is
> + automatically loaded
>    by libibverbs.
>=20
>    This library basically implements send/receive calls to the hardware @=
@ -
> 567,7 +556,7 @@ DPDK and must be installed separately:
>    their devices:
>=20
>    - mlx5_core: hardware driver managing Mellanox
> -    ConnectX-4/ConnectX-5/ConnectX-6/Bluefield devices and related
> Ethernet kernel
> +    ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices and related
> + Ethernet kernel
>      network devices.
>    - mlx5_ib: InifiniBand device driver.
>    - ib_uverbs: user space driver for Verbs (entry point for libibverbs).
> @@ -575,7 +564,7 @@ DPDK and must be installed separately:
>  - **Firmware update**
>=20
>    Mellanox OFED/EN releases include firmware updates for
> -  ConnectX-4/ConnectX-5/ConnectX-6/Bluefield adapters.
> +  ConnectX-4/ConnectX-5/ConnectX-6/BlueField adapters.
>=20
>    Because each release provides new features, these updates must be
> applied to
>    match the kernel modules and libraries they come with.
> @@ -595,7 +584,7 @@ releases.
>  RDMA Core with Linux Kernel
>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>=20
> -- Minimal kernel version : v4.14 or the most recent 4.14-rc (see `Linux
> installation documentation`_)
> +- Minimal kernel version : v4.14 or the most recent 5.1.0-rc (see
> +`Linux installation documentation`_)
>  - Minimal rdma-core version: v15+ commit 0c5f5765213a ("Merge pull
> request #227 from yishaih/tm")
>    (see `RDMA Core installation documentation`_)
>  - When building for i686 use:
> @@ -622,7 +611,8 @@ thanks to these environment variables:
>  Mellanox OFED/EN
>  ^^^^^^^^^^^^^^^^
>=20
> -- Mellanox OFED version: **4.4, 4.5** / Mellanox EN version: **4.5**
> +- Mellanox OFED version: ** 4.5, 4.6** /
> +  Mellanox EN version: **4.5, 4.6**
>  - firmware version:
>=20
>    - ConnectX-4: **12.21.1000** and above.
> @@ -630,7 +620,7 @@ Mellanox OFED/EN
>    - ConnectX-5: **16.21.1000** and above.
>    - ConnectX-5 Ex: **16.21.1000** and above.
>    - ConnectX-6: **20.99.5374** and above.
> -  - Bluefield: **18.99.3950** and above.
> +  - BlueField: **18.25.1010** and above.
>=20
>  While these libraries and kernel modules are available on OpenFabrics
> Alliance's `website
> <https://eur03.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fww
> w.openfabrics.org%2F&amp;data=3D02%7C01%7Cshahafs%40mellanox.com%7
> C6432343b75294926c94c08d6d71918dc%7Ca652971c7d2e4d9ba6a4d149256f4
> 61b%7C0%7C0%7C636932900128053421&amp;sdata=3Dd8coRBxwMI62n%2FB1I
> E4mOcoVHs4lsiDl7kSgVljJBeY%3D&amp;reserved=3D0>`__ and provided by
> package @@ -766,6 +756,34 @@ Quick Start Guide on OFED/EN  6. Compile
> DPDK and you are ready to go. See instructions on
>     :ref:`Development Kit Build System <Development_Kit_Build_System>`
>=20
> +Enable E-Switch mode
> +--------------------

It is how to enable switchdev mode right? Not e-switch mode.=20
Need to put a few words on what it is switchdev mode and why it is needed.=
=20

> +
> +1. Enable SRIOV mode:
> +
> +  .. code-block:: console
> +
> +        mlxconfig -d <mst device> set SRIOV_EN=3Dtrue
> +
> +2. Configure the number of VFs:

This is the max number of VFs.

> +
> +  .. code-block:: console
> +
> +        mlxconfig -d <mst device> set NUM_OF_VFS=3D<num of vfs>
> +        echo <num of vfs > /sys/class/net/<net
> + device>/device/sriov_numvfs

Need to reset FW after it.

Also - where do you create the actual VFs?

> +
> +3. Unbind the device (can be rebind after the switchdev mode):
> +
> +  .. code-block:: console
> +
> +        echo -n "<device pci address" >
> + /sys/bus/pci/drivers/mlx5_core/unbind
> +
> +4. Enbale switchdev mode:
> +
> +  .. code-block:: console
> +
> +        echo switchdev > /sys/class/net/<net
> + device>/compat/devlink/mode
> +
>  Performance tuning
>  ------------------
>=20
> @@ -842,6 +860,38 @@ Performance tuning
>     - Configure per-lcore cache when creating Mempools for packet buffer.
>     - Refrain from dynamically allocating/freeing memory in run-time.
>=20
> +Supported hardware offloads using rte_flow API
> +----------------------------------------------
> +
> +.. _Supported hardware offloads using rte_flow API:
> +
> +.. table:: Supported hardware offloads using rte_flow API
> +
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Offload       | E-Switch  | NIC PF      | VF representor  | PF repr=
esentor |
> +   |               | (SRIOV)   | (non SRIOV) | (SRIOV)         | (SRIOV)=
        |
> +
> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D
> =3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
> +   | Encapsulation |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Multi table   |     V     |     V       |        V        |       V=
*       |
> +   | support       |           |             |                 |        =
        |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | NAT           |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Routing       |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | TTL inc/dec   |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Count         |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Drop          |     V     |     V       |        V        |       V=
*       |
> +   +---------------+-----------+-------------+-----------------+--------=
--------+
> +   | Mark          |    N/A    |     V       |        V        |       V=
*       |
> +
> + +---------------+-----------+-------------+-----------------+---------
> + -------+
> +
> +| V ConnectX-5
> +| V* ConnectX-5 & BlueField
> +

What is the difference between E-Switch (SRIOV), VF representor (SRIOV) and=
 PF representor (SRIOV)? On switchdev mode every rule is either for the VF/=
uplink representor.=20

The matrix is a bit more complex than what you show here.=20
IMO-  the matrix has 2 column (E-Switch and NIC) and 2/3 dimensions (minima=
l NIC that support, minimal DPDK that support, minimal OFED/upstream kernel=
 which support(?)). =20
The columns need to be RTE_FLOW actions (let's leave the RTE_FLOW items asi=
de for a moment). Because NAT, for example, may require different actions o=
n different implementations.=20


>  Notes for testpmd
>  -----------------
>=20
> @@ -863,7 +913,7 @@ Usage example
>  -------------
>=20
>  This section demonstrates how to launch **testpmd** with Mellanox -
> ConnectX-4/ConnectX-5/ConnectX-6/Bluefield devices managed by
> librte_pmd_mlx5.
> +ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by
> librte_pmd_mlx5.
>=20
>  #. Load the kernel modules:
>=20
> diff --git a/doc/guides/rel_notes/release_19_05.rst
> b/doc/guides/rel_notes/release_19_05.rst
> index 4e0eed5..489273b 100644
> --- a/doc/guides/rel_notes/release_19_05.rst
> +++ b/doc/guides/rel_notes/release_19_05.rst
> @@ -148,10 +148,16 @@ New Features
>     * Added support for multiport InfiniBand device.
>     * Added control of excessive memory pinning by kernel.
>     * Added support of DMA memory registration by secondary process.
> -   * Added Direct Rule support in Direct Verbs flow driver.
>     * Added support of per-process device registers, reserving identical =
VA
> space
>       is not needed anymore.
> -   * Added E-Switch support in Direct Verbs flow driver.
> +   * Added Direct Rule support for Nic steering, in Direct Verbs driver.
> +   * Added Direct Rule support for E-Switch steering, in Direct Verbs dr=
iver.

People who read the release notes doesn't necessarily read the entire mlx5 =
manual. It is not clear what Direct rule is and why it is good.
I would drop this part.


> +   * Added support for jump action for both E-Switch and Nic when using
> +     Direct Rules.

How can user know if it uses Direct rule or not? I would just stick with:
"Support rte_flow jump action"

> +   * Added Group Support for Nic steering when using Direct Rules.

Again:
"Support multiple rte_flow groups"

> +   * Support millions of offloaded flow rules.
> +   * Improved flow insertion rate to millions of flows per second when u=
sing
> +     Direct Rules and group larger then 0.

I would say:
* flow engine re-design to support large scale deployments. This include:
1. support millions of rte_flow rules
2. fast flow insertion and deletion up to 1M flow update per second.=20


>=20
>  * **Renamed avf to iavf.**
>=20
> --
> 1.8.3.1