X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvcl%2Fvppcom.c;h=96a207b741f94753bbe90b27a19ed4f7b7cd213e;hb=87f63898b4ad54c081e8aaeb35e465b2fe23b9b3;hp=5e37dcfef396335d0ed08a8eae6802d680c6ab6c;hpb=f89bbbe300dad7bc479db535e7822199f98aca30;p=vpp.git diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index 5e37dcfef39..96a207b741f 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -3697,7 +3697,8 @@ vppcom_session_attr (uint32_t session_handle, uint32_t op, } if (!session->ext_config) { - vcl_session_alloc_ext_cfg (session, TRANSPORT_ENDPT_EXT_CFG_CRYPTO); + vcl_session_alloc_ext_cfg (session, TRANSPORT_ENDPT_EXT_CFG_CRYPTO, + sizeof (transport_endpt_ext_cfg_t)); } else if (session->ext_config->type != TRANSPORT_ENDPT_EXT_CFG_CRYPTO) { @@ -3744,6 +3745,23 @@ vppcom_session_attr (uint32_t session_handle, uint32_t op, *buflen); break; + case VPPCOM_ATTR_SET_ENDPT_EXT_CFG: + if (!(buffer && buflen && (*buflen > 0))) + { + rv = VPPCOM_EINVAL; + break; + } + if (session->ext_config) + { + rv = VPPCOM_EINVAL; + break; + } + vcl_session_alloc_ext_cfg (session, TRANSPORT_ENDPT_EXT_CFG_NONE, + *buflen + sizeof (u32)); + clib_memcpy (session->ext_config->data, buffer, *buflen); + session->ext_config->len = *buflen; + break; + default: rv = VPPCOM_EINVAL; break;