aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/lisp-cp/lisp_msg_serdes.c
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2016-04-20 17:21:55 +0200
committerFilip Tehlar <ftehlar@cisco.com>2016-04-29 14:16:53 +0200
commitbeceab90520d38aa0b90427d0c829d67ca843161 (patch)
tree580cc1f909a1422b42a4c72c409f61ffd7a175f3 /vnet/vnet/lisp-cp/lisp_msg_serdes.c
parent02655bd425cc596960b7efc74d1fbad3b3406419 (diff)
Add support for LCAF Instance ID
Change-Id: Ifce3f2bdcba099157a42d0b694f3161b9f700ed2 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Diffstat (limited to 'vnet/vnet/lisp-cp/lisp_msg_serdes.c')
-rw-r--r--vnet/vnet/lisp-cp/lisp_msg_serdes.c31
1 files changed, 9 insertions, 22 deletions
diff --git a/vnet/vnet/lisp-cp/lisp_msg_serdes.c b/vnet/vnet/lisp-cp/lisp_msg_serdes.c
index 48e40cffa86..6c5546014b1 100644
--- a/vnet/vnet/lisp-cp/lisp_msg_serdes.c
+++ b/vnet/vnet/lisp-cp/lisp_msg_serdes.c
@@ -25,32 +25,19 @@ lisp_msg_put_gid (vlib_buffer_t * b, gid_address_t * gid)
return p;
}
-void *
+static void *
lisp_msg_put_itr_rlocs (lisp_cp_main_t * lcm, vlib_buffer_t * b,
- ip_address_t * rlocs, u8 * locs_put)
+ gid_address_t * rlocs, u8 * locs_put)
{
- u8 * p, * bp, count = 0;
+ u8 * bp, count = 0;
u32 i;
- ip_address_t * addr;
- bp = vlib_buffer_get_current(b);
- for (i = 0; i < vec_len(rlocs); i++)
- {
- addr = &rlocs[i];
- switch (ip_addr_version(addr))
+ bp = vlib_buffer_get_current (b);
+ for (i = 0; i < vec_len (rlocs); i++)
{
- case IP4:
- p = vlib_buffer_put_uninit (b, ip4_address_size_to_put());
- ip4_address_put (p, &ip_addr_v4(addr));
- count++;
- break;
- case IP6:
- p = vlib_buffer_put_uninit (b, ip6_address_size_to_put());
- ip6_address_put (p, &ip_addr_v6(addr));
+ lisp_msg_put_gid (b, &rlocs[i]);
count++;
- break;
}
- }
*locs_put = count-1;
return bp;
@@ -92,8 +79,8 @@ nonce_build (u32 seed)
void *
lisp_msg_put_mreq (lisp_cp_main_t * lcm, vlib_buffer_t * b,
- gid_address_t * seid, gid_address_t * deid,
- ip_address_t * rlocs, u8 is_smr_invoked, u64 * nonce)
+ gid_address_t * seid, gid_address_t * deid,
+ gid_address_t * rlocs, u8 is_smr_invoked, u64 * nonce)
{
u8 loc_count = 0;
@@ -127,7 +114,7 @@ lisp_msg_push_ecm (vlib_main_t * vm, vlib_buffer_t *b, int lp, int rp,
gid_address_t *la, gid_address_t *ra)
{
ecm_hdr_t *h;
- ASSERT(gid_address_type(la) == IP_PREFIX);
+ ASSERT(gid_address_type(la) == GID_ADDR_IP_PREFIX);
/* Push inner ip and udp */
pkt_push_udp_and_ip (vm, b, lp, rp, &gid_address_ip(la),