Commit 40bd094d authored by Baowen Zheng's avatar Baowen Zheng Committed by David S. Miller

flow_offload: fill flags to action structure

Fill flags to action structure to allow user control if
the action should be offloaded to hardware or not.
Signed-off-by: default avatarBaowen Zheng <baowen.zheng@corigine.com>
Signed-off-by: default avatarLouis Peens <louis.peens@corigine.com>
Signed-off-by: default avatarSimon Horman <simon.horman@corigine.com>
Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f85b244e
...@@ -305,7 +305,7 @@ static int tcf_bpf_init(struct net *net, struct nlattr *nla, ...@@ -305,7 +305,7 @@ static int tcf_bpf_init(struct net *net, struct nlattr *nla,
ret = tcf_idr_check_alloc(tn, &index, act, bind); ret = tcf_idr_check_alloc(tn, &index, act, bind);
if (!ret) { if (!ret) {
ret = tcf_idr_create(tn, index, est, act, ret = tcf_idr_create(tn, index, est, act,
&act_bpf_ops, bind, true, 0); &act_bpf_ops, bind, true, flags);
if (ret < 0) { if (ret < 0) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -124,7 +124,7 @@ static int tcf_connmark_init(struct net *net, struct nlattr *nla, ...@@ -124,7 +124,7 @@ static int tcf_connmark_init(struct net *net, struct nlattr *nla,
ret = tcf_idr_check_alloc(tn, &index, a, bind); ret = tcf_idr_check_alloc(tn, &index, a, bind);
if (!ret) { if (!ret) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_connmark_ops, bind, false, 0); &act_connmark_ops, bind, false, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -212,7 +212,7 @@ static int tcf_ctinfo_init(struct net *net, struct nlattr *nla, ...@@ -212,7 +212,7 @@ static int tcf_ctinfo_init(struct net *net, struct nlattr *nla,
err = tcf_idr_check_alloc(tn, &index, a, bind); err = tcf_idr_check_alloc(tn, &index, a, bind);
if (!err) { if (!err) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_ctinfo_ops, bind, false, 0); &act_ctinfo_ops, bind, false, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -357,7 +357,7 @@ static int tcf_gate_init(struct net *net, struct nlattr *nla, ...@@ -357,7 +357,7 @@ static int tcf_gate_init(struct net *net, struct nlattr *nla,
if (!err) { if (!err) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_gate_ops, bind, false, 0); &act_gate_ops, bind, false, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -553,7 +553,7 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla, ...@@ -553,7 +553,7 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, est, a, &act_ife_ops, ret = tcf_idr_create(tn, index, est, a, &act_ife_ops,
bind, true, 0); bind, true, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
kfree(p); kfree(p);
......
...@@ -145,7 +145,7 @@ static int __tcf_ipt_init(struct net *net, unsigned int id, struct nlattr *nla, ...@@ -145,7 +145,7 @@ static int __tcf_ipt_init(struct net *net, unsigned int id, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, est, a, ops, bind, ret = tcf_idr_create(tn, index, est, a, ops, bind,
false, 0); false, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -248,7 +248,7 @@ static int tcf_mpls_init(struct net *net, struct nlattr *nla, ...@@ -248,7 +248,7 @@ static int tcf_mpls_init(struct net *net, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_mpls_ops, bind, true, 0); &act_mpls_ops, bind, true, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -61,7 +61,7 @@ static int tcf_nat_init(struct net *net, struct nlattr *nla, struct nlattr *est, ...@@ -61,7 +61,7 @@ static int tcf_nat_init(struct net *net, struct nlattr *nla, struct nlattr *est,
err = tcf_idr_check_alloc(tn, &index, a, bind); err = tcf_idr_check_alloc(tn, &index, a, bind);
if (!err) { if (!err) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_nat_ops, bind, false, 0); &act_nat_ops, bind, false, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -189,7 +189,7 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla, ...@@ -189,7 +189,7 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla,
err = tcf_idr_check_alloc(tn, &index, a, bind); err = tcf_idr_check_alloc(tn, &index, a, bind);
if (!err) { if (!err) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_pedit_ops, bind, false, 0); &act_pedit_ops, bind, false, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
goto out_free; goto out_free;
......
...@@ -90,7 +90,7 @@ static int tcf_police_init(struct net *net, struct nlattr *nla, ...@@ -90,7 +90,7 @@ static int tcf_police_init(struct net *net, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, NULL, a, ret = tcf_idr_create(tn, index, NULL, a,
&act_police_ops, bind, true, 0); &act_police_ops, bind, true, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -70,7 +70,7 @@ static int tcf_sample_init(struct net *net, struct nlattr *nla, ...@@ -70,7 +70,7 @@ static int tcf_sample_init(struct net *net, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_sample_ops, bind, true, 0); &act_sample_ops, bind, true, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -129,7 +129,7 @@ static int tcf_simp_init(struct net *net, struct nlattr *nla, ...@@ -129,7 +129,7 @@ static int tcf_simp_init(struct net *net, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_simp_ops, bind, false, 0); &act_simp_ops, bind, false, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -176,7 +176,7 @@ static int tcf_skbedit_init(struct net *net, struct nlattr *nla, ...@@ -176,7 +176,7 @@ static int tcf_skbedit_init(struct net *net, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_skbedit_ops, bind, true, 0); &act_skbedit_ops, bind, true, act_flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
...@@ -168,7 +168,7 @@ static int tcf_skbmod_init(struct net *net, struct nlattr *nla, ...@@ -168,7 +168,7 @@ static int tcf_skbmod_init(struct net *net, struct nlattr *nla,
if (!exists) { if (!exists) {
ret = tcf_idr_create(tn, index, est, a, ret = tcf_idr_create(tn, index, est, a,
&act_skbmod_ops, bind, true, 0); &act_skbmod_ops, bind, true, flags);
if (ret) { if (ret) {
tcf_idr_cleanup(tn, index); tcf_idr_cleanup(tn, index);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment