Lines Matching refs:actions

68 			       struct bnxt_tc_actions *actions,
78 actions->flags |= BNXT_TC_ACTION_FLAG_FWD;
79 actions->dst_dev = dev;
84 struct bnxt_tc_actions *actions,
89 actions->flags |= BNXT_TC_ACTION_FLAG_POP_VLAN;
92 actions->flags |= BNXT_TC_ACTION_FLAG_PUSH_VLAN;
93 actions->push_vlan_tci = htons(act->vlan.vid);
94 actions->push_vlan_tpid = act->vlan.proto;
103 struct bnxt_tc_actions *actions,
114 actions->tun_encap_key = *tun_key;
115 actions->flags |= BNXT_TC_ACTION_FLAG_TUNNEL_ENCAP;
152 bnxt_fill_l2_rewrite_fields(struct bnxt_tc_actions *actions,
167 actions->l2_rewrite_dmac[j] = cpu_to_be16(*(p + j));
176 actions->l2_rewrite_smac[j] = cpu_to_be16(*(p + j));
183 bnxt_tc_parse_pedit(struct bnxt *bp, struct bnxt_tc_actions *actions,
205 actions->flags |= BNXT_TC_ACTION_FLAG_L2_REWRITE;
211 actions->flags |= BNXT_TC_ACTION_FLAG_NAT_XLATE;
212 actions->nat.l3_is_ipv4 = true;
214 actions->nat.src_xlate = true;
215 actions->nat.l3.ipv4.saddr.s_addr = htonl(val);
217 actions->nat.src_xlate = false;
218 actions->nat.l3.ipv4.daddr.s_addr = htonl(val);
227 actions->nat.src_xlate, &actions->nat.l3.ipv4.saddr,
228 &actions->nat.l3.ipv4.daddr);
232 actions->flags |= BNXT_TC_ACTION_FLAG_NAT_XLATE;
233 actions->nat.l3_is_ipv4 = false;
239 actions->nat.src_xlate = true;
242 actions->nat.l3.ipv6.saddr.s6_addr32[idx] = htonl(val);
245 actions->nat.src_xlate = false;
247 actions->nat.l3.ipv6.saddr.s6_addr32[idx] = htonl(val);
260 if (!(actions->flags & BNXT_TC_ACTION_FLAG_NAT_XLATE)) {
265 if (actions->nat.src_xlate)
266 actions->nat.l4.ports.sport = htons(val);
268 actions->nat.l4.ports.dport = htons(val);
269 netdev_dbg(bp->dev, "actions->nat.sport = %d dport = %d\n",
270 actions->nat.l4.ports.sport,
271 actions->nat.l4.ports.dport);
282 struct bnxt_tc_actions *actions,
300 netdev_info(bp->dev, "no actions\n");
310 actions->flags |= BNXT_TC_ACTION_FLAG_DROP;
311 return 0; /* don't bother with other actions */
313 rc = bnxt_tc_parse_redir(bp, actions, act);
320 rc = bnxt_tc_parse_vlan(bp, actions, act);
325 rc = bnxt_tc_parse_tunnel_set(bp, actions, act);
330 actions->flags |= BNXT_TC_ACTION_FLAG_TUNNEL_DECAP;
334 rc = bnxt_tc_parse_pedit(bp, actions, act, i,
345 if (actions->flags & BNXT_TC_ACTION_FLAG_L2_REWRITE) {
346 rc = bnxt_fill_l2_rewrite_fields(actions, eth_addr,
352 if (actions->flags & BNXT_TC_ACTION_FLAG_FWD) {
353 if (actions->flags & BNXT_TC_ACTION_FLAG_TUNNEL_ENCAP) {
355 actions->dst_fid = bp->pf.fw_fid;
358 actions->dst_fid =
359 bnxt_flow_get_dst_fid(bp, actions->dst_dev);
360 if (actions->dst_fid == BNXT_FID_INVALID)
499 return bnxt_tc_parse_actions(bp, &flow->actions, &rule->action,
590 struct bnxt_tc_actions *actions = &flow->actions;
605 if (actions->flags & BNXT_TC_ACTION_FLAG_L2_REWRITE) {
606 memcpy(req->l2_rewrite_dmac, actions->l2_rewrite_dmac,
608 memcpy(req->l2_rewrite_smac, actions->l2_rewrite_smac,
614 if (actions->flags & BNXT_TC_ACTION_FLAG_NAT_XLATE) {
615 if (actions->nat.l3_is_ipv4) {
619 if (actions->nat.src_xlate) {
624 actions->nat.l3.ipv4.saddr.s_addr;
626 if (actions->nat.l4.ports.sport)
628 actions->nat.l4.ports.sport;
634 actions->nat.l3.ipv4.daddr.s_addr;
636 if (actions->nat.l4.ports.dport)
638 actions->nat.l4.ports.dport;
642 req->nat_ip_address, actions->nat.src_xlate,
645 if (actions->nat.src_xlate) {
650 actions->nat.l3.ipv6.saddr.s6_addr32,
653 if (actions->nat.l4.ports.sport)
655 actions->nat.l4.ports.sport;
661 actions->nat.l3.ipv6.daddr.s6_addr32,
664 if (actions->nat.l4.ports.dport)
666 actions->nat.l4.ports.dport;
670 req->nat_ip_address, actions->nat.src_xlate,
675 if (actions->flags & BNXT_TC_ACTION_FLAG_TUNNEL_DECAP ||
676 actions->flags & BNXT_TC_ACTION_FLAG_TUNNEL_ENCAP) {
741 if (actions->flags & BNXT_TC_ACTION_FLAG_DROP) {
744 if (actions->flags & BNXT_TC_ACTION_FLAG_FWD) {
746 req->dst_fid = cpu_to_le16(actions->dst_fid);
748 if (actions->flags & BNXT_TC_ACTION_FLAG_PUSH_VLAN) {
751 req->l2_rewrite_vlan_tpid = actions->push_vlan_tpid;
752 req->l2_rewrite_vlan_tci = actions->push_vlan_tci;
756 if (actions->flags & BNXT_TC_ACTION_FLAG_POP_VLAN) {
1402 struct ip_tunnel_key *encap_key = &flow->actions.tun_encap_key;
1446 if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_DECAP)
1448 else if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_ENCAP)
1457 if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_DECAP)
1460 else if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_ENCAP)
1504 if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_DECAP)