From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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 To: Ori Kam , Yongseok Koh , Matan Azrad , Thomas Monjalon CC: "dev@dpdk.org" , Ori Kam 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: 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 >=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 > w.openfabrics.org%2F&data=3D02%7C01%7Cshahafs%40mellanox.com%7 > C6432343b75294926c94c08d6d71918dc%7Ca652971c7d2e4d9ba6a4d149256f4 > 61b%7C0%7C0%7C636932900128053421&sdata=3Dd8coRBxwMI62n%2FB1I > E4mOcoVHs4lsiDl7kSgVljJBeY%3D&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 ` >=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 set SRIOV_EN=3Dtrue > + > +2. Configure the number of VFs: This is the max number of VFs. > + > + .. code-block:: console > + > + mlxconfig -d set NUM_OF_VFS=3D > + echo /sys/class/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 " > + /sys/bus/pci/drivers/mlx5_core/unbind > + > +4. Enbale switchdev mode: > + > + .. code-block:: console > + > + echo switchdev > /sys/class/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: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id C3A40A00E6 for ; 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 ; 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 To: Ori Kam , Yongseok Koh , Matan Azrad , Thomas Monjalon CC: "dev@dpdk.org" , Ori Kam 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: 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 >=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 > w.openfabrics.org%2F&data=3D02%7C01%7Cshahafs%40mellanox.com%7 > C6432343b75294926c94c08d6d71918dc%7Ca652971c7d2e4d9ba6a4d149256f4 > 61b%7C0%7C0%7C636932900128053421&sdata=3Dd8coRBxwMI62n%2FB1I > E4mOcoVHs4lsiDl7kSgVljJBeY%3D&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 ` >=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 set SRIOV_EN=3Dtrue > + > +2. Configure the number of VFs: This is the max number of VFs. > + > + .. code-block:: console > + > + mlxconfig -d set NUM_OF_VFS=3D > + echo /sys/class/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 " > + /sys/bus/pci/drivers/mlx5_core/unbind > + > +4. Enbale switchdev mode: > + > + .. code-block:: console > + > + echo switchdev > /sys/class/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