X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ffib%2Ffib_entry_src_interface.c;fp=src%2Fvnet%2Ffib%2Ffib_entry_src_interface.c;h=88154ef90be3b4c9cd3102a5e85a16c6c8d0e88e;hb=3fd99047439fe56dcd070e6dcaea7bc14715749c;hp=140036012b95224f1e561d9ecb731ddf177e1739;hpb=e7ee300923d23b6a6eab42676c8dcce85da89bed;p=vpp.git diff --git a/src/vnet/fib/fib_entry_src_interface.c b/src/vnet/fib/fib_entry_src_interface.c index 140036012b9..88154ef90be 100644 --- a/src/vnet/fib/fib_entry_src_interface.c +++ b/src/vnet/fib/fib_entry_src_interface.c @@ -66,17 +66,22 @@ fib_entry_src_interface_path_swap (fib_entry_src_t *src, */ if (!(FIB_ENTRY_FLAG_LOCAL & src->fes_entry_flags)) { - adj = adj_get(fib_path_list_get_adj( - src->fes_pl, - fib_entry_get_default_chain_type(entry))); + adj_index_t ai; - if (IP_LOOKUP_NEXT_GLEAN == adj->lookup_next_index) + ai = fib_path_list_get_adj(src->fes_pl, + fib_entry_get_default_chain_type(entry)); + if (INDEX_INVALID != ai) { - /* - * the connected prefix will link to a glean on a non-p2p - * u.interface. - */ - adj->sub_type.glean.receive_addr = entry->fe_prefix.fp_addr; + adj = adj_get(ai); + + if (IP_LOOKUP_NEXT_GLEAN == adj->lookup_next_index) + { + /* + * the connected prefix will link to a glean on a non-p2p + * u.interface. + */ + adj->sub_type.glean.receive_addr = entry->fe_prefix.fp_addr; + } } } }