net/ipv4: Remove fib table id from rtable
authorDavid Ahern <dsahern@gmail.com>
Wed, 14 Feb 2018 22:24:28 +0000 (14:24 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Feb 2018 20:41:42 +0000 (15:41 -0500)
Remove rt_table_id from rtable. It was added for getroute to return the
table id that was hit in the lookup. With the changes for fibmatch the
table id can be extracted from the fib_info returned in the fib_result
so it no longer needs to be in rtable directly.

Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c
include/net/route.h
net/ipv4/route.c
net/ipv4/xfrm4_policy.c

index 139c61c8244ad9099ed8d6377b74eff446354e10..239c78c53e58f04b5cd0f0cc08ae639eb9e4bd2f 100644 (file)
@@ -736,7 +736,6 @@ static int vrf_rtable_create(struct net_device *dev)
                return -ENOMEM;
 
        rth->dst.output = vrf_output;
-       rth->rt_table_id = vrf->tb_id;
 
        rcu_assign_pointer(vrf->rth, rth);
 
index 1eb9ce470e25ce0ece3eff33d2b84341f94a4036..158833ea7988b82f5eabc8a7eb907ef2ca1cecef 100644 (file)
@@ -65,8 +65,6 @@ struct rtable {
        /* Miscellaneous cached information */
        u32                     rt_pmtu;
 
-       u32                     rt_table_id;
-
        struct list_head        rt_uncached;
        struct uncached_list    *rt_uncached_list;
 };
index 6ce623e3e2ab0e7eaae16b9bdebf56385d59b716..5ca7415cd48cd5c9aaaad0a26ee18c91ec99305a 100644 (file)
@@ -1509,7 +1509,6 @@ struct rtable *rt_dst_alloc(struct net_device *dev,
                rt->rt_pmtu = 0;
                rt->rt_gateway = 0;
                rt->rt_uses_gateway = 0;
-               rt->rt_table_id = 0;
                INIT_LIST_HEAD(&rt->rt_uncached);
 
                rt->dst.output = ip_output;
@@ -1727,8 +1726,6 @@ rt_cache:
        }
 
        rth->rt_is_input = 1;
-       if (res->table)
-               rth->rt_table_id = res->table->tb_id;
        RT_CACHE_STAT_INC(in_slow_tot);
 
        rth->dst.input = ip_forward;
@@ -2001,8 +1998,6 @@ local_input:
        rth->dst.tclassid = itag;
 #endif
        rth->rt_is_input = 1;
-       if (res->table)
-               rth->rt_table_id = res->table->tb_id;
 
        RT_CACHE_STAT_INC(in_slow_tot);
        if (res->type == RTN_UNREACHABLE) {
@@ -2231,8 +2226,6 @@ add:
                return ERR_PTR(-ENOBUFS);
 
        rth->rt_iif = orig_oif;
-       if (res->table)
-               rth->rt_table_id = res->table->tb_id;
 
        RT_CACHE_STAT_INC(out_slow_tot);
 
@@ -2762,7 +2755,7 @@ static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh,
                rt->rt_flags |= RTCF_NOTIFY;
 
        if (rtm->rtm_flags & RTM_F_LOOKUP_TABLE)
-               table_id = rt->rt_table_id;
+               table_id = res.table ? res.table->tb_id : 0;
 
        if (rtm->rtm_flags & RTM_F_FIB_MATCH) {
                if (!res.fi) {
index 753f526cf9dbe339a977afb7d1ec11711e19764a..796ac4115485362cfd4711f1b7c56d820f9ee3c9 100644 (file)
@@ -100,7 +100,6 @@ static int xfrm4_fill_dst(struct xfrm_dst *xdst, struct net_device *dev,
        xdst->u.rt.rt_gateway = rt->rt_gateway;
        xdst->u.rt.rt_uses_gateway = rt->rt_uses_gateway;
        xdst->u.rt.rt_pmtu = rt->rt_pmtu;
-       xdst->u.rt.rt_table_id = rt->rt_table_id;
        INIT_LIST_HEAD(&xdst->u.rt.rt_uncached);
 
        return 0;