DPDK testpmd cannot seem to send packet on ZCU102 - networking

Development setup:
ARM-Cortex-A53 on a Xilinx ZCU102 board
one Intel 82575EB NIC with two ports
Ubuntu 20.04
linux kernel 5.10.0-Xilinx
DPDK version 19.11.3-LTS
Two NIC ports had previously all been binded to default igb drivers and tested out for internet connectivity with ping command, proving that they could function normally.
During the DPDK testpmd test, dpdk-devbind status are shown as follows:(igb_uio driver has also been binded and tested)
Network devices using DPDK-compatible driver
============================================
0000:01:00.0 '82575EB Gigabit Network Connection 10a7' drv=uio_pci_generic unused=igb
0000:01:00.1 '82575EB Gigabit Network Connection 10a7' drv=uio_pci_generic unused=igb
No 'Baseband' devices detected
==============================
No 'Crypto' devices detected
============================
No 'Eventdev' devices detected
==============================
No 'Mempool' devices detected
=============================
No 'Compress' devices detected
==============================
No 'Misc (rawdev)' devices detected
===================================
No 'Regex' devices detected
===========================
I ran the testpmd application with the following command in root mode:
./testpmd -- -i --total-num-mbufs=2048
connected the two net ports together and used start tx_first to start the test. However, no forwarding traffic was detected.
EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-32768kB
EAL: No available hugepages reported in hugepages-64kB
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: Probe PCI driver: net_e1000_igb (8086:10a7) device: 0000:01:00.0 (socket 0)
EAL: Probe PCI driver: net_e1000_igb (8086:10a7) device: 0000:01:00.1 (socket 0)
Interactive-mode selected
testpmd: create a new mbuf pool <mb_pool_0>: n=2048, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
Configuring Port 0 (socket 0)
Port 0: 1C:FD:08:73:BC:D4
Configuring Port 1 (socket 0)
Port 1: 1C:FD:08:73:BC:D5
Checking link statuses...
Done
testpmd>
Port 1: link state change event
testpmd> start tx_first
io packet forwarding - ports=2 - cores=1 - streams=2 - NUMA support enabled, MP allocation mode: native
Logical Core 1 (socket 0) forwards packets on 2 streams:
RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=2
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=512 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=512 - TX free threshold=0
TX threshold registers: pthresh=8 hthresh=1 wthresh=16
TX offloads=0x0 - TX RS bit threshold=0
port 1: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=512 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=512 - TX free threshold=0
TX threshold registers: pthresh=8 hthresh=1 wthresh=16
TX offloads=0x0 - TX RS bit threshold=0
testpmd> stop
Telling cores to stop...
Waiting for lcores to finish...
---------------------- Forward statistics for port 0 ----------------------
RX-packets: 0 RX-dropped: 0 RX-total: 0
TX-packets: 0 TX-dropped: 0 TX-total: 0
----------------------------------------------------------------------------
---------------------- Forward statistics for port 1 ----------------------
RX-packets: 0 RX-dropped: 0 RX-total: 0
TX-packets: 0 TX-dropped: 0 TX-total: 0
----------------------------------------------------------------------------
+++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
RX-packets: 0 RX-dropped: 0 RX-total: 0
TX-packets: 0 TX-dropped: 0 TX-total: 0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
I tried using set promisc all on from this answer, and I also tried disconnecting the two ports and using tx_first, yet to no avail.
Also, while connecting to an external ethernet port and generating traffic from that port, testpmd shows that the port being connected have successfully received packets, but failed to send any. Can anyone show me what i'm doing wrong?

Related

DPDK cannot detect ethernet ports

I have installed DPDK (v20.11.0) shipped by F-stack correctly and have bonded the NICs to the igb_uio driver. The output of dpdk-devbind.py can help to verify it:
Network devices using DPDK-compatible driver
============================================
0000:04:00.0 'I210 Gigabit Network Connection 1533' drv=igb_uio unused=igb,vfio-pci,uio_pci_generic
0000:05:00.0 'I210 Gigabit Network Connection 1533' drv=igb_uio unused=igb,vfio-pci,uio_pci_generic
0000:af:00.0 'Ethernet Controller X710/X557-AT 10GBASE-T 1589' drv=igb_uio unused=i40e,vfio-pci,uio_pci_generic
Network devices using kernel driver
===================================
0000:1a:00.0 'Ethernet Connection X722 for 10GBASE-T 37d2' if=enp26s0f0 drv=i40e unused=igb_uio,vfio-pci,uio_pci_generic *Active*
0000:1a:00.1 'Ethernet Connection X722 for 10GBASE-T 37d2' if=enp26s0f1 drv=i40e unused=igb_uio,vfio-pci,uio_pci_generic *Active*
0000:af:00.1 'Ethernet Controller X710/X557-AT 10GBASE-T 1589' if=enp175s0f1 drv=i40e unused=igb_uio,vfio-pci,uio_pci_generic *Active*
0000:af:00.2 'Ethernet Controller X710/X557-AT 10GBASE-T 1589' if=enp175s0f2 drv=i40e unused=igb_uio,vfio-pci,uio_pci_generic *Active*
0000:af:00.3 'Ethernet Controller X710/X557-AT 10GBASE-T 1589' if=enp175s0f3 drv=i40e unused=igb_uio,vfio-pci,uio_pci_generic *Active*
However, when I ran some tests from this DPDK directory, such as basicfwd, it returns an error saying number of ports must be even. I then checked the return value of rte_eth_dev_count_avail and it's 0.
$ sudo ./basicfwd -l 1 -n 4
EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: No legacy callbacks, legacy socket not created
EAL: Error - exiting with code: 1
Cause: Error: number of ports must be even
Which is even weird is that the output of test-pmd seems like my NICs CAN be detected?
EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: Probe PCI driver: net_e1000_igb (8086:1533) device: 0000:04:00.0 (socket 0)
EAL: Probe PCI driver: net_e1000_igb (8086:1533) device: 0000:05:00.0 (socket 0)
EAL: Probe PCI driver: net_i40e (8086:1589) device: 0000:af:00.0 (socket 1)
EAL: No legacy callbacks, legacy socket not created
testpmd: create a new mbuf pool <mb_pool_0>: n=715456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
testpmd: create a new mbuf pool <mb_pool_1>: n=715456, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc
Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.
Configuring Port 0 (socket 0)
Port 0: 74:FE:48:4D:99:E8
Configuring Port 1 (socket 0)
Port 1: 74:FE:48:4D:99:E9
Configuring Port 2 (socket 1)
Port 2: 3C:FD:FE:83:4A:18
Checking link statuses...
Done
No commandline core given, start packet forwarding
io packet forwarding - ports=3 - cores=1 - streams=3 - NUMA support enabled, MP allocation mode: native
Logical Core 1 (socket 0) forwards packets on 3 streams:
RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
RX P=2/Q=0 (socket 1) -> TX P=2/Q=0 (socket 1) peer=02:00:00:00:00:02
io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=3
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=512 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=512 - TX free threshold=0
TX threshold registers: pthresh=8 hthresh=1 wthresh=16
TX offloads=0x0 - TX RS bit threshold=0
port 1: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=512 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=512 - TX free threshold=0
TX threshold registers: pthresh=8 hthresh=1 wthresh=16
TX offloads=0x0 - TX RS bit threshold=0
port 2: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x10000
RX queue: 0
RX desc=256 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=256 - TX free threshold=32
TX threshold registers: pthresh=32 hthresh=0 wthresh=0
TX offloads=0x10000 - TX RS bit threshold=32
Press enter to exit
I suspect it might be the problem of F-stack, because if I try with the latest version of DPDK, it can detect my NICs.
Could anyone help find what could be wrong in my setting? Any help would be greatly appreciated.
Based on the logs shared from dpdk-devbind you have 3 NIC ports identified under DPDK such as
Network devices using DPDK-compatible driver
============================================
0000:04:00.0 'I210 Gigabit Network Connection 1533' drv=igb_uio unused=igb,vfio-pci,uio_pci_generic
0000:05:00.0 'I210 Gigabit Network Connection 1533' drv=igb_uio unused=igb,vfio-pci,uio_pci_generic
0000:af:00.0 'Ethernet Controller X710/X557-AT 10GBASE-T 1589' drv=igb_uio unused=i40e,vfio-pci,uio_pci_generic
With respect DPDK example skeleton, it works on pair of ports that is 2, 4, 6, 8, ... etc. Hence when you run the application sudo ./basicfwd -l 1 -n 4 there would be 2 outcomes (with real option -d not passed)
If build static with make clean; make static the application sees 3 ports.
If the build shared with make clean; make the application will see 0 ports
So to resolve the problem you have 3 options
Add 1 additional nic either physical or virtual (--vdev=net_tap0)
or add 1 nic to block list by -b 0000:af:00.0 or by removing from dev-bind
or pass 2 nic exclusively by -a 0000:04:00.0 -a 0000:05:00.0
Note: if you have build with shared library mode, you will also need to pass the appropriate PMD driver for probing to be successful for basicfwd. You can easily identify this since there is pci device probe at all in the logs (--log-level=pmd,8).
According to dpdk-devbind output, there are three NICs bound to a DPDK-compatible driver. When one does not specify explicitly (using the -a EAL argument) which NICs to pick, EAL discovers all of the said NICs, but basicfwd demands that the number of ports be even.
In order to solve the problem in question, consider running basicfwd as follows:
sudo ./basicfwd -l 1 -n 4 -a 0000:04:00.0 -a 0000:05:00.0

Raspberry PI Zero with USB/Ethernet dongle

I have looked and looked and looked, I can't find an answer to this problem anywhere!
I want to connect my PI zero to an ethernet cable. I have a USB/Ethernet dongle. I have 3 zero's, all have USB-HUB hats. I plug in the dongle and reboot (which is what every video I've found says is all you have to do). When it comes back up, the ethernet port is recognized, but won't get an IP address.
Here's what ifconfig says:
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:0e:c6:78:62:89 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
The only hint I can find suggests I need to add this to the interfaces file:
auto eth0
allow-hotplug eth0
iface eth0 inet DHCP
But this changes nothing. It seems that the DHCP client is not running (although it works for the WiFi). But when I google 'DHCP setup raspberry pi zero' all I get it how to setup a server.
VERY Embarrassing!
The ethernet cable was not plugged in 🤦🏻‍♂️

Wifi has IP by DHCP but no internet access

I have installed a new USB Wifi network card in Debian 9.
After configuring it, the router assigns me an IP via DHCP but I don't have internet access.
It is the Alpha Network AWUS036NH (Ralink RT3070 Chipset) Wifi network card.
It is on a Debian 9 without a graphical environment.
I have installed the firmware-ralink package and it is using the rt2800usb driver.
I have tried the next commands:
iwconfig
eth1 no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:"CAMIONES"
Mode:Managed Frequency:2.437 GHz Access Point: 74:AC:B9:21:3C:E5
Bit Rate=1 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=70/70 Signal level=-37 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:1 Invalid misc:4 Missed beacon:0
lo no wireless extensions.
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.80.4.2 netmask 255.255.255.0 broadcast 10.80.4.255
ether 4c:02:89:12:c0:be txqueuelen 1000 (Ethernet)
RX packets 5002 bytes 631414 (616.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5510 bytes 882802 (862.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xd0600000-d06fffff
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 6146 bytes 509679 (497.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6146 bytes 509679 (497.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.18 netmask 255.255.255.0 broadcast 192.168.200.255
ether 00:c0:ca:5a:00:60 txqueuelen 1000 (Ethernet)
RX packets 8 bytes 1170 (1.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 58 bytes 7704 (7.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.80.4.1 0.0.0.0 UG 0 0 0 eth0
10.80.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
traceroute -i wlan0 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 *^C
I have tried to add a static route so that when I use wlan0 it will find its gateway:
route add default gw 192.168.200.1 dev wlan0
The rule is added but it does not work and I also lose internet access through eth0
ping -c2 -I wlan0 www.google.fr
PING www.google.fr (216.58.209.67) from 192.168.200.18 wlan0: 56(84) bytes of data.
--- www.google.fr ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1032ms
Contents of the configuration files:
/etc/resolv.conf
nameserver 80.58.61.250
nameserver 8.8.8.8
nameserver 80.58.61.254
/etc/network/interfaces.d/wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid CAMIONES
wpa-psk pass
gateway 192.168.200.1
dns-nameservers 192.168.200.1
/etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="CAMIONES"
psk="pass"
}
I have tried connecting to another router and have the same problem.
What problem can I have with the configuration?
Thank you very much.
Your default route is set to go out via eth0 so all traffic will leave the eth0 interface, unless you have a specific(non default) route set to go out via wlan0.
Try this and see if you get a response:
route add -net 8.8.8.0 netmask 255.255.255.0 gw 192.168.200.1 dev wlan0
ping 8.8.8.8

Slow upload via Thunderbolt, download is fine

I have problem with Thunderbolt and following LAN configuration:
Mac-(1)-NAS-(2)-Gateway
Thunderbolt as network, ip routing, no NAT
Ethernet, ip routing, no NAT
NAS (Debian Buster, 5.4.0-0.bpo.4-amd64) has ethernet (eth)
and thunderbolt (thu). Thunderbolt is using for networking between Mac and NAS
as it's much faster than ethernet.
What works fine:
Data Mac «-thu-» NAS transfer fast.
Data Mac «-eth-» NAS transfer fast (experiment).
Data NAS «-eth-» Gateway transfer fast.
Data Gateway -eth-» NAS -eth-» Mac (no NAT) transfer fast.
Data Mac -eth-» NAS -eth-» Gateway (no NAT) transfer fast.
Data Gateway -eth-» NAS -thu-» Mac (no NAT) transfer fast.
What does NOT work:
Data Mac -thu-» NAS -eth-» Gateway (no NAT, ip routing only) transfer slow (~1 Mbps).
It means the way from Mac via ethernet through NAS then ethernet to Gateway is OK, but from Mac via thunderbolt through NAS then ethernet to Gateway is very slow, ~1 Mbps. The same time connection between Mac and NAS via thunderbolt with no other hop works fast (AFP transfer, both ways).
Moreover, VPN L2TP over IPSec directly from Mac to the Internet works fast even
through thunderbolt! Which means UDP transfer is fast as well.
It seems the problem is in TCP.
NAS
eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.50 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::7285:c2ff:fea8:ccbb prefixlen 64 scopeid 0x20<link>
ether 70:85:c2:a8:cc:bb txqueuelen 1000 (Ethernet)
RX packets 3448186 bytes 303114388 (289.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5539469 bytes 7272910073 (6.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xcc600000-cc620000
 
40: None 02.0: 10701 Ethernet
[Created at net.126]
Unique ID: QTdc.ndpeucax6V1
Parent ID: NotL.loB6eJr4VV8
SysFS ID: /class/net/eno2
SysFS Device Link: /devices/pci0000:00/0000:00:1f.6
Hardware Class: network interface
Model: "Ethernet network interface"
Driver: "e1000e"
Driver Modules: "e1000e"
Device File: eno2
HW Address: 70:85:c2:a8:cc:bb
Permanent HW Address: 70:85:c2:a8:cc:bb
Link detected: yes
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #21 (Ethernet controller)
 
thunderbolt0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.1 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::b2:86ff:fe6f:8a68 prefixlen 64 scopeid 0x20<link>
ether 02:b2:86:6f:8a:68 txqueuelen 1000 (Ethernet)
RX packets 108419 bytes 16590415 (15.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 89926 bytes 32804019 (31.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
 
12: PCI 300.0: 0604 PCI bridge (Normal decode)
[Created at pci.386]
Unique ID: svHJ.Or8xU2r_gn8
Parent ID: B35A.Or8xU2r_gn8
SysFS ID: /devices/pci0000:00/0000:00:1b.0/0000:02:00.0/0000:03:00.0
SysFS BusID: 0000:03:00.0
Hardware Class: bridge
Model: "Intel JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x15c0 "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x0000
Revision: 0x01
Driver: "pcieport"
IRQ: 124 (no events)
Module Alias: "pci:v00008086d000015C0sv00008086sd00000000bc06sc04i00"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #15 (PCI bridge)
 
15: PCI 200.0: 0604 PCI bridge (Normal decode)
[Created at pci.386]
Unique ID: B35A.Or8xU2r_gn8
Parent ID: u1Nb.plmZLUEKTp4
SysFS ID: /devices/pci0000:00/0000:00:1b.0/0000:02:00.0
SysFS BusID: 0000:02:00.0
Hardware Class: bridge
Model: "Intel JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x15c0 "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x0000
Revision: 0x01
Driver: "pcieport"
IRQ: 16 (no events)
Module Alias: "pci:v00008086d000015C0sv00008086sd00000000bc06sc04i00"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #22 (PCI bridge)
 
24: PCI 302.0: 0604 PCI bridge (Normal decode)
[Created at pci.386]
Unique ID: 08OF.Or8xU2r_gn8
Parent ID: B35A.Or8xU2r_gn8
SysFS ID: /devices/pci0000:00/0000:00:1b.0/0000:02:00.0/0000:03:02.0
SysFS BusID: 0000:03:02.0
Hardware Class: bridge
Model: "Intel JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x15c0 "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x0000
Revision: 0x01
Driver: "pcieport"
IRQ: 126 (no events)
Module Alias: "pci:v00008086d000015C0sv00008086sd00000000bc06sc04i00"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #15 (PCI bridge)
 
29: PCI 301.0: 0604 PCI bridge (Normal decode)
[Created at pci.386]
Unique ID: x0Ln.Or8xU2r_gn8
Parent ID: B35A.Or8xU2r_gn8
SysFS ID: /devices/pci0000:00/0000:00:1b.0/0000:02:00.0/0000:03:01.0
SysFS BusID: 0000:03:01.0
Hardware Class: bridge
Model: "Intel JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x15c0 "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]"
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x0000
Revision: 0x01
Driver: "pcieport"
IRQ: 125 (no events)
Module Alias: "pci:v00008086d000015C0sv00008086sd00000000bc06sc04i00"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #15 (PCI bridge)
 
33: PCI 400.0: 0880 System peripheral
[Created at pci.386]
Unique ID: YmUS.raz2QBgWzX9
Parent ID: svHJ.Or8xU2r_gn8
SysFS ID: /devices/pci0000:00/0000:00:1b.0/0000:02:00.0/0000:03:00.0/0000:04:00.0
SysFS BusID: 0000:04:00.0
Hardware Class: unknown
Model: "Intel JHL6240 Thunderbolt 3 NHI (Low Power) [Alpine Ridge LP 2016]"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x15bf "JHL6240 Thunderbolt 3 NHI (Low Power) [Alpine Ridge LP 2016]"
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x0000
Revision: 0x01
Driver: "thunderbolt"
Driver Modules: "thunderbolt"
Memory Range: 0xca000000-0xca03ffff (rw,non-prefetchable)
Memory Range: 0xca040000-0xca040fff (rw,non-prefetchable)
IRQ: 16 (no events)
Module Alias: "pci:v00008086d000015BFsv00008086sd00000000bc08sc80i00"
Driver Info #0:
Driver Status: thunderbolt is active
Driver Activation Cmd: "modprobe thunderbolt"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #12 (PCI bridge)
 
70: None 00.0: 10701 Ethernet
[Created at net.126]
Unique ID: XdLX.ndpeucax6V1
SysFS ID: /class/net/thunderbolt0
SysFS Device Link: /devices/pci0000:00/0000:00:1b.0/0000:02:00.0/0000:03:00.0/0000:04:00.0/domain0/0-0/0-1/0-1.0
Hardware Class: network interface
Model: "Ethernet network interface"
Driver: "thunderbolt-net"
Driver Modules: "thunderbolt_net"
Device File: thunderbolt0
HW Address: 02:b2:86:6f:8a:68
Permanent HW Address: 02:b2:86:6f:8a:68
Link detected: yes
Config Status: cfg=new, avail=yes, need=no, active=unknown
 
default via 192.168.0.1 dev eno2
192.168.0.0/24 dev eno2 proto kernel scope link src 192.168.0.50
192.168.100.0/24 dev thunderbolt0 proto kernel scope link src 192.168.100.1
Mac
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=460<TSO4,TSO6,CHANNEL_IO>
ether 82:52:6b:02:90:01
inet6 fe80::868:bdf3:7c64:bab3%en1 prefixlen 64 secured scopeid 0xe
inet 192.168.100.2 netmask 0xffffff00 broadcast 192.168.100.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect <full-duplex>
status: active
The question is what could be wrong?
Solution found It's due to buggy TSO on Thunderbolt implementation!
To fix upload speed issue on a Mac
touch /etc/sysctl.conf
Edit /etc/sysctl.conf and put there:
net.inet.tcp.tso=0
Then run sysctl -p to (re)load sysctl.conf

Taskmanager fails to connect to Jobmanager [Could not find any IPv4 address that is not loopback or link-local. Using localhost address.]

We were previously using RHEL for our Flink machines. I'm currently working on moving them over to Ubuntu. When I start the task manager, it fails to connect to the job manager with the following message -
2020-01-16 10:54:42,777 INFO org.apache.flink.runtime.util.LeaderRetrievalUtils - Trying to select the network interface and address to use by connecting to the leading JobManager.
2020-01-16 10:54:42,778 INFO org.apache.flink.runtime.util.LeaderRetrievalUtils - TaskManager will try to connect for 10000 milliseconds before falling back to heuristics
2020-01-16 10:54:52,780 WARN org.apache.flink.runtime.net.ConnectionUtils - Could not find any IPv4 address that is not loopback or link-local. Using localhost address.
The network interface on the machine looks like this -
ens5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 10.16.75.30 netmask 255.255.255.128 broadcast 10.16.75.127
ether 02:f1:8b:34:75:51 txqueuelen 1000 (Ethernet)
RX packets 69370 bytes 80369110 (80.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28787 bytes 2898540 (2.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 9562 bytes 1596138 (1.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9562 bytes 1596138 (1.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Note: On RHEL, the primary network interface was eth0. Could this be the issue?
Here's the full task manager log - https://paste.ubuntu.com/p/vgh96FHzRq/
The problem was with the parameter high-availability.cluster-id. It was different on the task manager and the job manager. Updating it solved the issue.

Resources