| From edee6ed263cd8fa074d7c0a832968b251a027f2d Mon Sep 17 00:00:00 2001 |
| From: Sheena Mira-ato <sheena.mira-ato@alliedtelesis.co.nz> |
| Date: Mon, 1 Apr 2019 13:04:42 +1300 |
| Subject: ip6_tunnel: Match to ARPHRD_TUNNEL6 for dev type |
| |
| [ Upstream commit b2e54b09a3d29c4db883b920274ca8dca4d9f04d ] |
| |
| The device type for ip6 tunnels is set to |
| ARPHRD_TUNNEL6. However, the ip4ip6_err function |
| is expecting the device type of the tunnel to be |
| ARPHRD_TUNNEL. Since the device types do not |
| match, the function exits and the ICMP error |
| packet is not sent to the originating host. Note |
| that the device type for IPv4 tunnels is set to |
| ARPHRD_TUNNEL. |
| |
| Fix is to expect a tunnel device type of |
| ARPHRD_TUNNEL6 instead. Now the tunnel device |
| type matches and the ICMP error packet is sent |
| to the originating host. |
| |
| Signed-off-by: Sheena Mira-ato <sheena.mira-ato@alliedtelesis.co.nz> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/ipv6/ip6_tunnel.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c |
| index 0c6403cf8b52..ade1390c6348 100644 |
| --- a/net/ipv6/ip6_tunnel.c |
| +++ b/net/ipv6/ip6_tunnel.c |
| @@ -627,7 +627,7 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, |
| rt = ip_route_output_ports(dev_net(skb->dev), &fl4, NULL, |
| eiph->daddr, eiph->saddr, 0, 0, |
| IPPROTO_IPIP, RT_TOS(eiph->tos), 0); |
| - if (IS_ERR(rt) || rt->dst.dev->type != ARPHRD_TUNNEL) { |
| + if (IS_ERR(rt) || rt->dst.dev->type != ARPHRD_TUNNEL6) { |
| if (!IS_ERR(rt)) |
| ip_rt_put(rt); |
| goto out; |
| @@ -636,7 +636,7 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, |
| } else { |
| if (ip_route_input(skb2, eiph->daddr, eiph->saddr, eiph->tos, |
| skb2->dev) || |
| - skb_dst(skb2)->dev->type != ARPHRD_TUNNEL) |
| + skb_dst(skb2)->dev->type != ARPHRD_TUNNEL6) |
| goto out; |
| } |
| |
| -- |
| 2.19.1 |
| |