diff options
author | kmacy <kmacy@FreeBSD.org> | 2009-04-16 20:30:28 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2009-04-16 20:30:28 +0000 |
commit | 24b38efdce5f73d92ac948039ef4966d9502b484 (patch) | |
tree | f09ffe8dbc619e723cdaebdc910a5ed28f73768b /sys/net/if_faith.c | |
parent | ae4f793822da0acb8cd844e26144e060eebff125 (diff) | |
download | FreeBSD-src-24b38efdce5f73d92ac948039ef4966d9502b484.zip FreeBSD-src-24b38efdce5f73d92ac948039ef4966d9502b484.tar.gz |
Change if_output to take a struct route as its fourth argument in order
to allow passing a cached struct llentry * down to L2
Reviewed by: rwatson
Diffstat (limited to 'sys/net/if_faith.c')
-rw-r--r-- | sys/net/if_faith.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/net/if_faith.c b/sys/net/if_faith.c index c839748..3b60d2c 100644 --- a/sys/net/if_faith.c +++ b/sys/net/if_faith.c @@ -88,7 +88,7 @@ struct faith_softc { static int faithioctl(struct ifnet *, u_long, caddr_t); int faithoutput(struct ifnet *, struct mbuf *, struct sockaddr *, - struct rtentry *); + struct route *); static void faithrtrequest(int, struct rtentry *, struct rt_addrinfo *); #ifdef INET6 static int faithprefix(struct in6_addr *); @@ -188,17 +188,20 @@ faith_clone_destroy(ifp) } int -faithoutput(ifp, m, dst, rt) +faithoutput(ifp, m, dst, ro) struct ifnet *ifp; struct mbuf *m; struct sockaddr *dst; - struct rtentry *rt; + struct route *ro; { int isr; u_int32_t af; + struct rtentry *rt = NULL; M_ASSERTPKTHDR(m); + if (ro != NULL) + rt = ro->ro_rt; /* BPF writes need to be handled specially. */ if (dst->sa_family == AF_UNSPEC) { bcopy(dst->sa_data, &af, sizeof(af)); |