API Reference Manual  1.45.0
api/spec/ipsec_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2016-2018 Linaro Limited
3  * Copyright (c) 2022 Nokia
4  */
5 
12 #ifndef ODP_API_SPEC_IPSEC_TYPES_H_
13 #define ODP_API_SPEC_IPSEC_TYPES_H_
14 #include <odp/visibility_begin.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #include <odp/api/classification.h>
21 #include <odp/api/crypto_types.h>
23 #include <odp/api/protocols.h>
24 #include <odp/api/std_types.h>
25 #include <odp/api/traffic_mngr.h>
26 
44 typedef enum odp_ipsec_op_mode_t {
51 
58 
69 
72 
74 
86 
94 
96 
105  uint64_t seq_num;
106 
112 
114 
125 
128  struct {
130  uint32_t min_spi;
131 
134  uint32_t max_spi;
135 
143 
145 
169 
184 
191 
202 
207 
212 
214 
227  union {
229  struct {
232  uint32_t inner_ipv4 : 1;
233 
236  uint32_t inner_udp : 1;
237 
240  uint32_t inner_tcp : 1;
241 
244  uint32_t inner_sctp : 1;
245 
247 
252  uint32_t all_chksum;
253  };
254 
256 
262  struct {
268 
274 
276 
278 
282 typedef struct odp_ipsec_capability_t {
284  uint32_t max_num_sa;
285 
288 
293 
299 
305 
308 
311 
314 
320 
326 
331 
336  uint32_t max_cls_cos;
337 
348 
359 
362  uint32_t max_queues;
363 
366 
369 
372 
375 
384 
390 
393 
396 
399 
401 
407  uint32_t key_len;
408 
410 
416  uint32_t key_len;
417 
419  uint32_t icv_len;
421 
425 typedef struct odp_ipsec_config_t {
432 
439 
442  uint32_t max_num_sa;
443 
446 
449 
457 
467 
469 
473 typedef enum odp_ipsec_dir_t {
476 
479 
481 
485 typedef enum odp_ipsec_mode_t {
488 
491 
493 
497 typedef enum odp_ipsec_protocol_t {
500 
503 
505 
512 
515 
517 
521 typedef struct odp_ipsec_crypto_param_t {
534 
537 
549 
568 
571 
580 
610  uint32_t icv_len;
611 
613 
615 typedef struct odp_ipsec_ipv4_param_t {
617  void *src_addr;
618 
620  void *dst_addr;
621 
623  uint8_t dscp;
624 
626  uint8_t df;
627 
629  uint8_t ttl;
630 
632 
634 typedef struct odp_ipsec_ipv6_param_t {
636  void *src_addr;
637 
639  void *dst_addr;
640 
642  uint32_t flabel;
643 
645  uint8_t dscp;
646 
648  uint8_t hlimit;
649 
651 
660 typedef struct odp_ipsec_tunnel_param_t {
663 
665  struct {
668 
671  };
673 
677 typedef struct odp_ipsec_sa_opt_t {
683  uint32_t esn : 1;
684 
691  uint32_t udp_encap : 1;
692 
701  uint32_t copy_dscp : 1;
702 
709  uint32_t copy_flabel : 1;
710 
717  uint32_t copy_df : 1;
718 
726  uint32_t dec_ttl : 1;
727 
729 
742 typedef struct odp_ipsec_lifetime_t {
744  struct {
746  uint64_t bytes;
747 
749  uint64_t packets;
751 
753  struct {
755  uint64_t bytes;
756 
758  uint64_t packets;
761 
769 typedef enum odp_ipsec_frag_mode_t {
772 
775 
778 
783 
796 
799 
804 
806 
810 typedef enum odp_ipsec_pipeline_t {
813 
819 
821 
828 
830  ODP_IPSEC_IPV6 = 6
831 
833 
837 typedef struct odp_ipsec_sa_param_t {
840 
843 
846 
849 
852 
855 
857  uint32_t spi;
858 
866 
873  void *context;
874 
881  uint32_t context_len;
882 
884  struct {
886  struct {
891 
895  struct {
898 
901  void *dst_addr;
902 
904 
908  uint32_t antireplay_ws;
909 
918 
931 
957 
959 
961  struct {
964 
969 
976  uint32_t mtu;
977 
979  };
980 
982 
986 typedef struct odp_ipsec_stats_t {
988  uint64_t success;
989 
991  uint64_t proto_err;
992 
994  uint64_t auth_err;
995 
997  uint64_t antireplay_err;
998 
1000  uint64_t alg_err;
1001 
1003  uint64_t mtu_err;
1004 
1007 
1010 
1018  uint64_t success_bytes;
1020 
1024 typedef struct odp_ipsec_sa_info_t {
1034 
1036  union {
1038  struct {
1040  struct {
1045 
1052  uint32_t antireplay_ws;
1053 
1064 
1066  struct {
1074  uint64_t seq_num;
1075 
1077  union {
1079  struct {
1083  uint8_t dst_addr[ODP_IPV4_ADDR_SIZE];
1084  } ipv4;
1085 
1087  struct {
1089  uint8_t src_addr[ODP_IPV6_ADDR_SIZE];
1091  uint8_t dst_addr[ODP_IPV6_ADDR_SIZE];
1092  } ipv6;
1095  };
1097 
1099 #define ODP_IPSEC_OK 0
1100 
1102 typedef struct odp_ipsec_error_t {
1104  union {
1106  struct {
1109  uint32_t proto : 1;
1110 
1112  uint32_t sa_lookup : 1;
1113 
1115  uint32_t auth : 1;
1116 
1118  uint32_t antireplay : 1;
1119 
1121  uint32_t alg : 1;
1122 
1124  uint32_t mtu : 1;
1125 
1127  uint32_t hard_exp_bytes : 1;
1128 
1130  uint32_t hard_exp_packets : 1;
1131  };
1132 
1139  uint32_t all;
1140  };
1141 
1143 
1145 typedef struct odp_ipsec_warn_t {
1147  union {
1149  struct {
1151  uint32_t soft_exp_bytes : 1;
1152 
1154  uint32_t soft_exp_packets : 1;
1155  };
1156 
1161  uint32_t all;
1162  };
1163 
1165 
1167 typedef struct odp_ipsec_op_status_t {
1169  union {
1171  struct {
1174 
1177  };
1178 
1182  uint64_t all;
1183 
1184  };
1185 
1187 
1189 typedef struct odp_ipsec_op_flag_t {
1191  union {
1193  struct {
1195  uint32_t inline_mode : 1;
1196 
1197  };
1198 
1203  uint32_t all;
1204  };
1205 
1207 
1213 typedef struct odp_ipsec_out_opt_t {
1215  union {
1218  struct {
1220  uint32_t frag_mode: 1;
1221 
1223  uint32_t tfc_pad: 1;
1224 
1233  uint32_t tfc_dummy: 1;
1234 
1236  uint32_t ip_param: 1;
1237 
1238  } flag;
1239 
1244  uint32_t all_flags;
1245  };
1246 
1249 
1257  uint32_t tfc_pad_len;
1258 
1260  union {
1264 
1268  };
1269 
1271 
1275 typedef struct odp_ipsec_out_param_t {
1285  int num_sa;
1286 
1294  int num_opt;
1295 
1298 
1304 
1306 
1310 typedef struct odp_ipsec_in_param_t {
1325  int num_sa;
1326 
1332 
1334 
1352 
1361 
1367  struct {
1377  const uint8_t *ptr;
1378 
1380  uint32_t len;
1382 
1384 
1393 
1396 
1405 
1410  struct {
1418  uint8_t *ptr;
1419 
1421  uint32_t len;
1423 
1433  uint32_t orig_ip_len;
1434 
1436 
1449 
1461 
1463 
1467 typedef struct odp_ipsec_status_t {
1470 
1473 
1479  int result;
1480 
1483 
1485 
1490 #ifdef __cplusplus
1491 }
1492 #endif
1493 
1494 #include <odp/visibility_end.h>
1495 #endif
ODP classification descriptor.
ODP crypto.
ODP Packet IO.
Standard C language types and definitions for ODP.
ODP Traffic manager.
odp_cipher_alg_t
Crypto API cipher algorithm.
odp_auth_alg_t
Crypto API authentication algorithm.
odp_ipsec_test_sa_operation_t
IPSEC TEST SA operation.
struct odp_ipsec_op_status_t odp_ipsec_op_status_t
IPSEC operation status.
struct odp_ipsec_outbound_config_t odp_ipsec_outbound_config_t
Configuration options for IPSEC outbound processing.
struct odp_ipsec_sa_param_t odp_ipsec_sa_param_t
IPSEC Security Association (SA) parameters.
struct odp_ipsec_out_inline_param_t odp_ipsec_out_inline_param_t
Outbound inline IPSEC operation parameters.
union odp_ipsec_test_sa_param_t odp_ipsec_test_sa_param_t
IPSEC TEST SA parameter.
struct odp_ipsec_status_t odp_ipsec_status_t
IPSEC status content.
struct odp_ipsec_ipv6_param_t odp_ipsec_ipv6_param_t
IPv6 header parameters.
struct odp_ipsec_in_param_t odp_ipsec_in_param_t
IPSEC inbound operation parameters.
struct odp_ipsec_tunnel_param_t odp_ipsec_tunnel_param_t
IPSEC tunnel parameters.
struct odp_ipsec_capability_t odp_ipsec_capability_t
IPSEC capability.
struct odp_ipsec_out_opt_t odp_ipsec_out_opt_t
IPSEC outbound operation options.
odp_ipsec_op_mode_t
IPSEC operation mode.
odp_ipsec_lookup_mode_t
Packet lookup mode.
odp_ipsec_status_id_t
IPSEC status ID.
struct odp_ipsec_auth_capability_t odp_ipsec_auth_capability_t
Authentication algorithm capabilities.
odp_ipsec_pipeline_t
IPSEC pipeline configuration.
struct odp_ipsec_config_t odp_ipsec_config_t
IPSEC configuration options.
struct odp_ipsec_inbound_config_t odp_ipsec_inbound_config_t
Configuration options for IPSEC inbound processing.
odp_ipsec_frag_mode_t
Fragmentation mode.
struct odp_ipsec_warn_t odp_ipsec_warn_t
IPSEC warnings.
struct odp_ipsec_op_flag_t odp_ipsec_op_flag_t
IPSEC operation flags.
struct odp_ipsec_lifetime_t odp_ipsec_lifetime_t
IPSEC SA lifetime limits.
struct odp_ipsec_sa_opt_t odp_ipsec_sa_opt_t
IPSEC SA option flags.
struct odp_ipsec_ipv4_param_t odp_ipsec_ipv4_param_t
IPv4 header parameters.
odp_ipsec_protocol_t
IPSEC protocol.
struct odp_ipsec_stats_t odp_ipsec_stats_t
IPSEC stats content.
struct odp_ipsec_packet_result_t odp_ipsec_packet_result_t
IPSEC operation result for a packet.
odp_ipsec_ip_version_t
IPSEC header type.
odp_ipsec_tunnel_type_t
IPSEC tunnel type.
struct odp_ipsec_test_capability_t odp_ipsec_test_capability_t
IPSEC TEST capability.
struct odp_ipsec_sa_info_t odp_ipsec_sa_info_t
IPSEC SA information.
odp_ipsec_mode_t
IPSEC protocol mode.
odp_ipsec_dir_t
IPSEC SA direction.
struct odp_ipsec_cipher_capability_t odp_ipsec_cipher_capability_t
Cipher algorithm capabilities.
struct odp_ipsec_crypto_param_t odp_ipsec_crypto_param_t
IPSEC crypto parameters.
struct odp_ipsec_error_t odp_ipsec_error_t
IPSEC errors.
struct odp_ipsec_out_param_t odp_ipsec_out_param_t
IPSEC outbound operation parameters.
@ ODP_IPSEC_TEST_SA_UPDATE_ANTIREPLAY_WINDOW_TOP
Update highest authenticated sequence number.
@ ODP_IPSEC_TEST_SA_UPDATE_SEQ_NUM
Update next sequence number.
@ ODP_IPSEC_OP_MODE_INLINE
Inline IPSEC operation.
@ ODP_IPSEC_OP_MODE_SYNC
Synchronous IPSEC operation.
@ ODP_IPSEC_OP_MODE_ASYNC
Asynchronous IPSEC operation.
@ ODP_IPSEC_OP_MODE_DISABLED
IPSEC is disabled in inbound / outbound direction.
@ ODP_IPSEC_LOOKUP_SPI
Inbound SA lookup is enabled.
@ ODP_IPSEC_LOOKUP_DISABLED
Inbound SA lookup is disabled for the SA.
@ ODP_IPSEC_LOOKUP_DSTADDR_SPI
Inbound SA lookup is enabled.
@ ODP_IPSEC_STATUS_SA_DISABLE
Response to SA disable command.
@ ODP_IPSEC_STATUS_WARN
Warning from inline IPSEC processing.
@ ODP_IPSEC_PIPELINE_CLS
Send resulting packets to the classifier.
@ ODP_IPSEC_PIPELINE_NONE
Do not pipeline.
@ ODP_IPSEC_FRAG_AFTER
Fragment IP packet after IPSEC operation.
@ ODP_IPSEC_FRAG_BEFORE
Fragment IP packet before IPSEC operation.
@ ODP_IPSEC_FRAG_DISABLED
Do not fragment IP packets.
@ ODP_IPSEC_FRAG_CHECK
Only check if IP fragmentation is needed, do not fragment packets.
@ ODP_IPSEC_AH
AH protocol.
@ ODP_IPSEC_ESP
ESP protocol.
@ ODP_IPSEC_IPV4
Header is IPv4.
@ ODP_IPSEC_IPV6
Header is IPv6.
@ ODP_IPSEC_TUNNEL_IPV4
Outer header is IPv4.
@ ODP_IPSEC_TUNNEL_IPV6
Outer header is IPv6.
@ ODP_IPSEC_MODE_TRANSPORT
IPSEC transport mode.
@ ODP_IPSEC_MODE_TUNNEL
IPSEC tunnel mode.
@ ODP_IPSEC_DIR_OUTBOUND
Outbound IPSEC SA.
@ ODP_IPSEC_DIR_INBOUND
Inbound IPSEC SA.
odp_proto_layer_t
Protocol layer.
#define ODP_IPV6_ADDR_SIZE
IPv6 address size.
#define ODP_IPV4_ADDR_SIZE
IPv4 address size.
int odp_bool_t
Use odp boolean type to have it well-defined and known size, regardless which compiler is used as thi...
odp_support_t
ODP support.
odp_tm_handle_t odp_tm_queue_t
Each odp_tm_queue_t value is an opaque ODP handle representing a specific tm_queue within a specific ...
ODP protocols.
Crypto API key structure.
Authentication algorithm capabilities.
uint32_t icv_len
ICV length in bytes.
uint32_t key_len
Key length in bytes.
odp_reass_capability_t reassembly
Post-IPsec reassembly capability.
odp_bool_t reass_inline
Support of reassembly after inline inbound IPsec processing.
uint32_t max_cls_cos
Maximum number of different destination CoSes in classification pipelining.
odp_crypto_cipher_algos_t ciphers
Supported cipher algorithms.
odp_support_t frag_after
Fragment after IPsec support.
odp_support_t inline_ipsec_tm
Support of traffic manager (TM) after inline outbound IPSEC processing.
odp_pktin_vector_capability_t vector
Support for returning completion packets as vectors.
odp_bool_t queue_type_sched
Scheduled queue support.
odp_support_t op_mode_sync
Synchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_SYNC) support.
odp_support_t frag_before
Fragment before IPsec support.
odp_support_t op_mode_inline_in
Inline inbound IPSEC operation mode (ODP_IPSEC_OP_MODE_INLINE) support.
odp_support_t op_mode_inline_out
Inline outgoing IPSEC operation mode (ODP_IPSEC_OP_MODE_INLINE) support.
odp_support_t pipeline_cls
Support of pipelined classification (ODP_IPSEC_PIPELINE_CLS) of resulting inbound packets.
uint32_t max_antireplay_ws
Maximum anti-replay window size.
uint32_t max_num_sa
Maximum number of IPSEC SAs.
odp_proto_chksums_t chksums_in
Inner packet checksum check offload support in inbound direction.
odp_support_t op_mode_async
Asynchronous IPSEC operation mode (ODP_IPSEC_OP_MODE_ASYNC) support.
odp_crypto_auth_algos_t auths
Supported authentication algorithms.
uint32_t max_queues
Maximum number of different destination queues.
odp_support_t retain_header
Support of retaining outer headers (retain_outer) in inbound inline processed packets.
odp_bool_t queue_type_plain
Plain queue support.
odp_bool_t reass_async
Support of reassembly after inbound processing in odp_ipsec_in_enq()
odp_ipsec_test_capability_t test
IPSEC TEST capabilities.
odp_support_t proto_ah
IP Authenticated Header (ODP_IPSEC_AH) support.
Cipher algorithm capabilities.
uint32_t key_len
Key length in bytes.
IPSEC configuration options.
odp_pktin_vector_config_t vector
Packet vector configuration for async and inline operations.
odp_ipsec_op_mode_t outbound_mode
Outbound IPSEC operation mode.
odp_ipsec_inbound_config_t inbound
IPSEC inbound processing configuration.
odp_bool_t stats_en
Enable stats collection.
uint32_t max_num_sa
Maximum number of IPSEC SAs that application will use simultaneously.
odp_ipsec_outbound_config_t outbound
IPSEC outbound processing configuration.
odp_ipsec_op_mode_t inbound_mode
Inbound IPSEC operation mode.
IPSEC crypto parameters.
uint32_t icv_len
Length of integrity check value (ICV) in bytes.
odp_crypto_key_t auth_key
Authentication key.
odp_crypto_key_t auth_key_extra
Extra keying material for authentication algorithm.
odp_auth_alg_t auth_alg
Authentication algorithm.
odp_crypto_key_t cipher_key_extra
Extra keying material for cipher algorithm.
odp_cipher_alg_t cipher_alg
Cipher algorithm.
odp_crypto_key_t cipher_key
Cipher key.
uint32_t sa_lookup
SA lookup failed.
uint32_t antireplay
Anti-replay check failed.
uint32_t auth
Authentication failed.
uint32_t alg
Other algorithm error.
uint32_t hard_exp_bytes
Hard lifetime expired: bytes.
uint32_t mtu
Packet does not fit into the given MTU size.
uint32_t hard_exp_packets
Hard lifetime expired: packets.
uint32_t all
All error bits.
uint32_t proto
Protocol error.
IPSEC inbound operation parameters.
const odp_ipsec_sa_t * sa
Pointer to an array of IPSEC SAs.
Configuration options for IPSEC inbound processing.
odp_bool_t spi_overlap
Select if SPI values for SA lookup are unique or may contain the same SPI value multiple times.
uint32_t max_spi
Maximum SPI value for SA lookup.
odp_reass_config_t reassembly
Post-IPsec reassembly configuration.
odp_bool_t reass_async
Attempt reassembly after inbound IPsec processing in odp_ipsec_in_enq().
odp_queue_t default_queue
Default destination queue for IPSEC events.
uint32_t min_spi
Minimum SPI value for SA lookup.
odp_proto_layer_t parse_level
Parse packet headers after IPSEC transformation.
odp_proto_layer_t retain_outer
Retain outer headers.
odp_bool_t reass_inline
Attempt reassembly after inline inbound IPsec processing.
odp_proto_chksums_t chksums
Flags to control IPSEC payload data checks up to the selected parse level.
struct odp_ipsec_inbound_config_t::@38 lookup
Constraints for SPI values used with inbound SA lookup.
IPv4 header parameters.
uint8_t ttl
IPv4 Time To Live.
uint8_t df
IPv4 Don't Fragment bit.
void * src_addr
IPv4 source address (NETWORK ENDIAN)
uint8_t dscp
IPv4 Differentiated Services Code Point.
void * dst_addr
IPv4 destination address (NETWORK ENDIAN)
IPv6 header parameters.
uint8_t hlimit
IPv6 hop limit.
uint8_t dscp
IPv6 Differentiated Services Code Point.
void * src_addr
IPv6 source address (NETWORK ENDIAN)
void * dst_addr
IPv6 destination address (NETWORK ENDIAN)
uint32_t flabel
IPv6 flow label.
IPSEC SA lifetime limits.
uint64_t bytes
Limit in bytes.
struct odp_ipsec_lifetime_t::@46 hard_limit
Hard expiry limits for the session.
struct odp_ipsec_lifetime_t::@45 soft_limit
Soft expiry limits for the session.
uint64_t packets
Limit in packet.
IPSEC operation flags.
uint32_t all
All flag bits.
uint32_t inline_mode
Packet was processed in inline mode.
IPSEC operation status.
odp_ipsec_error_t error
IPSEC errors.
uint64_t all
All status bits.
odp_ipsec_warn_t warn
IPSEC warnings.
Outbound inline IPSEC operation parameters.
odp_pktio_t pktio
Packet output interface for inline outbound operation without TM.
odp_tm_queue_t tm_queue
TM queue for inline outbound operation.
uint32_t len
Outer header length in bytes.
const uint8_t * ptr
Points to first byte of outer headers to be copied in front of the outgoing IPSEC packet.
struct odp_ipsec_out_inline_param_t::@81 outer_hdr
Outer headers for inline output operation.
IPSEC outbound operation options.
odp_ipsec_frag_mode_t frag_mode
Fragmentation mode.
uint32_t all_flags
All flag bits.
uint32_t tfc_pad_len
TFC padding length.
odp_ipsec_ipv6_param_t ipv6
Override IPv6 parameters in outer header creation.
odp_ipsec_ipv4_param_t ipv4
Override IPv4 parameters in outer header creation.
uint32_t tfc_pad
Use TFC padding length option.
uint32_t ip_param
Use IP parameters option.
struct odp_ipsec_out_opt_t::@76::@80 flag
Option flags.
uint32_t frag_mode
Use fragmentation mode option.
uint32_t tfc_dummy
Tunnel mode TFC dummy packet.
IPSEC outbound operation parameters.
int num_opt
Number of outbound operation options.
const odp_ipsec_sa_t * sa
Pointer to an array of IPSEC SAs.
const odp_ipsec_out_opt_t * opt
Pointer to an array of outbound operation options.
Configuration options for IPSEC outbound processing.
struct odp_ipsec_outbound_config_t::@39::@41 chksum
Mapping for individual bits.
uint32_t inner_sctp
Insert SCTP header checksum on the payload packet before IPSEC transformation.
uint32_t inner_ipv4
Insert IPv4 header checksum on the payload packet before IPSEC transformation.
uint32_t inner_tcp
Insert TCP header checksum on the payload packet before IPSEC transformation.
uint32_t all_chksum
All bits of the bit field structure.
uint32_t inner_udp
Insert UDP header checksum on the payload packet before IPSEC transformation.
IPSEC operation result for a packet.
uint32_t len
Outer header length in bytes.
uint32_t orig_ip_len
Total IP length of the original ESP or AH packet before IPsec decapsulation.
uint8_t * ptr
Points to the first byte of retained outer headers.
odp_ipsec_op_status_t status
IPSEC operation status.
struct odp_ipsec_packet_result_t::@82 outer_hdr
Packet outer header status before inbound inline processing.
odp_ipsec_sa_t sa
IPSEC SA that was used to create the packet.
odp_ipsec_op_flag_t flag
IPSEC operation flags.
IPSEC SA information.
odp_ipsec_sa_param_t param
IPsec SA parameters.
uint64_t seq_num
Sequence number.
union odp_ipsec_sa_info_t::@52::@55::@57 tunnel
Tunnel IP address.
uint8_t src_addr[ODP_IPV4_ADDR_SIZE]
IPv4 source address.
uint8_t dst_addr[ODP_IPV6_ADDR_SIZE]
IP destination address (NETWORK ENDIAN) to be matched in addition to SPI value.
struct odp_ipsec_sa_info_t::@52::@55::@57::@59 ipv6
IPv6.
uint64_t antireplay_window_top
Antireplay window top.
struct odp_ipsec_sa_info_t::@52::@54::@56 lookup_param
Additional SA lookup parameters.
struct odp_ipsec_sa_info_t::@52::@54 inbound
Inbound specific parameters.
struct odp_ipsec_sa_info_t::@52::@55::@57::@58 ipv4
IPv4.
uint32_t antireplay_ws
Antireplay window size.
struct odp_ipsec_sa_info_t::@52::@55 outbound
Outbound specific parameters.
IPSEC SA option flags.
uint32_t copy_dscp
Copy DSCP bits.
uint32_t dec_ttl
Decrement inner packet Time To Live (TTL) field.
uint32_t copy_flabel
Copy IPv6 Flow Label.
uint32_t udp_encap
UDP encapsulation.
uint32_t copy_df
Copy IPv4 Don't Fragment bit.
uint32_t esn
Extended Sequence Numbers (ESN)
IPSEC Security Association (SA) parameters.
uint32_t spi
SPI value.
odp_ipsec_frag_mode_t frag_mode
Fragmentation mode The default value is ODP_IPSEC_FRAG_DISABLED.
odp_ipsec_crypto_param_t crypto
Parameters for crypto and authentication algorithms.
odp_queue_t dest_queue
Destination queue for IPSEC events.
odp_ipsec_mode_t mode
IPSEC protocol mode: transport or tunnel.
odp_ipsec_sa_opt_t opt
Various SA option flags.
struct odp_ipsec_sa_param_t::@47::@49 inbound
Inbound specific parameters.
odp_ipsec_ip_version_t ip_version
Select IP version.
odp_bool_t reassembly_en
Enable reassembly of IPsec tunneled fragments.
odp_ipsec_pipeline_t pipeline
Select pipelined destination for resulting events.
odp_ipsec_dir_t dir
IPSEC SA direction: inbound or outbound.
odp_ipsec_tunnel_param_t tunnel
Parameters for tunnel mode.
uint32_t antireplay_ws
Minimum anti-replay window size.
struct odp_ipsec_sa_param_t::@47::@50 outbound
Outbound specific parameters.
uint32_t mtu
MTU for outbound IP fragmentation offload.
odp_ipsec_lifetime_t lifetime
SA lifetime parameters.
void * context
User defined SA context pointer.
struct odp_ipsec_sa_param_t::@47::@49::@51 lookup_param
Additional SA lookup parameters.
uint32_t context_len
Context data length.
odp_ipsec_protocol_t proto
IPSEC protocol: ESP or AH.
odp_cos_t dest_cos
Classifier destination CoS for resulting packets.
odp_ipsec_lookup_mode_t lookup_mode
SA lookup mode The default value is ODP_IPSEC_LOOKUP_DISABLED.
void * dst_addr
IP destination address (NETWORK ENDIAN) to be matched in addition to SPI value.
IPSEC stats content.
uint64_t hard_exp_pkts_err
Number of packets with hard lifetime(packets) expired.
uint64_t auth_err
Number of packets with authentication errors.
uint64_t proto_err
Number of packets with protocol errors.
uint64_t mtu_err
Number of packets with MTU errors.
uint64_t antireplay_err
Number of packets with antireplay check failures.
uint64_t success_bytes
Total bytes of packet data processed by IPsec SA in success cases.
uint64_t alg_err
Number of packets with algorithm errors.
uint64_t hard_exp_bytes_err
Number of packets with hard lifetime(bytes) expired.
uint64_t success
Number of packets processed successfully.
IPSEC status content.
int result
Result of the operation.
odp_ipsec_warn_t warn
Warnings of an ODP_IPSEC_STATUS_WARN status event.
odp_ipsec_sa_t sa
IPSEC SA that was target of the operation.
odp_ipsec_status_id_t id
IPSEC status ID.
odp_bool_t antireplay_window_top
Highest authenticated sequence number.
struct odp_ipsec_test_capability_t::@42 sa_operations
Parameters supported for sa_update.
odp_bool_t seq_num
Next sequence number value.
IPSEC tunnel parameters.
odp_ipsec_ipv6_param_t ipv6
IPv6 header parameters.
odp_ipsec_tunnel_type_t type
Tunnel type: IPv4 or IPv6.
odp_ipsec_ipv4_param_t ipv4
IPv4 header parameters.
uint32_t all
All warning bits.
uint32_t soft_exp_bytes
Soft lifetime expired: bytes.
uint32_t soft_exp_packets
Soft lifetime expired: packets.
Packet input vector capabilities.
Packet input vector configuration.
Reassembly capabilities.
Fragment reassembly configuration.
Authentication algorithms in a bit field structure.
Cipher algorithms in a bit field structure.
IPSEC TEST SA parameter.
uint64_t antireplay_window_top
Highest authenticated sequence number.
uint64_t seq_num
Next sequence number.
Flags to control packet data checksum checking.