- return (adj_nbr_add_or_lock(dpo_proto_to_fib(path->fp_nh_proto),
- link,
- &zero_addr,
- path->attached.fp_interface));
+ adj_index_t ai;
+
+ ai = adj_nbr_add_or_lock(nh_proto, link, &zero_addr,
+ path->attached.fp_interface);
+
+ dpo_set(dpo, DPO_ADJACENCY, vnet_link_to_dpo_proto(link), ai);
+ adj_unlock(ai);
+ }
+ else if (vnet_sw_interface_is_nbma(vnet_get_main(),
+ path->attached.fp_interface))
+ {
+ dpo_copy(dpo, drop_dpo_get(path->fp_nh_proto));