[PATCH net-next v3 0/3] vsock: Introduce SIOCINQ ioctl support

From: Xuewei Niu
Date: Tue Jun 17 2025 - 00:54:17 EST


Introduce SIOCINQ ioctl support for vsock, indicating the length of unread
bytes.

Similar with SIOCOUTQ ioctl, the information is transport-dependent.

The first patch adds SIOCINQ ioctl support in AF_VSOCK.

The second patch wraps the ioctl into `ioctl_int()`, which implements a
retry mechanism to prevent immediate failure.

The last one adds two test cases to check the functionality. The changes
have been tested, and the results are as expected.

Signed-off-by: Xuewei Niu <niuxuewei.nxw@xxxxxxxxxxxx>

--

v1->v2:
https://lore.kernel.org/lkml/20250519070649.3063874-1-niuxuewei.nxw@xxxxxxxxxxxx/
- Use net-next tree.
- Reuse `rx_bytes` to count unread bytes.
- Wrap ioctl syscall with an int pointer argument to implement a retry
mechanism.

v2->v3:
https://lore.kernel.org/netdev/20250613031152.1076725-1-niuxuewei.nxw@xxxxxxxxxxxx/
- Update commit messages following the guidelines
- Remove `unread_bytes` callback and reuse `vsock_stream_has_data()`
- Move the tests to the end of array
- Split the refactoring patch
- Include <sys/ioctl.h> in the util.c

Xuewei Niu (3):
vsock: Add support for SIOCINQ ioctl
test/vsock: Add retry mechanism to ioctl wrapper
test/vsock: Add ioctl SIOCINQ tests

net/vmw_vsock/af_vsock.c | 22 +++++++++
tools/testing/vsock/util.c | 37 ++++++++++----
tools/testing/vsock/util.h | 1 +
tools/testing/vsock/vsock_test.c | 82 ++++++++++++++++++++++++++++++++
4 files changed, 133 insertions(+), 9 deletions(-)

--
2.34.1