Browse Source

erspan: fix error handling for erspan tunnel

When processing icmp unreachable message for erspan tunnel, tunnel id
should be erspan_net_id instead of ipgre_net_id.

Fixes: 84e54fe0a5ea ("gre: introduce native tunnel support for ERSPAN")
Cc: William Tu <u9012063@gmail.com>
Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>
Acked-by: William Tu <u9012063@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Haishuang Yan 7 years ago
parent
commit
51dc63e391
1 changed files with 3 additions and 0 deletions
  1. 3 0
      net/ipv4/ip_gre.c

+ 3 - 0
net/ipv4/ip_gre.c

@@ -178,6 +178,9 @@ static void ipgre_err(struct sk_buff *skb, u32 info,
 
 
 	if (tpi->proto == htons(ETH_P_TEB))
 	if (tpi->proto == htons(ETH_P_TEB))
 		itn = net_generic(net, gre_tap_net_id);
 		itn = net_generic(net, gre_tap_net_id);
+	else if (tpi->proto == htons(ETH_P_ERSPAN) ||
+		 tpi->proto == htons(ETH_P_ERSPAN2))
+		itn = net_generic(net, erspan_net_id);
 	else
 	else
 		itn = net_generic(net, ipgre_net_id);
 		itn = net_generic(net, ipgre_net_id);