Hi,
I'm new to the list, so be gentle with your flames ;-)
On my outgoing connection to the internet I provide QoS using ratelimiting
and prioritizing packets. However, it's a cablemodem and my provider only
speaks IPv4. Over the connections I run multiple IPv6 tunnels, and I want
to provide QoS on these tunnels too.
QoS however can only be provided on the physical outgoing interface. On
that level, I can only see IPv4 packets and therefore it's impossible to
provide QoS on IPv6 for me.
In order to be able to provide QoS on tunneled IPv6 connections, I've
created a simple patch (definately not ready for inclusion in the kernel,
since it surely needs a configuration option) which promotes the netfilter
MARK value from the IPv6 packets to the sit packets.
Now I can mark packets using ip6tables, and on the ipv4 level I can still
differentiate between the priorities. Problem solved, I'm happy ;-)
Below is the patch, created on Linux 2.4.19:
--- net/ipv6/sit.c.orig Mon Feb 17 15:30:41 2003
+++ net/ipv6/sit.c Mon Feb 17 15:29:40 2003
@@ -571,6 +571,9 @@
}
if (skb->sk)
skb_set_owner_w(new_skb, skb->sk);
+#ifdef CONFIG_NETFILTER
+ new_skb->nfmark = skb->nfmark;
+#endif
dev_kfree_skb(skb);
skb = new_skb;
}
--
Erik Hensema (erik@xxxxxxxxxxx)
|