X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fipsec%2Fipsec.c;h=73c5cf4d7ab9e14419c45946d9ce9e970f08d39d;hb=47feb1146ec3b0e1cf2ebd83cd5211e1df261194;hp=9719d3a2d09a43383305e7eb0051d1961dea96fe;hpb=7c22ff72aa54d15484fdc70e0c1b8a9ec5e880e0;p=vpp.git diff --git a/src/vnet/ipsec/ipsec.c b/src/vnet/ipsec/ipsec.c index 9719d3a2d09..73c5cf4d7ab 100644 --- a/src/vnet/ipsec/ipsec.c +++ b/src/vnet/ipsec/ipsec.c @@ -38,13 +38,6 @@ ipsec_check_ah_support (ipsec_sa_t * sa) static clib_error_t * ipsec_check_esp_support (ipsec_sa_t * sa) { - if (sa->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_128) - return clib_error_return (0, "unsupported aes-gcm-128 crypto-alg"); - if (sa->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_192) - return clib_error_return (0, "unsupported aes-gcm-192 crypto-alg"); - if (sa->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_256) - return clib_error_return (0, "unsupported aes-gcm-256 crypto-alg"); - return 0; } @@ -269,51 +262,69 @@ ipsec_init (vlib_main_t * vm) vec_validate (im->crypto_algs, IPSEC_CRYPTO_N_ALG - 1); a = im->crypto_algs + IPSEC_CRYPTO_ALG_DES_CBC; - a->enc_op_type = VNET_CRYPTO_OP_DES_CBC_ENC; - a->dec_op_type = VNET_CRYPTO_OP_DES_CBC_DEC; + a->enc_op_id = VNET_CRYPTO_OP_DES_CBC_ENC; + a->dec_op_id = VNET_CRYPTO_OP_DES_CBC_DEC; a->iv_size = a->block_size = 8; a = im->crypto_algs + IPSEC_CRYPTO_ALG_3DES_CBC; - a->enc_op_type = VNET_CRYPTO_OP_3DES_CBC_ENC; - a->dec_op_type = VNET_CRYPTO_OP_3DES_CBC_DEC; + a->enc_op_id = VNET_CRYPTO_OP_3DES_CBC_ENC; + a->dec_op_id = VNET_CRYPTO_OP_3DES_CBC_DEC; a->iv_size = a->block_size = 8; a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_CBC_128; - a->enc_op_type = VNET_CRYPTO_OP_AES_128_CBC_ENC; - a->dec_op_type = VNET_CRYPTO_OP_AES_128_CBC_DEC; + a->enc_op_id = VNET_CRYPTO_OP_AES_128_CBC_ENC; + a->dec_op_id = VNET_CRYPTO_OP_AES_128_CBC_DEC; a->iv_size = a->block_size = 16; a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_CBC_192; - a->enc_op_type = VNET_CRYPTO_OP_AES_192_CBC_ENC; - a->dec_op_type = VNET_CRYPTO_OP_AES_192_CBC_DEC; + a->enc_op_id = VNET_CRYPTO_OP_AES_192_CBC_ENC; + a->dec_op_id = VNET_CRYPTO_OP_AES_192_CBC_DEC; a->iv_size = a->block_size = 16; a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_CBC_256; - a->enc_op_type = VNET_CRYPTO_OP_AES_256_CBC_ENC; - a->dec_op_type = VNET_CRYPTO_OP_AES_256_CBC_DEC; + a->enc_op_id = VNET_CRYPTO_OP_AES_256_CBC_ENC; + a->dec_op_id = VNET_CRYPTO_OP_AES_256_CBC_DEC; a->iv_size = a->block_size = 16; + a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_GCM_128; + a->enc_op_id = VNET_CRYPTO_OP_AES_128_GCM_ENC; + a->dec_op_id = VNET_CRYPTO_OP_AES_128_GCM_DEC; + a->iv_size = a->block_size = 8; + a->icv_size = 16; + + a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_GCM_192; + a->enc_op_id = VNET_CRYPTO_OP_AES_192_GCM_ENC; + a->dec_op_id = VNET_CRYPTO_OP_AES_192_GCM_DEC; + a->iv_size = a->block_size = 8; + a->icv_size = 16; + + a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_GCM_256; + a->enc_op_id = VNET_CRYPTO_OP_AES_256_GCM_ENC; + a->dec_op_id = VNET_CRYPTO_OP_AES_256_GCM_DEC; + a->iv_size = a->block_size = 8; + a->icv_size = 16; + vec_validate (im->integ_algs, IPSEC_INTEG_N_ALG - 1); ipsec_main_integ_alg_t *i; i = &im->integ_algs[IPSEC_INTEG_ALG_SHA1_96]; - i->op_type = VNET_CRYPTO_OP_SHA1_HMAC; + i->op_id = VNET_CRYPTO_OP_SHA1_HMAC; i->icv_size = 12; i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_256_96]; - i->op_type = VNET_CRYPTO_OP_SHA1_HMAC; + i->op_id = VNET_CRYPTO_OP_SHA1_HMAC; i->icv_size = 12; i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_256_128]; - i->op_type = VNET_CRYPTO_OP_SHA256_HMAC; + i->op_id = VNET_CRYPTO_OP_SHA256_HMAC; i->icv_size = 16; i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_384_192]; - i->op_type = VNET_CRYPTO_OP_SHA384_HMAC; + i->op_id = VNET_CRYPTO_OP_SHA384_HMAC; i->icv_size = 24; i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_512_256]; - i->op_type = VNET_CRYPTO_OP_SHA512_HMAC; + i->op_id = VNET_CRYPTO_OP_SHA512_HMAC; i->icv_size = 32; vec_validate_aligned (im->ptd, vlib_num_workers (), CLIB_CACHE_LINE_BYTES);