Lines Matching refs:sad

67 add_specific(struct rte_ipsec_sad *sad, const void *key,  in EAL_REGISTER_TAILQ()
76 ret = rte_hash_lookup_with_hash(sad->hash[key_type], key, in EAL_REGISTER_TAILQ()
77 rte_hash_crc(key, sad->keysize[key_type], sad->init_val)); in EAL_REGISTER_TAILQ()
81 ret = rte_hash_add_key_with_hash_data(sad->hash[key_type], key, in EAL_REGISTER_TAILQ()
82 rte_hash_crc(key, sad->keysize[key_type], sad->init_val), sa); in EAL_REGISTER_TAILQ()
87 ret = rte_hash_lookup_with_hash_data(sad->hash[RTE_IPSEC_SAD_SPI_ONLY], in EAL_REGISTER_TAILQ()
88 key, rte_hash_crc(key, sad->keysize[RTE_IPSEC_SAD_SPI_ONLY], in EAL_REGISTER_TAILQ()
89 sad->init_val), &tmp_val); in EAL_REGISTER_TAILQ()
96 sad->hash[RTE_IPSEC_SAD_SPI_ONLY], key, in EAL_REGISTER_TAILQ()
97 rte_hash_crc(key, sad->keysize[RTE_IPSEC_SAD_SPI_ONLY], in EAL_REGISTER_TAILQ()
98 sad->init_val), tmp_val); in EAL_REGISTER_TAILQ()
103 ret = rte_hash_lookup_with_hash(sad->hash[RTE_IPSEC_SAD_SPI_ONLY], key, in EAL_REGISTER_TAILQ()
104 rte_hash_crc(key, sad->keysize[RTE_IPSEC_SAD_SPI_ONLY], in EAL_REGISTER_TAILQ()
105 sad->init_val)); in EAL_REGISTER_TAILQ()
109 sad->cnt_arr[ret].cnt_dip += notexist; in EAL_REGISTER_TAILQ()
111 sad->cnt_arr[ret].cnt_dip_sip += notexist; in EAL_REGISTER_TAILQ()
117 rte_ipsec_sad_add(struct rte_ipsec_sad *sad, in rte_ipsec_sad_add() argument
124 if ((sad == NULL) || (key == NULL) || (sa == NULL) || in rte_ipsec_sad_add()
137 ret = rte_hash_lookup_with_hash_data(sad->hash[key_type], in rte_ipsec_sad_add()
138 key, rte_hash_crc(key, sad->keysize[key_type], in rte_ipsec_sad_add()
139 sad->init_val), &tmp_val); in rte_ipsec_sad_add()
145 ret = rte_hash_add_key_with_hash_data(sad->hash[key_type], in rte_ipsec_sad_add()
146 key, rte_hash_crc(key, sad->keysize[key_type], in rte_ipsec_sad_add()
147 sad->init_val), tmp_val); in rte_ipsec_sad_add()
151 return add_specific(sad, key, key_type, sa); in rte_ipsec_sad_add()
168 del_specific(struct rte_ipsec_sad *sad, const void *key, int key_type) in del_specific() argument
175 ret = rte_hash_del_key_with_hash(sad->hash[key_type], key, in del_specific()
176 rte_hash_crc(key, sad->keysize[key_type], sad->init_val)); in del_specific()
181 ret = rte_hash_lookup_with_hash_data(sad->hash[RTE_IPSEC_SAD_SPI_ONLY], in del_specific()
182 key, rte_hash_crc(key, sad->keysize[RTE_IPSEC_SAD_SPI_ONLY], in del_specific()
183 sad->init_val), &tmp_val); in del_specific()
187 &sad->cnt_arr[ret].cnt_dip : in del_specific()
188 &sad->cnt_arr[ret].cnt_dip_sip; in del_specific()
202 sad->hash[RTE_IPSEC_SAD_SPI_ONLY], key, in del_specific()
203 rte_hash_crc(key, sad->keysize[RTE_IPSEC_SAD_SPI_ONLY], in del_specific()
204 sad->init_val)); in del_specific()
207 sad->hash[RTE_IPSEC_SAD_SPI_ONLY], key, in del_specific()
208 rte_hash_crc(key, sad->keysize[RTE_IPSEC_SAD_SPI_ONLY], in del_specific()
209 sad->init_val), tmp_val); in del_specific()
216 rte_ipsec_sad_del(struct rte_ipsec_sad *sad, in rte_ipsec_sad_del() argument
223 if ((sad == NULL) || (key == NULL)) in rte_ipsec_sad_del()
227 ret = rte_hash_lookup_with_hash_data(sad->hash[key_type], in rte_ipsec_sad_del()
228 key, rte_hash_crc(key, sad->keysize[key_type], in rte_ipsec_sad_del()
229 sad->init_val), &tmp_val); in rte_ipsec_sad_del()
233 ret = rte_hash_del_key_with_hash(sad->hash[key_type], in rte_ipsec_sad_del()
234 key, rte_hash_crc(key, sad->keysize[key_type], in rte_ipsec_sad_del()
235 sad->init_val)); in rte_ipsec_sad_del()
241 sad->hash[key_type], key, in rte_ipsec_sad_del()
242 rte_hash_crc(key, sad->keysize[key_type], in rte_ipsec_sad_del()
243 sad->init_val), tmp_val); in rte_ipsec_sad_del()
248 return del_specific(sad, key, key_type); in rte_ipsec_sad_del()
261 struct rte_ipsec_sad *sad, *tmp_sad = NULL; in rte_ipsec_sad_create() local
289 sad = rte_zmalloc_socket(NULL, sizeof(*sad) + in rte_ipsec_sad_create()
292 if (sad == NULL) { in rte_ipsec_sad_create()
296 memcpy(sad->name, sad_name, sizeof(sad_name)); in rte_ipsec_sad_create()
300 sad->init_val = hash_params.hash_func_init_val; in rte_ipsec_sad_create()
307 snprintf(hash_name, sizeof(hash_name), "sad_1_%p", sad); in rte_ipsec_sad_create()
309 sad->keysize[RTE_IPSEC_SAD_SPI_ONLY] = hash_params.key_len; in rte_ipsec_sad_create()
311 sad->hash[RTE_IPSEC_SAD_SPI_ONLY] = rte_hash_create(&hash_params); in rte_ipsec_sad_create()
312 if (sad->hash[RTE_IPSEC_SAD_SPI_ONLY] == NULL) { in rte_ipsec_sad_create()
313 rte_ipsec_sad_destroy(sad); in rte_ipsec_sad_create()
318 snprintf(hash_name, sizeof(hash_name), "sad_2_%p", sad); in rte_ipsec_sad_create()
325 sad->keysize[RTE_IPSEC_SAD_SPI_DIP] = hash_params.key_len; in rte_ipsec_sad_create()
328 sad->hash[RTE_IPSEC_SAD_SPI_DIP] = rte_hash_create(&hash_params); in rte_ipsec_sad_create()
329 if (sad->hash[RTE_IPSEC_SAD_SPI_DIP] == NULL) { in rte_ipsec_sad_create()
330 rte_ipsec_sad_destroy(sad); in rte_ipsec_sad_create()
335 snprintf(hash_name, sizeof(hash_name), "sad_3_%p", sad); in rte_ipsec_sad_create()
342 sad->keysize[RTE_IPSEC_SAD_SPI_DIP_SIP] = hash_params.key_len; in rte_ipsec_sad_create()
345 sad->hash[RTE_IPSEC_SAD_SPI_DIP_SIP] = rte_hash_create(&hash_params); in rte_ipsec_sad_create()
346 if (sad->hash[RTE_IPSEC_SAD_SPI_DIP_SIP] == NULL) { in rte_ipsec_sad_create()
347 rte_ipsec_sad_destroy(sad); in rte_ipsec_sad_create()
364 rte_ipsec_sad_destroy(sad); in rte_ipsec_sad_create()
373 rte_ipsec_sad_destroy(sad); in rte_ipsec_sad_create()
377 te->data = (void *)sad; in rte_ipsec_sad_create()
380 return sad; in rte_ipsec_sad_create()
387 struct rte_ipsec_sad *sad = NULL; in rte_ipsec_sad_find_existing() local
403 sad = (struct rte_ipsec_sad *) te->data; in rte_ipsec_sad_find_existing()
404 if (strncmp(sad_name, sad->name, RTE_IPSEC_SAD_NAMESIZE) == 0) in rte_ipsec_sad_find_existing()
414 return sad; in rte_ipsec_sad_find_existing()
418 rte_ipsec_sad_destroy(struct rte_ipsec_sad *sad) in rte_ipsec_sad_destroy() argument
423 if (sad == NULL) in rte_ipsec_sad_destroy()
430 if (te->data == (void *)sad) in rte_ipsec_sad_destroy()
438 rte_hash_free(sad->hash[RTE_IPSEC_SAD_SPI_ONLY]); in rte_ipsec_sad_destroy()
439 rte_hash_free(sad->hash[RTE_IPSEC_SAD_SPI_DIP]); in rte_ipsec_sad_destroy()
440 rte_hash_free(sad->hash[RTE_IPSEC_SAD_SPI_DIP_SIP]); in rte_ipsec_sad_destroy()
441 rte_free(sad); in rte_ipsec_sad_destroy()
456 __ipsec_sad_lookup(const struct rte_ipsec_sad *sad, in __ipsec_sad_lookup() argument
478 sad->init_val); in __ipsec_sad_lookup()
484 rte_hash_lookup_with_hash_bulk_data(sad->hash[RTE_IPSEC_SAD_SPI_ONLY], in __ipsec_sad_lookup()
495 sad->keysize[RTE_IPSEC_SAD_SPI_DIP_SIP], in __ipsec_sad_lookup()
496 sad->init_val); in __ipsec_sad_lookup()
502 sad->keysize[RTE_IPSEC_SAD_SPI_DIP], in __ipsec_sad_lookup()
503 sad->init_val); in __ipsec_sad_lookup()
515 sad->hash[RTE_IPSEC_SAD_SPI_DIP], in __ipsec_sad_lookup()
525 sad->hash[RTE_IPSEC_SAD_SPI_DIP_SIP], in __ipsec_sad_lookup()
540 rte_ipsec_sad_lookup(const struct rte_ipsec_sad *sad, in rte_ipsec_sad_lookup() argument
546 if (unlikely((sad == NULL) || (keys == NULL) || (sa == NULL))) in rte_ipsec_sad_lookup()
551 found += __ipsec_sad_lookup(sad, in rte_ipsec_sad_lookup()