29 return VNET_API_ERROR_ENTRY_ALREADY_EXISTS;
31 return VNET_API_ERROR_NO_SUCH_ENTRY;
38 return VNET_API_ERROR_INVALID_VALUE;
42 ipsec_set_interface_spd(vm, k, spd_id, 0);
46 #define _(s,v) vec_free(spd->policies[IPSEC_SPD_POLICY_##s]); 55 spd_index = spd - im->
spds;
74 return VNET_API_ERROR_SYSCALL_ERROR_1;
80 return VNET_API_ERROR_SYSCALL_ERROR_1;
92 sw_if_index, spd_id, spd_index);
96 sw_if_index, is_add, 0, 0);
98 sw_if_index, is_add, 0, 0);
104 sw_if_index, is_add, &config,
sizeof (config));
106 sw_if_index, is_add, &config,
sizeof (config));
#define hash_set(h, key, value)
#define hash_unset(h, key)
clib_memset(h->entries, 0, sizeof(h->entries[0]) *entries)
A Secruity Policy Database.
#define pool_get(P, E)
Allocate an object E from a pool P (unspecified alignment).
uword * spd_index_by_sw_if_index
#define hash_foreach(key_var, value_var, h, body)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
#define pool_put(P, E)
Free an object E in pool P.
uword * spd_index_by_spd_id
#define clib_warning(format, args...)
int ipsec_set_interface_spd(vlib_main_t *vm, u32 sw_if_index, u32 spd_id, int is_add)
Bind/attach a SPD to an interface.
u32 id
the User's ID for this policy
int ipsec_add_del_spd(vlib_main_t *vm, u32 spd_id, int is_add)
Add/Delete a SPD.
#define foreach_ipsec_spd_policy_type
int vnet_feature_enable_disable(const char *arc_name, const char *node_name, u32 sw_if_index, int enable_disable, void *feature_config, u32 n_feature_config_bytes)