[bmwg] Question regarding the updating of RFC 2544 with the usage of pseudorandom IP addresses
Gabor LENCSE <lencse@hit.bme.hu> Sun, 01 October 2023 15:54 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 D01F7C151062 for <bmwg@ietfa.amsl.com>; Sun, 1 Oct 2023 08:54:28 -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 XiBzYHOg5Arm for <bmwg@ietfa.amsl.com>; Sun, 1 Oct 2023 08:54:24 -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 5FC3EC14CF17 for <bmwg@ietf.org>; Sun, 1 Oct 2023 08:54:23 -0700 (PDT)
Received: from [192.168.0.100] (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 391FsABu089987 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO) for <bmwg@ietf.org>; Sun, 1 Oct 2023 17:54:16 +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.100]
Content-Type: multipart/alternative; boundary="------------khxQmY40hCOapouuAynNThXm"
Message-ID: <7f08f3fd-732c-9495-f100-559020f622a7@hit.bme.hu>
Date: Sun, 01 Oct 2023 17:54:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1
Content-Language: en-US
To: "bmwg@ietf.org" <bmwg@ietf.org>
From: Gabor LENCSE <lencse@hit.bme.hu>
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.100]; envelope-from=lencse@hit.bme.hu; x-software=spfmilter 2.001 http://www.acme.com/software/spfmilter/ with libspf2-1.2.11;
X-DCC-debian-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/K4NjNh4_OQW0k5nj9mh4joKMrCc>
Subject: [bmwg] 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: Sun, 01 Oct 2023 15:54:28 -0000
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
- [bmwg] Question regarding the updating of RFC 254… Gabor LENCSE
- Re: [bmwg] Question regarding the updating of RFC… Vasilenko Eduard
- [bmwg] Update of several other RFCs, too -- Re: Q… Gábor LENCSE