X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fdhcp%2Fclient.h;fp=src%2Fplugins%2Fdhcp%2Fclient.h;h=e9e3bcf67c4fee6ec419c05cb8dfce928024a2bb;hb=6bcc6a45573f387fa6c1682069da7ee9036cabe2;hp=68176abadf662cf1b542691367fb417b96a0a135;hpb=d7b306657d205fddd781e982aec5f3c3dc69fa88;p=vpp.git diff --git a/src/plugins/dhcp/client.h b/src/plugins/dhcp/client.h index 68176abadf6..e9e3bcf67c4 100644 --- a/src/plugins/dhcp/client.h +++ b/src/plugins/dhcp/client.h @@ -42,6 +42,24 @@ struct dhcp_client_t_; typedef void (*dhcp_event_cb_t) (u32 client_index, const struct dhcp_client_t_ * client); +/** + * The set of addresses/mask that contribute forwarding info + * and are installed. + */ +typedef struct dhcp_client_fwd_addresses_t_ +{ + /** the address assigned to this client and it's mask */ + ip4_address_t leased_address; + u32 subnet_mask_width; + + /** the address of the DHCP server handing out the address. + this is used to send any unicast messages */ + ip4_address_t dhcp_server; + + /** The address of this client's default gateway - may not be present */ + ip4_address_t router_address; +} dhcp_client_fwd_addresses_t; + typedef struct dhcp_client_t_ { dhcp_client_state_t state; @@ -59,11 +77,16 @@ typedef struct dhcp_client_t_ /* DHCP transaction ID, a random number */ u32 transaction_id; - /* leased address, other learned info DHCP */ - ip4_address_t leased_address; /* from your_ip_address field */ - ip4_address_t dhcp_server; - u32 subnet_mask_width; /* option 1 */ - ip4_address_t router_address; /* option 3 */ + /** + * leased address, other learned info DHCP + * the learned set is updated by new messages recieved in the DP + * the installed set is what's actually been added + */ + dhcp_client_fwd_addresses_t learned; + dhcp_client_fwd_addresses_t installed; + /* have local Addresses and default route been installed */ + u8 addresses_installed; + ip4_address_t *domain_server_address; /* option 6 */ u32 lease_renewal_interval; /* option 51 */ u32 lease_lifetime; /* option 59 */