Date: Sun, 23 Aug 2015 18:32:15 +0000 (UTC) From: "Alexander V. Chernikov" <melifaro@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287075 - in projects/routing/sys: dev/iicbus dev/lmc dev/ppbus dev/usb/net dev/wtap net net80211 netgraph netinet netinet6 netpfil/ipfw netpfil/pf ofed/drivers/infiniband/ulp/ipoib Message-ID: <201508231832.t7NIWFXw051605@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: melifaro Date: Sun Aug 23 18:32:14 2015 New Revision: 287075 URL: https://svnweb.freebsd.org/changeset/base/287075 Log: Replace 'struct route *' if_output() argument with 'struct nhop_info *'. Leave 'struct route' as is for legacy routing api users. Remove most of rtalloc_ign*-derived functions. Modified: projects/routing/sys/dev/iicbus/if_ic.c projects/routing/sys/dev/lmc/if_lmc.c projects/routing/sys/dev/lmc/if_lmc.h projects/routing/sys/dev/ppbus/if_plip.c projects/routing/sys/dev/usb/net/if_usie.c projects/routing/sys/dev/usb/net/uhso.c projects/routing/sys/dev/wtap/if_wtapvar.h projects/routing/sys/net/ethernet.h projects/routing/sys/net/if_arc.h projects/routing/sys/net/if_arcsubr.c projects/routing/sys/net/if_atm.h projects/routing/sys/net/if_atmsubr.c projects/routing/sys/net/if_dead.c projects/routing/sys/net/if_disc.c projects/routing/sys/net/if_enc.c projects/routing/sys/net/if_ethersubr.c projects/routing/sys/net/if_fddisubr.c projects/routing/sys/net/if_fwsubr.c projects/routing/sys/net/if_gif.c projects/routing/sys/net/if_gif.h projects/routing/sys/net/if_gre.c projects/routing/sys/net/if_iso88025subr.c projects/routing/sys/net/if_lagg.c projects/routing/sys/net/if_lagg.h projects/routing/sys/net/if_loop.c projects/routing/sys/net/if_me.c projects/routing/sys/net/if_spppsubr.c projects/routing/sys/net/if_stf.c projects/routing/sys/net/if_tun.c projects/routing/sys/net/if_var.h projects/routing/sys/net/iso88025.h projects/routing/sys/net/radix_mpath.c projects/routing/sys/net/route.c projects/routing/sys/net/route.h projects/routing/sys/net/rt_nhops.c projects/routing/sys/net/rt_nhops.h projects/routing/sys/net/rtsock.c projects/routing/sys/net80211/ieee80211.c projects/routing/sys/net80211/ieee80211_output.c projects/routing/sys/net80211/ieee80211_proto.h projects/routing/sys/net80211/ieee80211_var.h projects/routing/sys/netgraph/ng_iface.c projects/routing/sys/netinet/ip_var.h projects/routing/sys/netinet6/in6_rmx.c projects/routing/sys/netinet6/in6_var.h projects/routing/sys/netinet6/nd6_nbr.c projects/routing/sys/netpfil/ipfw/ip_fw_log.c projects/routing/sys/netpfil/pf/if_pflog.c projects/routing/sys/netpfil/pf/if_pfsync.c projects/routing/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Modified: projects/routing/sys/dev/iicbus/if_ic.c ============================================================================== --- projects/routing/sys/dev/iicbus/if_ic.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/dev/iicbus/if_ic.c Sun Aug 23 18:32:14 2015 (r287075) @@ -101,7 +101,7 @@ static int icattach(device_t); static int icioctl(struct ifnet *, u_long, caddr_t); static int icoutput(struct ifnet *, struct mbuf *, const struct sockaddr *, - struct route *); + struct nhop_info *); static int icintr(device_t, int, char *); @@ -352,7 +352,7 @@ icintr(device_t dev, int event, char *pt */ static int icoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { struct ic_softc *sc = ifp->if_softc; device_t icdev = sc->ic_dev; Modified: projects/routing/sys/dev/lmc/if_lmc.c ============================================================================== --- projects/routing/sys/dev/lmc/if_lmc.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/dev/lmc/if_lmc.c Sun Aug 23 18:32:14 2015 (r287075) @@ -3636,7 +3636,7 @@ lmc_ifnet_start(struct ifnet *ifp) /* Called from a syscall (user context; no spinlocks). */ static int lmc_raw_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro) + const struct sockaddr *dst, struct nhop_info *ni) { softc_t *sc = IFP2SC(ifp); int error = 0; Modified: projects/routing/sys/dev/lmc/if_lmc.h ============================================================================== --- projects/routing/sys/dev/lmc/if_lmc.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/dev/lmc/if_lmc.h Sun Aug 23 18:32:14 2015 (r287075) @@ -1285,7 +1285,7 @@ static int lmc_raw_ioctl(struct ifnet *, static int lmc_ifnet_ioctl(struct ifnet *, u_long, caddr_t); static void lmc_ifnet_start(struct ifnet *); static int lmc_raw_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); static void setup_ifnet(struct ifnet *); static int lmc_ifnet_attach(softc_t *); static void lmc_ifnet_detach(softc_t *); Modified: projects/routing/sys/dev/ppbus/if_plip.c ============================================================================== --- projects/routing/sys/dev/ppbus/if_plip.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/dev/ppbus/if_plip.c Sun Aug 23 18:32:14 2015 (r287075) @@ -175,7 +175,7 @@ static u_char *ctxmith; static int lpinittables(void); static int lpioctl(struct ifnet *, u_long, caddr_t); static int lpoutput(struct ifnet *, struct mbuf *, const struct sockaddr *, - struct route *); + struct nhop_info *); static void lpstop(struct lp_data *); static void lp_intr(void *); static int lp_module_handler(module_t, int, void *); @@ -683,7 +683,7 @@ lpoutbyte(u_char byte, int spin, device_ static int lpoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { struct lp_data *sc = ifp->if_softc; device_t dev = sc->sc_dev; Modified: projects/routing/sys/dev/usb/net/if_usie.c ============================================================================== --- projects/routing/sys/dev/usb/net/if_usie.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/dev/usb/net/if_usie.c Sun Aug 23 18:32:14 2015 (r287075) @@ -126,7 +126,7 @@ static void usie_if_status_cb(void *, in static void usie_if_start(struct ifnet *); static int usie_if_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); static void usie_if_init(void *); static void usie_if_stop(struct usie_softc *); static int usie_if_ioctl(struct ifnet *, u_long, caddr_t); @@ -1187,7 +1187,7 @@ usie_if_start(struct ifnet *ifp) static int usie_if_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { int err; Modified: projects/routing/sys/dev/usb/net/uhso.c ============================================================================== --- projects/routing/sys/dev/usb/net/uhso.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/dev/usb/net/uhso.c Sun Aug 23 18:32:14 2015 (r287075) @@ -471,7 +471,7 @@ static void uhso_if_start(struct ifnet * static void uhso_if_stop(struct uhso_softc *); static int uhso_if_ioctl(struct ifnet *, u_long, caddr_t); static int uhso_if_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); static void uhso_if_rxflush(void *); static device_probe_t uhso_probe; @@ -1883,7 +1883,7 @@ uhso_if_init(void *priv) static int uhso_if_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { int error; Modified: projects/routing/sys/dev/wtap/if_wtapvar.h ============================================================================== --- projects/routing/sys/dev/wtap/if_wtapvar.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/dev/wtap/if_wtapvar.h Sun Aug 23 18:32:14 2015 (r287075) @@ -139,7 +139,8 @@ struct wtap_softc { (struct ieee80211vap *, const uint8_t [IEEE80211_ADDR_LEN]); void (*sc_node_free)(struct ieee80211_node *); int (*if_output) /* output routine (enqueue) */ - (struct ifnet *, struct mbuf *, struct sockaddr *, struct route *); + (struct ifnet *, struct mbuf *, struct sockaddr *, + struct nhop_info *); void (*if_input) (struct ifnet *, struct mbuf *);/* from h/w driver */ int (*if_transmit)(struct ifnet *, struct mbuf *);/* output routine */ struct mtx sc_mtx; /* master lock (recursive) */ Modified: projects/routing/sys/net/ethernet.h ============================================================================== --- projects/routing/sys/net/ethernet.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/ethernet.h Sun Aug 23 18:32:14 2015 (r287075) @@ -384,7 +384,7 @@ struct ether_vlan_header { struct ifnet; struct mbuf; -struct route; +struct nhop_info; struct sockaddr; struct bpf_if; @@ -395,7 +395,7 @@ extern void ether_ifattach(struct ifnet extern void ether_ifdetach(struct ifnet *); extern int ether_ioctl(struct ifnet *, u_long, caddr_t); extern int ether_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); extern int ether_output_frame(struct ifnet *, struct mbuf *); extern char *ether_sprintf(const u_int8_t *); void ether_vlan_mtap(struct bpf_if *, struct mbuf *, Modified: projects/routing/sys/net/if_arc.h ============================================================================== --- projects/routing/sys/net/if_arc.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_arc.h Sun Aug 23 18:32:14 2015 (r287075) @@ -133,7 +133,7 @@ void arc_storelladdr(struct ifnet *, u_i int arc_isphds(u_int8_t); void arc_input(struct ifnet *, struct mbuf *); int arc_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); int arc_ioctl(struct ifnet *, u_long, caddr_t); void arc_frag_init(struct ifnet *); Modified: projects/routing/sys/net/if_arcsubr.c ============================================================================== --- projects/routing/sys/net/if_arcsubr.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_arcsubr.c Sun Aug 23 18:32:14 2015 (r287075) @@ -97,7 +97,7 @@ u_int8_t arcbroadcastaddr = 0; */ int arc_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { struct arc_header *ah; int error; Modified: projects/routing/sys/net/if_atm.h ============================================================================== --- projects/routing/sys/net/if_atm.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_atm.h Sun Aug 23 18:32:14 2015 (r287075) @@ -293,7 +293,7 @@ void atm_ifdetach(struct ifnet *); void atm_input(struct ifnet *, struct atm_pseudohdr *, struct mbuf *, void *); int atm_output(struct ifnet *, struct mbuf *, const struct sockaddr *, - struct route *); + struct nhop_info *); struct atmio_vcctable *atm_getvccs(struct atmio_vcc **, u_int, u_int, struct mtx *, int); Modified: projects/routing/sys/net/if_atmsubr.c ============================================================================== --- projects/routing/sys/net/if_atmsubr.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_atmsubr.c Sun Aug 23 18:32:14 2015 (r287075) @@ -123,7 +123,7 @@ static MALLOC_DEFINE(M_IFATM, "ifatm", " */ int atm_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { u_int16_t etype = 0; /* if using LLC/SNAP */ int error = 0, sz; Modified: projects/routing/sys/net/if_dead.c ============================================================================== --- projects/routing/sys/net/if_dead.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_dead.c Sun Aug 23 18:32:14 2015 (r287075) @@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$"); static int ifdead_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *sa, - struct route *ro) + struct nhop_info *ni) { m_freem(m); Modified: projects/routing/sys/net/if_disc.c ============================================================================== --- projects/routing/sys/net/if_disc.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_disc.c Sun Aug 23 18:32:14 2015 (r287075) @@ -67,7 +67,7 @@ struct disc_softc { }; static int discoutput(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); static int discioctl(struct ifnet *, u_long, caddr_t); static int disc_clone_create(struct if_clone *, int, caddr_t); static void disc_clone_destroy(struct ifnet *); @@ -174,7 +174,7 @@ DECLARE_MODULE(if_disc, disc_mod, SI_SUB static int discoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { u_int32_t af; Modified: projects/routing/sys/net/if_enc.c ============================================================================== --- projects/routing/sys/net/if_enc.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_enc.c Sun Aug 23 18:32:14 2015 (r287075) @@ -89,7 +89,7 @@ struct enc_softc { static int enc_ioctl(struct ifnet *, u_long, caddr_t); static int enc_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro); + const struct sockaddr *dst, struct nhop_info *ni); static int enc_clone_create(struct if_clone *, int, caddr_t); static void enc_clone_destroy(struct ifnet *); static struct if_clone *enc_cloner; @@ -190,7 +190,7 @@ DECLARE_MODULE(if_enc, enc_mod, SI_SUB_P static int enc_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { m_freem(m); return (0); Modified: projects/routing/sys/net/if_ethersubr.c ============================================================================== --- projects/routing/sys/net/if_ethersubr.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_ethersubr.c Sun Aug 23 18:32:14 2015 (r287075) @@ -116,7 +116,7 @@ static void ether_reassign(struct ifnet #endif int ether_output_full(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro); + const struct sockaddr *dst, struct nhop_info *ni); int ether_output2(struct ifnet *ifp, struct mbuf *m, struct nhop_prepend *nh, int af); @@ -146,13 +146,12 @@ update_mbuf_csumflags(struct mbuf *src, int ether_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro) + const struct sockaddr *dst, struct nhop_info *ni) { - if (ro != NULL && (ro->ro_flags & RT_NHOP)) - return (ether_output2(ifp, m, (struct nhop_prepend *)ro->ro_lle, - (ro->ro_flags >> 8) & 0xFF)); + if (ni != NULL && (ni->ni_flags & RT_NHOP)) + return (ether_output2(ifp, m, ni->ni_nh, ni->ni_family)); - return (ether_output_full(ifp, m, dst, ro)); + return (ether_output_full(ifp, m, dst, NULL)); } /* @@ -163,7 +162,7 @@ ether_output(struct ifnet *ifp, struct m */ int ether_output_full(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro) + const struct sockaddr *dst, struct nhop_info *ni) { short type; int error = 0, hdrcmplt = 0; Modified: projects/routing/sys/net/if_fddisubr.c ============================================================================== --- projects/routing/sys/net/if_fddisubr.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_fddisubr.c Sun Aug 23 18:32:14 2015 (r287075) @@ -69,6 +69,7 @@ #ifdef INET6 #include <netinet6/nd6.h> #endif +#include <net/rt_nhops.h> #ifdef DECNET #include <netdnet/dn.h> @@ -82,7 +83,7 @@ static const u_char fddibroadcastaddr[FD static int fddi_resolvemulti(struct ifnet *, struct sockaddr **, struct sockaddr *); static int fddi_output(struct ifnet *, struct mbuf *, const struct sockaddr *, - struct route *); + struct nhop_info *); static void fddi_input(struct ifnet *ifp, struct mbuf *m); #define senderr(e) do { error = (e); goto bad; } while (0) @@ -95,7 +96,7 @@ static void fddi_input(struct ifnet *ifp */ static int fddi_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { u_int16_t type; int loop_copy = 0, error = 0, hdrcmplt = 0; @@ -122,8 +123,7 @@ fddi_output(struct ifnet *ifp, struct mb #ifdef INET case AF_INET: { is_gw = 0; - if (ro != NULL && ro->ro_rt != NULL && - (ro->ro_rt->rt_flags & RTF_GATEWAY) != 0) + if (ni != NULL && ni->ni_nh->nh_flags & NHF_GATEWAY) is_gw = 1; error = arpresolve(ifp, is_gw, m, dst, edst, NULL); if (error) Modified: projects/routing/sys/net/if_fwsubr.c ============================================================================== --- projects/routing/sys/net/if_fwsubr.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_fwsubr.c Sun Aug 23 18:32:14 2015 (r287075) @@ -62,6 +62,7 @@ #ifdef INET6 #include <netinet6/nd6.h> #endif +#include <net/rt_nhops.h> #include <security/mac/mac_framework.h> @@ -78,7 +79,7 @@ struct fw_hwaddr firewire_broadcastaddr static int firewire_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { struct fw_com *fc = IFP2FWC(ifp); int error, type; @@ -142,8 +143,7 @@ firewire_output(struct ifnet *ifp, struc */ if (unicast) { is_gw = 0; - if (ro != NULL && ro->ro_rt != NULL && - (ro->ro_rt->rt_flags & RTF_GATEWAY) != 0) + if (ni != NULL && ni->ni_nh->nh_flags & NHF_GATEWAY) is_gw = 1; error = arpresolve(ifp, is_gw, m, dst, (u_char *) destfw, NULL); if (error) Modified: projects/routing/sys/net/if_gif.c ============================================================================== --- projects/routing/sys/net/if_gif.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_gif.c Sun Aug 23 18:32:14 2015 (r287075) @@ -501,7 +501,7 @@ gif_check_nesting(struct ifnet *ifp, str int gif_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { uint32_t af; Modified: projects/routing/sys/net/if_gif.h ============================================================================== --- projects/routing/sys/net/if_gif.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_gif.h Sun Aug 23 18:32:14 2015 (r287075) @@ -109,7 +109,7 @@ struct etherip_header { /* Prototypes */ void gif_input(struct mbuf *, struct ifnet *, int, uint8_t); int gif_output(struct ifnet *, struct mbuf *, const struct sockaddr *, - struct route *); + struct nhop_info *); int gif_encapcheck(const struct mbuf *, int, int, void *); #ifdef INET int in_gif_output(struct ifnet *, struct mbuf *, int, uint8_t); Modified: projects/routing/sys/net/if_gre.c ============================================================================== --- projects/routing/sys/net/if_gre.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_gre.c Sun Aug 23 18:32:14 2015 (r287075) @@ -113,7 +113,7 @@ static void gre_qflush(struct ifnet *); static int gre_transmit(struct ifnet *, struct mbuf *); static int gre_ioctl(struct ifnet *, u_long, caddr_t); static int gre_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); static void gre_updatehdr(struct gre_softc *); static int gre_set_tunnel(struct ifnet *, struct sockaddr *, @@ -788,7 +788,7 @@ gre_check_nesting(struct ifnet *ifp, str static int gre_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { uint32_t af; int error; Modified: projects/routing/sys/net/if_iso88025subr.c ============================================================================== --- projects/routing/sys/net/if_iso88025subr.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_iso88025subr.c Sun Aug 23 18:32:14 2015 (r287075) @@ -203,7 +203,7 @@ iso88025_ioctl(struct ifnet *ifp, u_long */ int iso88025_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { u_int16_t snap_type = 0; int loop_copy = 0, error = 0, rif_len = 0; Modified: projects/routing/sys/net/if_lagg.c ============================================================================== --- projects/routing/sys/net/if_lagg.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_lagg.c Sun Aug 23 18:32:14 2015 (r287075) @@ -109,7 +109,7 @@ static void lagg_linkstate(struct lagg_s static void lagg_port_state(struct ifnet *, int); static int lagg_port_ioctl(struct ifnet *, u_long, caddr_t); static int lagg_port_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); static void lagg_port_ifdetach(void *arg __unused, struct ifnet *); #ifdef LAGG_PORT_STACKING static int lagg_port_checkstacking(struct lagg_softc *); @@ -1068,14 +1068,14 @@ lagg_get_counter(struct ifnet *ifp, ift_ */ static int lagg_port_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro) + const struct sockaddr *dst, struct nhop_info *ni) { struct lagg_port *lp = ifp->if_lagg; switch (dst->sa_family) { case pseudo_AF_HDRCMPLT: case AF_UNSPEC: - return ((*lp->lp_output)(ifp, m, dst, ro)); + return ((*lp->lp_output)(ifp, m, dst, ni)); } /* drop any other frames */ Modified: projects/routing/sys/net/if_lagg.h ============================================================================== --- projects/routing/sys/net/if_lagg.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_lagg.h Sun Aug 23 18:32:14 2015 (r287075) @@ -260,7 +260,7 @@ struct lagg_port { /* Redirected callbacks */ int (*lp_ioctl)(struct ifnet *, u_long, caddr_t); int (*lp_output)(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); struct lagg_counters port_counters; /* ifp counters copy */ SLIST_ENTRY(lagg_port) lp_entries; Modified: projects/routing/sys/net/if_loop.c ============================================================================== --- projects/routing/sys/net/if_loop.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_loop.c Sun Aug 23 18:32:14 2015 (r287075) @@ -54,7 +54,6 @@ #include <net/if_types.h> #include <net/netisr.h> #include <net/route.h> -#include <net/route_internal.h> #include <net/bpf.h> #include <net/vnet.h> @@ -71,6 +70,8 @@ #include <netinet/ip6.h> #endif +#include <net/rt_nhops.h> + #include <security/mac/mac_framework.h> #ifdef TINY_LOMTU @@ -90,7 +91,7 @@ int loioctl(struct ifnet *, u_long, caddr_t); int looutput(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro); + const struct sockaddr *dst, struct nhop_info *ni); static int lo_clone_create(struct if_clone *, int, caddr_t); static void lo_clone_destroy(struct ifnet *); @@ -200,18 +201,24 @@ DECLARE_MODULE(if_lo, loop_mod, SI_SUB_P int looutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { - u_int32_t af; - struct rtentry *rt = NULL; + uint32_t af; + uint32_t nh_flags; #ifdef MAC int error; #endif M_ASSERTPKTHDR(m); /* check if we have the packet header */ - if (ro != NULL) - rt = ro->ro_rt; + nh_flags = 0; + af = AF_UNSPEC; + if (ni != NULL && ni->ni_nh != NULL) { + nh_flags = ni->ni_nh->nh_flags; + af = ni->ni_family; + } else if (dst != NULL) + af = dst->sa_family; + #ifdef MAC error = mac_ifnet_check_transmit(ifp, m); if (error) { @@ -220,20 +227,18 @@ looutput(struct ifnet *ifp, struct mbuf } #endif - if (rt && rt->rt_flags & (RTF_REJECT|RTF_BLACKHOLE)) { + if (nh_flags & (NHF_REJECT | NHF_BLACKHOLE)) { m_freem(m); - return (rt->rt_flags & RTF_BLACKHOLE ? 0 : - rt->rt_flags & RTF_HOST ? EHOSTUNREACH : ENETUNREACH); + /* XXX: RTF_HOST */ + return (nh_flags & NHF_BLACKHOLE ? 0 : EHOSTUNREACH); } if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); if_inc_counter(ifp, IFCOUNTER_OBYTES, m->m_pkthdr.len); /* BPF writes need to be handled specially. */ - if (dst->sa_family == AF_UNSPEC || dst->sa_family == pseudo_AF_HDRCMPLT) + if (af == AF_UNSPEC && dst != NULL) bcopy(dst->sa_data, &af, sizeof(af)); - else - af = dst->sa_family; #if 1 /* XXX */ switch (af) { Modified: projects/routing/sys/net/if_me.c ============================================================================== --- projects/routing/sys/net/if_me.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_me.c Sun Aug 23 18:32:14 2015 (r287075) @@ -121,7 +121,7 @@ static void me_qflush(struct ifnet *); static int me_transmit(struct ifnet *, struct mbuf *); static int me_ioctl(struct ifnet *, u_long, caddr_t); static int me_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); static int me_input(struct mbuf **, int *, int); static int me_set_tunnel(struct ifnet *, struct sockaddr_in *, @@ -512,7 +512,7 @@ me_check_nesting(struct ifnet *ifp, stru static int me_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { uint32_t af; int error; Modified: projects/routing/sys/net/if_spppsubr.c ============================================================================== --- projects/routing/sys/net/if_spppsubr.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_spppsubr.c Sun Aug 23 18:32:14 2015 (r287075) @@ -259,7 +259,7 @@ static const u_short interactive_ports[8 int debug = ifp->if_flags & IFF_DEBUG static int sppp_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro); + const struct sockaddr *dst, struct nhop_info *ni); static void sppp_cisco_send(struct sppp *sp, int type, long par1, long par2); static void sppp_cisco_input(struct sppp *sp, struct mbuf *m); @@ -769,7 +769,7 @@ sppp_ifstart(struct ifnet *ifp) */ static int sppp_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { struct sppp *sp = IFP2SP(ifp); struct ppp_header *h; Modified: projects/routing/sys/net/if_stf.c ============================================================================== --- projects/routing/sys/net/if_stf.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_stf.c Sun Aug 23 18:32:14 2015 (r287075) @@ -175,7 +175,7 @@ static int stfmodevent(module_t, int, vo static int stf_encapcheck(const struct mbuf *, int, int, void *); static int stf_getsrcifa6(struct ifnet *, struct in6_addr *, struct in6_addr *); static int stf_output(struct ifnet *, struct mbuf *, const struct sockaddr *, - struct route *); + struct nhop_info *); static int isrfc1918addr(struct in_addr *); static int stf_checkaddr4(struct stf_softc *, struct in_addr *, struct ifnet *); @@ -397,7 +397,7 @@ stf_getsrcifa6(struct ifnet *ifp, struct static int stf_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { struct stf_softc *sc; const struct sockaddr_in6 *dst6; Modified: projects/routing/sys/net/if_tun.c ============================================================================== --- projects/routing/sys/net/if_tun.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_tun.c Sun Aug 23 18:32:14 2015 (r287075) @@ -126,7 +126,7 @@ static int tunifioctl(struct ifnet *, u_ static void tuninit(struct ifnet *); static int tunmodevent(module_t, int, void *); static int tunoutput(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *ro); + const struct sockaddr *, struct nhop_info *ni); static void tunstart(struct ifnet *); static int tun_clone_create(struct if_clone *, int, caddr_t); @@ -571,7 +571,7 @@ tunifioctl(struct ifnet *ifp, u_long cmd */ static int tunoutput(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, - struct route *ro) + struct nhop_info *ni) { struct tun_softc *tp = ifp->if_softc; u_short cached_tun_flags; Modified: projects/routing/sys/net/if_var.h ============================================================================== --- projects/routing/sys/net/if_var.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/if_var.h Sun Aug 23 18:32:14 2015 (r287075) @@ -64,7 +64,7 @@ struct socket; struct carp_if; struct carp_softc; struct ifvlantrunk; -struct route; /* if_output */ +struct nhop_info; /* if_output */ struct vnet; struct ifmedia; struct netmap_adapter; @@ -213,7 +213,7 @@ struct ifnet { /* Various procedures of the layer2 encapsulation and drivers. */ int (*if_output) /* output routine (enqueue) */ (struct ifnet *, struct mbuf *, const struct sockaddr *, - struct route *); + struct nhop_info *); void (*if_input) /* input routine (from h/w driver) */ (struct ifnet *, struct mbuf *); if_start_fn_t if_start; /* initiate output routine */ Modified: projects/routing/sys/net/iso88025.h ============================================================================== --- projects/routing/sys/net/iso88025.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/iso88025.h Sun Aug 23 18:32:14 2015 (r287075) @@ -167,7 +167,7 @@ void iso88025_ifattach (struct ifnet *, void iso88025_ifdetach (struct ifnet *, int); int iso88025_ioctl (struct ifnet *, u_long, caddr_t ); int iso88025_output (struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); void iso88025_input (struct ifnet *, struct mbuf *); #endif /* _KERNEL */ Modified: projects/routing/sys/net/radix_mpath.c ============================================================================== --- projects/routing/sys/net/radix_mpath.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/radix_mpath.c Sun Aug 23 18:32:14 2015 (r287075) @@ -198,6 +198,7 @@ rt_mpath_conflict(struct radix_node_head return (0); } +#if 0 void rtalloc_mpath_fib(struct route *ro, uint32_t hash, u_int fibnum) { @@ -257,6 +258,7 @@ rtalloc_mpath_fib(struct route *ro, uint } RT_UNLOCK(ro->ro_rt); } +#endif extern int in6_inithead(void **head, int off); extern int in_inithead(void **head, int off); Modified: projects/routing/sys/net/route.c ============================================================================== --- projects/routing/sys/net/route.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/route.c Sun Aug 23 18:32:14 2015 (r287075) @@ -371,35 +371,10 @@ sys_setfib(struct thread *td, struct set /* * Packet routing routines. */ -void -rtalloc(struct route *ro) -{ - - rtalloc_ign_fib(ro, 0UL, RT_DEFAULT_FIB); -} - -void -rtalloc_fib(struct route *ro, u_int fibnum) -{ - rtalloc_ign_fib(ro, 0UL, fibnum); -} - -void -rtalloc_ign(struct route *ro, u_long ignore) -{ - struct rtentry *rt; - - if ((rt = ro->ro_rt) != NULL) { - if (rt->rt_ifp != NULL && rt->rt_flags & RTF_UP) - return; - RTFREE(rt); - ro->ro_rt = NULL; - } - ro->ro_rt = rtalloc1_fib(&ro->ro_dst, 1, ignore, RT_DEFAULT_FIB); - if (ro->ro_rt) - RT_UNLOCK(ro->ro_rt); -} +/* + * Legacy function for SCTP support. + */ void rtalloc_ign_fib(struct route *ro, u_long ignore, u_int fibnum) { @@ -416,6 +391,7 @@ rtalloc_ign_fib(struct route *ro, u_long RT_UNLOCK(ro->ro_rt); } + /* * Look up the route that matches the address given * Or, at least try.. Create a cloned route if needed. Modified: projects/routing/sys/net/route.h ============================================================================== --- projects/routing/sys/net/route.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/route.h Sun Aug 23 18:32:14 2015 (r287075) @@ -44,10 +44,7 @@ */ /* - * A route consists of a destination address, a reference - * to a routing entry, and a reference to an llentry. - * These are often held by protocols in their control - * blocks, e.g. inpcb. + * Legacy structure. */ struct route { struct rtentry *ro_rt; @@ -57,10 +54,6 @@ struct route { struct sockaddr ro_dst; }; -#define RT_CACHING_CONTEXT 0x1 /* XXX: not used anywhere */ -#define RT_NORTREF 0x2 /* doesn't hold reference on ro_rt */ -#define RT_NHOP 0x4 - struct rt_metrics { u_long rmx_locks; /* Kernel must leave these values alone */ u_long rmx_mtu; /* MTU for this path */ @@ -109,6 +102,22 @@ VNET_DECLARE(u_int, rt_add_addr_allfibs) struct rib_head; struct rtentry; +struct nhop_prepend; + +/* + * Structure used to pass prepend information + * to if_output() routines. + */ +struct nhop_info { + struct nhop_prepend *ni_nh; /* MUST be non-NULL */ + uint32_t ni_flags; + uint8_t ni_family; + uint8_t spare[3]; +}; + +#define RT_NHOP 0x01 +#define RT_NORTREF 0x2 /* doesn't hold reference on ro_rt */ + #if !defined(_KERNEL) || defined(_WANT_RTENTRY) /* This structure is kept for compatibility reasons only */ struct rtentry { @@ -316,8 +325,6 @@ int rtsock_routemsg(int, struct ifnet *i /* * Note the following locking behavior: * - * rtalloc_ign() and rtalloc() return ro->ro_rt unlocked - * * rtalloc1() returns a locked rtentry * * rtfree() and RTFREE_LOCKED() require a locked rtentry @@ -338,8 +345,7 @@ void rt_flushifroutes(struct ifnet *ifp) /* XXX MRT COMPAT VERSIONS THAT SET UNIVERSE to 0 */ /* Thes are used by old code not yet converted to use multiple FIBS */ int rt_getifa(struct rt_addrinfo *); -void rtalloc_ign(struct route *ro, u_long ignflags); -void rtalloc(struct route *ro); /* XXX deprecated, use rtalloc_ign(ro, 0) */ +void rtalloc_ign_fib(struct route *ro, u_long ignflags, u_int fibnum); struct rtentry *rtalloc1(struct sockaddr *, int, u_long); int rtinit(struct ifaddr *, int, int); int rtioctl(u_long, caddr_t); @@ -353,8 +359,6 @@ int rtrequest(int, struct sockaddr *, * but this will change.. */ int rt_getifa_fib(struct rt_addrinfo *, u_int fibnum); -void rtalloc_ign_fib(struct route *ro, u_long ignflags, u_int fibnum); -void rtalloc_fib(struct route *ro, u_int fibnum); struct rtentry *rtalloc1_fib(struct sockaddr *, int, u_long, u_int); int rtioctl_fib(u_long, caddr_t, u_int); void rtredirect_fib(struct sockaddr *, struct sockaddr *, Modified: projects/routing/sys/net/rt_nhops.c ============================================================================== --- projects/routing/sys/net/rt_nhops.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/rt_nhops.c Sun Aug 23 18:32:14 2015 (r287075) @@ -369,18 +369,19 @@ fib4_sendmbuf(struct ifnet *ifp, struct * TODO: Make special ifnet * 'if_output_frame' handler for that. */ - struct route_compat rc; + struct nhop_info ni; struct ether_header *eh; - rc.ro_flags = AF_INET << 8 | RT_NHOP; - rc.ro_nh = nh; + bzero(&ni, sizeof(ni)); + ni.ni_flags = RT_NHOP; + ni.ni_family = AF_INET; + ni.ni_nh = nh; M_PREPEND(m, nh->nh_count, M_NOWAIT); if (m == NULL) return (ENOBUFS); eh = mtod(m, struct ether_header *); memcpy(eh, nh->d.data, nh->nh_count); - error = (*ifp->if_output)(ifp, m, - NULL, (struct route *)&rc); + error = (*ifp->if_output)(ifp, m, NULL, &ni); } else { struct sockaddr_in gw_out; memset(&gw_out, 0, sizeof(gw_out)); @@ -878,18 +879,19 @@ fib6_sendmbuf(struct ifnet *ifp, struct * TODO: Make special ifnet * 'if_output_frame' handler for that. */ - struct route_compat rc; + struct nhop_info ni; struct ether_header *eh; - rc.ro_flags = AF_INET6 << 8 | RT_NHOP; - rc.ro_nh = nh; + bzero(&ni, sizeof(ni)); + ni.ni_family = AF_INET6; + ni.ni_flags = RT_NHOP; + ni.ni_nh = nh; M_PREPEND(m, nh->nh_count, M_NOWAIT); if (m == NULL) return (ENOBUFS); eh = mtod(m, struct ether_header *); memcpy(eh, nh->d.data, nh->nh_count); - error = (*ifp->if_output)(ifp, m, - NULL, (struct route *)&rc); + error = (*ifp->if_output)(ifp, m, NULL, &ni); } else { /* We need to perform ND lookup */ struct sockaddr_in6 gw_out; Modified: projects/routing/sys/net/rt_nhops.h ============================================================================== --- projects/routing/sys/net/rt_nhops.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/rt_nhops.h Sun Aug 23 18:32:14 2015 (r287075) @@ -113,10 +113,6 @@ struct nhop_multi { uint16_t nh_nhops[30]; /* Nexthop indexes */ }; -/* Control plane nexthop data */ -struct nhop_info { -}; - /* Per-AF per-fib nhop table */ struct nhops_descr { uint32_t nhop_size; /* Nehthop data size */ @@ -220,13 +216,6 @@ struct route_info { uint32_t scopeid; /* Desired scope id to use */ }; -struct route_compat { - struct nhop_prepend *ro_nh; - void *spare0; - void *spare1; - int ro_flags; -}; - int fib4_lookup_nh_ifp(uint32_t fibnum, struct in_addr dst, uint32_t flowid, struct nhop4_basic *pnh4); int fib4_lookup_nh_basic(uint32_t fibnum, struct in_addr dst, uint32_t flowid, Modified: projects/routing/sys/net/rtsock.c ============================================================================== --- projects/routing/sys/net/rtsock.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net/rtsock.c Sun Aug 23 18:32:14 2015 (r287075) @@ -615,11 +615,13 @@ route_output(struct mbuf *m, struct sock */ if (info.rti_info[RTAX_GATEWAY] != NULL && info.rti_info[RTAX_GATEWAY]->sa_family != AF_LINK) { - struct route gw_ro; - - bzero(&gw_ro, sizeof(gw_ro)); - gw_ro.ro_dst = *info.rti_info[RTAX_GATEWAY]; - rtalloc_ign_fib(&gw_ro, 0, fibnum); + struct rtentry *rt; + /* XXX-ME: Is this enough? */ + struct sockaddr dst; + + bzero(&dst, sizeof(dst)); + dst = *info.rti_info[RTAX_GATEWAY]; + rt = rtalloc1_fib(&dst, 0, 0, fibnum); /* * A host route through the loopback interface is * installed for each interface adddress. In pre 8.0 @@ -630,14 +632,13 @@ route_output(struct mbuf *m, struct sock * AF_LINK sa_family type of the rt_gateway, and the * rt_ifp has the IFF_LOOPBACK flag set. */ - if (gw_ro.ro_rt != NULL && - gw_ro.ro_rt->rt_gateway->sa_family == AF_LINK && - gw_ro.ro_rt->rt_ifp->if_flags & IFF_LOOPBACK) { + if (rt != NULL && rt->rt_gateway->sa_family == AF_LINK && + rt->rt_ifp->if_flags & IFF_LOOPBACK) { info.rti_flags &= ~RTF_GATEWAY; info.rti_flags |= RTF_GWFLAG_COMPAT; } - if (gw_ro.ro_rt != NULL) - RTFREE(gw_ro.ro_rt); + if (rt != NULL) + RTFREE_LOCKED(rt); } switch (rtm->rtm_type) { Modified: projects/routing/sys/net80211/ieee80211.c ============================================================================== --- projects/routing/sys/net80211/ieee80211.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net80211/ieee80211.c Sun Aug 23 18:32:14 2015 (r287075) @@ -248,7 +248,7 @@ null_transmit(struct ifnet *ifp, struct static int null_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro) + const struct sockaddr *dst, struct nhop_info *ni) { if_printf(ifp, "discard raw packet\n"); return null_transmit(ifp, m); Modified: projects/routing/sys/net80211/ieee80211_output.c ============================================================================== --- projects/routing/sys/net80211/ieee80211_output.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net80211/ieee80211_output.c Sun Aug 23 18:32:14 2015 (r287075) @@ -538,7 +538,7 @@ ieee80211_raw_output(struct ieee80211vap */ int ieee80211_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro) + const struct sockaddr *dst, struct nhop_info *ni_rt) { #define senderr(e) do { error = (e); goto bad;} while (0) struct ieee80211_node *ni = NULL; @@ -566,7 +566,7 @@ ieee80211_output(struct ifnet *ifp, stru * a raw 802.11 frame. */ if (dst->sa_family != AF_IEEE80211) - return vap->iv_output(ifp, m, dst, ro); + return vap->iv_output(ifp, m, dst, ni_rt); #ifdef MAC error = mac_ifnet_check_transmit(ifp, m); if (error) Modified: projects/routing/sys/net80211/ieee80211_proto.h ============================================================================== --- projects/routing/sys/net80211/ieee80211_proto.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net80211/ieee80211_proto.h Sun Aug 23 18:32:14 2015 (r287075) @@ -102,7 +102,7 @@ int ieee80211_mgmt_output(struct ieee802 int ieee80211_raw_xmit(struct ieee80211_node *, struct mbuf *, const struct ieee80211_bpf_params *); int ieee80211_output(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *ro); + const struct sockaddr *, struct nhop_info *ni); int ieee80211_vap_pkt_send_dest(struct ieee80211vap *, struct mbuf *, struct ieee80211_node *); int ieee80211_raw_output(struct ieee80211vap *, struct ieee80211_node *, Modified: projects/routing/sys/net80211/ieee80211_var.h ============================================================================== --- projects/routing/sys/net80211/ieee80211_var.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/net80211/ieee80211_var.h Sun Aug 23 18:32:14 2015 (r287075) @@ -507,7 +507,7 @@ struct ieee80211vap { enum ieee80211_state, int); /* 802.3 output method for raw frame xmit */ int (*iv_output)(struct ifnet *, struct mbuf *, - const struct sockaddr *, struct route *); + const struct sockaddr *, struct nhop_info *); uint64_t iv_spare[6]; }; MALLOC_DECLARE(M_80211_VAP); Modified: projects/routing/sys/netgraph/ng_iface.c ============================================================================== --- projects/routing/sys/netgraph/ng_iface.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/netgraph/ng_iface.c Sun Aug 23 18:32:14 2015 (r287075) @@ -119,7 +119,7 @@ typedef struct ng_iface_private *priv_p; static void ng_iface_start(struct ifnet *ifp); static int ng_iface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data); static int ng_iface_output(struct ifnet *ifp, struct mbuf *m0, - const struct sockaddr *dst, struct route *ro); + const struct sockaddr *dst, struct nhop_info *ni); static void ng_iface_bpftap(struct ifnet *ifp, struct mbuf *m, sa_family_t family); static int ng_iface_send(struct ifnet *ifp, struct mbuf *m, @@ -334,7 +334,7 @@ ng_iface_ioctl(struct ifnet *ifp, u_long static int ng_iface_output(struct ifnet *ifp, struct mbuf *m, - const struct sockaddr *dst, struct route *ro) + const struct sockaddr *dst, struct nhop_info *ni) { struct m_tag *mtag; uint32_t af; Modified: projects/routing/sys/netinet/ip_var.h ============================================================================== --- projects/routing/sys/netinet/ip_var.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/netinet/ip_var.h Sun Aug 23 18:32:14 2015 (r287075) @@ -171,7 +171,6 @@ void kmod_ipstat_dec(int statnum); struct ip; struct inpcb; -struct route; struct route_info; struct sockopt; Modified: projects/routing/sys/netinet6/in6_rmx.c ============================================================================== --- projects/routing/sys/netinet6/in6_rmx.c Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/netinet6/in6_rmx.c Sun Aug 23 18:32:14 2015 (r287075) @@ -295,20 +295,6 @@ in6_rtrequest(int req, struct sockaddr * return (rtrequest_fib(req, dst, gw, mask, flags, ret_nrt, fibnum)); } -void -in6_rtalloc(struct route_in6 *ro, u_int fibnum) -{ - - rtalloc_ign_fib((struct route *)ro, 0ul, fibnum); -} - -void -in6_rtalloc_ign(struct route_in6 *ro, u_long ignflags, u_int fibnum) -{ - - rtalloc_ign_fib((struct route *)ro, ignflags, fibnum); -} - struct rtentry * in6_rtalloc1(struct sockaddr *dst, int report, u_long ignflags, u_int fibnum) { Modified: projects/routing/sys/netinet6/in6_var.h ============================================================================== --- projects/routing/sys/netinet6/in6_var.h Sun Aug 23 18:31:46 2015 (r287074) +++ projects/routing/sys/netinet6/in6_var.h Sun Aug 23 18:32:14 2015 (r287075) @@ -832,8 +832,6 @@ void in6_rtredirect(struct sockaddr *, s int, struct sockaddr *, u_int); int in6_rtrequest(int, struct sockaddr *, struct sockaddr *, struct sockaddr *, int, struct rtentry **, u_int); -void in6_rtalloc(struct route_in6 *, u_int); -void in6_rtalloc_ign(struct route_in6 *, u_long, u_int); struct rtentry *in6_rtalloc1(struct sockaddr *, int, u_long, u_int); #endif /* _KERNEL */ Modified: projects/routing/sys/netinet6/nd6_nbr.c ============================================================================== --- projects/routing/sys/netinet6/nd6_nbr.c Sun Aug 23 18:31:46 2015 (r287074) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508231832.t7NIWFXw051605>