X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=inline;f=src%2Fvnet%2Fipsec%2Fikev2_payload.c;h=e5fa0149febcd1568ff69432c71197df70510c01;hb=b7b929931a07fbb27b43d5cd105f366c3e29807e;hp=dd14812b5501971f38105e54995125df2bf19d06;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vnet/ipsec/ikev2_payload.c b/src/vnet/ipsec/ikev2_payload.c index dd14812b550..e5fa0149feb 100644 --- a/src/vnet/ipsec/ikev2_payload.c +++ b/src/vnet/ipsec/ikev2_payload.c @@ -111,7 +111,7 @@ ikev2_payload_add_hdr (ikev2_payload_chain_t * c, u8 payload_type, int len) c->last_hdr_off = vec_len (c->data); vec_add2 (c->data, tmp, len); hdr = (ike_payload_header_t *) tmp; - memset (hdr, 0, len); + clib_memset (hdr, 0, len); hdr->length = clib_host_to_net_u16 (len); @@ -132,14 +132,29 @@ ikev2_payload_add_data (ikev2_payload_chain_t * c, u8 * data) void ikev2_payload_add_notify (ikev2_payload_chain_t * c, u16 msg_type, u8 * data) +{ + ikev2_payload_add_notify_2(c, msg_type, data, 0); +} + +void +ikev2_payload_add_notify_2 (ikev2_payload_chain_t * c, u16 msg_type, + u8 * data, ikev2_notify_t * notify) { ike_notify_payload_header_t *n; n = (ike_notify_payload_header_t *) ikev2_payload_add_hdr (c, - IKEV2_PAYLOAD_NOTIFY, - sizeof (*n)); + IKEV2_PAYLOAD_NOTIFY, + sizeof (*n)); n->msg_type = clib_host_to_net_u16 (msg_type); + if (notify) + { + n->protocol_id = notify->protocol_id; + if (notify->spi) + { + n->spi_size = 4; + } + } ikev2_payload_add_data (c, data); }