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