All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel Zahka" <daniel.zahka@gmail.com>
To: "Wei Wang" <weiwan@google.com>,
	"David S . Miller" <davem@davemloft.net>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Andrew Lunn" <andrew+netdev@lunn.ch>,
	"Shuah Khan" <shuah@kernel.org>
Cc: "Simon Horman" <horms@kernel.org>,
	"Jakub Sitnicki" <jakub@cloudflare.com>,
	"Daniel Zahka" <daniel.zahka@gmail.com>,
	"Willem de Bruijn" <willemb@google.com>, <netdev@vger.kernel.org>,
	<linux-kselftest@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<bpf@vger.kernel.org>
Subject: Re: [PATCH net v2 2/2] selftests/net: psp: test bidirectional data transfer
Date: Wed, 04 Nov 2026 16:26:50 -0500	[thread overview]
Message-ID: <DMMQTFS3ULM2.3HSJGB1UT085M@gmail.com> (raw)
In-Reply-To: <20261030043145.2185700-3-weiwan@google.com>

On Fri Oct 30, 2026 at 12:31 AM EDT, Wei Wang wrote:
> _data_basic_send() and _data_basic_send_netkit_psp_assoc() currently
> only verify unidirectional data transmission from the test socket to
> psp_responder. As a result, they do not exercise the receive path for
> PSP-encrypted TCP data segments arriving at the test socket (such as
> packets redirected across a netkit interface associated via dev-assoc,
> which relies on SKB_EXT_PSP surviving packet scrubbing).
>
> Use the existing "data echo" command in psp_responder to verify that the
> test socket can also receive PSP-encrypted data from the peer in both
> _data_basic_send() and _data_basic_send_netkit_psp_assoc().
>
> Signed-off-by: Wei Wang <weiwan@google.com>
> ---
>  tools/testing/selftests/drivers/net/psp.py | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/tools/testing/selftests/drivers/net/psp.py b/tools/testing/selftests/drivers/net/psp.py
> index 473500901879..e507951b440b 100755
> --- a/tools/testing/selftests/drivers/net/psp.py
> +++ b/tools/testing/selftests/drivers/net/psp.py
> @@ -120,6 +120,12 @@ def _check_data_rx(cfg, exp_len):
>      ksft_eq(read_len, exp_len)
>  
>  
> +def _check_data_echo(cfg, s):
> +    _send_with_ack(cfg, b'data echo\0')
> +    s.settimeout(1.0)

I'm not a huge fan of setting the blocking timeout here. If we are going
to set a timeout it should be when the socket is created. Otherwise this
function has an unexpected side-effect. Another option is to use non
blocking reads with timeout like:

def _recv_careful(s, target, timeout=2):
    """Read exactly target bytes, tolerating short reads"""
    data = b''
    end = time.monotonic() + timeout
    while time.monotonic() < end:
        try:
            data += s.recv(target - len(data), socket.MSG_DONTWAIT)
            if len(data) == target:
                return data
        except BlockingIOError:
            time.sleep(0.001)
    raise KsftFailEx(f"short read, got {len(data)} of {target} bytes")


def _req_echo(cfg, s):
    """Ask the peer to echo, and check the reply arrives intact"""
    _send_with_ack(cfg, b'data echo\0')
    ksft_eq(_recv_careful(s, 5), b'echo\0')

> +    ksft_eq(s.recv(5), b'echo\0')
> +
> +
>  def _check_data_outq(s, exp_len, force_wait=False):
>      outq = 0
>      for _ in range(10):
> @@ -478,6 +484,7 @@ def _data_basic_send(cfg, version, ipver):
>  
>      data_len = _send_careful(cfg, s, 100)
>      _check_data_rx(cfg, data_len)
> +    _check_data_echo(cfg, s)
>      _close_psp_conn(cfg, s)
>  
>  
> @@ -726,6 +733,7 @@ def _data_basic_send_netkit_psp_assoc(cfg, version, ipver):
>  
>          data_len = _send_careful(cfg, sock, 100)
>          _check_data_rx(cfg, data_len)
> +        _check_data_echo(cfg, sock)
>          _close_psp_conn(cfg, sock)
>  
>  

I'm ok with the approach overall. The coverage is sufficient for the
purposes of the series.

  reply	other threads:[~2026-11-04 21:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-30  4:31 [PATCH net v2 0/2] net: psp: preserve SKB_EXT_PSP across packet scrubbing Wei Wang
2026-10-30  4:31 ` [PATCH net v2 1/2] net: Make PSP skb extension survive " Wei Wang
2026-11-03  5:31   ` netdev-bot+sashiko
2026-11-05 14:09   ` Daniel Zahka
2026-11-06  0:26     ` Wei Wang
2026-10-30  4:31 ` [PATCH net v2 2/2] selftests/net: psp: test bidirectional data transfer Wei Wang
2026-11-04 21:26   ` Daniel Zahka [this message]
2026-11-06  0:33     ` Wei Wang

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=DMMQTFS3ULM2.3HSJGB1UT085M@gmail.com \
    --to=daniel.zahka@gmail.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=bpf@vger.kernel.org \
    --cc=davem@davemloft.net \
    --cc=horms@kernel.org \
    --cc=jakub@cloudflare.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=shuah@kernel.org \
    --cc=weiwan@google.com \
    --cc=willemb@google.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.