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_loop.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_loop.c')
-rw-r--r-- | sys/net/if_loop.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index c31acef..ff57464 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -102,7 +102,7 @@ int loioctl(struct ifnet *, u_long, caddr_t); static void lortrequest(int, struct rtentry *, struct rt_addrinfo *); int looutput(struct ifnet *ifp, struct mbuf *m, - struct sockaddr *dst, struct rtentry *rt); + struct sockaddr *dst, struct route *ro); static int lo_clone_create(struct if_clone *, int, caddr_t); static void lo_clone_destroy(struct ifnet *); static int vnet_loif_iattach(const void *); @@ -205,15 +205,18 @@ DECLARE_MODULE(loop, loop_mod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY); int looutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, - struct rtentry *rt) + struct route *ro) { u_int32_t af; + struct rtentry *rt = NULL; #ifdef MAC int error; #endif M_ASSERTPKTHDR(m); /* check if we have the packet header */ + if (ro != NULL) + rt = ro->ro_rt; #ifdef MAC error = mac_ifnet_check_transmit(ifp, m); if (error) { |