/* * net/sched/act_meta_prio.c IFE skb->priority metadata module * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * * copyright Jamal Hadi Salim (2015) * */ #include #include #include #include #include #include #include #include #include #include #include #include static int skbprio_check(struct sk_buff *skb, struct tcf_meta_info *e) { return ife_check_meta_u32(skb->priority, e); } static int skbprio_encode(struct sk_buff *skb, void *skbdata, struct tcf_meta_info *e) { u32 ifeprio = skb->priority; /* avoid having to cast skb->priority*/ return ife_encode_meta_u32(ifeprio, skbdata, e); } static int skbprio_decode(struct sk_buff *skb, void *data, u16 len) { u32 ifeprio = *(u32 *)data; skb->priority = ntohl(ifeprio); return 0; } static struct tcf_meta_ops ife_prio_ops = { .metaid = IFE_META_PRIO, .metatype = NLA_U32, .name = "skbprio", .synopsis = "skb prio metadata", .check_presence = skbprio_check, .encode = skbprio_encode, .decode = skbprio_decode, .get = ife_get_meta_u32, .alloc = ife_alloc_meta_u32, .owner = THIS_MODULE, }; static int __init ifeprio_init_module(void) { return register_ife_op(&ife_prio_ops); } static void __exit ifeprio_cleanup_module(void) { unregister_ife_op(&ife_prio_ops); } module_init(ifeprio_init_module); module_exit(ifeprio_cleanup_module); MODULE_AUTHOR("Jamal Hadi Salim(2015)"); MODULE_DESCRIPTION("Inter-FE skb prio metadata action"); MODULE_LICENSE("GPL"); MODULE_ALIAS_IFE_META(IFE_META_PRIO); b0bac7666452d8219d7e7c477'>treecommitdiff
diff options
context:
space:
mode:
authorFeng <fgao@ikuai8.com>2017-01-20 21:40:43 +0800
committerPablo Neira Ayuso <pablo@netfilter.org>2017-02-02 14:30:19 +0100
commit10435c1192d06bdb0bac7666452d8219d7e7c477 (patch)
tree93b76419142fe17b1d162d062c663297a3e8a965 /include/target/target_core_fabric.h
parent1a28ad74ebd8f9d3c7eae0d781f72a6d30545e17 (diff)
netfilter: nf_tables: Eliminate duplicated code in nf_tables_table_enable()
If something fails in nf_tables_table_enable(), it unregisters the chains. But the rollback code is the same as nf_tables_table_disable() almostly, except there is one counter check. Now create one wrapper function to eliminate the duplicated codes. Signed-off-by: Feng <fgao@ikuai8.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/target/target_core_fabric.h')