X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fudp%2Fudp_api.c;h=5f4081c2dcf81fa75339f9594cec563d444d8a12;hb=c5df8c71c;hp=43a39b82ef02ca2b9ebdf89d02b024637010085c;hpb=d0df49f26eabf2f534b567f3370e50c4e804aeea;p=vpp.git diff --git a/src/vnet/udp/udp_api.c b/src/vnet/udp/udp_api.c index 43a39b82ef0..5f4081c2dcf 100644 --- a/src/vnet/udp/udp_api.c +++ b/src/vnet/udp/udp_api.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Cisco and/or its affiliates. + * Copyright (c) 2018-2019 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -51,7 +51,7 @@ send_udp_encap_details (const udp_encap_t * ue, vl_api_registration_t * reg, vl_api_udp_encap_details_t *mp; mp = vl_msg_api_alloc (sizeof (*mp)); - memset (mp, 0, sizeof (*mp)); + clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = ntohs (VL_API_UDP_ENCAP_DETAILS); mp->context = context; @@ -86,7 +86,7 @@ send_udp_encap_details (const udp_encap_t * ue, vl_api_registration_t * reg, mp->udp_encap.table_id = htonl (fib_table_get_table_id (ue->ue_fib_index, ue->ue_ip_proto)); - mp->udp_encap.id = htonl (ue->ue_id); + mp->udp_encap.id = htonl (ue - udp_encap_pool); vl_api_send_msg (reg, (u8 *) mp); } @@ -115,12 +115,13 @@ vl_api_udp_encap_add_t_handler (vl_api_udp_encap_add_t * mp, vlib_main_t * vm) { vl_api_udp_encap_add_reply_t *rmp; ip46_address_t src_ip, dst_ip; - u32 fib_index, table_id, ue_id; + u32 fib_index, table_id; fib_protocol_t fproto; ip46_type_t itype; + index_t uei; int rv = 0; - ue_id = ntohl (mp->udp_encap.id); + uei = INDEX_INVALID; table_id = ntohl (mp->udp_encap.table_id); itype = ip_address_decode (&mp->udp_encap.src_ip, &src_ip); @@ -134,14 +135,20 @@ vl_api_udp_encap_add_t_handler (vl_api_udp_encap_add_t * mp, vlib_main_t * vm) goto done; } - udp_encap_add_and_lock (ue_id, fproto, fib_index, - &src_ip, &dst_ip, - ntohs (mp->udp_encap.src_port), - ntohs (mp->udp_encap.dst_port), - UDP_ENCAP_FIXUP_NONE); + uei = udp_encap_add_and_lock (fproto, fib_index, + &src_ip, &dst_ip, + ntohs (mp->udp_encap.src_port), + ntohs (mp->udp_encap.dst_port), + UDP_ENCAP_FIXUP_NONE); done: - REPLY_MACRO (VL_API_UDP_ENCAP_ADD_REPLY); + /* *INDENT-OFF* */ + REPLY_MACRO2 (VL_API_UDP_ENCAP_ADD_REPLY, + ({ + rmp->id = ntohl (uei); + })); + /* *INDENT-ON* */ + } static void