X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fcompat.h;h=65734ff151bc1424c2a534c47bab3478d3330978;hb=14002a5984e97f0f2482acdbb445c45266e2c6a1;hp=efad6a094f2ccb00c5e1ad2dfe0646b76cbc45e5;hpb=a9a29d22d8f485bb90bb49ae9ddff8c3c1ab04f5;p=sliver-openvswitch.git diff --git a/datapath/compat.h b/datapath/compat.h index efad6a094..65734ff15 100644 --- a/datapath/compat.h +++ b/datapath/compat.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007-2011 Nicira Networks. + * Copyright (c) 2007-2012 Nicira, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public @@ -53,4 +53,64 @@ static inline void skb_clear_rxhash(struct sk_buff *skb) #endif } +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32) +#define GENL_SOCK(net) (genl_sock) +#define SET_NETNSOK +#else +#define GENL_SOCK(net) ((net)->genl_sock) +#define SET_NETNSOK .netnsok = true, +#endif + +#ifdef HAVE_PARALLEL_OPS +#define SET_PARALLEL_OPS .parallel_ops = true, +#else +#define SET_PARALLEL_OPS +#endif + + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +#ifdef CONFIG_NETFILTER +static inline u32 skb_get_mark(struct sk_buff *skb) +{ + return skb->nfmark; +} + +static inline void skb_set_mark(struct sk_buff *skb, u32 mark) +{ + skb->nfmark = mark; +} +#else /* CONFIG_NETFILTER */ +static inline u32 skb_get_mark(struct sk_buff *skb) +{ + return 0; +} + +static inline void skb_set_mark(struct sk_buff *skb, u32 mark) +{ +} +#endif +#else /* before 2.6.20 */ +static inline u32 skb_get_mark(struct sk_buff *skb) +{ + return skb->mark; +} + +static inline void skb_set_mark(struct sk_buff *skb, u32 mark) +{ + skb->mark = mark; +} +#endif /* after 2.6.20 */ + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36) +#define rt_dst(rt) (rt->dst) +#else +#define rt_dst(rt) (rt->u.dst) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) +#define inet_sport(sk) (inet_sk(sk)->sport) +#else +#define inet_sport(sk) (inet_sk(sk)->inet_sport) +#endif + #endif /* compat.h */