mbox series

[v2,0/3] usbipd: enable tcp keepalive and set its options for accepted connection

Message ID 20250523090802.17987-1-vadimgrn@gmail.com
Headers show
Series usbipd: enable tcp keepalive and set its options for accepted connection | expand

Message

Vadym Hrynchyshyn May 23, 2025, 9:07 a.m. UTC
If usbip client does not close a TCP/IP connection to a daemon
gracefully, the daemon will keep this connection open indefinitely.

The issue is that the client cannot attach this device again
until the device will be rebinded by commands:
"usbip unbind -b ..." and "usbip bind -b ...".

This issue was reported by a user, look for details here 
https://github.com/vadimgrn/usbip-win2/issues/109.

To reproduce this issue, run "usbip attach ..." to attach remote usb 
device and make a hard reset of this PC by pressing Reset button.
usbipd will keep this connection forever and will not allow to
attach this device again until unbind/bind will be executed.

To fix that, enable SO_KEEPALIVE for accepted connection and set keepalive
parameters if corresponding program options are passed.

Vadym Hrynchyshyn (3):
  usbipd: enable SO_KEEPALIVE socket option for accepted connection
  usbipd: add long options to set TCP_KEEPIDLE/TCP_KEEPCNT/TCP_KEEPINTVL
    socket options
  usbipd: use usbip_to_int to simplify usbip_setup_port_number
    implementation

 tools/usb/usbip/configure.ac        | 24 +++++++-
 tools/usb/usbip/src/usbip_network.c | 96 +++++++++++++++++++++++++----
 tools/usb/usbip/src/usbip_network.h | 14 +++++
 tools/usb/usbip/src/usbipd.c        | 58 +++++++++++++++--
 4 files changed, 174 insertions(+), 18 deletions(-)