Commit 16577923 authored by Shmulik Ladkani's avatar Shmulik Ladkani Committed by David S. Miller

net/sched: act_mirred: Rename tcfm_ok_push to tcfm_mac_header_xmit and make it a bool

'tcfm_ok_push' specifies whether a mac_len sized push is needed upon
egress to the target device (if action is performed at ingress).

Rename it to 'tcfm_mac_header_xmit' as this is actually an attribute of
the target device (and use a bool instead of int).

This allows to decouple the attribute from the action to be taken.
Signed-off-by: default avatarShmulik Ladkani <shmulik.ladkani@gmail.com>
Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4f58e6dc
...@@ -8,7 +8,7 @@ struct tcf_mirred { ...@@ -8,7 +8,7 @@ struct tcf_mirred {
struct tc_action common; struct tc_action common;
int tcfm_eaction; int tcfm_eaction;
int tcfm_ifindex; int tcfm_ifindex;
int tcfm_ok_push; bool tcfm_mac_header_xmit;
struct net_device __rcu *tcfm_dev; struct net_device __rcu *tcfm_dev;
struct list_head tcfm_list; struct list_head tcfm_list;
}; };
......
...@@ -60,11 +60,12 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla, ...@@ -60,11 +60,12 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla,
{ {
struct tc_action_net *tn = net_generic(net, mirred_net_id); struct tc_action_net *tn = net_generic(net, mirred_net_id);
struct nlattr *tb[TCA_MIRRED_MAX + 1]; struct nlattr *tb[TCA_MIRRED_MAX + 1];
bool mac_header_xmit = false;
struct tc_mirred *parm; struct tc_mirred *parm;
struct tcf_mirred *m; struct tcf_mirred *m;
struct net_device *dev; struct net_device *dev;
int ret, ok_push = 0;
bool exists = false; bool exists = false;
int ret;
if (nla == NULL) if (nla == NULL)
return -EINVAL; return -EINVAL;
...@@ -102,10 +103,10 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla, ...@@ -102,10 +103,10 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla,
case ARPHRD_IPGRE: case ARPHRD_IPGRE:
case ARPHRD_VOID: case ARPHRD_VOID:
case ARPHRD_NONE: case ARPHRD_NONE:
ok_push = 0; mac_header_xmit = false;
break; break;
default: default:
ok_push = 1; mac_header_xmit = true;
break; break;
} }
} else { } else {
...@@ -136,7 +137,7 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla, ...@@ -136,7 +137,7 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla,
dev_put(rcu_dereference_protected(m->tcfm_dev, 1)); dev_put(rcu_dereference_protected(m->tcfm_dev, 1));
dev_hold(dev); dev_hold(dev);
rcu_assign_pointer(m->tcfm_dev, dev); rcu_assign_pointer(m->tcfm_dev, dev);
m->tcfm_ok_push = ok_push; m->tcfm_mac_header_xmit = mac_header_xmit;
} }
if (ret == ACT_P_CREATED) { if (ret == ACT_P_CREATED) {
...@@ -181,7 +182,7 @@ static int tcf_mirred(struct sk_buff *skb, const struct tc_action *a, ...@@ -181,7 +182,7 @@ static int tcf_mirred(struct sk_buff *skb, const struct tc_action *a,
goto out; goto out;
if (!(at & AT_EGRESS)) { if (!(at & AT_EGRESS)) {
if (m->tcfm_ok_push) if (m->tcfm_mac_header_xmit)
skb_push_rcsum(skb2, skb->mac_len); skb_push_rcsum(skb2, skb->mac_len);
} }
......
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