Date: Sun, 23 Aug 2015 18:21:44 +0000 (UTC) From: "Alexander V. Chernikov" <melifaro@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287056 - projects/routing/sys/netpfil/pf Message-ID: <201508231821.t7NILiFY045451@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: melifaro Date: Sun Aug 23 18:21:43 2015 New Revision: 287056 URL: https://svnweb.freebsd.org/changeset/base/287056 Log: Convert last piece of pf to use fib4_lookup_nh_ext() Modified: projects/routing/sys/netpfil/pf/pf.c Modified: projects/routing/sys/netpfil/pf/pf.c ============================================================================== --- projects/routing/sys/netpfil/pf/pf.c Sun Aug 23 18:21:06 2015 (r287055) +++ projects/routing/sys/netpfil/pf/pf.c Sun Aug 23 18:21:43 2015 (r287056) @@ -5220,23 +5220,23 @@ pf_route(struct mbuf **m, struct pf_rule dst.sin_addr = ip->ip_dst; if (r->rt == PF_FASTROUTE) { - struct rtentry *rt; + uint32_t fibnum; + struct nhop4_extended nh_ext; if (s) PF_STATE_UNLOCK(s); - rt = rtalloc1_fib(sintosa(&dst), 0, 0, M_GETFIB(m0)); - if (rt == NULL) { + + fibnum = M_GETFIB(m0); + if (fib4_lookup_nh_ext(fibnum, ip->ip_dst, + m0->m_pkthdr.flowid, NHOP_LOOKUP_REF, &nh_ext) != 0) { KMOD_IPSTAT_INC(ips_noroute); error = EHOSTUNREACH; goto bad; } - ifp = rt->rt_ifp; - counter_u64_add(rt->rt_pksent, 1); - - if (rt->rt_flags & RTF_GATEWAY) - bcopy(satosin(rt->rt_gateway), &dst, sizeof(dst)); - RTFREE_LOCKED(rt); + ifp = nh_ext.nh_ifp; + dst.sin_addr = nh_ext.nh_addr; + fib4_free_nh_ext(fibnum, &nh_ext); } else { if (TAILQ_EMPTY(&r->rpool.list)) { DPFPRINTF(PF_DEBUG_URGENT,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508231821.t7NILiFY045451>