Re: ipset support in tc

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Will do that straight away and recompile tc.

In case it wasn't clear: the patch is for the kernel part;
no need to rebuild tc.
Yeah, I just realised that... :-(

Please consider re-testing.  Once you find the first testcase
in your list that still doesn't work, please let me know which
one it is and i'll have a look at it.
OK, will do that (kernel is compiling at present - I had to amend your patchlet slightly as there were errors from patch, I am enclosing the modified version...)
diff --git a/net/sched/em_ipset.c b/net/sched/em_ipset.c
index 0a153d0..13ec7b6 100644
--- a/net/sched/em_ipset.c
+++ b/net/sched/em_ipset.c
@@ -56,6 +56,7 @@ static int em_ipset_match(struct sk_buff *skb, struct tcf_ematch *em,
	struct ip_set_adt_opt opt;
	struct xt_action_param acpar;
	const struct xt_set_info *set = (const void *) em->data;
+       int ret, network_offset;

	switch (skb->protocol) {
	case htons(ETH_P_IP):
@@ -84,7 +85,12 @@ static int em_ipset_match(struct sk_buff *skb, struct tcf_ematch *em,
	opt.flags = set->flags;
	opt.cmdflags = 0;
	opt.timeout = ~0u;
-	return ip_set_test(set->index, skb, &acpar, &opt);
+
+       network_offset = skb_network_offset(skb);
+       skb_pull(skb, network_offset);
+       ret = ip_set_test(set->index, skb, &acpar, &opt);
+       skb_push(skb, network_offset);
+       return ret;
 }
 
 static struct tcf_ematch_ops em_ipset_ops = {


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux