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
[email protected]
http://openvswitch.org/mailman/listinfo/dev