diff options
Diffstat (limited to 'net/ipv4/route.c')
| -rw-r--r-- | net/ipv4/route.c | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 4de3e38fa1..d7152b2b2c 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
| @@ -568,9 +568,7 @@ static inline int compare_keys(struct flowi *fl1, struct flowi *fl2) | |||
| 568 | { | 568 | { |
| 569 | return ((fl1->nl_u.ip4_u.daddr ^ fl2->nl_u.ip4_u.daddr) | | 569 | return ((fl1->nl_u.ip4_u.daddr ^ fl2->nl_u.ip4_u.daddr) | |
| 570 | (fl1->nl_u.ip4_u.saddr ^ fl2->nl_u.ip4_u.saddr) | | 570 | (fl1->nl_u.ip4_u.saddr ^ fl2->nl_u.ip4_u.saddr) | |
| 571 | #ifdef CONFIG_IP_ROUTE_FWMARK | 571 | (fl1->mark ^ fl2->mark) | |
| 572 | (fl1->nl_u.ip4_u.fwmark ^ fl2->nl_u.ip4_u.fwmark) | | ||
| 573 | #endif | ||
| 574 | (*(u16 *)&fl1->nl_u.ip4_u.tos ^ | 572 | (*(u16 *)&fl1->nl_u.ip4_u.tos ^ |
| 575 | *(u16 *)&fl2->nl_u.ip4_u.tos) | | 573 | *(u16 *)&fl2->nl_u.ip4_u.tos) | |
| 576 | (fl1->oif ^ fl2->oif) | | 574 | (fl1->oif ^ fl2->oif) | |
| @@ -1643,9 +1641,7 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr, | |||
| 1643 | rth->fl.fl4_dst = daddr; | 1641 | rth->fl.fl4_dst = daddr; |
| 1644 | rth->rt_dst = daddr; | 1642 | rth->rt_dst = daddr; |
| 1645 | rth->fl.fl4_tos = tos; | 1643 | rth->fl.fl4_tos = tos; |
| 1646 | #ifdef CONFIG_IP_ROUTE_FWMARK | 1644 | rth->fl.mark = skb->mark; |
| 1647 | rth->fl.fl4_fwmark= skb->mark; | ||
| 1648 | #endif | ||
| 1649 | rth->fl.fl4_src = saddr; | 1645 | rth->fl.fl4_src = saddr; |
| 1650 | rth->rt_src = saddr; | 1646 | rth->rt_src = saddr; |
| 1651 | #ifdef CONFIG_NET_CLS_ROUTE | 1647 | #ifdef CONFIG_NET_CLS_ROUTE |
| @@ -1789,9 +1785,7 @@ static inline int __mkroute_input(struct sk_buff *skb, | |||
| 1789 | rth->fl.fl4_dst = daddr; | 1785 | rth->fl.fl4_dst = daddr; |
| 1790 | rth->rt_dst = daddr; | 1786 | rth->rt_dst = daddr; |
| 1791 | rth->fl.fl4_tos = tos; | 1787 | rth->fl.fl4_tos = tos; |
| 1792 | #ifdef CONFIG_IP_ROUTE_FWMARK | 1788 | rth->fl.mark = skb->mark; |
| 1793 | rth->fl.fl4_fwmark= skb->mark; | ||
| 1794 | #endif | ||
| 1795 | rth->fl.fl4_src = saddr; | 1789 | rth->fl.fl4_src = saddr; |
| 1796 | rth->rt_src = saddr; | 1790 | rth->rt_src = saddr; |
| 1797 | rth->rt_gateway = daddr; | 1791 | rth->rt_gateway = daddr; |
| @@ -1920,10 +1914,8 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr, | |||
| 1920 | .saddr = saddr, | 1914 | .saddr = saddr, |
| 1921 | .tos = tos, | 1915 | .tos = tos, |
| 1922 | .scope = RT_SCOPE_UNIVERSE, | 1916 | .scope = RT_SCOPE_UNIVERSE, |
| 1923 | #ifdef CONFIG_IP_ROUTE_FWMARK | ||
| 1924 | .fwmark = skb->mark | ||
| 1925 | #endif | ||
| 1926 | } }, | 1917 | } }, |
| 1918 | .mark = skb->mark, | ||
| 1927 | .iif = dev->ifindex }; | 1919 | .iif = dev->ifindex }; |
| 1928 | unsigned flags = 0; | 1920 | unsigned flags = 0; |
| 1929 | u32 itag = 0; | 1921 | u32 itag = 0; |
| @@ -2034,9 +2026,7 @@ local_input: | |||
| 2034 | rth->fl.fl4_dst = daddr; | 2026 | rth->fl.fl4_dst = daddr; |
| 2035 | rth->rt_dst = daddr; | 2027 | rth->rt_dst = daddr; |
| 2036 | rth->fl.fl4_tos = tos; | 2028 | rth->fl.fl4_tos = tos; |
| 2037 | #ifdef CONFIG_IP_ROUTE_FWMARK | 2029 | rth->fl.mark = skb->mark; |
| 2038 | rth->fl.fl4_fwmark= skb->mark; | ||
| 2039 | #endif | ||
| 2040 | rth->fl.fl4_src = saddr; | 2030 | rth->fl.fl4_src = saddr; |
| 2041 | rth->rt_src = saddr; | 2031 | rth->rt_src = saddr; |
| 2042 | #ifdef CONFIG_NET_CLS_ROUTE | 2032 | #ifdef CONFIG_NET_CLS_ROUTE |
| @@ -2113,9 +2103,7 @@ int ip_route_input(struct sk_buff *skb, __be32 daddr, __be32 saddr, | |||
| 2113 | rth->fl.fl4_src == saddr && | 2103 | rth->fl.fl4_src == saddr && |
| 2114 | rth->fl.iif == iif && | 2104 | rth->fl.iif == iif && |
| 2115 | rth->fl.oif == 0 && | 2105 | rth->fl.oif == 0 && |
| 2116 | #ifdef CONFIG_IP_ROUTE_FWMARK | 2106 | rth->fl.mark == skb->mark && |
| 2117 | rth->fl.fl4_fwmark == skb->mark && | ||
| 2118 | #endif | ||
| 2119 | rth->fl.fl4_tos == tos) { | 2107 | rth->fl.fl4_tos == tos) { |
| 2120 | rth->u.dst.lastuse = jiffies; | 2108 | rth->u.dst.lastuse = jiffies; |
| 2121 | dst_hold(&rth->u.dst); | 2109 | dst_hold(&rth->u.dst); |
| @@ -2239,9 +2227,7 @@ static inline int __mkroute_output(struct rtable **result, | |||
| 2239 | rth->fl.fl4_tos = tos; | 2227 | rth->fl.fl4_tos = tos; |
| 2240 | rth->fl.fl4_src = oldflp->fl4_src; | 2228 | rth->fl.fl4_src = oldflp->fl4_src; |
| 2241 | rth->fl.oif = oldflp->oif; | 2229 | rth->fl.oif = oldflp->oif; |
| 2242 | #ifdef CONFIG_IP_ROUTE_FWMARK | 2230 | rth->fl.mark = oldflp->mark; |
| 2243 | rth->fl.fl4_fwmark= oldflp->fl4_fwmark; | ||
| 2244 | #endif | ||
| 2245 | rth->rt_dst = fl->fl4_dst; | 2231 | rth->rt_dst = fl->fl4_dst; |
| 2246 | rth->rt_src = fl->fl4_src; | 2232 | rth->rt_src = fl->fl4_src; |
| 2247 | rth->rt_iif = oldflp->oif ? : dev_out->ifindex; | 2233 | rth->rt_iif = oldflp->oif ? : dev_out->ifindex; |
| @@ -2385,10 +2371,8 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp) | |||
| 2385 | .scope = ((tos & RTO_ONLINK) ? | 2371 | .scope = ((tos & RTO_ONLINK) ? |
| 2386 | RT_SCOPE_LINK : | 2372 | RT_SCOPE_LINK : |
| 2387 | RT_SCOPE_UNIVERSE), | 2373 | RT_SCOPE_UNIVERSE), |
| 2388 | #ifdef CONFIG_IP_ROUTE_FWMARK | ||
| 2389 | .fwmark = oldflp->fl4_fwmark | ||
| 2390 | #endif | ||
| 2391 | } }, | 2374 | } }, |
| 2375 | .mark = oldflp->mark, | ||
| 2392 | .iif = loopback_dev.ifindex, | 2376 | .iif = loopback_dev.ifindex, |
| 2393 | .oif = oldflp->oif }; | 2377 | .oif = oldflp->oif }; |
| 2394 | struct fib_result res; | 2378 | struct fib_result res; |
| @@ -2583,9 +2567,7 @@ int __ip_route_output_key(struct rtable **rp, const struct flowi *flp) | |||
| 2583 | rth->fl.fl4_src == flp->fl4_src && | 2567 | rth->fl.fl4_src == flp->fl4_src && |
| 2584 | rth->fl.iif == 0 && | 2568 | rth->fl.iif == 0 && |
| 2585 | rth->fl.oif == flp->oif && | 2569 | rth->fl.oif == flp->oif && |
| 2586 | #ifdef CONFIG_IP_ROUTE_FWMARK | 2570 | rth->fl.mark == flp->mark && |
| 2587 | rth->fl.fl4_fwmark == flp->fl4_fwmark && | ||
| 2588 | #endif | ||
| 2589 | !((rth->fl.fl4_tos ^ flp->fl4_tos) & | 2571 | !((rth->fl.fl4_tos ^ flp->fl4_tos) & |
| 2590 | (IPTOS_RT_MASK | RTO_ONLINK))) { | 2572 | (IPTOS_RT_MASK | RTO_ONLINK))) { |
| 2591 | 2573 | ||
