diff options
author | 2020-04-13 16:44:09 -0400 | |
---|---|---|
committer | 2020-04-13 16:44:42 -0400 | |
commit | fd0834262c517ea3a420fdba05fb95bc4141762b (patch) | |
tree | d4c5b72fd2734cc81120c7f4a1f6b98f9f06560e /src/vnet/dhcp/dhcp_api.c | |
parent | 5e62c84bb7058b58d9f0fa3b5eff9af93c073274 (diff) |
dhcp: fix unicast pkts, clean up state machine
Nominally a bug-fix cherry-pick, but completely manual. Closer to a
full feature backport minus binary api changes.
Send dhcp unicast packets to ip4-lookup. Otherwise, these packets
won't reach a dhcp server on a different subnet.
Do an immediate client scan after processing wakeup events.
Calculate the next process wakeup time by scanning all
clients.
Increase maximum (idle, no-clients-configured) timeout to 1000
seconds.
Reduce log spew.
Type: fix
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I3d10cd4c353298ed0b19e7e30887dc1d8d07b19e
(cherry picked from commit c54162981cdd41d65ed283df36955007552ddffe)
Diffstat (limited to 'src/vnet/dhcp/dhcp_api.c')
-rw-r--r-- | src/vnet/dhcp/dhcp_api.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/vnet/dhcp/dhcp_api.c b/src/vnet/dhcp/dhcp_api.c index 7935ad8ba01..fffce78e6cc 100644 --- a/src/vnet/dhcp/dhcp_api.c +++ b/src/vnet/dhcp/dhcp_api.c @@ -228,10 +228,12 @@ dhcp_client_lease_encode (vl_api_dhcp_lease_t * lease, clib_memcpy (&lease->hostname, client->hostname, len); lease->hostname[len] = 0; - lease->mask_width = client->subnet_mask_width; - clib_memcpy (&lease->host_address[0], (u8 *) & client->leased_address, + lease->mask_width = client->installed.subnet_mask_width; + clib_memcpy (&lease->host_address[0], + (u8 *) & client->installed.leased_address, sizeof (ip4_address_t)); - clib_memcpy (&lease->router_address[0], (u8 *) & client->router_address, + clib_memcpy (&lease->router_address[0], + (u8 *) & client->installed.router_address, sizeof (ip4_address_t)); lease->count = vec_len (client->domain_server_address); |