config VXLAN
        tristate "Virtual eXtensible Local Area Network (VXLAN)"
        depends on INET
-       select NET_IP_TUNNEL
        select NET_UDP_TUNNEL
        ---help---
          This allows one to create vxlan virtual interfaces that provide
 
 #ifndef __NET_GENEVE_H
 #define __NET_GENEVE_H  1
 
+#ifdef CONFIG_INET
 #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:
  *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        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_BASE_HLEN (sizeof(struct udphdr) + sizeof(struct genevehdr))
 
                    __u8 ttl, __be16 df, __be16 src_port, __be16 dst_port,
                    __be16 tun_flags, u8 vni[3], u8 opt_len, u8 *opt,
                    bool xnet);
-#endif
+#endif /*ifdef CONFIG_INET */
+
+#endif /*ifdef__NET_GENEVE_H */
 
 
 config NET_UDP_TUNNEL
        tristate
+       select NET_IP_TUNNEL
        default n
 
 config NET_FOU
          network mechanisms and optimizations for UDP (such as ECMP
          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
        tristate "IP: AH transformation"
        select XFRM_ALGO
        increase provides TCP friendliness.
        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
        tristate "CUBIC TCP"
        default y