goto out;
}
- fib_api_route_add_del (mp->mr_is_add,
- mp->mr_is_multipath,
- fib_index,
- &pfx,
- (mp->mr_route.mr_is_multicast ?
- FIB_ENTRY_FLAG_MULTICAST :
- FIB_ENTRY_FLAG_NONE), rpaths);
+ rv = fib_api_route_add_del (mp->mr_is_add,
+ mp->mr_is_multipath,
+ fib_index,
+ &pfx,
+ (mp->mr_route.mr_is_multicast ?
+ FIB_ENTRY_FLAG_MULTICAST :
+ FIB_ENTRY_FLAG_NONE), rpaths);
if (mp->mr_is_add && 0 == rv)
*stats_index = fib_table_entry_get_stats_index (fib_index, &pfx);
if (~0 == tunnel_sw_if_index)
tunnel_sw_if_index =
vnet_mpls_tunnel_create (mp->mt_tunnel.mt_l2_only,
- mp->mt_tunnel.mt_is_multicast);
+ mp->mt_tunnel.mt_is_multicast,
+ mp->mt_tunnel.mt_tag);
vnet_mpls_tunnel_path_add (tunnel_sw_if_index, rpaths);
tunnel_index = vnet_mpls_tunnel_get_index (tunnel_sw_if_index);
mp->_vl_msg_id = ntohs (VL_API_MPLS_TUNNEL_DETAILS);
mp->context = ctx->context;
- mp->mt_tunnel.mt_n_paths = ntohl (n);
+ mp->mt_tunnel.mt_n_paths = n;
mp->mt_tunnel.mt_sw_if_index = ntohl (mt->mt_sw_if_index);
mp->mt_tunnel.mt_tunnel_index = ntohl (mti);
mp->mt_tunnel.mt_l2_only = ! !(MPLS_TUNNEL_FLAG_L2 & mt->mt_flags);
mp->mt_tunnel.mt_is_multicast = ! !(MPLS_TUNNEL_FLAG_MCAST & mt->mt_flags);
+ memcpy (mp->mt_tunnel.mt_tag, mt->mt_tag, sizeof (mp->mt_tunnel.mt_tag));
fib_path_list_walk_w_ext (mt->mt_path_list,
&mt->mt_path_exts, fib_path_encode, &path_ctx);
return;
/* *INDENT-OFF* */
- pool_foreach (fib_table, mm->fibs,
- ({
+ pool_foreach (fib_table, mm->fibs)
+ {
send_mpls_table_details(am, reg, mp->context, fib_table);
- }));
+ }
/* *INDENT-ON* */
}
static clib_error_t *
mpls_api_hookup (vlib_main_t * vm)
{
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
#define _(N,n) \
vl_msg_api_set_handlers(VL_API_##N, #n, \