diff options
| author | David Howells <dhowells@redhat.com> | 2025-04-11 10:52:58 +0100 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2025-04-14 17:36:42 -0700 |
| commit | fba6995798c6085a0c2fc67e0cacd489a6971044 (patch) | |
| tree | 2924f8fac3faa4fa2239ed5a6370a00d33273e56 /net/rxrpc | |
| parent | d98c317fd9aa78dfa45e47deb6536cd35783afd1 (diff) | |
rxrpc: Add more CHALLENGE/RESPONSE packet tracing
Add more tracing for CHALLENGE and RESPONSE packets. Currently, rxrpc only
has client-relevant tracepoints (rx_challenge and tx_response), but add the
server-side ones too.
Further, record the service ID in the rx_challenge tracepoint as well.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
Link: https://patch.msgid.link/20250411095303.2316168-14-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/rxrpc')
| -rw-r--r-- | net/rxrpc/output.c | 2 | ||||
| -rw-r--r-- | net/rxrpc/rxgk.c | 4 | ||||
| -rw-r--r-- | net/rxrpc/rxkad.c | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/net/rxrpc/output.c b/net/rxrpc/output.c index 8138f35d7945..0af19bcdc80a 100644 --- a/net/rxrpc/output.c +++ b/net/rxrpc/output.c @@ -953,6 +953,8 @@ void rxrpc_send_response(struct rxrpc_connection *conn, struct sk_buff *response serial = rxrpc_get_next_serials(conn, 1); wserial = htonl(serial); + trace_rxrpc_tx_response(conn, serial, sp); + ret = skb_store_bits(response, offsetof(struct rxrpc_wire_header, serial), &wserial, sizeof(wserial)); if (ret < 0) diff --git a/net/rxrpc/rxgk.c b/net/rxrpc/rxgk.c index 6175fc54ba90..ba8bc201b8d3 100644 --- a/net/rxrpc/rxgk.c +++ b/net/rxrpc/rxgk.c @@ -668,6 +668,8 @@ static int rxgk_issue_challenge(struct rxrpc_connection *conn) serial = rxrpc_get_next_serials(conn, 1); whdr->serial = htonl(serial); + trace_rxrpc_tx_challenge(conn, serial, 0, *(u32 *)&conn->rxgk.nonce); + ret = do_udp_sendmsg(conn->local->socket, &msg, len); if (ret > 0) conn->peer->last_tx_at = ktime_get_seconds(); @@ -1203,6 +1205,8 @@ static int rxgk_verify_response(struct rxrpc_connection *conn, if (xdr_round_up(token_len) + sizeof(__be32) > len) goto short_packet; + trace_rxrpc_rx_response(conn, sp->hdr.serial, 0, sp->hdr.cksum, token_len); + offset += xdr_round_up(token_len); len -= xdr_round_up(token_len); diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c index 0b5e007c7de9..3657c0661cdc 100644 --- a/net/rxrpc/rxkad.c +++ b/net/rxrpc/rxkad.c @@ -685,6 +685,8 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn) serial = rxrpc_get_next_serial(conn); whdr.serial = htonl(serial); + trace_rxrpc_tx_challenge(conn, serial, 0, conn->rxkad.nonce); + ret = kernel_sendmsg(conn->local->socket, &msg, iov, 2, len); if (ret < 0) { trace_rxrpc_tx_fail(conn->debug_id, serial, ret, |
