DPDK RTE flow helper functions TAPI
Overview
RTE flow helper functions TAPI
Copyright (C) 2019-2022 OKTET Labs Ltd. More…
// global functions void tapi_rte_flow_add_ndn_action_queue(asn_value* ndn_actions, int action_index, uint16_t queue); void tapi_rte_flow_add_ndn_action_drop(asn_value* ndn_actions, int action_index); void tapi_rte_flow_add_ndn_action_count(asn_value* ndn_actions, int action_index, uint32_t counter_id); void tapi_rte_flow_add_ndn_action_encap(asn_value* ndn_actions, int action_index, tarpc_rte_eth_tunnel_type type, const asn_value* encap_hdr); void tapi_rte_flow_add_ndn_action_decap(asn_value* ndn_actions, int action_index, tarpc_rte_eth_tunnel_type type); void tapi_rte_flow_add_ndn_action_of_pop_vlan(asn_value* ndn_actions, int action_index); void tapi_rte_flow_add_ndn_action_of_push_vlan(asn_value* ndn_actions, int action_index, uint16_t ethertype); void tapi_rte_flow_add_ndn_action_of_set_vlan_vid(asn_value* ndn_actions, int action_index, uint16_t vlan_vid); void tapi_rte_flow_add_ndn_action_port(ndn_rte_flow_action_type_t type, uint32_t ethdev_port_id, asn_value* actions, int entry_idx); void tapi_rte_flow_add_ndn_action_jump(asn_value* ndn_actions, int action_index, uint32_t group); void tapi_rte_flow_add_ndn_action_dec_ttl(asn_value* ndn_actions, int action_index); void tapi_rte_flow_add_ndn_item_port(ndn_rte_flow_item_type_t type, uint32_t ethdev_port_id, asn_value* items, int entry_idx); rpc_rte_flow_p tapi_rte_flow_validate_and_create_rule(rcf_rpc_server* rpcs, uint16_t port_id, rpc_rte_flow_attr_p attr, rpc_rte_flow_item_p pattern, rpc_rte_flow_action_p actions); void tapi_rte_flow_make_attr(rcf_rpc_server* rpcs, uint32_t group, uint32_t priority, bool ingress, bool egress, bool transfer, rpc_rte_flow_attr_p* attr); void tapi_rte_flow_isolate(rcf_rpc_server* rpcs, uint16_t port_id, int set);
Detailed Documentation
RTE flow helper functions TAPI
Copyright (C) 2019-2022 OKTET Labs Ltd. All rights reserved.
Global Functions
void tapi_rte_flow_add_ndn_action_queue(asn_value* ndn_actions, int action_index, uint16_t queue)
Add a QUEUE action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
queue |
Queue index of the action |
void tapi_rte_flow_add_ndn_action_drop(asn_value* ndn_actions, int action_index)
Add a DROP action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
void tapi_rte_flow_add_ndn_action_count(asn_value* ndn_actions, int action_index, uint32_t counter_id)
Add a COUNT action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
counter_id |
Counter index |
void tapi_rte_flow_add_ndn_action_encap(asn_value* ndn_actions, int action_index, tarpc_rte_eth_tunnel_type type, const asn_value* encap_hdr)
Add a encap action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
type |
Type of the encapsulation |
encap_hdr |
Flow rule pattern that is used as a encapsulated packet’s header definition |
void tapi_rte_flow_add_ndn_action_decap(asn_value* ndn_actions, int action_index, tarpc_rte_eth_tunnel_type type)
Add a decap action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
type |
Type of the encapsulation |
void tapi_rte_flow_add_ndn_action_of_pop_vlan(asn_value* ndn_actions, int action_index)
Add a pop VLAN action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
void tapi_rte_flow_add_ndn_action_of_push_vlan(asn_value* ndn_actions, int action_index, uint16_t ethertype)
Add a push vlan action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
ethertype |
VLAN EtherType |
void tapi_rte_flow_add_ndn_action_of_set_vlan_vid(asn_value* ndn_actions, int action_index, uint16_t vlan_vid)
Add a set vlan vid action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
vlan_vid |
VLAN ID |
void tapi_rte_flow_add_ndn_action_port(ndn_rte_flow_action_type_t type, uint32_t ethdev_port_id, asn_value* actions, int entry_idx)
Add an action of type PORT_REPRESENTOR / REPRESENTED_PORT to the action list.
Parameters:
type |
The action type |
ethdev_port_id |
The representor’s ethdev port ID |
actions |
The list of actions |
entry_idx |
The entry index |
void tapi_rte_flow_add_ndn_action_jump(asn_value* ndn_actions, int action_index, uint32_t group)
Add a JUMP action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
group |
Group to redirect packets to |
void tapi_rte_flow_add_ndn_action_dec_ttl(asn_value* ndn_actions, int action_index)
Add a TTL decrease action to an action list at specified index.
Parameters:
ndn_actions |
Action list |
action_index |
Index at which the action is put to list |
void tapi_rte_flow_add_ndn_item_port(ndn_rte_flow_item_type_t type, uint32_t ethdev_port_id, asn_value* items, int entry_idx)
Add an item of type PORT_REPRESENTOR / REPRESENTED_PORT to the item list.
Parameters:
type |
The item type |
ethdev_port_id |
The representor’s ethdev port ID |
items |
The list of items |
entry_idx |
The entry index |
rpc_rte_flow_p tapi_rte_flow_validate_and_create_rule(rcf_rpc_server* rpcs, uint16_t port_id, rpc_rte_flow_attr_p attr, rpc_rte_flow_item_p pattern, rpc_rte_flow_action_p actions)
Convert an ASN value representing a flow rule pattern into RTE flow rule pattern and a template that matches the pattern.
Parameters:
rpcs |
RPC server handle |
port_id |
The port identifier of the device |
attr |
RTE flow attr pointer |
pattern |
RTE flow item pointer to the array of items |
actions |
RTE flow action pointer to the array of actions |
Returns:
RTE flow pointer on success; jumps out on failure
void tapi_rte_flow_make_attr(rcf_rpc_server* rpcs, uint32_t group, uint32_t priority, bool ingress, bool egress, bool transfer, rpc_rte_flow_attr_p* attr)
Make RTE flow rule attributes
Parameters:
rpcs |
RPC server handle |
group |
Rule priority group |
priority |
Rule priority level within group |
ingress |
Rule applies to ingress traffic |
egress |
Rule applies to egress traffic |
transfer |
Transfer the rule to the lowest possible level of any device endpoints found in the pattern |
attr |
RTE flow attr pointer |
TEST_FAIL |
void tapi_rte_flow_isolate(rcf_rpc_server* rpcs, uint16_t port_id, int set)
Isolate RTE flow
Parameters:
rpcs |
RPC server handle |
port_id |
The port identifier of the device |
set |
Nonzero to enter isolated mode, leave it otherwise |
TEST_FAIL |