dhcp: vat support for the dhcp_client_dump API

Also: permanently solve ordering issues with the vpp builtin vat
plugin loader, by explicitly loading vat plugins once we're sure that
all data plane plugins have registered their APIs / API message
handlers.

Fix compilation / link errors when the vpp builtin vat plugin loader
is disbled by cmake configuration.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id553c63ae860ebfc196c5ad4b55c19e08fec2c9e
Signed-off-by: Ole Troan <ot@cisco.com>
This commit is contained in:
Dave Barach
2020-05-26 11:19:28 -04:00
committed by Florin Coras
parent ec3a3f16e4
commit 7f475bf4b7
6 changed files with 53 additions and 8 deletions

View File

@@ -262,7 +262,7 @@ dhcp_client_lease_encode (vl_api_dhcp_lease_t * lease,
size_t len;
u8 i;
lease->is_ipv6 = 0; // only support IPv6 clients
lease->is_ipv6 = 0; // only support IPv4 clients
lease->sw_if_index = ntohl (client->sw_if_index);
lease->state = ntohl (client->state);
len = clib_min (sizeof (lease->hostname) - 1, vec_len (client->hostname));

View File

@@ -366,10 +366,41 @@ api_dhcp6_pd_send_client_message (vat_main_t * vam)
return -1;
}
static void
vl_api_dhcp_client_details_t_handler (vl_api_dhcp_client_details_t * mp)
{
vat_main_t *vam = &vat_main;
vl_api_dhcp_client_t *cp;
vl_api_dhcp_lease_t *lp;
cp = &mp->client;
lp = &mp->lease;
print (vam->ofp, "sw_if_index %d, id '%s'", ntohl (cp->sw_if_index),
cp->id);
print (vam->ofp, "leased address %U, router address %U",
format_ip4_address, &lp->host_address.un,
format_ip4_address, &lp->router_address.un);
}
static int
api_dhcp_client_dump (vat_main_t * vam)
{
return -1;
vl_api_dhcp_plugin_control_ping_t *mp_ping;
vl_api_dhcp_client_dump_t *mp;
int ret;
M (DHCP_CLIENT_DUMP, mp);
S (mp);
/* Use a control ping for synchronization */
MPING (DHCP_PLUGIN_CONTROL_PING, mp_ping);
S (mp_ping);
W (ret);
return ret;
}
static int
@@ -396,8 +427,6 @@ api_dhcp_plugin_get_version (vat_main_t * vam)
return -1;
}
#define vl_api_dhcp_client_details_t_handler vl_noop_handler
static void
vl_api_dhcp_plugin_get_version_reply_t_handler
(vl_api_dhcp_plugin_get_version_reply_t * mp)