summaryrefslogtreecommitdiffstats
path: root/src/vnet/dhcp/dhcp_api.c
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2020-04-13 16:44:09 -0400
committerDave Barach <dave@barachs.net>2020-04-13 16:44:42 -0400
commitfd0834262c517ea3a420fdba05fb95bc4141762b (patch)
treed4c5b72fd2734cc81120c7f4a1f6b98f9f06560e /src/vnet/dhcp/dhcp_api.c
parent5e62c84bb7058b58d9f0fa3b5eff9af93c073274 (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.c8
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);