Loading net/sched/sch_ingress.c +39 −64 Original line number Diff line number Diff line Loading @@ -33,12 +33,9 @@ #define D2PRINTK(format, args...) #endif #define PRIV(sch) qdisc_priv(sch) /* Thanks to Doron Oz for this hack */ /* Thanks to Doron Oz for this hack */ #ifndef CONFIG_NET_CLS_ACT #ifdef CONFIG_NETFILTER static int nf_registered; Loading @@ -50,10 +47,8 @@ struct ingress_qdisc_data { struct tcf_proto *filter_list; }; /* ------------------------- Class/flow operations ------------------------- */ static int ingress_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, struct Qdisc **old) { Loading @@ -67,35 +62,31 @@ static int ingress_graft(struct Qdisc *sch,unsigned long arg, return 1; } static struct Qdisc *ingress_leaf(struct Qdisc *sch, unsigned long arg) { return NULL; } static unsigned long ingress_get(struct Qdisc *sch, u32 classid) { #ifdef DEBUG_INGRESS struct ingress_qdisc_data *p = PRIV(sch); #endif DPRINTK("ingress_get(sch %p,[qdisc %p],classid %x)\n", sch, p, classid); DPRINTK("ingress_get(sch %p,[qdisc %p],classid %x)\n", sch, p, classid); return TC_H_MIN(classid) + 1; } static unsigned long ingress_bind_filter(struct Qdisc *sch, unsigned long parent, u32 classid) { return ingress_get(sch, classid); } static void ingress_put(struct Qdisc *sch, unsigned long cl) { } static int ingress_change(struct Qdisc *sch, u32 classid, u32 parent, struct rtattr **tca, unsigned long *arg) { Loading @@ -108,8 +99,6 @@ static int ingress_change(struct Qdisc *sch, u32 classid, u32 parent, return 0; } static void ingress_walk(struct Qdisc *sch, struct qdisc_walker *walker) { #ifdef DEBUG_INGRESS Loading @@ -119,7 +108,6 @@ static void ingress_walk(struct Qdisc *sch,struct qdisc_walker *walker) DPRINTK("No effect. sch_ingress doesn't maintain classes at the moment"); } static struct tcf_proto **ingress_find_tcf(struct Qdisc *sch, unsigned long cl) { struct ingress_qdisc_data *p = PRIV(sch); Loading @@ -127,10 +115,8 @@ static struct tcf_proto **ingress_find_tcf(struct Qdisc *sch,unsigned long cl) return &p->filter_list; } /* --------------------------- Qdisc operations ---------------------------- */ static int ingress_enqueue(struct sk_buff *skb, struct Qdisc *sch) { struct ingress_qdisc_data *p = PRIV(sch); Loading Loading @@ -173,7 +159,6 @@ static int ingress_enqueue(struct sk_buff *skb,struct Qdisc *sch) return result; } static struct sk_buff *ingress_dequeue(struct Qdisc *sch) { /* Loading @@ -183,7 +168,6 @@ static struct sk_buff *ingress_dequeue(struct Qdisc *sch) return NULL; } static int ingress_requeue(struct sk_buff *skb, struct Qdisc *sch) { /* Loading @@ -204,8 +188,7 @@ static unsigned int ingress_drop(struct Qdisc *sch) #ifndef CONFIG_NET_CLS_ACT #ifdef CONFIG_NETFILTER static unsigned int ing_hook(unsigned int hook, struct sk_buff *skb, static unsigned int ing_hook(unsigned int hook, struct sk_buff *skb, const struct net_device *indev, const struct net_device *outdev, int (*okfn)(struct sk_buff *)) Loading Loading @@ -247,7 +230,6 @@ static struct nf_hook_ops ing_ops[] __read_mostly = { .priority = NF_IP6_PRI_FILTER + 1, }, }; #endif #endif Loading Loading @@ -283,7 +265,6 @@ static int ingress_init(struct Qdisc *sch,struct rtattr *opt) return 0; } static void ingress_reset(struct Qdisc *sch) { struct ingress_qdisc_data *p = PRIV(sch); Loading @@ -300,9 +281,6 @@ static void ingress_reset(struct Qdisc *sch) */ } /* ------------------------------------------------------------- */ /* ------------------------------------------------------------- */ static void ingress_destroy(struct Qdisc *sch) Loading @@ -317,7 +295,6 @@ static void ingress_destroy(struct Qdisc *sch) #endif } static int ingress_dump(struct Qdisc *sch, struct sk_buff *skb) { unsigned char *b = skb_tail_pointer(skb); Loading @@ -339,16 +316,13 @@ static const struct Qdisc_class_ops ingress_class_ops = { .get = ingress_get, .put = ingress_put, .change = ingress_change, .delete = NULL, .walk = ingress_walk, .tcf_chain = ingress_find_tcf, .bind_tcf = ingress_bind_filter, .unbind_tcf = ingress_put, .dump = NULL, }; static struct Qdisc_ops ingress_qdisc_ops __read_mostly = { .next = NULL, .cl_ops = &ingress_class_ops, .id = "ingress", .priv_size = sizeof(struct ingress_qdisc_data), Loading @@ -359,7 +333,6 @@ static struct Qdisc_ops ingress_qdisc_ops __read_mostly = { .init = ingress_init, .reset = ingress_reset, .destroy = ingress_destroy, .change = NULL, .dump = ingress_dump, .owner = THIS_MODULE, }; Loading @@ -375,6 +348,7 @@ static int __init ingress_module_init(void) return ret; } static void __exit ingress_module_exit(void) { unregister_qdisc(&ingress_qdisc_ops); Loading @@ -385,6 +359,7 @@ static void __exit ingress_module_exit(void) #endif #endif } module_init(ingress_module_init) module_exit(ingress_module_exit) MODULE_LICENSE("GPL"); Loading
net/sched/sch_ingress.c +39 −64 Original line number Diff line number Diff line Loading @@ -33,12 +33,9 @@ #define D2PRINTK(format, args...) #endif #define PRIV(sch) qdisc_priv(sch) /* Thanks to Doron Oz for this hack */ /* Thanks to Doron Oz for this hack */ #ifndef CONFIG_NET_CLS_ACT #ifdef CONFIG_NETFILTER static int nf_registered; Loading @@ -50,10 +47,8 @@ struct ingress_qdisc_data { struct tcf_proto *filter_list; }; /* ------------------------- Class/flow operations ------------------------- */ static int ingress_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, struct Qdisc **old) { Loading @@ -67,35 +62,31 @@ static int ingress_graft(struct Qdisc *sch,unsigned long arg, return 1; } static struct Qdisc *ingress_leaf(struct Qdisc *sch, unsigned long arg) { return NULL; } static unsigned long ingress_get(struct Qdisc *sch, u32 classid) { #ifdef DEBUG_INGRESS struct ingress_qdisc_data *p = PRIV(sch); #endif DPRINTK("ingress_get(sch %p,[qdisc %p],classid %x)\n", sch, p, classid); DPRINTK("ingress_get(sch %p,[qdisc %p],classid %x)\n", sch, p, classid); return TC_H_MIN(classid) + 1; } static unsigned long ingress_bind_filter(struct Qdisc *sch, unsigned long parent, u32 classid) { return ingress_get(sch, classid); } static void ingress_put(struct Qdisc *sch, unsigned long cl) { } static int ingress_change(struct Qdisc *sch, u32 classid, u32 parent, struct rtattr **tca, unsigned long *arg) { Loading @@ -108,8 +99,6 @@ static int ingress_change(struct Qdisc *sch, u32 classid, u32 parent, return 0; } static void ingress_walk(struct Qdisc *sch, struct qdisc_walker *walker) { #ifdef DEBUG_INGRESS Loading @@ -119,7 +108,6 @@ static void ingress_walk(struct Qdisc *sch,struct qdisc_walker *walker) DPRINTK("No effect. sch_ingress doesn't maintain classes at the moment"); } static struct tcf_proto **ingress_find_tcf(struct Qdisc *sch, unsigned long cl) { struct ingress_qdisc_data *p = PRIV(sch); Loading @@ -127,10 +115,8 @@ static struct tcf_proto **ingress_find_tcf(struct Qdisc *sch,unsigned long cl) return &p->filter_list; } /* --------------------------- Qdisc operations ---------------------------- */ static int ingress_enqueue(struct sk_buff *skb, struct Qdisc *sch) { struct ingress_qdisc_data *p = PRIV(sch); Loading Loading @@ -173,7 +159,6 @@ static int ingress_enqueue(struct sk_buff *skb,struct Qdisc *sch) return result; } static struct sk_buff *ingress_dequeue(struct Qdisc *sch) { /* Loading @@ -183,7 +168,6 @@ static struct sk_buff *ingress_dequeue(struct Qdisc *sch) return NULL; } static int ingress_requeue(struct sk_buff *skb, struct Qdisc *sch) { /* Loading @@ -204,8 +188,7 @@ static unsigned int ingress_drop(struct Qdisc *sch) #ifndef CONFIG_NET_CLS_ACT #ifdef CONFIG_NETFILTER static unsigned int ing_hook(unsigned int hook, struct sk_buff *skb, static unsigned int ing_hook(unsigned int hook, struct sk_buff *skb, const struct net_device *indev, const struct net_device *outdev, int (*okfn)(struct sk_buff *)) Loading Loading @@ -247,7 +230,6 @@ static struct nf_hook_ops ing_ops[] __read_mostly = { .priority = NF_IP6_PRI_FILTER + 1, }, }; #endif #endif Loading Loading @@ -283,7 +265,6 @@ static int ingress_init(struct Qdisc *sch,struct rtattr *opt) return 0; } static void ingress_reset(struct Qdisc *sch) { struct ingress_qdisc_data *p = PRIV(sch); Loading @@ -300,9 +281,6 @@ static void ingress_reset(struct Qdisc *sch) */ } /* ------------------------------------------------------------- */ /* ------------------------------------------------------------- */ static void ingress_destroy(struct Qdisc *sch) Loading @@ -317,7 +295,6 @@ static void ingress_destroy(struct Qdisc *sch) #endif } static int ingress_dump(struct Qdisc *sch, struct sk_buff *skb) { unsigned char *b = skb_tail_pointer(skb); Loading @@ -339,16 +316,13 @@ static const struct Qdisc_class_ops ingress_class_ops = { .get = ingress_get, .put = ingress_put, .change = ingress_change, .delete = NULL, .walk = ingress_walk, .tcf_chain = ingress_find_tcf, .bind_tcf = ingress_bind_filter, .unbind_tcf = ingress_put, .dump = NULL, }; static struct Qdisc_ops ingress_qdisc_ops __read_mostly = { .next = NULL, .cl_ops = &ingress_class_ops, .id = "ingress", .priv_size = sizeof(struct ingress_qdisc_data), Loading @@ -359,7 +333,6 @@ static struct Qdisc_ops ingress_qdisc_ops __read_mostly = { .init = ingress_init, .reset = ingress_reset, .destroy = ingress_destroy, .change = NULL, .dump = ingress_dump, .owner = THIS_MODULE, }; Loading @@ -375,6 +348,7 @@ static int __init ingress_module_init(void) return ret; } static void __exit ingress_module_exit(void) { unregister_qdisc(&ingress_qdisc_ops); Loading @@ -385,6 +359,7 @@ static void __exit ingress_module_exit(void) #endif #endif } module_init(ingress_module_init) module_exit(ingress_module_exit) MODULE_LICENSE("GPL");