diff --git a/docs/impl/reports/USB-TABLET-LINK.md b/docs/impl/reports/USB-TABLET-LINK.md index 28b8cc8..ae45992 100644 --- a/docs/impl/reports/USB-TABLET-LINK.md +++ b/docs/impl/reports/USB-TABLET-LINK.md @@ -28,6 +28,25 @@ net_ipv4_defroute_router=192.168.55.100 net_ipv4_defroute_metric=32766 The Orin also adds `default via 192.168.55.100 metric 32766`. This ranks below everything else, so it never takes traffic from Ethernet, WiFi or LTE. +### DHCP lease: 86400 s, not NVIDIA's 15 s (2026-10-14) + +NVIDIA ships `net_dhcp_lease_time=15`. It worked while the tablet's Android stretched short leases and renewed every +~30 s. On 2026-10-14 the tablet's NetworkStack (Mainline module) updated itself (`lastUpdateTime 08:21:19`) and +began taking 15 s literally: the address expired, Android restarted `usb0`, and every WebSocket to svc-gw died on a +**15.0 s cycle** (`DHCPDISCOVER` every 15 s in the Orin's log, `connection lost` in svc-gw's, ~0.3 s to reconnect). + +Now `net_dhcp_lease_time=86400` in the config file above; Android renews at 12 h. Safe on this link because: + +- the pool is one address for one host at a time (a single USB-C port); +- the leases file is deleted on every plug-in: the udev rule `99-nv-l4t-usb-device-mode.rules` runs + `nv-l4t-usb-device-mode-state-change.sh`, which stops `nv-l4t-usb-device-mode-runtime` on unplug and starts it on + plug-in, and its start script recreates `/run/l4t-usb-devmode-dhcpd.leases` empty. A phone plugged in after the + tablet always gets the address. + +Applied with `sudo systemctl restart nv-l4t-usb-device-mode-runtime.service` (the link drops for a few seconds). +The file is part of `nvidia-l4t-init`; a package update may restore 15. Sign: svc-gw logging `connection lost` +every 15 s while `DHCPDISCOVER` repeats. + ## Android routes apps over it only when it is the default network The tablet joins the USB network, but Android only sends ordinary app traffic over its *default* network, and an Ethernet network without