Some trivial conversions, ok? Index: netinet/ip_output.c =================================================================== RCS file: /cvs/src/sys/netinet/ip_output.c,v retrieving revision 1.303 diff -u -p -r1.303 ip_output.c --- netinet/ip_output.c 20 Oct 2015 20:22:42 -0000 1.303 +++ netinet/ip_output.c 24 Oct 2015 12:01:00 -0000 @@ -204,7 +204,7 @@ reroute: if (ISSET(ro->ro_rt->rt_flags, RTF_LOCAL)) ifp = if_ref(lo0ifp); else - ifp = if_ref(ro->ro_rt->rt_ifp); + ifp = if_get(ro->ro_rt->rt_ifidx); if ((mtu = ro->ro_rt->rt_rmx.rmx_mtu) == 0) mtu = ifp->if_mtu; Index: netinet6/in6_src.c =================================================================== RCS file: /cvs/src/sys/netinet6/in6_src.c,v retrieving revision 1.65 diff -u -p -r1.65 in6_src.c --- netinet6/in6_src.c 22 Oct 2015 16:33:32 -0000 1.65 +++ netinet6/in6_src.c 24 Oct 2015 12:00:32 -0000 @@ -457,7 +457,7 @@ in6_selectif(struct sockaddr_in6 *dstsoc return (rt->rt_flags & RTF_HOST ? EHOSTUNREACH : ENETUNREACH); if (rt != NULL) - *retifp = if_ref(rt->rt_ifp); + *retifp = if_get(rt->rt_ifidx); return (0); } Index: netinet6/ip6_output.c =================================================================== RCS file: /cvs/src/sys/netinet6/ip6_output.c,v retrieving revision 1.190 diff -u -p -r1.190 ip6_output.c --- netinet6/ip6_output.c 19 Oct 2015 12:11:28 -0000 1.190 +++ netinet6/ip6_output.c 24 Oct 2015 12:00:49 -0000 @@ -553,7 +553,7 @@ reroute: if (ISSET(rt->rt_flags, RTF_LOCAL)) ifp = if_ref(lo0ifp); else - ifp = if_ref(rt->rt_ifp); + ifp = if_get(rt->rt_ifidx); } else { *dst = dstsock; } @@ -2382,7 +2382,7 @@ ip6_setmoptions(int optname, struct ip6_ error = EADDRNOTAVAIL; break; } - ifp = if_ref(ro.ro_rt->rt_ifp); + ifp = if_get(ro.ro_rt->rt_ifidx); rtfree(ro.ro_rt); } else { /*