Deleted Added
sdiff udiff text old ( 111119 ) new ( 111888 )
full compact
1/* $KAME: if_faith.c,v 1.23 2001/12/17 13:55:29 sumikawa Exp $ */
2
3/*
4 * Copyright (c) 1982, 1986, 1993
5 * The Regents of the University of California. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 18 unchanged lines hidden (view full) ---

27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * $FreeBSD: head/sys/net/if_faith.c 111888 2003-03-04 23:19:55Z jlemon $
36 */
37/*
38 * derived from
39 * @(#)if_loop.c 8.1 (Berkeley) 6/10/93
40 * Id: if_loop.c,v 1.22 1996/06/19 16:24:10 wollman Exp
41 */
42
43/*

--- 153 unchanged lines hidden (view full) ---

197int
198faithoutput(ifp, m, dst, rt)
199 struct ifnet *ifp;
200 struct mbuf *m;
201 struct sockaddr *dst;
202 struct rtentry *rt;
203{
204 int isr;
205
206 if ((m->m_flags & M_PKTHDR) == 0)
207 panic("faithoutput no HDR");
208
209 /* BPF write needs to be handled specially */
210 if (dst->sa_family == AF_UNSPEC) {
211 dst->sa_family = *(mtod(m, int *));
212 m->m_len -= sizeof(int);

--- 24 unchanged lines hidden (view full) ---

237 return (rt->rt_flags & RTF_BLACKHOLE ? 0 :
238 rt->rt_flags & RTF_HOST ? EHOSTUNREACH : ENETUNREACH);
239 }
240 ifp->if_opackets++;
241 ifp->if_obytes += m->m_pkthdr.len;
242 switch (dst->sa_family) {
243#ifdef INET
244 case AF_INET:
245 isr = NETISR_IP;
246 break;
247#endif
248#ifdef INET6
249 case AF_INET6:
250 isr = NETISR_IPV6;
251 break;
252#endif
253 default:
254 m_freem(m);
255 return EAFNOSUPPORT;
256 }
257
258 /* XXX do we need more sanity checks? */
259
260 m->m_pkthdr.rcvif = ifp;
261 ifp->if_ipackets++;
262 ifp->if_ibytes += m->m_pkthdr.len;
263 netisr_dispatch(isr, m);
264 return (0);
265}
266
267/* ARGSUSED */
268static void
269faithrtrequest(cmd, rt, info)
270 int cmd;
271 struct rtentry *rt;

--- 107 unchanged lines hidden ---