X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fwireguard%2Fwireguard_api.c;h=fecf93c929054c0f890a3dc1a7eca08e9cc1983a;hb=aebfc285a89be20f68e5599b8d67dda8f20888a5;hp=d97ea8eb1bca6b3bd9cb89401f3f9ff2022dc752;hpb=dd630d15d3e9d13da9ed98d3171b9ec4529e4e66;p=vpp.git diff --git a/src/plugins/wireguard/wireguard_api.c b/src/plugins/wireguard/wireguard_api.c index d97ea8eb1bc..fecf93c9290 100644 --- a/src/plugins/wireguard/wireguard_api.c +++ b/src/plugins/wireguard/wireguard_api.c @@ -109,6 +109,7 @@ wireguard_if_send_details (index_t wgii, void *data) local->l_public, NOISE_PUBLIC_KEY_LEN); rmp->interface.sw_if_index = htonl (wgi->sw_if_index); rmp->interface.port = htons (wgi->port); + rmp->interface.user_instance = htonl (wgi->user_instance); ip_address_encode2 (&wgi->src_ip, &rmp->interface.src_ip); rmp->context = ctx->context; @@ -137,7 +138,15 @@ vl_api_wireguard_interface_dump_t_handler (vl_api_wireguard_interface_dump_t * .show_private_key = mp->show_private_key, }; - wg_if_walk (wireguard_if_send_details, &ctx); + u32 sw_if_index = ntohl (mp->sw_if_index); + if (sw_if_index == ~0) + wg_if_walk (wireguard_if_send_details, &ctx); + else + { + index_t wgii = wg_if_find_by_sw_if_index (sw_if_index); + if (wgii != INDEX_INVALID) + wireguard_if_send_details (wgii, &ctx); + } } static void @@ -259,7 +268,7 @@ vl_api_wireguard_peers_dump_t_handler (vl_api_wireguard_peers_dump_t * mp) if (mp->peer_index == ~0) wg_peer_walk (wg_api_send_peers_details, &ctx); else - wg_api_send_peers_details (mp->peer_index, &ctx); + wg_api_send_peers_details (ntohl (mp->peer_index), &ctx); } static vpe_client_registration_t * @@ -365,6 +374,18 @@ wg_api_peer_event (index_t peeri, wg_peer_flags flags) }; } +static void +vl_api_wg_set_async_mode_t_handler (vl_api_wg_set_async_mode_t *mp) +{ + wg_main_t *wmp = &wg_main; + vl_api_wg_set_async_mode_reply_t *rmp; + int rv = 0; + + wg_set_async_mode (mp->async_enable); + + REPLY_MACRO (VL_API_WG_SET_ASYNC_MODE_REPLY); +} + /* set tup the API message handling tables */ #include static clib_error_t *