summaryrefslogtreecommitdiffstats
path: root/test/test_ipsec_ah.py
AgeCommit message (Expand)AuthorFilesLines
2019-12-23ipsec: Test and fix IPSec worker hand-offNeale Ranns1-1/+9
2019-11-08ipsec: remove dedicated IPSec tunnelsNeale Ranns1-0/+1
2019-06-18fib: fib api updatesNeale Ranns1-2/+1
2019-04-25crypto_ipsecmb: use pre-expanded keysDamjan Marion1-1/+1
2019-04-11IPSEC-MB: Use random & non-repeating IV (VPP-1642)Neale Ranns1-1/+1
2019-04-10crypto: Intel IPSEC-MB engineNeale Ranns1-39/+47
2019-04-10IPSEC: for each engine and algorithm testsNeale Ranns1-189/+229
2019-04-10Tests Cleanup: Fix missing calls to setUpClass/tearDownClass.Paul Vinciguerra1-0/+8
2019-04-08IPSEC TEST: various hash alogrithmsNeale Ranns1-8/+87
2019-03-28ipsec: USE_EXTENDED_SEQ_NUM -> USE_ESNDamjan Marion1-1/+1
2019-03-25IPSEC tests fnd fix or Extended Sequence NumbersNeale Ranns1-5/+29
2019-03-21IPSEC: Mutli-tunnel testsNeale Ranns1-2/+3
2019-02-28TEST: IPSEC NAT-T with UDP headerNeale Ranns1-2/+2
2019-02-18IPSEC: move SA counters into the stats segmentNeale Ranns1-22/+26
2019-02-05IPSEC: SPD counters in the stats sgementNeale Ranns1-9/+13
2019-01-31IPSEC: API modernisationNeale Ranns1-8/+20
2019-01-29make test: remove generic importsKlement Sekera1-1/+2
2019-01-25IPSEC: tests use opbject registryNeale Ranns1-234/+108
2019-01-24IPSEC Tests: to per-test setup and tearDownNeale Ranns1-102/+239
2018-12-02IPSEC-AH: anti-replay testingNeale Ranns1-2/+5
2018-11-15ipsec: infra for selecting backendsKlement Sekera1-11/+8
2018-10-03ipsec: add missing ipv6 ah code & ipv6 testsKlement Sekera1-70/+98
2018-06-24Revert "Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums""Klement Sekera1-189/+98
2018-06-22Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums"Ole Troan1-98/+189
2018-06-21ipsec: VPP-1316 calculate IP/TCP/UDP inner checksumsKlement Sekera1-189/+98
2018-05-11make test: reorganize ipsec_ah test codeKlement Sekera1-191/+124
2018-05-09ipsec: support UDP encap/decap for NAT traversalKlement Sekera1-4/+4
2018-04-17make test: ipsec test cleanupKlement Sekera1-7/+5
2018-03-19Scapy upgrade to 2.4.0.rc5Neale Ranns1-2/+1
2017-12-15ESP_AH_test_automation_scripts rev1“mystarrocks”1-0/+325
lass="p">(const ip_adjacency_t *adj, adj_delegate_type_t type) { return (adj_delegate_find_i(adj, type, NULL)); } void adj_delegate_remove (adj_index_t ai, adj_delegate_type_t type) { ip_adjacency_t *adj; adj_delegate_t *aed; u32 index = ~0; adj = adj_get(ai); aed = adj_delegate_find_i(adj, type, &index); ASSERT(NULL != aed); vec_del1(adj->ia_delegates, index); } static int adj_delegate_cmp_for_sort (void * v1, void * v2) { adj_delegate_t *aed1 = v1, *aed2 = v2; return (aed1->ad_type - aed2->ad_type); } static void adj_delegate_init (ip_adjacency_t *adj, adj_delegate_type_t adt, index_t adi) { adj_delegate_t aed = { .ad_adj_index = adj_get_index(adj), .ad_type = adt, .ad_index = adi, }; vec_add1(adj->ia_delegates, aed); vec_sort_with_function(adj->ia_delegates, adj_delegate_cmp_for_sort); } int adj_delegate_add (ip_adjacency_t *adj, adj_delegate_type_t adt, index_t adi) { adj_delegate_t *delegate; delegate = adj_delegate_get(adj, adt); if (NULL == delegate) { adj_delegate_init(adj, adt, adi); } else { return (-1); } return (0); } void adj_delegate_adj_deleted (ip_adjacency_t *adj) { adj_delegate_t *aed; vec_foreach(aed, adj->ia_delegates) { if (ad_vfts[aed->ad_type].adv_adj_deleted) { ad_vfts[aed->ad_type].adv_adj_deleted(aed); } } vec_reset_length(adj->ia_delegates); } u8* adj_delegate_format (u8* s, ip_adjacency_t *adj) { adj_delegate_t *aed; vec_foreach(aed, adj->ia_delegates) { if (ad_vfts[aed->ad_type].adv_format) { s = format(s, "{"); s = ad_vfts[aed->ad_type].adv_format(aed, s); s = format(s, "}"); } else { s = format(s, "{unknown delegate}"); } } return (s); } /** * adj_delegate_register_type * * Register the function table for a given type */ void adj_delegate_register_type (adj_delegate_type_t type, const adj_delegate_vft_t *vft) { /* * assert that one only registration is made per-node type */ if (vec_len(ad_vfts) > type) ASSERT(NULL == ad_vfts[type].adv_adj_deleted); vec_validate(ad_vfts, type); ad_vfts[type] = *vft; } /** * adj_delegate_register_new_type * * Register the function table for a new type */ adj_delegate_type_t adj_delegate_register_new_type (const adj_delegate_vft_t *vft) { adj_delegate_type_t type; type = ++ad_max_id; vec_validate(ad_vfts, type); ad_vfts[type] = *vft; return (type); }