forked from mirrors/linux
		
	geneve: fix fill_info when using collect_metadata
Since9b4437a5b8("geneve: Unify LWT and netdev handling.") fill_info does not return UDP_ZERO_CSUM6_RX when using COLLECT_METADATA. This is because it uses ip_tunnel_info_af() with the device level info, which is not valid for COLLECT_METADATA. Fix by checking for the presence of the actual sockets. Fixes:9b4437a5b8("geneve: Unify LWT and netdev handling.") Signed-off-by: Eric Garver <e@erig.me> Acked-by: Pravin B Shelar <pshelar@ovn.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									e6a88e4ba8
								
							
						
					
					
						commit
						11387fe4a9
					
				
					 1 changed files with 5 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1293,7 +1293,7 @@ static int geneve_fill_info(struct sk_buff *skb, const struct net_device *dev)
 | 
			
		|||
	if (nla_put_u32(skb, IFLA_GENEVE_ID, vni))
 | 
			
		||||
		goto nla_put_failure;
 | 
			
		||||
 | 
			
		||||
	if (ip_tunnel_info_af(info) == AF_INET) {
 | 
			
		||||
	if (rtnl_dereference(geneve->sock4)) {
 | 
			
		||||
		if (nla_put_in_addr(skb, IFLA_GENEVE_REMOTE,
 | 
			
		||||
				    info->key.u.ipv4.dst))
 | 
			
		||||
			goto nla_put_failure;
 | 
			
		||||
| 
						 | 
				
			
			@ -1302,8 +1302,10 @@ static int geneve_fill_info(struct sk_buff *skb, const struct net_device *dev)
 | 
			
		|||
			       !!(info->key.tun_flags & TUNNEL_CSUM)))
 | 
			
		||||
			goto nla_put_failure;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#if IS_ENABLED(CONFIG_IPV6)
 | 
			
		||||
	} else {
 | 
			
		||||
	if (rtnl_dereference(geneve->sock6)) {
 | 
			
		||||
		if (nla_put_in6_addr(skb, IFLA_GENEVE_REMOTE6,
 | 
			
		||||
				     &info->key.u.ipv6.dst))
 | 
			
		||||
			goto nla_put_failure;
 | 
			
		||||
| 
						 | 
				
			
			@ -1315,8 +1317,8 @@ static int geneve_fill_info(struct sk_buff *skb, const struct net_device *dev)
 | 
			
		|||
		if (nla_put_u8(skb, IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
 | 
			
		||||
			       !geneve->use_udp6_rx_checksums))
 | 
			
		||||
			goto nla_put_failure;
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (nla_put_u8(skb, IFLA_GENEVE_TTL, info->key.ttl) ||
 | 
			
		||||
	    nla_put_u8(skb, IFLA_GENEVE_TOS, info->key.tos) ||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue