Commit 7c5df8fa authored by Andy Zhou's avatar Andy Zhou Committed by David S. Miller

openvswitch: fix a compilation error when CONFIG_INET is not setW!

Fix a openvswitch compilation error when CONFIG_INET is not set:

=====================================================
   In file included from include/net/geneve.h:4:0,
                       from net/openvswitch/flow_netlink.c:45:
		          include/net/udp_tunnel.h: In function 'udp_tunnel_handle_offloads':
			  >> include/net/udp_tunnel.h:100:2: error: implicit declaration of function 'iptunnel_handle_offloads' [-Werror=implicit-function-declaration]
			  >>      return iptunnel_handle_offloads(skb, udp_csum, type);
			  >>           ^
			  >>           >> include/net/udp_tunnel.h:100:2: warning: return makes pointer from integer without a cast
			  >>           >>    cc1: some warnings being treated as errors

=====================================================
Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
Signed-off-by: default avatarAndy Zhou <azhou@nicira.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0a5d1c55
...@@ -147,7 +147,6 @@ config MACVTAP ...@@ -147,7 +147,6 @@ config MACVTAP
config VXLAN config VXLAN
tristate "Virtual eXtensible Local Area Network (VXLAN)" tristate "Virtual eXtensible Local Area Network (VXLAN)"
depends on INET depends on INET
select NET_IP_TUNNEL
select NET_UDP_TUNNEL select NET_UDP_TUNNEL
---help--- ---help---
This allows one to create vxlan virtual interfaces that provide This allows one to create vxlan virtual interfaces that provide
......
#ifndef __NET_GENEVE_H #ifndef __NET_GENEVE_H
#define __NET_GENEVE_H 1 #define __NET_GENEVE_H 1
#ifdef CONFIG_INET
#include <net/udp_tunnel.h> #include <net/udp_tunnel.h>
#endif
struct geneve_sock;
typedef void (geneve_rcv_t)(struct geneve_sock *gs, struct sk_buff *skb);
struct geneve_sock {
struct hlist_node hlist;
geneve_rcv_t *rcv;
void *rcv_data;
struct work_struct del_work;
struct socket *sock;
struct rcu_head rcu;
atomic_t refcnt;
struct udp_offload udp_offloads;
};
/* Geneve Header: /* Geneve Header:
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...@@ -74,6 +62,22 @@ struct genevehdr { ...@@ -74,6 +62,22 @@ struct genevehdr {
struct geneve_opt options[]; struct geneve_opt options[];
}; };
#ifdef CONFIG_INET
struct geneve_sock;
typedef void (geneve_rcv_t)(struct geneve_sock *gs, struct sk_buff *skb);
struct geneve_sock {
struct hlist_node hlist;
geneve_rcv_t *rcv;
void *rcv_data;
struct work_struct del_work;
struct socket *sock;
struct rcu_head rcu;
atomic_t refcnt;
struct udp_offload udp_offloads;
};
#define GENEVE_VER 0 #define GENEVE_VER 0
#define GENEVE_BASE_HLEN (sizeof(struct udphdr) + sizeof(struct genevehdr)) #define GENEVE_BASE_HLEN (sizeof(struct udphdr) + sizeof(struct genevehdr))
...@@ -88,4 +92,6 @@ int geneve_xmit_skb(struct geneve_sock *gs, struct rtable *rt, ...@@ -88,4 +92,6 @@ int geneve_xmit_skb(struct geneve_sock *gs, struct rtable *rt,
__u8 ttl, __be16 df, __be16 src_port, __be16 dst_port, __u8 ttl, __be16 df, __be16 src_port, __be16 dst_port,
__be16 tun_flags, u8 vni[3], u8 opt_len, u8 *opt, __be16 tun_flags, u8 vni[3], u8 opt_len, u8 *opt,
bool xnet); bool xnet);
#endif #endif /*ifdef CONFIG_INET */
#endif /*ifdef__NET_GENEVE_H */
...@@ -309,6 +309,7 @@ config NET_IPVTI ...@@ -309,6 +309,7 @@ config NET_IPVTI
config NET_UDP_TUNNEL config NET_UDP_TUNNEL
tristate tristate
select NET_IP_TUNNEL
default n default n
config NET_FOU config NET_FOU
...@@ -321,6 +322,20 @@ config NET_FOU ...@@ -321,6 +322,20 @@ config NET_FOU
network mechanisms and optimizations for UDP (such as ECMP network mechanisms and optimizations for UDP (such as ECMP
and RSS) can be leveraged to provide better service. and RSS) can be leveraged to provide better service.
config GENEVE
tristate "Generic Network Virtualization Encapsulation (Geneve)"
depends on INET
select NET_UDP_TUNNEL
---help---
This allows one to create Geneve virtual interfaces that provide
Layer 2 Networks over Layer 3 Networks. Geneve is often used
to tunnel virtual network infrastructure in virtualized environments.
For more information see:
http://tools.ietf.org/html/draft-gross-geneve-01
To compile this driver as a module, choose M here: the module
config INET_AH config INET_AH
tristate "IP: AH transformation" tristate "IP: AH transformation"
select XFRM_ALGO select XFRM_ALGO
...@@ -453,20 +468,6 @@ config TCP_CONG_BIC ...@@ -453,20 +468,6 @@ config TCP_CONG_BIC
increase provides TCP friendliness. increase provides TCP friendliness.
See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/ See http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/
config GENEVE
tristate "Generic Network Virtualization Encapsulation (Geneve)"
depends on INET
select NET_IP_TUNNEL
select NET_UDP_TUNNEL
---help---
This allows one to create Geneve virtual interfaces that provide
Layer 2 Networks over Layer 3 Networks. Geneve is often used
to tunnel virtual network infrastructure in virtualized environments.
For more information see:
http://tools.ietf.org/html/draft-gross-geneve-01
To compile this driver as a module, choose M here: the module
config TCP_CONG_CUBIC config TCP_CONG_CUBIC
tristate "CUBIC TCP" tristate "CUBIC TCP"
default y default y
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment