From f3028250058d8493a8cd1932832db9465dc0fca1 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Thu, 6 Jul 2017 01:39:05 -0700 Subject: DHCP complete event sends mask length Change-Id: I4a529dfab5d0ce6b0bbc0ccbbd89c6b109dbf917 Signed-off-by: Neale Ranns --- src/vnet/dhcp/client.c | 3 ++- src/vnet/dhcp/dhcp.api | 2 ++ src/vnet/dhcp/dhcp_api.c | 5 +++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/vnet/dhcp/client.c b/src/vnet/dhcp/client.c index 7c3f7f6abd6..014f17a11b3 100644 --- a/src/vnet/dhcp/client.c +++ b/src/vnet/dhcp/client.c @@ -194,7 +194,7 @@ int dhcp_client_for_us (u32 bi, vlib_buffer_t * b, /* OK, we own the address (etc), add to the routing table(s) */ if (c->state == DHCP_REQUEST) { - void (*fp)(u32, u32, u8 *, u8, u8 *, u8 *, u8 *) = c->event_callback; + void (*fp)(u32, u32, u8 *, u8, u8, u8 *, u8 *, u8 *) = c->event_callback; dhcp_client_acquire_address (dcm, c); @@ -236,6 +236,7 @@ int dhcp_client_for_us (u32 bi, vlib_buffer_t * b, (*fp) (c->client_index, /* clinet index */ c->pid, c->hostname, + c->subnet_mask_width, 0, /* is_ipv6 */ (u8 *)&c->leased_address, /* host IP address */ (u8 *)&c->router_address, /* router IP address */ diff --git a/src/vnet/dhcp/dhcp.api b/src/vnet/dhcp/dhcp.api index eb0b070d22c..a2803728dd9 100644 --- a/src/vnet/dhcp/dhcp.api +++ b/src/vnet/dhcp/dhcp.api @@ -81,6 +81,7 @@ autoreply define dhcp_client_config @param client_index - opaque cookie to identify the sender @param pid - client pid registered to receive notification @param is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param mask_width - The length of the subnet mask assigned @param host_address - Host IP address @param router_address - Router IP address @param host_mac - Host MAC address @@ -91,6 +92,7 @@ define dhcp_compl_event u32 pid; u8 hostname[64]; u8 is_ipv6; + u8 mask_width; u8 host_address[16]; u8 router_address[16]; u8 host_mac[6]; diff --git a/src/vnet/dhcp/dhcp_api.c b/src/vnet/dhcp/dhcp_api.c index 2c0dd77df28..5ea93660340 100644 --- a/src/vnet/dhcp/dhcp_api.c +++ b/src/vnet/dhcp/dhcp_api.c @@ -187,8 +187,8 @@ dhcp_send_details (fib_protocol_t proto, void dhcp_compl_event_callback (u32 client_index, u32 pid, u8 * hostname, - u8 is_ipv6, u8 * host_address, u8 * router_address, - u8 * host_mac) + u8 mask_width, u8 is_ipv6, u8 * host_address, + u8 * router_address, u8 * host_mac) { unix_shared_memory_queue_t *q; vl_api_dhcp_compl_event_t *mp; @@ -205,6 +205,7 @@ dhcp_compl_event_callback (u32 client_index, u32 pid, u8 * hostname, len = (vec_len (hostname) < 63) ? vec_len (hostname) : 63; clib_memcpy (&mp->hostname, hostname, len); mp->hostname[len] = 0; + mp->mask_width = mask_width; clib_memcpy (&mp->host_address[0], host_address, 16); clib_memcpy (&mp->router_address[0], router_address, 16); -- cgit 1.2.3-korg