Author: bz
Date: Thu Jul 27 13:03:36 2017
New Revision: 321618
URL: https://svnweb.freebsd.org/changeset/base/321618

Log:
  After inpcb route caching was put back in place there is no need for
  flowtable anymore (as flowtable was never considered to be useful in
  the forwarding path).
  
  Reviewed by:          np
  Differential Revision:        https://reviews.freebsd.org/D11448

Deleted:
  head/sys/net/flowtable.c
  head/sys/net/flowtable.h
  head/usr.bin/netstat/flowtable.c
Modified:
  head/sys/conf/NOTES
  head/sys/conf/options
  head/sys/net/route.c
  head/sys/netinet/ip_output.c
  head/sys/netinet6/ip6_output.c
  head/usr.bin/netstat/Makefile
  head/usr.bin/netstat/main.c
  head/usr.bin/netstat/netstat.h

Modified: head/sys/conf/NOTES
==============================================================================
--- head/sys/conf/NOTES Thu Jul 27 12:37:18 2017        (r321617)
+++ head/sys/conf/NOTES Thu Jul 27 13:03:36 2017        (r321618)
@@ -646,9 +646,6 @@ options     LIBMCHAIN
 # libalias library, performing NAT
 options        LIBALIAS
 
-# flowtable cache
-options        FLOWTABLE
-
 #
 # SCTP is a NEW transport protocol defined by
 # RFC2960 updated by RFC3309 and RFC3758.. and

Modified: head/sys/conf/options
==============================================================================
--- head/sys/conf/options       Thu Jul 27 12:37:18 2017        (r321617)
+++ head/sys/conf/options       Thu Jul 27 13:03:36 2017        (r321618)
@@ -454,8 +454,6 @@ TCP_RFC7413_MAX_KEYS        opt_inet.h
 TCP_SIGNATURE          opt_ipsec.h
 VLAN_ARRAY             opt_vlan.h
 XBONEHACK
-FLOWTABLE              opt_route.h
-FLOWTABLE_HASH_ALL     opt_route.h
 
 #
 # SCTP

Modified: head/sys/net/route.c
==============================================================================
--- head/sys/net/route.c        Thu Jul 27 12:37:18 2017        (r321617)
+++ head/sys/net/route.c        Thu Jul 27 13:03:36 2017        (r321618)
@@ -59,7 +59,6 @@
 #include <net/route.h>
 #include <net/route_var.h>
 #include <net/vnet.h>
-#include <net/flowtable.h>
 
 #ifdef RADIX_MPATH
 #include <net/radix_mpath.h>
@@ -1504,79 +1503,12 @@ rt_mpath_unlink(struct rib_head *rnh, struct rt_addrin
 }
 #endif
 
-#ifdef FLOWTABLE
-static struct rtentry *
-rt_flowtable_check_route(struct rib_head *rnh, struct rt_addrinfo *info)
-{
-#if defined(INET6) || defined(INET)
-       struct radix_node *rn;
-#endif
-       struct rtentry *rt0;
-
-       rt0 = NULL;
-       /* "flow-table" only supports IPv6 and IPv4 at the moment. */
-       switch (dst->sa_family) {
-#ifdef INET6
-       case AF_INET6:
-#endif
-#ifdef INET
-       case AF_INET:
-#endif
-#if defined(INET6) || defined(INET)
-               rn = rnh->rnh_matchaddr(dst, &rnh->head);
-               if (rn && ((rn->rn_flags & RNF_ROOT) == 0)) {
-                       struct sockaddr *mask;
-                       u_char *m, *n;
-                       int len;
-
-                       /*
-                        * compare mask to see if the new route is
-                        * more specific than the existing one
-                        */
-                       rt0 = RNTORT(rn);
-                       RT_LOCK(rt0);
-                       RT_ADDREF(rt0);
-                       RT_UNLOCK(rt0);
-                       /*
-                        * A host route is already present, so
-                        * leave the flow-table entries as is.
-                        */
-                       if (rt0->rt_flags & RTF_HOST) {
-                               RTFREE(rt0);
-                               rt0 = NULL;
-                       } else if (!(flags & RTF_HOST) && netmask) {
-                               mask = rt_mask(rt0);
-                               len = mask->sa_len;
-                               m = (u_char *)mask;
-                               n = (u_char *)netmask;
-                               while (len-- > 0) {
-                                       if (*n != *m)
-                                               break;
-                                       n++;
-                                       m++;
-                               }
-                               if (len == 0 || (*n < *m)) {
-                                       RTFREE(rt0);
-                                       rt0 = NULL;
-                               }
-                       }
-               }
-#endif/* INET6 || INET */
-       }
-
-       return (rt0);
-}
-#endif
-
 int
 rtrequest1_fib(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt,
                                u_int fibnum)
 {
        int error = 0;
        struct rtentry *rt, *rt_old;
-#ifdef FLOWTABLE
-       struct rtentry *rt0;
-#endif
        struct radix_node *rn;
        struct rib_head *rnh;
        struct ifaddr *ifa;
@@ -1710,10 +1642,6 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, stru
                }
 #endif
 
-#ifdef FLOWTABLE
-               rt0 = rt_flowtable_check_route(rnh, info);
-#endif /* FLOWTABLE */
-
                /* XXX mtu manipulation will be done in rnh_addaddr -- itojun */
                rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, rt->rt_nodes);
 
@@ -1748,18 +1676,8 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, stru
                        ifa_free(rt->rt_ifa);
                        R_Free(rt_key(rt));
                        uma_zfree(V_rtzone, rt);
-#ifdef FLOWTABLE
-                       if (rt0 != NULL)
-                               RTFREE(rt0);
-#endif
                        return (EEXIST);
                } 
-#ifdef FLOWTABLE
-               else if (rt0 != NULL) {
-                       flowtable_route_flush(dst->sa_family, rt0);
-                       RTFREE(rt0);
-               }
-#endif
 
                if (rt_old != NULL) {
                        rt_notifydelete(rt_old, info);

Modified: head/sys/netinet/ip_output.c
==============================================================================
--- head/sys/netinet/ip_output.c        Thu Jul 27 12:37:18 2017        
(r321617)
+++ head/sys/netinet/ip_output.c        Thu Jul 27 13:03:36 2017        
(r321618)
@@ -63,7 +63,6 @@ __FBSDID("$FreeBSD$");
 #include <net/netisr.h>
 #include <net/pfil.h>
 #include <net/route.h>
-#include <net/flowtable.h>
 #ifdef RADIX_MPATH
 #include <net/radix_mpath.h>
 #endif
@@ -243,11 +242,6 @@ ip_output(struct mbuf *m, struct mbuf *opt, struct rou
                ro = &iproute;
                bzero(ro, sizeof (*ro));
        }
-
-#ifdef FLOWTABLE
-       if (ro->ro_rt == NULL)
-               (void )flowtable_lookup(AF_INET, m, ro);
-#endif
 
        if (opt) {
                int len = 0;

Modified: head/sys/netinet6/ip6_output.c
==============================================================================
--- head/sys/netinet6/ip6_output.c      Thu Jul 27 12:37:18 2017        
(r321617)
+++ head/sys/netinet6/ip6_output.c      Thu Jul 27 13:03:36 2017        
(r321618)
@@ -117,10 +117,6 @@ __FBSDID("$FreeBSD$");
 #include <netinet6/ip6protosw.h>
 #include <netinet6/scope6_var.h>
 
-#ifdef FLOWTABLE
-#include <net/flowtable.h>
-#endif
-
 extern int in6_mcast_loop;
 
 struct ip6_exthdrs {
@@ -502,10 +498,6 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt,
        if (opt && opt->ip6po_rthdr)
                ro = &opt->ip6po_route;
        dst = (struct sockaddr_in6 *)&ro->ro_dst;
-#ifdef FLOWTABLE
-       if (ro->ro_rt == NULL)
-               (void )flowtable_lookup(AF_INET6, m, (struct route *)ro);
-#endif
        fibnum = (inp != NULL) ? inp->inp_inc.inc_fibnum : M_GETFIB(m);
 again:
        /*

Modified: head/usr.bin/netstat/Makefile
==============================================================================
--- head/usr.bin/netstat/Makefile       Thu Jul 27 12:37:18 2017        
(r321617)
+++ head/usr.bin/netstat/Makefile       Thu Jul 27 13:03:36 2017        
(r321618)
@@ -6,7 +6,7 @@
 PROG=  netstat
 SRCS=  if.c inet.c main.c mbuf.c mroute.c netisr.c nl_symbols.c route.c \
        unix.c mroute6.c ipsec.c bpf.c pfkey.c sctp.c \
-       flowtable.c nl_defs.h
+       nl_defs.h
 
 nl_symbols.c: nlist_symbols
        awk '\

Modified: head/usr.bin/netstat/main.c
==============================================================================
--- head/usr.bin/netstat/main.c Thu Jul 27 12:37:18 2017        (r321617)
+++ head/usr.bin/netstat/main.c Thu Jul 27 13:03:36 2017        (r321618)
@@ -480,7 +480,6 @@ main(int argc, char *argv[])
                xo_open_container("statistics");
                if (sflag) {
                        rt_stats();
-                       flowtable_stats();
                } else
                        routepr(fib, af);
                xo_close_container("statistics");

Modified: head/usr.bin/netstat/netstat.h
==============================================================================
--- head/usr.bin/netstat/netstat.h      Thu Jul 27 12:37:18 2017        
(r321617)
+++ head/usr.bin/netstat/netstat.h      Thu Jul 27 13:03:36 2017        
(r321618)
@@ -140,7 +140,6 @@ void        intpr(void (*)(char *), int);
 
 void   pr_family(int);
 void   rt_stats(void);
-void   flowtable_stats(void);
 
 char   *routename(struct sockaddr *, int);
 const char *netname(struct sockaddr *, struct sockaddr *);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to