[BACK]Return to ip_input.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netinet

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/netinet/ip_input.c between version 1.169.2.3 and 1.169.2.5

version 1.169.2.3, 2004/12/18 09:33:05 version 1.169.2.5, 2005/02/04 11:47:48
Line 200  int ipprintfs = 0;
Line 200  int ipprintfs = 0;
 #endif  #endif
   
 int     ip_do_randomid = 0;  int     ip_do_randomid = 0;
 int     ip_do_loopback_cksum = 1;  int     ip_do_loopback_cksum = 0;
   
 /*  /*
  * XXX - Setting ip_checkinterface mostly implements the receive side of   * XXX - Setting ip_checkinterface mostly implements the receive side of
Line 241  struct pfil_head inet_pfil_hook;
Line 241  struct pfil_head inet_pfil_hook;
  * recalculate IP parameters derived from nmbclusters.   * recalculate IP parameters derived from nmbclusters.
  */   */
 static int      ip_nmbclusters;                 /* copy of nmbclusters */  static int      ip_nmbclusters;                 /* copy of nmbclusters */
 static void     ip_nmbclusters_changed __P((void));     /* recalc limits */  static void     ip_nmbclusters_changed(void);   /* recalc limits */
   
 #define CHECK_NMBCLUSTER_PARAMS()                               \  #define CHECK_NMBCLUSTER_PARAMS()                               \
 do {                                                            \  do {                                                            \
Line 275  int ip_maxfrags;          /* limit on fr
Line 275  int ip_maxfrags;          /* limit on fr
  * repeatedly deleting single packets under heavy fragmentation load   * repeatedly deleting single packets under heavy fragmentation load
  * (e.g., from lossy NFS peers).   * (e.g., from lossy NFS peers).
  */   */
 static u_int    ip_reass_ttl_decr __P((u_int ticks));  static u_int    ip_reass_ttl_decr(u_int ticks);
 static void     ip_reass_drophalf __P((void));  static void     ip_reass_drophalf(void);
   
   
 static __inline int ipq_lock_try __P((void));  static __inline int ipq_lock_try(void);
 static __inline void ipq_unlock __P((void));  static __inline void ipq_unlock(void);
   
 static __inline int  static __inline int
 ipq_lock_try()  ipq_lock_try(void)
 {  {
         int s;          int s;
   
Line 302  ipq_lock_try()
Line 302  ipq_lock_try()
 }  }
   
 static __inline void  static __inline void
 ipq_unlock()  ipq_unlock(void)
 {  {
         int s;          int s;
   
Line 373  static struct ip_srcrt {
Line 373  static struct ip_srcrt {
         struct  in_addr route[MAX_IPOPTLEN/sizeof(struct in_addr)];          struct  in_addr route[MAX_IPOPTLEN/sizeof(struct in_addr)];
 } ip_srcrt;  } ip_srcrt;
   
 static void save_rte __P((u_char *, struct in_addr));  static void save_rte(u_char *, struct in_addr);
   
 #ifdef MBUFTRACE  #ifdef MBUFTRACE
 struct mowner ip_rx_mowner = { "internet", "rx" };  struct mowner ip_rx_mowner = { "internet", "rx" };
Line 395  ip_nmbclusters_changed(void)
Line 395  ip_nmbclusters_changed(void)
  * All protocols not implemented in kernel go to raw IP protocol handler.   * All protocols not implemented in kernel go to raw IP protocol handler.
  */   */
 void  void
 ip_init()  ip_init(void)
 {  {
         const struct protosw *pr;          const struct protosw *pr;
         int i;          int i;
Line 452  struct route ipforward_rt;
Line 452  struct route ipforward_rt;
  * IP software interrupt routine   * IP software interrupt routine
  */   */
 void  void
 ipintr()  ipintr(void)
 {  {
         int s;          int s;
         struct mbuf *m;          struct mbuf *m;
Line 733  ip_input(struct mbuf *m)
Line 733  ip_input(struct mbuf *m)
         if (ia != NULL)          if (ia != NULL)
                 goto ours;                  goto ours;
         if (m->m_pkthdr.rcvif->if_flags & IFF_BROADCAST) {          if (m->m_pkthdr.rcvif->if_flags & IFF_BROADCAST) {
                 TAILQ_FOREACH(ifa, &m->m_pkthdr.rcvif->if_addrlist, ifa_list) {                  IFADDR_FOREACH(ifa, m->m_pkthdr.rcvif) {
                         if (ifa->ifa_addr->sa_family != AF_INET)                          if (ifa->ifa_addr->sa_family != AF_INET)
                                 continue;                                  continue;
                         ia = ifatoia(ifa);                          ia = ifatoia(ifa);
Line 1044  badcsum:
Line 1044  badcsum:
  * is given as fp; otherwise have to make a chain.   * is given as fp; otherwise have to make a chain.
  */   */
 struct mbuf *  struct mbuf *
 ip_reass(ipqe, fp, ipqhead)  ip_reass(struct ipqent *ipqe, struct ipq *fp, struct ipqhead *ipqhead)
         struct ipqent *ipqe;  
         struct ipq *fp;  
         struct ipqhead *ipqhead;  
 {  {
         struct mbuf *m = ipqe->ipqe_m;          struct mbuf *m = ipqe->ipqe_m;
         struct ipqent *nq, *p, *q;          struct ipqent *nq, *p, *q;
Line 1247  dropfrag:
Line 1244  dropfrag:
  * associated datagrams.   * associated datagrams.
  */   */
 void  void
 ip_freef(fp)  ip_freef(struct ipq *fp)
         struct ipq *fp;  
 {  {
         struct ipqent *q, *p;          struct ipqent *q, *p;
         u_int nfrags = 0;          u_int nfrags = 0;
Line 1345  ip_reass_drophalf(void)
Line 1341  ip_reass_drophalf(void)
  * queue, discard it.   * queue, discard it.
  */   */
 void  void
 ip_slowtimo()  ip_slowtimo(void)
 {  {
         static u_int dropscanidx = 0;          static u_int dropscanidx = 0;
         u_int i;          u_int i;
Line 1402  ip_slowtimo()
Line 1398  ip_slowtimo()
  * Drain off all datagram fragments.   * Drain off all datagram fragments.
  */   */
 void  void
 ip_drain()  ip_drain(void)
 {  {
   
         /*          /*
Line 1429  ip_drain()
Line 1425  ip_drain()
  * 0 if the packet should be processed further.   * 0 if the packet should be processed further.
  */   */
 int  int
 ip_dooptions(m)  ip_dooptions(struct mbuf *m)
         struct mbuf *m;  
 {  {
         struct ip *ip = mtod(m, struct ip *);          struct ip *ip = mtod(m, struct ip *);
         u_char *cp, *cp0;          u_char *cp, *cp0;
Line 1659  bad:
Line 1654  bad:
  * return internet address info of interface to be used to get there.   * return internet address info of interface to be used to get there.
  */   */
 struct in_ifaddr *  struct in_ifaddr *
 ip_rtaddr(dst)  ip_rtaddr(struct in_addr dst)
          struct in_addr dst;  
 {  {
         struct sockaddr_in *sin;          struct sockaddr_in *sin;
   
Line 1687  ip_rtaddr(dst)
Line 1681  ip_rtaddr(dst)
  * to be picked up later by ip_srcroute if the receiver is interested.   * to be picked up later by ip_srcroute if the receiver is interested.
  */   */
 void  void
 save_rte(option, dst)  save_rte(u_char *option, struct in_addr dst)
         u_char *option;  
         struct in_addr dst;  
 {  {
         unsigned olen;          unsigned olen;
   
Line 1711  save_rte(option, dst)
Line 1703  save_rte(option, dst)
  * The first hop is placed before the options, will be removed later.   * The first hop is placed before the options, will be removed later.
  */   */
 struct mbuf *  struct mbuf *
 ip_srcroute()  ip_srcroute(void)
 {  {
         struct in_addr *p, *q;          struct in_addr *p, *q;
         struct mbuf *m;          struct mbuf *m;
Line 1783  ip_srcroute()
Line 1775  ip_srcroute()
  * XXX should be deleted; last arg currently ignored.   * XXX should be deleted; last arg currently ignored.
  */   */
 void  void
 ip_stripoptions(m, mopt)  ip_stripoptions(struct mbuf *m, struct mbuf *mopt)
         struct mbuf *m;  
         struct mbuf *mopt;  
 {  {
         int i;          int i;
         struct ip *ip = mtod(m, struct ip *);          struct ip *ip = mtod(m, struct ip *);
Line 1827  const int inetctlerrmap[PRC_NCMDS] = {
Line 1817  const int inetctlerrmap[PRC_NCMDS] = {
  * via a source route.   * via a source route.
  */   */
 void  void
 ip_forward(m, srcrt)  ip_forward(struct mbuf *m, int srcrt)
         struct mbuf *m;  
         int srcrt;  
 {  {
         struct ip *ip = mtod(m, struct ip *);          struct ip *ip = mtod(m, struct ip *);
         struct sockaddr_in *sin;          struct sockaddr_in *sin;
Line 2057  ip_forward(m, srcrt)
Line 2045  ip_forward(m, srcrt)
 }  }
   
 void  void
 ip_savecontrol(inp, mp, ip, m)  ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip,
         struct inpcb *inp;      struct mbuf *m)
         struct mbuf **mp;  
         struct ip *ip;  
         struct mbuf *m;  
 {  {
   
         if (inp->inp_socket->so_options & SO_TIMESTAMP) {          if (inp->inp_socket->so_options & SO_TIMESTAMP) {

Legend:
Removed from v.1.169.2.3  
changed lines
  Added in v.1.169.2.5

CVSweb <webmaster@jp.NetBSD.org>