Add tayga results

This commit is contained in:
Nico Schottelius 2019-08-05 16:15:02 +02:00
parent cac2d200d7
commit 0269d91251
2 changed files with 749 additions and 6 deletions

View File

@ -577,6 +577,571 @@ by the netpfga cannot be sniffed on the nf interfaces
directly. Instead one has to sniff packets on a physical network card
that is connected to the specific output port.
%---------------------------------------------------------------------------------------------------------
\chapter{\label{benchmark}Benchmark Logs}
\section{\label{benchmark:iperf}iperf}
Omitting startup time
\section{\label{benchmark:general}General}
MTU setting to 1500, as netpfga doesn't support jumbo frames
iperf3, iperf 3.0.11
50 parallel = 2x 100% cpu usage
40 parallel = 100%, 70% cpu usage
30 parallel = 70%-100, 70% cpu usage
Turning back on checksum offloading (see below)
30 parallel = 70%, 30% cpu usage
\begin{verbatim}
root@ESPRIMO-P956:~# ethtool -K enp2s0f0 tx on
Cannot get device udp-fragmentation-offload settings: Operation not supported
Cannot get device udp-fragmentation-offload settings: Operation not supported
Actual changes:
tx-checksumming: on
tx-checksum-ip-generic: on
tx-checksum-sctp: on
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp6-segmentation: on
root@ESPRIMO-P956:~#
root@ESPRIMO-P956:~# ethtool -K enp2s0f1 tx on
Cannot get device udp-fragmentation-offload settings: Operation not supported
Cannot get device udp-fragmentation-offload settings: Operation not supported
Actual changes:
tx-checksumming: on
tx-checksum-ip-generic: on
tx-checksum-sctp: on
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp6-segmentation: on
root@ESPRIMO-P956:~# ethtool -K enp2s0f1 rx on
Cannot get device udp-fragmentation-offload settings: Operation not supported
Cannot get device udp-fragmentation-offload settings: Operation not supported
root@ESPRIMO-P956:~#
\end{verbatim}
Results into
\begin{verbatim}
root@ESPRIMO-P956:~# ethtool -k enp2s0f0
Features for enp2s0f0:
Cannot get device udp-fragmentation-offload settings: Operation not supported
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: on [fixed]
tx-checksum-sctp: on
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: off
tx-tcp6-segmentation: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: on
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: on [fixed]
tx-gre-segmentation: on
tx-gre-csum-segmentation: on
tx-ipxip4-segmentation: on
tx-ipxip6-segmentation: on
tx-udp_tnl-segmentation: on
tx-udp_tnl-csum-segmentation: on
tx-gso-partial: on
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off
hw-tc-offload: off
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off
root@ESPRIMO-P956:~# ethtool -k enp2s0f1
Features for enp2s0f1:
Cannot get device udp-fragmentation-offload settings: Operation not supported
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: on [fixed]
tx-checksum-sctp: on
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: off
tx-tcp6-segmentation: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: on
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: on [fixed]
tx-gre-segmentation: on
tx-gre-csum-segmentation: on
tx-ipxip4-segmentation: on
tx-ipxip6-segmentation: on
tx-udp_tnl-segmentation: on
tx-udp_tnl-csum-segmentation: on
tx-gso-partial: on
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off
hw-tc-offload: off
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off
root@ESPRIMO-P956:~#
\end{verbatim}
\section{\label{benchmark:netpfga}NetFPGA}
iperf3-tcp-listening-v4 connected by v6
\begin{verbatim}
nico@ESPRIMO-P956:~$ iperf3 -p 2345 -4 -B 10.0.0.42 -s
-----------------------------------------------------------
Server listening on 2345
-----------------------------------------------------------
Accepted connection from 10.0.0.66, port 50900
[ 5] local 10.0.0.42 port 2345 connected to 10.0.0.66 port 50902
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 693 MBytes 5.81 Gbits/sec
[ 5] 1.00-2.00 sec 645 MBytes 5.41 Gbits/sec
[ 5] 2.00-3.00 sec 644 MBytes 5.40 Gbits/sec
[ 5] 3.00-4.00 sec 868 MBytes 7.28 Gbits/sec
[ 5] 4.00-5.00 sec 853 MBytes 7.16 Gbits/sec
[ 5] 5.00-6.00 sec 913 MBytes 7.66 Gbits/sec
[ 5] 6.00-7.00 sec 774 MBytes 6.49 Gbits/sec
[ 5] 7.00-8.00 sec 641 MBytes 5.38 Gbits/sec
[ 5] 8.00-9.00 sec 911 MBytes 7.64 Gbits/sec
[ 5] 9.00-10.00 sec 733 MBytes 6.15 Gbits/sec
[ 5] 10.00-10.04 sec 25.8 MBytes 5.38 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.04 sec 7.52 GBytes 6.43 Gbits/sec 14 sender
[ 5] 0.00-10.04 sec 7.52 GBytes 6.43 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 2345
-----------------------------------------------------------
nico@ESPRIMO-P956:~$ iperf3 -6 -p 2345 -c 2001:db8:42::a00:2a
Connecting to host 2001:db8:42::a00:2a, port 2345
[ 4] local 2001:db8:42::42 port 50902 connected to 2001:db8:42::a00:2a port 2345
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 719 MBytes 6.03 Gbits/sec 10 449 KBytes
[ 4] 1.00-2.00 sec 645 MBytes 5.41 Gbits/sec 0 449 KBytes
[ 4] 2.00-3.00 sec 644 MBytes 5.40 Gbits/sec 0 449 KBytes
[ 4] 3.00-4.00 sec 878 MBytes 7.36 Gbits/sec 0 449 KBytes
[ 4] 4.00-5.00 sec 859 MBytes 7.20 Gbits/sec 0 449 KBytes
[ 4] 5.00-6.00 sec 910 MBytes 7.64 Gbits/sec 0 449 KBytes
[ 4] 6.00-7.00 sec 758 MBytes 6.36 Gbits/sec 0 449 KBytes
[ 4] 7.00-8.00 sec 658 MBytes 5.52 Gbits/sec 0 449 KBytes
[ 4] 8.00-9.00 sec 906 MBytes 7.60 Gbits/sec 4 449 KBytes
[ 4] 9.00-10.00 sec 724 MBytes 6.07 Gbits/sec 0 449 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 7.52 GBytes 6.46 Gbits/sec 14 sender
[ 4] 0.00-10.00 sec 7.52 GBytes 6.46 Gbits/sec receiver
iperf Done.
nico@ESPRIMO-P956:~$
\end{verbatim}
listening on v6, connecting from v4:
\begin{verbatim}
nico@ESPRIMO-P956:~$ iperf3 -p 2345 -6 -B 2001:db8:42::42 -s
-----------------------------------------------------------
Server listening on 2345
-----------------------------------------------------------
Accepted connection from 2001:db8:42::a00:2a, port 47520
[ 5] local 2001:db8:42::42 port 2345 connected to 2001:db8:42::a00:2a port 47522
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 1.02 GBytes 8.73 Gbits/sec
[ 5] 1.00-2.00 sec 879 MBytes 7.38 Gbits/sec
[ 5] 2.00-3.00 sec 859 MBytes 7.20 Gbits/sec
[ 5] 3.00-4.00 sec 1.02 GBytes 8.78 Gbits/sec
[ 5] 4.00-5.00 sec 1.04 GBytes 8.89 Gbits/sec
[ 5] 5.00-6.00 sec 1.05 GBytes 9.00 Gbits/sec
[ 5] 6.00-7.00 sec 1.03 GBytes 8.89 Gbits/sec
[ 5] 7.00-8.00 sec 1.04 GBytes 8.91 Gbits/sec
[ 5] 8.00-9.00 sec 1.03 GBytes 8.84 Gbits/sec
[ 5] 9.00-10.00 sec 953 MBytes 7.99 Gbits/sec
[ 5] 10.00-10.04 sec 38.6 MBytes 7.81 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.04 sec 9.89 GBytes 8.46 Gbits/sec 151 sender
[ 5] 0.00-10.04 sec 9.89 GBytes 8.46 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 2345
-----------------------------------------------------------
nico@ESPRIMO-P956:~$ iperf3 -4 -p 2345 -c 10.0.0.66
Connecting to host 10.0.0.66, port 2345
[ 4] local 10.0.0.42 port 47522 connected to 10.0.0.66 port 2345
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 1.06 GBytes 9.10 Gbits/sec 53 208 KBytes
[ 4] 1.00-2.00 sec 867 MBytes 7.27 Gbits/sec 6 379 KBytes
[ 4] 2.00-3.00 sec 870 MBytes 7.29 Gbits/sec 0 423 KBytes
[ 4] 3.00-4.00 sec 1.02 GBytes 8.77 Gbits/sec 37 364 KBytes
[ 4] 4.00-5.00 sec 1.04 GBytes 8.91 Gbits/sec 1 450 KBytes
[ 4] 5.00-6.00 sec 1.05 GBytes 8.98 Gbits/sec 0 462 KBytes
[ 4] 6.00-7.00 sec 1.04 GBytes 8.92 Gbits/sec 30 324 KBytes
[ 4] 7.00-8.00 sec 1.04 GBytes 8.88 Gbits/sec 0 471 KBytes
[ 4] 8.00-9.00 sec 1.03 GBytes 8.86 Gbits/sec 10 452 KBytes
[ 4] 9.00-10.00 sec 947 MBytes 7.94 Gbits/sec 14 409 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 9.89 GBytes 8.49 Gbits/sec 151 sender
[ 4] 0.00-10.00 sec 9.89 GBytes 8.49 Gbits/sec receiver
iperf Done.
nico@ESPRIMO-P956:~$
\end{verbatim}
% \section{\label{benchmark:bmv2}BMV2}
%---------------------------------------------------------------------------------------------------------
\section{\label{benchmark:tayga}Tayga}
\begin{verbatim}
ii tayga 0.9.2-6 amd64 userspace stateless NAT64
\end{verbatim}
Setting up IPv4 networking
\begin{verbatim}
[15:12] nsg-System:~# ip addr add 10.0.0.77/24 dev eth1
[15:12] nsg-System:~# ip l s eth1 up
nico@ESPRIMO-P956:~$ ~/master-thesis/bin/init_ipv4_esprimo.sh
nico@ESPRIMO-P956:~$ cat ~/master-thesis/bin/init_ipv4_esprimo.sh
#!/bin/sh
sudo ip addr add 10.0.0.42/24 dev enp2s0f0
sudo ip link set enp2s0f0 up
nico@ESPRIMO-P956:~$ sudo ip route add 10.0.1.0/24 via 10.0.0.77
\end{verbatim}
Verify networking works:
\begin{verbatim}
[15:12] nsg-System:~# ping 10.0.0.42
PING 10.0.0.42 (10.0.0.42) 56(84) bytes of data.
64 bytes from 10.0.0.42: icmp_seq=1 ttl=64 time=0.304 ms
64 bytes from 10.0.0.42: icmp_seq=2 ttl=64 time=0.097 ms
^C
--- 10.0.0.42 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1011ms
rtt min/avg/max/mdev = 0.097/0.200/0.304/0.104 ms
[15:12] nsg-System:~#
\end{verbatim}
Setting up IPv6 networking
\begin{verbatim}
nico@ESPRIMO-P956:~$ ip addr show dev enp2s0f1
13: enp2s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f8:f2:1e:09:62:d1 brd ff:ff:ff:ff:ff:ff
inet6 2001:db8:42::42/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::faf2:1eff:fe09:62d1/64 scope link
valid_lft forever preferred_lft forever
nico@ESPRIMO-P956:~$ sudo ip route add 2001:db8:23::/96 via 2001:db8:42::77
[15:12] nsg-System:~# ip addr add 2001:db8:42::77/64 dev eth2
[15:15] nsg-System:~# ip link set eth2 up
\end{verbatim}
Verify IPv6 networking works:
\begin{verbatim}
nico@ESPRIMO-P956:~$ ping6 -c2 2001:db8:42::77
PING 2001:db8:42::77(2001:db8:42::77) 56 data bytes
64 bytes from 2001:db8:42::77: icmp_seq=1 ttl=64 time=0.169 ms
64 bytes from 2001:db8:42::77: icmp_seq=2 ttl=64 time=0.153 ms
--- 2001:db8:42::77 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1010ms
rtt min/avg/max/mdev = 0.153/0.161/0.169/0.008 ms
nico@ESPRIMO-P956:~$
\end{verbatim}
Enabling IPv6 and IPv4 forwarding:
\begin{verbatim}
[15:16] nsg-System:~# sysctl -w net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding = 1
[15:20] nsg-System:~# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
\end{verbatim}
Testing NAT64 in tayga
\begin{verbatim}
nico@ESPRIMO-P956:~$ ping -c2 10.0.1.42
PING 10.0.1.42 (10.0.1.42) 56(84) bytes of data.
64 bytes from 10.0.1.42: icmp_seq=1 ttl=61 time=0.356 ms
64 bytes from 10.0.1.42: icmp_seq=2 ttl=61 time=0.410 ms
--- 10.0.1.42 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1019ms
rtt min/avg/max/mdev = 0.356/0.383/0.410/0.027 ms
nico@ESPRIMO-P956:~$
nico@ESPRIMO-P956:~$ sudo tcpdump -ni enp2s0f1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp2s0f1, link-type EN10MB (Ethernet), capture size 262144 bytes
15:21:39.851057 IP6 2001:db8:23::a00:2a > 2001:db8:42::42: ICMP6, echo request, seq 1, length 64
15:21:39.851124 IP6 2001:db8:42::42 > 2001:db8:23::a00:2a: ICMP6, echo reply, seq 1, length 64
15:21:40.870448 IP6 2001:db8:23::a00:2a > 2001:db8:42::42: ICMP6, echo request, seq 2, length 64
15:21:40.870507 IP6 2001:db8:42::42 > 2001:db8:23::a00:2a: ICMP6, echo reply, seq 2, length 64
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
nico@ESPRIMO-P956:~$
\end{verbatim}
Testing NAT64 (v6 to v4)
\begin{verbatim}
nico@ESPRIMO-P956:~$ ping6 -c2 2001:db8:23::a00:2a
PING 2001:db8:23::a00:2a(2001:db8:23::a00:2a) 56 data bytes
64 bytes from 2001:db8:23::a00:2a: icmp_seq=1 ttl=61 time=0.240 ms
64 bytes from 2001:db8:23::a00:2a: icmp_seq=2 ttl=61 time=0.400 ms
--- 2001:db8:23::a00:2a ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 0.240/0.320/0.400/0.080 ms
nico@ESPRIMO-P956:~$
\end{verbatim}
\subsection{\label{benchmark:tayga:tcp}Tayga/TCP}
Tayga running at 100% cpu load,
v4->v6 tcp
delivering
3.36 gbit/s at P1
3.30 Gbit/s at P20
3.11 gbit/s at P50
v6->v4 tcp
P1: 3.02 Gbit/s
P20: 3.28 gbit/s
P50: 2.85 gbit/s
Commands:
\begin{verbatim}
Server always: iperf3 -6 -p 2345 -B 2001:db8:42::42 -s | tee iperf-tayga-v4tov6server-P50
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -t 70 -O 10 -P1 -c 10.0.1.42 -T taygav4tov6tcpP1 | tee iperf-tayga-v4tov6server-client
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -t 70 -O 10 -P20 -c 10.0.1.42 -T taygav4tov6tcpP20 | tee iperf-tayga-v4tov6server-client-P20
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -t 70 -O 10 -P50 -c 10.0.1.42 -T taygav4tov6tcpP50 | tee iperf-tayga-v4tov6server-client-P50
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -B 10.0.0.42 -s | tee iperf-tayga-v6tov4-server-P1
\end{verbatim}
Testing v6->v4
\begin{verbatim}
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -B 10.0.0.42 -s | tee iperf-tayga-v6tov4-server-P20
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -6 -p 2345 -t 70 -O 10 -P1 -c 2001:db8:23::a00:2a -T taygav6tov4tcpP1 | tee iperf-tayga-v6tov4-client-P1
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -6 -p 2345 -t 70 -O 10 -P20 -c 2001:db8:23::a00:2a -T taygav6tov4tcpP20 | tee iperf-tayga-v6tov4-client-P20
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -6 -p 2345 -t 70 -O 10 -P50 -c 2001:db8:23::a00:2a -T taygav6tov4tcpP50 | tee iperf-tayga-v6tov4-client-P50
\end{verbatim}
UDP v6->v4, again 100% cpu
P1: 5.81 gbit/s
P20: 9.40 gbit/s
P50: 19.6 Gbits/sec
On the line only ca. 3600 mbit/s seen
\begin{verbatim}
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -B 10.0.0.42 -s | tee iperf-tayga-v6tov4-server-udp-P1
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -6 -p 2345 -t 70 -O 10 -P1 -u -b10000m -c 2001:db8:23::a00:2a -T taygav6tov4tcpP50 | tee iperf-tayga-v6tov4-client-udp-P1
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -6 -p 2345 -t 70 -O 10 -P50 -u -b10000m -c 2001:db8:23::a00:2a -T taygav6tov4tcpP50 | tee iperf-tayga-v6tov4-client-udp-P50
\end{verbatim}
Messsages from server:
\begin{verbatim}
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -B 10.0.0.42 -s | tee iperf-tayga-v6tov4-server-udp-P1
iperf3: OUT OF ORDER - incoming packet = 198902 and received packet = 198904 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 441615 and received packet = 441617 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 441616 and received packet = 441618 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 567495 and received packet = 567501 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 567496 and received packet = 567501 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 567497 and received packet = 567501 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 567499 and received packet = 567503 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 567500 and received packet = 567503 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 567502 and received packet = 567503 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 631160 and received packet = 631164 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 631161 and received packet = 631164 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 631162 and received packet = 631165 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 631163 and received packet = 631165 AND SP = 5
\end{verbatim}
UDP v4->v6, again 100% cpu
P1: 8.26 gbit/s [atop: ~2500 Mbit/s per direction]
P20: 9.92 Gbits/sec [atop: ~2500 Mbit/s per direction]
P50: 19.3 gbit/s [atop: ~2500 Mbit/s per direction]
\begin{verbatim}
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -6 -p 2345 -B 2001:db8:42::42 -s | tee iperf-tayga-v4tov6-server-udp-P1
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -t 70 -O 10 -P1 -u -b0 -c 10.0.1.42 -T taygav4tov6udpP1 | tee iperf-tayga-v4tov6server-client-udp-P1
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -t 70 -O 10 -P20 -u -b0 -c 10.0.1.42 -T taygav4tov6udpP20 | tee iperf-tayga-v4tov6server-client-udp-P20
nico@ESPRIMO-P956:~/master-thesis/iperf$ iperf3 -4 -p 2345 -t 70 -O 10 -P50 -u -b0 -c 10.0.1.42 -T taygav4tov6udpP50 | tee iperf-tayga-v4tov6server-client-udp-P50
\end{verbatim}
%---------------------------------------------------------------------------------------------------------
\section{\label{benchmark:jool}Jool}
\subsection{\label{benchmark:jool:setup}Jool Setup}
Installation of 4.0.1 from \url{https://www.jool.mx/en/download.html}.
\begin{verbatim}
nico@nsg-System:~$ wget https://github.com/NICMx/Jool/releases/download/v4.0.1/jool_4.0.1.tar.gz
nico@nsg-System:~$ tar xvfz jool_4.0.1.tar.gz
nico@nsg-System:~$ cd jool-4.0.1/
nico@nsg-System:~/jool-4.0.1$ sudo apt install linux-headers-$(uname -r)
nico@nsg-System:~/jool-4.0.1$ sudo apt install libnl-genl-3-dev
\end{verbatim}
xtables cannot be found:
\begin{verbatim}
nico@nsg-System:~/jool-4.0.1$ sudo apt install libxtables-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libxtables-dev
nico@nsg-System:~/jool-4.0.1$
\end{verbatim}
Does not compile without:
\begin{verbatim}
checking for library containing argp_parse... none required
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBNLGENL3... yes
checking for XTABLES... no
configure: error: Package requirements (xtables) were not met:
No package 'xtables' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables XTABLES_CFLAGS
and XTABLES_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
nico@nsg-System:~/jool-4.0.1$
\end{verbatim}
Trying different package:
\begin{verbatim}
nico@nsg-System:~/jool-4.0.1$ sudo apt install iptables-dev
\end{verbatim}
Compiles!
%Entries for the list of abbrevations:
%

View File

@ -8770,7 +8770,8 @@ Trace:
create mode 100644 pcap/netfpga-nat64-udp-small-repeat-2019-08-04-0954-enp2s0f0.pcap
create mode 100644 pcap/netfpga-nat64-udp-small-repeat-2019-08-04-0954-enp2s0f1.pcap
*** TODO 2019-08-04: problem with longer: ethernet frame check sequence broken: 0x0000000
*** DONE 2019-08-04: problem with longer: ethernet frame check sequence broken: 0x0000000
CLOSED: [2019-08-04 Sun 19:29]
Points towards incorrect length:
ipv4 sending:
@ -8811,7 +8812,8 @@ frame 5: !!!! 30 bytes difference! => 10 zero bytes too much at the end!!
frame 6:
v4 546 bytes, v6 566 bytes: 20 byte difference, udp checksum broken
*** TODO 2019-08-04: compare netfpga behaviour with bmv2 (version 10.0)
*** DONE 2019-08-04: compare netfpga behaviour with bmv2 (version 10.0)
CLOSED: [2019-08-04 Sun 19:29]
**** DONE cat of /etc/passwd works
CLOSED: [2019-08-04 Sun 12:00]
**** DONE BMV2: 503 character test: works!
@ -8866,8 +8868,8 @@ nico@ESPRIMO-P956:~/master-thesis/bin$
**** DONE Test sizes: 216 bytes do NOT work
**** DONE MAXIMUM payload size: 215 0s + 42 + \n = 219 bytes payload
CLOSED: [2019-08-04 Sun 13:43]
****
*** TODO 2019-08-04: retesting with simulation while compiling
*** DONE 2019-08-04: retesting with simulation while compiling: fixed!
CLOSED: [2019-08-04 Sun 19:28]
#+BEGIN_CENTER
expected (tlast, tkeep, tdata) = (0, ffffffff, 000a4200000a7164114000000100100200450008082222222208081111111108)
actual (tlast, tkeep, tdata) = (0, ffffffff, 000a4200000a7264114000000000100200450008082222222208081111111108)
@ -8877,6 +8879,183 @@ actual (tlast, tkeep, tdata) = (0, ffffffff, 000a4200000a726411400000000010020
generated = 1
- checksum off by one (probably because of ID)
*** DONE 2019-08-04: version 10.1/10.2: new maxpacketregion: v4->v6 works
CLOSED: [2019-08-04 Sun 19:42]
#+BEGIN_CENTER
nico@ESPRIMO-P956:~/master-thesis/bin$ ./init_ipv4_esprimo.sh
nico@ESPRIMO-P956:~/master-thesis/bin$ ./set_ipv4_neighbor.sh
#+END_CENTER
Test 20 first:
- Does't work -> missed to add table entries
- Does work after setting table entries
- 300 works
- 1450 works
- 1500 does not work
Proof:
create mode 100644 pcap/netfpga-10.2-maxpacket-2019-08-04-1931-enp2s0f0.pcap
create mode 100644 pcap/netfpga-10.2-maxpacket-2019-08-04-1931-enp2s0f1.pcap
*** DONE 2019-08-04: test v6 -> v4: works for 1420
CLOSED: [2019-08-04 Sun 20:30]
Proof:
#+BEGIN_CENTER
create mode 100644 pcap/netfpga-10.2-fromv6tov4-2019-08-04-1943-enp2s0f0.pcap
create mode 100644 pcap/netfpga-10.2-fromv6tov4-2019-08-04-1943-enp2s0f1.pcap
#+END_CENTER
*** 2019-08-04: udp benchmark: very slow
#+BEGIN_CENTER
nico@ESPRIMO-P956:~$ iperf3 -p 2345 -6 -B 2001:db8:42::42 -s
-----------------------------------------------------------
Server listening on 2345
-----------------------------------------------------------
Accepted connection from 2001:db8:42::a00:2a, port 47524
[ 5] local 2001:db8:42::42 port 2345 connected to 2001:db8:42::a00:2a port 46493
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
[ 5] 10.00-10.04 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (-nan%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-10.04 sec 1.24 MBytes 1.04 Mbits/sec 0.000 ms 0/0 (-nan%)
-----------------------------------------------------------
Server listening on 2345
-----------------------------------------------------------
#+END_CENTER
-> selecting right options:
#+BEGIN_CENTER
nico@ESPRIMO-P956:~$ iperf3 -4 -p 2345 -u -b 10000m -c 10.0.0.66
Connecting to host 10.0.0.66, port 2345
[ 4] local 10.0.0.42 port 51656 connected to 10.0.0.66 port 2345
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 861 MBytes 7.22 Gbits/sec 110186
[ 4] 1.00-2.00 sec 763 MBytes 6.40 Gbits/sec 97656
[ 4] 2.00-3.00 sec 763 MBytes 6.40 Gbits/sec 97656
[ 4] 3.00-4.00 sec 756 MBytes 6.35 Gbits/sec 96822
[ 4] 4.00-5.00 sec 744 MBytes 6.24 Gbits/sec 95272
[ 4] 5.00-6.00 sec 744 MBytes 6.24 Gbits/sec 95272
[ 4] 6.00-7.00 sec 712 MBytes 5.97 Gbits/sec 91110
[ 4] 7.00-8.00 sec 678 MBytes 5.69 Gbits/sec 86823
[ 4] 8.00-9.00 sec 678 MBytes 5.69 Gbits/sec 86800
[ 4] 9.00-10.00 sec 678 MBytes 5.69 Gbits/sec 86807
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 7.21 GBytes 6.19 Gbits/sec 0.000 ms 0/0 (-nan%)
[ 4] Sent 0 datagrams
iperf Done.
nico@ESPRIMO-P956:~$ iperf3 -4 -p 2345 -u -b 10000m -c 10.0.0.66
Connecting to host 10.0.0.66, port 2345
[ 4] local 10.0.0.42 port 56675 connected to 10.0.0.66 port 2345
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 434 MBytes 3.64 Gbits/sec 55548
[ 4] 1.00-2.00 sec 484 MBytes 4.06 Gbits/sec 62000
[ 4] 2.00-3.00 sec 484 MBytes 4.06 Gbits/sec 62005
[ 4] 3.00-4.00 sec 484 MBytes 4.06 Gbits/sec 62002
[ 4] 4.00-5.00 sec 484 MBytes 4.06 Gbits/sec 62001
[ 4] 5.00-6.00 sec 484 MBytes 4.06 Gbits/sec 62002
[ 4] 6.00-7.00 sec 484 MBytes 4.06 Gbits/sec 62005
[ 4] 7.00-8.00 sec 484 MBytes 4.06 Gbits/sec 62001
[ 4] 8.00-9.00 sec 484 MBytes 4.06 Gbits/sec 62000
[ 4] 9.00-10.00 sec 484 MBytes 4.06 Gbits/sec 62007
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 4.68 GBytes 4.02 Gbits/sec 0.000 ms 0/0 (-nan%)
[ 4] Sent 0 datagrams
iperf Done.
nico@ESPRIMO-P956:~$ iperf3 -4 -p 2345 -u -b 10000m -t 60 -c 10.0.0.66
Connecting to host 10.0.0.66, port 2345
[ 4] local 10.0.0.42 port 46240 connected to 10.0.0.66 port 2345
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 432 MBytes 3.63 Gbits/sec 55321
[ 4] 1.00-2.00 sec 484 MBytes 4.06 Gbits/sec 62001
[ 4] 2.00-3.00 sec 484 MBytes 4.06 Gbits/sec 62006
[ 4] 3.00-4.00 sec 484 MBytes 4.06 Gbits/sec 62001
[ 4] 4.00-5.00 sec 484 MBytes 4.06 Gbits/sec 62000
[ 4] 5.00-6.00 sec 484 MBytes 4.06 Gbits/sec 62007
[ 4] 6.00-7.00 sec 484 MBytes 4.06 Gbits/sec 62001
[ 4] 7.00-8.00 sec 484 MBytes 4.06 Gbits/sec 62000
[ 4] 8.00-9.00 sec 484 MBytes 4.06 Gbits/sec 62004
[ 4] 9.00-10.00 sec 484 MBytes 4.06 Gbits/sec 62003
[ 4] 10.00-11.00 sec 484 MBytes 4.06 Gbits/sec 62001
[ 4] 11.00-12.00 sec 484 MBytes 4.06 Gbits/sec 62002
[ 4] 12.00-13.00 sec 735 MBytes 6.16 Gbits/sec 94024
[ 4] 13.00-14.00 sec 776 MBytes 6.51 Gbits/sec 99305
[ 4] 14.00-15.00 sec 763 MBytes 6.40 Gbits/sec 97655
[ 4] 15.00-16.00 sec 700 MBytes 5.87 Gbits/sec 89566
[ 4] 16.00-17.00 sec 564 MBytes 4.73 Gbits/sec 72249
[ 4] 17.00-18.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 18.00-19.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 19.00-20.00 sec 598 MBytes 5.02 Gbits/sec 76591
[ 4] 20.00-21.00 sec 598 MBytes 5.02 Gbits/sec 76590
[ 4] 21.00-22.00 sec 598 MBytes 5.02 Gbits/sec 76590
[ 4] 22.00-23.00 sec 598 MBytes 5.02 Gbits/sec 76590
[ 4] 23.00-24.00 sec 598 MBytes 5.02 Gbits/sec 76591
[ 4] 24.00-25.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 25.00-26.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 26.00-27.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 27.00-28.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 28.00-29.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 29.00-30.00 sec 598 MBytes 5.02 Gbits/sec 76591
[ 4] 30.00-31.00 sec 598 MBytes 5.02 Gbits/sec 76590
[ 4] 31.00-32.00 sec 598 MBytes 5.02 Gbits/sec 76590
[ 4] 32.00-33.00 sec 598 MBytes 5.02 Gbits/sec 76590
[ 4] 33.00-34.00 sec 598 MBytes 5.02 Gbits/sec 76591
[ 4] 34.00-35.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 35.00-36.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 36.00-37.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 37.00-38.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 38.00-39.00 sec 598 MBytes 5.02 Gbits/sec 76592
[ 4] 39.00-40.00 sec 598 MBytes 5.02 Gbits/sec 76591
[ 4] 40.00-41.00 sec 587 MBytes 4.92 Gbits/sec 75130
[ 4] 41.00-42.00 sec 587 MBytes 4.92 Gbits/sec 75119
[ 4] 42.00-43.00 sec 587 MBytes 4.92 Gbits/sec 75116
[ 4] 43.00-44.00 sec 587 MBytes 4.92 Gbits/sec 75117
[ 4] 44.00-45.00 sec 587 MBytes 4.92 Gbits/sec 75120
[ 4] 45.00-46.00 sec 587 MBytes 4.92 Gbits/sec 75120
[ 4] 46.00-47.00 sec 587 MBytes 4.92 Gbits/sec 75118
[ 4] 47.00-48.00 sec 587 MBytes 4.92 Gbits/sec 75116
[ 4] 48.00-49.00 sec 587 MBytes 4.92 Gbits/sec 75118
[ 4] 49.00-50.00 sec 587 MBytes 4.92 Gbits/sec 75120
[ 4] 50.00-51.00 sec 587 MBytes 4.92 Gbits/sec 75120
[ 4] 51.00-52.00 sec 587 MBytes 4.92 Gbits/sec 75117
[ 4] 52.00-53.00 sec 587 MBytes 4.92 Gbits/sec 75115
[ 4] 53.00-54.00 sec 587 MBytes 4.92 Gbits/sec 75120
[ 4] 54.00-55.00 sec 587 MBytes 4.92 Gbits/sec 75120
[ 4] 55.00-56.00 sec 587 MBytes 4.92 Gbits/sec 75119
[ 4] 56.00-57.00 sec 587 MBytes 4.92 Gbits/sec 75116
[ 4] 57.00-58.00 sec 587 MBytes 4.92 Gbits/sec 75117
[ 4] 58.00-59.00 sec 587 MBytes 4.92 Gbits/sec 75120
[ 4] 59.00-60.00 sec 587 MBytes 4.92 Gbits/sec 75120
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 34.0 GBytes 4.87 Gbits/sec 0.000 ms 0/0 (-nan%)
[ 4] Sent 0 datagrams
iperf Done.
nico@ESPRIMO-P956:~$
#+END_CENTER
** The NetPFGA saga
Problems encountered:
- The logfile for a compile run is 10k+ lines
@ -9018,6 +9197,7 @@ nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/project
#+END_CENTER
** References / Follow up
*** TODO Board
*** RFC 791 IPv4 https://tools.ietf.org/html/rfc791
*** RFC 792 ICMP https://tools.ietf.org/html/rfc792
*** RFC 826 ARP https://tools.ietf.org/html/rfc826
@ -9027,7 +9207,6 @@ nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/project
- Referenced by RFC2464
- Obsoleted by RFC3513
*** RFC 2460 IPv6 (Checksum https://tools.ietf.org/html/rfc2460#section-8.1)
*** RFC 2464 Transmission of IPv6 Packets over Ethernet Networks https://tools.ietf.org/html/rfc2464
- embedding of Mac addresses
@ -9054,7 +9233,6 @@ nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/project
are defined in Section 6.
- does not translate IPv6 extension headers except the Fragment Header.
*** EAMT/Jool: https://www.jool.mx/en/eamt.html
*** Solicited node multicast address https://en.wikipedia.org/wiki/Solicited-node_multicast_address
*** Scapy / IPv6: https://www.idsv6.de/Downloads/IPv6PacketCreationWithScapy.pdf