From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stable-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 47F7FA0547
	for <public@inbox.dpdk.org>; Fri, 10 Sep 2021 11:17:45 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 240B9406B4;
	Fri, 10 Sep 2021 11:17:45 +0200 (CEST)
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by mails.dpdk.org (Postfix) with ESMTP id 177524067E
 for <stable@dpdk.org>; Fri, 10 Sep 2021 11:17:42 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
 s=mimecast20190719; t=1631265462;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding;
 bh=5RJ8J/EOnCkATFmln3JI4jyFGGh8wv6zZcah3Y6aIVk=;
 b=KOj+aBFmYB5T7zJCZdUOcEwXrJ0W+IZhn2dnhiqzo9ublEWqwwZtnN35lDUqm+m1/fqID0
 zsy9BSkoys0R87OrJLlVD9mOd6reYmMRtZaIql8w/d8cBxDXgLbqV1QlD26TZ7U/u/xywu
 m6jvrYu6C9mR+E5wrF+jXDpJ6GBj1Ls=
Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com
 [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id
 us-mta-110-j9IbHs9KPVW4TgH3H6rFVg-1; Fri, 10 Sep 2021 05:17:41 -0400
X-MC-Unique: j9IbHs9KPVW4TgH3H6rFVg-1
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com
 [10.5.11.13])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 80EAFCF98B;
 Fri, 10 Sep 2021 09:17:39 +0000 (UTC)
Received: from max-t490s.redhat.com (unknown [10.39.208.12])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 1751177BE7;
 Fri, 10 Sep 2021 09:17:36 +0000 (UTC)
From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: dev@dpdk.org, chenbo.xia@intel.com, amorenoz@redhat.com,
 david.marchand@redhat.com, andrew.rybchenko@oktetlabs.ru,
 ferruh.yigit@intel.com, michaelba@nvidia.com, viacheslavo@nvidia.com
Cc: stable@dpdk.org, nelio.laranjeiro@6wind.com,
 Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 10 Sep 2021 11:17:31 +0200
Message-Id: <20210910091734.7023-1-maxime.coquelin@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13
Authentication-Results: relay.mimecast.com;
 auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=maxime.coquelin@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"
Subject: [dpdk-stable] [PATCH 0/3] Virtio PMD RSS support & RSS fixes
X-BeenThere: stable@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: patches for DPDK stable branches <stable.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/stable>,
 <mailto:stable-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/stable/>
List-Post: <mailto:stable@dpdk.org>
List-Help: <mailto:stable-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/stable>,
 <mailto:stable-request@dpdk.org?subject=subscribe>
Errors-To: stable-bounces@dpdk.org
Sender: "stable" <stable-bounces@dpdk.org>

This series is mainly adding support for RSS to Virtio PMD
driver. The two last patches are fixing an issue in testpmd
that prevents to configure the RSS hash types, and fix
an issue spotted in the mlx5 driver while looking for
inspiration.

The first motivation for this series is to eventually
support RSS down to the Vhost-user library, so that OVS can
benefit from it. But it will be also useful with vDPA
devices in the future.

Regarding the testing, I have tested it with qemu v5.2 from
Fedora 34. Since libvirt does not support yet enabling RSS
feature in the Qemu virtio-net device, and this feature is
disabled by default, the tester can either rebuild the qemu
package to enable it by default or use the qemu cmdline to
do the same.

The tester can use testpmd in icmpecho mode in the guest
and scapy on the host to inject random traffic on the tap
interface, e.g.:
sendp(Ether(src=RandMAC()) / IP(src=RandIP(), dst='192.168.123.9') / UDP(sport=RandShort(), dport=RandShort()), loop=True, iface='vnet7')

Then it can play with RSS config in testpmd to change the
reta, or hash type and see traffic being steered
accordingly by checking the Rx xstats.

Ferruh, Andrew, I have updated the driver feature list,
but I have one doubt about whether I should set RSS hash,
since the driver don't support hash reporting yet, but
the device performs RSS hashing for queue selection. WDYT?

Maxime Coquelin (3):
  net/virtio: add initial RSS support
  app/testpmd: fix RSS hash type update
  net/mlx5: Fix RSS RETA update

 app/test-pmd/config.c                  |   8 +-
 doc/guides/nics/features/virtio.ini    |   2 +
 doc/guides/nics/virtio.rst             |   3 +
 doc/guides/rel_notes/release_21_11.rst |   5 +
 drivers/net/mlx5/mlx5_rss.c            |   2 +-
 drivers/net/virtio/virtio.h            |  31 ++-
 drivers/net/virtio/virtio_ethdev.c     | 367 ++++++++++++++++++++++++-
 drivers/net/virtio/virtio_ethdev.h     |   3 +-
 drivers/net/virtio/virtqueue.h         |  21 ++
 9 files changed, 429 insertions(+), 13 deletions(-)

-- 
2.31.1