Date: Sat, 14 Feb 2009 15:26:22 -0800 From: Julian Elischer <julian@elischer.org> To: Luigi Rizzo <luigi@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r188578 - head/sys/netinet Message-ID: <4997531E.3000900@elischer.org> In-Reply-To: <200902131514.n1DFEhft091837@svn.freebsd.org> References: <200902131514.n1DFEhft091837@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Luigi Rizzo wrote: > Author: luigi > Date: Fri Feb 13 15:14:43 2009 > New Revision: 188578 > URL: http://svn.freebsd.org/changeset/base/188578 > > Log: > Use uint32_t instead of n_long and n_time, and uint16_t instead of n_short. > Add a note next to fields in network format. > > The n_* types are not enough for compiler checks on endianness, and their > use often requires an otherwise unnecessary #include <netinet/in_systm.h> > > The typedef in in_systm.h are still there. There is a project out there (intel was involved frommemory) to make a compiler that knows the endianness of stuff. I know it exists because it was reported that one well known piece of big endian embedded software was compiled successfully to actually run on little endian machines. You can of course see why intel was interested.. > > Modified: > head/sys/netinet/in_systm.h > head/sys/netinet/ip.h > head/sys/netinet/ip_icmp.c > head/sys/netinet/ip_icmp.h > head/sys/netinet/ip_options.c > head/sys/netinet/tcp_debug.h > head/sys/netinet/tcp_subr.c > > Modified: head/sys/netinet/in_systm.h > ============================================================================== > --- head/sys/netinet/in_systm.h Fri Feb 13 14:43:46 2009 (r188577) > +++ head/sys/netinet/in_systm.h Fri Feb 13 15:14:43 2009 (r188578) > @@ -52,7 +52,7 @@ typedef u_int32_t n_long; /* long as re > typedef u_int32_t n_time; /* ms since 00:00 GMT, byte rev */ > > #ifdef _KERNEL > -n_time iptime(void); > +uint32_t iptime(void); > #endif > > #endif > > Modified: head/sys/netinet/ip.h > ============================================================================== > --- head/sys/netinet/ip.h Fri Feb 13 14:43:46 2009 (r188577) > +++ head/sys/netinet/ip.h Fri Feb 13 15:14:43 2009 (r188578) > @@ -150,10 +150,10 @@ struct ip_timestamp { > ipt_flg:4; /* flags, see below */ > #endif > union ipt_timestamp { > - n_long ipt_time[1]; > + uint32_t ipt_time[1]; /* network format */ > struct ipt_ta { > struct in_addr ipt_addr; > - n_long ipt_time; > + uint32_t ipt_time; /* network format */ > } ipt_ta[1]; > } ipt_timestamp; > }; > > Modified: head/sys/netinet/ip_icmp.c > ============================================================================== > --- head/sys/netinet/ip_icmp.c Fri Feb 13 14:43:46 2009 (r188577) > +++ head/sys/netinet/ip_icmp.c Fri Feb 13 15:14:43 2009 (r188578) > @@ -165,7 +165,7 @@ icmp_init(void) > * in response to bad packet ip. > */ > void > -icmp_error(struct mbuf *n, int type, int code, n_long dest, int mtu) > +icmp_error(struct mbuf *n, int type, int code, uint32_t dest, int mtu) > { > INIT_VNET_INET(curvnet); > register struct ip *oip = mtod(n, struct ip *), *nip; > @@ -852,7 +852,10 @@ icmp_send(struct mbuf *m, struct mbuf *o > (void) ip_output(m, opts, NULL, 0, NULL, NULL); > } > > -n_time > +/* > + * Return milliseconds since 00:00 GMT in network format. > + */ > +uint32_t > iptime(void) > { > struct timeval atv; > > Modified: head/sys/netinet/ip_icmp.h > ============================================================================== > --- head/sys/netinet/ip_icmp.h Fri Feb 13 14:43:46 2009 (r188577) > +++ head/sys/netinet/ip_icmp.h Fri Feb 13 15:14:43 2009 (r188578) > @@ -68,15 +68,15 @@ struct icmp { > u_char ih_pptr; /* ICMP_PARAMPROB */ > struct in_addr ih_gwaddr; /* ICMP_REDIRECT */ > struct ih_idseq { > - n_short icd_id; > - n_short icd_seq; > + uint16_t icd_id; /* network format */ > + uint16_t icd_seq; /* network format */ > } ih_idseq; > int ih_void; > > /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */ > struct ih_pmtu { > - n_short ipm_void; > - n_short ipm_nextmtu; > + uint16_t ipm_void; /* network format */ > + uint16_t ipm_nextmtu; /* network format */ > } ih_pmtu; > > struct ih_rtradv { > @@ -97,9 +97,13 @@ struct icmp { > #define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime > union { > struct id_ts { /* ICMP Timestamp */ > - n_time its_otime; /* Originate */ > - n_time its_rtime; /* Receive */ > - n_time its_ttime; /* Transmit */ > + /* > + * The next 3 fields are in network format, > + * milliseconds since 00:00 GMT > + */ > + uint32_t its_otime; /* Originate */ > + uint32_t its_rtime; /* Receive */ > + uint32_t its_ttime; /* Transmit */ > } id_ts; > struct id_ip { > struct ip idi_ip; > @@ -127,7 +131,7 @@ struct icmp { > * ip header length. > */ > #define ICMP_MINLEN 8 /* abs minimum */ > -#define ICMP_TSLEN (8 + 3 * sizeof (n_time)) /* timestamp */ > +#define ICMP_TSLEN (8 + 3 * sizeof (uint32_t)) /* timestamp */ > #define ICMP_MASKLEN 12 /* address mask */ > #define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) /* min */ > #define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8) > @@ -202,7 +206,7 @@ struct icmp { > (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY) > > #ifdef _KERNEL > -void icmp_error(struct mbuf *, int, int, n_long, int); > +void icmp_error(struct mbuf *, int, int, uint32_t, int); > void icmp_input(struct mbuf *, int); > void icmp_init(void); > int ip_next_mtu(int, int); > > Modified: head/sys/netinet/ip_options.c > ============================================================================== > --- head/sys/netinet/ip_options.c Fri Feb 13 14:43:46 2009 (r188577) > +++ head/sys/netinet/ip_options.c Fri Feb 13 15:14:43 2009 (r188578) > @@ -105,7 +105,7 @@ ip_dooptions(struct mbuf *m, int pass) > struct in_ifaddr *ia; > int opt, optlen, cnt, off, code, type = ICMP_PARAMPROB, forward = 0; > struct in_addr *sin, dst; > - n_time ntime; > + uint32_t ntime; > struct sockaddr_in ipaddr = { sizeof(ipaddr), AF_INET }; > > /* Ignore or reject packets with IP options. */ > @@ -320,7 +320,7 @@ dropit: > break; > > case IPOPT_TS_TSANDADDR: > - if (off + sizeof(n_time) + > + if (off + sizeof(uint32_t) + > sizeof(struct in_addr) > optlen) { > code = &cp[IPOPT_OFFSET] - (u_char *)ip; > goto bad; > @@ -337,7 +337,7 @@ dropit: > break; > > case IPOPT_TS_PRESPEC: > - if (off + sizeof(n_time) + > + if (off + sizeof(uint32_t) + > sizeof(struct in_addr) > optlen) { > code = &cp[IPOPT_OFFSET] - (u_char *)ip; > goto bad; > @@ -355,8 +355,8 @@ dropit: > goto bad; > } > ntime = iptime(); > - (void)memcpy(cp + off, &ntime, sizeof(n_time)); > - cp[IPOPT_OFFSET] += sizeof(n_time); > + (void)memcpy(cp + off, &ntime, sizeof(uint32_t)); > + cp[IPOPT_OFFSET] += sizeof(uint32_t); > } > } > if (forward && V_ipforwarding) { > > Modified: head/sys/netinet/tcp_debug.h > ============================================================================== > --- head/sys/netinet/tcp_debug.h Fri Feb 13 14:43:46 2009 (r188577) > +++ head/sys/netinet/tcp_debug.h Fri Feb 13 15:14:43 2009 (r188578) > @@ -34,7 +34,7 @@ > #define _NETINET_TCP_DEBUG_H_ > > struct tcp_debug { > - n_time td_time; > + uint32_t td_time; /* network format */ > short td_act; > short td_ostate; > caddr_t td_tcb; > > Modified: head/sys/netinet/tcp_subr.c > ============================================================================== > --- head/sys/netinet/tcp_subr.c Fri Feb 13 14:43:46 2009 (r188577) > +++ head/sys/netinet/tcp_subr.c Fri Feb 13 15:14:43 2009 (r188578) > @@ -581,7 +581,7 @@ tcp_respond(struct tcpcb *tp, void *ipge > } else > #endif /* INET6 */ > { > - xchg(ip->ip_dst.s_addr, ip->ip_src.s_addr, n_long); > + xchg(ip->ip_dst.s_addr, ip->ip_src.s_addr, uint32_t); > nth = (struct tcphdr *)(ip + 1); > } > if (th != nth) { > @@ -593,7 +593,7 @@ tcp_respond(struct tcpcb *tp, void *ipge > nth->th_sport = th->th_sport; > nth->th_dport = th->th_dport; > } > - xchg(nth->th_dport, nth->th_sport, n_short); > + xchg(nth->th_dport, nth->th_sport, uint16_t); > #undef xchg > } > #ifdef INET6
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4997531E.3000900>