Packet delay after route is added over new WiFi connection
0
votes
0
answers
112
views
## Network Setup ##
- STA is Ubuntu 18.04 (4.15.0-147-generic)
- 2x Intel 7620
- Each interface is connected to a different AP in the same subnet
- STA is streaming 1080p video over UDP (~15Mbits/s) using gstreamer
- Video is streamed exclusively over the WiFi one interface st a time, all other traffic uses a wired connection
## Problem ##
I control which WiFi interface streams the video using a static route to the receive pipeline for each interface
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
_gateway 255.255.255.255 UGH 99 0 0 wlp1s0
_gateway 255.255.255.255 UGH 100 0 0 wlp2s0
In the above scenario, traffic is routed over wlp1s0
. When I remove the route for wlp1s0
, I see in iftop
that traffic is then sent over wlp2s0
.
I notice that there is a problem that manifests as one or two lost / delayed frames on the video receive pipeline if I reroute the video traffic over a connection that has not been used yet. Using the above scenario as an example, I start off with both interfaces authenticated, associated, and 4-way handshake complete, but the route for wlp1s0
has a lower metric than wlp2s0
, so no packets have been sent over wlp2s0
yet. When I remove the route for wlp1s0
, there is a very short blip in the video, then everything goes back to normal.
The strange thing is, after I experience this blip in the video and stay connected to the same APs, I can add and remove the route for wlp1s0
repeatedly with absolutely no noticeable effect on the video. I've verified using iftop
that I can flip flop which interface is active, and there isn't any effect on the video quality.
## Things I've looked at ##
I've run wpa_supplicant
manually at the highest verbosity, and there are no relevant errors / warnings. I've also taken a look at the AP controller log, and there are no errors / warnings reported there. Using sudo tcpdump -c 10000 -n -B 10240 -i wlp1s0
while I induced the blip in the video also didn't report any problems.
What else can I look at to diagnose and fix this issue?
## Update ##
I created a cgroup with a new routing table and a static route on wlp1s0
to the video pipeline destination. I observed that if I push traffic over wlp1s0
using
cgexec -g net_cls:cg1 iperf3 -c -p 1234 -u -b 10M
right before I add the route for wlp1s0
to the default table, there is no blip in the video. I guess what that means is that blips in the video is from a stale arp cache?
Asked by Jeff Isaacs
(469 rep)
Aug 10, 2021, 04:41 PM
Last activity: Aug 11, 2021, 05:28 PM
Last activity: Aug 11, 2021, 05:28 PM