lisp: fix crash with arp and packet trace on

With packet trace on, VPP crashes when an arp packet arrives. This patch
fixes the crash and also ensures that the packet trace displays the eid
info.

Type: fix
Signed-off-by: Onong Tayeng <otayeng@cisco.com>
Change-Id: Iaad09a5e2b33e931ab9bd7bc3d4573b5ed5e4bfd
(cherry picked from commit a3960a8b74de5cef51db2c7575f8f2d71a013d0a)
This commit is contained in:
Onong Tayeng
2020-09-04 17:16:23 +05:30
committed by Andrew Yourtchenko
parent 911d7563cb
commit 7bae4911bf
2 changed files with 7 additions and 3 deletions

View File

@ -3552,7 +3552,11 @@ lisp_cp_lookup_inline (vlib_main_t * vm,
sizeof (*tr));
clib_memset (tr, 0, sizeof (*tr));
gid_address_copy (&tr->dst_eid, &dst);
if ((gid_address_type (&dst) == GID_ADDR_NDP) ||
(gid_address_type (&dst) == GID_ADDR_ARP))
clib_memcpy (&tr->dst_eid, &dst, sizeof (gid_address_t));
else
gid_address_copy (&tr->dst_eid, &dst);
ip_address_copy (&tr->map_resolver_ip,
&lcm->active_map_resolver);
}

View File

@ -41,7 +41,7 @@ serdes_fct write_fcts[GID_ADDR_TYPES] =
};
cast_fct cast_fcts[GID_ADDR_TYPES] =
{ ip_prefix_cast, lcaf_cast, mac_cast, sd_cast, nsh_cast, 0 /* arp */ ,
{ ip_prefix_cast, lcaf_cast, mac_cast, sd_cast, nsh_cast, no_addr_cast,
no_addr_cast
};
@ -51,7 +51,7 @@ addr_len_fct addr_len_fcts[GID_ADDR_TYPES] =
};
copy_fct copy_fcts[GID_ADDR_TYPES] =
{ ip_prefix_copy, lcaf_copy, mac_copy, sd_copy, nsh_copy, 0 /* arp */ ,
{ ip_prefix_copy, lcaf_copy, mac_copy, sd_copy, nsh_copy, no_addr_copy,
no_addr_copy
};