NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
config.c File Reference
#include <ctype.h>
#include <json-c/json.h>
#include <rte_hash_crc.h>
#include <doca_argp.h>
#include <doca_log.h>
#include <pack.h>
#include <utils.h>
#include <flow_parser.h>
#include "config.h"
Include dependency graph for config.c:

Go to the source code of this file.

Macros

#define MAX_CORES   (32)
 

Functions

 DOCA_LOG_REGISTER (IPSEC_SECURITY_GW::config)
 
static doca_error_t parse_hex_to_bytes (const char *key_hex, size_t key_size, uint8_t *key)
 
static doca_error_t create_key (struct json_object *cur_rule, enum doca_flow_crypto_key_type key_type, uint8_t *key)
 
static doca_error_t create_key_type (struct json_object *cur_rule, enum doca_flow_crypto_key_type *key_type)
 
static doca_error_t create_iv (struct json_object *cur_rule, uint64_t *iv)
 
static doca_error_t create_salt (struct json_object *cur_rule, uint32_t *salt)
 
static doca_error_t create_lifetime_threshold (struct json_object *cur_rule, uint32_t *lifetime_threshold)
 
static doca_error_t create_esn_en (struct json_object *cur_rule, bool *esn_en)
 
static doca_error_t create_protocol (struct json_object *cur_rule, enum doca_flow_l4_type_ext *protocol)
 
static doca_error_t create_l3_type (struct json_object *cur_rule, char *ip_version_string, enum doca_flow_l3_type *l3_type)
 
static doca_error_t create_ipv4 (struct json_object *cur_rule, char *ip_type, doca_be32_t *ip)
 
doca_error_t parse_ipv6_str (const char *str_ip, doca_be32_t ipv6_addr[])
 
static doca_error_t create_ipv6 (struct json_object *cur_rule, char *ip_type, doca_be32_t ip[])
 
static doca_error_t create_port (struct json_object *cur_rule, char *port_type, int *port)
 
static doca_error_t create_spi (struct json_object *cur_rule, doca_be32_t *esp_spi)
 
static doca_error_t parse_encrypt_ipv4 (struct json_object *cur_rule, struct encrypt_rule *rule)
 
static doca_error_t parse_encrypt_ipv6 (struct json_object *cur_rule, struct encrypt_rule *rule, struct rte_hash **ip6_table)
 
static doca_error_t parse_encrypt_encap_ip (struct json_object *cur_rule, struct encrypt_rule *rule)
 
static doca_error_t parse_json_decrypt_rules (struct json_object *json_rules, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_json_encrypt_rules (struct json_object *json_rules, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_esp_offload (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_perf_measurement (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_antireplay (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_sn_inc (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_sn_initial (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_switch_config (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_debug_config (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_vxlan_encap_config (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_marker_encap_config (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_bad_syndrome_fwd (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_icv_length (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_json_config (struct json_object *json_config, struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t allocate_json_buffer_dynamic (FILE *fp, size_t *file_length, char **json_data)
 
static doca_error_t validate_config (struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t create_ip6_table (struct rte_hash **ip6_table)
 
doca_error_t ipsec_security_gw_parse_config (struct ipsec_security_gw_config *app_cfg)
 
static doca_error_t parse_pci_param (void *param, struct ipsec_security_gw_dev_info *dev_info)
 
static doca_error_t parse_iface_name_param (void *param, struct ipsec_security_gw_dev_info *dev_info)
 
static doca_error_t secured_callback (void *param, void *config)
 
static doca_error_t unsecured_callback (void *param, void *config)
 
static doca_error_t secured_name_callback (void *param, void *config)
 
static doca_error_t unsecured_name_callback (void *param, void *config)
 
static doca_error_t nb_cores_callback (void *param, void *config)
 
static doca_error_t debug_mode_callback (void *param, void *config)
 
static doca_error_t config_callback (void *param, void *config)
 
static doca_error_t offload_mode_callback (void *param, void *config)
 
static doca_error_t socket_callback (void *param, void *config)
 
doca_error_t register_ipsec_security_gw_params (void)
 

Macro Definition Documentation

◆ MAX_CORES

#define MAX_CORES   (32)

Definition at line 42 of file config.c.

Function Documentation

◆ allocate_json_buffer_dynamic()

static doca_error_t allocate_json_buffer_dynamic ( FILE *  fp,
size_t file_length,
char **  json_data 
)
static

Definition at line 1131 of file config.c.

◆ config_callback()

static doca_error_t config_callback ( void *  param,
void *  config 
)
static

Definition at line 1514 of file config.c.

◆ create_esn_en()

static doca_error_t create_esn_en ( struct json_object *  cur_rule,
bool esn_en 
)
static

Definition at line 254 of file config.c.

◆ create_ip6_table()

static doca_error_t create_ip6_table ( struct rte_hash **  ip6_table)
static

Definition at line 1219 of file config.c.

◆ create_ipv4()

static doca_error_t create_ipv4 ( struct json_object *  cur_rule,
char *  ip_type,
doca_be32_t ip 
)
static

Definition at line 344 of file config.c.

◆ create_ipv6()

static doca_error_t create_ipv6 ( struct json_object *  cur_rule,
char *  ip_type,
doca_be32_t  ip[] 
)
static

Definition at line 386 of file config.c.

◆ create_iv()

static doca_error_t create_iv ( struct json_object *  cur_rule,
uint64_t *  iv 
)
static

Definition at line 161 of file config.c.

◆ create_key()

static doca_error_t create_key ( struct json_object *  cur_rule,
enum doca_flow_crypto_key_type  key_type,
uint8_t *  key 
)
static

Definition at line 82 of file config.c.

◆ create_key_type()

static doca_error_t create_key_type ( struct json_object *  cur_rule,
enum doca_flow_crypto_key_type key_type 
)
static

Definition at line 127 of file config.c.

◆ create_l3_type()

static doca_error_t create_l3_type ( struct json_object *  cur_rule,
char *  ip_version_string,
enum doca_flow_l3_type l3_type 
)
static

Definition at line 307 of file config.c.

◆ create_lifetime_threshold()

static doca_error_t create_lifetime_threshold ( struct json_object *  cur_rule,
uint32_t *  lifetime_threshold 
)
static

Definition at line 230 of file config.c.

◆ create_port()

static doca_error_t create_port ( struct json_object *  cur_rule,
char *  port_type,
int *  port 
)
static

Definition at line 414 of file config.c.

◆ create_protocol()

static doca_error_t create_protocol ( struct json_object *  cur_rule,
enum doca_flow_l4_type_ext protocol 
)
static

Definition at line 277 of file config.c.

◆ create_salt()

static doca_error_t create_salt ( struct json_object *  cur_rule,
uint32_t *  salt 
)
static

Definition at line 206 of file config.c.

◆ create_spi()

static doca_error_t create_spi ( struct json_object *  cur_rule,
doca_be32_t esp_spi 
)
static

Definition at line 438 of file config.c.

◆ debug_mode_callback()

static doca_error_t debug_mode_callback ( void *  param,
void *  config 
)
static

Definition at line 1499 of file config.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( IPSEC_SECURITY_GW::config  )

◆ ipsec_security_gw_parse_config()

doca_error_t ipsec_security_gw_parse_config ( struct ipsec_security_gw_config app_cfg)

Definition at line 1236 of file config.c.

◆ nb_cores_callback()

static doca_error_t nb_cores_callback ( void *  param,
void *  config 
)
static

Definition at line 1479 of file config.c.

◆ offload_mode_callback()

static doca_error_t offload_mode_callback ( void *  param,
void *  config 
)
static

Definition at line 1538 of file config.c.

◆ parse_antireplay()

static doca_error_t parse_antireplay ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 785 of file config.c.

◆ parse_bad_syndrome_fwd()

static doca_error_t parse_bad_syndrome_fwd ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 996 of file config.c.

◆ parse_debug_config()

static doca_error_t parse_debug_config ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 900 of file config.c.

◆ parse_encrypt_encap_ip()

static doca_error_t parse_encrypt_encap_ip ( struct json_object *  cur_rule,
struct encrypt_rule rule 
)
static

Definition at line 528 of file config.c.

◆ parse_encrypt_ipv4()

static doca_error_t parse_encrypt_ipv4 ( struct json_object *  cur_rule,
struct encrypt_rule rule 
)
static

Definition at line 462 of file config.c.

◆ parse_encrypt_ipv6()

static doca_error_t parse_encrypt_ipv6 ( struct json_object *  cur_rule,
struct encrypt_rule rule,
struct rte_hash **  ip6_table 
)
static

Definition at line 485 of file config.c.

◆ parse_esp_offload()

static doca_error_t parse_esp_offload ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 709 of file config.c.

◆ parse_hex_to_bytes()

static doca_error_t parse_hex_to_bytes ( const char *  key_hex,
size_t  key_size,
uint8_t *  key 
)
static

Definition at line 52 of file config.c.

◆ parse_icv_length()

static doca_error_t parse_icv_length ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 1030 of file config.c.

◆ parse_iface_name_param()

static doca_error_t parse_iface_name_param ( void *  param,
struct ipsec_security_gw_dev_info dev_info 
)
static

Definition at line 1402 of file config.c.

◆ parse_ipv6_str()

doca_error_t parse_ipv6_str ( const char *  str_ip,
doca_be32_t  ipv6_addr[] 
)

Definition at line 364 of file config.c.

◆ parse_json_config()

static doca_error_t parse_json_config ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 1070 of file config.c.

◆ parse_json_decrypt_rules()

static doca_error_t parse_json_decrypt_rules ( struct json_object *  json_rules,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 551 of file config.c.

◆ parse_json_encrypt_rules()

static doca_error_t parse_json_encrypt_rules ( struct json_object *  json_rules,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 621 of file config.c.

◆ parse_marker_encap_config()

static doca_error_t parse_marker_encap_config ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 965 of file config.c.

◆ parse_pci_param()

static doca_error_t parse_pci_param ( void *  param,
struct ipsec_security_gw_dev_info dev_info 
)
static

Definition at line 1377 of file config.c.

◆ parse_perf_measurement()

static doca_error_t parse_perf_measurement ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 747 of file config.c.

◆ parse_sn_inc()

static doca_error_t parse_sn_inc ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 808 of file config.c.

◆ parse_sn_initial()

static doca_error_t parse_sn_initial ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 831 of file config.c.

◆ parse_switch_config()

static doca_error_t parse_switch_config ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 873 of file config.c.

◆ parse_vxlan_encap_config()

static doca_error_t parse_vxlan_encap_config ( struct json_object *  json_config,
struct ipsec_security_gw_config app_cfg 
)
static

Definition at line 926 of file config.c.

◆ register_ipsec_security_gw_params()

doca_error_t register_ipsec_security_gw_params ( void  )

Definition at line 1578 of file config.c.

◆ secured_callback()

static doca_error_t secured_callback ( void *  param,
void *  config 
)
static

Definition at line 1423 of file config.c.

◆ secured_name_callback()

static doca_error_t secured_name_callback ( void *  param,
void *  config 
)
static

Definition at line 1451 of file config.c.

◆ socket_callback()

static doca_error_t socket_callback ( void *  param,
void *  config 
)
static

Definition at line 1564 of file config.c.

◆ unsecured_callback()

static doca_error_t unsecured_callback ( void *  param,
void *  config 
)
static

Definition at line 1437 of file config.c.

◆ unsecured_name_callback()

static doca_error_t unsecured_name_callback ( void *  param,
void *  config 
)
static

Definition at line 1465 of file config.c.

◆ validate_config()

static doca_error_t validate_config ( struct ipsec_security_gw_config app_cfg)
static

Definition at line 1170 of file config.c.