From: netdev-bot+sashiko@kernel.org
To: antonio@openvpn.net
Cc: netdev@vger.kernel.org, ralf@mandelbit.com, sd@queasysnail.net,
kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch,
davem@davemloft.net, edumazet@google.com
Subject: Re: [PATCH net-next 4/7] selftests: ovpn: enable TCP_NODELAY on TCP sockets
Date: Thu, 08 Oct 2026 13:32:00 +0000 [thread overview]
Message-ID: <179146632050.434549.11769906419879477924@kernel.org> (raw)
In-Reply-To: <20261007133018.1451958-5-antonio@openvpn.net>
Thank you for your contribution! Sashiko AI review found more severe
issue(s) in other patches of this series. This mail is only an FYI, in case
you want to address the nit picks below when you respin.
Low priority / nit picks for your consideration:
- [Low] The patch reduces TCP selftest coverage.
--
selftests: ovpn: enable TCP_NODELAY on TCP sockets
This commit makes ovpn-cli set TCP_NODELAY on both the connecting and the
accepted TCP sockets, which matches the current userspace default. TCP does
not preserve record boundaries, so the tcpdump based DATA_V2 peer ID check
in ovpn_run_basic_traffic() now runs only for UDP. The TCP branch of
ovpn_build_capture_filter() is removed.
> diff --git a/tools/testing/selftests/net/ovpn/test.sh b/tools/testing/selftests/net/ovpn/test.sh
> index 392109d5e14e2..e2e6ffdd29bb0 100755
> --- a/tools/testing/selftests/net/ovpn/test.sh
> +++ b/tools/testing/selftests/net/ovpn/test.sh
> @@ -137,35 +137,33 @@ ovpn_run_basic_traffic() {
> local tcpdump_timeout="1.5s"
>
> for p in $(seq 1 ${OVPN_NUM_PEERS}); do
[ ... ]
> if [ "${OVPN_PROTO}" == "UDP" ]; then
[ ... ]
> + timeout ${tcpdump_timeout} ip netns exec "${peer_ns}" \
> + tcpdump --immediate-mode -p -ni veth${p} -c 1 \
> + "$(ovpn_build_capture_filter "${header1}" "${raddr}")" \
> + >/dev/null 2>&1 &
> + tcpdump_pid1=$!
> + timeout ${tcpdump_timeout} ip netns exec "${peer_ns}" \
> + tcpdump --immediate-mode -p -ni veth${p} -c 1 \
> + "$(ovpn_build_capture_filter "${header2}" "${raddr}")" \
> + >/dev/null 2>&1 &
> + tcpdump_pid2=$!
> +
> + sleep 0.3
> fi
[Severity: Low]
This isn't a bug, but now that the capture runs only for UDP,
test-tcp.sh and test-symmetric-id-tcp.sh no longer check the DATA_V2 peer
ID on the wire. Is there another way to keep some wire-level peer ID
coverage for the TCP variants?
On receive, ovpn_tcp_rcv() gets the peer from the stream, not from the
on-wire peer ID:
drivers/net/ovpn/tcp.c:ovpn_tcp_rcv() {
struct ovpn_peer *peer = container_of(strp, struct ovpn_peer, tcp.strp);
...
}
So a successful ping over TCP does not by itself show that the correct
tx_id was sent.
tx_id is set in common code and written to the packet in
ovpn_aead_encrypt():
op = ovpn_opcode_compose(OVPN_DATA_V2, ks->key_id, peer->tx_id);
The UDP variants, including test-symmetric-id.sh, still exercise that
path.
Separately, ovpn_connect() and ovpn_accept() in ovpn-cli.c now set
TCP_NODELAY unconditionally, so every TCP selftest runs with Nagle
disabled. Would it be worth adding an option that leaves Nagle enabled, so
that setup still gets tested?
> - peer_ns="ovpn_peer${p}"
> -
> - timeout ${tcpdump_timeout} ip netns exec "${peer_ns}" \
> - tcpdump --immediate-mode -p -ni veth${p} -c 1 \
> - "$(ovpn_build_capture_filter "${header1}" "${raddr}")" \
> - >/dev/null 2>&1 &
> - tcpdump_pid1=$!
> - timeout ${tcpdump_timeout} ip netns exec "${peer_ns}" \
> - tcpdump --immediate-mode -p -ni veth${p} -c 1 \
> - "$(ovpn_build_capture_filter "${header2}" "${raddr}")" \
> - >/dev/null 2>&1 &
> - tcpdump_pid2=$!
> -
> - sleep 0.3
[ ... ]
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20261007133018.1451958-2-antonio%40openvpn.net
next prev parent reply other threads:[~2026-10-08 13:32 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-07 13:30 [PATCH net-next 0/7] pull request: ovpn 2026-10-07 Antonio Quartulli
2026-10-07 13:30 ` [PATCH net-next 1/7] ovpn: Fix the return value in ovpn_bind_from_sockaddr() kernel-doc Antonio Quartulli
2026-10-07 13:30 ` [PATCH net-next 2/7] ovpn: remove unused work field from struct ovpn_socket Antonio Quartulli
2026-10-07 13:30 ` [PATCH net-next 3/7] ovpn: remove redundant peer NULL checks in crypto post functions Antonio Quartulli
2026-10-07 13:30 ` [PATCH net-next 4/7] selftests: ovpn: enable TCP_NODELAY on TCP sockets Antonio Quartulli
2026-10-08 13:32 ` netdev-bot+sashiko [this message]
2026-10-08 13:59 ` Neal Cardwell
2026-10-07 13:30 ` [PATCH net-next 5/7] selftests: ovpn: wait for the TCP server key setup before traffic Antonio Quartulli
2026-10-08 13:32 ` netdev-bot+sashiko
2026-10-07 13:30 ` [PATCH net-next 6/7] ovpn: send peer object along with PEER_DEL_NTF Antonio Quartulli
2026-10-08 13:32 ` netdev-bot+sashiko
2026-10-07 13:30 ` [PATCH net-next 7/7] MAINTAINERS: ovpn: add Ralf Lici as reviewer Antonio Quartulli
-- strict thread matches above, loose matches on Subject: below --
2026-09-30 22:25 [PATCH net-next 0/7] pull request: ovpn 2026-09-30 Antonio Quartulli
2026-09-30 22:25 ` [PATCH net-next 4/7] selftests: ovpn: enable TCP_NODELAY on TCP sockets Antonio Quartulli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=179146632050.434549.11769906419879477924@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=antonio@openvpn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=ralf@mandelbit.com \
--cc=sd@queasysnail.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox