SHARED_ACTION_CREATE_ID,
SHARED_ACTION_INGRESS,
SHARED_ACTION_EGRESS,
+ SHARED_ACTION_TRANSFER,
SHARED_ACTION_SPEC,
/* Shared action destroy arguments */
SHARED_ACTION_CREATE_ID,
SHARED_ACTION_INGRESS,
SHARED_ACTION_EGRESS,
+ SHARED_ACTION_TRANSFER,
SHARED_ACTION_SPEC,
ZERO,
};
.next = NEXT(next_sa_create_attr),
.call = parse_sa,
},
+ [SHARED_ACTION_TRANSFER] = {
+ .name = "transfer",
+ .help = "affect rule to transfer",
+ .next = NEXT(next_sa_create_attr),
+ .call = parse_sa,
+ },
[SHARED_ACTION_SPEC] = {
.name = "action",
.help = "specify action to share",
case SHARED_ACTION_INGRESS:
out->args.vc.attr.ingress = 1;
return len;
+ case SHARED_ACTION_TRANSFER:
+ out->args.vc.attr.transfer = 1;
+ return len;
default:
return -1;
}
&((const struct rte_flow_shared_action_conf) {
.ingress = in->args.vc.attr.ingress,
.egress = in->args.vc.attr.egress,
+ .transfer = in->args.vc.attr.transfer,
}),
in->args.vc.actions);
break;
shared action ID. It is bound to ``rte_flow_shared_action_create()``::
flow shared_action {port_id} create [action_id {shared_action_id}]
- [ingress] [egress] action {action} / end
+ [ingress] [egress] [transfer] action {action} / end
If successful, it will show::