- {
- case 53: /* dhcp message type */
- dhcp_message_type = o->data[0];
- break;
-
- case 51: /* lease time */
- {
- u32 lease_time_in_seconds =
- clib_host_to_net_u32 (o->data_as_u32[0]);
- c->lease_expires = now + (f64) lease_time_in_seconds;
- c->lease_lifetime = lease_time_in_seconds;
- /* Set a sensible default, in case we don't get opt 58 */
- c->lease_renewal_interval = lease_time_in_seconds / 2;
- }
- break;
-
- case 58: /* lease renew time in seconds */
- {
- u32 lease_renew_time_in_seconds =
- clib_host_to_net_u32 (o->data_as_u32[0]);
- c->lease_renewal_interval = lease_renew_time_in_seconds;
- }
- break;
-
- case 54: /* dhcp server address */
- c->dhcp_server.as_u32 = o->data_as_u32[0];
- break;
-
- case 1: /* subnet mask */
- {
- u32 subnet_mask =
- clib_host_to_net_u32 (o->data_as_u32[0]);
- c->subnet_mask_width = count_set_bits (subnet_mask);
- }
- break;
- case 3: /* router address */
- {
- u32 router_address = o->data_as_u32[0];
- c->router_address.as_u32 = router_address;
- }
- break;
-
- case 12: /* hostname */
- {
- /* Replace the existing hostname if necessary */
- vec_free (c->hostname);
- vec_validate (c->hostname, o->length - 1);
- clib_memcpy (c->hostname, o->data, o->length);
- }
- break;
-
- /* $$$$ Your message in this space, parse more options */
- default:
- break;
- }
+ {
+ case 53: /* dhcp message type */
+ dhcp_message_type = o->data[0];
+ break;
+
+ case 51: /* lease time */
+ {
+ u32 lease_time_in_seconds =
+ clib_host_to_net_u32 (o->data_as_u32[0]);
+ // for debug: lease_time_in_seconds = 20; /*$$$$*/
+ c->lease_expires = now + (f64) lease_time_in_seconds;
+ c->lease_lifetime = lease_time_in_seconds;
+ /* Set a sensible default, in case we don't get opt 58 */
+ c->lease_renewal_interval = lease_time_in_seconds / 2;
+ }
+ break;
+
+ case 58: /* lease renew time in seconds */
+ {
+ u32 lease_renew_time_in_seconds =
+ clib_host_to_net_u32 (o->data_as_u32[0]);
+ c->lease_renewal_interval = lease_renew_time_in_seconds;
+ }
+ break;
+
+ case 54: /* dhcp server address */
+ c->dhcp_server.as_u32 = o->data_as_u32[0];
+ break;
+
+ case 1: /* subnet mask */
+ {
+ u32 subnet_mask = clib_host_to_net_u32 (o->data_as_u32[0]);
+ c->subnet_mask_width = count_set_bits (subnet_mask);
+ }
+ break;
+ case 3: /* router address */
+ {
+ u32 router_address = o->data_as_u32[0];
+ c->router_address.as_u32 = router_address;
+ }
+ break;
+ case 6: /* domain server address */
+ {
+ vec_free (c->domain_server_address);
+ vec_validate (c->domain_server_address,
+ o->length / sizeof (ip4_address_t) - 1);
+ clib_memcpy (c->domain_server_address, o->data, o->length);
+ }
+ break;
+ case 12: /* hostname */
+ {
+ /* Replace the existing hostname if necessary */
+ vec_free (c->hostname);
+ vec_validate (c->hostname, o->length - 1);
+ clib_memcpy (c->hostname, o->data, o->length);
+ }
+ break;
+
+ /* $$$$ Your message in this space, parse more options */
+ default:
+ break;
+ }