ip6_forward.c (162045) | ip6_forward.c (165118) |
---|---|
1/* $FreeBSD: head/sys/netinet6/ip6_forward.c 162045 2006-09-05 19:20:42Z jhay $ */ | 1/* $FreeBSD: head/sys/netinet6/ip6_forward.c 165118 2006-12-12 12:17:58Z bz $ */ |
2/* $KAME: ip6_forward.c,v 1.69 2001/05/17 03:48:30 itojun Exp $ */ 3 4/*- 5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 99 unchanged lines hidden (view full) --- 109 struct mbuf *mcopy = NULL; 110 struct ifnet *origifp; /* maybe unnecessary */ 111 u_int32_t inzone, outzone; 112 struct in6_addr src_in6, dst_in6; 113#ifdef IPSEC 114 struct secpolicy *sp = NULL; 115 int ipsecrt = 0; 116#endif | 2/* $KAME: ip6_forward.c,v 1.69 2001/05/17 03:48:30 itojun Exp $ */ 3 4/*- 5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 99 unchanged lines hidden (view full) --- 109 struct mbuf *mcopy = NULL; 110 struct ifnet *origifp; /* maybe unnecessary */ 111 u_int32_t inzone, outzone; 112 struct in6_addr src_in6, dst_in6; 113#ifdef IPSEC 114 struct secpolicy *sp = NULL; 115 int ipsecrt = 0; 116#endif |
117 char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN]; |
|
117 118 GIANT_REQUIRED; /* XXX bz: ip6_forward_rt */ 119 120#ifdef IPSEC 121 /* 122 * Check AH/ESP integrity. 123 */ 124 /* --- 20 unchanged lines hidden (view full) --- 145 IN6_IS_ADDR_UNSPECIFIED(&ip6->ip6_src)) { 146 ip6stat.ip6s_cantforward++; 147 /* XXX in6_ifstat_inc(rt->rt_ifp, ifs6_in_discard) */ 148 if (ip6_log_time + ip6_log_interval < time_second) { 149 ip6_log_time = time_second; 150 log(LOG_DEBUG, 151 "cannot forward " 152 "from %s to %s nxt %d received on %s\n", | 118 119 GIANT_REQUIRED; /* XXX bz: ip6_forward_rt */ 120 121#ifdef IPSEC 122 /* 123 * Check AH/ESP integrity. 124 */ 125 /* --- 20 unchanged lines hidden (view full) --- 146 IN6_IS_ADDR_UNSPECIFIED(&ip6->ip6_src)) { 147 ip6stat.ip6s_cantforward++; 148 /* XXX in6_ifstat_inc(rt->rt_ifp, ifs6_in_discard) */ 149 if (ip6_log_time + ip6_log_interval < time_second) { 150 ip6_log_time = time_second; 151 log(LOG_DEBUG, 152 "cannot forward " 153 "from %s to %s nxt %d received on %s\n", |
153 ip6_sprintf(&ip6->ip6_src), 154 ip6_sprintf(&ip6->ip6_dst), | 154 ip6_sprintf(ip6bufs, &ip6->ip6_src), 155 ip6_sprintf(ip6bufd, &ip6->ip6_dst), |
155 ip6->ip6_nxt, 156 if_name(m->m_pkthdr.rcvif)); 157 } 158 m_freem(m); 159 return; 160 } 161 162#ifdef IPSTEALTH --- 275 unchanged lines hidden (view full) --- 438 ip6stat.ip6s_badscope++; 439 in6_ifstat_inc(rt->rt_ifp, ifs6_in_discard); 440 441 if (ip6_log_time + ip6_log_interval < time_second) { 442 ip6_log_time = time_second; 443 log(LOG_DEBUG, 444 "cannot forward " 445 "src %s, dst %s, nxt %d, rcvif %s, outif %s\n", | 156 ip6->ip6_nxt, 157 if_name(m->m_pkthdr.rcvif)); 158 } 159 m_freem(m); 160 return; 161 } 162 163#ifdef IPSTEALTH --- 275 unchanged lines hidden (view full) --- 439 ip6stat.ip6s_badscope++; 440 in6_ifstat_inc(rt->rt_ifp, ifs6_in_discard); 441 442 if (ip6_log_time + ip6_log_interval < time_second) { 443 ip6_log_time = time_second; 444 log(LOG_DEBUG, 445 "cannot forward " 446 "src %s, dst %s, nxt %d, rcvif %s, outif %s\n", |
446 ip6_sprintf(&ip6->ip6_src), 447 ip6_sprintf(&ip6->ip6_dst), | 447 ip6_sprintf(ip6bufs, &ip6->ip6_src), 448 ip6_sprintf(ip6bufd, &ip6->ip6_dst), |
448 ip6->ip6_nxt, 449 if_name(m->m_pkthdr.rcvif), if_name(rt->rt_ifp)); 450 } 451 if (mcopy) 452 icmp6_error(mcopy, ICMP6_DST_UNREACH, 453 ICMP6_DST_UNREACH_BEYONDSCOPE, 0); 454 m_freem(m); 455 return; --- 114 unchanged lines hidden (view full) --- 570#if 1 571 if (0) 572#else 573 if ((rt->rt_flags & (RTF_BLACKHOLE|RTF_REJECT)) == 0) 574#endif 575 { 576 printf("ip6_forward: outgoing interface is loopback. " 577 "src %s, dst %s, nxt %d, rcvif %s, outif %s\n", | 449 ip6->ip6_nxt, 450 if_name(m->m_pkthdr.rcvif), if_name(rt->rt_ifp)); 451 } 452 if (mcopy) 453 icmp6_error(mcopy, ICMP6_DST_UNREACH, 454 ICMP6_DST_UNREACH_BEYONDSCOPE, 0); 455 m_freem(m); 456 return; --- 114 unchanged lines hidden (view full) --- 571#if 1 572 if (0) 573#else 574 if ((rt->rt_flags & (RTF_BLACKHOLE|RTF_REJECT)) == 0) 575#endif 576 { 577 printf("ip6_forward: outgoing interface is loopback. " 578 "src %s, dst %s, nxt %d, rcvif %s, outif %s\n", |
578 ip6_sprintf(&ip6->ip6_src), 579 ip6_sprintf(&ip6->ip6_dst), | 579 ip6_sprintf(ip6bufs, &ip6->ip6_src), 580 ip6_sprintf(ip6bufd, &ip6->ip6_dst), |
580 ip6->ip6_nxt, if_name(m->m_pkthdr.rcvif), 581 if_name(rt->rt_ifp)); 582 } 583 584 /* we can just use rcvif in forwarding. */ 585 origifp = m->m_pkthdr.rcvif; 586 } 587 else --- 71 unchanged lines hidden --- | 581 ip6->ip6_nxt, if_name(m->m_pkthdr.rcvif), 582 if_name(rt->rt_ifp)); 583 } 584 585 /* we can just use rcvif in forwarding. */ 586 origifp = m->m_pkthdr.rcvif; 587 } 588 else --- 71 unchanged lines hidden --- |