[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.262 and 1.263

version 1.262, 2008/02/06 03:20:51 version 1.263, 2008/03/27 00:18:56
Line 1954  ip_forward(struct mbuf *m, int srcrt)
Line 1954  ip_forward(struct mbuf *m, int srcrt)
         case EMSGSIZE:          case EMSGSIZE:
                 type = ICMP_UNREACH;                  type = ICMP_UNREACH;
                 code = ICMP_UNREACH_NEEDFRAG;                  code = ICMP_UNREACH_NEEDFRAG;
 #if !defined(IPSEC) && !defined(FAST_IPSEC)  
                 if ((rt = rtcache_validate(&ipforward_rt)) != NULL)  
                         destmtu = rt->rt_ifp->if_mtu;  
 #else  
                 /*  
                  * If the packet is routed over IPsec tunnel, tell the  
                  * originator the tunnel MTU.  
                  *      tunnel MTU = if MTU - sizeof(IP) - ESP/AH hdrsiz  
                  * XXX quickhack!!!  
                  */  
                 if ((rt = rtcache_validate(&ipforward_rt)) != NULL) {                  if ((rt = rtcache_validate(&ipforward_rt)) != NULL) {
   
   #if defined(IPSEC) || defined(FAST_IPSEC)
                           /*
                            * If the packet is routed over IPsec tunnel, tell the
                            * originator the tunnel MTU.
                            *      tunnel MTU = if MTU - sizeof(IP) - ESP/AH hdrsiz
                            * XXX quickhack!!!
                            */
   
                         struct secpolicy *sp;                          struct secpolicy *sp;
                         int ipsecerror;                          int ipsecerror;
                         size_t ipsechdr;                          size_t ipsechdr;
Line 1973  ip_forward(struct mbuf *m, int srcrt)
Line 1973  ip_forward(struct mbuf *m, int srcrt)
                         sp = ipsec4_getpolicybyaddr(mcopy,                          sp = ipsec4_getpolicybyaddr(mcopy,
                             IPSEC_DIR_OUTBOUND, IP_FORWARDING,                              IPSEC_DIR_OUTBOUND, IP_FORWARDING,
                             &ipsecerror);                              &ipsecerror);
   #endif
   
                         if (sp == NULL)                          destmtu = rt->rt_ifp->if_mtu;
                                 destmtu = rt->rt_ifp->if_mtu;  #if defined(IPSEC) || defined(FAST_IPSEC)
                         else {                          if (sp != NULL) {
                                 /* count IPsec header size */                                  /* count IPsec header size */
                                 ipsechdr = ipsec4_hdrsiz(mcopy,                                  ipsechdr = ipsec4_hdrsiz(mcopy,
                                     IPSEC_DIR_OUTBOUND, NULL);                                      IPSEC_DIR_OUTBOUND, NULL);
Line 2005  ip_forward(struct mbuf *m, int srcrt)
Line 2006  ip_forward(struct mbuf *m, int srcrt)
                                 KEY_FREESP(&sp);                                  KEY_FREESP(&sp);
 #endif  #endif
                         }                          }
   #endif /*defined(IPSEC) || defined(FAST_IPSEC)*/
                 }                  }
 #endif /*IPSEC*/  
                 ipstat.ips_cantfrag++;                  ipstat.ips_cantfrag++;
                 break;                  break;
   

Legend:
Removed from v.1.262  
changed lines
  Added in v.1.263

CVSweb <webmaster@jp.NetBSD.org>