X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsrv6%2Fsr_api.c;h=606eaa612aed676066c3cbdd7e06d59605bed895;hb=13e6fce7c5b3a16a6af0b27fc259ef3f65d8c861;hp=ffd0c4d04003a339e33866e91438e865b5527b77;hpb=1bf83b9d9bd9013cd07435c5bf0c5a584906857a;p=vpp.git diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index ffd0c4d0400..606eaa612ae 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -24,6 +24,7 @@ #include #include #include +#include #include @@ -239,7 +240,16 @@ static void send_sr_localsid_details else clib_memcpy (rmp->xconnect_nh_addr6, &t->next_hop.ip6, sizeof (ip6_address_t)); - rmp->xconnect_iface_or_vrf_table = htonl (t->sw_if_index); + + if (t->behavior == SR_BEHAVIOR_T || t->behavior == SR_BEHAVIOR_DT6) + rmp->xconnect_iface_or_vrf_table = + htonl (fib_table_get_table_id (t->sw_if_index, FIB_PROTOCOL_IP6)); + else if (t->behavior == SR_BEHAVIOR_DT4) + rmp->xconnect_iface_or_vrf_table = + htonl (fib_table_get_table_id (t->sw_if_index, FIB_PROTOCOL_IP4)); + else + rmp->xconnect_iface_or_vrf_table = htonl (t->sw_if_index); + rmp->context = context; vl_api_send_msg (reg, (u8 *) rmp);