~ubuntu-branches/ubuntu/trusty/openvswitch/trusty-updates

« back to all changes in this revision

Viewing changes to .pc/fix-3.11-support.patch/datapath/linux/compat/include/net/gre.h

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-01-20 12:55:24 UTC
  • mfrom: (1.1.24)
  • Revision ID: package-import@ubuntu.com-20140120125524-8f2lftb06rz1ayi1
Tags: 2.0.1+git20140120-0ubuntu1
* New upstream snapshot:
  - d/p/0001-Add-check-for-latomic.patch: Dropped - included in snapshot.
* d/p/fix-3.11-support.patch: Cherry pick fix for >= 3.11 GRE support
  from upstream VCS (LP: #1270649).
* d/tests/dkms,ma: Gate test execution on <= 3.13 kernel.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __LINUX_GRE_WRAPPER_H
 
2
#define __LINUX_GRE_WRAPPER_H
 
3
 
 
4
#include <linux/skbuff.h>
 
5
#include <net/ip_tunnels.h>
 
6
 
 
7
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)
 
8
#include_next <net/gre.h>
 
9
 
 
10
#else /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) */
 
11
 
 
12
#define GREPROTO_CISCO          0
 
13
#define GREPROTO_MAX            2
 
14
 
 
15
struct gre_protocol {
 
16
        int  (*handler)(struct sk_buff *skb);
 
17
};
 
18
 
 
19
int gre_add_protocol(const struct gre_protocol *proto, u8 version);
 
20
int gre_del_protocol(const struct gre_protocol *proto, u8 version);
 
21
 
 
22
#endif
 
23
 
 
24
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
 
25
struct gre_base_hdr {
 
26
        __be16 flags;
 
27
        __be16 protocol;
 
28
};
 
29
#define GRE_HEADER_SECTION 4
 
30
 
 
31
static inline __be16 gre_flags_to_tnl_flags(__be16 flags)
 
32
{
 
33
        __be16 tflags = 0;
 
34
 
 
35
        if (flags & GRE_CSUM)
 
36
                tflags |= TUNNEL_CSUM;
 
37
        if (flags & GRE_ROUTING)
 
38
                tflags |= TUNNEL_ROUTING;
 
39
        if (flags & GRE_KEY)
 
40
                tflags |= TUNNEL_KEY;
 
41
        if (flags & GRE_SEQ)
 
42
                tflags |= TUNNEL_SEQ;
 
43
        if (flags & GRE_STRICT)
 
44
                tflags |= TUNNEL_STRICT;
 
45
        if (flags & GRE_REC)
 
46
                tflags |= TUNNEL_REC;
 
47
        if (flags & GRE_VERSION)
 
48
                tflags |= TUNNEL_VERSION;
 
49
 
 
50
        return tflags;
 
51
}
 
52
 
 
53
static inline __be16 tnl_flags_to_gre_flags(__be16 tflags)
 
54
{
 
55
        __be16 flags = 0;
 
56
 
 
57
        if (tflags & TUNNEL_CSUM)
 
58
                flags |= GRE_CSUM;
 
59
        if (tflags & TUNNEL_ROUTING)
 
60
                flags |= GRE_ROUTING;
 
61
        if (tflags & TUNNEL_KEY)
 
62
                flags |= GRE_KEY;
 
63
        if (tflags & TUNNEL_SEQ)
 
64
                flags |= GRE_SEQ;
 
65
        if (tflags & TUNNEL_STRICT)
 
66
                flags |= GRE_STRICT;
 
67
        if (tflags & TUNNEL_REC)
 
68
                flags |= GRE_REC;
 
69
        if (tflags & TUNNEL_VERSION)
 
70
                flags |= GRE_VERSION;
 
71
 
 
72
        return flags;
 
73
}
 
74
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
 
75
 
 
76
#define MAX_GRE_PROTO_PRIORITY 255
 
77
#define gre_cisco_protocol rpl_gre_cisco_protocol
 
78
 
 
79
struct gre_cisco_protocol {
 
80
        int (*handler)(struct sk_buff *skb, const struct tnl_ptk_info *tpi);
 
81
        u8 priority;
 
82
};
 
83
 
 
84
#define gre_cisco_register rpl_gre_cisco_register
 
85
int gre_cisco_register(struct gre_cisco_protocol *proto);
 
86
 
 
87
#define gre_cisco_unregister rpl_gre_cisco_unregister
 
88
int gre_cisco_unregister(struct gre_cisco_protocol *proto);
 
89
 
 
90
#define gre_build_header rpl_gre_build_header
 
91
void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi,
 
92
                      int hdr_len);
 
93
 
 
94
#define gre_handle_offloads rpl_gre_handle_offloads
 
95
struct sk_buff *gre_handle_offloads(struct sk_buff *skb, bool gre_csum);
 
96
 
 
97
#define ip_gre_calc_hlen rpl_ip_gre_calc_hlen
 
98
static inline int ip_gre_calc_hlen(__be16 o_flags)
 
99
{
 
100
        int addend = 4;
 
101
 
 
102
        if (o_flags & TUNNEL_CSUM)
 
103
                addend += 4;
 
104
        if (o_flags & TUNNEL_KEY)
 
105
                addend += 4;
 
106
        if (o_flags & TUNNEL_SEQ)
 
107
                addend += 4;
 
108
        return addend;
 
109
}
 
110
 
 
111
 
 
112
#endif