On Thu, Nov 22, 2012 at 07:56:28AM -0800, Pravin B Shelar wrote:
> diff --git a/include/net/ipip.h b/include/net/ipip.h
> index 21947cf..a14bde8 100644
> --- a/include/net/ipip.h
> +++ b/include/net/ipip.h
> @@ -2,7 +2,9 @@
>  #define __NET_IPIP_H 1
>  
>  #include <linux/if_tunnel.h>
> +#include <net/dsfield.h>
>  #include <net/gro_cells.h>
> +#include <net/inet_ecn.h>
>  #include <net/ip.h>
>  
>  /* Keep error state on tunnel for 30 sec */
> @@ -26,7 +28,7 @@ struct ip_tunnel {
>       /* These four fields used only by GRE */
>       __u32                   i_seqno;        /* The last seen seqno  */
>       __u32                   o_seqno;        /* The last output seqno */
> -     int                     hlen;           /* Precalculated GRE header 
> length */
> +     int                     hlen;           /* Precalculated header length 
> */
>       int                     mlink;
>  
>       struct ip_tunnel_parm   parms;
> @@ -37,10 +39,31 @@ struct ip_tunnel {
>  #endif
>       struct ip_tunnel_prl_entry __rcu *prl;          /* potential router 
> list */
>       unsigned int                    prl_count;      /* # of entries in PRL 
> */
> -
> +     int ipt_net_id;
>       struct gro_cells                gro_cells;
>  };
>  
> +/*
> + * Locking : hash tables are protected by RCU and RTNL
> + */
> +
> +#define for_each_ip_tunnel_rcu(t, start) \
> +     for (t = rcu_dereference(start); t; t = rcu_dereference(t->next))
> +
> +
> +#define TUNNEL_CSUM        __cpu_to_be16(0x8000)
> +#define TUNNEL_KEY         __cpu_to_be16(0x2000)
> +#define TUNNEL_SEQ         __cpu_to_be16(0x1000)
> +
> +struct tnl_ptk_info {
> +     __be16 flags;
> +     __be16 proto;
> +     __be32 key;
> +     __be32 seq;
> +     int hdr_len;
> +     __sum16 csum;
> +};
> +
>  struct ip_tunnel_prl_entry {
>       struct ip_tunnel_prl_entry __rcu *next;
>       __be32                          addr;
> @@ -48,6 +71,14 @@ struct ip_tunnel_prl_entry {
>       struct rcu_head                 rcu_head;
>  };
>  
> +struct pcpu_tstats {
> +     u64     rx_packets;
> +     u64     rx_bytes;
> +     u64     tx_packets;
> +     u64     tx_bytes;
> +     struct u64_stats_sync   syncp;
> +};
> +
>  static inline void iptunnel_xmit(struct sk_buff *skb, struct net_device *dev)
>  {
>       int err;

This breaks ip6_gre.c.

> /linux/net/ipv6/ip6_gre.c: In function 'ip6gre_get_stats64':
> /linux/net/ipv6/ip6_gre.c:120:208: error: dereferencing pointer to incomplete 
> type

It needs to include ipip.h
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -38,6 +38,7 @@
 
 #include <net/sock.h>
 #include <net/ip.h>
+#include <net/ipip.h>
 #include <net/icmp.h>
 #include <net/protocol.h>
 #include <net/addrconf.h>

-- 
yamahata
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to