mlx5dv_create_flow_action_packet_reformat(3) mlx5dv_create_flow_action_packet_reformat(3)

mlx5dv_create_flow_action_packet_reformat - Flow action reformat packet for mlx5 provider

#include <infiniband/mlx5dv.h>
struct ibv_flow_action *
mlx5dv_create_flow_action_packet_reformat(struct ibv_context *ctx,

size_t data_sz,
void *data,
enum mlx5dv_flow_action_packet_reformat_type reformat_type,
enum mlx5dv_flow_table_type ft_type)

Create a packet reformat flow steering action. It allows adding/removing packet headers.

RDMA device context to create the action on.
The size of *data* buffer.
A buffer which contains headers in case the actions requires them.
The reformat type to be create. Use enum mlx5dv_flow_action_packet_reformat_type.

MLX5DV_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TUNNEL_TO_L2: Decap a generic L2 tunneled packet up to inner L2.

MLX5DV_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L2_TUNNEL: Generic encap, data should contain the encapsulating headers.

MLX5DV_FLOW_ACTION_PACKET_REFORMAT_TYPE_L3_TUNNEL_TO_L2: Will do decap where the inner packet starts from L3. data should be MAC or MAC + vlan (14 or 18 bytes) to be appended to the packet after the decap action.

MLX5DV_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL: Will do encap where is L2 of the original packet will not be included. data should be the encapsulating header.

It defines the flow table type to which the packet reformat action
will be attached.

Upon success mlx5dv_create_flow_action_packet_reformat will return a new struct ibv_flow_action object, on error NULL will be returned and errno will be set.

ibv_create_flow(3), ibv_create_flow_action(3)