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_fddisubr.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_fddisubr.c')
-rw-r--r-- | sys/net/if_fddisubr.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index 438a6e8..28f6e3a 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -98,7 +98,7 @@ static const u_char fddibroadcastaddr[FDDI_ADDR_LEN] = static int fddi_resolvemulti(struct ifnet *, struct sockaddr **, struct sockaddr *); static int fddi_output(struct ifnet *, struct mbuf *, struct sockaddr *, - struct rtentry *); + struct route *); static void fddi_input(struct ifnet *ifp, struct mbuf *m); #define senderr(e) do { error = (e); goto bad; } while (0) @@ -111,18 +111,21 @@ static void fddi_input(struct ifnet *ifp, struct mbuf *m); * Assumes that ifp is actually pointer to arpcom structure. */ static int -fddi_output(ifp, m, dst, rt0) +fddi_output(ifp, m, dst, ro) struct ifnet *ifp; struct mbuf *m; struct sockaddr *dst; - struct rtentry *rt0; + struct route *ro; { u_int16_t type; int loop_copy = 0, error = 0, hdrcmplt = 0; u_char esrc[FDDI_ADDR_LEN], edst[FDDI_ADDR_LEN]; struct fddi_header *fh; struct llentry *lle; + struct rtentry *rt0 = NULL; + if (ro != NULL) + rt0 = ro->ro_rt; #ifdef MAC error = mac_ifnet_check_transmit(ifp, m); if (error) |