OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 126... | Line 126... | |||
126 | __NFTA_FLOWTABLE_MAX |
126 | __NFTA_FLOWTABLE_MAX |
|
127 | }; |
127 | }; |
|
128 | #define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1) |
128 | #define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1) |
|
129 | --- a/net/netfilter/Kconfig |
129 | --- a/net/netfilter/Kconfig |
|
130 | +++ b/net/netfilter/Kconfig |
130 | +++ b/net/netfilter/Kconfig |
|
131 | @@ -692,6 +692,15 @@ config NF_FLOW_TABLE |
131 | @@ -686,6 +686,15 @@ config NF_FLOW_TABLE |
|
Line 132... | Line 132... | |||
132 | |
132 | |
|
Line 133... | Line 133... | |||
133 | To compile it as a module, choose M here. |
133 | To compile it as a module, choose M here. |
|
134 | |
134 | |
|
Line 504... | Line 504... | |||
504 | +MODULE_LICENSE("GPL"); |
504 | +MODULE_LICENSE("GPL"); |
|
505 | +MODULE_AUTHOR("Pablo Neira Ayuso <pablo@netfilter.org>"); |
505 | +MODULE_AUTHOR("Pablo Neira Ayuso <pablo@netfilter.org>"); |
|
506 | +MODULE_ALIAS("nf-flow-table-hw"); |
506 | +MODULE_ALIAS("nf-flow-table-hw"); |
|
507 | --- a/net/netfilter/nf_tables_api.c |
507 | --- a/net/netfilter/nf_tables_api.c |
|
508 | +++ b/net/netfilter/nf_tables_api.c |
508 | +++ b/net/netfilter/nf_tables_api.c |
|
509 | @@ -4928,6 +4928,14 @@ static int nf_tables_flowtable_parse_hoo |
509 | @@ -4917,6 +4917,14 @@ static int nf_tables_flowtable_parse_hoo |
|
510 | if (err < 0) |
510 | if (err < 0) |
|
511 | goto err1; |
511 | goto err1; |
|
Line 512... | Line 512... | |||
512 | |
512 | |
|
513 | + for (i = 0; i < n; i++) { |
513 | + for (i = 0; i < n; i++) { |
|
Line 519... | Line 519... | |||
519 | + } |
519 | + } |
|
520 | + |
520 | + |
|
521 | ops = kzalloc(sizeof(struct nf_hook_ops) * n, GFP_KERNEL); |
521 | ops = kzalloc(sizeof(struct nf_hook_ops) * n, GFP_KERNEL); |
|
522 | if (!ops) { |
522 | if (!ops) { |
|
523 | err = -ENOMEM; |
523 | err = -ENOMEM; |
|
524 | @@ -5058,10 +5066,19 @@ static int nf_tables_newflowtable(struct |
524 | @@ -5047,10 +5055,19 @@ static int nf_tables_newflowtable(struct |
|
525 | } |
525 | } |
|
Line 526... | Line 526... | |||
526 | |
526 | |
|
527 | flowtable->data.type = type; |
527 | flowtable->data.type = type; |
|
528 | + write_pnet(&flowtable->data.ft_net, net); |
528 | + write_pnet(&flowtable->data.ft_net, net); |
|
Line 539... | Line 539... | |||
539 | + } |
539 | + } |
|
540 | + |
540 | + |
|
541 | err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK], |
541 | err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK], |
|
542 | flowtable); |
542 | flowtable); |
|
543 | if (err < 0) |
543 | if (err < 0) |
|
544 | @@ -5159,7 +5176,8 @@ static int nf_tables_fill_flowtable_info |
544 | @@ -5148,7 +5165,8 @@ static int nf_tables_fill_flowtable_info |
|
545 | nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) || |
545 | nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) || |
|
546 | nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) || |
546 | nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) || |
|
547 | nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle), |
547 | nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle), |
|
548 | - NFTA_FLOWTABLE_PAD)) |
548 | - NFTA_FLOWTABLE_PAD)) |
|
549 | + NFTA_FLOWTABLE_PAD) || |
549 | + NFTA_FLOWTABLE_PAD) || |