Deleted Added
full compact
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 ---