[bmwg] Update of several other RFCs, too -- Re: Question regarding the updating of RFC 2544 with the usage of pseudorandom IP addresses

Gábor LENCSE <lencse@hit.bme.hu> Mon, 02 October 2023 08:56 UTC

Return-Path: <lencse@hit.bme.hu>
X-Original-To: bmwg@ietfa.amsl.com
Delivered-To: bmwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DF323C1519BE for <bmwg@ietfa.amsl.com>; Mon, 2 Oct 2023 01:56:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.907
X-Spam-Level:
X-Spam-Status: No, score=-6.907 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27Ka_-eYFPD4 for <bmwg@ietfa.amsl.com>; Mon, 2 Oct 2023 01:56:09 -0700 (PDT)
Received: from frogstar.hit.bme.hu (frogstar.hit.bme.hu [IPv6:2001:738:2001:4020::2c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C3E59C15154D for <bmwg@ietf.org>; Mon, 2 Oct 2023 01:56:08 -0700 (PDT)
Received: from [192.168.0.102] (host-79-121-41-73.kabelnet.hu [79.121.41.73]) (authenticated bits=0) by frogstar.hit.bme.hu (8.17.1/8.17.1) with ESMTPSA id 3928sM3G076402 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Mon, 2 Oct 2023 10:54:27 +0200 (CEST) (envelope-from lencse@hit.bme.hu)
X-Authentication-Warning: frogstar.hit.bme.hu: Host host-79-121-41-73.kabelnet.hu [79.121.41.73] claimed to be [192.168.0.102]
Content-Type: multipart/alternative; boundary="------------dYKAG00HIgyh6XvavkivcDlH"
Message-ID: <f23e27f8-3a82-404e-971b-759393391b95@hit.bme.hu>
Date: Mon, 02 Oct 2023 10:54:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Vasilenko Eduard <vasilenko.eduard@huawei.com>, "bmwg@ietf.org" <bmwg@ietf.org>
References: <7f08f3fd-732c-9495-f100-559020f622a7@hit.bme.hu> <a89b6e8181ad4a38b88abb814496aeb6@huawei.com>
From: Gábor LENCSE <lencse@hit.bme.hu>
In-Reply-To: <a89b6e8181ad4a38b88abb814496aeb6@huawei.com>
X-Virus-Scanned: clamav-milter 0.103.8 at frogstar.hit.bme.hu
X-Virus-Status: Clean
Received-SPF: pass (frogstar.hit.bme.hu: authenticated connection) receiver=frogstar.hit.bme.hu; client-ip=79.121.41.73; helo=[192.168.0.102]; envelope-from=lencse@hit.bme.hu; x-software=spfmilter 2.001 http://www.acme.com/software/spfmilter/ with libspf2-1.2.11;
X-DCC-wuwien-Metrics: frogstar.hit.bme.hu; whitelist
X-Scanned-By: MIMEDefang 2.86 on 152.66.248.44
Archived-At: <https://mailarchive.ietf.org/arch/msg/bmwg/RSjXj450avcjbKRy9fIfL788-zk>
Subject: [bmwg] Update of several other RFCs, too -- Re: Question regarding the updating of RFC 2544 with the usage of pseudorandom IP addresses
X-BeenThere: bmwg@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Benchmarking Methodology Working Group <bmwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bmwg>, <mailto:bmwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/bmwg/>
List-Post: <mailto:bmwg@ietf.org>
List-Help: <mailto:bmwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bmwg>, <mailto:bmwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Oct 2023 08:56:14 -0000

Hi Eduard,

Thank you very much for your answer!

Yes, I completely agree with you: not only RFC 2544, but several others 
RFC-s should be updated. In fact, this is what I wanted to propose (you 
can see below that I also mentioned RFC 5180).

It is an embarrassing mistake that I wrote RFC 2544 in the subject line. 
This is really misleading. (Now I have amended the subject line to 
eliminate this mistake.)

Moreover, it is a problem that RFC 4814 did not formally update RFC 
2544. (I mean that there is no such link in the header of RFC 2544 that 
"Updated by RFC 4814".) It has the consequence that I was not aware of 
RFC 4814, when I implemented siitperf, and its first version had fixed 
frame format. Al Morton advised me about the existence of RFC 4814 and 
then I added the support for pseudorandom port numbers to siitperf as 
documented here: https://doi.org/10.11601/ijates.v9i3.291

My case demonstrates, how important it is to formally update all 
affected RFC-s! So I definitely agree that we should carefully collect them.

Best regards,

Gábor


10/2/2023 10:29 AM keltezéssel, Vasilenko Eduard írta:
>
> Hi Gabor,
>
> Many specialized network devices (especially middleboxes) are based on 
> RISC processors.
>
> They have many more cores than 32, it is already close to thousands 
> (at least a few hundred are typical).
>
> Hence, “not enough flows” may affect them very much.
>
> But why only this problem is considered for RFC2544 refreshment?
>
> I could propose a couple of additional:
>
> - modern PFEs are capable of distributing resources between 
> ports/interfaces in a very flexible way, especially for headers 
> processing.
> It does not make sense to test one port, not at all. At least one PFE 
> (the latest is 51.2Tbps) should be fully loaded to see meaningful results.
>
> - RFC6201 has a discussion that reset could be partial, software, hardware
>
> - RFC9004 has a much deeper discussion on buffer’s size detection.
>
> - and so on
>
> IMHO: if refresh RFC2544 then refresh it all.
>
> But what would happen with this RFC if half of BMWG documents were 
> inserted into it?
>
> Hence, the balance is needed for how much to insert and how much to 
> reference.
>
> Specifically for pseudorandom IP addresses:
>
> It is possible to squeeze the text into 1 page and add it to the 
> primary RFC.
>
> The same is true for RFC 6201: it is possible to move all essence into 
> RFC 2544bis.
>
> But it would be very difficult to insert the essence of RFC 9004 into 
> RFC 2544bis – too big text. Hence, the reference would be better.
>
> Eduard
>
> *From:*bmwg [mailto:bmwg-bounces@ietf.org] *On Behalf Of *Gabor LENCSE
> *Sent:* Sunday, October 1, 2023 6:54 PM
> *To:* bmwg@ietf.org
> *Subject:* [bmwg] Question regarding the updating of RFC 2544 with the 
> usage of pseudorandom IP addresses
>
> Dear BMWG Members,
>
> Previously I have consulted with the BMWG chairs about the following 
> issue and they recommended that I should bring this question to the 
> mailing list.
>
> I have encountered with the following issue regarding the benchmarking 
> of the packet forwarding performance of routers.
>
> 1. RFC 2544 defined a test frame format using fixed IP addresses and 
> port numbers: 
> https://datatracker.ietf.org/doc/html/rfc2544#appendix-C.2.6.4 (Some 
> old network performance testers literally follow the above test frame 
> format and they send always the very same test frames.)
>
> 2. As time passed by, it became common that routers have multiple 
> processing units. (E.g., when a router is implemented by a Linux 
> server, it is common that is has 32 or even more CPU cores.) Internet 
> traffic contains multiple IP addresses and port numbers and RSS 
> (Receive-Side Scaling) uses their entropy to distribute the traffic 
> among the processing units.
>
> 3. To keep up with the development of the network interconnect 
> devices, RFC 4814 recommended the usage of pseudorandom port numbers 
> (using uniform distribution over well defined wide ranges): 
> https://datatracker.ietf.org/doc/html/rfc4814#section-4.5
>
> Unless multiple destination networks are used, it means that Testers 
> use a single IP address pair (e.g. 198.18.0.2 and 198.19.0.2) and a 
> high number of pseudorandom source and destination port numbers from 
> the ranges recommended by RFC 4814.
>
> In practice, this solution sometimes works well, sometimes not. For 
> example, Under Debian Linux (at least from version 9 to version 11), 
> the default setting of the RSS is that only the source IP address and 
> destination IP address are included in the tuple for hashing.
>
> root@dut:~# ethtool -n eno1 rx-flow-hash udp4
> UDP over IPV4 flows use these fields for computing Hash flow key:
> IP SA
> IP DA
>
> With these settings, the usage of pseudorandom port numbers is 
> absolutely useless. However, one can set RSS so that the port number 
> are also included in the tuple for hashing:
>
> root@dut:~# ethtool -N eno1 rx-flow-hash udp4 sdfn
> root@dut:~# ethtool -n eno1 rx-flow-hash udp4
> UDP over IPV4 flows use these fields for computing Hash flow key:
> IP SA
> IP DA
> L4 bytes 0 & 1 [TCP/UDP src port]
> L4 bytes 2 & 3 [TCP/UDP dst port]
>
> With the latter settings, the usage of _a single IP address pair and 
> pseudorandom port numbers_ works perfectly.
>
> Under OpenBSD, the default behavior is the same (RSS considers only IP 
> addresses), but there is no such tool that could be used to change it 
> to use also the port numbers: 
> https://marc.info/?l=openbsd-misc&m=166581934723445&w=2 
> <https://marc.info/?l=openbsd-misc&m=166581934723445&w=2>
>
> It means that pseudorandom port numbers do not help. This RSS 
> implementation would require the usage of _pseudorandom IP addresses_.
>
> My suggestion is that we should update RFC 2544 (and RFC 5180 
> regarding IPv6) to support the usage of multiple, pseudorandom IP 
> addresses in a similar manner as it was recommended regarding the port 
> numbers by RFC 4814.
>
> I have specific suggestions, and also working code: I have implemented 
> the usage of pseudorandom IP addresses in the latest version of 
> siitperf: https://github.com/lencsegabor/siitperf
>
> I am planning to submit and Internet Draft about my recommendation, 
> but before that I would like to know your opinion.
>
> Do you find this idea meaningful?
>
> It is also an important question, how the different router 
> implementations behave. If there are several RSS implementations that 
> use only the IP addresses (and not the port numbers) for hashing, 
> then, IMHO, it is worth working on this update. However, if OpenBSD is 
> the only such exception, then perhaps not.
>
> So, please write me back if you have some knowledge about how 
> commercial routers implement RSS.
>
> Thank you very much for your feedback in advance!
>
> Best regards,
>
> Gábor
>