Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/netinet/ip_input.c,v retrieving revision 1.209.2.2 retrieving revision 1.210 diff -u -p -r1.209.2.2 -r1.210 --- src/sys/netinet/ip_input.c 2005/03/19 08:36:38 1.209.2.2 +++ src/sys/netinet/ip_input.c 2005/02/02 21:41:55 1.210 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.209.2.2 2005/03/19 08:36:38 yamt Exp $ */ +/* $NetBSD: ip_input.c,v 1.210 2005/02/02 21:41:55 perry Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -98,7 +98,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.209.2.2 2005/03/19 08:36:38 yamt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.210 2005/02/02 21:41:55 perry Exp $"); #include "opt_inet.h" #include "opt_gateway.h" @@ -223,7 +223,7 @@ struct rttimer_queue *ip_mtudisc_timeout int ipqmaxlen = IFQ_MAXLEN; u_long in_ifaddrhash; /* size of hash table - 1 */ int in_ifaddrentries; /* total number of addrs */ -struct in_ifaddrhead in_ifaddrhead; +struct in_ifaddrhead in_ifaddrhead; struct in_ifaddrhashhead *in_ifaddrhashtbl; u_long in_multihash; /* size of hash table - 1 */ int in_multientries; /* total number of addrs */ @@ -257,7 +257,7 @@ do { \ (((((x) & 0xF) | ((((x) >> 8) & 0xF) << 4)) ^ (y)) & IPREASS_HMASK) struct ipqhead ipq[IPREASS_NHASH]; int ipq_locked; -static int ip_nfragpackets; /* packets in reass queue */ +static int ip_nfragpackets; /* packets in reass queue */ static int ip_nfrags; /* total fragments in reass queues */ int ip_maxfragpackets = 200; /* limit on packets. XXX sysctl */ @@ -267,7 +267,7 @@ int ip_maxfrags; /* limit on fr /* * Additive-Increase/Multiplicative-Decrease (AIMD) strategy for * IP reassembly queue buffer managment. - * + * * We keep a count of total IP fragments (NB: not fragmented packets!) * awaiting reassembly (ip_nfrags) and a limit (ip_maxfrags) on fragments. * If ip_nfrags exceeds ip_maxfrags the limit, we drop half the @@ -275,7 +275,7 @@ int ip_maxfrags; /* limit on fr * repeatedly deleting single packets under heavy fragmentation load * (e.g., from lossy NFS peers). */ -static u_int ip_reass_ttl_decr(u_int ticks); +static u_int ip_reass_ttl_decr(u_int ticks); static void ip_reass_drophalf(void); @@ -283,7 +283,7 @@ static __inline int ipq_lock_try(void); static __inline void ipq_unlock(void); static __inline int -ipq_lock_try(void) +ipq_lock_try() { int s; @@ -302,7 +302,7 @@ ipq_lock_try(void) } static __inline void -ipq_unlock(void) +ipq_unlock() { int s; @@ -395,7 +395,7 @@ ip_nmbclusters_changed(void) * All protocols not implemented in kernel go to raw IP protocol handler. */ void -ip_init(void) +ip_init() { const struct protosw *pr; int i; @@ -452,7 +452,7 @@ struct route ipforward_rt; * IP software interrupt routine */ void -ipintr(void) +ipintr() { int s; struct mbuf *m; @@ -668,7 +668,7 @@ ip_input(struct mbuf *m) * default route for hosts on 1.1.1.0/24. Of course this * also requires a "map tlp0 ..." to complete the story. * One might argue whether or not this kind of network config. - * should be supported in this manner... + * should be supported in this manner... */ srcrt = (odst.s_addr != ip->ip_dst.s_addr); } @@ -836,7 +836,7 @@ ip_input(struct mbuf *m) sp = ipsec_getpolicy(tdbi, IPSEC_DIR_INBOUND); } else { sp = ipsec_getpolicybyaddr(m, IPSEC_DIR_INBOUND, - IP_FORWARDING, &error); + IP_FORWARDING, &error); } if (sp == NULL) { /* NB: can happen if error */ splx(s); @@ -986,7 +986,7 @@ found: * done. If so, then just pass it along. This tag gets * set during AH, ESP, etc. input handling, before the * packet is returned to the ip input queue for delivery. - */ + */ mtag = m_tag_find(m, PACKET_TAG_IPSEC_IN_DONE, NULL); s = splsoftnet(); if (mtag != NULL) { @@ -994,7 +994,7 @@ found: sp = ipsec_getpolicy(tdbi, IPSEC_DIR_INBOUND); } else { sp = ipsec_getpolicybyaddr(m, IPSEC_DIR_INBOUND, - IP_FORWARDING, &error); + IP_FORWARDING, &error); } if (sp != NULL) { /* @@ -1044,7 +1044,10 @@ badcsum: * is given as fp; otherwise have to make a chain. */ struct mbuf * -ip_reass(struct ipqent *ipqe, struct ipq *fp, struct ipqhead *ipqhead) +ip_reass(ipqe, fp, ipqhead) + struct ipqent *ipqe; + struct ipq *fp; + struct ipqhead *ipqhead; { struct mbuf *m = ipqe->ipqe_m; struct ipqent *nq, *p, *q; @@ -1075,7 +1078,7 @@ ip_reass(struct ipqent *ipqe, struct ipq * We are about to add a fragment; increment frag count. */ ip_nfrags++; - + /* * If first fragment to arrive, create a reassembly queue. */ @@ -1244,7 +1247,8 @@ dropfrag: * associated datagrams. */ void -ip_freef(struct ipq *fp) +ip_freef(fp) + struct ipq *fp; { struct ipqent *q, *p; u_int nfrags = 0; @@ -1285,10 +1289,10 @@ ip_reass_ttl_decr(u_int ticks) u_int nfrags, median, dropfraction, keepfraction; struct ipq *fp, *nfp; int i; - + nfrags = 0; memset(fragttl_histo, 0, sizeof fragttl_histo); - + for (i = 0; i < IPREASS_NHASH; i++) { for (fp = LIST_FIRST(&ipq[i]); fp != NULL; fp = nfp) { fp->ipq_ttl = ((fp->ipq_ttl <= ticks) ? @@ -1341,7 +1345,7 @@ ip_reass_drophalf(void) * queue, discard it. */ void -ip_slowtimo(void) +ip_slowtimo() { static u_int dropscanidx = 0; u_int i; @@ -1398,7 +1402,7 @@ ip_slowtimo(void) * Drain off all datagram fragments. */ void -ip_drain(void) +ip_drain() { /* @@ -1425,7 +1429,8 @@ ip_drain(void) * 0 if the packet should be processed further. */ int -ip_dooptions(struct mbuf *m) +ip_dooptions(m) + struct mbuf *m; { struct ip *ip = mtod(m, struct ip *); u_char *cp, *cp0; @@ -1654,7 +1659,8 @@ bad: * return internet address info of interface to be used to get there. */ struct in_ifaddr * -ip_rtaddr(struct in_addr dst) +ip_rtaddr(dst) + struct in_addr dst; { struct sockaddr_in *sin; @@ -1681,7 +1687,9 @@ ip_rtaddr(struct in_addr dst) * to be picked up later by ip_srcroute if the receiver is interested. */ void -save_rte(u_char *option, struct in_addr dst) +save_rte(option, dst) + u_char *option; + struct in_addr dst; { unsigned olen; @@ -1703,7 +1711,7 @@ save_rte(u_char *option, struct in_addr * The first hop is placed before the options, will be removed later. */ struct mbuf * -ip_srcroute(void) +ip_srcroute() { struct in_addr *p, *q; struct mbuf *m; @@ -1775,7 +1783,9 @@ ip_srcroute(void) * XXX should be deleted; last arg currently ignored. */ void -ip_stripoptions(struct mbuf *m, struct mbuf *mopt) +ip_stripoptions(m, mopt) + struct mbuf *m; + struct mbuf *mopt; { int i; struct ip *ip = mtod(m, struct ip *); @@ -1817,7 +1827,9 @@ const int inetctlerrmap[PRC_NCMDS] = { * via a source route. */ void -ip_forward(struct mbuf *m, int srcrt) +ip_forward(m, srcrt) + struct mbuf *m; + int srcrt; { struct ip *ip = mtod(m, struct ip *); struct sockaddr_in *sin; @@ -2045,8 +2057,11 @@ ip_forward(struct mbuf *m, int srcrt) } void -ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip, - struct mbuf *m) +ip_savecontrol(inp, mp, ip, m) + struct inpcb *inp; + struct mbuf **mp; + struct ip *ip; + struct mbuf *m; { if (inp->inp_socket->so_options & SO_TIMESTAMP) { @@ -2139,7 +2154,7 @@ sysctl_net_inet_ip_maxflows(SYSCTLFN_ARG s = sysctl_lookup(SYSCTLFN_CALL(rnode)); if (s) return (s); - + s = splsoftnet(); ipflow_reap(0); splx(s); @@ -2170,7 +2185,7 @@ SYSCTL_SETUP(sysctl_net_inet_ip_setup, " SYSCTL_DESCR("IPv4 related settings"), NULL, 0, NULL, 0, CTL_NET, PF_INET, IPPROTO_IP, CTL_EOL); - + sysctl_createv(clog, 0, NULL, NULL, CTLFLAG_PERMANENT|CTLFLAG_READWRITE, CTLTYPE_INT, "forwarding",