rxrpc: Fix the names of the fields in the ACK trailer struct
authorDavid Howells <dhowells@redhat.com>
Fri, 26 Jan 2024 16:17:03 +0000 (16:17 +0000)
committerDavid Howells <dhowells@redhat.com>
Thu, 29 Feb 2024 15:49:57 +0000 (15:49 +0000)
From AFS-3.3 a trailer containing extra info was added to the ACK packet
format - but AF_RXRPC has the names of some of the fields mixed up compared
to other AFS implementations.

Rename the struct and the fields to make them match.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: "David S. Miller" <davem@davemloft.net>
cc: Eric Dumazet <edumazet@google.com>
cc: Jakub Kicinski <kuba@kernel.org>
cc: Paolo Abeni <pabeni@redhat.com>
cc: linux-afs@lists.infradead.org
cc: netdev@vger.kernel.org

include/trace/events/rxrpc.h
net/rxrpc/conn_event.c
net/rxrpc/input.c
net/rxrpc/output.c
net/rxrpc/protocol.h

index 33888f688325b84e19da0a2ee6345d82b2c979a8..c730cd732348e4cd5e5d370ad9bfdb5d851a0455 100644 (file)
@@ -83,7 +83,7 @@
        EM(rxrpc_badmsg_bad_abort,              "bad-abort")            \
        EM(rxrpc_badmsg_bad_jumbo,              "bad-jumbo")            \
        EM(rxrpc_badmsg_short_ack,              "short-ack")            \
-       EM(rxrpc_badmsg_short_ack_info,         "short-ack-info")       \
+       EM(rxrpc_badmsg_short_ack_trailer,      "short-ack-trailer")    \
        EM(rxrpc_badmsg_short_hdr,              "short-hdr")            \
        EM(rxrpc_badmsg_unsupported_packet,     "unsup-pkt")            \
        EM(rxrpc_badmsg_zero_call,              "zero-call")            \
index 1f251d758cb9d8be81856187d78e1994ef179072..598b4ee389fc1ea92880ec27b7a2705f7b85e651 100644 (file)
@@ -88,7 +88,7 @@ void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn,
                        struct rxrpc_ackpacket ack;
                };
        } __attribute__((packed)) pkt;
-       struct rxrpc_ackinfo ack_info;
+       struct rxrpc_acktrailer trailer;
        size_t len;
        int ret, ioc;
        u32 serial, mtu, call_id, padding;
@@ -122,8 +122,8 @@ void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn,
        iov[0].iov_len  = sizeof(pkt.whdr);
        iov[1].iov_base = &padding;
        iov[1].iov_len  = 3;
-       iov[2].iov_base = &ack_info;
-       iov[2].iov_len  = sizeof(ack_info);
+       iov[2].iov_base = &trailer;
+       iov[2].iov_len  = sizeof(trailer);
 
        serial = rxrpc_get_next_serial(conn);
 
@@ -158,14 +158,14 @@ void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn,
                pkt.ack.serial          = htonl(skb ? sp->hdr.serial : 0);
                pkt.ack.reason          = skb ? RXRPC_ACK_DUPLICATE : RXRPC_ACK_IDLE;
                pkt.ack.nAcks           = 0;
-               ack_info.rxMTU          = htonl(rxrpc_rx_mtu);
-               ack_info.maxMTU         = htonl(mtu);
-               ack_info.rwind          = htonl(rxrpc_rx_window_size);
-               ack_info.jumbo_max      = htonl(rxrpc_rx_jumbo_max);
+               trailer.maxMTU          = htonl(rxrpc_rx_mtu);
+               trailer.ifMTU           = htonl(mtu);
+               trailer.rwind           = htonl(rxrpc_rx_window_size);
+               trailer.jumbo_max       = htonl(rxrpc_rx_jumbo_max);
                pkt.whdr.flags          |= RXRPC_SLOW_START_OK;
                padding                 = 0;
                iov[0].iov_len += sizeof(pkt.ack);
-               len += sizeof(pkt.ack) + 3 + sizeof(ack_info);
+               len += sizeof(pkt.ack) + 3 + sizeof(trailer);
                ioc = 3;
 
                trace_rxrpc_tx_ack(chan->call_debug_id, serial,
index c435b50c33f4a58d31e2baba31b54e469712bb7f..ea2df62e05e792850c7ed7501014f71ece3c2106 100644 (file)
@@ -670,14 +670,14 @@ static void rxrpc_complete_rtt_probe(struct rxrpc_call *call,
 /*
  * Process the extra information that may be appended to an ACK packet
  */
-static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
-                               struct rxrpc_ackinfo *ackinfo)
+static void rxrpc_input_ack_trailer(struct rxrpc_call *call, struct sk_buff *skb,
+                                   struct rxrpc_acktrailer *trailer)
 {
        struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
        struct rxrpc_peer *peer;
        unsigned int mtu;
        bool wake = false;
-       u32 rwind = ntohl(ackinfo->rwind);
+       u32 rwind = ntohl(trailer->rwind);
 
        if (rwind > RXRPC_TX_MAX_WINDOW)
                rwind = RXRPC_TX_MAX_WINDOW;
@@ -691,7 +691,7 @@ static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
        if (call->cong_ssthresh > rwind)
                call->cong_ssthresh = rwind;
 
-       mtu = min(ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU));
+       mtu = min(ntohl(trailer->maxMTU), ntohl(trailer->ifMTU));
 
        peer = call->peer;
        if (mtu < peer->maxdata) {
@@ -837,7 +837,7 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
        struct rxrpc_ack_summary summary = { 0 };
        struct rxrpc_ackpacket ack;
        struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
-       struct rxrpc_ackinfo info;
+       struct rxrpc_acktrailer trailer;
        rxrpc_serial_t ack_serial, acked_serial;
        rxrpc_seq_t first_soft_ack, hard_ack, prev_pkt, since;
        int nr_acks, offset, ioffset;
@@ -917,11 +917,11 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
                goto send_response;
        }
 
-       info.rxMTU = 0;
+       trailer.maxMTU = 0;
        ioffset = offset + nr_acks + 3;
-       if (skb->len >= ioffset + sizeof(info) &&
-           skb_copy_bits(skb, ioffset, &info, sizeof(info)) < 0)
-               return rxrpc_proto_abort(call, 0, rxrpc_badmsg_short_ack_info);
+       if (skb->len >= ioffset + sizeof(trailer) &&
+           skb_copy_bits(skb, ioffset, &trailer, sizeof(trailer)) < 0)
+               return rxrpc_proto_abort(call, 0, rxrpc_badmsg_short_ack_trailer);
 
        if (nr_acks > 0)
                skb_condense(skb);
@@ -950,8 +950,8 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
        }
 
        /* Parse rwind and mtu sizes if provided. */
-       if (info.rxMTU)
-               rxrpc_input_ackinfo(call, skb, &info);
+       if (trailer.maxMTU)
+               rxrpc_input_ack_trailer(call, skb, &trailer);
 
        if (first_soft_ack == 0)
                return rxrpc_proto_abort(call, 0, rxrpc_eproto_ackr_zero);
index 828b145edc56031c2980867b616b8d1813b5ebf0..3803bf900a46ef60b2a0101d00051f20e23b554e 100644 (file)
@@ -83,7 +83,7 @@ static size_t rxrpc_fill_out_ack(struct rxrpc_connection *conn,
                                 struct rxrpc_txbuf *txb,
                                 u16 *_rwind)
 {
-       struct rxrpc_ackinfo ackinfo;
+       struct rxrpc_acktrailer trailer;
        unsigned int qsize, sack, wrap, to;
        rxrpc_seq_t window, wtop;
        int rsize;
@@ -126,16 +126,16 @@ static size_t rxrpc_fill_out_ack(struct rxrpc_connection *conn,
        qsize = (window - 1) - call->rx_consumed;
        rsize = max_t(int, call->rx_winsize - qsize, 0);
        *_rwind = rsize;
-       ackinfo.rxMTU           = htonl(rxrpc_rx_mtu);
-       ackinfo.maxMTU          = htonl(mtu);
-       ackinfo.rwind           = htonl(rsize);
-       ackinfo.jumbo_max       = htonl(jmax);
+       trailer.maxMTU          = htonl(rxrpc_rx_mtu);
+       trailer.ifMTU           = htonl(mtu);
+       trailer.rwind           = htonl(rsize);
+       trailer.jumbo_max       = htonl(jmax);
 
        *ackp++ = 0;
        *ackp++ = 0;
        *ackp++ = 0;
-       memcpy(ackp, &ackinfo, sizeof(ackinfo));
-       return txb->ack.nAcks + 3 + sizeof(ackinfo);
+       memcpy(ackp, &trailer, sizeof(trailer));
+       return txb->ack.nAcks + 3 + sizeof(trailer);
 }
 
 /*
index e8ee4af43ca89b4b5d00f42baf5b3c5642b9c4b0..4fe6b4d20ada91594c61e037dd8b8a2e2527b35b 100644 (file)
@@ -135,9 +135,9 @@ struct rxrpc_ackpacket {
 /*
  * ACK packets can have a further piece of information tagged on the end
  */
-struct rxrpc_ackinfo {
-       __be32          rxMTU;          /* maximum Rx MTU size (bytes) [AFS 3.3] */
-       __be32          maxMTU;         /* maximum interface MTU size (bytes) [AFS 3.3] */
+struct rxrpc_acktrailer {
+       __be32          maxMTU;         /* maximum Rx MTU size (bytes) [AFS 3.3] */
+       __be32          ifMTU;          /* maximum interface MTU size (bytes) [AFS 3.3] */
        __be32          rwind;          /* Rx window size (packets) [AFS 3.4] */
        __be32          jumbo_max;      /* max packets to stick into a jumbo packet [AFS 3.5] */
 };