Scroll to navigation

mlx5dv_create_steering_anchor / mlx5dv_destroy_steering_anchor(3) mlx5dv_create_steering_anchor / mlx5dv_destroy_steering_anchor(3)


mlx5dv_create_steering_anchor - Creates a steering anchor

mlx5dv_destroy_steering_anchor - Destroys a steering anchor


#include <infiniband/mlx5dv.h>
struct mlx5dv_steering_anchor *
mlx5dv_create_steering_anchor(struct ibv_context *context,

struct mlx5dv_steering_anchor_attr *attr); int mlx5dv_destroy_steering_anchor(struct mlx5dv_steering_anchor *sa);


A user can take packets into a user-configured sandbox and do packet processing at the end of which a steering pipeline decision is made on what to do with the packet.

A steering anchor allows the user to reinject the packet back into the kernel for additional processing.

mlx5dv_create_steering_anchor() Creates an anchor which will allow injecting the packet back into the kernel steering pipeline.

mlx5dv_destroy_steering_anchor() Destroys a steering anchor.



The device context to associate the steering anchor with.


Anchor attributes specify the priority and flow table type to which the anchor will point.

struct mlx5dv_steering_anchor_attr {

enum mlx5dv_flow_table_type ft_type;
uint16_t priority;
uint64_t comp_mask; };
The flow table type to which the anchor will point.
The priority inside ft_type to which the created anchor will point.
Reserved for future extension, must be 0 now.


struct mlx5dv_steering_anchor {

uint32_t id; };
The flow table ID to use as the destination when creating the flow table entry.


mlx5dv_create_steering_anchor() returns a pointer to a new mlx5dv_steering_anchor on success. On error NULL is returned and errno is set.

mlx5dv_destroy_steering_anchor() returns 0 on success and errno value on error.


Mark Bloch