On Fri, Oct 10, 2025 at 03:46:58PM +0800, Yumei Huang wrote: > Rename "retrans" to "retries" so it can be used for SYN retries. > > Signed-off-by: Yumei Huang Reviewed-by: David Gibson I think the new name is clearer, although AFAICT the RFCs mostly seem to refer to both data retransmits and SYN retries as "retransmits". > --- > tcp.c | 12 ++++++------ > tcp_conn.h | 12 ++++++------ > 2 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/tcp.c b/tcp.c > index 0f9e9b3..2ec4b0c 100644 > --- a/tcp.c > +++ b/tcp.c > @@ -186,7 +186,7 @@ > * - ACK_TIMEOUT: if no ACK segment was received from tap/guest, after sending > * data (flag ACK_FROM_TAP_DUE with ESTABLISHED event), re-send data from the > * socket and reset sequence to what was acknowledged. If this persists for > - * more than TCP_MAX_RETRANS times in a row, reset the connection > + * more than TCP_MAX_RETRIES times in a row, reset the connection > * > * - FIN_TIMEOUT: if a FIN segment was sent to tap/guest (flag ACK_FROM_TAP_DUE > * with TAP_FIN_SENT event), and no ACK is received within this time, reset > @@ -1127,7 +1127,7 @@ static void tcp_update_seqack_from_tap(const struct ctx *c, > if (SEQ_LT(seq, conn->seq_to_tap)) > conn_flag(c, conn, ACK_FROM_TAP_DUE); > > - conn->retrans = 0; > + conn->retries = 0; > conn->seq_ack_from_tap = seq; > } > } > @@ -2414,7 +2414,7 @@ void tcp_timer_handler(const struct ctx *c, union epoll_ref ref) > } else if (CONN_HAS(conn, SOCK_FIN_SENT | TAP_FIN_ACKED)) { > flow_dbg(conn, "FIN timeout"); > tcp_rst(c, conn); > - } else if (conn->retrans == TCP_MAX_RETRANS) { > + } else if (conn->retries == TCP_MAX_RETRIES) { > flow_dbg(conn, "retransmissions count exceeded"); > tcp_rst(c, conn); > } else { > @@ -2423,7 +2423,7 @@ void tcp_timer_handler(const struct ctx *c, union epoll_ref ref) > if (!conn->wnd_from_tap) > conn->wnd_from_tap = 1; /* Zero-window probe */ > > - conn->retrans++; > + conn->retries++; > if (tcp_rewind_seq(c, conn)) > return; > > @@ -3382,7 +3382,7 @@ static int tcp_flow_repair_opt(const struct tcp_tap_conn *conn, > int tcp_flow_migrate_source(int fd, struct tcp_tap_conn *conn) > { > struct tcp_tap_transfer t = { > - .retrans = conn->retrans, > + .retries = conn->retries, > .ws_from_tap = conn->ws_from_tap, > .ws_to_tap = conn->ws_to_tap, > .events = conn->events, > @@ -3662,7 +3662,7 @@ int tcp_flow_migrate_target(struct ctx *c, int fd) > memcpy(&flow->f.side, &t.side, sizeof(flow->f.side)); > conn = FLOW_SET_TYPE(flow, FLOW_TCP, tcp); > > - conn->retrans = t.retrans; > + conn->retries = t.retries; > conn->ws_from_tap = t.ws_from_tap; > conn->ws_to_tap = t.ws_to_tap; > conn->events = t.events; > diff --git a/tcp_conn.h b/tcp_conn.h > index 38b5c54..e5c8146 100644 > --- a/tcp_conn.h > +++ b/tcp_conn.h > @@ -13,7 +13,7 @@ > * struct tcp_tap_conn - Descriptor for a TCP connection (not spliced) > * @f: Generic flow information > * @in_epoll: Is the connection in the epoll set? > - * @retrans: Number of retransmissions occurred due to ACK_TIMEOUT > + * @retries: Number of retries occurred due to timeouts > * @ws_from_tap: Window scaling factor advertised from tap/guest > * @ws_to_tap: Window scaling factor advertised to tap/guest > * @tap_mss: MSS advertised by tap/guest, rounded to 2 ^ TCP_MSS_BITS > @@ -38,9 +38,9 @@ struct tcp_tap_conn { > > bool in_epoll :1; > > -#define TCP_RETRANS_BITS 3 > - unsigned int retrans :TCP_RETRANS_BITS; > -#define TCP_MAX_RETRANS MAX_FROM_BITS(TCP_RETRANS_BITS) > +#define TCP_RETRIES_BITS 3 > + unsigned int retries :TCP_RETRIES_BITS; > +#define TCP_MAX_RETRIES MAX_FROM_BITS(TCP_RETRIES_BITS) > > #define TCP_WS_BITS 4 /* RFC 7323 */ > #define TCP_WS_MAX 14 > @@ -102,7 +102,7 @@ struct tcp_tap_conn { > * struct tcp_tap_transfer - Migrated TCP data, flow table part, network order > * @pif: Interfaces for each side of the flow > * @side: Addresses and ports for each side of the flow > - * @retrans: Number of retransmissions occurred due to ACK_TIMEOUT > + * @retries: Number of retries occurred due to timeouts > * @ws_from_tap: Window scaling factor advertised from tap/guest > * @ws_to_tap: Window scaling factor advertised to tap/guest > * @events: Connection events, implying connection states > @@ -122,7 +122,7 @@ struct tcp_tap_transfer { > uint8_t pif[SIDES]; > struct flowside side[SIDES]; > > - uint8_t retrans; > + uint8_t retries; > uint8_t ws_from_tap; > uint8_t ws_to_tap; > uint8_t events; > -- > 2.47.0 > -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson