git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
datapath: support Linux 3.7
[sliver-openvswitch.git]
/
datapath
/
vport-capwap.c
diff --git
a/datapath/vport-capwap.c
b/datapath/vport-capwap.c
index
8a89180
..
cea6bfd
100644
(file)
--- a/
datapath/vport-capwap.c
+++ b/
datapath/vport-capwap.c
@@
-143,7
+143,11
@@
static struct sk_buff *defrag(struct sk_buff *, bool frag_last);
static void capwap_frag_init(struct inet_frag_queue *, void *match);
static unsigned int capwap_frag_hash(struct inet_frag_queue *);
static void capwap_frag_init(struct inet_frag_queue *, void *match);
static unsigned int capwap_frag_hash(struct inet_frag_queue *);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
static int capwap_frag_match(struct inet_frag_queue *, void *match);
static int capwap_frag_match(struct inet_frag_queue *, void *match);
+#else
+static bool capwap_frag_match(struct inet_frag_queue *, void *match);
+#endif
static void capwap_frag_expire(unsigned long ifq);
static struct inet_frags frag_state = {
static void capwap_frag_expire(unsigned long ifq);
static struct inet_frags frag_state = {
@@
-334,8
+338,10
@@
static int capwap_rcv(struct sock *sk, struct sk_buff *skb)
}
if (key_present && mutable->key.daddr &&
}
if (key_present && mutable->key.daddr &&
- !(mutable->flags & TNL_F_IN_KEY_MATCH))
+ !(mutable->flags & TNL_F_IN_KEY_MATCH))
{
key_present = false;
key_present = false;
+ key = 0;
+ }
tnl_tun_key_init(&tun_key, iph, key, key_present ? OVS_TNL_F_KEY : 0);
OVS_CB(skb)->tun_key = &tun_key;
tnl_tun_key_init(&tun_key, iph, key, key_present ? OVS_TNL_F_KEY : 0);
OVS_CB(skb)->tun_key = &tun_key;
@@
-767,8
+773,7
@@
static struct sk_buff *defrag(struct sk_buff *skb, bool frag_last)
u16 frag_off;
struct frag_queue *fq;
u16 frag_off;
struct frag_queue *fq;
- if (atomic_read(&ns_frag_state->mem) > ns_frag_state->high_thresh)
- inet_frag_evictor(ns_frag_state, &frag_state);
+ inet_frag_evictor(ns_frag_state, &frag_state, false);
match.daddr = iph->daddr;
match.saddr = iph->saddr;
match.daddr = iph->daddr;
match.saddr = iph->saddr;
@@
-802,7
+807,11
@@
static unsigned int capwap_frag_hash(struct inet_frag_queue *ifq)
return frag_hash(&ifq_cast(ifq)->match);
}
return frag_hash(&ifq_cast(ifq)->match);
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
static int capwap_frag_match(struct inet_frag_queue *ifq, void *a_)
static int capwap_frag_match(struct inet_frag_queue *ifq, void *a_)
+#else
+static bool capwap_frag_match(struct inet_frag_queue *ifq, void *a_)
+#endif
{
struct frag_match *a = a_;
struct frag_match *b = &ifq_cast(ifq)->match;
{
struct frag_match *a = a_;
struct frag_match *b = &ifq_cast(ifq)->match;