.\" Automatically generated by Pandoc 2.17.1.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "mlx5dv_flow_action_esp" "3" "" "" ""
.hy
.SH NAME
.PP
mlx5dv_flow_action_esp - Flow action esp for mlx5 provider
.SH SYNOPSIS
.IP
.nf
\f[C]
#include <infiniband/mlx5/mlx5dv.h>

struct ibv_flow_action *
mlx5dv_create_flow_action_esp(struct ibv_context *ctx,
                  struct ibv_flow_action_esp_attr *esp,
                  struct mlx5dv_flow_action_esp *mlx5_attr);
\f[R]
.fi
.SH DESCRIPTION
.PP
Create an IPSEC ESP flow steering action.
.PD 0
.P
.PD
This verb is identical to \f[I]ibv_create_flow_action_esp\f[R] verb, but
allows mlx5 specific flags.
.SH ARGUMENTS
.PP
Please see \f[I]ibv_flow_action_esp(3)\f[R] man page for \f[I]ctx\f[R]
and \f[I]esp\f[R].
.SS \f[I]mlx5_attr\f[R] argument
.IP
.nf
\f[C]
struct mlx5dv_flow_action_esp {
    uint64_t comp_mask;  /* Use enum mlx5dv_flow_action_esp_mask */
    uint32_t action_flags; /* Use enum mlx5dv_flow_action_flags */
};
\f[R]
.fi
.TP
\f[I]comp_mask\f[R]
Bitmask specifying what fields in the structure are valid (\f[I]enum
mlx5dv_flow_action_esp_mask\f[R]).
.TP
\f[I]action_flags\f[R]
A bitwise OR of the various values described below.
.RS
.PP
\f[I]MLX5DV_FLOW_ACTION_FLAGS_REQUIRE_METADATA\f[R]:
.PD 0
.P
.PD
Each received and transmitted packet using offload is expected to carry
metadata in the form of a L2 header
.PD 0
.P
.PD
with ethernet type 0x8CE4, followed by 6 bytes of data and the original
packet ethertype.
.RE
.SH NOTE
.PP
The ESN is expected to be placed in the IV field for egress packets.
.PD 0
.P
.PD
The 64 bit sequence number is written in big-endian over the 64 bit IV
field.
.PD 0
.P
.PD
There is no need to call modify to update the ESN window on egress when
this DV is used.
.SH SEE ALSO
.PP
\f[I]ibv_flow_action_esp(3)\f[R], \f[I]RFC 4106\f[R]
