summaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.4/patches/619-netfilter_classify.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic-2.4/patches/619-netfilter_classify.patch')
-rw-r--r--target/linux/generic-2.4/patches/619-netfilter_classify.patch116
1 files changed, 0 insertions, 116 deletions
diff --git a/target/linux/generic-2.4/patches/619-netfilter_classify.patch b/target/linux/generic-2.4/patches/619-netfilter_classify.patch
deleted file mode 100644
index 7003537d2..000000000
--- a/target/linux/generic-2.4/patches/619-netfilter_classify.patch
+++ /dev/null
@@ -1,116 +0,0 @@
---- /dev/null
-+++ b/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
-@@ -0,0 +1,8 @@
-+#ifndef _IPT_CLASSIFY_H
-+#define _IPT_CLASSIFY_H
-+
-+struct ipt_classify_target_info {
-+ u_int32_t priority;
-+};
-+
-+#endif /*_IPT_CLASSIFY_H */
---- a/net/ipv4/netfilter/Config.in
-+++ b/net/ipv4/netfilter/Config.in
-@@ -171,6 +171,7 @@ if [ "$CONFIG_IP_NF_IPTABLES" != "n" ];
- dep_tristate ' DSCP target support' CONFIG_IP_NF_TARGET_DSCP $CONFIG_IP_NF_MANGLE
-
- dep_tristate ' MARK target support' CONFIG_IP_NF_TARGET_MARK $CONFIG_IP_NF_MANGLE
-+ dep_tristate ' CLASSIFY target support (EXPERIMENTAL)' CONFIG_IP_NF_TARGET_CLASSIFY $CONFIG_IP_NF_MANGLE
- dep_tristate ' IMQ target support' CONFIG_IP_NF_TARGET_IMQ $CONFIG_IP_NF_MANGLE
- fi
- if [ "$CONFIG_IP_NF_CONNTRACK_MARK" != "n" ]; then
---- /dev/null
-+++ b/net/ipv4/netfilter/ipt_CLASSIFY.c
-@@ -0,0 +1,82 @@
-+/*
-+ * This is a module which is used for setting the skb->priority field
-+ * of an skb for qdisc classification.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/skbuff.h>
-+#include <linux/ip.h>
-+#include <net/checksum.h>
-+
-+#include <linux/netfilter_ipv4/ip_tables.h>
-+#include <linux/netfilter_ipv4/ipt_CLASSIFY.h>
-+
-+MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
-+MODULE_LICENSE("GPL");
-+MODULE_DESCRIPTION("iptables qdisc classification target module");
-+
-+static unsigned int
-+target(struct sk_buff **pskb,
-+ unsigned int hooknum,
-+ const struct net_device *in,
-+ const struct net_device *out,
-+ const void *targinfo,
-+ void *userinfo)
-+{
-+ const struct ipt_classify_target_info *clinfo = targinfo;
-+
-+ if((*pskb)->priority != clinfo->priority) {
-+ (*pskb)->priority = clinfo->priority;
-+ (*pskb)->nfcache |= NFC_ALTERED;
-+ }
-+
-+ return IPT_CONTINUE;
-+}
-+
-+static int
-+checkentry(const char *tablename,
-+ const struct ipt_entry *e,
-+ void *targinfo,
-+ unsigned int targinfosize,
-+ unsigned int hook_mask)
-+{
-+ if (targinfosize != IPT_ALIGN(sizeof(struct ipt_classify_target_info))){
-+ printk(KERN_ERR "CLASSIFY: invalid size (%u != %u).\n",
-+ targinfosize,
-+ IPT_ALIGN(sizeof(struct ipt_classify_target_info)));
-+ return 0;
-+ }
-+
-+ if (hook_mask & ~(1 << NF_IP_POST_ROUTING)) {
-+ printk(KERN_ERR "CLASSIFY: only valid in POST_ROUTING.\n");
-+ return 0;
-+ }
-+
-+ if (strcmp(tablename, "mangle") != 0) {
-+ printk(KERN_WARNING "CLASSIFY: can only be called from "
-+ "\"mangle\" table, not \"%s\".\n",
-+ tablename);
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+
-+static struct ipt_target ipt_classify_reg
-+= { { NULL, NULL }, "CLASSIFY", target, checkentry, NULL, THIS_MODULE };
-+
-+static int __init init(void)
-+{
-+ if (ipt_register_target(&ipt_classify_reg))
-+ return -EINVAL;
-+
-+ return 0;
-+}
-+
-+static void __exit fini(void)
-+{
-+ ipt_unregister_target(&ipt_classify_reg);
-+}
-+
-+module_init(init);
-+module_exit(fini);
---- a/net/ipv4/netfilter/Makefile
-+++ b/net/ipv4/netfilter/Makefile
-@@ -133,6 +133,7 @@ obj-$(CONFIG_IP_NF_MATCH_LAYER7) += ipt_
-
- # targets
- obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
-+obj-$(CONFIG_IP_NF_TARGET_CLASSIFY) += ipt_CLASSIFY.o
- obj-$(CONFIG_IP_NF_TARGET_MIRROR) += ipt_MIRROR.o
- obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o
- obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o