Index | Thread | Search

From:
Vitaliy Makkoveev <otto@bsdbox.dev>
Subject:
Re: tcp debug global
To:
Alexander Bluhm <bluhm@openbsd.org>
Cc:
tech@openbsd.org
Date:
Thu, 11 Apr 2024 01:00:37 +0300

Download raw body.

Thread
  • Alexander Bluhm:

    tcp debug global

    • Vitaliy Makkoveev:

      tcp debug global

> On 11 Apr 2024, at 00:54, Alexander Bluhm <bluhm@openbsd.org> wrote:
> 
> Hi,
> 
> Move the global variables for TCP debug onto the tcp_input() stack.
> 
> ok?
> 

ok mvs

> bluhm
> 
> Index: netinet/tcp_input.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/tcp_input.c,v
> diff -u -p -r1.401 tcp_input.c
> --- netinet/tcp_input.c	13 Feb 2024 12:22:09 -0000	1.401
> +++ netinet/tcp_input.c	10 Apr 2024 21:47:12 -0000
> @@ -100,8 +100,6 @@
> #include <net/pfvar.h>
> #endif
> 
> -struct	tcpiphdr tcp_saveti;
> -
> int tcp_mss_adv(struct mbuf *, int);
> int tcp_flush_queue(struct tcpcb *);
> 
> @@ -109,8 +107,6 @@ int tcp_flush_queue(struct tcpcb *);
> #include <netinet6/in6_var.h>
> #include <netinet6/nd6.h>
> 
> -struct  tcpipv6hdr tcp_saveti6;
> -
> /* for the packet header length in the mbuf */
> #define M_PH_LEN(m)      (((struct mbuf *)(m))->m_pkthdr.len)
> #define M_V6_LEN(m)      (M_PH_LEN(m) - sizeof(struct ip6_hdr))
> @@ -373,7 +369,13 @@ tcp_input(struct mbuf **mp, int *offp, i
> 	int todrop, acked, ourfinisacked;
> 	int hdroptlen = 0;
> 	short ostate;
> -	caddr_t saveti;
> +	union {
> +		struct	tcpiphdr tcpip;
> +#ifdef INET6
> +		struct  tcpipv6hdr tcpip6;
> +#endif
> +		char	caddr;
> +	} saveti;
> 	tcp_seq iss, *reuse = NULL;
> 	uint64_t now;
> 	u_long tiwin;
> @@ -672,15 +674,13 @@ findpcb:
> 			switch (af) {
> #ifdef INET6
> 			case AF_INET6:
> -				saveti = (caddr_t) &tcp_saveti6;
> -				memcpy(&tcp_saveti6.ti6_i, ip6, sizeof(*ip6));
> -				memcpy(&tcp_saveti6.ti6_t, th, sizeof(*th));
> +				saveti.tcpip6.ti6_i = *ip6;
> +				saveti.tcpip6.ti6_t = *th;
> 				break;
> #endif
> 			case AF_INET:
> -				saveti = (caddr_t) &tcp_saveti;
> -				memcpy(&tcp_saveti.ti_i, ip, sizeof(*ip));
> -				memcpy(&tcp_saveti.ti_t, th, sizeof(*th));
> +				memcpy(&saveti.tcpip.ti_i, ip, sizeof(*ip));
> +				saveti.tcpip.ti_t = *th;
> 				break;
> 			}
> 		}
> @@ -2031,7 +2031,7 @@ dodata:							/* XXX */
> 		}
> 	}
> 	if (otp)
> -		tcp_trace(TA_INPUT, ostate, tp, otp, saveti, 0, tlen);
> +		tcp_trace(TA_INPUT, ostate, tp, otp, &saveti.caddr, 0, tlen);
> 
> 	/*
> 	 * Return any desired output.
> @@ -2110,7 +2110,7 @@ drop:
> 	 * Drop space held by incoming segment and return.
> 	 */
> 	if (otp)
> -		tcp_trace(TA_DROP, ostate, tp, otp, saveti, 0, tlen);
> +		tcp_trace(TA_DROP, ostate, tp, otp, &saveti.caddr, 0, tlen);
> 
> 	m_freem(m);
> 	in_pcbunref(inp);
>