[bmwg] Usage of multiple IP address with RFC 2544 / RFC 5180 compliant throughput tests

Lencse Gábor <lencse@hit.bme.hu> Mon, 05 June 2023 09:12 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 18EDBC151985 for <bmwg@ietfa.amsl.com>; Mon, 5 Jun 2023 02:12:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.897
X-Spam-Level:
X-Spam-Status: No, score=-6.897 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, 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 8IAWcbQUdOX6 for <bmwg@ietfa.amsl.com>; Mon, 5 Jun 2023 02:12:47 -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 1FD40C14CF05 for <bmwg@ietf.org>; Mon, 5 Jun 2023 02:12:46 -0700 (PDT)
Received: from [IPV6:2001:738:2c01:24:7509:8304:d90f:f24c] ([IPv6:2001:738:2c01:24:7509:8304:d90f:f24c]) (authenticated bits=0) by frogstar.hit.bme.hu (8.17.1/8.17.1) with ESMTPSA id 3559CXFr055122 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO) for <bmwg@ietf.org>; Mon, 5 Jun 2023 11:12:39 +0200 (CEST) (envelope-from lencse@hit.bme.hu)
Content-Type: multipart/alternative; boundary="------------I1Bl0m7U70alL2sZ0OK01prw"
Message-ID: <252f68bd-54ad-1e31-8377-6dfb0d4c3430@hit.bme.hu>
Date: Mon, 05 Jun 2023 11:12:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2
To: "bmwg@ietf.org" <bmwg@ietf.org>
Content-Language: en-US, hu
From: Lencse Gábor <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=2001:738:2c01:24:7509:8304:d90f:f24c; helo=[IPV6:2001:738:2c01:24:7509:8304:d90f:f24c]; envelope-from=lencse@hit.bme.hu; x-software=spfmilter 2.001 http://www.acme.com/software/spfmilter/ with libspf2-1.2.11;
X-DCC--Metrics: frogstar.hit.bme.hu; whitelist
X-Scanned-By: MIMEDefang 2.86
Archived-At: <https://mailarchive.ietf.org/arch/msg/bmwg/ByeFBpwbyj-lJYb5tlPedz2kEp8>
Subject: [bmwg] Usage of multiple IP address with RFC 2544 / RFC 5180 compliant throughput tests
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, 05 Jun 2023 09:12:52 -0000

Dear All,

Is there any RFC that describes how to use multiple IP addresses with 
RFC 2544 / RFC 5180 compliant throughput tests?

Originally, RFC 2544 used fixed test frame format. Then RFC 4814 
specified how to use pseudorandom source and destination port numbers. 
However, I did not find any guidance, how one should use multiple, 
pseudorandom source and destination IP addresses.

It is an issue, because in some systems, like OpenBSD, one cannot set 
the Receive-Side Scaling (RSS) to include also the port numbers into the 
hash tuple for distributing the interrupts of the incoming packets among 
the CPU cores. Please see this e-mail for the details: 
https://marc.info/?l=openbsd-misc&m=166581934723445&w=2

However, when the system is used to forward Internet traffic, then it 
faces with different source and destination IP addresses. Thus, the 
laboratory test results will not reflect the results experienced under 
operational conditions.

Now I am working on implementing the usage of pseudorandom source and 
destination IP addresses in siitperf, my stateful and stateless NAT64 
tester, which can also be used to benchmark IPv4 or IPv6 routers. My 
main motivation is to support stateful NAT64 tests with OpenBSD PF, but 
I also would like to support stateless IPv4 and IPv6 packet forwarding 
measurements.

Regarding the stateless IPv4 tests, I planned this setup:

     198.18.[2-65534]/16                            198.19.[2-65534]/16
               \  +--------------------------------------+  /
                \ |                                      | /
    +-------------|                Tester                |<------------+
    |             |                                      |             |
    |             +--------------------------------------+             |
    |                                                                  |
    |             +--------------------------------------+             |
    |             |                                      |             |
    +------------>|          DUT: IPv4 router            |-------------+
                / |                                      | \
               /  +--------------------------------------+  \
     198.18.0.1/16                                        198.19.0.1/16

I am aware that this solution sacrifices the opportunity of testing with 
256 destination networks.

Any suggestions are welcome!

Best regards,

Gábor