summaryrefslogtreecommitdiffstats
path: root/src/plugins/ixge
AgeCommit message (Expand)AuthorFilesLines
2019-02-02Deprecate old mutliarch code, phase 1Damjan Marion1-3/+1
2018-10-28physmem: coverity issuesDamjan Marion1-3/+0
2018-10-23Numa-aware, growable physical memory allocator (pmalloc)Damjan Marion2-26/+11
2018-10-23c11 safe string handling supportDave Barach1-7/+7
2018-10-22vlib: pci improvementsDamjan Marion1-13/+13
2018-10-22vlib: introduce vlib_buffer_get_{pa,va,current_va,current_pa} inlinesDamjan Marion1-16/+13
2018-09-25dpdk: show pluggable info in 'show hardware'Damjan Marion1-2/+2
2018-08-27cmake: Fix plugins .h includesMohsin Kazmi1-1/+7
2018-08-25cmake: improve add_vpp_plugin macroDamjan Marion1-3/+1
2018-08-17CMake as an alternative to autotools (experimental)Damjan Marion1-0/+16
2018-03-04vlib: map pci region by using vfio FD when vfio is usedDamjan Marion1-1/+1
2018-02-08add CLIB_HAVE_VEC128 with NEON intrinsics (VPP-1127)Gabriel Ganne1-1/+1
2018-01-31vlib: allocating buffers on thread-x and freeing them on thread-y causesSteven1-12/+6
2017-12-09vlib: PCI rework to support VFIODamjan Marion2-51/+51
2017-11-21dpdk: add l2_hdr_offset and l3_hdr_offset in vlib_buffer_tDamjan Marion1-2/+2
2017-10-25vlib: add support for multiple buffer poolsDamjan Marion1-4/+8
2017-10-24Add extern to *_main global variable declarations in header files.Dave Wallace1-2/+2
2017-10-04[aarch64] Fixes CLI crashes on dpaa2 platform.Christophe Fontaine1-5/+5
2017-09-07vlib physmem reworkDamjan Marion2-11/+23
2017-07-14vnet_buffer_t flags cleanupDamjan Marion1-6/+6
2017-07-12Deprecate support for flattened output nodesDamjan Marion1-1/+0
2017-05-09Fix remaining 32-bit compile issuesDamjan Marion1-2/+3
2017-04-06Use thread local storage for thread indexDamjan Marion1-1/+1
2017-03-22vlib: add description field in plugin registrationDamjan Marion1-0/+1
2017-03-10Retire vpp_liteDamjan Marion2-0/+4240
an> /* *INDENT-ON* */ /* *INDENT-OFF* */ typedef CLIB_PACKED (struct { ip4_header_t ip4; udp_header_t udp; esp_header_t esp; }) ip4_and_udp_and_esp_header_t; /* *INDENT-ON* */ /* *INDENT-OFF* */ typedef CLIB_PACKED (struct { ip6_header_t ip6; esp_header_t esp; }) ip6_and_esp_header_t; /* *INDENT-ON* */ /** * AES GCM Additional Authentication data */ typedef struct esp_aead_t_ { /** * for GCM: when using ESN it's: * SPI, seq-hi, seg-low * else * SPI, seq-low */ u32 data[3]; } __clib_packed esp_aead_t; #define ESP_SEQ_MAX (4294967295UL) #define ESP_MAX_BLOCK_SIZE (16) #define ESP_MAX_IV_SIZE (16) #define ESP_MAX_ICV_SIZE (32) u8 *format_esp_header (u8 * s, va_list * args); /* TODO seq increment should be atomic to be accessed by multiple workers */ always_inline int esp_seq_advance (ipsec_sa_t * sa) { if (PREDICT_TRUE (ipsec_sa_is_set_USE_ESN (sa))) { if (PREDICT_FALSE (sa->seq == ESP_SEQ_MAX)) { if (PREDICT_FALSE (ipsec_sa_is_set_USE_ANTI_REPLAY (sa) && sa->seq_hi == ESP_SEQ_MAX)) return 1; sa->seq_hi++; } sa->seq++; } else { if (PREDICT_FALSE (ipsec_sa_is_set_USE_ANTI_REPLAY (sa) && sa->seq == ESP_SEQ_MAX)) return 1; sa->seq++; } return 0; } always_inline void esp_aad_fill (vnet_crypto_op_t * op, const esp_header_t * esp, const ipsec_sa_t * sa) { esp_aead_t *aad; aad = (esp_aead_t *) op->aad; aad->data[0] = esp->spi; if (ipsec_sa_is_set_USE_ESN (sa)) { /* SPI, seq-hi, seq-low */ aad->data[1] = clib_host_to_net_u32 (sa->seq_hi); aad->data[2] = esp->seq; op->aad_len = 12; } else { /* SPI, seq-low */ aad->data[1] = esp->seq; op->aad_len = 8; } } #endif /* __ESP_H__ */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */