Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb7928a5 authored by Rami Rosen's avatar Rami Rosen Committed by David S. Miller
Browse files

[IPV4]: Remove unsupported DNAT (RTCF_NAT and RTCF_NAT) in IPV4



- The DNAT (Destination NAT) is not implemented in IPV4.

- This patch remove the code which checks these flags
in net/ipv4/arp.c and net/ipv4/route.c.

The RTCF_NAT and RTCF_NAT should stay in the header (linux/in_route.h)
because they are used in DECnet.

Signed-off-by: default avatarRami Rosen <ramirose@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f0b5a0dc
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -835,9 +835,8 @@ static int arp_process(struct sk_buff *skb)
			}
			goto out;
		} else if (IN_DEV_FORWARD(in_dev)) {
			if ((rt->rt_flags&RTCF_DNAT) ||
			    (addr_type == RTN_UNICAST  && rt->u.dst.dev != dev &&
			     (arp_fwd_proxy(in_dev, rt) || pneigh_lookup(&arp_tbl, &init_net, &tip, dev, 0)))) {
			    if (addr_type == RTN_UNICAST  && rt->u.dst.dev != dev &&
			     (arp_fwd_proxy(in_dev, rt) || pneigh_lookup(&arp_tbl, &init_net, &tip, dev, 0))) {
				n = neigh_event_ns(&arp_tbl, sha, &sip, dev);
				if (n)
					neigh_release(n);
+2 −2
Original line number Diff line number Diff line
@@ -1768,7 +1768,7 @@ static inline int __mkroute_input(struct sk_buff *skb,
	if (err)
		flags |= RTCF_DIRECTSRC;

	if (out_dev == in_dev && err && !(flags & (RTCF_NAT | RTCF_MASQ)) &&
	if (out_dev == in_dev && err && !(flags & RTCF_MASQ) &&
	    (IN_DEV_SHARED_MEDIA(out_dev) ||
	     inet_addr_onlink(out_dev, saddr, FIB_RES_GW(*res))))
		flags |= RTCF_DOREDIRECT;
@@ -1777,7 +1777,7 @@ static inline int __mkroute_input(struct sk_buff *skb,
		/* Not IP (i.e. ARP). Do not create route, if it is
		 * invalid for proxy arp. DNAT routes are always valid.
		 */
		if (out_dev == in_dev && !(flags & RTCF_DNAT)) {
		if (out_dev == in_dev) {
			err = -EINVAL;
			goto cleanup;
		}