* [PATCH nfsim] 2.6.12 compatibility
2005-05-11 20:06 ` Patrick McHardy
2005-05-11 20:29 ` Max Kellermann
@ 2005-05-11 21:21 ` Max Kellermann
2005-05-11 21:52 ` nfsim for Linux 2.6.12-rc4? Max Kellermann
2 siblings, 0 replies; 5+ messages in thread
From: Max Kellermann @ 2005-05-11 21:21 UTC (permalink / raw)
To: Patrick McHardy; +Cc: netfilter-devel
[-- Attachment #1: Type: text/plain, Size: 486 bytes --]
On 2005/05/11 22:06, Patrick McHardy <kaber@trash.net> wrote:
> I have this patch, but I can't recall if it worked correctly with it or
> not. It needs at least a couple #if KERNEL_VERSION > ... before it can
> be committed.
The required changes in addition to your patch were trivial - there
were 3 definitions missing. A patch is attached. My patch does not
need #ifKERNEL_VERSIONs, I guess.
nfsim/2.6.12-rc4 seems to run well now - my h323-conntrack-nat test
suite succeeds.
Max
[-- Attachment #2: nfsim-2.6.12-defs.patch --]
[-- Type: text/plain, Size: 1031 bytes --]
Wed May 11 23:06:19 CEST 2005 max@duempel.org
* definitions for 2.6.12 compatibility
diff -rN -u old-nfsim-0/core/core.h new-nfsim-0/core/core.h
--- old-nfsim-0/core/core.h 2005-05-11 23:19:44.000000000 +0200
+++ new-nfsim-0/core/core.h 2005-05-11 23:05:37.000000000 +0200
@@ -76,7 +76,8 @@
#define NF_STOLEN 2
#define NF_QUEUE 3
#define NF_REPEAT 4
-#define NF_MAX_VERDICT NF_REPEAT
+#define NF_STOP 5
+#define NF_MAX_VERDICT NF_STOP
#define NF_MAX_HOOKS 8
diff -rN -u old-nfsim-0/kernelenv/include/kernelenv.h new-nfsim-0/kernelenv/include/kernelenv.h
--- old-nfsim-0/kernelenv/include/kernelenv.h 2005-05-11 23:19:45.000000000 +0200
+++ new-nfsim-0/kernelenv/include/kernelenv.h 2005-05-11 23:03:27.000000000 +0200
@@ -1130,6 +1130,9 @@
#define MODULE_PARM_DESC(x,n)
#define module_param(name, type, perm)
#define module_param_array(name, type, num, perm)
+#define module_param_call(name, set, get, arg, perm)
+
+struct kernel_param;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,28)
#define EXPORT_NO_SYMBOLS
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: nfsim for Linux 2.6.12-rc4?
2005-05-11 20:06 ` Patrick McHardy
2005-05-11 20:29 ` Max Kellermann
2005-05-11 21:21 ` [PATCH nfsim] 2.6.12 compatibility Max Kellermann
@ 2005-05-11 21:52 ` Max Kellermann
2 siblings, 0 replies; 5+ messages in thread
From: Max Kellermann @ 2005-05-11 21:52 UTC (permalink / raw)
To: Patrick McHardy; +Cc: netfilter-devel
[-- Attachment #1: Type: text/plain, Size: 427 bytes --]
On 2005/05/11 22:06, Patrick McHardy <kaber@trash.net> wrote:
> I have this patch, but I can't recall if it worked correctly with it or
> not. It needs at least a couple #if KERNEL_VERSION > ... before it can
> be committed.
Now here is a patch which replaces yours, with the correct
#ifs. Tested on both 2.6.11 and 2.6.12. Note that the previous patch I
posted this evening (nfsim-2.6.12-defs.patch) is still required.
Max
[-- Attachment #2: nfsim-2.6.12-api.patch --]
[-- Type: text/plain, Size: 3531 bytes --]
Wed May 11 23:48:01 CEST 2005 max@duempel.org
* 2.6.11 corrections for patrick's patch
Wed May 11 22:41:47 CEST 2005 max@duempel.org
* Patrick's 2.6.12 patch
diff -rN -u old-nfsim-12/core/core.h new-nfsim-12/core/core.h
--- old-nfsim-12/core/core.h 2005-05-11 23:52:20.000000000 +0200
+++ new-nfsim-12/core/core.h 2005-05-11 23:51:19.000000000 +0200
@@ -196,7 +196,11 @@
const struct net_device *out,
const char *fmt, ...);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
+int nf_hook_slow(int pf, unsigned int hook, struct sk_buff **skb,
+#else
int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
+#endif
struct net_device *indev,
struct net_device *outdev,
int (*okfn)(struct sk_buff *)
@@ -206,8 +210,16 @@
);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
-#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) \
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
+#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) \
+({ int _ret; \
+ _ret = nf_hook_slow((pf), (hook), &(skb), (indev), (outdev), (okfn), INT_MIN); \
+ if (_ret == 1) \
+ _ret = (okfn)(skb); \
+ _ret; \
+})
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) \
nf_hook_slow((pf), (hook), (skb), (indev), (outdev), (okfn), INT_MIN)
#else
#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) \
diff -rN -u old-nfsim-12/kernelenv/include/kernelenv.h new-nfsim-12/kernelenv/include/kernelenv.h
--- old-nfsim-12/kernelenv/include/kernelenv.h 2005-05-11 23:52:20.000000000 +0200
+++ new-nfsim-12/kernelenv/include/kernelenv.h 2005-05-11 23:51:19.000000000 +0200
@@ -183,6 +183,7 @@
#define cpu_possible(cpu) ((cpu) == 0)
#endif
#define smp_processor_id() 0
+#define num_possible_cpus() 1
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
@@ -244,6 +245,17 @@
extern unsigned long jiffies;
+static inline unsigned long msecs_to_jiffies(const unsigned int m)
+{
+#if HZ <= 1000 && !(1000 % HZ)
+ return (m + (1000 / HZ) - 1) / (1000 / HZ);
+#elif HZ > 1000 && !(HZ % 1000)
+ return m * (HZ / 1000);
+#else
+ return (m * HZ + 999) / 1000;
+#endif
+}
+
#define typecheck(type,x) \
({ type __dummy; \
typeof(x) __dummy2; \
@@ -929,8 +941,13 @@
};
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
+u32 dst_metric(struct dst_entry *dst, int metric);
+u32 dst_mtu(struct dst_entry *dst);
+#else
u32 dst_path_metric(struct dst_entry *dst, int metric);
u32 dst_pmtu(struct dst_entry *dst);
+#endif
#define dst_release(x)
#define dst_hold(x)
diff -rN -u old-nfsim-12/kernelenv/kernelenv.c new-nfsim-12/kernelenv/kernelenv.c
--- old-nfsim-12/kernelenv/kernelenv.c 2005-05-11 23:52:20.000000000 +0200
+++ new-nfsim-12/kernelenv/kernelenv.c 2005-05-11 23:51:19.000000000 +0200
@@ -583,16 +583,28 @@
#endif
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
+u32 dst_metric(struct dst_entry *dst, int metric)
+#else
u32 dst_path_metric(struct dst_entry *dst, int metric)
+#endif
{
return 1500;
/* return dst->path->metrics[metric-1]; */
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
+u32 dst_mtu(struct dst_entry *dst)
+#else
u32 dst_pmtu(struct dst_entry *dst)
+#endif
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
+ u32 mtu = dst_metric(dst, RTAX_MTU);
+#else
u32 mtu = dst_path_metric(dst, RTAX_MTU);
+#endif
/* Yes, _exactly_. This is paranoia. */
barrier();
return mtu;
^ permalink raw reply [flat|nested] 5+ messages in thread