Add support for protocol aliases. Switch BOOTP to DHCP.
authorGerald Combs <gerald@wireshark.org>
Tue, 28 Aug 2018 22:38:33 +0000 (15:38 -0700)
committerAnders Broman <a.broman58@gmail.com>
Fri, 31 Aug 2018 05:25:17 +0000 (05:25 +0000)
Add support for aliasing one protocol name to another and for filtering
using aliased fields. Mark aliased fields as deprecated.

Rename the BOOTP dissector to DHCP and alias "bootp" to "dhcp". This
lets you use both "dhcp.type" and "bootp.type" as display filter fields
without having to duplicate all 500+ DHCP/BOOTP fields.

To do:
- Add checks to proto.c:check_valid_filter_name_or_fail?
- Transition SSL to TLS.
- Rename packet-bootp.c to packet-dhcp.c?

Change-Id: I29977859995e8347d80b8e83f1618db441b10279
Ping-Bug: 14922
Reviewed-on: https://code.wireshark.org/review/29327
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
14 files changed:
docbook/release-notes.asciidoc
docbook/wsug_src/WSUG_chapter_work.asciidoc
epan/dfilter/scanner.l
epan/dissectors/packet-bootp.c
epan/dissectors/packet-catapult-dct2000.c
epan/proto.c
epan/proto.h
test/lua/field.lua
test/lua/listener.lua
test/lua/nstime.lua
test/lua/pinfo.lua
test/lua/proto.lua
tools/oss-fuzzshark/build.sh
ui/qt/widgets/syntax_line_edit.cpp

index b1d38589597d6516c67424432cafd7f07c058e38..f8aae43a2db8ced09c8af6fe1f5f4fdd34fa93cf 100644 (file)
@@ -45,6 +45,9 @@ since version 2.6.0:
 * The TCP dissector gained a new “Reassemble out-of-order segments” preference
   to fix dissection and decryption issues in case TCP segments are received
   out-of-order. See the User’s Guide, chapter _TCP Reassembly_ for details.
+* The BOOTP dissector has been renamed to DHCP. With the exception of
+  “bootp.dhcp”, the old “bootp.*” display filter fields are still supported
+  but may be removed in a future release.
 
 === Removed Features and Support
 
index 46e08c001c65bad3c17626d2537e9a8c96211fad..0a61b8ce300cd4a7effd81edc0618a0b2eb8b87c 100644 (file)
@@ -488,8 +488,10 @@ These packets can be found with `count(ip.addr) > 2`.
 
 ==== A Common Mistake
 
-Using the != operator on combined expressions like eth.addr, ip.addr, tcp.port,
-and udp.port will probably not work as expected.
+Using the != operator on combined expressions like eth.addr, ip.addr,
+tcp.port, and udp.port will probably not work as expected. Wireshark
+will show the warning “"!=" is deprecated or may have unexpected
+results” when you use it.
 
 Often people use a filter string to display something like `ip.addr == 1.2.3.4`
 which will display all packets containing the IP address 1.2.3.4.
@@ -511,8 +513,27 @@ exists with a value of 1.2.3.4”, or in other words, “filter out all packets
 for which there are no occurrences of a field named ip.addr with the value
 1.2.3.4”.
 
-[[ChWorkFilterAddExpressionSection]]
+[[ChWorkBuildDisplayFilterTransitional]]
+
+==== Sometimes Fields Change Names
+
+As protocols evolve they sometimes change names or are superseded by
+newer standards. For example, DHCP extends and has largely replaced
+BOOTP and TLS has replaced SSL. If a protocol dissector originally used
+the older names and fields for a protocol the Wireshark development team
+might update it to use the newer names and fields. In such cases they
+will add an alias from the old protocol name to the new one in order to
+make the transition easier.
 
+For example, the DHCP dissector was originally developed for the BOOTP
+protocol but as of Wireshark 3.0 all of the “bootp” display filter
+fields have been renamed to their “dhcp” equivalents. You can still use
+the old filter names for the time being, e.g. “bootp.type” is equivalent
+to “dhcp.type” but Wireshark will show the warning “"bootp.type" is
+deprecated or may have unexpected results” when you use it. Support for
+the deprecated fields may be removed in the future.
+
+[[ChWorkFilterAddExpressionSection]]
 
 === The “Filter Expression” dialog box
 
index 735e37caef9911a69c97e41de9fb3c96c80f1900..f04c2ee56177fa05f3b716dc454b358af7cd2fa1 100644 (file)
@@ -370,18 +370,23 @@ static void mark_lval_deprecated(const char *s);
                /* Yes, it's a field name */
                return set_lval(TOKEN_FIELD, hfinfo);
        }
-       else {
-               /* Is it a function name? */
-               df_func_def = df_func_lookup(yytext);
-               if (df_func_def) {
-                   /* yes, it's a dfilter function */
-                   return set_lval(TOKEN_FUNCTION, df_func_def);
-               }
-               else {
-                   /* No, so treat it as an unparsed string */
-                   return set_lval(TOKEN_UNPARSED, yytext);
-               }
+
+       hfinfo = proto_registrar_get_byalias(yytext);
+       if (hfinfo) {
+               /* Yes, it's an aliased field name */
+               /* XXX Do we need to make a copy of yytext? dfilter_compile
+                * will dup this later on. */
+               mark_lval_deprecated(yytext);
+               return set_lval(TOKEN_FIELD, hfinfo);
+       }
+
+       df_func_def = df_func_lookup(yytext);
+       if (df_func_def) {
+               /* Yes, it's a dfilter function */
+               return set_lval(TOKEN_FUNCTION, df_func_def);
        }
+       /* No match, so treat it as an unparsed string */
+       return set_lval(TOKEN_UNPARSED, yytext);
 }
 
 . {
index e67560c76f799c3c0be4eba84e84aef075c5ac7e..d94f14513971f021f9155d621ab3a1d429a04c4f 100644 (file)
@@ -1,5 +1,5 @@
 /* packet-bootp.c
- * Routines for BOOTP/DHCP packet disassembly
+ * Routines for DHCP/BOOTP packet disassembly
  *
  * Copyright 1998, Gilbert Ramirez <gram@alumni.rice.edu>
  * Copyright 2004, Thomas Anders <thomas.anders [AT] blue-cable.de>
@@ -92,7 +92,7 @@
  */
 
 /*
- * Some of the development of the BOOTP/DHCP protocol decoder was sponsored by
+ * Some of the development of the DHCP/BOOTP protocol decoder was sponsored by
  * Cable Television Laboratories, Inc. ("CableLabs") based upon proprietary
  * CableLabs' specifications. Your license and use of this protocol decoder
  * does not mean that you are licensed to use the CableLabs'
 #include <epan/strutil.h>
 #include <wsutil/str_util.h>
 #include <wsutil/strtoi.h>
-void proto_register_bootp(void);
-void proto_reg_handoff_bootp(void);
-
-static int bootp_dhcp_tap = -1;
-static int proto_bootp = -1;
-static int hf_bootp_type = -1;
-static int hf_bootp_hw_type = -1;
-static int hf_bootp_hw_len = -1;
-static int hf_bootp_hops = -1;
-static int hf_bootp_id = -1;
-static int hf_bootp_secs = -1;
-static int hf_bootp_flags = -1;
-static int hf_bootp_flags_broadcast = -1;
-static int hf_bootp_flags_reserved = -1;
-static int hf_bootp_ip_client = -1;
-static int hf_bootp_ip_your = -1;
-static int hf_bootp_ip_server = -1;
-static int hf_bootp_ip_relay = -1;
-static int hf_bootp_hw_addr = -1;
-static int hf_bootp_hw_addr_padding = -1;
-static int hf_bootp_hw_ether_addr = -1;
-static int hf_bootp_server = -1;
-static int hf_bootp_file = -1;
-static int hf_bootp_cookie = -1;
-static int hf_bootp_vendor_specific_options = -1;
-static int hf_bootp_dhcp = -1;
-static int hf_bootp_fqdn_flags = -1;
-static int hf_bootp_fqdn_s = -1;
-static int hf_bootp_fqdn_o = -1;
-static int hf_bootp_fqdn_e = -1;
-static int hf_bootp_fqdn_n = -1;
-static int hf_bootp_fqdn_mbz = -1;
-static int hf_bootp_fqdn_rcode1 = -1;
-static int hf_bootp_fqdn_rcode2 = -1;
-static int hf_bootp_fqdn_name = -1;
-static int hf_bootp_fqdn_asciiname = -1;
-static int hf_bootp_pkt_mta_cap_len = -1;
-static int hf_bootp_pkt_mta_cap_type = -1;
-static int hf_bootp_docsis_cm_cap_type = -1;
-static int hf_bootp_docsis_cm_cap_len = -1;
-static int hf_bootp_client_identifier_uuid = -1;
-static int hf_bootp_client_id_iaid = -1;
-static int hf_bootp_client_id_duid_type = -1;
-static int hf_bootp_client_hardware_address = -1;
-static int hf_bootp_client_identifier_duid_llt_hw_type = -1;
-static int hf_bootp_client_identifier_duid_ll_hw_type = -1;
-static int hf_bootp_client_identifier_time = -1;
-static int hf_bootp_client_identifier_link_layer_address = -1;
-static int hf_bootp_client_identifier_enterprise_num = -1;
-static int hf_bootp_client_identifier = -1;
-static int hf_bootp_client_identifier_type = -1;
-static int hf_bootp_client_identifier_undef = -1;
-static int hf_bootp_option_type = -1;
-static int hf_bootp_option_length = -1;
-static int hf_bootp_option_value = -1;
-static int hf_bootp_option_value_8 = -1;
-static int hf_bootp_option_value_16 = -1;
-static int hf_bootp_option_value_u32 = -1;
-static int hf_bootp_option_value_i32 = -1;
-static int hf_bootp_option_value_stringz = -1;
-static int hf_bootp_option_value_ip_address = -1;
-static int hf_bootp_option_value_boolean = -1;
-static int hf_bootp_suboption_length = -1;
-
-static int hf_bootp_option_padding = -1;                               /* 0 */
-static int hf_bootp_option_subnet_mask = -1;                           /* 1 */
-static int hf_bootp_option_time_offset = -1;                           /* 2 */
-static int hf_bootp_option_router = -1;                                        /* 3 */
-static int hf_bootp_option_time_server = -1;                           /* 4 */
-static int hf_bootp_option_name_server = -1;                           /* 5 */
-static int hf_bootp_option_domain_name_server = -1;                    /* 6 */
-static int hf_bootp_option_log_server = -1;                            /* 7 */
-static int hf_bootp_option_quotes_server = -1;                         /* 8 */
-static int hf_bootp_option_lpr_server = -1;                            /* 9 */
-static int hf_bootp_option_impress_server = -1;                                /* 10 */
-static int hf_bootp_option_resource_location_server = -1;              /* 11 */
-static int hf_bootp_option_hostname = -1;                              /* 12 */
-static int hf_bootp_option_boot_file_size = -1;                                /* 13 */
-static int hf_bootp_option_merit_dump_file = -1;                       /* 14 */
-static int hf_bootp_option_domain_name = -1;                           /* 15 */
-static int hf_bootp_option_swap_server = -1;                           /* 16 */
-static int hf_bootp_option_root_path = -1;                             /* 17 */
-static int hf_bootp_option_extension_path = -1;                                /* 18 */
-static int hf_bootp_option_ip_forwarding = -1;                         /* 19 */
-static int hf_bootp_option_non_local_source_routing = -1;              /* 20 */
-static int hf_bootp_option_policy_filter_ip = -1;                      /* 21 - IP address */
-static int hf_bootp_option_policy_filter_subnet_mask = -1;             /* 21 - Subnet mask */
-static int hf_bootp_option_max_datagram_reassembly_size = -1;          /* 22 */
-static int hf_bootp_option_default_ip_ttl = -1;                                /* 23 */
-static int hf_bootp_option_path_mtu_aging_timeout = -1;                        /* 24 */
-static int hf_bootp_option_path_mtu_plateau_table_item = -1;           /* 25 */
-static int hf_bootp_option_interface_mtu = -1;                         /* 26 */
-static int hf_bootp_option_all_subnets_are_local = -1;                 /* 27 */
-static int hf_bootp_option_broadcast_address = -1;                     /* 28 */
-static int hf_bootp_option_perform_mask_discovery = -1;                        /* 29 */
-static int hf_bootp_option_mask_supplier = -1;                         /* 30 */
-static int hf_bootp_option_perform_router_discover = -1;               /* 31 */
-static int hf_bootp_option_router_solicitation_address = -1;           /* 32 */
-static int hf_bootp_option_static_route_ip = -1;                       /* 33 - Destination IP */
-static int hf_bootp_option_static_route_router = -1;                   /* 33 - Router */
-static int hf_bootp_option_trailer_encapsulation = -1;                 /* 34 */
-static int hf_bootp_option_arp_cache_timeout = -1;                     /* 35 */
-static int hf_bootp_option_ethernet_encapsulation = -1;                        /* 36 */
-static int hf_bootp_option_tcp_default_ttl = -1;                       /* 37 */
-static int hf_bootp_option_tcp_keepalive_interval = -1;                        /* 38 */
-static int hf_bootp_option_tcp_keepalive_garbage = -1;                 /* 39 */
-static int hf_bootp_option_nis_domain = -1;                            /* 40 */
-static int hf_bootp_option_nis_server = -1;                            /* 41 */
-static int hf_bootp_option_ntp_server = -1;                            /* 42 */
-
-static int hf_bootp_option43_value = -1;                               /* 43 suboption value */
-static int hf_bootp_option43_value_8 = -1;                             /* 43 suboption value */
-static int hf_bootp_option43_value_32 = -1;                            /* 43 suboption value */
-static int hf_bootp_option43_value_stringz = -1;                       /* 43 suboption value */
-static int hf_bootp_option43_value_ip_address = -1;                    /* 43 suboption value */
-
-static int hf_bootp_option43_pxeclient_suboption = -1;                 /* 43 suboption */
-static int hf_bootp_option43_pxeclient_padding = -1;                   /* 43:0 PXE  */
-static int hf_bootp_option43_pxeclient_mtftp_ip = -1;                  /* 43:1 PXE  */
-static int hf_bootp_option43_pxeclient_mtftp_client_port = -1;         /* 43:2 PXE  */
-static int hf_bootp_option43_pxeclient_mtftp_server_port = -1;         /* 43:3 PXE  */
-static int hf_bootp_option43_pxeclient_mtftp_timeout = -1;             /* 43:4 PXE  */
-static int hf_bootp_option43_pxeclient_mtftp_delay = -1;               /* 43:5 PXE  */
-static int hf_bootp_option43_pxeclient_discovery_control = -1;         /* 43:6 PXE  */
-static int hf_bootp_option43_pxeclient_multicast_address = -1;         /* 43:7 PXE  */
-static int hf_bootp_option43_pxeclient_boot_servers = -1;              /* 43:8 PXE  */
-static int hf_bootp_option43_pxeclient_boot_menu = -1;                 /* 43:9 PXE  */
-static int hf_bootp_option43_pxeclient_menu_prompt = -1;               /* 43:10 PXE  */
-static int hf_bootp_option43_pxeclient_multicast_address_alloc = -1;   /* 43:11 PXE  */
-static int hf_bootp_option43_pxeclient_credential_types = -1;          /* 43:12 PXE  */
-static int hf_bootp_option43_pxeclient_boot_item = -1;                 /* 43:71 PXE  */
-static int hf_bootp_option43_pxeclient_end = -1;                       /* 43:255 PXE */
-
-static int hf_bootp_option43_cl_suboption = -1;                                /* 43 suboption */
-static int hf_bootp_option43_cl_padding = -1;                          /* 43:0 CL  */
-static int hf_bootp_option43_cl_suboption_request_list = -1;           /* 43:1 CL  */
-static int hf_bootp_option43_cl_device_type = -1;                      /* 43:2 CL  */
-static int hf_bootp_option43_cl_esafe_type = -1;                       /* 43:3 CL  */
-static int hf_bootp_option43_cl_serial_number = -1;                    /* 43:4 CL  */
-static int hf_bootp_option43_cl_hardware_version = -1;                 /* 43:5 CL  */
-static int hf_bootp_option43_cl_software_version = -1;                 /* 43:6 CL  */
-static int hf_bootp_option43_cl_boot_rom_version = -1;                 /* 43:7 CL  */
-static int hf_bootp_option43_cl_oui_bytes = -1;                                /* 43:8 CL  */
-static int hf_bootp_option43_cl_oui_string = -1;                       /* 43:8 CL  */
-static int hf_bootp_option43_cl_model_number = -1;                     /* 43:9 CL  */
-static int hf_bootp_option43_cl_vendor_name10 = -1;                    /* 43:10 CL  */
-static int hf_bootp_option43_cl_address_realm = -1;                    /* 43:11 CL  */
-static int hf_bootp_option43_cl_cm_ps_system_desc = -1;                        /* 43:12 CL  */
-static int hf_bootp_option43_cl_cm_ps_firmware_revision = -1;          /* 43:13 CL  */
-static int hf_bootp_option43_cl_firewall_policy_file_version = -1;     /* 43:14 CL  */
-static int hf_bootp_option43_cl_esafe_config_file_devices = -1;                /* 43:15 CL  */
-static int hf_bootp_option43_cl_video_security_tape = -1;              /* 43:18 CL  */
-static int hf_bootp_option43_cl_mta_mac_address = -1;                  /* 43:31 CL  */
-static int hf_bootp_option43_cl_correlation_ID = -1;                   /* 43:32 CL  */
-static int hf_bootp_option43_cl_vendor_name51 = -1;                    /* 43:51 CL  */
-static int hf_bootp_option43_cl_cablecard_capability = -1;             /* 43:52 CL  */
-static int hf_bootp_option43_cl_device_id_ca = -1;                     /* 43:53 CL  */
-static int hf_bootp_option43_cl_device_id_x509 = -1;                   /* 43:54 CL  */
-static int hf_bootp_option43_cl_end = -1;                              /* 43:255 CL */
-
-static int hf_bootp_option43_bsdp_suboption = -1;                      /* 43 suboption */
-static int hf_bootp_option43_bsdp_message_type = -1;                   /* 43:1 BSDP  */
-static int hf_bootp_option43_bsdp_version = -1;                                /* 43:2 BSDP  */
-static int hf_bootp_option43_bsdp_server_identifier = -1;              /* 43:3 BSDP  */
-static int hf_bootp_option43_bsdp_server_priority = -1;                        /* 43:4 BSDP  */
-static int hf_bootp_option43_bsdp_reply_port = -1;                     /* 43:5 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_list_path = -1;           /* 43:6 BSDP  */
-static int hf_bootp_option43_bsdp_default_boot_image_id = -1;          /* 43:7 BSDP  */
-static int hf_bootp_option43_bsdp_selected_boot_image_id = -1;         /* 43:8 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_list = -1;                        /* 43:9 BSDP  */
-static int hf_bootp_option43_bsdp_netboot_firmware = -1;               /* 43:10 BSDP  */
-static int hf_bootp_option43_bsdp_attributes_filter_list = -1;         /* 43:11 BSDP  */
-static int hf_bootp_option43_bsdp_message_size = -1;                   /* 43:12 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_index = -1;               /* 43 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_attribute = -1;           /* 43 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_attribute_install = -1;   /* 43 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_attribute_kind = -1;      /* 43 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_attribute_reserved = -1;  /* 43 BSDP  */
-static int hf_bootp_option43_bsdp_image_desc = -1;                     /* 43 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_name = -1;                        /* 43 BSDP  */
-static int hf_bootp_option43_bsdp_boot_image_name_len = -1;            /* 43 BSDP  */
-
-static int hf_bootp_option43_alcatel_suboption = -1;                   /* 43 suboption */
-static int hf_bootp_option43_alcatel_padding = -1;                     /* 43:0 Alcatel  */
-static int hf_bootp_option43_alcatel_vlan_id = -1;                     /* 43:58 Alcatel  */
-static int hf_bootp_option43_alcatel_tftp1 = -1;                       /* 43:64 Alcatel  */
-static int hf_bootp_option43_alcatel_tftp2 = -1;                       /* 43:65 Alcatel  */
-static int hf_bootp_option43_alcatel_app_type = -1;                    /* 43:66 Alcatel  */
-static int hf_bootp_option43_alcatel_sip_url = -1;                     /* 43:67 Alcatel  */
-static int hf_bootp_option43_alcatel_end = -1;                         /* 43:255 Alcatel */
-
-static int hf_bootp_option43_arubaap_controllerip = -1;                        /* 43: ArubaAP*/
-static int hf_bootp_option43_arubaiap = -1;                            /* 43: ArubaIAP*/
-static int hf_bootp_option43_arubaiap_nameorg = -1;                    /* 43: ArubaIAP: Name Organisation*/
-static int hf_bootp_option43_arubaiap_ampip = -1;                      /* 43: ArubaIAP: AMP IP Address*/
-static int hf_bootp_option43_arubaiap_password = -1;                   /* 43 :ArubaIAP: Password*/
-
-static int hf_bootp_option_netbios_over_tcpip_name_server = -1;                /* 44 */
-static int hf_bootp_option_netbios_over_tcpip_dd_name_server = -1;     /* 45 */
-static int hf_bootp_option_netbios_over_tcpip_node_type = -1;          /* 46 */
-static int hf_bootp_option_netbios_over_tcpip_scope = -1;              /* 47 */
-static int hf_bootp_option_xwindows_system_font_server = -1;           /* 48 */
-static int hf_bootp_option_xwindows_system_display_manager = -1;       /* 49 */
-static int hf_bootp_option_requested_ip_address = -1;                  /* 50 */
-static int hf_bootp_option_ip_address_lease_time = -1;                 /* 51 */
-static int hf_bootp_option_option_overload = -1;                       /* 52 */
-static int hf_bootp_option_dhcp = -1;                                  /* 53 */
-static int hf_bootp_option_dhcp_server_id = -1;                                /* 54 */
-static int hf_bootp_option_parameter_request_list_item = -1;           /* 55 */
-static int hf_bootp_option_message = -1;                               /* 56 */
-static int hf_bootp_option_dhcp_max_message_size = -1;                 /* 57 */
-static int hf_bootp_option_renewal_time_value = -1;                    /* 58 */
-static int hf_bootp_option_rebinding_time_value = -1;                  /* 59 */
-static int hf_bootp_option_vendor_class_id = -1;                       /* 60 */
-static int hf_bootp_option_vendor_class_data = -1;                     /* 60 */
-
-static int hf_bootp_option_novell_netware_ip_domain = -1;              /* 62 */
-
-static int hf_bootp_option63_suboption = -1;                           /* 63 suboption */
-static int hf_bootp_option63_value = -1;                               /* 63 suboption value */
-static int hf_bootp_option63_value_8 = -1;                             /* 63 suboption value */
-static int hf_bootp_option63_value_ip_address = -1;                    /* 63 suboption value */
-static int hf_bootp_option63_value_boolean = -1;                       /* 63 suboption value */
-static int hf_bootp_option63_broadcast = -1;                           /* 63:5 */
-static int hf_bootp_option63_preferred_dss_server = -1;                        /* 63:6 */
-static int hf_bootp_option63_nearest_nwip_server = -1;                 /* 63:7 */
-static int hf_bootp_option63_autoretries = -1;                         /* 63:8 */
-static int hf_bootp_option63_autoretry_delay = -1;                     /* 63:9 */
-static int hf_bootp_option63_support_netware_v1_1 = -1;                        /* 63:10 */
-static int hf_bootp_option63_primary_dss = -1;                         /* 63:11 */
-
-static int hf_bootp_option_nis_plus_domain = -1;                       /* 64 */
-static int hf_bootp_option_nis_plus_server = -1;                       /* 65 */
-static int hf_bootp_option_tftp_server_name = -1;                      /* 66 */
-static int hf_bootp_option_bootfile_name = -1;                         /* 67 */
-static int hf_bootp_option_mobile_ip_home_agent = -1;                  /* 68 */
-static int hf_bootp_option_smtp_server = -1;                           /* 69 */
-static int hf_bootp_option_pop3_server = -1;                           /* 70 */
-static int hf_bootp_option_nntp_server = -1;                           /* 71 */
-static int hf_bootp_option_default_www_server = -1;                    /* 72 */
-static int hf_bootp_option_default_finger_server = -1;                 /* 73 */
-static int hf_bootp_option_default_irc_server = -1;                    /* 74 */
-static int hf_bootp_option_streettalk_server = -1;                     /* 75 */
-static int hf_bootp_option_streettalk_da_server = -1;                  /* 76 */
-static int hf_bootp_option77_user_class = -1;                          /* 77 User Class instance */
-static int hf_bootp_option77_user_class_length = -1;                   /* 77 length of User Class instance */
-static int hf_bootp_option77_user_class_data = -1;                     /* 77 data of User Class instance */
-static int hf_bootp_option77_user_class_text = -1;                     /* 77 User class text */
-static int hf_bootp_option_slp_directory_agent_value = -1;             /* 78 */
-static int hf_bootp_option_slp_directory_agent_slpda_address = -1;     /* 78 */
-static int hf_bootp_option_slp_service_scope_value = -1;               /* 79 */
-static int hf_bootp_option_slp_service_scope_string = -1;              /* 79 */
-
-static int hf_bootp_option82_suboption = -1;                           /* 82 suboption */
-static int hf_bootp_option82_value = -1;                               /* 82 suboption value */
-static int hf_bootp_option82_value_8 = -1;                             /* 82 suboption value */
-static int hf_bootp_option82_value_32 = -1;                            /* 82 suboption value */
-static int hf_bootp_option82_value_ip_address = -1;                    /* 82 suboption value */
-static int hf_bootp_option82_value_stringz = -1;                       /* 82 suboption value */
-static int hf_bootp_option82_padding = -1;                             /* 82:0 */
-static int hf_bootp_option82_agent_circuit_id = -1;                    /* 82:1 */
-static int hf_bootp_option82_agent_remote_id = -1;                     /* 82:2 */
-static int hf_bootp_option82_reserved = -1;                            /* 82:3 */
-static int hf_bootp_option82_docsis_device_class = -1;                 /* 82:4 */
-static int hf_bootp_option82_link_selection = -1;                      /* 82:5 */
-static int hf_bootp_option82_subscriber_id = -1;                       /* 82:6 */
-static int hf_bootp_option82_radius_attributes = -1;                   /* 82:7 */
-static int hf_bootp_option82_authentication = -1;                      /* 82:8 */
-static int hf_bootp_option82_vi = -1;                                  /* 82:9 */
+void proto_register_dhcp(void);
+void proto_reg_handoff_dhcp(void);
+
+static int dhcp_bootp_tap = -1;
+static int proto_dhcp = -1;
+static int hf_dhcp_type = -1;
+static int hf_dhcp_hw_type = -1;
+static int hf_dhcp_hw_len = -1;
+static int hf_dhcp_hops = -1;
+static int hf_dhcp_id = -1;
+static int hf_dhcp_secs = -1;
+static int hf_dhcp_flags = -1;
+static int hf_dhcp_flags_broadcast = -1;
+static int hf_dhcp_flags_reserved = -1;
+static int hf_dhcp_ip_client = -1;
+static int hf_dhcp_ip_your = -1;
+static int hf_dhcp_ip_server = -1;
+static int hf_dhcp_ip_relay = -1;
+static int hf_dhcp_hw_addr = -1;
+static int hf_dhcp_hw_addr_padding = -1;
+static int hf_dhcp_hw_ether_addr = -1;
+static int hf_dhcp_server = -1;
+static int hf_dhcp_file = -1;
+static int hf_dhcp_cookie = -1;
+static int hf_dhcp_vendor_specific_options = -1;
+static int hf_dhcp_bootp = -1;
+static int hf_dhcp_fqdn_flags = -1;
+static int hf_dhcp_fqdn_s = -1;
+static int hf_dhcp_fqdn_o = -1;
+static int hf_dhcp_fqdn_e = -1;
+static int hf_dhcp_fqdn_n = -1;
+static int hf_dhcp_fqdn_mbz = -1;
+static int hf_dhcp_fqdn_rcode1 = -1;
+static int hf_dhcp_fqdn_rcode2 = -1;
+static int hf_dhcp_fqdn_name = -1;
+static int hf_dhcp_fqdn_asciiname = -1;
+static int hf_dhcp_pkt_mta_cap_len = -1;
+static int hf_dhcp_pkt_mta_cap_type = -1;
+static int hf_dhcp_docsis_cm_cap_type = -1;
+static int hf_dhcp_docsis_cm_cap_len = -1;
+static int hf_dhcp_client_identifier_uuid = -1;
+static int hf_dhcp_client_id_iaid = -1;
+static int hf_dhcp_client_id_duid_type = -1;
+static int hf_dhcp_client_hardware_address = -1;
+static int hf_dhcp_client_identifier_duid_llt_hw_type = -1;
+static int hf_dhcp_client_identifier_duid_ll_hw_type = -1;
+static int hf_dhcp_client_identifier_time = -1;
+static int hf_dhcp_client_identifier_link_layer_address = -1;
+static int hf_dhcp_client_identifier_enterprise_num = -1;
+static int hf_dhcp_client_identifier = -1;
+static int hf_dhcp_client_identifier_type = -1;
+static int hf_dhcp_client_identifier_undef = -1;
+static int hf_dhcp_option_type = -1;
+static int hf_dhcp_option_length = -1;
+static int hf_dhcp_option_value = -1;
+static int hf_dhcp_option_value_8 = -1;
+static int hf_dhcp_option_value_16 = -1;
+static int hf_dhcp_option_value_u32 = -1;
+static int hf_dhcp_option_value_i32 = -1;
+static int hf_dhcp_option_value_stringz = -1;
+static int hf_dhcp_option_value_ip_address = -1;
+static int hf_dhcp_option_value_boolean = -1;
+static int hf_dhcp_suboption_length = -1;
+
+static int hf_dhcp_option_padding = -1;                                /* 0 */
+static int hf_dhcp_option_subnet_mask = -1;                            /* 1 */
+static int hf_dhcp_option_time_offset = -1;                            /* 2 */
+static int hf_dhcp_option_router = -1;                                 /* 3 */
+static int hf_dhcp_option_time_server = -1;                            /* 4 */
+static int hf_dhcp_option_name_server = -1;                            /* 5 */
+static int hf_dhcp_option_domain_name_server = -1;                     /* 6 */
+static int hf_dhcp_option_log_server = -1;                             /* 7 */
+static int hf_dhcp_option_quotes_server = -1;                          /* 8 */
+static int hf_dhcp_option_lpr_server = -1;                             /* 9 */
+static int hf_dhcp_option_impress_server = -1;                         /* 10 */
+static int hf_dhcp_option_resource_location_server = -1;               /* 11 */
+static int hf_dhcp_option_hostname = -1;                               /* 12 */
+static int hf_dhcp_option_boot_file_size = -1;                         /* 13 */
+static int hf_dhcp_option_merit_dump_file = -1;                        /* 14 */
+static int hf_dhcp_option_domain_name = -1;                            /* 15 */
+static int hf_dhcp_option_swap_server = -1;                            /* 16 */
+static int hf_dhcp_option_root_path = -1;                              /* 17 */
+static int hf_dhcp_option_extension_path = -1;                         /* 18 */
+static int hf_dhcp_option_ip_forwarding = -1;                          /* 19 */
+static int hf_dhcp_option_non_local_source_routing = -1;               /* 20 */
+static int hf_dhcp_option_policy_filter_ip = -1;                       /* 21 - IP address */
+static int hf_dhcp_option_policy_filter_subnet_mask = -1;              /* 21 - Subnet mask */
+static int hf_dhcp_option_max_datagram_reassembly_size = -1;           /* 22 */
+static int hf_dhcp_option_default_ip_ttl = -1;                         /* 23 */
+static int hf_dhcp_option_path_mtu_aging_timeout = -1;                 /* 24 */
+static int hf_dhcp_option_path_mtu_plateau_table_item = -1;            /* 25 */
+static int hf_dhcp_option_interface_mtu = -1;                          /* 26 */
+static int hf_dhcp_option_all_subnets_are_local = -1;                  /* 27 */
+static int hf_dhcp_option_broadcast_address = -1;                      /* 28 */
+static int hf_dhcp_option_perform_mask_discovery = -1;                 /* 29 */
+static int hf_dhcp_option_mask_supplier = -1;                          /* 30 */
+static int hf_dhcp_option_perform_router_discover = -1;                /* 31 */
+static int hf_dhcp_option_router_solicitation_address = -1;            /* 32 */
+static int hf_dhcp_option_static_route_ip = -1;                        /* 33 - Destination IP */
+static int hf_dhcp_option_static_route_router = -1;                    /* 33 - Router */
+static int hf_dhcp_option_trailer_encapsulation = -1;                  /* 34 */
+static int hf_dhcp_option_arp_cache_timeout = -1;                      /* 35 */
+static int hf_dhcp_option_ethernet_encapsulation = -1;                 /* 36 */
+static int hf_dhcp_option_tcp_default_ttl = -1;                        /* 37 */
+static int hf_dhcp_option_tcp_keepalive_interval = -1;                 /* 38 */
+static int hf_dhcp_option_tcp_keepalive_garbage = -1;                  /* 39 */
+static int hf_dhcp_option_nis_domain = -1;                             /* 40 */
+static int hf_dhcp_option_nis_server = -1;                             /* 41 */
+static int hf_dhcp_option_ntp_server = -1;                             /* 42 */
+
+static int hf_dhcp_option43_value = -1;                                /* 43 suboption value */
+static int hf_dhcp_option43_value_8 = -1;                              /* 43 suboption value */
+static int hf_dhcp_option43_value_32 = -1;                             /* 43 suboption value */
+static int hf_dhcp_option43_value_stringz = -1;                        /* 43 suboption value */
+static int hf_dhcp_option43_value_ip_address = -1;                     /* 43 suboption value */
+
+static int hf_dhcp_option43_pxeclient_suboption = -1;                  /* 43 suboption */
+static int hf_dhcp_option43_pxeclient_padding = -1;                    /* 43:0 PXE  */
+static int hf_dhcp_option43_pxeclient_mtftp_ip = -1;                   /* 43:1 PXE  */
+static int hf_dhcp_option43_pxeclient_mtftp_client_port = -1;          /* 43:2 PXE  */
+static int hf_dhcp_option43_pxeclient_mtftp_server_port = -1;          /* 43:3 PXE  */
+static int hf_dhcp_option43_pxeclient_mtftp_timeout = -1;              /* 43:4 PXE  */
+static int hf_dhcp_option43_pxeclient_mtftp_delay = -1;                /* 43:5 PXE  */
+static int hf_dhcp_option43_pxeclient_discovery_control = -1;          /* 43:6 PXE  */
+static int hf_dhcp_option43_pxeclient_multicast_address = -1;          /* 43:7 PXE  */
+static int hf_dhcp_option43_pxeclient_boot_servers = -1;               /* 43:8 PXE  */
+static int hf_dhcp_option43_pxeclient_boot_menu = -1;                  /* 43:9 PXE  */
+static int hf_dhcp_option43_pxeclient_menu_prompt = -1;                /* 43:10 PXE  */
+static int hf_dhcp_option43_pxeclient_multicast_address_alloc = -1;    /* 43:11 PXE  */
+static int hf_dhcp_option43_pxeclient_credential_types = -1;           /* 43:12 PXE  */
+static int hf_dhcp_option43_pxeclient_boot_item = -1;                  /* 43:71 PXE  */
+static int hf_dhcp_option43_pxeclient_end = -1;                        /* 43:255 PXE */
+
+static int hf_dhcp_option43_cl_suboption = -1;                         /* 43 suboption */
+static int hf_dhcp_option43_cl_padding = -1;                           /* 43:0 CL  */
+static int hf_dhcp_option43_cl_suboption_request_list = -1;            /* 43:1 CL  */
+static int hf_dhcp_option43_cl_device_type = -1;                       /* 43:2 CL  */
+static int hf_dhcp_option43_cl_esafe_type = -1;                        /* 43:3 CL  */
+static int hf_dhcp_option43_cl_serial_number = -1;                     /* 43:4 CL  */
+static int hf_dhcp_option43_cl_hardware_version = -1;                  /* 43:5 CL  */
+static int hf_dhcp_option43_cl_software_version = -1;                  /* 43:6 CL  */
+static int hf_dhcp_option43_cl_boot_rom_version = -1;                  /* 43:7 CL  */
+static int hf_dhcp_option43_cl_oui_bytes = -1;                         /* 43:8 CL  */
+static int hf_dhcp_option43_cl_oui_string = -1;                        /* 43:8 CL  */
+static int hf_dhcp_option43_cl_model_number = -1;                      /* 43:9 CL  */
+static int hf_dhcp_option43_cl_vendor_name10 = -1;                     /* 43:10 CL  */
+static int hf_dhcp_option43_cl_address_realm = -1;                     /* 43:11 CL  */
+static int hf_dhcp_option43_cl_cm_ps_system_desc = -1;                 /* 43:12 CL  */
+static int hf_dhcp_option43_cl_cm_ps_firmware_revision = -1;           /* 43:13 CL  */
+static int hf_dhcp_option43_cl_firewall_policy_file_version = -1;      /* 43:14 CL  */
+static int hf_dhcp_option43_cl_esafe_config_file_devices = -1;         /* 43:15 CL  */
+static int hf_dhcp_option43_cl_video_security_tape = -1;               /* 43:18 CL  */
+static int hf_dhcp_option43_cl_mta_mac_address = -1;                   /* 43:31 CL  */
+static int hf_dhcp_option43_cl_correlation_ID = -1;                    /* 43:32 CL  */
+static int hf_dhcp_option43_cl_vendor_name51 = -1;                     /* 43:51 CL  */
+static int hf_dhcp_option43_cl_cablecard_capability = -1;              /* 43:52 CL  */
+static int hf_dhcp_option43_cl_device_id_ca = -1;                      /* 43:53 CL  */
+static int hf_dhcp_option43_cl_device_id_x509 = -1;                    /* 43:54 CL  */
+static int hf_dhcp_option43_cl_end = -1;                               /* 43:255 CL */
+
+static int hf_dhcp_option43_bsdp_suboption = -1;                       /* 43 suboption */
+static int hf_dhcp_option43_bsdp_message_type = -1;                    /* 43:1 BSDP  */
+static int hf_dhcp_option43_bsdp_version = -1;                         /* 43:2 BSDP  */
+static int hf_dhcp_option43_bsdp_server_identifier = -1;               /* 43:3 BSDP  */
+static int hf_dhcp_option43_bsdp_server_priority = -1;                 /* 43:4 BSDP  */
+static int hf_dhcp_option43_bsdp_reply_port = -1;                      /* 43:5 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_list_path = -1;            /* 43:6 BSDP  */
+static int hf_dhcp_option43_bsdp_default_boot_image_id = -1;           /* 43:7 BSDP  */
+static int hf_dhcp_option43_bsdp_selected_boot_image_id = -1;          /* 43:8 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_list = -1;                 /* 43:9 BSDP  */
+static int hf_dhcp_option43_bsdp_netboot_firmware = -1;                /* 43:10 BSDP  */
+static int hf_dhcp_option43_bsdp_attributes_filter_list = -1;          /* 43:11 BSDP  */
+static int hf_dhcp_option43_bsdp_message_size = -1;                    /* 43:12 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_index = -1;                /* 43 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_attribute = -1;            /* 43 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_attribute_install = -1;    /* 43 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_attribute_kind = -1;       /* 43 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_attribute_reserved = -1;   /* 43 BSDP  */
+static int hf_dhcp_option43_bsdp_image_desc = -1;                      /* 43 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_name = -1;                 /* 43 BSDP  */
+static int hf_dhcp_option43_bsdp_boot_image_name_len = -1;             /* 43 BSDP  */
+
+static int hf_dhcp_option43_alcatel_suboption = -1;                    /* 43 suboption */
+static int hf_dhcp_option43_alcatel_padding = -1;                      /* 43:0 Alcatel  */
+static int hf_dhcp_option43_alcatel_vlan_id = -1;                      /* 43:58 Alcatel  */
+static int hf_dhcp_option43_alcatel_tftp1 = -1;                        /* 43:64 Alcatel  */
+static int hf_dhcp_option43_alcatel_tftp2 = -1;                        /* 43:65 Alcatel  */
+static int hf_dhcp_option43_alcatel_app_type = -1;                     /* 43:66 Alcatel  */
+static int hf_dhcp_option43_alcatel_sip_url = -1;                      /* 43:67 Alcatel  */
+static int hf_dhcp_option43_alcatel_end = -1;                          /* 43:255 Alcatel */
+
+static int hf_dhcp_option43_arubaap_controllerip = -1;                 /* 43: ArubaAP*/
+static int hf_dhcp_option43_arubaiap = -1;                             /* 43: ArubaIAP*/
+static int hf_dhcp_option43_arubaiap_nameorg = -1;                     /* 43: ArubaIAP: Name Organisation*/
+static int hf_dhcp_option43_arubaiap_ampip = -1;                       /* 43: ArubaIAP: AMP IP Address*/
+static int hf_dhcp_option43_arubaiap_password = -1;                    /* 43 :ArubaIAP: Password*/
+
+static int hf_dhcp_option_netbios_over_tcpip_name_server = -1;         /* 44 */
+static int hf_dhcp_option_netbios_over_tcpip_dd_name_server = -1;      /* 45 */
+static int hf_dhcp_option_netbios_over_tcpip_node_type = -1;           /* 46 */
+static int hf_dhcp_option_netbios_over_tcpip_scope = -1;               /* 47 */
+static int hf_dhcp_option_xwindows_system_font_server = -1;            /* 48 */
+static int hf_dhcp_option_xwindows_system_display_manager = -1;        /* 49 */
+static int hf_dhcp_option_requested_ip_address = -1;                   /* 50 */
+static int hf_dhcp_option_ip_address_lease_time = -1;                  /* 51 */
+static int hf_dhcp_option_option_overload = -1;                        /* 52 */
+static int hf_dhcp_option_dhcp = -1;                                   /* 53 */
+static int hf_dhcp_option_dhcp_server_id = -1;                         /* 54 */
+static int hf_dhcp_option_parameter_request_list_item = -1;            /* 55 */
+static int hf_dhcp_option_message = -1;                                /* 56 */
+static int hf_dhcp_option_dhcp_max_message_size = -1;                  /* 57 */
+static int hf_dhcp_option_renewal_time_value = -1;                     /* 58 */
+static int hf_dhcp_option_rebinding_time_value = -1;                   /* 59 */
+static int hf_dhcp_option_vendor_class_id = -1;                        /* 60 */
+static int hf_dhcp_option_vendor_class_data = -1;                      /* 60 */
+
+static int hf_dhcp_option_novell_netware_ip_domain = -1;               /* 62 */
+
+static int hf_dhcp_option63_suboption = -1;                            /* 63 suboption */
+static int hf_dhcp_option63_value = -1;                                /* 63 suboption value */
+static int hf_dhcp_option63_value_8 = -1;                              /* 63 suboption value */
+static int hf_dhcp_option63_value_ip_address = -1;                     /* 63 suboption value */
+static int hf_dhcp_option63_value_boolean = -1;                        /* 63 suboption value */
+static int hf_dhcp_option63_broadcast = -1;                            /* 63:5 */
+static int hf_dhcp_option63_preferred_dss_server = -1;                 /* 63:6 */
+static int hf_dhcp_option63_nearest_nwip_server = -1;                  /* 63:7 */
+static int hf_dhcp_option63_autoretries = -1;                          /* 63:8 */
+static int hf_dhcp_option63_autoretry_delay = -1;                      /* 63:9 */
+static int hf_dhcp_option63_support_netware_v1_1 = -1;                 /* 63:10 */
+static int hf_dhcp_option63_primary_dss = -1;                          /* 63:11 */
+
+static int hf_dhcp_option_nis_plus_domain = -1;                        /* 64 */
+static int hf_dhcp_option_nis_plus_server = -1;                        /* 65 */
+static int hf_dhcp_option_tftp_server_name = -1;                       /* 66 */
+static int hf_dhcp_option_bootfile_name = -1;                          /* 67 */
+static int hf_dhcp_option_mobile_ip_home_agent = -1;                   /* 68 */
+static int hf_dhcp_option_smtp_server = -1;                            /* 69 */
+static int hf_dhcp_option_pop3_server = -1;                            /* 70 */
+static int hf_dhcp_option_nntp_server = -1;                            /* 71 */
+static int hf_dhcp_option_default_www_server = -1;                     /* 72 */
+static int hf_dhcp_option_default_finger_server = -1;                  /* 73 */
+static int hf_dhcp_option_default_irc_server = -1;                     /* 74 */
+static int hf_dhcp_option_streettalk_server = -1;                      /* 75 */
+static int hf_dhcp_option_streettalk_da_server = -1;                   /* 76 */
+static int hf_dhcp_option77_user_class = -1;                           /* 77 User Class instance */
+static int hf_dhcp_option77_user_class_length = -1;                    /* 77 length of User Class instance */
+static int hf_dhcp_option77_user_class_data = -1;                      /* 77 data of User Class instance */
+static int hf_dhcp_option77_user_class_text = -1;                      /* 77 User class text */
+static int hf_dhcp_option_slp_directory_agent_value = -1;              /* 78 */
+static int hf_dhcp_option_slp_directory_agent_slpda_address = -1;      /* 78 */
+static int hf_dhcp_option_slp_service_scope_value = -1;                /* 79 */
+static int hf_dhcp_option_slp_service_scope_string = -1;               /* 79 */
+
+static int hf_dhcp_option82_suboption = -1;                            /* 82 suboption */
+static int hf_dhcp_option82_value = -1;                                /* 82 suboption value */
+static int hf_dhcp_option82_value_8 = -1;                              /* 82 suboption value */
+static int hf_dhcp_option82_value_32 = -1;                             /* 82 suboption value */
+static int hf_dhcp_option82_value_ip_address = -1;                     /* 82 suboption value */
+static int hf_dhcp_option82_value_stringz = -1;                        /* 82 suboption value */
+static int hf_dhcp_option82_padding = -1;                              /* 82:0 */
+static int hf_dhcp_option82_agent_circuit_id = -1;                     /* 82:1 */
+static int hf_dhcp_option82_agent_remote_id = -1;                      /* 82:2 */
+static int hf_dhcp_option82_reserved = -1;                             /* 82:3 */
+static int hf_dhcp_option82_docsis_device_class = -1;                  /* 82:4 */
+static int hf_dhcp_option82_link_selection = -1;                       /* 82:5 */
+static int hf_dhcp_option82_subscriber_id = -1;                        /* 82:6 */
+static int hf_dhcp_option82_radius_attributes = -1;                    /* 82:7 */
+static int hf_dhcp_option82_authentication = -1;                       /* 82:8 */
+static int hf_dhcp_option82_vi = -1;                                   /* 82:9 */
                                                                        /* 82:9 suboptions */
-static int hf_bootp_option82_vi_enterprise = -1;
-static int hf_bootp_option82_vi_data_length = -1;
-static int hf_bootp_option82_vi_cl_option = -1;
-static int hf_bootp_option82_vi_cl_length = -1;
-static int hf_bootp_option82_vi_cl_tag = -1;
-static int hf_bootp_option82_vi_cl_tag_length = -1;
-static int hf_bootp_option82_vi_cl_docsis_version = -1;
+static int hf_dhcp_option82_vi_enterprise = -1;
+static int hf_dhcp_option82_vi_data_length = -1;
+static int hf_dhcp_option82_vi_cl_option = -1;
+static int hf_dhcp_option82_vi_cl_length = -1;
+static int hf_dhcp_option82_vi_cl_tag = -1;
+static int hf_dhcp_option82_vi_cl_tag_length = -1;
+static int hf_dhcp_option82_vi_cl_docsis_version = -1;
                                                                        /* 82:9 suboptions end */
-static int hf_bootp_option82_flags = -1;                               /* 82:10 */
-static int hf_bootp_option82_server_id_override = -1;                  /* 82:11 */
-static int hf_bootp_option82_relay_agent_id = -1;                      /* 82:12 */
-static int hf_bootp_option82_link_selection_cisco = -1;                        /* 82:150 */
-static int hf_bootp_option82_vrf_name_vpn_id = -1;                     /* 82:151 */
+static int hf_dhcp_option82_flags = -1;                                /* 82:10 */
+static int hf_dhcp_option82_server_id_override = -1;                   /* 82:11 */
+static int hf_dhcp_option82_relay_agent_id = -1;                       /* 82:12 */
+static int hf_dhcp_option82_link_selection_cisco = -1;                 /* 82:150 */
+static int hf_dhcp_option82_vrf_name_vpn_id = -1;                      /* 82:151 */
                                                                        /* 82:151 suboptions */
-static int hf_bootp_option82_vrf_name_global = -1;
-static int hf_bootp_option82_vrf_name = -1;
-static int hf_bootp_option82_vrf_name_vpn_id_oui = -1;
-static int hf_bootp_option82_vrf_name_vpn_id_index = -1;
+static int hf_dhcp_option82_vrf_name_global = -1;
+static int hf_dhcp_option82_vrf_name = -1;
+static int hf_dhcp_option82_vrf_name_vpn_id_oui = -1;
+static int hf_dhcp_option82_vrf_name_vpn_id_index = -1;
                                                                        /* 82:151 suboptions end */
-static int hf_bootp_option82_server_id_override_cisco = -1;            /* 82:152 */
-
-static int hf_bootp_option_isns_functions = -1;
-static int hf_bootp_option_isns_functions_enabled = -1;
-static int hf_bootp_option_isns_functions_dd_authorization = -1;
-static int hf_bootp_option_isns_functions_sec_policy_distibution = -1;
-static int hf_bootp_option_isns_functions_reserved = -1;
-
-static int hf_bootp_option_isns_discovery_domain_access = -1;
-static int hf_bootp_option_isns_discovery_domain_access_enabled = -1;
-static int hf_bootp_option_isns_discovery_domain_access_control_node = -1;
-static int hf_bootp_option_isns_discovery_domain_access_iscsi_target = -1;
-static int hf_bootp_option_isns_discovery_domain_access_iscsi_inititator = -1;
-static int hf_bootp_option_isns_discovery_domain_access_ifcp_target_port = -1;
-static int hf_bootp_option_isns_discovery_domain_access_ifcp_initiator_port = -1;
-static int hf_bootp_option_isns_discovery_domain_access_reserved = -1;
-
-static int hf_bootp_option_isns_administrative_flags = -1;
-static int hf_bootp_option_isns_administrative_flags_enabled = -1;
-static int hf_bootp_option_isns_administrative_flags_heartbeat = -1;
-static int hf_bootp_option_isns_administrative_flags_management_scns = -1;
-static int hf_bootp_option_isns_administrative_flags_default_dd = -1;
-static int hf_bootp_option_isns_administrative_flags_reserved = -1;
-
-static int hf_bootp_option_isns_server_security_bitmap = -1;
-static int hf_bootp_option_isns_server_security_bitmap_enabled = -1;
-static int hf_bootp_option_isns_server_security_bitmap_ike_ipsec_enabled = -1;
-static int hf_bootp_option_isns_server_security_bitmap_main_mode = -1;
-static int hf_bootp_option_isns_server_security_bitmap_aggressive_mode = -1;
-static int hf_bootp_option_isns_server_security_bitmap_pfs = -1;
-static int hf_bootp_option_isns_server_security_bitmap_transport_mode = -1;
-static int hf_bootp_option_isns_server_security_bitmap_tunnel_mode = -1;
-static int hf_bootp_option_isns_server_security_bitmap_reserved = -1;
-
-static int hf_bootp_option_isns_heartbeat_originator_addr = -1;
-static int hf_bootp_option_isns_primary_server_addr = -1;
-static int hf_bootp_option_isns_secondary_server_addr_list = -1;
-
-static int hf_bootp_option_novell_dss_string = -1;                     /* 85 */
-static int hf_bootp_option_novell_dss_ip = -1;                         /* 85 */
-static int hf_bootp_option_novell_ds_tree_name = -1;                   /* 86 */
-static int hf_bootp_option_novell_ds_context = -1;                     /* 87 */
-static int hf_bootp_option_dhcp_authentication_protocol = -1;          /* 90 */
-static int hf_bootp_option_dhcp_authentication_alg_delay = -1;         /* 90 */
-static int hf_bootp_option_dhcp_authentication_algorithm = -1;         /* 90 */
-static int hf_bootp_option_dhcp_authentication_rdm = -1;               /* 90 */
-static int hf_bootp_option_dhcp_authentication_rdm_replay_detection = -1;   /* 90 */
-static int hf_bootp_option_dhcp_authentication_rdm_rdv = -1;           /* 90 */
-static int hf_bootp_option_dhcp_authentication_secret_id = -1;         /* 90 */
-static int hf_bootp_option_dhcp_authentication_hmac_md5_hash = -1;     /* 90 */
-static int hf_bootp_option_dhcp_authentication_information = -1;       /* 90 */
-static int hf_bootp_option_client_last_transaction_time = -1;          /* 91 */
-static int hf_bootp_option_associated_ip_option = -1;                  /* 92 */
-static int hf_bootp_option_client_system_architecture = -1;            /* 93 */
-static int hf_bootp_option_client_network_id_major_ver = -1;           /* 94 */
-static int hf_bootp_option_client_network_id_minor_ver = -1;           /* 94 */
-static int hf_bootp_option_civic_location_what = -1;                   /* 99 */
-static int hf_bootp_option_civic_location_country = -1;                        /* 99 */
-static int hf_bootp_option_civic_location_ca_type = -1;                        /* 99 */
-static int hf_bootp_option_civic_location_ca_length = -1;              /* 99 */
-static int hf_bootp_option_civic_location_ca_value = -1;               /* 99 */
-static int hf_bootp_option_tz_pcode = -1;                              /* 100 */
-static int hf_bootp_option_tz_tcode = -1;                              /* 101 */
-static int hf_bootp_option_netinfo_parent_server_address = -1;         /* 112 */
-static int hf_bootp_option_netinfo_parent_server_tag = -1;             /* 113 */
-static int hf_bootp_option_dhcp_auto_configuration = -1;               /* 116 */
-static int hf_bootp_option_dhcp_name_service_search_option = -1;               /* 117 */
-static int hf_bootp_option_dhcp_dns_domain_search_list_rfc_3396_detected = -1; /* 119 */
-static int hf_bootp_option_dhcp_dns_domain_search_list_refer_last_option = -1; /* 119 */
-static int hf_bootp_option_dhcp_dns_domain_search_list_fqdn = -1;              /* 119 */
-static int hf_bootp_option_sip_server_rfc_3396_detected = -1;                  /* 120 */
-static int hf_bootp_option_sip_server_refer_last_option = -1;                  /* 120 */
-static int hf_bootp_option_sip_server_enc = -1;                                /* 120 */
-static int hf_bootp_option_sip_server_name = -1;                               /* 120 */
-static int hf_bootp_option_sip_server_address = -1;                            /* 120 */
-static int hf_bootp_option_classless_static_route = -1;                        /* 120 */
-static int hf_bootp_option_rfc3825_error = -1;                                 /* 123 */
-static int hf_bootp_option_rfc3825_latitude = -1;                              /* 123 */
-static int hf_bootp_option_rfc3825_longitude = -1;                             /* 123 */
-static int hf_bootp_option_rfc3825_latitude_res = -1;                  /* 123 */
-static int hf_bootp_option_rfc3825_longitude_res = -1;                 /* 123 */
-static int hf_bootp_option_rfc3825_altitude = -1;                              /* 123 */
-static int hf_bootp_option_rfc3825_altitide_res = -1;                  /* 123 */
-static int hf_bootp_option_rfc3825_altitude_type = -1;                 /* 123 */
-static int hf_bootp_option_rfc3825_map_datum = -1;                             /* 123 */
-static int hf_bootp_option_cl_dss_id_option = -1;                      /* 123 CL */
-static int hf_bootp_option_cl_dss_id_len = -1;                         /* 123 CL */
-static int hf_bootp_option_cl_dss_id = -1;                             /* 123 CL */
-static int hf_bootp_option_vi_class_cl_address_mode = -1;              /* 124 */
-static int hf_bootp_option_vi_class_enterprise = -1;                   /* 124 */
-static int hf_bootp_option_vi_class_data_length = -1;                  /* 124 */
-static int hf_bootp_option_vi_class_data = -1;                         /* 124 */
-
-static int hf_bootp_option125_enterprise = -1;
-static int hf_bootp_option125_length = -1;
-static int hf_bootp_option125_value = -1;                              /* 125 suboption value */
-static int hf_bootp_option125_value_8 = -1;                            /* 125 suboption value */
-static int hf_bootp_option125_value_16 = -1;                           /* 125 suboption value */
-static int hf_bootp_option125_value_ip_address = -1;                   /* 125 suboption value */
-static int hf_bootp_option125_value_stringz = -1;                      /* 125 suboption value */
-static int hf_bootp_option125_tr111_suboption = -1;                    /* 125 suboption */
-static int hf_bootp_option125_tr111_device_manufacturer_oui = -1;      /* 125:TR-111 1 */
-static int hf_bootp_option125_tr111_device_serial_number = -1;         /* 125:TR-111 2 */
-static int hf_bootp_option125_tr111_device_product_class = -1;         /* 125:TR-111 3 */
-static int hf_bootp_option125_tr111_gateway_manufacturer_oui = -1;     /* 125:TR-111 4 */
-static int hf_bootp_option125_tr111_gateway_serial_number = -1;                /* 125:TR-111 5 */
-static int hf_bootp_option125_tr111_gateway_product_class = -1;                /* 125:TR-111 6 */
-static int hf_bootp_option125_cl_suboption = -1;                       /* 125 suboption */
-static int hf_bootp_option125_cl_option_request = -1;                  /* 125:CL 1 */
-static int hf_bootp_option125_cl_tftp_server_addresses = -1;           /* 125:CL 2 */
-static int hf_bootp_option125_cl_erouter_container_option = -1;                /* 125:CL 3 */
-static int hf_bootp_option125_cl_mib_environment_indicator_option = -1; /* 125:CL 4 */
-static int hf_bootp_option125_cl_modem_capabilities = -1;              /* 125:CL 5 */
-
-static int hf_bootp_option_subnet_selection_option = -1;               /* 118 */
-static int hf_bootp_option_lost_server_domain_name = -1;               /* 137 */
-static int hf_bootp_option_capwap_access_controller = -1;              /* 138 */
-static int hf_bootp_option_andsf_server = -1;                          /* 142 */
-static int hf_bootp_option_forcerenew_nonce_algo = -1;                 /* 145 */
-static int hf_bootp_option_rdnss_reserved = -1;                                /* 146 */
-static int hf_bootp_option_rdnss_pref = -1;                            /* 146 */
-static int hf_bootp_option_rdnss_prim_dns_server = -1;                 /* 146 */
-static int hf_bootp_option_rdnss_sec_dns_server = -1;                  /* 146 */
-static int hf_bootp_option_rdnss_domain = -1;                          /* 146 */
-static int hf_bootp_option_tftp_server_address = -1;                   /* 150 */
-static int hf_bootp_option_bulk_lease_status_code = -1;                        /* 151 */
-static int hf_bootp_option_bulk_lease_status_message = -1;             /* 151 */
-static int hf_bootp_option_bulk_lease_base_time = -1;                  /* 152 */
-static int hf_bootp_option_bulk_lease_start_time_of_state = -1;                /* 153 */
-static int hf_bootp_option_bulk_lease_query_start = -1;                        /* 154 */
-static int hf_bootp_option_bulk_lease_query_end = -1;                  /* 155 */
-static int hf_bootp_option_bulk_lease_dhcp_state = -1;                 /* 156 */
-static int hf_bootp_option_bulk_lease_data_source = -1;                        /* 157 */
-static int hf_bootp_option_pcp_list_length = -1;                       /* 158 */
-static int hf_bootp_option_pcp_server = -1;                            /* 158 */
-static int hf_bootp_option_portparams_offset = -1;                     /* 159 */
-static int hf_bootp_option_portparams_psid_length = -1;                        /* 159 */
-static int hf_bootp_option_portparams_psid = -1;                       /* 159 */
-static int hf_bootp_option_captive_portal = -1;                                /* 160 */
-static int hf_bootp_option_mudurl = -1;                                        /* 161 */
-static int hf_bootp_option_pxe_config_file = -1;                       /* 209 */
-static int hf_bootp_option_pxe_path_prefix = -1;                       /* 210 */
-static int hf_bootp_option_6RD_ipv4_mask_len = -1;                     /* 212 */
-static int hf_bootp_option_6RD_prefix_len = -1;                                /* 212 */
-static int hf_bootp_option_6RD_prefix = -1;                            /* 212 */
-static int hf_bootp_option_6RD_border_relay_ip = -1;                   /* 212 */
-static int hf_bootp_option242_avaya = -1;                              /* 242 */
-static int hf_bootp_option242_avaya_tlssrvr = -1;                      /* 242 */
-static int hf_bootp_option242_avaya_httpsrvr = -1;                     /* 242 */
-static int hf_bootp_option242_avaya_httpdir = -1;                      /* 242 */
-static int hf_bootp_option242_avaya_static = -1;                       /* 242 */
-static int hf_bootp_option242_avaya_mcipadd = -1;                      /* 242 */
-static int hf_bootp_option242_avaya_dot1x = -1;                                /* 242 */
-static int hf_bootp_option242_avaya_icmpdu = -1;                       /* 242 */
-static int hf_bootp_option242_avaya_icmpred = -1;                      /* 242 */
-static int hf_bootp_option242_avaya_l2q = -1;                          /* 242 */
-static int hf_bootp_option242_avaya_l2qvlan = -1;                      /* 242 */
-static int hf_bootp_option242_avaya_loglocal = -1;                     /* 242 */
-static int hf_bootp_option242_avaya_phy1stat = -1;                     /* 242 */
-static int hf_bootp_option242_avaya_phy2stat = -1;                     /* 242 */
-static int hf_bootp_option242_avaya_procpswd = -1;                     /* 242 */
-static int hf_bootp_option242_avaya_procstat = -1;                     /* 242 */
-static int hf_bootp_option242_avaya_snmpadd = -1;                      /* 242 */
-static int hf_bootp_option242_avaya_snmpstring = -1;                   /* 242 */
-static int hf_bootp_option242_avaya_vlantest = -1;                     /* 242 */
-static int hf_bootp_option_private_proxy_autodiscovery = -1;           /* 252 */
-static int hf_bootp_option_end = -1;                                   /* 255 */
-static int hf_bootp_option_end_overload = -1;                          /* 255 (with overload)*/
-static int hf_bootp_vendor_unknown_suboption = -1;
-static int hf_bootp_suboption_data = -1;
-static int hf_bootp_pc_ietf_ccc_suboption = -1;
-static int hf_bootp_pc_i05_ccc_suboption = -1;
-
-static int hf_bootp_cl_ietf_ccc_dev_realm_unc_key_nom_timeout = -1;
-static int hf_bootp_cl_ietf_ccc_dev_realm_unc_key_max_timeout = -1;
-static int hf_bootp_cl_ietf_ccc_dev_realm_unc_key_max_retries = -1;
-static int hf_bootp_cl_ietf_ccc_dev_prov_unc_key_nom_timeout = -1;
-static int hf_bootp_cl_ietf_ccc_dev_prov_unc_key_max_timeout = -1;
-static int hf_bootp_cl_ietf_ccc_dev_prov_unc_key_max_retries = -1;
+static int hf_dhcp_option82_server_id_override_cisco = -1;             /* 82:152 */
+
+static int hf_dhcp_option_isns_functions = -1;
+static int hf_dhcp_option_isns_functions_enabled = -1;
+static int hf_dhcp_option_isns_functions_dd_authorization = -1;
+static int hf_dhcp_option_isns_functions_sec_policy_distibution = -1;
+static int hf_dhcp_option_isns_functions_reserved = -1;
+
+static int hf_dhcp_option_isns_discovery_domain_access = -1;
+static int hf_dhcp_option_isns_discovery_domain_access_enabled = -1;
+static int hf_dhcp_option_isns_discovery_domain_access_control_node = -1;
+static int hf_dhcp_option_isns_discovery_domain_access_iscsi_target = -1;
+static int hf_dhcp_option_isns_discovery_domain_access_iscsi_inititator = -1;
+static int hf_dhcp_option_isns_discovery_domain_access_ifcp_target_port = -1;
+static int hf_dhcp_option_isns_discovery_domain_access_ifcp_initiator_port = -1;
+static int hf_dhcp_option_isns_discovery_domain_access_reserved = -1;
+
+static int hf_dhcp_option_isns_administrative_flags = -1;
+static int hf_dhcp_option_isns_administrative_flags_enabled = -1;
+static int hf_dhcp_option_isns_administrative_flags_heartbeat = -1;
+static int hf_dhcp_option_isns_administrative_flags_management_scns = -1;
+static int hf_dhcp_option_isns_administrative_flags_default_dd = -1;
+static int hf_dhcp_option_isns_administrative_flags_reserved = -1;
+
+static int hf_dhcp_option_isns_server_security_bitmap = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_enabled = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_ike_ipsec_enabled = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_main_mode = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_aggressive_mode = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_pfs = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_transport_mode = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_tunnel_mode = -1;
+static int hf_dhcp_option_isns_server_security_bitmap_reserved = -1;
+
+static int hf_dhcp_option_isns_heartbeat_originator_addr = -1;
+static int hf_dhcp_option_isns_primary_server_addr = -1;
+static int hf_dhcp_option_isns_secondary_server_addr_list = -1;
+
+static int hf_dhcp_option_novell_dss_string = -1;                      /* 85 */
+static int hf_dhcp_option_novell_dss_ip = -1;                          /* 85 */
+static int hf_dhcp_option_novell_ds_tree_name = -1;                    /* 86 */
+static int hf_dhcp_option_novell_ds_context = -1;                      /* 87 */
+static int hf_dhcp_option_dhcp_authentication_protocol = -1;           /* 90 */
+static int hf_dhcp_option_dhcp_authentication_alg_delay = -1;          /* 90 */
+static int hf_dhcp_option_dhcp_authentication_algorithm = -1;          /* 90 */
+static int hf_dhcp_option_dhcp_authentication_rdm = -1;                /* 90 */
+static int hf_dhcp_option_dhcp_authentication_rdm_replay_detection = -1;   /* 90 */
+static int hf_dhcp_option_dhcp_authentication_rdm_rdv = -1;            /* 90 */
+static int hf_dhcp_option_dhcp_authentication_secret_id = -1;          /* 90 */
+static int hf_dhcp_option_dhcp_authentication_hmac_md5_hash = -1;      /* 90 */
+static int hf_dhcp_option_dhcp_authentication_information = -1;        /* 90 */
+static int hf_dhcp_option_client_last_transaction_time = -1;           /* 91 */
+static int hf_dhcp_option_associated_ip_option = -1;                   /* 92 */
+static int hf_dhcp_option_client_system_architecture = -1;             /* 93 */
+static int hf_dhcp_option_client_network_id_major_ver = -1;            /* 94 */
+static int hf_dhcp_option_client_network_id_minor_ver = -1;            /* 94 */
+static int hf_dhcp_option_civic_location_what = -1;                    /* 99 */
+static int hf_dhcp_option_civic_location_country = -1;                 /* 99 */
+static int hf_dhcp_option_civic_location_ca_type = -1;                 /* 99 */
+static int hf_dhcp_option_civic_location_ca_length = -1;               /* 99 */
+static int hf_dhcp_option_civic_location_ca_value = -1;                /* 99 */
+static int hf_dhcp_option_tz_pcode = -1;                               /* 100 */
+static int hf_dhcp_option_tz_tcode = -1;                               /* 101 */
+static int hf_dhcp_option_netinfo_parent_server_address = -1;          /* 112 */
+static int hf_dhcp_option_netinfo_parent_server_tag = -1;              /* 113 */
+static int hf_dhcp_option_dhcp_auto_configuration = -1;                /* 116 */
+static int hf_dhcp_option_dhcp_name_service_search_option = -1;                /* 117 */
+static int hf_dhcp_option_dhcp_dns_domain_search_list_rfc_3396_detected = -1;  /* 119 */
+static int hf_dhcp_option_dhcp_dns_domain_search_list_refer_last_option = -1;  /* 119 */
+static int hf_dhcp_option_dhcp_dns_domain_search_list_fqdn = -1;               /* 119 */
+static int hf_dhcp_option_sip_server_rfc_3396_detected = -1;                   /* 120 */
+static int hf_dhcp_option_sip_server_refer_last_option = -1;                   /* 120 */
+static int hf_dhcp_option_sip_server_enc = -1;                         /* 120 */
+static int hf_dhcp_option_sip_server_name = -1;                                /* 120 */
+static int hf_dhcp_option_sip_server_address = -1;                             /* 120 */
+static int hf_dhcp_option_classless_static_route = -1;                 /* 120 */
+static int hf_dhcp_option_rfc3825_error = -1;                                  /* 123 */
+static int hf_dhcp_option_rfc3825_latitude = -1;                               /* 123 */
+static int hf_dhcp_option_rfc3825_longitude = -1;                              /* 123 */
+static int hf_dhcp_option_rfc3825_latitude_res = -1;                   /* 123 */
+static int hf_dhcp_option_rfc3825_longitude_res = -1;                  /* 123 */
+static int hf_dhcp_option_rfc3825_altitude = -1;                               /* 123 */
+static int hf_dhcp_option_rfc3825_altitide_res = -1;                   /* 123 */
+static int hf_dhcp_option_rfc3825_altitude_type = -1;                  /* 123 */
+static int hf_dhcp_option_rfc3825_map_datum = -1;                              /* 123 */
+static int hf_dhcp_option_cl_dss_id_option = -1;                       /* 123 CL */
+static int hf_dhcp_option_cl_dss_id_len = -1;                          /* 123 CL */
+static int hf_dhcp_option_cl_dss_id = -1;                              /* 123 CL */
+static int hf_dhcp_option_vi_class_cl_address_mode = -1;               /* 124 */
+static int hf_dhcp_option_vi_class_enterprise = -1;                    /* 124 */
+static int hf_dhcp_option_vi_class_data_length = -1;                   /* 124 */
+static int hf_dhcp_option_vi_class_data = -1;                          /* 124 */
+
+static int hf_dhcp_option125_enterprise = -1;
+static int hf_dhcp_option125_length = -1;
+static int hf_dhcp_option125_value = -1;                               /* 125 suboption value */
+static int hf_dhcp_option125_value_8 = -1;                             /* 125 suboption value */
+static int hf_dhcp_option125_value_16 = -1;                            /* 125 suboption value */
+static int hf_dhcp_option125_value_ip_address = -1;                    /* 125 suboption value */
+static int hf_dhcp_option125_value_stringz = -1;                       /* 125 suboption value */
+static int hf_dhcp_option125_tr111_suboption = -1;                     /* 125 suboption */
+static int hf_dhcp_option125_tr111_device_manufacturer_oui = -1;       /* 125:TR-111 1 */
+static int hf_dhcp_option125_tr111_device_serial_number = -1;          /* 125:TR-111 2 */
+static int hf_dhcp_option125_tr111_device_product_class = -1;          /* 125:TR-111 3 */
+static int hf_dhcp_option125_tr111_gateway_manufacturer_oui = -1;      /* 125:TR-111 4 */
+static int hf_dhcp_option125_tr111_gateway_serial_number = -1;         /* 125:TR-111 5 */
+static int hf_dhcp_option125_tr111_gateway_product_class = -1;         /* 125:TR-111 6 */
+static int hf_dhcp_option125_cl_suboption = -1;                        /* 125 suboption */
+static int hf_dhcp_option125_cl_option_request = -1;                   /* 125:CL 1 */
+static int hf_dhcp_option125_cl_tftp_server_addresses = -1;            /* 125:CL 2 */
+static int hf_dhcp_option125_cl_erouter_container_option = -1;         /* 125:CL 3 */
+static int hf_dhcp_option125_cl_mib_environment_indicator_option = -1; /* 125:CL 4 */
+static int hf_dhcp_option125_cl_modem_capabilities = -1;               /* 125:CL 5 */
+
+static int hf_dhcp_option_subnet_selection_option = -1;                /* 118 */
+static int hf_dhcp_option_lost_server_domain_name = -1;                /* 137 */
+static int hf_dhcp_option_capwap_access_controller = -1;               /* 138 */
+static int hf_dhcp_option_andsf_server = -1;                           /* 142 */
+static int hf_dhcp_option_forcerenew_nonce_algo = -1;                  /* 145 */
+static int hf_dhcp_option_rdnss_reserved = -1;                         /* 146 */
+static int hf_dhcp_option_rdnss_pref = -1;                             /* 146 */
+static int hf_dhcp_option_rdnss_prim_dns_server = -1;                  /* 146 */
+static int hf_dhcp_option_rdnss_sec_dns_server = -1;                   /* 146 */
+static int hf_dhcp_option_rdnss_domain = -1;                           /* 146 */
+static int hf_dhcp_option_tftp_server_address = -1;                    /* 150 */
+static int hf_dhcp_option_bulk_lease_status_code = -1;                 /* 151 */
+static int hf_dhcp_option_bulk_lease_status_message = -1;              /* 151 */
+static int hf_dhcp_option_bulk_lease_base_time = -1;                   /* 152 */
+static int hf_dhcp_option_bulk_lease_start_time_of_state = -1;         /* 153 */
+static int hf_dhcp_option_bulk_lease_query_start = -1;                 /* 154 */
+static int hf_dhcp_option_bulk_lease_query_end = -1;                   /* 155 */
+static int hf_dhcp_option_bulk_lease_dhcp_state = -1;                  /* 156 */
+static int hf_dhcp_option_bulk_lease_data_source = -1;                 /* 157 */
+static int hf_dhcp_option_pcp_list_length = -1;                        /* 158 */
+static int hf_dhcp_option_pcp_server = -1;                             /* 158 */
+static int hf_dhcp_option_portparams_offset = -1;                      /* 159 */
+static int hf_dhcp_option_portparams_psid_length = -1;                 /* 159 */
+static int hf_dhcp_option_portparams_psid = -1;                        /* 159 */
+static int hf_dhcp_option_captive_portal = -1;                         /* 160 */
+static int hf_dhcp_option_mudurl = -1;                                 /* 161 */
+static int hf_dhcp_option_pxe_config_file = -1;                        /* 209 */
+static int hf_dhcp_option_pxe_path_prefix = -1;                        /* 210 */
+static int hf_dhcp_option_6RD_ipv4_mask_len = -1;                      /* 212 */
+static int hf_dhcp_option_6RD_prefix_len = -1;                         /* 212 */
+static int hf_dhcp_option_6RD_prefix = -1;                             /* 212 */
+static int hf_dhcp_option_6RD_border_relay_ip = -1;                    /* 212 */
+static int hf_dhcp_option242_avaya = -1;                               /* 242 */
+static int hf_dhcp_option242_avaya_tlssrvr = -1;                       /* 242 */
+static int hf_dhcp_option242_avaya_httpsrvr = -1;                      /* 242 */
+static int hf_dhcp_option242_avaya_httpdir = -1;                       /* 242 */
+static int hf_dhcp_option242_avaya_static = -1;                        /* 242 */
+static int hf_dhcp_option242_avaya_mcipadd = -1;                       /* 242 */
+static int hf_dhcp_option242_avaya_dot1x = -1;                         /* 242 */
+static int hf_dhcp_option242_avaya_icmpdu = -1;                        /* 242 */
+static int hf_dhcp_option242_avaya_icmpred = -1;                       /* 242 */
+static int hf_dhcp_option242_avaya_l2q = -1;                           /* 242 */
+static int hf_dhcp_option242_avaya_l2qvlan = -1;                       /* 242 */
+static int hf_dhcp_option242_avaya_loglocal = -1;                      /* 242 */
+static int hf_dhcp_option242_avaya_phy1stat = -1;                      /* 242 */
+static int hf_dhcp_option242_avaya_phy2stat = -1;                      /* 242 */
+static int hf_dhcp_option242_avaya_procpswd = -1;                      /* 242 */
+static int hf_dhcp_option242_avaya_procstat = -1;                      /* 242 */
+static int hf_dhcp_option242_avaya_snmpadd = -1;                       /* 242 */
+static int hf_dhcp_option242_avaya_snmpstring = -1;                    /* 242 */
+static int hf_dhcp_option242_avaya_vlantest = -1;                      /* 242 */
+static int hf_dhcp_option_private_proxy_autodiscovery = -1;            /* 252 */
+static int hf_dhcp_option_end = -1;                                    /* 255 */
+static int hf_dhcp_option_end_overload = -1;                           /* 255 (with overload)*/
+static int hf_dhcp_vendor_unknown_suboption = -1;
+static int hf_dhcp_suboption_data = -1;
+static int hf_dhcp_pc_ietf_ccc_suboption = -1;
+static int hf_dhcp_pc_i05_ccc_suboption = -1;
+
+static int hf_dhcp_cl_ietf_ccc_dev_realm_unc_key_nom_timeout = -1;
+static int hf_dhcp_cl_ietf_ccc_dev_realm_unc_key_max_timeout = -1;
+static int hf_dhcp_cl_ietf_ccc_dev_realm_unc_key_max_retries = -1;
+static int hf_dhcp_cl_ietf_ccc_dev_prov_unc_key_nom_timeout = -1;
+static int hf_dhcp_cl_ietf_ccc_dev_prov_unc_key_max_timeout = -1;
+static int hf_dhcp_cl_ietf_ccc_dev_prov_unc_key_max_retries = -1;
 
 static gint ett_bootp = -1;
-static gint ett_bootp_flags = -1;
-static gint ett_bootp_option = -1;
-static gint ett_bootp_option43_suboption = -1;
-static gint ett_bootp_option63_suboption = -1;
-static gint ett_bootp_option77_instance = -1;
-static gint ett_bootp_option82_suboption = -1;
-static gint ett_bootp_option82_suboption9 = -1;
-static gint ett_bootp_option125_suboption = -1;
-static gint ett_bootp_option125_tr111_suboption = -1;
-static gint ett_bootp_option125_cl_suboption = -1;
-static gint ett_bootp_option242_suboption = -1;
-static gint ett_bootp_fqdn = -1;
-static gint ett_bootp_fqdn_flags = -1;
-static gint ett_bootp_filename_option = -1;
-static gint ett_bootp_server_hostname = -1;
-static gint ett_bootp_isns_functions = -1;
-static gint ett_bootp_isns_discovery_domain_access = -1;
-static gint ett_bootp_isns_administrative_flags = -1;
-static gint ett_bootp_isns_server_security_bitmap = -1;
-static gint ett_bootp_isns_secondary_server_addr = -1;
-static gint ett_bootp_o43_bsdp_boot_image = -1;
-static gint ett_bootp_o43_bsdp_attributes = -1;
-static gint ett_bootp_o43_bsdp_image_desc_list = -1;
-static gint ett_bootp_o43_bsdp_image_desc = -1;
-static gint ett_bootp_o43_bsdp_attributes_flags = -1;
-static gint ett_bootp_option158_pcp_list = -1;
-
-static expert_field ei_bootp_bad_length = EI_INIT;
-static expert_field ei_bootp_bad_bitfield = EI_INIT;
-static expert_field ei_bootp_missing_subopt_length = EI_INIT;
-static expert_field ei_bootp_missing_subopt_value = EI_INIT;
-static expert_field ei_bootp_mal_duid = EI_INIT;
-static expert_field hf_bootp_opt_overload_file_end_missing = EI_INIT;
-static expert_field hf_bootp_opt_overload_sname_end_missing = EI_INIT;
-static expert_field hf_bootp_subopt_unknown_type = EI_INIT;
-static expert_field ei_bootp_option_civic_location_bad_cattype = EI_INIT;
-static expert_field ei_bootp_option_dhcp_name_service_invalid = EI_INIT;
-static expert_field ei_bootp_option_sip_server_address_encoding = EI_INIT;
-static expert_field ei_bootp_option_classless_static_route = EI_INIT;
-static expert_field ei_bootp_option125_enterprise_malformed = EI_INIT;
-static expert_field ei_bootp_option_6RD_malformed = EI_INIT;
-static expert_field ei_bootp_option82_vi_cl_tag_unknown = EI_INIT;
-static expert_field ei_bootp_option_parse_err = EI_INIT;
-static expert_field ei_bootp_nonstd_option_data = EI_INIT;
-static expert_field ei_bootp_suboption_invalid = EI_INIT;
-static expert_field ei_bootp_secs_le = EI_INIT;
-static expert_field ei_bootp_end_option_missing = EI_INIT;
-static expert_field ei_bootp_client_address_not_given = EI_INIT;
-static expert_field ei_bootp_server_name_overloaded_by_dhcp = EI_INIT;
-static expert_field ei_bootp_boot_filename_overloaded_by_dhcp = EI_INIT;
-static expert_field ei_bootp_option_isns_ignored_bitfield = EI_INIT;
-static expert_field ei_bootp_option242_avaya_l2qvlan_invalid = EI_INIT;
-static expert_field ei_bootp_option242_avaya_vlantest_invalid = EI_INIT;
-static expert_field ei_bootp_option93_client_arch_ambiguous = EI_INIT;
-
-static dissector_table_t bootp_option_table;
-static dissector_table_t bootp_enterprise_table;
-static heur_dissector_list_t bootp_vendor_id_subdissector;
-static heur_dissector_list_t bootp_vendor_info_subdissector;
-static dissector_handle_t bootp_handle;
-static dissector_handle_t bootpopt_basic_handle;
-
-typedef struct bootp_option_data
+static gint ett_dhcp_flags = -1;
+static gint ett_dhcp_option = -1;
+static gint ett_dhcp_option43_suboption = -1;
+static gint ett_dhcp_option63_suboption = -1;
+static gint ett_dhcp_option77_instance = -1;
+static gint ett_dhcp_option82_suboption = -1;
+static gint ett_dhcp_option82_suboption9 = -1;
+static gint ett_dhcp_option125_suboption = -1;
+static gint ett_dhcp_option125_tr111_suboption = -1;
+static gint ett_dhcp_option125_cl_suboption = -1;
+static gint ett_dhcp_option242_suboption = -1;
+static gint ett_dhcp_fqdn = -1;
+static gint ett_dhcp_fqdn_flags = -1;
+static gint ett_dhcp_filename_option = -1;
+static gint ett_dhcp_server_hostname = -1;
+static gint ett_dhcp_isns_functions = -1;
+static gint ett_dhcp_isns_discovery_domain_access = -1;
+static gint ett_dhcp_isns_administrative_flags = -1;
+static gint ett_dhcp_isns_server_security_bitmap = -1;
+static gint ett_dhcp_isns_secondary_server_addr = -1;
+static gint ett_dhcp_o43_bsdp_boot_image = -1;
+static gint ett_dhcp_o43_bsdp_attributes = -1;
+static gint ett_dhcp_o43_bsdp_image_desc_list = -1;
+static gint ett_dhcp_o43_bsdp_image_desc = -1;
+static gint ett_dhcp_o43_bsdp_attributes_flags = -1;
+static gint ett_dhcp_option158_pcp_list = -1;
+
+static expert_field ei_dhcp_bad_length = EI_INIT;
+static expert_field ei_dhcp_bad_bitfield = EI_INIT;
+static expert_field ei_dhcp_missing_subopt_length = EI_INIT;
+static expert_field ei_dhcp_missing_subopt_value = EI_INIT;
+static expert_field ei_dhcp_mal_duid = EI_INIT;
+static expert_field hf_dhcp_opt_overload_file_end_missing = EI_INIT;
+static expert_field hf_dhcp_opt_overload_sname_end_missing = EI_INIT;
+static expert_field hf_dhcp_subopt_unknown_type = EI_INIT;
+static expert_field ei_dhcp_option_civic_location_bad_cattype = EI_INIT;
+static expert_field ei_dhcp_option_dhcp_name_service_invalid = EI_INIT;
+static expert_field ei_dhcp_option_sip_server_address_encoding = EI_INIT;
+static expert_field ei_dhcp_option_classless_static_route = EI_INIT;
+static expert_field ei_dhcp_option125_enterprise_malformed = EI_INIT;
+static expert_field ei_dhcp_option_6RD_malformed = EI_INIT;
+static expert_field ei_dhcp_option82_vi_cl_tag_unknown = EI_INIT;
+static expert_field ei_dhcp_option_parse_err = EI_INIT;
+static expert_field ei_dhcp_nonstd_option_data = EI_INIT;
+static expert_field ei_dhcp_suboption_invalid = EI_INIT;
+static expert_field ei_dhcp_secs_le = EI_INIT;
+static expert_field ei_dhcp_end_option_missing = EI_INIT;
+static expert_field ei_dhcp_client_address_not_given = EI_INIT;
+static expert_field ei_dhcp_server_name_overloaded_by_dhcp = EI_INIT;
+static expert_field ei_dhcp_boot_filename_overloaded_by_dhcp = EI_INIT;
+static expert_field ei_dhcp_option_isns_ignored_bitfield = EI_INIT;
+static expert_field ei_dhcp_option242_avaya_l2qvlan_invalid = EI_INIT;
+static expert_field ei_dhcp_option242_avaya_vlantest_invalid = EI_INIT;
+static expert_field ei_dhcp_option93_client_arch_ambiguous = EI_INIT;
+
+static dissector_table_t dhcp_option_table;
+static dissector_table_t dhcp_enterprise_table;
+static heur_dissector_list_t dhcp_vendor_id_subdissector;
+static heur_dissector_list_t dhcp_vendor_info_subdissector;
+static dissector_handle_t dhcp_handle;
+static dissector_handle_t dhcpopt_basic_handle;
+
+typedef struct dhcp_option_data
 {
        guchar option;
        guint8 *overload;
        tvbuff_t *orig_tvb;
        const char *dhcp_type;
        const guint8 *vendor_class_id;
-} bootp_option_data_t;
+} dhcp_option_data_t;
 
 /* RFC2937 The Name Service Search Option for DHCP */
 #define RFC2937_LOCAL_NAMING_INFORMATION                          0
@@ -905,15 +905,15 @@ static const value_string bulk_lease_dhcp_state_vals[] = {
 
 static gboolean novell_string = FALSE;
 
-static guint bootp_uuid_endian = ENC_LITTLE_ENDIAN;
+static guint dhcp_uuid_endian = ENC_LITTLE_ENDIAN;
 
-static const enum_val_t bootp_uuid_endian_vals[] = {
+static const enum_val_t dhcp_uuid_endian_vals[] = {
        { "Little Endian", "Little Endian",     ENC_LITTLE_ENDIAN},
        { "Big Endian",  "Big Endian", ENC_BIG_ENDIAN },
        { NULL, NULL, 0 }
 };
 
-#define BOOTP_UDP_PORT_RANGE  "67-68"
+#define DHCP_UDP_PORT_RANGE  "67-68"
 
 #define BOOTP_BC       0x8000
 #define BOOTP_MBZ      0x7FFF
@@ -1104,7 +1104,7 @@ static const value_string opt53_text[] = {
 #define FILE_NAME_LEN                  128
 #define VENDOR_INFO_OFFSET             236
 
-static const value_string bootp_nbnt_vals[] = {
+static const value_string dhcp_nbnt_vals[] = {
        {0x1,   "B-node" },
        {0x2,   "P-node" },
        {0x4,   "M-node" },
@@ -1124,7 +1124,7 @@ static const value_string bootp_nbnt_vals[] = {
  * For confirmation, refer to RFC erratum 4625:
  *    https://www.rfc-editor.org/errata/eid4625
  */
-static const value_string bootp_client_arch[] = {
+static const value_string dhcp_client_arch[] = {
        { 0x0000, "IA x86 PC" },
        { 0x0001, "NEC/PC98" },
        { 0x0002, "IA64 PC" },
@@ -1292,90 +1292,90 @@ static const string_string option242_avaya_static_vals[] = {
 /* bootp options administration */
 #define BOOTP_OPT_NUM  256
 
-/* All of the options that have a "basic" type that can be handled by dissect_bootpopt_basic_type() */
-#define BOOTP_OPTION_BASICTYPE_RANGE "1-20,22-32,34-42,44-51,53-54,56-59,64-76,86-87,91-92,100-101,112-113,116,118,137-138,142,150,153,156-157,161,209-210,252"
-
-/* Re-define structure.         Values to be updated by bootp_init_protocol */
-static struct opt_info bootp_opt[BOOTP_OPT_NUM];
-
-static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
-/*   0 */ { "Padding",                                 none, &hf_bootp_option_padding },
-/*   1 */ { "Subnet Mask",                             ipv4, &hf_bootp_option_subnet_mask },
-/*   2 */ { "Time Offset",                             time_in_s_secs, &hf_bootp_option_time_offset },
-/*   3 */ { "Router",                                  ipv4_list, &hf_bootp_option_router },
-/*   4 */ { "Time Server",                             ipv4_list, &hf_bootp_option_time_server },
-/*   5 */ { "Name Server",                             ipv4_list, &hf_bootp_option_name_server },
-/*   6 */ { "Domain Name Server",                      ipv4_list, &hf_bootp_option_domain_name_server },
-/*   7 */ { "Log Server",                              ipv4_list, &hf_bootp_option_log_server },
-/*   8 */ { "Quotes Server",                           ipv4_list, &hf_bootp_option_quotes_server },
-/*   9 */ { "LPR Server",                              ipv4_list, &hf_bootp_option_lpr_server },
-/*  10 */ { "Impress Server",                          ipv4_list, &hf_bootp_option_impress_server },
-/*  11 */ { "Resource Location Server",                        ipv4_list, &hf_bootp_option_resource_location_server },
-/*  12 */ { "Host Name",                               string, &hf_bootp_option_hostname },
-/*  13 */ { "Boot File Size",                          val_u_short, &hf_bootp_option_boot_file_size },
-/*  14 */ { "Merit Dump File",                         string, &hf_bootp_option_merit_dump_file },
-/*  15 */ { "Domain Name",                             string, &hf_bootp_option_domain_name },
-/*  16 */ { "Swap Server",                             ipv4, &hf_bootp_option_swap_server },
-/*  17 */ { "Root Path",                               string, &hf_bootp_option_root_path },
-/*  18 */ { "Extensions Path",                         string, &hf_bootp_option_extension_path },
-/*  19 */ { "IP Forwarding",                           val_boolean, &hf_bootp_option_ip_forwarding },
-/*  20 */ { "Non-Local Source Routing",                        val_boolean, &hf_bootp_option_non_local_source_routing },
+/* All of the options that have a "basic" type that can be handled by dissect_dhcpopt_basic_type() */
+#define DHCP_OPTION_BASICTYPE_RANGE "1-20,22-32,34-42,44-51,53-54,56-59,64-76,86-87,91-92,100-101,112-113,116,118,137-138,142,150,153,156-157,161,209-210,252"
+
+/* Re-define structure.         Values to be updated by dhcp_init_protocol */
+static struct opt_info dhcp_opt[BOOTP_OPT_NUM];
+
+static struct opt_info default_dhcp_opt[BOOTP_OPT_NUM] = {
+/*   0 */ { "Padding",                                 none, &hf_dhcp_option_padding },
+/*   1 */ { "Subnet Mask",                             ipv4, &hf_dhcp_option_subnet_mask },
+/*   2 */ { "Time Offset",                             time_in_s_secs, &hf_dhcp_option_time_offset },
+/*   3 */ { "Router",                                  ipv4_list, &hf_dhcp_option_router },
+/*   4 */ { "Time Server",                             ipv4_list, &hf_dhcp_option_time_server },
+/*   5 */ { "Name Server",                             ipv4_list, &hf_dhcp_option_name_server },
+/*   6 */ { "Domain Name Server",                      ipv4_list, &hf_dhcp_option_domain_name_server },
+/*   7 */ { "Log Server",                              ipv4_list, &hf_dhcp_option_log_server },
+/*   8 */ { "Quotes Server",                           ipv4_list, &hf_dhcp_option_quotes_server },
+/*   9 */ { "LPR Server",                              ipv4_list, &hf_dhcp_option_lpr_server },
+/*  10 */ { "Impress Server",                          ipv4_list, &hf_dhcp_option_impress_server },
+/*  11 */ { "Resource Location Server",                        ipv4_list, &hf_dhcp_option_resource_location_server },
+/*  12 */ { "Host Name",                               string, &hf_dhcp_option_hostname },
+/*  13 */ { "Boot File Size",                          val_u_short, &hf_dhcp_option_boot_file_size },
+/*  14 */ { "Merit Dump File",                         string, &hf_dhcp_option_merit_dump_file },
+/*  15 */ { "Domain Name",                             string, &hf_dhcp_option_domain_name },
+/*  16 */ { "Swap Server",                             ipv4, &hf_dhcp_option_swap_server },
+/*  17 */ { "Root Path",                               string, &hf_dhcp_option_root_path },
+/*  18 */ { "Extensions Path",                         string, &hf_dhcp_option_extension_path },
+/*  19 */ { "IP Forwarding",                           val_boolean, &hf_dhcp_option_ip_forwarding },
+/*  20 */ { "Non-Local Source Routing",                        val_boolean, &hf_dhcp_option_non_local_source_routing },
 /*  21 */ { "Policy Filter",                           special, NULL },
-/*  22 */ { "Maximum Datagram Reassembly Size",                val_u_short, &hf_bootp_option_max_datagram_reassembly_size },
-/*  23 */ { "Default IP Time-to-Live",                 val_u_byte, &hf_bootp_option_default_ip_ttl },
-/*  24 */ { "Path MTU Aging Timeout",                  time_in_u_secs, &hf_bootp_option_path_mtu_aging_timeout },
-/*  25 */ { "Path MTU Plateau Table",                  val_u_short_list, &hf_bootp_option_path_mtu_plateau_table_item },
-/*  26 */ { "Interface MTU",                           val_u_short, &hf_bootp_option_interface_mtu },
-/*  27 */ { "All Subnets are Local",                   val_boolean, &hf_bootp_option_all_subnets_are_local },
-/*  28 */ { "Broadcast Address",                       ipv4, &hf_bootp_option_broadcast_address },
-/*  29 */ { "Perform Mask Discovery",                  val_boolean, &hf_bootp_option_perform_mask_discovery },
-/*  30 */ { "Mask Supplier",                           val_boolean, &hf_bootp_option_mask_supplier },
-/*  31 */ { "Perform Router Discover",                 val_boolean, &hf_bootp_option_perform_router_discover },
-/*  32 */ { "Router Solicitation Address",             ipv4, &hf_bootp_option_router_solicitation_address },
+/*  22 */ { "Maximum Datagram Reassembly Size",                val_u_short, &hf_dhcp_option_max_datagram_reassembly_size },
+/*  23 */ { "Default IP Time-to-Live",                 val_u_byte, &hf_dhcp_option_default_ip_ttl },
+/*  24 */ { "Path MTU Aging Timeout",                  time_in_u_secs, &hf_dhcp_option_path_mtu_aging_timeout },
+/*  25 */ { "Path MTU Plateau Table",                  val_u_short_list, &hf_dhcp_option_path_mtu_plateau_table_item },
+/*  26 */ { "Interface MTU",                           val_u_short, &hf_dhcp_option_interface_mtu },
+/*  27 */ { "All Subnets are Local",                   val_boolean, &hf_dhcp_option_all_subnets_are_local },
+/*  28 */ { "Broadcast Address",                       ipv4, &hf_dhcp_option_broadcast_address },
+/*  29 */ { "Perform Mask Discovery",                  val_boolean, &hf_dhcp_option_perform_mask_discovery },
+/*  30 */ { "Mask Supplier",                           val_boolean, &hf_dhcp_option_mask_supplier },
+/*  31 */ { "Perform Router Discover",                 val_boolean, &hf_dhcp_option_perform_router_discover },
+/*  32 */ { "Router Solicitation Address",             ipv4, &hf_dhcp_option_router_solicitation_address },
 /*  33 */ { "Static Route",                            special, NULL },
-/*  34 */ { "Trailer Encapsulation",                   val_boolean, &hf_bootp_option_trailer_encapsulation },
-/*  35 */ { "ARP Cache Timeout",                       time_in_u_secs, &hf_bootp_option_arp_cache_timeout },
-/*  36 */ { "Ethernet Encapsulation",                  val_boolean, &hf_bootp_option_ethernet_encapsulation },
-/*  37 */ { "TCP Default TTL",                         val_u_byte, &hf_bootp_option_tcp_default_ttl },
-/*  38 */ { "TCP Keepalive Interval",                  time_in_u_secs, &hf_bootp_option_tcp_keepalive_interval },
-/*  39 */ { "TCP Keepalive Garbage",                   val_boolean, &hf_bootp_option_tcp_keepalive_garbage },
-/*  40 */ { "Network Information Service Domain",      string, &hf_bootp_option_nis_domain },
-/*  41 */ { "Network Information Service Servers",     ipv4_list, &hf_bootp_option_nis_server },
-/*  42 */ { "Network Time Protocol Servers",           ipv4_list, &hf_bootp_option_ntp_server },
+/*  34 */ { "Trailer Encapsulation",                   val_boolean, &hf_dhcp_option_trailer_encapsulation },
+/*  35 */ { "ARP Cache Timeout",                       time_in_u_secs, &hf_dhcp_option_arp_cache_timeout },
+/*  36 */ { "Ethernet Encapsulation",                  val_boolean, &hf_dhcp_option_ethernet_encapsulation },
+/*  37 */ { "TCP Default TTL",                         val_u_byte, &hf_dhcp_option_tcp_default_ttl },
+/*  38 */ { "TCP Keepalive Interval",                  time_in_u_secs, &hf_dhcp_option_tcp_keepalive_interval },
+/*  39 */ { "TCP Keepalive Garbage",                   val_boolean, &hf_dhcp_option_tcp_keepalive_garbage },
+/*  40 */ { "Network Information Service Domain",      string, &hf_dhcp_option_nis_domain },
+/*  41 */ { "Network Information Service Servers",     ipv4_list, &hf_dhcp_option_nis_server },
+/*  42 */ { "Network Time Protocol Servers",           ipv4_list, &hf_dhcp_option_ntp_server },
 /*  43 */ { "Vendor-Specific Information",             special, NULL },
-/*  44 */ { "NetBIOS over TCP/IP Name Server",         ipv4_list, &hf_bootp_option_netbios_over_tcpip_name_server },
-/*  45 */ { "NetBIOS over TCP/IP Datagram Distribution Name Server", ipv4_list, &hf_bootp_option_netbios_over_tcpip_dd_name_server },
-/*  46 */ { "NetBIOS over TCP/IP Node Type",           val_u_byte, &hf_bootp_option_netbios_over_tcpip_node_type },
-/*  47 */ { "NetBIOS over TCP/IP Scope",               string, &hf_bootp_option_netbios_over_tcpip_scope },
-/*  48 */ { "X Window System Font Server",             ipv4_list, &hf_bootp_option_xwindows_system_font_server },
-/*  49 */ { "X Window System Display Manager",         ipv4_list, &hf_bootp_option_xwindows_system_display_manager },
-/*  50 */ { "Requested IP Address",                    ipv4, &hf_bootp_option_requested_ip_address },
-/*  51 */ { "IP Address Lease Time",                   time_in_u_secs, &hf_bootp_option_ip_address_lease_time },
-/*  52 */ { "Option Overload",                         special, &hf_bootp_option_option_overload },
-/*  53 */ { "DHCP Message Type",                       val_u_byte, &hf_bootp_option_dhcp },
-/*  54 */ { "DHCP Server Identifier",                  ipv4, &hf_bootp_option_dhcp_server_id },
-/*  55 */ { "Parameter Request List",                  special, &hf_bootp_option_parameter_request_list_item },
-/*  56 */ { "Message",                                 string, &hf_bootp_option_message },
-/*  57 */ { "Maximum DHCP Message Size",               val_u_short, &hf_bootp_option_dhcp_max_message_size },
-/*  58 */ { "Renewal Time Value",                      time_in_u_secs, &hf_bootp_option_renewal_time_value },
-/*  59 */ { "Rebinding Time Value",                    time_in_u_secs, &hf_bootp_option_rebinding_time_value },
+/*  44 */ { "NetBIOS over TCP/IP Name Server",         ipv4_list, &hf_dhcp_option_netbios_over_tcpip_name_server },
+/*  45 */ { "NetBIOS over TCP/IP Datagram Distribution Name Server", ipv4_list, &hf_dhcp_option_netbios_over_tcpip_dd_name_server },
+/*  46 */ { "NetBIOS over TCP/IP Node Type",           val_u_byte, &hf_dhcp_option_netbios_over_tcpip_node_type },
+/*  47 */ { "NetBIOS over TCP/IP Scope",               string, &hf_dhcp_option_netbios_over_tcpip_scope },
+/*  48 */ { "X Window System Font Server",             ipv4_list, &hf_dhcp_option_xwindows_system_font_server },
+/*  49 */ { "X Window System Display Manager",         ipv4_list, &hf_dhcp_option_xwindows_system_display_manager },
+/*  50 */ { "Requested IP Address",                    ipv4, &hf_dhcp_option_requested_ip_address },
+/*  51 */ { "IP Address Lease Time",                   time_in_u_secs, &hf_dhcp_option_ip_address_lease_time },
+/*  52 */ { "Option Overload",                         special, &hf_dhcp_option_option_overload },
+/*  53 */ { "DHCP Message Type",                       val_u_byte, &hf_dhcp_option_dhcp },
+/*  54 */ { "DHCP Server Identifier",                  ipv4, &hf_dhcp_option_dhcp_server_id },
+/*  55 */ { "Parameter Request List",                  special, &hf_dhcp_option_parameter_request_list_item },
+/*  56 */ { "Message",                                 string, &hf_dhcp_option_message },
+/*  57 */ { "Maximum DHCP Message Size",               val_u_short, &hf_dhcp_option_dhcp_max_message_size },
+/*  58 */ { "Renewal Time Value",                      time_in_u_secs, &hf_dhcp_option_renewal_time_value },
+/*  59 */ { "Rebinding Time Value",                    time_in_u_secs, &hf_dhcp_option_rebinding_time_value },
 /*  60 */ { "Vendor class identifier",                 special, NULL },
 /*  61 */ { "Client identifier",                       special, NULL },
-/*  62 */ { "Novell/Netware IP domain",                        string, &hf_bootp_option_novell_netware_ip_domain },
+/*  62 */ { "Novell/Netware IP domain",                        string, &hf_dhcp_option_novell_netware_ip_domain },
 /*  63 */ { "Novell Options",                          special, NULL },
-/*  64 */ { "Network Information Service+ Domain",     string, &hf_bootp_option_nis_plus_domain },
-/*  65 */ { "Network Information Service+ Servers",    ipv4_list, &hf_bootp_option_nis_plus_server },
-/*  66 */ { "TFTP Server Name",                                string, &hf_bootp_option_tftp_server_name },
-/*  67 */ { "Bootfile name",                           string, &hf_bootp_option_bootfile_name },
-/*  68 */ { "Mobile IP Home Agent",                    ipv4_list, &hf_bootp_option_mobile_ip_home_agent  },
-/*  69 */ { "SMTP Server",                             ipv4_list, &hf_bootp_option_smtp_server },
-/*  70 */ { "POP3 Server",                             ipv4_list, &hf_bootp_option_pop3_server },
-/*  71 */ { "NNTP Server",                             ipv4_list, &hf_bootp_option_nntp_server },
-/*  72 */ { "Default WWW Server",                      ipv4_list, &hf_bootp_option_default_www_server },
-/*  73 */ { "Default Finger Server",                   ipv4_list, &hf_bootp_option_default_finger_server },
-/*  74 */ { "Default IRC Server",                      ipv4_list, &hf_bootp_option_default_irc_server },
-/*  75 */ { "StreetTalk Server",                       ipv4_list, &hf_bootp_option_streettalk_server },
-/*  76 */ { "StreetTalk Directory Assistance Server",  ipv4_list, &hf_bootp_option_streettalk_da_server },
+/*  64 */ { "Network Information Service+ Domain",     string, &hf_dhcp_option_nis_plus_domain },
+/*  65 */ { "Network Information Service+ Servers",    ipv4_list, &hf_dhcp_option_nis_plus_server },
+/*  66 */ { "TFTP Server Name",                                string, &hf_dhcp_option_tftp_server_name },
+/*  67 */ { "Bootfile name",                           string, &hf_dhcp_option_bootfile_name },
+/*  68 */ { "Mobile IP Home Agent",                    ipv4_list, &hf_dhcp_option_mobile_ip_home_agent  },
+/*  69 */ { "SMTP Server",                             ipv4_list, &hf_dhcp_option_smtp_server },
+/*  70 */ { "POP3 Server",                             ipv4_list, &hf_dhcp_option_pop3_server },
+/*  71 */ { "NNTP Server",                             ipv4_list, &hf_dhcp_option_nntp_server },
+/*  72 */ { "Default WWW Server",                      ipv4_list, &hf_dhcp_option_default_www_server },
+/*  73 */ { "Default Finger Server",                   ipv4_list, &hf_dhcp_option_default_finger_server },
+/*  74 */ { "Default IRC Server",                      ipv4_list, &hf_dhcp_option_default_irc_server },
+/*  75 */ { "StreetTalk Server",                       ipv4_list, &hf_dhcp_option_streettalk_server },
+/*  76 */ { "StreetTalk Directory Assistance Server",  ipv4_list, &hf_dhcp_option_streettalk_da_server },
 /*  77 */ { "User Class Information",                  special, NULL },
 /*  78 */ { "Directory Agent Information",             special, NULL },
 /*  79 */ { "Service Location Agent Scope",            special, NULL },
@@ -1385,13 +1385,13 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
 /*  83 */ { "iSNS",                                    opaque, NULL },
 /*  84 */ { "Removed/Unassigned",                      opaque, NULL },
 /*  85 */ { "Novell Directory Services Servers",       special, NULL},
-/*  86 */ { "Novell Directory Services Tree Name",     string, &hf_bootp_option_novell_ds_tree_name },
-/*  87 */ { "Novell Directory Services Context",       string, &hf_bootp_option_novell_ds_context },
+/*  86 */ { "Novell Directory Services Tree Name",     string, &hf_dhcp_option_novell_ds_tree_name },
+/*  87 */ { "Novell Directory Services Context",       string, &hf_dhcp_option_novell_ds_context },
 /*  88 */ { "BCMCS Controller Domain Name [TODO:RFC4280]",     opaque, NULL },
 /*  89 */ { "BCMCS Controller IPv4 address [TODO:RFC4280]",    opaque, NULL },
 /*  90 */ { "Authentication",                          special, NULL},
-/*  91 */ { "Client last transaction time",            time_in_u_secs, &hf_bootp_option_client_last_transaction_time },
-/*  92 */ { "Associated IP option",                    ipv4_list, &hf_bootp_option_associated_ip_option },
+/*  91 */ { "Client last transaction time",            time_in_u_secs, &hf_dhcp_option_client_last_transaction_time },
+/*  92 */ { "Associated IP option",                    ipv4_list, &hf_dhcp_option_associated_ip_option },
 /*  93 */ { "Client System Architecture",              special, NULL},
 /*  94 */ { "Client Network Device Interface",         special, NULL},
 /*  95 */ { "LDAP [TODO:RFC3679]",                     opaque, NULL },
@@ -1399,8 +1399,8 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
 /*  97 */ { "UUID/GUID-based Client Identifier",       special, NULL},
 /*  98 */ { "Open Group's User Authentication [TODO:RFC2485]", opaque, NULL },
 /*  99 */ { "Civic Addresses Configuration",           special, NULL},
-/* 100 */ { "PCode",                                   string, &hf_bootp_option_tz_pcode },
-/* 101 */ { "TCode",                                   string, &hf_bootp_option_tz_tcode },
+/* 100 */ { "PCode",                                   string, &hf_dhcp_option_tz_pcode },
+/* 101 */ { "TCode",                                   string, &hf_dhcp_option_tz_tcode },
 /* 102 */ { "Removed/unassigned",                      opaque, NULL },
 /* 103 */ { "Removed/unassigned",                      opaque, NULL },
 /* 104 */ { "Removed/unassigned",                      opaque, NULL },
@@ -1411,13 +1411,13 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
 /* 109 */ { "Unassigned",                              opaque, NULL },
 /* 110 */ { "Removed/Unassigned",                      opaque, NULL },
 /* 111 */ { "Unassigned",                              opaque, NULL },
-/* 112 */ { "NetInfo Parent Server Address",           ipv4_list, &hf_bootp_option_netinfo_parent_server_address },
-/* 113 */ { "NetInfo Parent Server Tag",               string, &hf_bootp_option_netinfo_parent_server_tag },
+/* 112 */ { "NetInfo Parent Server Address",           ipv4_list, &hf_dhcp_option_netinfo_parent_server_address },
+/* 113 */ { "NetInfo Parent Server Tag",               string, &hf_dhcp_option_netinfo_parent_server_tag },
 /* 114 */ { "URL [TODO:RFC3679]",                      opaque, NULL },
 /* 115 */ { "Removed/Unassigned",                      opaque, NULL },
-/* 116 */ { "DHCP Auto-Configuration",                 val_u_byte, &hf_bootp_option_dhcp_auto_configuration },
+/* 116 */ { "DHCP Auto-Configuration",                 val_u_byte, &hf_dhcp_option_dhcp_auto_configuration },
 /* 117 */ { "Name Service Search",                     special, NULL },
-/* 118 */ { "Subnet Selection Option",                 ipv4_list, &hf_bootp_option_subnet_selection_option },
+/* 118 */ { "Subnet Selection Option",                 ipv4_list, &hf_dhcp_option_subnet_selection_option },
 /* 119 */ { "Domain Search",                           special, NULL },
 /* 120 */ { "SIP Servers",             special, NULL },
 /* 121 */ { "Classless Static Route",                  special, NULL},
@@ -1436,12 +1436,12 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
 /* 134 */ { "PXE - undefined (vendor specific)",       opaque, NULL },
 /* 135 */ { "PXE - undefined (vendor specific)",       opaque, NULL },
 /* 136 */ { "OPTION_PANA_AGENT [TODO:RFC5192]",                opaque, NULL },
-/* 137 */ { "LoST Server Domain Name",                 string, &hf_bootp_option_lost_server_domain_name },
-/* 138 */ { "CAPWAP Access Controllers",               ipv4_list, &hf_bootp_option_capwap_access_controller },
+/* 137 */ { "LoST Server Domain Name",                 string, &hf_dhcp_option_lost_server_domain_name },
+/* 138 */ { "CAPWAP Access Controllers",               ipv4_list, &hf_dhcp_option_capwap_access_controller },
 /* 139 */ { "IPv4 Address-MoS",                                opaque, NULL },
 /* 140 */ { "IPv4 FQDN-MoS",                           opaque, NULL },
 /* 141 */ { "SIP UA Configuration Domains",            opaque, NULL },
-/* 142 */ { "IPv4 Address ANDSF",                      ipv4_list, &hf_bootp_option_andsf_server },
+/* 142 */ { "IPv4 Address ANDSF",                      ipv4_list, &hf_dhcp_option_andsf_server },
 /* 143 */ { "Zerotouch Redirect [TODO: draft-ietf-netconf-zerotouch]", opaque, NULL },
 /* 144 */ { "Geospatial Location [TODO:RFC6225]",      opaque, NULL },
 /* 145 */ { "Forcerenew Nonce Capable",                        special, NULL },
@@ -1449,18 +1449,18 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
 /* 147 */ { "Unassigned",                              opaque, NULL },
 /* 148 */ { "Unassigned",                              opaque, NULL },
 /* 149 */ { "Unassigned",                              opaque, NULL },
-/* 150 */ { "TFTP Server Address",                     ipv4_list, &hf_bootp_option_tftp_server_address },
+/* 150 */ { "TFTP Server Address",                     ipv4_list, &hf_dhcp_option_tftp_server_address },
 /* 151 */ { "Leasequery Status code",                  special, NULL },
 /* 152 */ { "Leasequery Base Time",                    special, NULL },
-/* 153 */ { "Leasequery Start Time of State",          time_in_u_secs, &hf_bootp_option_bulk_lease_start_time_of_state },
+/* 153 */ { "Leasequery Start Time of State",          time_in_u_secs, &hf_dhcp_option_bulk_lease_start_time_of_state },
 /* 154 */ { "Leasequery Query Start Time",             special, NULL },
 /* 155 */ { "Leasequery Query End Time",               special, NULL },
-/* 156 */ { "Leasequery Dhcp State",                   val_u_byte, &hf_bootp_option_bulk_lease_dhcp_state },
-/* 157 */ { "Leasequery Data Source",                  val_boolean, &hf_bootp_option_bulk_lease_data_source },
+/* 156 */ { "Leasequery Dhcp State",                   val_u_byte, &hf_dhcp_option_bulk_lease_dhcp_state },
+/* 157 */ { "Leasequery Data Source",                  val_boolean, &hf_dhcp_option_bulk_lease_data_source },
 /* 158 */ { "PCP Server",                              special, NULL },
 /* 159 */ { "Portparams",                              special, NULL },
 /* 160 */ { "DHCP Captive-Portal",                     special, NULL },
-/* 161 */ { "Manufacturer Usage Description",          string, &hf_bootp_option_mudurl},
+/* 161 */ { "Manufacturer Usage Description",          string, &hf_dhcp_option_mudurl},
 /* 162 */ { "Unassigned",                              opaque, NULL },
 /* 163 */ { "Unassigned",                              opaque, NULL },
 /* 164 */ { "Unassigned",                              opaque, NULL },
@@ -1508,8 +1508,8 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
 /* 206 */ { "Unassigned",                              opaque, NULL },
 /* 207 */ { "Unassigned",                              opaque, NULL },
 /* 208 */ { "PXELINUX Magic",                          opaque, NULL },
-/* 209 */ { "PXE Configuration file",                  string, &hf_bootp_option_pxe_config_file },
-/* 210 */ { "PXE Path Prefix",                         string, &hf_bootp_option_pxe_path_prefix },
+/* 209 */ { "PXE Configuration file",                  string, &hf_dhcp_option_pxe_config_file },
+/* 210 */ { "PXE Path Prefix",                         string, &hf_dhcp_option_pxe_path_prefix },
 /* 211 */ { "Reboot Time",                             opaque, NULL },
 /* 212 */ { "6RD",                                     opaque, NULL },
 /* 213 */ { "V4 Access Domain",                                opaque, NULL },
@@ -1551,7 +1551,7 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
 /* 249 */ { "Private/Classless Static Route (Microsoft)",      special, NULL},
 /* 250 */ { "Private",                                 opaque, NULL },
 /* 251 */ { "Private",                                 opaque, NULL },
-/* 252 */ { "Private/Proxy autodiscovery",                     string, &hf_bootp_option_private_proxy_autodiscovery },
+/* 252 */ { "Private/Proxy autodiscovery",                     string, &hf_dhcp_option_private_proxy_autodiscovery },
 /* 253 */ { "Private",                                 opaque, NULL },
 /* 254 */ { "Private",                                 opaque, NULL },
 /* 255 */ { "End",                                     opaque, NULL }
@@ -1567,24 +1567,24 @@ typedef struct {
        gchar *text;
        enum field_type ftype;
 
-} uat_bootp_record_t;
+} uat_dhcp_record_t;
 
-static uat_bootp_record_t *uat_bootp_records = NULL;
-static uat_t *bootp_uat = NULL;
-static guint num_bootp_records_uat = 0;
+static uat_dhcp_record_t *uat_dhcp_records = NULL;
+static uat_t *dhcp_uat = NULL;
+static guint num_dhcp_records_uat = 0;
 static wmem_list_t *saved_uat_opts = NULL; /* List of previous options from UAT to "free" from dissection */
 
-static void* uat_bootp_record_copy_cb(void* n, const void* o, size_t siz _U_) {
-       uat_bootp_record_t* new_record = (uat_bootp_record_t *)n;
-       const uat_bootp_record_t* old_record = (const uat_bootp_record_t *)o;
+static void* uat_dhcp_record_copy_cb(void* n, const void* o, size_t siz _U_) {
+       uat_dhcp_record_t* new_record = (uat_dhcp_record_t *)n;
+       const uat_dhcp_record_t* old_record = (const uat_dhcp_record_t *)o;
 
        new_record->text = g_strdup(old_record->text);
 
        return new_record;
 }
 
-static gboolean uat_bootp_record_update_cb(void* r, char** err) {
-       uat_bootp_record_t* rec = (uat_bootp_record_t *)r;
+static gboolean uat_dhcp_record_update_cb(void* r, char** err) {
+       uat_dhcp_record_t* rec = (uat_dhcp_record_t *)r;
 
        if ((rec->opt == 0) || (rec->opt >=BOOTP_OPT_NUM-1)) {
                *err = g_strdup_printf("Option must be between 1 and %d", BOOTP_OPT_NUM-2);
@@ -1593,31 +1593,31 @@ static gboolean uat_bootp_record_update_cb(void* r, char** err) {
        return TRUE;
 }
 
-static void uat_bootp_record_free_cb(void*r) {
-       uat_bootp_record_t* rec = (uat_bootp_record_t *)r;
+static void uat_dhcp_record_free_cb(void*r) {
+       uat_dhcp_record_t* rec = (uat_dhcp_record_t *)r;
 
        g_free(rec->text);
 }
 
-UAT_DEC_CB_DEF(uat_bootp_records, opt, uat_bootp_record_t)
-UAT_CSTRING_CB_DEF(uat_bootp_records, text, uat_bootp_record_t)
-UAT_VS_DEF(uat_bootp_records, ftype, uat_bootp_record_t, enum field_type, special, "string")
+UAT_DEC_CB_DEF(uat_dhcp_records, opt, uat_dhcp_record_t)
+UAT_CSTRING_CB_DEF(uat_dhcp_records, text, uat_dhcp_record_t)
+UAT_VS_DEF(uat_dhcp_records, ftype, uat_dhcp_record_t, enum field_type, special, "string")
 
 
-static struct opt_info* bootp_get_opt(unsigned int idx)
+static struct opt_info* dhcp_get_opt(unsigned int idx)
 {
        if(idx>=BOOTP_OPT_NUM)
                return NULL;
 
-       return &bootp_opt[idx];
+       return &dhcp_opt[idx];
 }
 
 static const char *
-bootp_get_opt_text(unsigned int idx)
+dhcp_get_opt_text(unsigned int idx)
 {
        if(idx>=BOOTP_OPT_NUM)
                return "unknown";
-       return bootp_opt[idx].text;
+       return dhcp_opt[idx].text;
 }
 
 struct basic_types_hfs {
@@ -1636,7 +1636,7 @@ struct basic_types_hfs {
 
 /* Handle "basic" datatypes adding to a tree */
 static int
-bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item, tvbuff_t *tvb,
+dhcp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item, tvbuff_t *tvb,
                         enum field_type ftype, int offset, int total_len,
                         gint *hf, struct basic_types_hfs* hf_default)
 {
@@ -1656,7 +1656,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case ipv4:
                if (total_len != 4) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 4");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 4");
                        break;
                }
 
@@ -1670,7 +1670,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
        case ipv4_list:
                for (i = offset, left = total_len; left > 0; i += 4, left -= 4) {
                        if (left < 4) {
-                               expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "Option length isn't a multiple of 4");
+                               expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "Option length isn't a multiple of 4");
                                break;
                        }
 
@@ -1693,7 +1693,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case val_boolean:
                if (total_len != 1) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 1");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 1");
                        break;
                }
 
@@ -1706,7 +1706,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case val_u_byte:
                if (total_len != 1) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 1");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 1");
                        break;
                }
 
@@ -1719,7 +1719,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case val_u_short:
                if (total_len != 2) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 2");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 2");
                        break;
                }
 
@@ -1732,7 +1732,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case val_u_le_short:
                if (total_len != 2) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 2");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 2");
                        break;
                }
 
@@ -1746,7 +1746,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
        case val_u_short_list:
                for (i = offset, left = total_len; left > 0; i += 2, left -= 2) {
                        if (left < 2) {
-                               expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "Option length isn't a multiple of 2");
+                               expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "Option length isn't a multiple of 2");
                                break;
                        }
 
@@ -1760,7 +1760,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case val_u_long:
                if (total_len != 4) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 4");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 4");
                        break;
                }
 
@@ -1773,7 +1773,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case time_in_s_secs:
                if (total_len != 4) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 4");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 4");
                        break;
                }
 
@@ -1790,7 +1790,7 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 
        case time_in_u_secs:
                if (total_len != 4) {
-                       expert_add_info_format(pinfo, item, &ei_bootp_bad_length, "length isn't 4");
+                       expert_add_info_format(pinfo, item, &ei_dhcp_bad_length, "length isn't 4");
                        break;
                }
 
@@ -1813,35 +1813,35 @@ bootp_handle_basic_types(packet_info *pinfo, proto_tree *tree, proto_item *item,
 }
 
 static int
-dissect_bootpopt_basic_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+dissect_dhcpopt_basic_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
 {
        struct opt_info *opt;
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        struct basic_types_hfs default_hfs = {
-               &hf_bootp_option_value,
-               &hf_bootp_option_value_ip_address,
-               &hf_bootp_option_value_ip_address,
-               &hf_bootp_option_value_stringz,
-               &hf_bootp_option_value_boolean,
-               &hf_bootp_option_value_8,
-               &hf_bootp_option_value_16,
-               &hf_bootp_option_value_16,
-               &hf_bootp_option_value_u32,
-               &hf_bootp_option_value_i32,
-               &hf_bootp_option_value_u32
+               &hf_dhcp_option_value,
+               &hf_dhcp_option_value_ip_address,
+               &hf_dhcp_option_value_ip_address,
+               &hf_dhcp_option_value_stringz,
+               &hf_dhcp_option_value_boolean,
+               &hf_dhcp_option_value_8,
+               &hf_dhcp_option_value_16,
+               &hf_dhcp_option_value_16,
+               &hf_dhcp_option_value_u32,
+               &hf_dhcp_option_value_i32,
+               &hf_dhcp_option_value_u32
        };
 
-       opt = bootp_get_opt(option_data->option);
+       opt = dhcp_get_opt(option_data->option);
        if (opt == NULL)
                return 0;
 
-       return bootp_handle_basic_types(pinfo, tree, tree, tvb, opt->ftype,
+       return dhcp_handle_basic_types(pinfo, tree, tree, tvb, opt->ftype,
                                                      0, tvb_reported_length(tvb), opt->phf, &default_hfs);
 }
 
 /* Returns the number of bytes consumed by this option. */
 static int
-bootp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
+dhcp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
             int eoff, gboolean first_pass, gboolean *at_end, const char **dhcp_type_p,
             const guint8 **vendor_class_id_p, guint8 *overload_p)
 {
@@ -1852,7 +1852,7 @@ bootp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
        proto_tree      *v_tree;
        proto_item      *vti, *ti_value;
        tvbuff_t *option_tvb;
-       bootp_option_data_t option_data;
+       dhcp_option_data_t option_data;
 
        /* Options whose length isn't "optlen + 2". */
        switch (code) {
@@ -1867,10 +1867,10 @@ bootp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
                i = i - voff;
                if (!first_pass) {
                        if (bp_tree != NULL) {
-                               vti = proto_tree_add_uint_format_value(bp_tree, hf_bootp_option_type,
+                               vti = proto_tree_add_uint_format_value(bp_tree, hf_dhcp_option_type,
                                                tvb, voff, 1, 0, "(0) Padding");
-                               v_tree = proto_item_add_subtree(vti, ett_bootp_option);
-                               proto_tree_add_item(v_tree, hf_bootp_option_padding, tvb, voff, i, ENC_NA);
+                               v_tree = proto_item_add_subtree(vti, ett_dhcp_option);
+                               proto_tree_add_item(v_tree, hf_dhcp_option_padding, tvb, voff, i, ENC_NA);
                        }
                }
                consumed = i;
@@ -1879,13 +1879,13 @@ bootp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
        case 255:       /* End Option */
                if (!first_pass) {
                        if (bp_tree != NULL) {
-                               vti = proto_tree_add_uint_format_value(bp_tree, hf_bootp_option_type,
+                               vti = proto_tree_add_uint_format_value(bp_tree, hf_dhcp_option_type,
                                                tvb, voff, 1, 0, "(255) End");
-                               v_tree = proto_item_add_subtree(vti, ett_bootp_option);
+                               v_tree = proto_item_add_subtree(vti, ett_dhcp_option);
                                if (*overload_p)
-                                       proto_tree_add_item(v_tree, hf_bootp_option_end_overload, tvb, voff, 1, ENC_BIG_ENDIAN);
+                                       proto_tree_add_item(v_tree, hf_dhcp_option_end_overload, tvb, voff, 1, ENC_BIG_ENDIAN);
                                else
-                                       proto_tree_add_item(v_tree, hf_bootp_option_end, tvb, voff, 1, ENC_BIG_ENDIAN);
+                                       proto_tree_add_item(v_tree, hf_dhcp_option_end, tvb, voff, 1, ENC_BIG_ENDIAN);
                        }
                }
                *at_end = TRUE;
@@ -1971,19 +1971,19 @@ bootp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
        }
 
        /* Normal cases */
-       opt = bootp_get_opt(code);
+       opt = dhcp_get_opt(code);
        if (opt == NULL)
        {
                /* THIS SHOULD NEVER HAPPEN!!! */
                return consumed;
        }
 
-       vti = proto_tree_add_uint_format_value(bp_tree, hf_bootp_option_type,
+       vti = proto_tree_add_uint_format_value(bp_tree, hf_dhcp_option_type,
                tvb, voff, consumed, code, "(%d) %s", code, opt->text);
-       v_tree = proto_item_add_subtree(vti, ett_bootp_option);
-       proto_tree_add_item(v_tree, hf_bootp_option_length, tvb, voff+1, 1, ENC_BIG_ENDIAN);
+       v_tree = proto_item_add_subtree(vti, ett_dhcp_option);
+       proto_tree_add_item(v_tree, hf_dhcp_option_length, tvb, voff+1, 1, ENC_BIG_ENDIAN);
 
-       ti_value = proto_tree_add_item(v_tree, hf_bootp_option_value, tvb, voff+2, optlen, ENC_NA);
+       ti_value = proto_tree_add_item(v_tree, hf_dhcp_option_value, tvb, voff+2, optlen, ENC_NA);
        PROTO_ITEM_SET_HIDDEN(ti_value);
 
        /* prepate data for dissector table */
@@ -1994,8 +1994,8 @@ bootp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
        option_data.vendor_class_id = *vendor_class_id_p;
        option_data.orig_tvb = tvb;
 
-       if (!dissector_try_uint_new(bootp_option_table, code, option_tvb, pinfo, v_tree, FALSE, &option_data)) {
-               /* hf_bootp_option_value is already in tree, just make it visible */
+       if (!dissector_try_uint_new(dhcp_option_table, code, option_tvb, pinfo, v_tree, FALSE, &option_data)) {
+               /* hf_dhcp_option_value is already in tree, just make it visible */
                PROTO_ITEM_SET_VISIBLE(ti_value);
        }
 
@@ -2003,80 +2003,80 @@ bootp_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, int voff,
 }
 
 static int
-dissect_bootpopt_policy_filter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_policy_filter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
        while (tvb_reported_length_remaining(tvb, offset) >= 8) {
-               proto_tree_add_item(tree, hf_bootp_option_policy_filter_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_policy_filter_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
                offset += 4;
-               proto_tree_add_item(tree, hf_bootp_option_policy_filter_subnet_mask, tvb, offset, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_policy_filter_subnet_mask, tvb, offset, 4, ENC_BIG_ENDIAN);
                offset += 4;
        }
 
        if (tvb_reported_length_remaining(tvb, offset) > 0) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Option length isn't a multiple of 8");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Option length isn't a multiple of 8");
        }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_static_route(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_static_route(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
        while (tvb_reported_length_remaining(tvb, offset) >= 8) {
-               proto_tree_add_item(tree, hf_bootp_option_static_route_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_static_route_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
                offset += 4;
-               proto_tree_add_item(tree, hf_bootp_option_static_route_router, tvb, offset, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_static_route_router, tvb, offset, 4, ENC_BIG_ENDIAN);
                offset += 4;
        }
 
        if (tvb_reported_length_remaining(tvb, offset) > 0) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Option length isn't a multiple of 8");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Option length isn't a multiple of 8");
        }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_vendor_specific_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+dissect_dhcpopt_vendor_specific_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
 {
        heur_dtbl_entry_t *hdtbl_entry;
        proto_tree *vendor_tree;
 
-       if (!dissector_try_heuristic(bootp_vendor_info_subdissector, tvb, pinfo, tree, &hdtbl_entry, data)) {
+       if (!dissector_try_heuristic(dhcp_vendor_info_subdissector, tvb, pinfo, tree, &hdtbl_entry, data)) {
                /* Default Vendor-Specific Info.. display in bytes */
-               vendor_tree = proto_item_add_subtree(tree, ett_bootp_option);
-               proto_tree_add_item(vendor_tree, hf_bootp_option43_value, tvb, 0, tvb_reported_length(tvb), ENC_NA);
+               vendor_tree = proto_item_add_subtree(tree, ett_dhcp_option);
+               proto_tree_add_item(vendor_tree, hf_dhcp_option43_value, tvb, 0, tvb_reported_length(tvb), ENC_NA);
        }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_option_overload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+dissect_dhcpopt_option_overload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
 {
        int offset = 0;
        int     suboffset, suboffset_end;
        gboolean at_end;
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        guint32 byte;
 
        if (tvb_reported_length(tvb) < 1) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 1");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 1");
                return 1;
        }
 
-       proto_tree_add_item_ret_uint(tree, hf_bootp_option_option_overload, tvb, offset, 1, ENC_BIG_ENDIAN, &byte);
+       proto_tree_add_item_ret_uint(tree, hf_dhcp_option_option_overload, tvb, offset, 1, ENC_BIG_ENDIAN, &byte);
 
        /* Just in case we find an option 52 in sname or file */
        if ((*option_data->overload >= 1) && (*option_data->overload <= 3)) {
                if (byte & OPT_OVERLOAD_SNAME) {
                        proto_item *oti;
                        proto_tree *overload_tree = proto_tree_add_subtree(tree, option_data->orig_tvb,
-                               SERVER_NAME_OFFSET, SERVER_NAME_LEN, ett_bootp_server_hostname, &oti,
+                               SERVER_NAME_OFFSET, SERVER_NAME_LEN, ett_dhcp_server_hostname, &oti,
                                "Server host name option overload");
                        guint8 ignore_overload = 0;
                        suboffset = SERVER_NAME_OFFSET;
@@ -2085,20 +2085,20 @@ dissect_bootpopt_option_overload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
                        rfc3396_dns_domain_search_list.index_current_block = 0;
                        rfc3396_sip_server.index_current_block = 0;
                        while (suboffset < suboffset_end && !at_end) {
-                               suboffset += bootp_option(option_data->orig_tvb, pinfo, overload_tree, suboffset,
+                               suboffset += dhcp_option(option_data->orig_tvb, pinfo, overload_tree, suboffset,
                                        suboffset_end, FALSE, &at_end,
                                        &option_data->dhcp_type, &option_data->vendor_class_id,
                                        &ignore_overload);
                        }
                        if (!at_end)
                        {
-                               expert_add_info(pinfo, oti, &hf_bootp_opt_overload_sname_end_missing);
+                               expert_add_info(pinfo, oti, &hf_dhcp_opt_overload_sname_end_missing);
                        }
                }
                if (byte & OPT_OVERLOAD_FILE) {
                        proto_item *oti;
                        proto_tree *overload_tree = proto_tree_add_subtree(tree, option_data->orig_tvb,
-                               FILE_NAME_OFFSET, FILE_NAME_LEN, ett_bootp_filename_option, &oti,
+                               FILE_NAME_OFFSET, FILE_NAME_LEN, ett_dhcp_filename_option, &oti,
                                "Boot file name option overload");
                        guint8 ignore_overload = 0;
                        suboffset = FILE_NAME_OFFSET;
@@ -2107,14 +2107,14 @@ dissect_bootpopt_option_overload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
                        rfc3396_dns_domain_search_list.index_current_block = 0;
                        rfc3396_sip_server.index_current_block = 0;
                        while (suboffset < suboffset_end && !at_end) {
-                               suboffset += bootp_option(option_data->orig_tvb, pinfo, overload_tree, suboffset,
+                               suboffset += dhcp_option(option_data->orig_tvb, pinfo, overload_tree, suboffset,
                                        suboffset_end, FALSE, &at_end,
                                        &option_data->dhcp_type, &option_data->vendor_class_id,
                                        &ignore_overload);
                        }
                        if (!at_end)
                        {
-                               expert_add_info(pinfo, oti, &hf_bootp_opt_overload_file_end_missing);
+                               expert_add_info(pinfo, oti, &hf_dhcp_opt_overload_file_end_missing);
                        }
                }
                /* The final end option is not in overload */
@@ -2125,11 +2125,11 @@ dissect_bootpopt_option_overload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
 }
 
 static int
-dissect_bootpopt_dhcp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_dhcp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        guint32 type;
 
-       proto_tree_add_item_ret_uint(tree, hf_bootp_option_dhcp, tvb, 0, 1, ENC_NA, &type);
+       proto_tree_add_item_ret_uint(tree, hf_dhcp_option_dhcp, tvb, 0, 1, ENC_NA, &type);
        /* Show the message type name on the Message Type option, and in the protocol root */
        proto_item_append_text(tree, " (%s)", val_to_str(type, opt53_text, "Unknown Message Type (0x%02x)"));
        proto_item_append_text(proto_item_get_parent(tree), " (%s)", val_to_str(type, opt53_text, "Unknown Message Type (0x%02x)"));
@@ -2138,15 +2138,15 @@ dissect_bootpopt_dhcp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, v
 }
 
 static int
-dissect_bootpopt_param_request_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_param_request_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        guint8 byte;
 
        while (tvb_reported_length_remaining(tvb, offset) > 0) {
                byte = tvb_get_guint8(tvb, offset);
-               proto_tree_add_uint_format_value(tree, hf_bootp_option_parameter_request_list_item,
-                               tvb, offset, 1, byte, "(%d) %s", byte, bootp_get_opt_text(byte));
+               proto_tree_add_uint_format_value(tree, hf_dhcp_option_parameter_request_list_item,
+                               tvb, offset, 1, byte, "(%d) %s", byte, dhcp_get_opt_text(byte));
                offset++;
        }
 
@@ -2154,7 +2154,7 @@ dissect_bootpopt_param_request_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto
 }
 
 static int
-dissect_bootpopt_vendor_class_identifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+dissect_dhcpopt_vendor_class_identifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
 {
        heur_dtbl_entry_t *hdtbl_entry;
 
@@ -2162,14 +2162,14 @@ dissect_bootpopt_vendor_class_identifier(tvbuff_t *tvb, packet_info *pinfo, prot
         * XXX - RFC 2132 says this is a string of octets;
         * should we check for non-printables?
         */
-       proto_tree_add_item(tree, hf_bootp_option_vendor_class_id, tvb, 0, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
-       dissector_try_heuristic(bootp_vendor_id_subdissector, tvb, pinfo, tree, &hdtbl_entry, data);
+       proto_tree_add_item(tree, hf_dhcp_option_vendor_class_id, tvb, 0, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
+       dissector_try_heuristic(dhcp_vendor_id_subdissector, tvb, pinfo, tree, &hdtbl_entry, data);
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_client_identifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_client_identifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        int length = tvb_reported_length(tvb);
@@ -2190,16 +2190,16 @@ dissect_bootpopt_client_identifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree
                (e.g. a fully qualified domain name). */
 
        if (length == 7 && byte > 0 && byte < 48) {
-               proto_tree_add_item(tree, hf_bootp_hw_type, tvb, offset, 1, ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_hw_type, tvb, offset, 1, ENC_NA);
 
                if (byte == ARPHRD_ETHER || byte == ARPHRD_IEEE802)
-                       proto_tree_add_item(tree, hf_bootp_hw_ether_addr, tvb, offset+1, 6, ENC_NA);
+                       proto_tree_add_item(tree, hf_dhcp_hw_ether_addr, tvb, offset+1, 6, ENC_NA);
                else
-                       proto_tree_add_string(tree, hf_bootp_client_hardware_address, tvb, offset+1, 6,
+                       proto_tree_add_string(tree, hf_dhcp_client_hardware_address, tvb, offset+1, 6,
                                tvb_arphrdaddr_to_str(tvb, offset+1, 6, byte));
        } else if (length == 17 && byte == 0) {
                /* Identifier is a UUID */
-               proto_tree_add_item(tree, hf_bootp_client_identifier_uuid, tvb, offset + 1, 16, bootp_uuid_endian);
+               proto_tree_add_item(tree, hf_dhcp_client_identifier_uuid, tvb, offset + 1, 16, dhcp_uuid_endian);
 
        /* From RFC 4361 paragraph 6.1 DHCPv4 Client Behavior:
                To send an RFC 3315-style binding identifier in a DHCPv4 'client
@@ -2211,57 +2211,57 @@ dissect_bootpopt_client_identifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree
 
                /*      The type field is immediately followed by the IAID, which is
                        an opaque 32-bit quantity       */
-               proto_tree_add_string(tree, hf_bootp_client_id_iaid, tvb, offset+1, 4,
+               proto_tree_add_string(tree, hf_dhcp_client_id_iaid, tvb, offset+1, 4,
                        tvb_arphrdaddr_to_str(tvb, offset+1, 4, byte));
                offset += 5;
                duidtype = tvb_get_ntohs(tvb, offset);
-               proto_tree_add_item(tree, hf_bootp_client_id_duid_type, tvb, offset, 2, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_client_id_duid_type, tvb, offset, 2, ENC_BIG_ENDIAN);
                switch (duidtype) {
                case DUID_LLT:
                        if (length < 8) {
-                               expert_add_info(pinfo, tree, &ei_bootp_mal_duid);
+                               expert_add_info(pinfo, tree, &ei_dhcp_mal_duid);
                                break;
                        }
                        hwtype=tvb_get_ntohs(tvb, offset + 2);
-                       proto_tree_add_item(tree, hf_bootp_client_identifier_duid_llt_hw_type,
+                       proto_tree_add_item(tree, hf_dhcp_client_identifier_duid_llt_hw_type,
                                        tvb, offset + 2, 2, ENC_BIG_ENDIAN);
 
                        /* XXX seconds since Jan 1 2000 */
-                       proto_tree_add_item(tree, hf_bootp_client_identifier_time, tvb, offset + 4, 4, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(tree, hf_dhcp_client_identifier_time, tvb, offset + 4, 4, ENC_BIG_ENDIAN);
                        if (length > 8) {
-                               proto_tree_add_string(tree, hf_bootp_client_identifier_link_layer_address, tvb, offset + 8,
+                               proto_tree_add_string(tree, hf_dhcp_client_identifier_link_layer_address, tvb, offset + 8,
                                        length - 13, tvb_arphrdaddr_to_str(tvb, offset+8, length-13, hwtype));
                        }
                        break;
                case DUID_EN:
                        if (length < 6) {
-                               expert_add_info(pinfo, tree, &ei_bootp_mal_duid);
+                               expert_add_info(pinfo, tree, &ei_dhcp_mal_duid);
                                break;
                        }
-                       proto_tree_add_item(tree, hf_bootp_client_identifier_enterprise_num, tvb, offset + 2, 4, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(tree, hf_dhcp_client_identifier_enterprise_num, tvb, offset + 2, 4, ENC_BIG_ENDIAN);
                        if (length > 6) {
-                               proto_tree_add_item(tree, hf_bootp_client_identifier, tvb, offset + 6, length - 11, ENC_NA);
+                               proto_tree_add_item(tree, hf_dhcp_client_identifier, tvb, offset + 6, length - 11, ENC_NA);
                        }
                        break;
                case DUID_LL:
                        if (length < 4) {
-                               expert_add_info(pinfo, tree, &ei_bootp_mal_duid);
+                               expert_add_info(pinfo, tree, &ei_dhcp_mal_duid);
                                break;
                        }
                        hwtype=tvb_get_ntohs(tvb, offset + 2);
-                       proto_tree_add_item(tree, hf_bootp_client_identifier_duid_ll_hw_type,
+                       proto_tree_add_item(tree, hf_dhcp_client_identifier_duid_ll_hw_type,
                                        tvb, offset + 2, 2, ENC_BIG_ENDIAN);
 
                        if (length > 4) {
-                               proto_tree_add_string(tree, hf_bootp_client_identifier_link_layer_address, tvb, offset + 4,
+                               proto_tree_add_string(tree, hf_dhcp_client_identifier_link_layer_address, tvb, offset + 4,
                                        length - 9, tvb_arphrdaddr_to_str(tvb, offset+4, length-9, hwtype));
                        }
                        break;
                }
        } else if (byte == 0 && length > 1) {
                /* identifier other than a hardware address (e.g. a fully qualified domain name) */
-               proto_tree_add_item(tree, hf_bootp_client_identifier_type, tvb, offset, 1, ENC_NA);
-               proto_tree_add_item(tree, hf_bootp_client_identifier_undef, tvb, offset+1, length-1, ENC_ASCII|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_client_identifier_type, tvb, offset, 1, ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_client_identifier_undef, tvb, offset+1, length-1, ENC_ASCII|ENC_NA);
        } else {
                /* otherwise, it's opaque data */
        }
@@ -2270,7 +2270,7 @@ dissect_bootpopt_client_identifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree
 }
 
 static int
-dissect_bootpopt_user_class_information(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_user_class_information(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        guchar user_class_instance_index = 0;
        int offset = 0;
@@ -2278,44 +2278,44 @@ dissect_bootpopt_user_class_information(tvbuff_t *tvb, packet_info *pinfo, proto
        proto_item *vtix, *len_item;
        proto_tree *o77_v_tree;
        if (tvb_reported_length(tvb) < 2) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 2");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 2");
                return 1;
        }
 
        if (!tvb_strneql(tvb, offset, "iPXE", 4)) {
                /* The iPXE is known to violate RFC 3004, http://forum.ipxe.org/showthread.php?tid=7530 */
-               proto_item *expert_ti = proto_tree_add_item(tree, hf_bootp_option77_user_class_data, tvb, offset, -1, ENC_NA);
-               expert_add_info(pinfo, expert_ti, &ei_bootp_nonstd_option_data);
+               proto_item *expert_ti = proto_tree_add_item(tree, hf_dhcp_option77_user_class_data, tvb, offset, -1, ENC_NA);
+               expert_add_info(pinfo, expert_ti, &ei_dhcp_nonstd_option_data);
                return tvb_captured_length(tvb);
        }
 
        while (tvb_reported_length_remaining(tvb, offset) > 0) {
                /* Create subtree for instance of User Class. */
-               vtix = proto_tree_add_uint_format_value(tree, hf_bootp_option77_user_class,
+               vtix = proto_tree_add_uint_format_value(tree, hf_dhcp_option77_user_class,
                                tvb, offset, 1, user_class_instance_index, "[%d]", user_class_instance_index);
-               o77_v_tree = proto_item_add_subtree(vtix, ett_bootp_option77_instance);
+               o77_v_tree = proto_item_add_subtree(vtix, ett_dhcp_option77_instance);
 
                if (!tvb_strneql(tvb, offset, "RRAS.Microsoft", 14)) {
                        /* MS have this non-conformant option https://msdn.microsoft.com/en-us/library/dd358019.aspx?f=255&MSPPError=-2147217396 */
                        class_length = 14;
-                       proto_item *expert_ti = proto_tree_add_item(o77_v_tree, hf_bootp_option77_user_class_text, tvb, offset, class_length, ENC_ASCII|ENC_NA);
-                       expert_add_info(pinfo, expert_ti, &ei_bootp_nonstd_option_data);
+                       proto_item *expert_ti = proto_tree_add_item(o77_v_tree, hf_dhcp_option77_user_class_text, tvb, offset, class_length, ENC_ASCII|ENC_NA);
+                       expert_add_info(pinfo, expert_ti, &ei_dhcp_nonstd_option_data);
                        proto_item_set_len(vtix, class_length);
                }
                else {
                        /* Add length for instance of User Class. */
-                       len_item = proto_tree_add_item_ret_uint(o77_v_tree, hf_bootp_option77_user_class_length,
+                       len_item = proto_tree_add_item_ret_uint(o77_v_tree, hf_dhcp_option77_user_class_length,
                                        tvb, offset, 1, ENC_BIG_ENDIAN, &class_length);
                        proto_item_set_len(vtix, class_length+1);
                        offset += 1;
 
                        if (class_length == 0) {
-                               expert_add_info_format(pinfo, len_item, &ei_bootp_bad_length, "UC_Len_%u isn't >= 1 (UC_Len_%u = 0)", user_class_instance_index, user_class_instance_index);
+                               expert_add_info_format(pinfo, len_item, &ei_dhcp_bad_length, "UC_Len_%u isn't >= 1 (UC_Len_%u = 0)", user_class_instance_index, user_class_instance_index);
                                break;
                        }
 
                        /* Add data for instance of User Class. */
-                       proto_tree_add_item(o77_v_tree, hf_bootp_option77_user_class_data, tvb, offset, class_length, ENC_NA);
+                       proto_tree_add_item(o77_v_tree, hf_dhcp_option77_user_class_data, tvb, offset, class_length, ENC_NA);
                }
                offset += class_length;
                user_class_instance_index++;
@@ -2325,17 +2325,17 @@ dissect_bootpopt_user_class_information(tvbuff_t *tvb, packet_info *pinfo, proto
 }
 
 static int
-dissect_bootpopt_slp_directory_agent(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_slp_directory_agent(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        guint32 byte;
 
        if (tvb_reported_length(tvb) < 1) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 1");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 1");
                return 1;
        }
 
-       proto_tree_add_item_ret_uint(tree, hf_bootp_option_slp_directory_agent_value, tvb, offset, 1, ENC_BIG_ENDIAN, &byte);
+       proto_tree_add_item_ret_uint(tree, hf_dhcp_option_slp_directory_agent_value, tvb, offset, 1, ENC_BIG_ENDIAN, &byte);
        offset++;
 
        if (byte == 0x80) {
@@ -2346,39 +2346,39 @@ dissect_bootpopt_slp_directory_agent(tvbuff_t *tvb, packet_info *pinfo, proto_tr
        }
 
        while (tvb_reported_length_remaining(tvb, offset) >= 4) {
-               proto_tree_add_item(tree, hf_bootp_option_slp_directory_agent_slpda_address, tvb, offset, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_slp_directory_agent_slpda_address, tvb, offset, 4, ENC_BIG_ENDIAN);
                offset += 4;
        }
 
        if (tvb_reported_length_remaining(tvb, offset) > 0) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Option length isn't a multiple of 4");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Option length isn't a multiple of 4");
        }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_slp_service_scope(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_slp_service_scope(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
-       proto_tree_add_item(tree, hf_bootp_option_slp_service_scope_value, tvb, offset, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_slp_service_scope_value, tvb, offset, 1, ENC_BIG_ENDIAN);
 
        offset++;
-       proto_tree_add_item(tree, hf_bootp_option_slp_service_scope_string, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
+       proto_tree_add_item(tree, hf_dhcp_option_slp_service_scope_string, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_client_full_domain_name(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_client_full_domain_name(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        static const int * fqdn_hf_flags[] = {
-               &hf_bootp_fqdn_mbz,
-               &hf_bootp_fqdn_n,
-               &hf_bootp_fqdn_e,
-               &hf_bootp_fqdn_o,
-               &hf_bootp_fqdn_s,
+               &hf_dhcp_fqdn_mbz,
+               &hf_dhcp_fqdn_n,
+               &hf_dhcp_fqdn_e,
+               &hf_dhcp_fqdn_o,
+               &hf_dhcp_fqdn_s,
                NULL
        };
        guint8 fqdn_flags;
@@ -2387,26 +2387,26 @@ dissect_bootpopt_client_full_domain_name(tvbuff_t *tvb, packet_info *pinfo, prot
        guint                   dns_name_len;
 
        if (length < 3) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 3");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 3");
                return 1;
        }
 
        fqdn_flags = tvb_get_guint8(tvb, offset);
-       proto_tree_add_bitmask(tree, tvb, offset, hf_bootp_fqdn_flags,
-                               ett_bootp_fqdn_flags, fqdn_hf_flags, ENC_BIG_ENDIAN);
+       proto_tree_add_bitmask(tree, tvb, offset, hf_dhcp_fqdn_flags,
+                               ett_dhcp_fqdn_flags, fqdn_hf_flags, ENC_BIG_ENDIAN);
 
        /* XXX: use code from packet-dns for return code decoding */
-       proto_tree_add_item(tree, hf_bootp_fqdn_rcode1, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_fqdn_rcode1, tvb, offset+1, 1, ENC_BIG_ENDIAN);
        /* XXX: use code from packet-dns for return code decoding */
-       proto_tree_add_item(tree, hf_bootp_fqdn_rcode2, tvb, offset+2, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_fqdn_rcode2, tvb, offset+2, 1, ENC_BIG_ENDIAN);
 
        if (length > 3) {
                if (fqdn_flags & F_FQDN_E) {
                        get_dns_name(tvb, offset+3, length-3, offset+3, &dns_name, &dns_name_len);
-                       proto_tree_add_string(tree, hf_bootp_fqdn_name,
+                       proto_tree_add_string(tree, hf_dhcp_fqdn_name,
                                tvb, offset+3, length-3, format_text(wmem_packet_scope(), dns_name, dns_name_len));
                } else {
-                       proto_tree_add_item(tree, hf_bootp_fqdn_asciiname, tvb, offset+3, length-3, ENC_ASCII|ENC_NA);
+                       proto_tree_add_item(tree, hf_dhcp_fqdn_asciiname, tvb, offset+3, length-3, ENC_ASCII|ENC_NA);
                }
        }
 
@@ -2414,24 +2414,24 @@ dissect_bootpopt_client_full_domain_name(tvbuff_t *tvb, packet_info *pinfo, prot
 }
 
 static int
-dissect_bootpopt_novell_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_novell_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
        /* Option 85 can be sent as a string */
        /* Added by Greg Morris (gmorris[AT]novell.com) */
        if (novell_string) {
-               proto_tree_add_item(tree, hf_bootp_option_novell_dss_string, tvb, offset, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_option_novell_dss_string, tvb, offset, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
        } else {
                /* IP addresses */
                while (tvb_reported_length_remaining(tvb, offset) >= 4) {
 
-                       proto_tree_add_item(tree, hf_bootp_option_novell_dss_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(tree, hf_dhcp_option_novell_dss_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
                        offset += 4;
                }
 
                if (tvb_reported_length_remaining(tvb, offset) > 0) {
-                       expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Option length isn't a multiple of 4");
+                       expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Option length isn't a multiple of 4");
                }
        }
 
@@ -2439,45 +2439,45 @@ dissect_bootpopt_novell_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
 }
 
 static int
-dissect_bootpopt_dhcp_authentication(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+dissect_dhcpopt_dhcp_authentication(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
 {
        int offset = 0;
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        guint32 protocol, rdm;
        guint8 algorithm;
 
        if (tvb_reported_length(tvb) < 11) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 11");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 11");
                return 1;
        }
 
-       proto_tree_add_item_ret_uint(tree, hf_bootp_option_dhcp_authentication_protocol, tvb, offset, 1, ENC_BIG_ENDIAN, &protocol);
+       proto_tree_add_item_ret_uint(tree, hf_dhcp_option_dhcp_authentication_protocol, tvb, offset, 1, ENC_BIG_ENDIAN, &protocol);
        offset++;
 
        algorithm = tvb_get_guint8(tvb, offset);
        switch (protocol) {
 
        case AUTHEN_PROTO_DELAYED_AUTHEN:
-               proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_alg_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_alg_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
                break;
 
        default:
-               proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_algorithm, tvb, offset, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_algorithm, tvb, offset, 1, ENC_BIG_ENDIAN);
                break;
        }
        offset++;
 
-       proto_tree_add_item_ret_uint(tree, hf_bootp_option_dhcp_authentication_rdm, tvb, offset, 1, ENC_BIG_ENDIAN, &rdm);
+       proto_tree_add_item_ret_uint(tree, hf_dhcp_option_dhcp_authentication_rdm, tvb, offset, 1, ENC_BIG_ENDIAN, &rdm);
        offset++;
 
        switch (rdm) {
 
        case AUTHEN_RDM_MONOTONIC_COUNTER:
-               proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_rdm_replay_detection, tvb, offset, 8, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_rdm_replay_detection, tvb, offset, 8, ENC_BIG_ENDIAN);
                break;
 
        default:
-               proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_rdm_rdv, tvb, offset, 8, ENC_ASCII|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_rdm_rdv, tvb, offset, 8, ENC_ASCII|ENC_NA);
                break;
        }
        offset += 8;
@@ -2493,13 +2493,13 @@ dissect_bootpopt_dhcp_authentication(tvbuff_t *tvb, packet_info *pinfo, proto_tr
                                break;
                        } else {
                                if (tvb_reported_length_remaining(tvb, offset) < 20) {
-                                       expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 20");
+                                       expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 20");
                                        break;
                                }
 
-                               proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_secret_id, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_secret_id, tvb, offset, 4, ENC_BIG_ENDIAN);
                                offset += 4;
-                               proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_hmac_md5_hash, tvb, offset, 16, ENC_NA);
+                               proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_hmac_md5_hash, tvb, offset, 16, ENC_NA);
                                break;
                        }
 
@@ -2507,7 +2507,7 @@ dissect_bootpopt_dhcp_authentication(tvbuff_t *tvb, packet_info *pinfo, proto_tr
                        if (tvb_reported_length_remaining(tvb, offset) == 0)
                                break;
 
-                       proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_information, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
+                       proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_information, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
                        break;
                }
                break;
@@ -2516,7 +2516,7 @@ dissect_bootpopt_dhcp_authentication(tvbuff_t *tvb, packet_info *pinfo, proto_tr
                if (tvb_reported_length_remaining(tvb, offset) == 0)
                        break;
 
-               proto_tree_add_item(tree, hf_bootp_option_dhcp_authentication_information, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_option_dhcp_authentication_information, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
                break;
        }
 
@@ -2524,7 +2524,7 @@ dissect_bootpopt_dhcp_authentication(tvbuff_t *tvb, packet_info *pinfo, proto_tr
 }
 
 static int
-dissect_bootpopt_client_architecture(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_client_architecture(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
@@ -2532,13 +2532,13 @@ dissect_bootpopt_client_architecture(tvbuff_t *tvb, packet_info *pinfo, proto_tr
                guint32 architecture_id;
                proto_item *pi;
 
-               pi = proto_tree_add_item_ret_uint(tree, hf_bootp_option_client_system_architecture, tvb, offset, 2, ENC_BIG_ENDIAN, &architecture_id);
+               pi = proto_tree_add_item_ret_uint(tree, hf_dhcp_option_client_system_architecture, tvb, offset, 2, ENC_BIG_ENDIAN, &architecture_id);
                offset += 2;
 
                /*
                 * Some Client Architecture IDs are widely misused.  For
                 * details, refer to the comment at the definition of
-                * bootp_client_arch.
+                * dhcp_client_arch.
                 *
                 * The most common problem is a client using architecture ID 9
                 * when performing an EFI x64 boot.  Windows Server 2008 WDS
@@ -2547,7 +2547,7 @@ dissect_bootpopt_client_architecture(tvbuff_t *tvb, packet_info *pinfo, proto_tr
                 * ID 9 to x64 in order to accommodate these clients.
                 */
                if (architecture_id == 9) {
-                       expert_add_info_format(pinfo, pi, &ei_bootp_option93_client_arch_ambiguous, "Client Architecture ID 9 is often incorrectly used for EFI x64");
+                       expert_add_info_format(pinfo, pi, &ei_dhcp_option93_client_arch_ambiguous, "Client Architecture ID 9 is often incorrectly used for EFI x64");
                }
 
                /*
@@ -2558,14 +2558,14 @@ dissect_bootpopt_client_architecture(tvbuff_t *tvb, packet_info *pinfo, proto_tr
                 */
        }
        if (tvb_reported_length_remaining(tvb, offset) > 0) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Option length isn't a multiple of 2");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Option length isn't a multiple of 2");
        }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_client_network_interface_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_client_network_interface_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        guint8 id_type;
@@ -2574,10 +2574,10 @@ dissect_bootpopt_client_network_interface_id(tvbuff_t *tvb, packet_info *pinfo _
        offset++;
 
        if (id_type == 0x01) {
-               proto_tree_add_item(tree, hf_bootp_option_client_network_id_major_ver,
+               proto_tree_add_item(tree, hf_dhcp_option_client_network_id_major_ver,
                                                        tvb, offset, 1, ENC_LITTLE_ENDIAN);
                offset++;
-               proto_tree_add_item(tree, hf_bootp_option_client_network_id_minor_ver,
+               proto_tree_add_item(tree, hf_dhcp_option_client_network_id_minor_ver,
                                                        tvb, offset, 1, ENC_LITTLE_ENDIAN);
        }
 
@@ -2585,7 +2585,7 @@ dissect_bootpopt_client_network_interface_id(tvbuff_t *tvb, packet_info *pinfo _
 }
 
 static int
-dissect_bootpopt_client_identifier_uuid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_client_identifier_uuid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        int offset = 0, length = tvb_reported_length(tvb);
        guint8 byte;
@@ -2605,15 +2605,15 @@ dissect_bootpopt_client_identifier_uuid(tvbuff_t *tvb, packet_info *pinfo _U_, p
                (e.g. a fully qualified domain name). */
 
        if (length == 7 && byte > 0 && byte < 48) {
-               proto_tree_add_item(tree, hf_bootp_hw_type, tvb, offset, 1, ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_hw_type, tvb, offset, 1, ENC_NA);
                if (byte == ARPHRD_ETHER || byte == ARPHRD_IEEE802)
-                       proto_tree_add_item(tree, hf_bootp_hw_ether_addr, tvb, offset+1, 6, ENC_NA);
+                       proto_tree_add_item(tree, hf_dhcp_hw_ether_addr, tvb, offset+1, 6, ENC_NA);
                else
-                       proto_tree_add_string(tree, hf_bootp_client_hardware_address, tvb, offset+1, 6,
+                       proto_tree_add_string(tree, hf_dhcp_client_hardware_address, tvb, offset+1, 6,
                                tvb_arphrdaddr_to_str(tvb, offset+1, 6, byte));
        } else if (length == 17 && byte == 0) {
                /* Identifier is a UUID */
-               proto_tree_add_item(tree, hf_bootp_client_identifier_uuid, tvb, offset + 1, 16, bootp_uuid_endian);
+               proto_tree_add_item(tree, hf_dhcp_client_identifier_uuid, tvb, offset + 1, 16, dhcp_uuid_endian);
        } else {
                /* otherwise, it's opaque data */
        }
@@ -2622,23 +2622,23 @@ dissect_bootpopt_client_identifier_uuid(tvbuff_t *tvb, packet_info *pinfo _U_, p
 }
 
 static int
-dissect_bootpopt_civic_location(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_civic_location(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
        if (tvb_reported_length(tvb) >= 3)
        {
-               proto_tree_add_item(tree, hf_bootp_option_civic_location_what, tvb, offset, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_civic_location_what, tvb, offset, 1, ENC_BIG_ENDIAN);
                offset++;
-               proto_tree_add_item(tree, hf_bootp_option_civic_location_country, tvb, offset, 2, ENC_ASCII|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_option_civic_location_country, tvb, offset, 2, ENC_ASCII|ENC_NA);
                offset += 2;
 
                while (tvb_reported_length_remaining(tvb, offset) >= 2)
                {
                        guint32 calength;
-                       proto_tree_add_item(tree, hf_bootp_option_civic_location_ca_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(tree, hf_dhcp_option_civic_location_ca_type, tvb, offset, 1, ENC_BIG_ENDIAN);
                        offset++;
-                       proto_tree_add_item_ret_uint(tree, hf_bootp_option_civic_location_ca_length, tvb, offset, 1, ENC_BIG_ENDIAN, &calength);
+                       proto_tree_add_item_ret_uint(tree, hf_dhcp_option_civic_location_ca_length, tvb, offset, 1, ENC_BIG_ENDIAN, &calength);
                        offset++;
 
                        if (calength == 0)
@@ -2646,12 +2646,12 @@ dissect_bootpopt_civic_location(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
 
                        if (tvb_reported_length_remaining(tvb, offset) >= (int)calength)
                        {
-                               proto_tree_add_item(tree, hf_bootp_option_civic_location_ca_value, tvb, offset, calength, ENC_ASCII|ENC_NA);
+                               proto_tree_add_item(tree, hf_dhcp_option_civic_location_ca_value, tvb, offset, calength, ENC_ASCII|ENC_NA);
                                offset += calength;
                        }
                        else
                        {
-                               expert_add_info(pinfo, tree, &ei_bootp_option_civic_location_bad_cattype);
+                               expert_add_info(pinfo, tree, &ei_dhcp_option_civic_location_bad_cattype);
                                break;
                        }
                }
@@ -2661,16 +2661,16 @@ dissect_bootpopt_civic_location(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
 }
 
 static int
-dissect_bootpopt_name_server_search(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_name_server_search(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0, length = tvb_reported_length(tvb);
        guint16 ns;
 
        if (length < 2) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 2");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 2");
                return 1;
        } else if (length & 1) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length (%u) isn't even number", length);
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length (%u) isn't even number", length);
                return 1;
        }
 
@@ -2679,22 +2679,22 @@ dissect_bootpopt_name_server_search(tvbuff_t *tvb, packet_info *pinfo, proto_tre
                /* XXX - Make this a value_string */
                switch (ns) {
                case RFC2937_LOCAL_NAMING_INFORMATION:
-                       proto_tree_add_string(tree, hf_bootp_option_dhcp_name_service_search_option, tvb, offset, 2, "Local naming information (e.g., an /etc/hosts file on a UNIX machine) (0)");
+                       proto_tree_add_string(tree, hf_dhcp_option_dhcp_name_service_search_option, tvb, offset, 2, "Local naming information (e.g., an /etc/hosts file on a UNIX machine) (0)");
                        break;
                case RFC2937_DOMAIN_NAME_SERVER_OPTION:
-                       proto_tree_add_string(tree, hf_bootp_option_dhcp_name_service_search_option, tvb, offset, 2, "Domain Name Server Option (6)");
+                       proto_tree_add_string(tree, hf_dhcp_option_dhcp_name_service_search_option, tvb, offset, 2, "Domain Name Server Option (6)");
                        break;
                case RFC2937_NETWORK_INFORMATION_SERVERS_OPTION:
-                       proto_tree_add_string(tree, hf_bootp_option_dhcp_name_service_search_option, tvb, offset, 2, "Network Information Servers Option (41)");
+                       proto_tree_add_string(tree, hf_dhcp_option_dhcp_name_service_search_option, tvb, offset, 2, "Network Information Servers Option (41)");
                        break;
                case RFC2937_NETBIOS_OVER_TCP_IP_NAME_SERVER_OPTION:
-                       proto_tree_add_string(tree, hf_bootp_option_dhcp_name_service_search_option, tvb, offset, 2, "NetBIOS over TCP/IP Name Server Option (44)");
+                       proto_tree_add_string(tree, hf_dhcp_option_dhcp_name_service_search_option, tvb, offset, 2, "NetBIOS over TCP/IP Name Server Option (44)");
                        break;
                case RFC2937_NETWORK_INFORMATION_SERVICE_PLUS_SERVERS_OPTION:
-                       proto_tree_add_string(tree, hf_bootp_option_dhcp_name_service_search_option, tvb, offset, 2, "Network Information Service+ Servers Option (65)");
+                       proto_tree_add_string(tree, hf_dhcp_option_dhcp_name_service_search_option, tvb, offset, 2, "Network Information Service+ Servers Option (65)");
                        break;
                default:
-                       expert_add_info_format(pinfo, tree, &ei_bootp_option_dhcp_name_service_invalid,
+                       expert_add_info_format(pinfo, tree, &ei_dhcp_option_dhcp_name_service_invalid,
                                                "Invalid Name Service (%u). RFC 2937 defines only 0, 6, 41, 44, and 65 as possible values.", ns);
                        break;
                }
@@ -2705,7 +2705,7 @@ dissect_bootpopt_name_server_search(tvbuff_t *tvb, packet_info *pinfo, proto_tre
 }
 
 static int
-dissect_bootpopt_dhcp_domain_search(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_dhcp_domain_search(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        int length = tvb_reported_length(tvb);
        const guchar    *dns_name;
@@ -2715,10 +2715,10 @@ dissect_bootpopt_dhcp_domain_search(tvbuff_t *tvb, packet_info *pinfo _U_, proto
        /* Domain Names - Implementation And Specification (RFC 1035) */
        rfc3396_dns_domain_search_list.index_current_block++;
        if (rfc3396_dns_domain_search_list.total_number_of_block > 1) {
-               proto_tree_add_string(tree, hf_bootp_option_dhcp_dns_domain_search_list_rfc_3396_detected, tvb, 0, length,
+               proto_tree_add_string(tree, hf_dhcp_option_dhcp_dns_domain_search_list_rfc_3396_detected, tvb, 0, length,
                                                                wmem_strdup_printf(wmem_packet_scope(), "%u/%u", rfc3396_dns_domain_search_list.index_current_block, rfc3396_dns_domain_search_list.total_number_of_block));
                if (rfc3396_dns_domain_search_list.index_current_block != rfc3396_dns_domain_search_list.total_number_of_block) {
-                       proto_tree_add_string(tree, hf_bootp_option_dhcp_dns_domain_search_list_refer_last_option, tvb, 0, length,
+                       proto_tree_add_string(tree, hf_dhcp_option_dhcp_dns_domain_search_list_refer_last_option, tvb, 0, length,
                                                                wmem_strdup_printf(wmem_packet_scope(), "%u/%u", rfc3396_dns_domain_search_list.total_number_of_block, rfc3396_dns_domain_search_list.total_number_of_block));
                }
        }
@@ -2746,10 +2746,10 @@ dissect_bootpopt_dhcp_domain_search(tvbuff_t *tvb, packet_info *pinfo _U_, proto
                                tvb_reported_length(rfc3396_dns_domain_search_list.tvb_composite), 0, &dns_name, &dns_name_len);
                        if (rfc3396_dns_domain_search_list.total_number_of_block == 1) {
                                /* RFC 3396 is not used, so we can easily link the fqdn with v_tree. */
-                               proto_tree_add_string(tree, hf_bootp_option_dhcp_dns_domain_search_list_fqdn, tvb, composite_offset, consumedx, dns_name);
+                               proto_tree_add_string(tree, hf_dhcp_option_dhcp_dns_domain_search_list_fqdn, tvb, composite_offset, consumedx, dns_name);
                        } else {
                                /* RFC 3396 is used, so the option is split into several option 119. We don't link fqdn with v_tree. */
-                               proto_tree_add_string(tree, hf_bootp_option_dhcp_dns_domain_search_list_fqdn, tvb, 0, 0, dns_name);
+                               proto_tree_add_string(tree, hf_dhcp_option_dhcp_dns_domain_search_list_fqdn, tvb, 0, 0, dns_name);
                        }
                        composite_offset += consumedx;
                }
@@ -2760,7 +2760,7 @@ dissect_bootpopt_dhcp_domain_search(tvbuff_t *tvb, packet_info *pinfo _U_, proto
 }
 
 static int
-dissect_bootpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int length = tvb_reported_length(tvb);
        const guchar    *dns_name;
@@ -2770,10 +2770,10 @@ dissect_bootpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
        /* Domain Names - Implementation And Specification (RFC 1035) */
        rfc3396_sip_server.index_current_block++;
        if (rfc3396_sip_server.total_number_of_block > 1) {
-               proto_tree_add_string(tree, hf_bootp_option_sip_server_rfc_3396_detected, tvb, 0, length,
+               proto_tree_add_string(tree, hf_dhcp_option_sip_server_rfc_3396_detected, tvb, 0, length,
                                                                wmem_strdup_printf(wmem_packet_scope(), "%u/%u", rfc3396_sip_server.index_current_block, rfc3396_sip_server.total_number_of_block));
                if (rfc3396_sip_server.index_current_block != rfc3396_sip_server.total_number_of_block) {
-                       proto_tree_add_string(tree, hf_bootp_option_sip_server_refer_last_option, tvb, 0, length,
+                       proto_tree_add_string(tree, hf_dhcp_option_sip_server_refer_last_option, tvb, 0, length,
                                                                wmem_strdup_printf(wmem_packet_scope(), "%u/%u", rfc3396_sip_server.total_number_of_block, rfc3396_sip_server.total_number_of_block));
                }
        }
@@ -2798,17 +2798,17 @@ dissect_bootpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
                enc = tvb_get_guint8(rfc3396_sip_server.tvb_composite, 0);
                if (rfc3396_sip_server.total_number_of_block == 1) {
                        /* RFC 3396 is not used, so we can easily link the fqdn with tree. */
-                       proto_tree_add_uint(tree, hf_bootp_option_sip_server_enc, tvb, 0, 1, enc);
+                       proto_tree_add_uint(tree, hf_dhcp_option_sip_server_enc, tvb, 0, 1, enc);
                } else {
                        /* RFC 3396 is used, so the option is split into several option 120. We don't link fqdn with tree. */
-                       proto_tree_add_uint(tree, hf_bootp_option_sip_server_enc, tvb, 0, 0, enc);
+                       proto_tree_add_uint(tree, hf_dhcp_option_sip_server_enc, tvb, 0, 0, enc);
                }
 
                switch (enc) {
                case RFC_3361_ENC_FQDN: {
                        unsigned int consumedx = 0;
                        if (tvb_reported_length(rfc3396_sip_server.tvb_composite) < 3) {
-                               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 3 (len = %u)", tvb_reported_length(rfc3396_sip_server.tvb_composite));
+                               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 3 (len = %u)", tvb_reported_length(rfc3396_sip_server.tvb_composite));
                                break;
                        }
 
@@ -2819,10 +2819,10 @@ dissect_bootpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
 
                                if (rfc3396_sip_server.total_number_of_block == 1) {
                                        /* RFC 3396 is not used, so we can easily link the fqdn with v_tree. */
-                                       proto_tree_add_string(tree, hf_bootp_option_sip_server_name, tvb, composite_offset, consumedx, dns_name);
+                                       proto_tree_add_string(tree, hf_dhcp_option_sip_server_name, tvb, composite_offset, consumedx, dns_name);
                                } else {
                                        /* RFC 3396 is used, so the option is split into several option 120. We don't link fqdn with v_tree. */
-                                       proto_tree_add_string(tree, hf_bootp_option_sip_server_name, tvb, 0, 0, format_text(wmem_packet_scope(), dns_name, dns_name_len));
+                                       proto_tree_add_string(tree, hf_dhcp_option_sip_server_name, tvb, 0, 0, format_text(wmem_packet_scope(), dns_name, dns_name_len));
                                }
                                composite_offset += consumedx;
                        }
@@ -2831,15 +2831,15 @@ dissect_bootpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
                }
                case RFC_3361_ENC_IPADDR:
                        if (tvb_reported_length(rfc3396_sip_server.tvb_composite) < 5) {
-                               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 5 (len = %u)", tvb_reported_length(rfc3396_sip_server.tvb_composite));
+                               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 5 (len = %u)", tvb_reported_length(rfc3396_sip_server.tvb_composite));
                                break;
                        }
                        /* x % 2^n == x & (2^n - 1) note : (assuming x is a positive integer) */
                        if ((tvb_reported_length(rfc3396_sip_server.tvb_composite) - 1) & 3) {
                                if (rfc3396_sip_server.total_number_of_block == 1)
-                                       expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't a multiple of 4 plus 1 (len = %u).", tvb_reported_length(rfc3396_sip_server.tvb_composite));
+                                       expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't a multiple of 4 plus 1 (len = %u).", tvb_reported_length(rfc3396_sip_server.tvb_composite));
                                else
-                                       expert_add_info_format(pinfo, tree, &ei_bootp_bad_length,
+                                       expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length,
                                                "length isn't a multiple of 4 plus 1 (len = %u). For your information with RFC 3396, the length is the length sum of all options 120 into this BOOTP packet.",
                                                tvb_reported_length(rfc3396_sip_server.tvb_composite));
                                break;
@@ -2847,17 +2847,17 @@ dissect_bootpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
                        while (composite_offset < tvb_reported_length(rfc3396_sip_server.tvb_composite)) {
                                if (rfc3396_sip_server.total_number_of_block == 1) {
                                        /* RFC 3396 is not used, so we can easily link the fqdn with v_tree. */
-                                       proto_tree_add_item(tree, hf_bootp_option_sip_server_address, rfc3396_sip_server.tvb_composite, composite_offset, 4, ENC_BIG_ENDIAN);
+                                       proto_tree_add_item(tree, hf_dhcp_option_sip_server_address, rfc3396_sip_server.tvb_composite, composite_offset, 4, ENC_BIG_ENDIAN);
                                } else {
                                        guint32 sip_server = tvb_get_ipv4(rfc3396_sip_server.tvb_composite, composite_offset);
                                        /* RFC 3396 is used, so the option is split into several option 120. We don't link fqdn with v_tree. */
-                                       proto_tree_add_ipv4(tree, hf_bootp_option_sip_server_address, tvb, 0, 0, sip_server);
+                                       proto_tree_add_ipv4(tree, hf_dhcp_option_sip_server_address, tvb, 0, 0, sip_server);
                                }
                                composite_offset += 4;
                        }
                        break;
                default:
-                       expert_add_info_format(pinfo, tree, &ei_bootp_option_sip_server_address_encoding, "RFC 3361 defines only 0 and 1 for Encoding byte (Encoding = %u).", enc);
+                       expert_add_info_format(pinfo, tree, &ei_dhcp_option_sip_server_address_encoding, "RFC 3361 defines only 0 and 1 for Encoding byte (Encoding = %u).", enc);
                        break;
                }
        }
@@ -2866,7 +2866,7 @@ dissect_bootpopt_sip_servers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
 }
 
 static int
-dissect_bootpopt_classless_static_route(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_classless_static_route(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        int i, mask_width, significant_octets;
@@ -2874,23 +2874,23 @@ dissect_bootpopt_classless_static_route(tvbuff_t *tvb, packet_info *pinfo, proto
 
        /* minimum length is 5 bytes */
        if (tvb_reported_length(tvb) < 5) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length isn't >= 5");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length isn't >= 5");
                return 1;
        }
        while (tvb_reported_length_remaining(tvb, offset) > 0) {
                mask_width = tvb_get_guint8(tvb, offset);
                /* mask_width <= 32 */
                if (mask_width > 32) {
-                       expert_add_info_format(pinfo, tree, &ei_bootp_option_classless_static_route, "Mask width (%d) > 32", mask_width);
+                       expert_add_info_format(pinfo, tree, &ei_dhcp_option_classless_static_route, "Mask width (%d) > 32", mask_width);
                        break;
                }
                significant_octets = (mask_width + 7) / 8;
-               route_item = proto_tree_add_bytes_format(tree, hf_bootp_option_classless_static_route, tvb, offset,
+               route_item = proto_tree_add_bytes_format(tree, hf_dhcp_option_classless_static_route, tvb, offset,
                        1 + significant_octets + 4, NULL, " ");
                offset++;
                /* significant octets + router(4) */
                if (tvb_reported_length_remaining(tvb, offset + significant_octets + 4) < 0) {
-                       expert_add_info_format(pinfo, route_item, &ei_bootp_bad_length, "Remaining length (%d) < %d bytes", tvb_reported_length_remaining(tvb, offset), significant_octets + 4);
+                       expert_add_info_format(pinfo, route_item, &ei_dhcp_bad_length, "Remaining length (%d) < %d bytes", tvb_reported_length_remaining(tvb, offset), significant_octets + 4);
                        break;
                }
                if(mask_width == 0)
@@ -2913,7 +2913,7 @@ dissect_bootpopt_classless_static_route(tvbuff_t *tvb, packet_info *pinfo, proto
 }
 
 static int
-dissect_bootpopt_coordinate_based_location(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_coordinate_based_location(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0, length = tvb_reported_length(tvb);
        proto_item* ti;
@@ -2933,79 +2933,79 @@ dissect_bootpopt_coordinate_based_location(tvbuff_t *tvb, packet_info *pinfo, pr
                ret = rfc3825_fixpoint_to_decimal(&location_fp, &location);
 
                if (ret != RFC3825_NOERROR) {
-                       ti = proto_tree_add_uint(tree, hf_bootp_option_rfc3825_error, tvb, offset, 1, ret);
+                       ti = proto_tree_add_uint(tree, hf_dhcp_option_rfc3825_error, tvb, offset, 1, ret);
                        proto_item_set_len(ti, length);
                } else {
-                       proto_tree_add_double_format_value(tree, hf_bootp_option_rfc3825_latitude, tvb, offset, 5, location.latitude, "%15.10f", location.latitude);
-                       proto_tree_add_double_format_value(tree, hf_bootp_option_rfc3825_longitude, tvb, offset+5, 5, location.longitude, "%15.10f", location.longitude);
-                       proto_tree_add_double_format_value(tree, hf_bootp_option_rfc3825_latitude_res, tvb, offset, 1, location.latitude_res, "%15.10f", location.latitude_res);
-                       proto_tree_add_double_format_value(tree, hf_bootp_option_rfc3825_longitude_res, tvb, offset+5, 1, location.longitude_res, "%15.10f", location.longitude_res);
-                       proto_tree_add_double_format_value(tree, hf_bootp_option_rfc3825_altitude, tvb, offset+12, 4, location.altitude, "%15.10f", location.altitude);
-                       proto_tree_add_double_format_value(tree, hf_bootp_option_rfc3825_altitide_res, tvb, offset+10, 2, location.altitude_res, "%15.10f", location.altitude_res);
-                       proto_tree_add_uint(tree, hf_bootp_option_rfc3825_altitude_type, tvb, offset+10, 1, location.altitude_type);
-                       proto_tree_add_uint(tree, hf_bootp_option_rfc3825_map_datum, tvb, offset+15, 1, location.datum_type);
+                       proto_tree_add_double_format_value(tree, hf_dhcp_option_rfc3825_latitude, tvb, offset, 5, location.latitude, "%15.10f", location.latitude);
+                       proto_tree_add_double_format_value(tree, hf_dhcp_option_rfc3825_longitude, tvb, offset+5, 5, location.longitude, "%15.10f", location.longitude);
+                       proto_tree_add_double_format_value(tree, hf_dhcp_option_rfc3825_latitude_res, tvb, offset, 1, location.latitude_res, "%15.10f", location.latitude_res);
+                       proto_tree_add_double_format_value(tree, hf_dhcp_option_rfc3825_longitude_res, tvb, offset+5, 1, location.longitude_res, "%15.10f", location.longitude_res);
+                       proto_tree_add_double_format_value(tree, hf_dhcp_option_rfc3825_altitude, tvb, offset+12, 4, location.altitude, "%15.10f", location.altitude);
+                       proto_tree_add_double_format_value(tree, hf_dhcp_option_rfc3825_altitide_res, tvb, offset+10, 2, location.altitude_res, "%15.10f", location.altitude_res);
+                       proto_tree_add_uint(tree, hf_dhcp_option_rfc3825_altitude_type, tvb, offset+10, 1, location.altitude_type);
+                       proto_tree_add_uint(tree, hf_dhcp_option_rfc3825_map_datum, tvb, offset+15, 1, location.datum_type);
                }
        } else if (length < 69) { /* CableLabs DSS_ID */
                int s_len;
 
-               proto_tree_add_item(tree, hf_bootp_option_cl_dss_id_option, tvb, offset, 1, ENC_BIG_ENDIAN);
-               proto_tree_add_item(tree, hf_bootp_option_cl_dss_id_len, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_cl_dss_id_option, tvb, offset, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_cl_dss_id_len, tvb, offset+1, 1, ENC_BIG_ENDIAN);
                s_len = tvb_get_guint8(tvb, offset+1);
-               proto_tree_add_item(tree, hf_bootp_option_cl_dss_id, tvb, offset+2, s_len, ENC_ASCII|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_option_cl_dss_id, tvb, offset+2, s_len, ENC_ASCII|ENC_NA);
 
                if (length > s_len+2) { /* Second DSS_ID*/
 
-                       proto_tree_add_item(tree, hf_bootp_option_cl_dss_id_option, tvb, offset+2+s_len, 1, ENC_BIG_ENDIAN);
-                       proto_tree_add_item(tree, hf_bootp_option_cl_dss_id_len, tvb, offset+1+2+s_len, 1, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(tree, hf_dhcp_option_cl_dss_id_option, tvb, offset+2+s_len, 1, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(tree, hf_dhcp_option_cl_dss_id_len, tvb, offset+1+2+s_len, 1, ENC_BIG_ENDIAN);
                        s_len = tvb_get_guint8(tvb, offset+1+2+s_len);
-                       proto_tree_add_item(tree, hf_bootp_option_cl_dss_id, tvb, offset+2+2+s_len, s_len, ENC_ASCII|ENC_NA);
+                       proto_tree_add_item(tree, hf_dhcp_option_cl_dss_id, tvb, offset+2+2+s_len, s_len, ENC_ASCII|ENC_NA);
                }
        } else {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Invalid length of DHCP option!");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Invalid length of DHCP option!");
        }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_vi_vendor_class(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_vi_vendor_class(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        int data_len;
 
        if (tvb_reported_length(tvb) == 1) {
                /* CableLab specific */
-               proto_tree_add_item(tree, hf_bootp_option_vi_class_cl_address_mode, tvb, 0, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_vi_class_cl_address_mode, tvb, 0, 1, ENC_BIG_ENDIAN);
                return 1;
        }
 
        while (tvb_reported_length_remaining(tvb, offset)  >= 5) {
 
-               proto_tree_add_item(tree, hf_bootp_option_vi_class_enterprise, tvb, offset, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_vi_class_enterprise, tvb, offset, 4, ENC_BIG_ENDIAN);
                offset += 4;
-               proto_tree_add_item(tree, hf_bootp_option_vi_class_data_length, tvb, offset, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_vi_class_data_length, tvb, offset, 1, ENC_BIG_ENDIAN);
                data_len = tvb_get_guint8(tvb, offset);
                offset += 1;
 
-               proto_tree_add_item(tree, hf_bootp_option_vi_class_data, tvb, offset, data_len, ENC_ASCII|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_option_vi_class_data, tvb, offset, data_len, ENC_ASCII|ENC_NA);
 
                /* look for next enterprise number */
                offset += data_len;
        }
 
        if (tvb_reported_length_remaining(tvb, offset) > 0) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length < 5");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length < 5");
        }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_forcerenew_nonce(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_forcerenew_nonce(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        while ( tvb_reported_length_remaining(tvb, offset) > 0) {
-               proto_tree_add_item(tree, hf_bootp_option_forcerenew_nonce_algo, tvb, offset, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_forcerenew_nonce_algo, tvb, offset, 1, ENC_BIG_ENDIAN);
                offset += 1;
                }
 
@@ -3013,94 +3013,94 @@ dissect_bootpopt_forcerenew_nonce(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
 }
 
 static int
-dissect_bootpopt_rdnss(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_rdnss(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        const guchar *dns_name;
        guint dns_name_len;
 
        if (tvb_reported_length(tvb) < 10) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must be >= 10");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must be >= 10");
                return 1;
        }
-       proto_tree_add_item(tree, hf_bootp_option_rdnss_reserved, tvb, offset, 1, ENC_BIG_ENDIAN);
-       proto_tree_add_item(tree, hf_bootp_option_rdnss_pref, tvb, offset, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_rdnss_reserved, tvb, offset, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_rdnss_pref, tvb, offset, 1, ENC_BIG_ENDIAN);
        offset += 1;
-       proto_tree_add_item(tree, hf_bootp_option_rdnss_prim_dns_server, tvb, offset, 4, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_rdnss_prim_dns_server, tvb, offset, 4, ENC_BIG_ENDIAN);
        offset += 4;
-       proto_tree_add_item(tree, hf_bootp_option_rdnss_sec_dns_server, tvb, offset, 4, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_rdnss_sec_dns_server, tvb, offset, 4, ENC_BIG_ENDIAN);
        offset += 4;
 
        get_dns_name(tvb, offset, tvb_reported_length_remaining(tvb,offset), offset, &dns_name, &dns_name_len);
-       proto_tree_add_string(tree, hf_bootp_option_rdnss_domain, tvb, offset,
+       proto_tree_add_string(tree, hf_dhcp_option_rdnss_domain, tvb, offset,
                        tvb_reported_length_remaining(tvb,offset), format_text(wmem_packet_scope(), dns_name, dns_name_len));
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_dhcp_captive_portal(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_dhcp_captive_portal(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        proto_item *ti_cp;
-       ti_cp = proto_tree_add_item(tree, hf_bootp_option_captive_portal, tvb, 0, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
+       ti_cp = proto_tree_add_item(tree, hf_dhcp_option_captive_portal, tvb, 0, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
        PROTO_ITEM_SET_URL(ti_cp);
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_bulk_lease_query_start(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_bulk_lease_query_start(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        if (tvb_reported_length(tvb) != 4) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must be 4");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must be 4");
                return 1;
        }
-       proto_tree_add_item(tree, hf_bootp_option_bulk_lease_query_start, tvb, 0, 4, ENC_TIME_SECS_NTP|ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_bulk_lease_query_start, tvb, 0, 4, ENC_TIME_SECS_NTP|ENC_BIG_ENDIAN);
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_bulk_lease_query_end(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_bulk_lease_query_end(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        if (tvb_reported_length(tvb) != 4) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must be 4");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must be 4");
                return 1;
        }
-       proto_tree_add_item(tree, hf_bootp_option_bulk_lease_query_end, tvb, 0, 4, ENC_TIME_SECS_NTP|ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_bulk_lease_query_end, tvb, 0, 4, ENC_TIME_SECS_NTP|ENC_BIG_ENDIAN);
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_bulk_lease_base_time(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_bulk_lease_base_time(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        if (tvb_reported_length(tvb) != 4) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must be 4");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must be 4");
                return 1;
        }
-       proto_tree_add_item(tree, hf_bootp_option_bulk_lease_base_time, tvb, 0, 4, ENC_TIME_SECS_NTP|ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_bulk_lease_base_time, tvb, 0, 4, ENC_TIME_SECS_NTP|ENC_BIG_ENDIAN);
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_bulk_lease_status_code(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_bulk_lease_status_code(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        if (tvb_reported_length(tvb) < 1) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must >= 1");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must >= 1");
                return 1;
        }
-       proto_tree_add_item(tree, hf_bootp_option_bulk_lease_status_code, tvb, 0, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_bulk_lease_status_code, tvb, 0, 1, ENC_BIG_ENDIAN);
        if ( tvb_reported_length_remaining(tvb, 1) > 0) {
-               proto_tree_add_item(tree, hf_bootp_option_bulk_lease_status_message, tvb, 1, tvb_reported_length_remaining(tvb, 1), ENC_UTF_8|ENC_NA);
+               proto_tree_add_item(tree, hf_dhcp_option_bulk_lease_status_message, tvb, 1, tvb_reported_length_remaining(tvb, 1), ENC_UTF_8|ENC_NA);
                }
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_pcp_server(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_pcp_server(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        proto_tree *tree_pcp;
        int offset = 0;
@@ -3109,19 +3109,19 @@ dissect_bootpopt_pcp_server(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
        proto_item *ti_pcp;
 
        if (tvb_reported_length(tvb) < 5) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must >= 5");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must >= 5");
                return 1;
        }
        while (tvb_reported_length_remaining(tvb, offset) >= 5) {
                ip_list_length = 0;
                list_length = tvb_get_guint8(tvb, offset);
-               tree_pcp = proto_tree_add_subtree(tree, tvb, offset, list_length, ett_bootp_option158_pcp_list,
+               tree_pcp = proto_tree_add_subtree(tree, tvb, offset, list_length, ett_dhcp_option158_pcp_list,
                                                &ti_pcp, "PCP server list");
-               proto_tree_add_item(tree_pcp, hf_bootp_option_pcp_list_length, tvb, offset, 1, ENC_NA);
+               proto_tree_add_item(tree_pcp, hf_dhcp_option_pcp_list_length, tvb, offset, 1, ENC_NA);
                offset += 1;
                ip_list_length += 1;
                while (((list_length - 1)%4 == 0) && (ip_list_length < list_length) && tvb_reported_length_remaining(tvb,offset) >= 4) {
-                       proto_tree_add_item(tree_pcp, hf_bootp_option_pcp_server, tvb, offset, 4, ENC_NA);
+                       proto_tree_add_item(tree_pcp, hf_dhcp_option_pcp_server, tvb, offset, 4, ENC_NA);
                        offset += 4;
                        ip_list_length += 4;
                }
@@ -3131,43 +3131,43 @@ dissect_bootpopt_pcp_server(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
 }
 
 static int
-dissect_bootpopt_portparams(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_portparams(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
 {
        if (tvb_reported_length(tvb) != 4) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must be 4");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must be 4");
                return 1;
        }
-       proto_tree_add_item(tree, hf_bootp_option_portparams_offset, tvb, 0, 1, ENC_NA);
-       proto_tree_add_item(tree, hf_bootp_option_portparams_psid_length, tvb, 1, 1, ENC_NA);
-       proto_tree_add_item(tree, hf_bootp_option_portparams_psid, tvb, 2, 2, ENC_NA);
+       proto_tree_add_item(tree, hf_dhcp_option_portparams_offset, tvb, 0, 1, ENC_NA);
+       proto_tree_add_item(tree, hf_dhcp_option_portparams_psid_length, tvb, 1, 1, ENC_NA);
+       proto_tree_add_item(tree, hf_dhcp_option_portparams_psid, tvb, 2, 2, ENC_NA);
 
        return tvb_captured_length(tvb);
 }
 
 static int
-dissect_bootpopt_6RD_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_6RD_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
        if (tvb_reported_length(tvb) < 22) {
-               expert_add_info(pinfo, tree, &ei_bootp_option_6RD_malformed);
+               expert_add_info(pinfo, tree, &ei_dhcp_option_6RD_malformed);
                return 1;
        }
 
-       proto_tree_add_item(tree, hf_bootp_option_6RD_ipv4_mask_len, tvb, offset, 1, ENC_BIG_ENDIAN);
-       proto_tree_add_item(tree, hf_bootp_option_6RD_prefix_len, tvb, offset+1, 1, ENC_BIG_ENDIAN);
-       proto_tree_add_item(tree, hf_bootp_option_6RD_prefix, tvb, offset+2, 16, ENC_NA);
-       proto_tree_add_item(tree, hf_bootp_option_6RD_border_relay_ip, tvb, offset+18, 4, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_6RD_ipv4_mask_len, tvb, offset, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_6RD_prefix_len, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_6RD_prefix, tvb, offset+2, 16, ENC_NA);
+       proto_tree_add_item(tree, hf_dhcp_option_6RD_border_relay_ip, tvb, offset+18, 4, ENC_BIG_ENDIAN);
 
        /* More Border Relay IPv4 addresses included */
        if (tvb_reported_length(tvb) > 22) {
                offset += 22;
                while (tvb_reported_length_remaining(tvb, offset) >= 4) {
-                       proto_tree_add_item(tree, hf_bootp_option_6RD_border_relay_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(tree, hf_dhcp_option_6RD_border_relay_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
                        offset += 4;
                }
                if (tvb_reported_length_remaining(tvb, offset) > 0) {
-                       expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Option length isn't a multiple of 4");
+                       expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Option length isn't a multiple of 4");
                }
        }
 
@@ -3175,7 +3175,7 @@ dissect_bootpopt_6RD_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
 }
 
 static int
-dissect_bootpopt_avaya_ip_telephone(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_avaya_ip_telephone(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        proto_tree *o242avaya_v_tree;
@@ -3186,16 +3186,16 @@ dissect_bootpopt_avaya_ip_telephone(tvbuff_t *tvb, packet_info *pinfo, proto_tre
 
        /* minimum length is 5 bytes */
        if (tvb_reported_length(tvb) < 5) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "Avaya IP Telephone option length isn't >= 5");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "Avaya IP Telephone option length isn't >= 5");
                return 1;
        }
-       avaya_ti = proto_tree_add_item_ret_string(tree, hf_bootp_option242_avaya, tvb, offset, tvb_reported_length(tvb), ENC_ASCII|ENC_NA, wmem_packet_scope(), &avaya_option);
-       o242avaya_v_tree = proto_item_add_subtree(avaya_ti, ett_bootp_option242_suboption);
+       avaya_ti = proto_tree_add_item_ret_string(tree, hf_dhcp_option242_avaya, tvb, offset, tvb_reported_length(tvb), ENC_ASCII|ENC_NA, wmem_packet_scope(), &avaya_option);
+       o242avaya_v_tree = proto_item_add_subtree(avaya_ti, ett_dhcp_option242_suboption);
        avaya_param_buf = wmem_strbuf_new(wmem_packet_scope(), "");
        for ( field = strtok((char*)avaya_option, ","); field; field = strtok(NULL, ",") ) {
                if (!strchr(field, '=')) {
                        if (wmem_strbuf_get_len(avaya_param_buf) == 0) {
-                               expert_add_info_format(pinfo, avaya_ti, &hf_bootp_subopt_unknown_type, "ERROR, Unknown parameter %s", field);
+                               expert_add_info_format(pinfo, avaya_ti, &hf_dhcp_subopt_unknown_type, "ERROR, Unknown parameter %s", field);
                                offset += (int)strlen(field);
                                break;
                        }
@@ -3238,7 +3238,7 @@ static const value_string option82_suboption_vals[] = {
 };
 
 static int
-bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v_tree, tvbuff_t *tvb, int optoff,
+dhcp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v_tree, tvbuff_t *tvb, int optoff,
                             int optend)
 {
        int         suboptoff = optoff;
@@ -3250,15 +3250,15 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
        guint8      tag, tag_len;
 
        struct basic_types_hfs default_hfs = {
-               &hf_bootp_option82_value,
-               &hf_bootp_option82_value_ip_address,
-               &hf_bootp_option82_value_ip_address,
-               &hf_bootp_option82_value_stringz,
+               &hf_dhcp_option82_value,
+               &hf_dhcp_option82_value_ip_address,
+               &hf_dhcp_option82_value_ip_address,
+               &hf_dhcp_option82_value_stringz,
                NULL,
-               &hf_bootp_option82_value_8,
+               &hf_dhcp_option82_value_8,
                NULL,
                NULL,
-               &hf_bootp_option82_value_32,
+               &hf_dhcp_option82_value_32,
                NULL,
                NULL
        };
@@ -3268,44 +3268,44 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
                struct opt_info info;
        };
        static struct opt82_info o82_opt[]= {
-               {0, {"nop", bytes, &hf_bootp_option82_padding}},        /* dummy */
-               {1, {"Agent Circuit ID", bytes, &hf_bootp_option82_agent_circuit_id}}, /* [RFC3046] */
-               {2, {"Agent Remote ID", bytes, &hf_bootp_option82_agent_remote_id}}, /* [RFC3046] */
-               {3, {"Reserved", bytes, &hf_bootp_option82_reserved}},
-               {4, {"DOCSIS Device Class", val_u_long, &hf_bootp_option82_docsis_device_class}}, /* [RFC3256] */
-               {5, {"Link selection", ipv4, &hf_bootp_option82_link_selection}}, /* [RFC3527] */
-               {6, {"Subscriber ID", string, &hf_bootp_option82_subscriber_id}},  /* [RFC3993] */ /***** CHECK STRING TYPE */
-               {7, {"RADIUS Attributes", bytes, &hf_bootp_option82_radius_attributes}}, /* [RFC4014] */
-               {8, {"Authentication", bytes, &hf_bootp_option82_authentication}}, /* [RFC4030] */
-               {9, {"Vendor-Specific Information", special, &hf_bootp_option82_vi}}, /* [RFC 4243] */
-               {10, {"Flags", val_u_byte, &hf_bootp_option82_flags}}, /* [RFC5010] */
-               {11, {"Server ID Override", ipv4, &hf_bootp_option82_server_id_override}}, /* [RFC 5107] */
-               {12, {"Relay Agent Identifier", bytes, &hf_bootp_option82_relay_agent_id}}, /* [RFC 6925] */
-               {150, {"Link selection (Cisco proprietary)", ipv4, &hf_bootp_option82_link_selection_cisco}}, /* [RFC3527] */
-               {151, {"VRF name/VPN ID", special, &hf_bootp_option82_vrf_name_vpn_id}}, /* [RFC2685] */
-               {152, {"Server ID Override (Cisco proprietary)", ipv4, &hf_bootp_option82_server_id_override_cisco}} /* [RFC 5107] */
+               {0, {"nop", bytes, &hf_dhcp_option82_padding}}, /* dummy */
+               {1, {"Agent Circuit ID", bytes, &hf_dhcp_option82_agent_circuit_id}}, /* [RFC3046] */
+               {2, {"Agent Remote ID", bytes, &hf_dhcp_option82_agent_remote_id}}, /* [RFC3046] */
+               {3, {"Reserved", bytes, &hf_dhcp_option82_reserved}},
+               {4, {"DOCSIS Device Class", val_u_long, &hf_dhcp_option82_docsis_device_class}}, /* [RFC3256] */
+               {5, {"Link selection", ipv4, &hf_dhcp_option82_link_selection}}, /* [RFC3527] */
+               {6, {"Subscriber ID", string, &hf_dhcp_option82_subscriber_id}},  /* [RFC3993] */ /***** CHECK STRING TYPE */
+               {7, {"RADIUS Attributes", bytes, &hf_dhcp_option82_radius_attributes}}, /* [RFC4014] */
+               {8, {"Authentication", bytes, &hf_dhcp_option82_authentication}}, /* [RFC4030] */
+               {9, {"Vendor-Specific Information", special, &hf_dhcp_option82_vi}}, /* [RFC 4243] */
+               {10, {"Flags", val_u_byte, &hf_dhcp_option82_flags}}, /* [RFC5010] */
+               {11, {"Server ID Override", ipv4, &hf_dhcp_option82_server_id_override}}, /* [RFC 5107] */
+               {12, {"Relay Agent Identifier", bytes, &hf_dhcp_option82_relay_agent_id}}, /* [RFC 6925] */
+               {150, {"Link selection (Cisco proprietary)", ipv4, &hf_dhcp_option82_link_selection_cisco}}, /* [RFC3527] */
+               {151, {"VRF name/VPN ID", special, &hf_dhcp_option82_vrf_name_vpn_id}}, /* [RFC2685] */
+               {152, {"Server ID Override (Cisco proprietary)", ipv4, &hf_dhcp_option82_server_id_override_cisco}} /* [RFC 5107] */
        };
 
        subopt = tvb_get_guint8(tvb, optoff);
        suboptoff++;
 
        if (suboptoff >= optend) {
-               expert_add_info_format(pinfo, v_ti, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, v_ti, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return (optend);
        }
 
        subopt_len = tvb_get_guint8(tvb, suboptoff);
-       vti = proto_tree_add_uint_format_value(v_tree, hf_bootp_option82_suboption,
+       vti = proto_tree_add_uint_format_value(v_tree, hf_dhcp_option82_suboption,
                tvb, optoff, subopt_len+2, subopt, "(%d) %s", subopt, val_to_str_const(subopt, option82_suboption_vals, "Unknown"));
 
-       o82_v_tree = proto_item_add_subtree(vti, ett_bootp_option82_suboption);
-       proto_tree_add_item(o82_v_tree, hf_bootp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+       o82_v_tree = proto_item_add_subtree(vti, ett_dhcp_option82_suboption);
+       proto_tree_add_item(o82_v_tree, hf_dhcp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
        suboptoff++;
 
        subopt_end = suboptoff+subopt_len;
        if (subopt_end > optend) {
-               expert_add_info_format(pinfo, vti, &ei_bootp_missing_subopt_value,
+               expert_add_info_format(pinfo, vti, &ei_dhcp_missing_subopt_value,
                                                "Suboption %d: no room left in option for suboption value", subopt);
                return (optend);
        }
@@ -3316,7 +3316,7 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
                }
        }
 
-       ti = proto_tree_add_item(o82_v_tree, hf_bootp_option82_value, tvb, suboptoff, subopt_len, ENC_NA);
+       ti = proto_tree_add_item(o82_v_tree, hf_dhcp_option82_value, tvb, suboptoff, subopt_len, ENC_NA);
 
        if ( (idx >= 1 ) && (idx < array_length(o82_opt)) ) {
                PROTO_ITEM_SET_HIDDEN(ti);
@@ -3326,21 +3326,21 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
                        case 9:
                                while (suboptoff < subopt_end) {
                                        enterprise = tvb_get_ntohl(tvb, suboptoff);
-                                       vti = proto_tree_add_item(o82_v_tree, hf_bootp_option82_vi_enterprise, tvb, suboptoff, 4, ENC_BIG_ENDIAN);
+                                       vti = proto_tree_add_item(o82_v_tree, hf_dhcp_option82_vi_enterprise, tvb, suboptoff, 4, ENC_BIG_ENDIAN);
                                        suboptoff += 4;
 
-                                       o82_sub_tree = proto_item_add_subtree(vti, ett_bootp_option82_suboption9);
+                                       o82_sub_tree = proto_item_add_subtree(vti, ett_dhcp_option82_suboption9);
                                        datalen = tvb_get_guint8(tvb, suboptoff);
-                                       proto_tree_add_item(o82_sub_tree, hf_bootp_option82_vi_data_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+                                       proto_tree_add_item(o82_sub_tree, hf_dhcp_option82_vi_data_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
                                        suboptoff++;
 
                                        switch (enterprise) {
                                        case 4491: /* CableLab */
                                                vs_opt = tvb_get_guint8(tvb, suboptoff);
-                                               proto_tree_add_item(o82_sub_tree, hf_bootp_option82_vi_cl_option, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+                                               proto_tree_add_item(o82_sub_tree, hf_dhcp_option82_vi_cl_option, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
                                                suboptoff++;
                                                vs_len = tvb_get_guint8(tvb, suboptoff);
-                                               proto_tree_add_item(o82_sub_tree, hf_bootp_option82_vi_cl_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+                                               proto_tree_add_item(o82_sub_tree, hf_dhcp_option82_vi_cl_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
                                                suboptoff++;
 
                                                switch (vs_opt) {
@@ -3348,17 +3348,17 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
                                                case 1:
                                                        if (vs_len == 4) {
                                                                tag = tvb_get_guint8(tvb, suboptoff);
-                                                               proto_tree_add_item(o82_sub_tree, hf_bootp_option82_vi_cl_tag, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+                                                               proto_tree_add_item(o82_sub_tree, hf_dhcp_option82_vi_cl_tag, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
                                                                tag_len = tvb_get_guint8(tvb, suboptoff+1);
-                                                               proto_tree_add_item(o82_sub_tree, hf_bootp_option82_vi_cl_tag_length, tvb, suboptoff+1, 1, ENC_BIG_ENDIAN);
+                                                               proto_tree_add_item(o82_sub_tree, hf_dhcp_option82_vi_cl_tag_length, tvb, suboptoff+1, 1, ENC_BIG_ENDIAN);
                                                                suboptoff+=2;
                                                                if (tag == 1) {
-                                                                       proto_tree_add_uint_format_value(o82_sub_tree, hf_bootp_option82_vi_cl_docsis_version,
+                                                                       proto_tree_add_uint_format_value(o82_sub_tree, hf_dhcp_option82_vi_cl_docsis_version,
                                                                                          tvb, suboptoff, 2, 0, "%d.%d",
                                                                                          tvb_get_guint8(tvb, suboptoff), tvb_get_guint8(tvb, suboptoff+1));
                                                                        suboptoff+=2;
                                                                } else {
-                                                                       expert_add_info_format(pinfo, vti, &ei_bootp_option82_vi_cl_tag_unknown, "Unknown tag %d (%d bytes)", tag, tag_len);
+                                                                       expert_add_info_format(pinfo, vti, &ei_dhcp_option82_vi_cl_tag_unknown, "Unknown tag %d (%d bytes)", tag, tag_len);
                                                                        suboptoff += tag_len;
                                                                }
                                                        } else {
@@ -3367,13 +3367,13 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
                                                        break;
 
                                                default:
-                                                       expert_add_info_format(pinfo, vti, &ei_bootp_suboption_invalid, "Invalid suboption %d (%d bytes)", vs_opt, vs_len);
+                                                       expert_add_info_format(pinfo, vti, &ei_dhcp_suboption_invalid, "Invalid suboption %d (%d bytes)", vs_opt, vs_len);
                                                        suboptoff += vs_len;
                                                        break;
                                                }
                                                break;
                                        default:
-                                               proto_tree_add_item(o82_v_tree, hf_bootp_option82_value, tvb, suboptoff, datalen, ENC_NA);
+                                               proto_tree_add_item(o82_v_tree, hf_dhcp_option82_value, tvb, suboptoff, datalen, ENC_NA);
                                                suboptoff += datalen;
                                                break;
                                        }
@@ -3381,27 +3381,27 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
                                break;
                        case 151:
                                if (subopt_len == 1) {
-                                       proto_tree_add_item(o82_v_tree, hf_bootp_option82_vrf_name_global, tvb, suboptoff, 1, ENC_NA);
+                                       proto_tree_add_item(o82_v_tree, hf_dhcp_option82_vrf_name_global, tvb, suboptoff, 1, ENC_NA);
                                }
                                else if (subopt_len != 7) {
-                                       proto_tree_add_item(o82_v_tree, hf_bootp_option82_vrf_name, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
+                                       proto_tree_add_item(o82_v_tree, hf_dhcp_option82_vrf_name, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
                                } else {
-                                       proto_tree_add_item(o82_v_tree, hf_bootp_option82_vrf_name_vpn_id_oui, tvb, suboptoff, 3, ENC_BIG_ENDIAN);
-                                       proto_tree_add_item(o82_v_tree, hf_bootp_option82_vrf_name_vpn_id_index, tvb, suboptoff+3, 4, ENC_BIG_ENDIAN);
+                                       proto_tree_add_item(o82_v_tree, hf_dhcp_option82_vrf_name_vpn_id_oui, tvb, suboptoff, 3, ENC_BIG_ENDIAN);
+                                       proto_tree_add_item(o82_v_tree, hf_dhcp_option82_vrf_name_vpn_id_index, tvb, suboptoff+3, 4, ENC_BIG_ENDIAN);
                                }
                                break;
                        default:
                                if (o82_opt[idx].info.phf != NULL)
                                        proto_tree_add_item(o82_v_tree, *o82_opt[idx].info.phf, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
                                else
-                                       proto_tree_add_item(o82_v_tree, hf_bootp_option82_value, tvb, suboptoff, subopt_len, ENC_NA);
+                                       proto_tree_add_item(o82_v_tree, hf_dhcp_option82_value, tvb, suboptoff, subopt_len, ENC_NA);
                                break;
                        }
                }
                else {
-                       if (bootp_handle_basic_types(pinfo, o82_v_tree, vti, tvb, o82_opt[idx].info.ftype,
+                       if (dhcp_handle_basic_types(pinfo, o82_v_tree, vti, tvb, o82_opt[idx].info.ftype,
                                                     suboptoff, subopt_len, o82_opt[idx].info.phf, &default_hfs) == 0) {
-                               expert_add_info_format(pinfo, vti, &hf_bootp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
+                               expert_add_info_format(pinfo, vti, &hf_dhcp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
                        }
                }
        }
@@ -3411,12 +3411,12 @@ bootp_dhcp_decode_agent_info(packet_info *pinfo, proto_item *v_ti, proto_tree *v
 }
 
 static int
-dissect_bootpopt_relay_agent_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_relay_agent_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
        while (tvb_reported_length_remaining(tvb, offset) > 0) {
-               offset = bootp_dhcp_decode_agent_info(pinfo, tree, tree, tvb, offset, tvb_reported_length(tvb));
+               offset = dhcp_dhcp_decode_agent_info(pinfo, tree, tree, tvb, offset, tvb_reported_length(tvb));
        }
 
        return tvb_captured_length(tvb);
@@ -3453,11 +3453,11 @@ dissect_vendor_pxeclient_suboption(packet_info *pinfo, proto_item *v_ti, proto_t
 
        struct basic_types_hfs default_hfs = {
                NULL,
-               &hf_bootp_option43_value_ip_address,
-               &hf_bootp_option43_value_ip_address,
+               &hf_dhcp_option43_value_ip_address,
+               &hf_dhcp_option43_value_ip_address,
                NULL,
                NULL,
-               &hf_bootp_option43_value_8,
+               &hf_dhcp_option43_value_8,
                NULL,
                NULL,
                NULL,
@@ -3466,76 +3466,76 @@ dissect_vendor_pxeclient_suboption(packet_info *pinfo, proto_item *v_ti, proto_t
        };
 
        static struct opt_info o43pxeclient_opt[]= {
-               /* 0 */ {"nop", special, &hf_bootp_option43_pxeclient_padding}, /* dummy */
-               /* 1 */ {"PXE mtftp IP", ipv4_list, &hf_bootp_option43_pxeclient_mtftp_ip},
-               /* 2 */ {"PXE mtftp client port", val_u_le_short, &hf_bootp_option43_pxeclient_mtftp_client_port},
-               /* 3 */ {"PXE mtftp server port",val_u_le_short, &hf_bootp_option43_pxeclient_mtftp_server_port},
-               /* 4 */ {"PXE mtftp timeout", val_u_byte, &hf_bootp_option43_pxeclient_mtftp_timeout},
-               /* 5 */ {"PXE mtftp delay", val_u_byte, &hf_bootp_option43_pxeclient_mtftp_delay},
-               /* 6 */ {"PXE discovery control", val_u_byte, &hf_bootp_option43_pxeclient_discovery_control},
+               /* 0 */ {"nop", special, &hf_dhcp_option43_pxeclient_padding},  /* dummy */
+               /* 1 */ {"PXE mtftp IP", ipv4_list, &hf_dhcp_option43_pxeclient_mtftp_ip},
+               /* 2 */ {"PXE mtftp client port", val_u_le_short, &hf_dhcp_option43_pxeclient_mtftp_client_port},
+               /* 3 */ {"PXE mtftp server port",val_u_le_short, &hf_dhcp_option43_pxeclient_mtftp_server_port},
+               /* 4 */ {"PXE mtftp timeout", val_u_byte, &hf_dhcp_option43_pxeclient_mtftp_timeout},
+               /* 5 */ {"PXE mtftp delay", val_u_byte, &hf_dhcp_option43_pxeclient_mtftp_delay},
+               /* 6 */ {"PXE discovery control", val_u_byte, &hf_dhcp_option43_pxeclient_discovery_control},
                        /*
                         * Correct: b0 (lsb): disable broadcast discovery
                         *      b1: disable multicast discovery
                         *      b2: only use/accept servers in boot servers
                         *      b3: download bootfile without prompt/menu/disc
                         */
-               /* 7 */ {"PXE multicast address", ipv4_list, &hf_bootp_option43_pxeclient_multicast_address},
-               /* 8 */ {"PXE boot servers", special, &hf_bootp_option43_pxeclient_boot_servers},
-               /* 9 */ {"PXE boot menu", special, &hf_bootp_option43_pxeclient_boot_menu},
-               /* 10 */ {"PXE menu prompt", special, &hf_bootp_option43_pxeclient_menu_prompt},
-               /* 11 */ {"PXE multicast address alloc", special, &hf_bootp_option43_pxeclient_multicast_address_alloc},
-               /* 12 */ {"PXE credential types", special, &hf_bootp_option43_pxeclient_credential_types}
-               /* 71 {"PXE boot item", bytes, &hf_bootp_option43_pxeclient_boot_item}, */
-               /* 255 {"PXE end options", special, &hf_bootp_option43_pxeclient_end} */
+               /* 7 */ {"PXE multicast address", ipv4_list, &hf_dhcp_option43_pxeclient_multicast_address},
+               /* 8 */ {"PXE boot servers", special, &hf_dhcp_option43_pxeclient_boot_servers},
+               /* 9 */ {"PXE boot menu", special, &hf_dhcp_option43_pxeclient_boot_menu},
+               /* 10 */ {"PXE menu prompt", special, &hf_dhcp_option43_pxeclient_menu_prompt},
+               /* 11 */ {"PXE multicast address alloc", special, &hf_dhcp_option43_pxeclient_multicast_address_alloc},
+               /* 12 */ {"PXE credential types", special, &hf_dhcp_option43_pxeclient_credential_types}
+               /* 71 {"PXE boot item", bytes, &hf_dhcp_option43_pxeclient_boot_item}, */
+               /* 255 {"PXE end options", special, &hf_dhcp_option43_pxeclient_end} */
        };
 
        subopt = tvb_get_guint8(tvb, optoff);
        suboptoff++;
 
        if (subopt == 0) {
-               proto_tree_add_item(v_tree, hf_bootp_option43_pxeclient_padding, tvb, optoff, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(v_tree, hf_dhcp_option43_pxeclient_padding, tvb, optoff, 1, ENC_BIG_ENDIAN);
                return (suboptoff);
        } else if (subopt == 255) {     /* End Option */
-               proto_tree_add_item(v_tree, hf_bootp_option43_pxeclient_end, tvb, optoff, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(v_tree, hf_dhcp_option43_pxeclient_end, tvb, optoff, 1, ENC_BIG_ENDIAN);
                /* Make sure we skip any junk left this option */
                return (optend);
        }
 
        if (suboptoff >= optend) {
-               expert_add_info_format(pinfo, v_ti, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, v_ti, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return (optend);
        }
 
        subopt_len = tvb_get_guint8(tvb, suboptoff);
-       vti = proto_tree_add_uint_format_value(v_tree, hf_bootp_option43_pxeclient_suboption,
+       vti = proto_tree_add_uint_format_value(v_tree, hf_dhcp_option43_pxeclient_suboption,
                                tvb, optoff, subopt_len+2, subopt, "(%d) %s",
                                subopt, val_to_str_const(subopt, option43_pxeclient_suboption_vals, "Unknown"));
 
-       o43pxeclient_v_tree = proto_item_add_subtree(vti, ett_bootp_option43_suboption);
-       proto_tree_add_item(o43pxeclient_v_tree, hf_bootp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+       o43pxeclient_v_tree = proto_item_add_subtree(vti, ett_dhcp_option43_suboption);
+       proto_tree_add_item(o43pxeclient_v_tree, hf_dhcp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
        suboptoff++;
 
-       ti = proto_tree_add_item(o43pxeclient_v_tree, hf_bootp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
+       ti = proto_tree_add_item(o43pxeclient_v_tree, hf_dhcp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
        PROTO_ITEM_SET_HIDDEN(ti);
 
        if ( subopt == 71 ) {   /* 71 {"PXE boot item", special} */
                /* case special */
                /* I may need to decode that properly one day */
-               proto_tree_add_item(o43pxeclient_v_tree, hf_bootp_option43_pxeclient_boot_item, tvb, suboptoff, subopt_len, ENC_NA);
+               proto_tree_add_item(o43pxeclient_v_tree, hf_dhcp_option43_pxeclient_boot_item, tvb, suboptoff, subopt_len, ENC_NA);
        } else if ((subopt < 1) || (subopt >= array_length(o43pxeclient_opt))) {
-               expert_add_info_format(pinfo, vti, &ei_bootp_suboption_invalid, "Unknown suboption %d (%d bytes)", subopt, subopt_len);
+               expert_add_info_format(pinfo, vti, &ei_dhcp_suboption_invalid, "Unknown suboption %d (%d bytes)", subopt, subopt_len);
        } else if (o43pxeclient_opt[subopt].ftype == special) {
                /* I may need to decode that properly one day */
                if (o43pxeclient_opt[subopt].phf != NULL)
                        proto_tree_add_item(o43pxeclient_v_tree, *o43pxeclient_opt[subopt].phf, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
                else
-                       proto_tree_add_item(o43pxeclient_v_tree, hf_bootp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
+                       proto_tree_add_item(o43pxeclient_v_tree, hf_dhcp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
        } else {
-               if (bootp_handle_basic_types(pinfo, o43pxeclient_v_tree, vti, tvb, o43pxeclient_opt[subopt].ftype,
+               if (dhcp_handle_basic_types(pinfo, o43pxeclient_v_tree, vti, tvb, o43pxeclient_opt[subopt].ftype,
                                                        suboptoff, subopt_len, o43pxeclient_opt[subopt].phf, &default_hfs) == 0)
                {
-                       expert_add_info_format(pinfo, vti, &hf_bootp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
+                       expert_add_info_format(pinfo, vti, &hf_dhcp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
                }
        }
 
@@ -3547,7 +3547,7 @@ static gboolean
 dissect_pxeclient_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
 {
        int offset = 0;
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        proto_tree* vendor_tree;
 
        /* PXE protocol 2.1 as described in the Intel specs */
@@ -3556,7 +3556,7 @@ dissect_pxeclient_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo, proto_tre
                return FALSE;
 
        proto_item_append_text(tree, " (PXEClient)");
-       vendor_tree = proto_item_add_subtree(tree, ett_bootp_option);
+       vendor_tree = proto_item_add_subtree(tree, ett_dhcp_option);
 
        while (tvb_reported_length_remaining(tvb, offset) > 0) {
                offset = dissect_vendor_pxeclient_suboption(pinfo, tree, vendor_tree,
@@ -3577,31 +3577,31 @@ dissect_vendor_avaya_param(proto_tree *tree, packet_info *pinfo, proto_item *vti
        len = (int)wmem_strbuf_get_len(avaya_param_buf);
 
        if((strncmp(field, "TLSSRVR=", 8) == 0) && ( len > 8 )) {
-               proto_tree_add_string(tree, hf_bootp_option242_avaya_tlssrvr, tvb, optoff, len, field + 8);
+               proto_tree_add_string(tree, hf_dhcp_option242_avaya_tlssrvr, tvb, optoff, len, field + 8);
        }
        else if((strncmp(field, "HTTPSRVR=", 9) == 0) && ( len > 9)) {
-               proto_tree_add_string(tree, hf_bootp_option242_avaya_httpsrvr, tvb, optoff, len, field + 9);
+               proto_tree_add_string(tree, hf_dhcp_option242_avaya_httpsrvr, tvb, optoff, len, field + 9);
        }
        else if((strncmp(field, "HTTPDIR=", 8) == 0) && ( len > 8)) {
-               proto_tree_add_string(tree, hf_bootp_option242_avaya_httpdir, tvb, optoff, len, field + 8);
+               proto_tree_add_string(tree, hf_dhcp_option242_avaya_httpdir, tvb, optoff, len, field + 8);
        }
        else if((strncmp(field, "STATIC=", 7) == 0) && ( len > 7)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_static, tvb, optoff, len, field + 7, "%s (%s)", field + 7, str_to_str(field + 7, option242_avaya_static_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_static, tvb, optoff, len, field + 7, "%s (%s)", field + 7, str_to_str(field + 7, option242_avaya_static_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "MCIPADD=", 8) == 0) && ( len > 8)) {
-               proto_tree_add_string(tree, hf_bootp_option242_avaya_mcipadd, tvb, optoff, len, field + 8);
+               proto_tree_add_string(tree, hf_dhcp_option242_avaya_mcipadd, tvb, optoff, len, field + 8);
        }
        else if((strncmp(field, "DOT1X=", 6) == 0) && ( len > 6)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_dot1x, tvb, optoff, len, field + 6, "%s (%s)", field + 6, str_to_str(field + 6, option242_avaya_dot1x_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_dot1x, tvb, optoff, len, field + 6, "%s (%s)", field + 6, str_to_str(field + 6, option242_avaya_dot1x_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "ICMPDU=", 7) == 0) && ( len > 7)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_icmpdu, tvb, optoff, len, field + 7, "%s (%s)", field + 7, str_to_str(field + 7, option242_avaya_icmpdu_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_icmpdu, tvb, optoff, len, field + 7, "%s (%s)", field + 7, str_to_str(field + 7, option242_avaya_icmpdu_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "ICMPRED=", 8) == 0) && ( len > 8)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_icmpred, tvb, optoff, len, field + 8, "%s (%s)", field + 8, str_to_str(field + 8, option242_avaya_icmpred_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_icmpred, tvb, optoff, len, field + 8, "%s (%s)", field + 8, str_to_str(field + 8, option242_avaya_icmpred_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "L2Q=", 4) == 0) && ( len > 4)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_l2q, tvb, optoff, len, field + 4, "%s (%s)", field + 4, str_to_str(field + 4, option242_avaya_l2q_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_l2q, tvb, optoff, len, field + 4, "%s (%s)", field + 4, str_to_str(field + 4, option242_avaya_l2q_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "L2QVLAN=", 8) == 0) && ( len > 8)) {
                gint32 val = -1;
@@ -3609,30 +3609,30 @@ dissect_vendor_avaya_param(proto_tree *tree, packet_info *pinfo, proto_item *vti
                proto_item* pi;
 
                val_valid = ws_strtoi32(field + 8, NULL, &val);
-               pi = proto_tree_add_int(tree, hf_bootp_option242_avaya_l2qvlan, tvb, optoff, len, val);
+               pi = proto_tree_add_int(tree, hf_dhcp_option242_avaya_l2qvlan, tvb, optoff, len, val);
                if (val_valid)
-                       expert_add_info(pinfo, pi, &ei_bootp_option242_avaya_l2qvlan_invalid);
+                       expert_add_info(pinfo, pi, &ei_dhcp_option242_avaya_l2qvlan_invalid);
        }
        else if((strncmp(field, "LOGLOCAL=", 9) == 0) && ( len > 9)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_loglocal, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_loglocal_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_loglocal, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_loglocal_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "PHY1STAT=", 9) == 0) && ( len > 9)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_phy1stat, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_phystat_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_phy1stat, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_phystat_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "PHY2STAT=", 9) == 0) && ( len > 9)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_phy2stat, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_phystat_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_phy2stat, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_phystat_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "PROCPSWD=", 9) == 0) && ( len > 9)) {
-               proto_tree_add_string(tree, hf_bootp_option242_avaya_procpswd, tvb, optoff, len, field + 9);
+               proto_tree_add_string(tree, hf_dhcp_option242_avaya_procpswd, tvb, optoff, len, field + 9);
        }
        else if((strncmp(field, "PROCSTAT=", 9) == 0) && ( len > 9)) {
-               proto_tree_add_string_format_value(tree, hf_bootp_option242_avaya_procstat, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_procstat_vals, "Unknown (%s)"));
+               proto_tree_add_string_format_value(tree, hf_dhcp_option242_avaya_procstat, tvb, optoff, len, field + 9, "%s (%s)", field + 9, str_to_str(field + 9, option242_avaya_procstat_vals, "Unknown (%s)"));
        }
        else if((strncmp(field, "SNMPADD=", 8) == 0) && ( len > 8)) {
-               proto_tree_add_string(tree, hf_bootp_option242_avaya_snmpadd, tvb, optoff, len, field + 8);
+               proto_tree_add_string(tree, hf_dhcp_option242_avaya_snmpadd, tvb, optoff, len, field + 8);
        }
        else if((strncmp(field, "SNMPSTRING=", 11) == 0) && ( len > 11)) {
-               proto_tree_add_string(tree, hf_bootp_option242_avaya_snmpstring, tvb, optoff, len, field + 11);
+               proto_tree_add_string(tree, hf_dhcp_option242_avaya_snmpstring, tvb, optoff, len, field + 11);
        }
        else if((strncmp(field, "VLANTEST=", 9) == 0) && ( len > 9)) {
                gint32 val = -1;
@@ -3640,12 +3640,12 @@ dissect_vendor_avaya_param(proto_tree *tree, packet_info *pinfo, proto_item *vti
                proto_item* pi;
 
                val_valid = ws_strtoi32(field + 9, NULL, &val);
-               pi = proto_tree_add_int(tree, hf_bootp_option242_avaya_vlantest, tvb, optoff, len, val);
+               pi = proto_tree_add_int(tree, hf_dhcp_option242_avaya_vlantest, tvb, optoff, len, val);
                if (!val_valid)
-                       expert_add_info(pinfo, pi, &ei_bootp_option242_avaya_vlantest_invalid);
+                       expert_add_info(pinfo, pi, &ei_dhcp_option242_avaya_vlantest_invalid);
        }
        else {
-               expert_add_info_format(pinfo, vti, &hf_bootp_subopt_unknown_type, "ERROR, Unknown Avaya IP Telephone parameter %s", field);
+               expert_add_info_format(pinfo, vti, &hf_dhcp_subopt_unknown_type, "ERROR, Unknown Avaya IP Telephone parameter %s", field);
        }
 }
 
@@ -3775,45 +3775,45 @@ rfc3825_fixpoint_to_decimal(struct rfc3825_location_fixpoint_t *fixpoint, struct
 }
 
 static int
-dissect_bootpopt_isns(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_isns(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        static const int *isns_functions_hf_flags[] = {
-               &hf_bootp_option_isns_functions_enabled,
-               &hf_bootp_option_isns_functions_dd_authorization,
-               &hf_bootp_option_isns_functions_sec_policy_distibution,
-               &hf_bootp_option_isns_functions_reserved,
+               &hf_dhcp_option_isns_functions_enabled,
+               &hf_dhcp_option_isns_functions_dd_authorization,
+               &hf_dhcp_option_isns_functions_sec_policy_distibution,
+               &hf_dhcp_option_isns_functions_reserved,
                NULL
        };
 
        static const int *isns_dda_hf_flags[] = {
-               &hf_bootp_option_isns_discovery_domain_access_enabled,
-               &hf_bootp_option_isns_discovery_domain_access_control_node,
-               &hf_bootp_option_isns_discovery_domain_access_iscsi_target,
-               &hf_bootp_option_isns_discovery_domain_access_iscsi_inititator,
-               &hf_bootp_option_isns_discovery_domain_access_ifcp_target_port,
-               &hf_bootp_option_isns_discovery_domain_access_ifcp_initiator_port,
-               &hf_bootp_option_isns_discovery_domain_access_reserved,
+               &hf_dhcp_option_isns_discovery_domain_access_enabled,
+               &hf_dhcp_option_isns_discovery_domain_access_control_node,
+               &hf_dhcp_option_isns_discovery_domain_access_iscsi_target,
+               &hf_dhcp_option_isns_discovery_domain_access_iscsi_inititator,
+               &hf_dhcp_option_isns_discovery_domain_access_ifcp_target_port,
+               &hf_dhcp_option_isns_discovery_domain_access_ifcp_initiator_port,
+               &hf_dhcp_option_isns_discovery_domain_access_reserved,
                NULL
        };
 
        static const int *isns_administrative_flags[] = {
-               &hf_bootp_option_isns_administrative_flags_enabled,
-               &hf_bootp_option_isns_administrative_flags_heartbeat,
-               &hf_bootp_option_isns_administrative_flags_management_scns,
-               &hf_bootp_option_isns_administrative_flags_default_dd,
-               &hf_bootp_option_isns_administrative_flags_reserved,
+               &hf_dhcp_option_isns_administrative_flags_enabled,
+               &hf_dhcp_option_isns_administrative_flags_heartbeat,
+               &hf_dhcp_option_isns_administrative_flags_management_scns,
+               &hf_dhcp_option_isns_administrative_flags_default_dd,
+               &hf_dhcp_option_isns_administrative_flags_reserved,
                NULL
        };
 
        static const int *isns_server_security_flags[] = {
-               &hf_bootp_option_isns_server_security_bitmap_enabled,
-               &hf_bootp_option_isns_server_security_bitmap_ike_ipsec_enabled,
-               &hf_bootp_option_isns_server_security_bitmap_main_mode,
-               &hf_bootp_option_isns_server_security_bitmap_aggressive_mode,
-               &hf_bootp_option_isns_server_security_bitmap_pfs,
-               &hf_bootp_option_isns_server_security_bitmap_transport_mode,
-               &hf_bootp_option_isns_server_security_bitmap_tunnel_mode,
-               &hf_bootp_option_isns_server_security_bitmap_reserved,
+               &hf_dhcp_option_isns_server_security_bitmap_enabled,
+               &hf_dhcp_option_isns_server_security_bitmap_ike_ipsec_enabled,
+               &hf_dhcp_option_isns_server_security_bitmap_main_mode,
+               &hf_dhcp_option_isns_server_security_bitmap_aggressive_mode,
+               &hf_dhcp_option_isns_server_security_bitmap_pfs,
+               &hf_dhcp_option_isns_server_security_bitmap_transport_mode,
+               &hf_dhcp_option_isns_server_security_bitmap_tunnel_mode,
+               &hf_dhcp_option_isns_server_security_bitmap_reserved,
                NULL
        };
 
@@ -3825,12 +3825,12 @@ dissect_bootpopt_isns(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
        int offset = 0, heartbeat_set = 0;
 
        if (length < 14) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must be >= 14");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must be >= 14");
                return 1;
        }
 
-       item = proto_tree_add_bitmask(tree, tvb, offset, hf_bootp_option_isns_functions,
-                                     ett_bootp_isns_functions, isns_functions_hf_flags, ENC_BIG_ENDIAN);
+       item = proto_tree_add_bitmask(tree, tvb, offset, hf_dhcp_option_isns_functions,
+                                     ett_dhcp_isns_functions, isns_functions_hf_flags, ENC_BIG_ENDIAN);
        function_flags = tvb_get_ntohs(tvb, offset);
        /* RFC 4174, section "2.1. iSNS Functions Field" specifies that if
         * the field "Function Fields Enabled" is set to 0, then "the contents
@@ -3839,52 +3839,52 @@ dissect_bootpopt_isns(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
         * the bitmasks: iSNS Functions, DD Access, Administrative Flags, iSNS
         * Server Security Bitmap */
        if (ISNS_BITFIELD_NZ_MUST_BE_IGNORED(function_flags, F_ISNS_FUNCTIONS_ENABLED))
-               expert_add_info(pinfo, item, &ei_bootp_option_isns_ignored_bitfield);
+               expert_add_info(pinfo, item, &ei_dhcp_option_isns_ignored_bitfield);
 
        offset += 2;
-       item = proto_tree_add_bitmask(tree, tvb, offset, hf_bootp_option_isns_discovery_domain_access,
-                                     ett_bootp_isns_discovery_domain_access, isns_dda_hf_flags, ENC_BIG_ENDIAN);
+       item = proto_tree_add_bitmask(tree, tvb, offset, hf_dhcp_option_isns_discovery_domain_access,
+                                     ett_dhcp_isns_discovery_domain_access, isns_dda_hf_flags, ENC_BIG_ENDIAN);
        dd_access_flags = tvb_get_ntohs(tvb, offset);
        if (ISNS_BITFIELD_NZ_MUST_BE_IGNORED(dd_access_flags, F_ISNS_DD_ACCESS_ENABLED))
-               expert_add_info(pinfo, item, &ei_bootp_option_isns_ignored_bitfield);
+               expert_add_info(pinfo, item, &ei_dhcp_option_isns_ignored_bitfield);
 
        offset += 2;
        administrative_flags = tvb_get_ntohs(tvb, offset);
        if (administrative_flags & F_ISNS_ADMIN_FLAGS_ENABLED) {
                if ((administrative_flags & F_ISNS_ADMIN_FLAGS_HEARTBEAT)) {
                        if (length < 18) {
-                               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length must be >= 18");
+                               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length must be >= 18");
                                return offset;
                        }
                        heartbeat_set = 1;
                }
        }
-       item = proto_tree_add_bitmask(tree, tvb, offset, hf_bootp_option_isns_administrative_flags,
-                                     ett_bootp_isns_administrative_flags, isns_administrative_flags, ENC_BIG_ENDIAN);
+       item = proto_tree_add_bitmask(tree, tvb, offset, hf_dhcp_option_isns_administrative_flags,
+                                     ett_dhcp_isns_administrative_flags, isns_administrative_flags, ENC_BIG_ENDIAN);
        if (ISNS_BITFIELD_NZ_MUST_BE_IGNORED(administrative_flags, F_ISNS_ADMIN_FLAGS_ENABLED))
-               expert_add_info(pinfo, item, &ei_bootp_option_isns_ignored_bitfield);
+               expert_add_info(pinfo, item, &ei_dhcp_option_isns_ignored_bitfield);
 
        offset += 2;
-       item = proto_tree_add_bitmask(tree, tvb, offset, hf_bootp_option_isns_server_security_bitmap,
-                                     ett_bootp_isns_server_security_bitmap, isns_server_security_flags, ENC_BIG_ENDIAN);
+       item = proto_tree_add_bitmask(tree, tvb, offset, hf_dhcp_option_isns_server_security_bitmap,
+                                     ett_dhcp_isns_server_security_bitmap, isns_server_security_flags, ENC_BIG_ENDIAN);
        server_security_flags = tvb_get_ntohl(tvb, offset);
        if (ISNS_BITFIELD_NZ_MUST_BE_IGNORED(server_security_flags, F_ISNS_SRV_SEC_BITMAP_ENABLED))
-               expert_add_info(pinfo, item, &ei_bootp_option_isns_ignored_bitfield);
+               expert_add_info(pinfo, item, &ei_dhcp_option_isns_ignored_bitfield);
 
        offset += 4;
        if (heartbeat_set) {
-               proto_tree_add_item(tree, hf_bootp_option_isns_heartbeat_originator_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(tree, hf_dhcp_option_isns_heartbeat_originator_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
                offset += 4;
        }
 
-       proto_tree_add_item(tree, hf_bootp_option_isns_primary_server_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+       proto_tree_add_item(tree, hf_dhcp_option_isns_primary_server_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
 
        offset += 4;
        if (tvb_reported_length_remaining(tvb, offset) > 0) {
-               server_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_bootp_isns_secondary_server_addr,
+               server_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_dhcp_isns_secondary_server_addr,
                                                &item, "Secondary iSNS Servers");
-               bootp_handle_basic_types(pinfo, server_tree, item, tvb, ipv4_list, offset, tvb_reported_length_remaining(tvb, offset),
-                                                  &hf_bootp_option_isns_secondary_server_addr_list, NULL);
+               dhcp_handle_basic_types(pinfo, server_tree, item, tvb, ipv4_list, offset, tvb_reported_length_remaining(tvb, offset),
+                                                  &hf_dhcp_option_isns_secondary_server_addr_list, NULL);
        }
 
        return tvb_captured_length(tvb);
@@ -3935,40 +3935,40 @@ dissect_vendor_cablelabs_suboption(packet_info *pinfo, proto_item *v_ti, proto_t
        proto_item *vti;
 
        struct basic_types_hfs default_hfs = {
-               &hf_bootp_option43_value,
+               &hf_dhcp_option43_value,
                NULL,
                NULL,
-               &hf_bootp_option43_value_stringz,
+               &hf_dhcp_option43_value_stringz,
                NULL,
-               &hf_bootp_option43_value_8,
+               &hf_dhcp_option43_value_8,
                NULL,
                NULL,
-               &hf_bootp_option43_value_32,
+               &hf_dhcp_option43_value_32,
                NULL,
                NULL
        };
 
        static struct opt_info o43cablelabs_opt[]= {
-               /*  0 */ {"nop", special, &hf_bootp_option43_cl_padding},       /* dummy */
-               /*  1 */ {"Suboption Request List", string, &hf_bootp_option43_cl_suboption_request_list},
-               /*  2 */ {"Device Type", string, &hf_bootp_option43_cl_device_type},
-               /*  3 */ {"eSAFE Types", string, &hf_bootp_option43_cl_esafe_type},
-               /*  4 */ {"Serial Number", string, &hf_bootp_option43_cl_serial_number},
-               /*  5 */ {"Hardware Version", string, &hf_bootp_option43_cl_hardware_version},
-               /*  6 */ {"Software Version", string, &hf_bootp_option43_cl_software_version},
-               /*  7 */ {"Boot ROM version", string, &hf_bootp_option43_cl_boot_rom_version},
-               /*  8 */ {"Organizationally Unique Identifier", special, &hf_bootp_option43_cl_oui_bytes},
-               /*  9 */ {"Model Number", string, &hf_bootp_option43_cl_model_number},
-               /* 10 */ {"Vendor Name", string, &hf_bootp_option43_cl_vendor_name10},
+               /*  0 */ {"nop", special, &hf_dhcp_option43_cl_padding},        /* dummy */
+               /*  1 */ {"Suboption Request List", string, &hf_dhcp_option43_cl_suboption_request_list},
+               /*  2 */ {"Device Type", string, &hf_dhcp_option43_cl_device_type},
+               /*  3 */ {"eSAFE Types", string, &hf_dhcp_option43_cl_esafe_type},
+               /*  4 */ {"Serial Number", string, &hf_dhcp_option43_cl_serial_number},
+               /*  5 */ {"Hardware Version", string, &hf_dhcp_option43_cl_hardware_version},
+               /*  6 */ {"Software Version", string, &hf_dhcp_option43_cl_software_version},
+               /*  7 */ {"Boot ROM version", string, &hf_dhcp_option43_cl_boot_rom_version},
+               /*  8 */ {"Organizationally Unique Identifier", special, &hf_dhcp_option43_cl_oui_bytes},
+               /*  9 */ {"Model Number", string, &hf_dhcp_option43_cl_model_number},
+               /* 10 */ {"Vendor Name", string, &hf_dhcp_option43_cl_vendor_name10},
                /* *** 11-30: CableHome *** */
-               /* 11 */ {"Address Realm", val_u_byte, &hf_bootp_option43_cl_address_realm},
-               /* 12 */ {"CM/PS System Description", string, &hf_bootp_option43_cl_cm_ps_system_desc},
-               /* 13 */ {"CM/PS Firmware Revision", string, &hf_bootp_option43_cl_cm_ps_firmware_revision},
-               /* 14 */ {"Firewall Policy File Version", string, &hf_bootp_option43_cl_firewall_policy_file_version},
-               /* 15 */ {"eSafe Config File Devices", string, &hf_bootp_option43_cl_esafe_config_file_devices},
+               /* 11 */ {"Address Realm", val_u_byte, &hf_dhcp_option43_cl_address_realm},
+               /* 12 */ {"CM/PS System Description", string, &hf_dhcp_option43_cl_cm_ps_system_desc},
+               /* 13 */ {"CM/PS Firmware Revision", string, &hf_dhcp_option43_cl_cm_ps_firmware_revision},
+               /* 14 */ {"Firewall Policy File Version", string, &hf_dhcp_option43_cl_firewall_policy_file_version},
+               /* 15 */ {"eSafe Config File Devices", string, &hf_dhcp_option43_cl_esafe_config_file_devices},
                /* 16 */ {"Unassigned (CableHome)", special, NULL},
                /* 17 */ {"Unassigned (CableHome)", special, NULL},
-               /* 18 */ {"Video Security Type", string, &hf_bootp_option43_cl_video_security_tape},
+               /* 18 */ {"Video Security Type", string, &hf_dhcp_option43_cl_video_security_tape},
                /* 19 */ {"Unassigned (CableHome)", special, NULL},
                /* 20 */ {"Unassigned (CableHome)", special, NULL},
                /* 21 */ {"Unassigned (CableHome)", special, NULL},
@@ -3982,8 +3982,8 @@ dissect_vendor_cablelabs_suboption(packet_info *pinfo, proto_item *v_ti, proto_t
                /* 29 */ {"Unassigned (CableHome)", special, NULL},
                /* 30 */ {"Unassigned (CableHome)", special, NULL},
                /* *** 31-50: PacketCable *** */
-               /* 31 */ {"MTA MAC Address", special, &hf_bootp_option43_cl_mta_mac_address},
-               /* 32 */ {"Correlation ID", val_u_long, &hf_bootp_option43_cl_correlation_ID},
+               /* 31 */ {"MTA MAC Address", special, &hf_dhcp_option43_cl_mta_mac_address},
+               /* 32 */ {"Correlation ID", val_u_long, &hf_dhcp_option43_cl_correlation_ID},
                /* 33 */ {"Unassigned (PacketCable)", special, NULL},
                /* 34 */ {"Unassigned (PacketCable)", special, NULL},
                /* 35 */ {"Unassigned (PacketCable)", special, NULL},
@@ -4003,51 +4003,51 @@ dissect_vendor_cablelabs_suboption(packet_info *pinfo, proto_item *v_ti, proto_t
                /* 49 */ {"Unassigned (PacketCable)", special, NULL},
                /* 50 */ {"Unassigned (PacketCable)", special, NULL},
                /* *** 51-127: CableLabs *** */
-               /* 51 */ {"Vendor Name", string, &hf_bootp_option43_cl_vendor_name51},
-               /* 52 */ {"CableCARD Capability", special, &hf_bootp_option43_cl_cablecard_capability},
-               /* 53 */ {"Device Identification (CA)", special, &hf_bootp_option43_cl_device_id_ca},
-               /* 54 */ {"Device Identification (X.509)", string, &hf_bootp_option43_cl_device_id_x509},
+               /* 51 */ {"Vendor Name", string, &hf_dhcp_option43_cl_vendor_name51},
+               /* 52 */ {"CableCARD Capability", special, &hf_dhcp_option43_cl_cablecard_capability},
+               /* 53 */ {"Device Identification (CA)", special, &hf_dhcp_option43_cl_device_id_ca},
+               /* 54 */ {"Device Identification (X.509)", string, &hf_dhcp_option43_cl_device_id_x509},
                /* 55 */ {"Unassigned (CableLabs)", special, NULL},
                /* *** 128-254: Vendors *** */
                /* 128-254 {"Unassigned (Vendors)", special, NULL}, */
-               /* 255 {"end options", special, &hf_bootp_option43_cl_end} */
+               /* 255 {"end options", special, &hf_dhcp_option43_cl_end} */
        };
 
        subopt = tvb_get_guint8(tvb, optoff);
        suboptoff++;
 
        if (subopt == 0) {
-               proto_tree_add_item(v_tree, hf_bootp_option43_cl_padding, tvb, optoff, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(v_tree, hf_dhcp_option43_cl_padding, tvb, optoff, 1, ENC_BIG_ENDIAN);
                return (suboptoff);
        } else if (subopt == 255) {     /* End Option */
-               proto_tree_add_item(v_tree, hf_bootp_option43_cl_end, tvb, optoff, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(v_tree, hf_dhcp_option43_cl_end, tvb, optoff, 1, ENC_BIG_ENDIAN);
                /* Make sure we skip any junk left this option */
                return (optend);
        }
 
        if (suboptoff >= optend) {
-               expert_add_info_format(pinfo, v_ti, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, v_ti, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return (optend);
        }
 
        subopt_len = tvb_get_guint8(tvb, suboptoff);
-       vti = proto_tree_add_uint_format_value(v_tree, hf_bootp_option43_cl_suboption,
+       vti = proto_tree_add_uint_format_value(v_tree, hf_dhcp_option43_cl_suboption,
                                tvb, optoff, subopt_len+2, subopt, "(%d) %s",
                                subopt, val_to_str_const(subopt, option43_cl_suboption_vals, "Unknown"));
 
-       o43cl_v_tree = proto_item_add_subtree(vti, ett_bootp_option43_suboption);
-       proto_tree_add_item(o43cl_v_tree, hf_bootp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+       o43cl_v_tree = proto_item_add_subtree(vti, ett_dhcp_option43_suboption);
+       proto_tree_add_item(o43cl_v_tree, hf_dhcp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
        suboptoff++;
 
        if (suboptoff+subopt_len > optend) {
-               expert_add_info_format(pinfo, vti, &ei_bootp_missing_subopt_value,
+               expert_add_info_format(pinfo, vti, &ei_dhcp_missing_subopt_value,
                                                "Suboption %d: no room left in option for suboption value", subopt);
                return (optend);
        }
 
        if ( (subopt < 1 ) || (subopt >= array_length(o43cablelabs_opt)) ) {
-               proto_tree_add_item(o43cl_v_tree, hf_bootp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
+               proto_tree_add_item(o43cl_v_tree, hf_dhcp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
        } else if (o43cablelabs_opt[subopt].ftype == special) {
                switch(subopt)
                {
@@ -4055,33 +4055,33 @@ dissect_vendor_cablelabs_suboption(packet_info *pinfo, proto_item *v_ti, proto_t
                        /* CableLabs specs treat 43.8 inconsistently
                         * as either binary (3b) or string (6b) */
                        if (subopt_len == 3) {
-                               proto_tree_add_bytes_format_value(o43cl_v_tree, hf_bootp_option43_cl_oui_bytes, tvb, suboptoff, subopt_len, NULL,
+                               proto_tree_add_bytes_format_value(o43cl_v_tree, hf_dhcp_option43_cl_oui_bytes, tvb, suboptoff, subopt_len, NULL,
                                        "%02x:%02x:%02x", tvb_get_guint8(tvb, suboptoff), tvb_get_guint8(tvb, suboptoff+1), tvb_get_guint8(tvb, suboptoff+2));
                        } else if (subopt_len == 6) {
-                               proto_tree_add_item(o43cl_v_tree, hf_bootp_option43_cl_oui_string, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
+                               proto_tree_add_item(o43cl_v_tree, hf_dhcp_option43_cl_oui_string, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
                        } else {
-                               expert_add_info_format(pinfo, vti, &ei_bootp_bad_length, "length isn't 3 or 6");
+                               expert_add_info_format(pinfo, vti, &ei_dhcp_bad_length, "length isn't 3 or 6");
                        }
                        break;
                case 31: /* MTA MAC address */
                        if (subopt_len != 6) {
-                               expert_add_info_format(pinfo, vti, &ei_bootp_bad_length, "length isn't 6");
+                               expert_add_info_format(pinfo, vti, &ei_dhcp_bad_length, "length isn't 6");
                                break;
                        }
 
-                       proto_tree_add_item(o43cl_v_tree, hf_bootp_option43_cl_mta_mac_address, tvb, suboptoff, 6, ENC_NA);
+                       proto_tree_add_item(o43cl_v_tree, hf_dhcp_option43_cl_mta_mac_address, tvb, suboptoff, 6, ENC_NA);
                        break;
                default:
                        if (o43cablelabs_opt[subopt].phf != NULL)
                                proto_tree_add_item(o43cl_v_tree, *o43cablelabs_opt[subopt].phf, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
                        else
-                               proto_tree_add_item(o43cl_v_tree, hf_bootp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
+                               proto_tree_add_item(o43cl_v_tree, hf_dhcp_option43_value, tvb, suboptoff, subopt_len, ENC_NA);
                }
        }
        else {
-               if (bootp_handle_basic_types(pinfo, o43cl_v_tree, vti, tvb, o43cablelabs_opt[subopt].ftype,
+               if (dhcp_handle_basic_types(pinfo, o43cl_v_tree, vti, tvb, o43cablelabs_opt[subopt].ftype,
                                                        suboptoff, subopt_len, o43cablelabs_opt[subopt].phf, &default_hfs) == 0) {
-                       expert_add_info_format(pinfo, vti, &hf_bootp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
+                       expert_add_info_format(pinfo, vti, &hf_dhcp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
                }
        }
 
@@ -4093,7 +4093,7 @@ static gboolean
 dissect_cablelabs_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
 {
        int offset = 0;
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        proto_tree* vendor_tree;
 
        if ((option_data->vendor_class_id != NULL) &&
@@ -4103,7 +4103,7 @@ dissect_cablelabs_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo, proto_tre
                 (strncmp((const gchar*)option_data->vendor_class_id, "CableHome", strlen("CableHome")) == 0))) {
                /* CableLabs standard - see www.cablelabs.com/projects */
                proto_item_append_text(tree, " (CableLabs)");
-               vendor_tree = proto_item_add_subtree(tree, ett_bootp_option);
+               vendor_tree = proto_item_add_subtree(tree, ett_dhcp_option);
 
                while (tvb_reported_length_remaining(tvb, offset) > 0) {
                        offset = dissect_vendor_cablelabs_suboption(pinfo, tree, vendor_tree,
@@ -4119,7 +4119,7 @@ static gboolean
 dissect_aruba_ap_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data)
 {
        int offset = 0;
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        proto_tree* vendor_tree;
 
        if ((option_data->vendor_class_id == NULL) ||
@@ -4127,9 +4127,9 @@ dissect_aruba_ap_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo _U_, proto_
                return FALSE;
 
        proto_item_append_text(tree, " (Aruba AP)");
-       vendor_tree = proto_item_add_subtree(tree, ett_bootp_option);
+       vendor_tree = proto_item_add_subtree(tree, ett_dhcp_option);
 
-       proto_tree_add_item(vendor_tree, hf_bootp_option43_arubaap_controllerip, tvb, offset, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
+       proto_tree_add_item(vendor_tree, hf_dhcp_option43_arubaap_controllerip, tvb, offset, tvb_reported_length(tvb), ENC_ASCII|ENC_NA);
        return TRUE;
 }
 
@@ -4138,7 +4138,7 @@ dissect_aruba_instant_ap_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo _U_
 {
        int offset = 0;
        int reported_len = tvb_reported_length(tvb);
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        proto_tree* vendor_tree;
        proto_item* vendor_item;
        gint32 nameorglen, ampiplen;
@@ -4150,15 +4150,15 @@ dissect_aruba_instant_ap_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo _U_
 
        proto_item_append_text(tree, " (Aruba Instant AP)");
 
-       vendor_item = proto_tree_add_item(tree, hf_bootp_option43_arubaiap, tvb, offset, reported_len, ENC_ASCII|ENC_NA);
-       vendor_tree = proto_item_add_subtree(vendor_item, ett_bootp_option43_suboption);
+       vendor_item = proto_tree_add_item(tree, hf_dhcp_option43_arubaiap, tvb, offset, reported_len, ENC_ASCII|ENC_NA);
+       vendor_tree = proto_item_add_subtree(vendor_item, ett_dhcp_option43_suboption);
        nameorglen = tvb_find_guint8(tvb, offset, tvb_reported_length(tvb), ',');
-       proto_tree_add_item(vendor_tree, hf_bootp_option43_arubaiap_nameorg, tvb, offset, nameorglen, ENC_ASCII|ENC_NA);
+       proto_tree_add_item(vendor_tree, hf_dhcp_option43_arubaiap_nameorg, tvb, offset, nameorglen, ENC_ASCII|ENC_NA);
        offset += (nameorglen+1);
        ampiplen = tvb_find_guint8(tvb, offset, reported_len-nameorglen-1, ',') - offset;
-       proto_tree_add_item(vendor_tree, hf_bootp_option43_arubaiap_ampip, tvb, offset, ampiplen, ENC_ASCII|ENC_NA);
+       proto_tree_add_item(vendor_tree, hf_dhcp_option43_arubaiap_ampip, tvb, offset, ampiplen, ENC_ASCII|ENC_NA);
        offset += (ampiplen+1);
-       proto_tree_add_item(vendor_tree, hf_bootp_option43_arubaiap_password, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
+       proto_tree_add_item(vendor_tree, hf_dhcp_option43_arubaiap_password, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_ASCII|ENC_NA);
 
        return TRUE;
 }
@@ -4184,14 +4184,14 @@ static const value_string option43_bsdp_suboption_vals[] = {
 static void
 dissect_vendor_bsdp_boot_image(proto_tree *v_tree, tvbuff_t *tvb, int optoff)
 {
-       static const int * bootp_o43_bsdp_attributes_flags[] = {
-               &hf_bootp_option43_bsdp_boot_image_attribute_install,
-               &hf_bootp_option43_bsdp_boot_image_attribute_kind,
-               &hf_bootp_option43_bsdp_boot_image_attribute_reserved,
+       static const int * dhcp_o43_bsdp_attributes_flags[] = {
+               &hf_dhcp_option43_bsdp_boot_image_attribute_install,
+               &hf_dhcp_option43_bsdp_boot_image_attribute_kind,
+               &hf_dhcp_option43_bsdp_boot_image_attribute_reserved,
                NULL
        };
 
-       proto_tree_add_bitmask(v_tree, tvb, optoff, hf_bootp_option43_bsdp_boot_image_attribute, ett_bootp_o43_bsdp_attributes_flags, bootp_o43_bsdp_attributes_flags, ENC_NA);
+       proto_tree_add_bitmask(v_tree, tvb, optoff, hf_dhcp_option43_bsdp_boot_image_attribute, ett_dhcp_o43_bsdp_attributes_flags, dhcp_o43_bsdp_attributes_flags, ENC_NA);
 }
 
 static int
@@ -4213,7 +4213,7 @@ dissect_vendor_bsdp_suboption(packet_info *pinfo, proto_item *v_ti, proto_tree *
                /* Pad (0) and End (255) have implicit length of 1. */
                item_len = 1;
        } else if (suboptoff >= optend) {
-               expert_add_info_format(pinfo, v_ti, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, v_ti, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return (optend);
        } else {
@@ -4221,19 +4221,19 @@ dissect_vendor_bsdp_suboption(packet_info *pinfo, proto_item *v_ti, proto_tree *
                item_len = subopt_len + 2;
        }
 
-       vti = proto_tree_add_uint_format_value(v_tree, hf_bootp_option43_bsdp_suboption,
+       vti = proto_tree_add_uint_format_value(v_tree, hf_dhcp_option43_bsdp_suboption,
                                tvb, optoff, item_len, subopt, "(%d) %s",
                                subopt, val_to_str_const(subopt, option43_bsdp_suboption_vals, "Unknown"));
        if (item_len == 1) {
                return (optoff + 1);
        }
 
-       o43bsdp_v_tree = proto_item_add_subtree(vti, ett_bootp_option43_suboption);
-       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+       o43bsdp_v_tree = proto_item_add_subtree(vti, ett_dhcp_option43_suboption);
+       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
        suboptoff++;
 
        if (suboptoff+subopt_len > optend) {
-               expert_add_info_format(pinfo, vti, &ei_bootp_missing_subopt_value,
+               expert_add_info_format(pinfo, vti, &ei_dhcp_missing_subopt_value,
                                                "Suboption %d: no room left in option for suboption value", subopt);
                return (optend);
        }
@@ -4241,62 +4241,62 @@ dissect_vendor_bsdp_suboption(packet_info *pinfo, proto_item *v_ti, proto_tree *
        switch(subopt)
        {
                case 1:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_message_type, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_message_type, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
                        break;
                case 2:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_version, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_version, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
                        break;
                case 3:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_server_identifier, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_server_identifier, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
                        break;
                case 4:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_server_priority, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_server_priority, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
                        break;
                case 5:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_reply_port, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_reply_port, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN);
                        break;
                case 6:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_boot_image_list_path, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_boot_image_list_path, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
                        break;
                case 7:
-                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_default_boot_image_id, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
-                       o43bsdp_va_tree = proto_item_add_subtree(ti, ett_bootp_o43_bsdp_boot_image);
+                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_default_boot_image_id, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
+                       o43bsdp_va_tree = proto_item_add_subtree(ti, ett_dhcp_o43_bsdp_boot_image);
                        dissect_vendor_bsdp_boot_image(o43bsdp_va_tree, tvb, suboptoff);
-                       proto_tree_add_item(o43bsdp_va_tree, hf_bootp_option43_bsdp_boot_image_index, tvb, suboptoff+2, subopt_len-2, ENC_BIG_ENDIAN|ENC_NA);
+                       proto_tree_add_item(o43bsdp_va_tree, hf_dhcp_option43_bsdp_boot_image_index, tvb, suboptoff+2, subopt_len-2, ENC_BIG_ENDIAN|ENC_NA);
                        break;
                case 8:
-                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_selected_boot_image_id, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
-                       o43bsdp_vc_tree = proto_item_add_subtree(ti, ett_bootp_o43_bsdp_boot_image);
+                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_selected_boot_image_id, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
+                       o43bsdp_vc_tree = proto_item_add_subtree(ti, ett_dhcp_o43_bsdp_boot_image);
                        dissect_vendor_bsdp_boot_image(o43bsdp_vc_tree, tvb, suboptoff);
-                       proto_tree_add_item(o43bsdp_vc_tree, hf_bootp_option43_bsdp_boot_image_index, tvb, suboptoff+2, subopt_len-2, ENC_BIG_ENDIAN|ENC_NA);
+                       proto_tree_add_item(o43bsdp_vc_tree, hf_dhcp_option43_bsdp_boot_image_index, tvb, suboptoff+2, subopt_len-2, ENC_BIG_ENDIAN|ENC_NA);
                        break;
                case 9:
-                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_boot_image_list, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
+                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_boot_image_list, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
                        attributes_len = subopt_len;
                        attributes_off = suboptoff;
-                       o43bsdp_vd_tree = proto_item_add_subtree(ti, ett_bootp_o43_bsdp_image_desc_list);
+                       o43bsdp_vd_tree = proto_item_add_subtree(ti, ett_dhcp_o43_bsdp_image_desc_list);
                        while (attributes_len >= 5) {
                                string_len = tvb_get_guint8(tvb, attributes_off+4);
                                if (string_len > 0) {
-                                       tj = proto_tree_add_item(o43bsdp_vd_tree, hf_bootp_option43_bsdp_image_desc, tvb, attributes_off, string_len+5, ENC_BIG_ENDIAN|ENC_NA);
-                                       o43bsdp_vb_tree = proto_item_add_subtree(tj, ett_bootp_o43_bsdp_image_desc);
+                                       tj = proto_tree_add_item(o43bsdp_vd_tree, hf_dhcp_option43_bsdp_image_desc, tvb, attributes_off, string_len+5, ENC_BIG_ENDIAN|ENC_NA);
+                                       o43bsdp_vb_tree = proto_item_add_subtree(tj, ett_dhcp_o43_bsdp_image_desc);
                                        dissect_vendor_bsdp_boot_image(o43bsdp_vb_tree, tvb, attributes_off);
-                                       proto_tree_add_item(o43bsdp_vb_tree, hf_bootp_option43_bsdp_boot_image_index, tvb, attributes_off+2, 2, ENC_BIG_ENDIAN|ENC_NA);
-                                       proto_tree_add_item(o43bsdp_vb_tree, hf_bootp_option43_bsdp_boot_image_name_len, tvb, attributes_off+4, 1, ENC_BIG_ENDIAN|ENC_NA);
-                                       proto_tree_add_item(o43bsdp_vb_tree, hf_bootp_option43_bsdp_boot_image_name, tvb, attributes_off+5, string_len, ENC_UTF_8|ENC_NA);
+                                       proto_tree_add_item(o43bsdp_vb_tree, hf_dhcp_option43_bsdp_boot_image_index, tvb, attributes_off+2, 2, ENC_BIG_ENDIAN|ENC_NA);
+                                       proto_tree_add_item(o43bsdp_vb_tree, hf_dhcp_option43_bsdp_boot_image_name_len, tvb, attributes_off+4, 1, ENC_BIG_ENDIAN|ENC_NA);
+                                       proto_tree_add_item(o43bsdp_vb_tree, hf_dhcp_option43_bsdp_boot_image_name, tvb, attributes_off+5, string_len, ENC_UTF_8|ENC_NA);
                                }
                                attributes_off += 5 + string_len;
                                attributes_len -= 5 + string_len;
                        }
                        break;
                case 10:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_netboot_firmware, tvb, suboptoff, subopt_len, ENC_NA);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_netboot_firmware, tvb, suboptoff, subopt_len, ENC_NA);
                        break;
                case 11:
-                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_attributes_filter_list, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
+                       ti = proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_attributes_filter_list, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
                        attributes_len = subopt_len;
                        attributes_off = suboptoff;
-                       o43bsdp_va_tree = proto_item_add_subtree(ti, ett_bootp_o43_bsdp_attributes);
+                       o43bsdp_va_tree = proto_item_add_subtree(ti, ett_dhcp_o43_bsdp_attributes);
                        while (attributes_len >= 2) {
                                dissect_vendor_bsdp_boot_image(o43bsdp_va_tree, tvb, attributes_off);
                                attributes_off+=2;
@@ -4304,7 +4304,7 @@ dissect_vendor_bsdp_suboption(packet_info *pinfo, proto_item *v_ti, proto_tree *
                        }
                        break;
                case 12:
-                       proto_tree_add_item(o43bsdp_v_tree, hf_bootp_option43_bsdp_message_size, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
+                       proto_tree_add_item(o43bsdp_v_tree, hf_dhcp_option43_bsdp_message_size, tvb, suboptoff, subopt_len, ENC_BIG_ENDIAN|ENC_NA);
                        break;
        }
 
@@ -4316,7 +4316,7 @@ static gboolean
 dissect_apple_bsdp_vendor_info_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
 {
        int offset = 0;
-       bootp_option_data_t *option_data = (bootp_option_data_t*)data;
+       dhcp_option_data_t *option_data = (dhcp_option_data_t*)data;
        proto_tree* vendor_tree;
 
        if ((option_data->vendor_class_id == NULL) ||
@@ -4325,7 +4325,7 @@ dissect_apple_bsdp_vendor_info_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tre
 
        /* Apple BSDP */
        proto_item_append_text(tree, " (Boot Server Discovery Protocol (BSDP))");
-       vendor_tree = proto_item_add_subtree(tree, ett_bootp_option);
+       vendor_tree = proto_item_add_subtree(tree, ett_dhcp_option);
 
        while (tvb_reported_length_remaining(tvb, offset) > 0) {
                offset = dissect_vendor_bsdp_suboption(pinfo, tree, vendor_tree,
@@ -4346,28 +4346,28 @@ dissect_vendor_generic_suboption(packet_info *pinfo, proto_item *v_ti, proto_tre
        proto_item *item;
        proto_tree *sub_tree;
 
-       item = proto_tree_add_item(v_tree, hf_bootp_vendor_unknown_suboption, tvb, optoff, 1, ENC_NA);
+       item = proto_tree_add_item(v_tree, hf_dhcp_vendor_unknown_suboption, tvb, optoff, 1, ENC_NA);
        subopt = tvb_get_guint8(tvb, optoff);
 
        suboptoff+=1;
 
        if (suboptoff >= optend) {
-               expert_add_info_format(pinfo, v_ti, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, v_ti, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return (optend);
        }
 
-       sub_tree = proto_item_add_subtree(item, ett_bootp_option125_suboption);
-       proto_tree_add_item_ret_uint(sub_tree, hf_bootp_suboption_length, tvb, suboptoff, 1, ENC_NA, &subopt_len);
+       sub_tree = proto_item_add_subtree(item, ett_dhcp_option125_suboption);
+       proto_tree_add_item_ret_uint(sub_tree, hf_dhcp_suboption_length, tvb, suboptoff, 1, ENC_NA, &subopt_len);
        suboptoff++;
 
        if (suboptoff+subopt_len > optend) {
-               expert_add_info_format(pinfo, item, &ei_bootp_missing_subopt_value,
+               expert_add_info_format(pinfo, item, &ei_dhcp_missing_subopt_value,
                                                "Suboption %d: no room left in option for suboption value", subopt);
                return (optend);
        }
 
-       proto_tree_add_item(sub_tree, hf_bootp_suboption_data, tvb, suboptoff, subopt_len, ENC_NA);
+       proto_tree_add_item(sub_tree, hf_dhcp_suboption_data, tvb, suboptoff, subopt_len, ENC_NA);
        suboptoff+= subopt_len;
 
        return suboptoff;
@@ -4375,7 +4375,7 @@ dissect_vendor_generic_suboption(packet_info *pinfo, proto_item *v_ti, proto_tre
 }
 
 static int
-dissect_bootpopt_vi_vendor_specific_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_vi_vendor_specific_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
        int enterprise = 0;
@@ -4386,22 +4386,22 @@ dissect_bootpopt_vi_vendor_specific_info(tvbuff_t *tvb, packet_info *pinfo, prot
 
        while (tvb_reported_length_remaining(tvb, offset) >= 5) {
 
-               vti = proto_tree_add_item_ret_uint(tree, hf_bootp_option125_enterprise, tvb, offset, 4, ENC_BIG_ENDIAN, &enterprise);
-               e_tree = proto_item_add_subtree(vti, ett_bootp_option);
+               vti = proto_tree_add_item_ret_uint(tree, hf_dhcp_option125_enterprise, tvb, offset, 4, ENC_BIG_ENDIAN, &enterprise);
+               e_tree = proto_item_add_subtree(vti, ett_dhcp_option);
                offset += 4;
 
-               proto_tree_add_item_ret_uint(e_tree, hf_bootp_option125_length, tvb, offset, 1, ENC_NA, &option_data_len);
+               proto_tree_add_item_ret_uint(e_tree, hf_dhcp_option125_length, tvb, offset, 1, ENC_NA, &option_data_len);
                offset += 1;
 
                s_end = offset + option_data_len;
                if ( tvb_reported_length_remaining(tvb, s_end) < 0 ) {
-                       expert_add_info_format(pinfo, vti, &ei_bootp_option125_enterprise_malformed, "no room left in option for enterprise %u data", enterprise);
+                       expert_add_info_format(pinfo, vti, &ei_dhcp_option125_enterprise_malformed, "no room left in option for enterprise %u data", enterprise);
                        break;
                }
 
                while (offset < s_end) {
                        tvbuff_t *enterprise_tvb = tvb_new_subset_length(tvb, offset, option_data_len);
-                       int bytes_dissected = dissector_try_uint(bootp_enterprise_table, enterprise, enterprise_tvb, pinfo, e_tree);
+                       int bytes_dissected = dissector_try_uint(dhcp_enterprise_table, enterprise, enterprise_tvb, pinfo, e_tree);
                        if (bytes_dissected == 0) {
                                offset = dissect_vendor_generic_suboption(pinfo, vti, e_tree, tvb, offset, s_end);
                        } else{
@@ -4411,7 +4411,7 @@ dissect_bootpopt_vi_vendor_specific_info(tvbuff_t *tvb, packet_info *pinfo, prot
        }
 
        if (tvb_reported_length_remaining(tvb, offset) > 0) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_bad_length, "length < 5");
+               expert_add_info_format(pinfo, tree, &ei_dhcp_bad_length, "length < 5");
        }
 
        return tvb_captured_length(tvb);
@@ -4480,31 +4480,31 @@ dissect_vendor_alcatel_suboption(packet_info *pinfo, proto_item *v_ti, proto_tre
        suboptoff++;
 
        if (subopt == 0) {
-               proto_tree_add_item(v_tree, hf_bootp_option43_alcatel_padding, tvb, optoff, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(v_tree, hf_dhcp_option43_alcatel_padding, tvb, optoff, 1, ENC_BIG_ENDIAN);
                return (suboptoff);
        } else if (subopt == 255) {     /* End Option */
-               proto_tree_add_item(v_tree, hf_bootp_option43_alcatel_end, tvb, optoff, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(v_tree, hf_dhcp_option43_alcatel_end, tvb, optoff, 1, ENC_BIG_ENDIAN);
                /* Make sure we skip any junk left this option */
                return (optend);
        }
 
        if (suboptoff >= optend) {
-               expert_add_info_format(pinfo, v_ti, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, v_ti, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return (optend);
        }
 
        subopt_len = tvb_get_guint8(tvb, suboptoff);
-       vti = proto_tree_add_uint_format_value(v_tree, hf_bootp_option43_alcatel_suboption,
+       vti = proto_tree_add_uint_format_value(v_tree, hf_dhcp_option43_alcatel_suboption,
                                tvb, optoff, subopt_len+2, subopt, "(%d) %s",
                                subopt, val_to_str_const(subopt, option43_alcatel_suboption_vals, "Unknown"));
 
-       o43alcatel_v_tree = proto_item_add_subtree(vti, ett_bootp_option43_suboption);
-       proto_tree_add_item(o43alcatel_v_tree, hf_bootp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+       o43alcatel_v_tree = proto_item_add_subtree(vti, ett_dhcp_option43_suboption);
+       proto_tree_add_item(o43alcatel_v_tree, hf_dhcp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
        suboptoff++;
 
        if (suboptoff+subopt_len > optend) {
-               expert_add_info_format(pinfo, vti, &ei_bootp_missing_subopt_value,
+               expert_add_info_format(pinfo, vti, &ei_dhcp_missing_subopt_value,
                                                "Suboption %d: no room left in option for suboption value", subopt);
                return (optend);
        }
@@ -4513,40 +4513,40 @@ dissect_vendor_alcatel_suboption(packet_info *pinfo, proto_item *v_ti, proto_tre
        {
        case 58: /* 0x3A - Alcatel-Lucent AVA VLAN Id */
                if (subopt_len != 2) {
-                       expert_add_info_format(pinfo, vti, &ei_bootp_bad_length, "length isn't 2");
+                       expert_add_info_format(pinfo, vti, &ei_dhcp_bad_length, "length isn't 2");
                        return (optend);
                }
 
-               proto_tree_add_item(o43alcatel_v_tree, hf_bootp_option43_alcatel_vlan_id, tvb, suboptoff, 2, ENC_BIG_ENDIAN);
+               proto_tree_add_item(o43alcatel_v_tree, hf_dhcp_option43_alcatel_vlan_id, tvb, suboptoff, 2, ENC_BIG_ENDIAN);
                break;
        case 64: /* 0x40 - Alcatel-Lucent TFTP1 */
                if (subopt_len != 4) {
-                       expert_add_info_format(pinfo, vti, &ei_bootp_bad_length, "length isn't 4");
+                       expert_add_info_format(pinfo, vti, &ei_dhcp_bad_length, "length isn't 4");
                        return (optend);
                }
 
-               proto_tree_add_item(o43alcatel_v_tree, hf_bootp_option43_alcatel_tftp1, tvb, suboptoff, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(o43alcatel_v_tree, hf_dhcp_option43_alcatel_tftp1, tvb, suboptoff, 4, ENC_BIG_ENDIAN);
                break;
        case 65: /* 0x41 - Alcatel-Lucent TFTP2 */
                if (subopt_len != 4) {
-                       expert_add_info_format(pinfo, vti, &ei_bootp_bad_length, "length isn't 4");
+                       expert_add_info_format(pinfo, vti, &ei_dhcp_bad_length, "length isn't 4");
                        return (optend);
                }
 
-               proto_tree_add_item(o43alcatel_v_tree, hf_bootp_option43_alcatel_tftp2, tvb, suboptoff, 4, ENC_BIG_ENDIAN);
+               proto_tree_add_item(o43alcatel_v_tree, hf_dhcp_option43_alcatel_tftp2, tvb, suboptoff, 4, ENC_BIG_ENDIAN);
                break;
        case 66: /* 0x42 - Alcatel-Lucent APPLICATION TYPE */
                if (subopt_len != 1) {
-                       expert_add_info_format(pinfo, vti, &ei_bootp_bad_length, "length isn't 1");
+                       expert_add_info_format(pinfo, vti, &ei_dhcp_bad_length, "length isn't 1");
                        return (optend);
                }
-               proto_tree_add_item(o43alcatel_v_tree, hf_bootp_option43_alcatel_app_type, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+               proto_tree_add_item(o43alcatel_v_tree, hf_dhcp_option43_alcatel_app_type, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
                break;
        case 67: /* 0x43 - Alcatel-Lucent SIP URL */
-               proto_tree_add_item(o43alcatel_v_tree, hf_bootp_option43_alcatel_sip_url, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
+               proto_tree_add_item(o43alcatel_v_tree, hf_dhcp_option43_alcatel_sip_url, tvb, suboptoff, subopt_len, ENC_ASCII|ENC_NA);
                break;
        default:
-               expert_add_info_format(pinfo, vti, &hf_bootp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
+               expert_add_info_format(pinfo, vti, &hf_dhcp_subopt_unknown_type, "ERROR, please report: Unknown subopt type handler %d", subopt);
                return optend;
        }
 
@@ -4571,7 +4571,7 @@ dissect_alcatel_lucent_vendor_info_heur( tvbuff_t *tvb, packet_info *pinfo, prot
 
                /* Alcatel-Lucent DHCP Extensions */
                proto_item_append_text(tree, " (Alcatel-Lucent)");
-               vendor_tree = proto_item_add_subtree(tree, ett_bootp_option);
+               vendor_tree = proto_item_add_subtree(tree, ett_dhcp_option);
 
                while (tvb_reported_length_remaining(tvb, offset) > 0) {
                        offset = dissect_vendor_alcatel_suboption(pinfo, tree, vendor_tree,
@@ -4609,11 +4609,11 @@ dissect_netware_ip_suboption(packet_info *pinfo, proto_item *v_ti, proto_tree *v
 
        struct basic_types_hfs default_hfs = {
                NULL,
-               &hf_bootp_option63_value_ip_address,
-               &hf_bootp_option63_value_ip_address,
+               &hf_dhcp_option63_value_ip_address,
+               &hf_dhcp_option63_value_ip_address,
                NULL,
-               &hf_bootp_option63_value_boolean,
-               &hf_bootp_option63_value_8,
+               &hf_dhcp_option63_value_boolean,
+               &hf_dhcp_option63_value_8,
                NULL,
                NULL,
                NULL,
@@ -4627,49 +4627,49 @@ dissect_netware_ip_suboption(packet_info *pinfo, proto_item *v_ti, proto_tree *v
                /* 2 */ {"NWIP exists in options area",presence,NULL},
                /* 3 */ {"NWIP exists in sname/file",presence,NULL},
                /* 4 */ {"NWIP exists, but too big",presence,NULL},
-               /* 5 */ {"Broadcast for nearest Netware server",val_boolean, &hf_bootp_option63_broadcast},
-               /* 6 */ {"Preferred DSS server",ipv4_list,&hf_bootp_option63_preferred_dss_server},
-               /* 7 */ {"Nearest NWIP server",ipv4_list,&hf_bootp_option63_nearest_nwip_server},
-               /* 8 */ {"Autoretries",val_u_byte,&hf_bootp_option63_autoretries},
-               /* 9 */ {"Autoretry delay, secs",val_u_byte,&hf_bootp_option63_autoretry_delay},
-               /* 10*/ {"Support NetWare/IP v1.1",val_boolean,&hf_bootp_option63_support_netware_v1_1},
-               /* 11*/ {"Primary DSS",ipv4,&hf_bootp_option63_primary_dss}
+               /* 5 */ {"Broadcast for nearest Netware server",val_boolean, &hf_dhcp_option63_broadcast},
+               /* 6 */ {"Preferred DSS server",ipv4_list,&hf_dhcp_option63_preferred_dss_server},
+               /* 7 */ {"Nearest NWIP server",ipv4_list,&hf_dhcp_option63_nearest_nwip_server},
+               /* 8 */ {"Autoretries",val_u_byte,&hf_dhcp_option63_autoretries},
+               /* 9 */ {"Autoretry delay, secs",val_u_byte,&hf_dhcp_option63_autoretry_delay},
+               /* 10*/ {"Support NetWare/IP v1.1",val_boolean,&hf_dhcp_option63_support_netware_v1_1},
+               /* 11*/ {"Primary DSS",ipv4,&hf_dhcp_option63_primary_dss}
        };
 
        subopt = tvb_get_guint8(tvb, optoff);
        suboptoff++;
 
        if (suboptoff >= optend) {
-               expert_add_info_format(pinfo, v_ti, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, v_ti, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return (optend);
        }
 
        subopt_len = tvb_get_guint8(tvb, suboptoff);
-       vti = proto_tree_add_uint_format_value(v_tree, hf_bootp_option63_suboption,
+       vti = proto_tree_add_uint_format_value(v_tree, hf_dhcp_option63_suboption,
                                tvb, optoff, subopt_len+2, subopt, "(%d) %s",
                                subopt, val_to_str_const(subopt, option63_suboption_vals, "Unknown"));
 
-       o63_v_tree = proto_item_add_subtree(vti, ett_bootp_option63_suboption);
-       proto_tree_add_item(o63_v_tree, hf_bootp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
+       o63_v_tree = proto_item_add_subtree(vti, ett_dhcp_option63_suboption);
+       proto_tree_add_item(o63_v_tree, hf_dhcp_suboption_length, tvb, suboptoff, 1, ENC_BIG_ENDIAN);
        suboptoff++;
 
-       ti = proto_tree_add_item(o63_v_tree, hf_bootp_option63_value, tvb, suboptoff, subopt_len, ENC_NA);
+       ti = proto_tree_add_item(o63_v_tree, hf_dhcp_option63_value, tvb, suboptoff, subopt_len, ENC_NA);
        PROTO_ITEM_SET_HIDDEN(ti);
 
        if (subopt < array_length(o63_opt)) {
-               if (bootp_handle_basic_types(pinfo, o63_v_tree, vti, tvb, o63_opt[subopt].ftype,
+               if (dhcp_handle_basic_types(pinfo, o63_v_tree, vti, tvb, o63_opt[subopt].ftype,
                                                        suboptoff, subopt_len, o63_opt[subopt].phf, &default_hfs) == 0) {
                        switch(o63_opt[subopt].ftype)
                        {
                        case presence:
                                if (subopt_len != 0) {
-                                       expert_add_info_format(pinfo, vti, &ei_bootp_bad_length, "length isn't 0");
+                                       expert_add_info_format(pinfo, vti, &ei_dhcp_bad_length, "length isn't 0");
                                }
                                break;
                        default:
                                if (o63_opt[subopt].phf == NULL)
-                                       proto_tree_add_item(o63_v_tree, hf_bootp_option63_value, tvb, suboptoff, subopt_len, ENC_NA);
+                                       proto_tree_add_item(o63_v_tree, hf_dhcp_option63_value, tvb, suboptoff, subopt_len, ENC_NA);
                                break;
                        }
                }
@@ -4679,7 +4679,7 @@ dissect_netware_ip_suboption(packet_info *pinfo, proto_item *v_ti, proto_tree *v
 }
 
 static int
-dissect_bootpopt_netware_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+dissect_dhcpopt_netware_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
 {
        int offset = 0;
 
@@ -4712,7 +4712,7 @@ dissect_vendor_tr111_suboption(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
                NULL,
                NULL,
                NULL,
-               &hf_bootp_option125_value_stringz,
+               &hf_dhcp_option125_value_stringz,
                NULL,
                NULL,
                NULL,
@@ -4728,48 +4728,48 @@ dissect_vendor_tr111_suboption(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
        static struct opt_info o125_tr111_opt[]= {
                /* 0 */ {"nop", special, NULL}, /* dummy */
-               /* 1 */ {"DeviceManufacturerOUI",  oui,    &hf_bootp_option125_tr111_device_manufacturer_oui},
-               /* 2 */ {"DeviceSerialNumber",     string, &hf_bootp_option125_tr111_device_serial_number},
-               /* 3 */ {"DeviceProductClass",     string, &hf_bootp_option125_tr111_device_product_class},
-               /* 4 */ {"GatewayManufacturerOUI", string, &hf_bootp_option125_tr111_gateway_manufacturer_oui},
-               /* 5 */ {"GatewaySerialNumber",    string, &hf_bootp_option125_tr111_gateway_serial_number},
-               /* 6 */ {"GatewayProductClass",    string, &hf_bootp_option125_tr111_gateway_product_class},
+               /* 1 */ {"DeviceManufacturerOUI",  oui,    &hf_dhcp_option125_tr111_device_manufacturer_oui},
+               /* 2 */ {"DeviceSerialNumber",     string, &hf_dhcp_option125_tr111_device_serial_number},
+               /* 3 */ {"DeviceProductClass",     string, &hf_dhcp_option125_tr111_device_product_class},
+               /* 4 */ {"GatewayManufacturerOUI", string, &hf_dhcp_option125_tr111_gateway_manufacturer_oui},
+               /* 5 */ {"GatewaySerialNumber",    string, &hf_dhcp_option125_tr111_gateway_serial_number},
+               /* 6 */ {"GatewayProductClass",    string, &hf_dhcp_option125_tr111_gateway_product_class},
        };
 
        subopt = tvb_get_guint8(tvb, offset);
        offset++;
 
        if (tvb_reported_length_remaining(tvb, offset) < 1) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, tree, &ei_dhcp_missing_subopt_length,
                                       "Suboption %d: no room left in option for suboption length", subopt);
                return offset;
        }
 
        subopt_len = tvb_get_guint8(tvb, offset);
-       vti = proto_tree_add_uint_format_value(tree, hf_bootp_option125_tr111_suboption,
+       vti = proto_tree_add_uint_format_value(tree, hf_dhcp_option125_tr111_suboption,
                                tvb, offset, subopt_len+2, subopt, "(%d) %s",
                                subopt, val_to_str_const(subopt, option125_tr111_suboption_vals, "Unknown"));
 
-       o125_v_tree = proto_item_add_subtree(vti, ett_bootp_option125_tr111_suboption);
-       proto_tree_add_item(o125_v_tree, hf_bootp_suboption_length, tvb, offset, 1, ENC_BIG_ENDIAN);
+       o125_v_tree = proto_item_add_subtree(vti, ett_dhcp_option125_tr111_suboption);
+       proto_tree_add_item(o125_v_tree, hf_dhcp_suboption_length, tvb, offset, 1, ENC_BIG_ENDIAN);
        offset++;
 
        if (tvb_reported_length_remaining(tvb, offset) < subopt_len) {
-               expert_add_info_format(pinfo, vti, &ei_bootp_missing_subopt_value,
+               expert_add_info_format(pinfo, vti, &ei_dhcp_missing_subopt_value,
                                                "Suboption %d: no room left in option for suboption value", subopt);
                return offset;
        }
 
-       ti = proto_tree_add_item(tree, hf_bootp_option125_value, tvb, offset, subopt_len, ENC_NA);
+       ti = proto_tree_add_item(tree, hf_dhcp_option125_value, tvb, offset, subopt_len, ENC_NA);
        PROTO_ITEM_SET_HIDDEN(ti);
 
        if (subopt < array_length(o125_tr111_opt)) {
-               if (bootp_handle_basic_types(pinfo, o125_v_tree, vti, tvb, o125_tr111_opt[subopt].ftype, offset, subopt_len, o125_tr111_opt[subopt].phf, &default_hfs) == 0) {
+               if (dhcp_handle_basic_types(pinfo, o125_v_tree, vti, tvb, o125_tr111_opt[subopt].ftype, offset, subopt_len, o125_tr111_opt[subopt].phf, &default_hfs) == 0) {
                        if (o125_tr111_opt[subopt].ftype == special) {
                                if (o125_tr111_opt[subopt].phf != NULL)
                                   proto_tree_add_item(o125_v_tree, *o125_tr111_opt[subopt].phf, tvb, offset, subopt_len, ENC_BIG_ENDIAN);
                                else
-                                  proto_tree_add_item(o125_v_tree, hf_bootp_option125_value, tvb, offset, subopt_len, ENC_NA);
+                                  proto_tree_add_item(o125_v_tree, hf_dhcp_option125_value, tvb, offset, subopt_len, ENC_NA);
                        }
                        else if (o125_tr111_opt[subopt].ftype == oui) {
                                /* Get hex string.  Expecting 6 characters. */
@@ -4779,7 +4779,7 @@ dissect_vendor_tr111_suboption(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
                                /* Add item using oui_vals */
                                proto_tree_add_uint(o125_v_tree, *o125_tr111_opt[subopt].phf, tvb, offset, subopt_len, oui_number);
                        } else if (o125_tr111_opt[subopt].phf == NULL)
-                               proto_tree_add_item(o125_v_tree, hf_bootp_option125_value, tvb, offset, subopt_len, ENC_NA);
+                               proto_tree_add_item(o125_v_tree, hf_dhcp_option125_value, tvb, offset, subopt_len, ENC_NA);
                }
        }
 
@@ -4812,13 +4812,13 @@ dissect_vendor_cl_suboption(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
        proto_item *vti;
 
        struct basic_types_hfs default_hfs = {
-               &hf_bootp_option125_value,
-               &hf_bootp_option125_value_ip_address,
-               &hf_bootp_option125_value_ip_address,
-               &hf_bootp_option125_value_stringz,
+               &hf_dhcp_option125_value,
+               &hf_dhcp_option125_value_ip_address,
+               &hf_dhcp_option125_value_ip_address,
+               &hf_dhcp_option125_value_stringz,
                NULL,
-               &hf_bootp_option125_value_8,
-               &hf_bootp_option125_value_16,
+               &hf_dhcp_option125_value_8,
+               &hf_dhcp_option125_value_16,
                NULL,
                NULL,
                NULL,
@@ -4827,39 +4827,39 @@ dissect_vendor_cl_suboption(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
 
        static struct opt_info o125_cl_opt[]= {
                /* 0 */ {"nop", special, NULL}, /* dummy */
-               /* 1 */ {"Option Request = ", bytes, &hf_bootp_option125_cl_option_request},
-               /* 2 */ {"TFTP Server Addresses : ", ipv4_list, &hf_bootp_option125_cl_tftp_server_addresses},
-               /* 3 */ {"eRouter Container Option : ", bytes, &hf_bootp_option125_cl_erouter_container_option},
-               /* 4 */ {"MIB Environment Indicator Option = ", val_u_byte, &hf_bootp_option125_cl_mib_environment_indicator_option},
-               /* 5 */ {"Modem Capabilities : ", special, &hf_bootp_option125_cl_modem_capabilities},
+               /* 1 */ {"Option Request = ", bytes, &hf_dhcp_option125_cl_option_request},
+               /* 2 */ {"TFTP Server Addresses : ", ipv4_list, &hf_dhcp_option125_cl_tftp_server_addresses},
+               /* 3 */ {"eRouter Container Option : ", bytes, &hf_dhcp_option125_cl_erouter_container_option},
+               /* 4 */ {"MIB Environment Indicator Option = ", val_u_byte, &hf_dhcp_option125_cl_mib_environment_indicator_option},
+               /* 5 */ {"Modem Capabilities : ", special, &hf_dhcp_option125_cl_modem_capabilities},
        };
 
        subopt = tvb_get_guint8(tvb, offset);
        offset++;
 
        if (tvb_reported_length_remaining(tvb, offset) < 1) {
-               expert_add_info_format(pinfo, tree, &ei_bootp_missing_subopt_length,
+               expert_add_info_format(pinfo, tree, &ei_dhcp_missing_subopt_length,
                                                                        "Suboption %d: no room left in option for suboption length", subopt);
                return offset;
        }
 
        subopt_len = tvb_get_guint8(tvb, offset);
-       vti = proto_tree_add_uint_format_value(tree, hf_bootp_option125_cl_suboption,
+       vti = proto_tree_add_uint_format_value(tree, hf_dhcp_option125_cl_suboption,
                                tvb, offset, subopt_len+2, subopt, "(%d) %s",
                                subopt, val_to_str_const(subopt, option125_cl_suboption_vals, "Unknown"));
 
-       o125_v_tree = proto_item_add_subtree(vti, ett_bootp_option125_cl_suboption);
-       proto_tree_add_item(o125_v_tree, hf_bootp_suboption_length, tvb, offset, 1, ENC_BIG_ENDIAN);
+       o125_v_tree = proto_item_add_subtree(vti, ett_dhcp_option125_cl_suboption);
+       proto_tree_add_item(o125_v_tree, hf_dhcp_suboption_length, tvb, offset, 1, ENC_BIG_ENDIAN);
        offset++;
 
        if (tvb_reported_length_remaining(tvb, offset) < subopt_len) {
-               expert_add_info_format(pinfo, vti, &ei_bootp_missing_subopt_value,
+               expert_add_info_format(pinfo, vti, &ei_dhcp_missing_subopt_value,
                                                "Suboption %d: no room left in option for suboption value", subopt);
                return offset;
        }
 
        if (subopt < array_length(o125_cl_opt)) {
-               if (bootp_handle_basic_types(pinfo, o125_v_tree, vti, tvb, o125_cl_opt[subopt].ftype,
+               if (dhcp_handle_basic_types(pinfo, o125_v_tree, vti, tvb, o125_cl_opt[subopt].ftype,
                                                        offset, subopt_len, o125_cl_opt[subopt].phf, &default_hfs) == 0) {
 
                        switch(o125_cl_opt[subopt].ftype) {
@@ -4867,7 +4867,7 @@ dissect_vendor_cl_suboption(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                                if (o125_cl_opt[subopt].phf != NULL)
                                        proto_tree_add_item(o125_v_tree, *o125_cl_opt[subopt].phf, tvb, offset, subopt_len, ENC_BIG_ENDIAN);
                                else
-                                       proto_tree_add_item(o125_v_tree, hf_bootp_option125_value, tvb, offset, subopt_len, ENC_NA);
+                                       proto_tree_add_item(o125_v_tree, hf_dhcp_option125_value, tvb, offset, subopt_len, ENC_NA);
                                switch(subopt){
                                        case 5: /* Modem Capabilities */
                                                dissect_docsis_cm_cap(o125_v_tree, tvb, offset-2, subopt_len+2, TRUE);
@@ -4876,7 +4876,7 @@ dissect_vendor_cl_suboption(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                                break;
                        default:
                                if (o125_cl_opt[subopt].phf == NULL)
-                                       proto_tree_add_item(o125_v_tree, hf_bootp_option125_value, tvb, offset, subopt_len, ENC_NA);
+                                       proto_tree_add_item(o125_v_tree, hf_dhcp_option125_value, tvb, offset, subopt_len, ENC_NA);
                                break;
                        }
                }
@@ -5029,33 +5029,33 @@ static const value_string pkt_mdc_mib_orgs[] = {
        { 0,            NULL }
 };
 
-static int hf_bootp_pkt_mdc_supp_flow_secure = -1;
-static int hf_bootp_pkt_mdc_supp_flow_hybrid = -1;
-static int hf_bootp_pkt_mdc_supp_flow_basic = -1;
+static int hf_dhcp_pkt_mdc_supp_flow_secure = -1;
+static int hf_dhcp_pkt_mdc_supp_flow_hybrid = -1;
+static int hf_dhcp_pkt_mdc_supp_flow_basic = -1;
 
 #define PKT_MDC_MIB_CL 0x3030
-static int hf_bootp_pkt_mdc_mib_cl_mta = -1;
-static int hf_bootp_pkt_mdc_mib_cl_signaling = -1;
-static int hf_bootp_pkt_mdc_mib_cl_management_event = -1;
-static int hf_bootp_pkt_mdc_mib_cl_mta_extension = -1;
-static int hf_bootp_pkt_mdc_mib_cl_mta_signaling_extension = -1;
-static int hf_bootp_pkt_mdc_mib_cl_mta_mem_extention = -1;
-static int hf_bootp_pkt_mdc_mib_cl_reserved = -1;
+static int hf_dhcp_pkt_mdc_mib_cl_mta = -1;
+static int hf_dhcp_pkt_mdc_mib_cl_signaling = -1;
+static int hf_dhcp_pkt_mdc_mib_cl_management_event = -1;
+static int hf_dhcp_pkt_mdc_mib_cl_mta_extension = -1;
+static int hf_dhcp_pkt_mdc_mib_cl_mta_signaling_extension = -1;
+static int hf_dhcp_pkt_mdc_mib_cl_mta_mem_extention = -1;
+static int hf_dhcp_pkt_mdc_mib_cl_reserved = -1;
 
 #define PKT_MDC_MIB_IETF 0x3031
-static int hf_bootp_pkt_mdc_mib_ietf_mta = -1;
-static int hf_bootp_pkt_mdc_mib_ietf_signaling = -1;
-static int hf_bootp_pkt_mdc_mib_ietf_management_event = -1;
-static int hf_bootp_pkt_mdc_mib_ietf_reserved = -1;
+static int hf_dhcp_pkt_mdc_mib_ietf_mta = -1;
+static int hf_dhcp_pkt_mdc_mib_ietf_signaling = -1;
+static int hf_dhcp_pkt_mdc_mib_ietf_management_event = -1;
+static int hf_dhcp_pkt_mdc_mib_ietf_reserved = -1;
 
 #define PKT_MDC_MIB_EURO 0x3032
-static int hf_bootp_pkt_mdc_mib_euro_mta = -1;
-static int hf_bootp_pkt_mdc_mib_euro_signaling = -1;
-static int hf_bootp_pkt_mdc_mib_euro_management_event = -1;
-static int hf_bootp_pkt_mdc_mib_euro_mta_extension = -1;
-static int hf_bootp_pkt_mdc_mib_euro_mta_signaling_extension = -1;
-static int hf_bootp_pkt_mdc_mib_euro_mta_mem_extention = -1;
-static int hf_bootp_pkt_mdc_mib_euro_reserved = -1;
+static int hf_dhcp_pkt_mdc_mib_euro_mta = -1;
+static int hf_dhcp_pkt_mdc_mib_euro_signaling = -1;
+static int hf_dhcp_pkt_mdc_mib_euro_management_event = -1;
+static int hf_dhcp_pkt_mdc_mib_euro_mta_extension = -1;
+static int hf_dhcp_pkt_mdc_mib_euro_mta_signaling_extension = -1;
+static int hf_dhcp_pkt_mdc_mib_euro_mta_mem_extention = -1;
+static int hf_dhcp_pkt_mdc_mib_euro_reserved = -1;
 
 
 static void
@@ -5072,11 +5072,11 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
 
        tvb_memcpy (tvb, asc_val, off, 2);
        if (sscanf((gchar*)asc_val, "%x", &tlv_len) != 1 || tlv_len > 0xff) {
-               proto_tree_add_expert_format(v_tree, pinfo, &ei_bootp_bad_length, tvb, off, len - off,
+               proto_tree_add_expert_format(v_tree, pinfo, &ei_dhcp_bad_length, tvb, off, len - off,
                        "Bogus length: %s", asc_val);
                return;
        } else {
-               proto_tree_add_uint(v_tree, hf_bootp_pkt_mta_cap_len, tvb, off, 2, tlv_len);
+               proto_tree_add_uint(v_tree, hf_dhcp_pkt_mta_cap_len, tvb, off, 2, tlv_len);
                off += 2;
 
                while (off - voff < len) {
@@ -5087,13 +5087,13 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
                        tvb_memcpy(tvb, asc_val, off + 2, 2);
                        if (sscanf((gchar*)asc_val, "%x", &tlv_len) != 1
                            || tlv_len < 1 || tlv_len > G_MAXUINT16) {
-                               proto_tree_add_expert_format(v_tree, pinfo, &ei_bootp_bad_length, tvb, off, len - off,
+                               proto_tree_add_expert_format(v_tree, pinfo, &ei_dhcp_bad_length, tvb, off, len - off,
                                                    "Bogus length: %s", asc_val);
                                return;
                        } else {
                                /* Value(s) */
 
-                               ti = proto_tree_add_uint_format(v_tree, hf_bootp_pkt_mta_cap_type,
+                               ti = proto_tree_add_uint_format(v_tree, hf_dhcp_pkt_mta_cap_type,
                                    tvb, off, 2, raw_val, "0x%s: %s = ",
                                    tvb_format_text(tvb, off, 2),
                                    val_to_str_const(raw_val, pkt_mdc_type_vals, "unknown"));
@@ -5193,12 +5193,12 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
                                        break;
                                }
                        }
-                       subtree = proto_item_add_subtree(ti, ett_bootp_option);
+                       subtree = proto_item_add_subtree(ti, ett_dhcp_option);
                        if (raw_val == PKT_MDC_PROV_FLOWS) {
                                static const int * flows[] = {
-                                       &hf_bootp_pkt_mdc_supp_flow_secure,
-                                       &hf_bootp_pkt_mdc_supp_flow_hybrid,
-                                       &hf_bootp_pkt_mdc_supp_flow_basic,
+                                       &hf_dhcp_pkt_mdc_supp_flow_secure,
+                                       &hf_dhcp_pkt_mdc_supp_flow_hybrid,
+                                       &hf_dhcp_pkt_mdc_supp_flow_basic,
                                        NULL
                                };
 
@@ -5211,7 +5211,7 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
                                        raw_val = tvb_get_ntohs(tvb, subopt_off);
                                        if (raw_val != 0x3032) { /* We only know how to handle a length of 2 */
                                                tvb_memcpy(tvb, asc_val, subopt_off, 2);
-                                               proto_tree_add_expert_format(subtree, pinfo, &ei_bootp_bad_length, tvb, subopt_off, 2,
+                                               proto_tree_add_expert_format(subtree, pinfo, &ei_dhcp_bad_length, tvb, subopt_off, 2,
                                                                        "Bogus length: %s", asc_val);
                                                return;
                                        }
@@ -5221,7 +5221,7 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
                                        tvb_memcpy(tvb, asc_val, subopt_off, 2);
 
                                        subtree2 = proto_tree_add_subtree_format(subtree, tvb, subopt_off, 2,
-                                               ett_bootp_option, &mib_ti, "%s (%s)",
+                                               ett_dhcp_option, &mib_ti, "%s (%s)",
                                                val_to_str_const(raw_val, pkt_mdc_mib_orgs, "Unknown"), asc_val);
                                        if (subopt_off > off + 4 + 2) {
                                                proto_item_append_text(ti, ", ");
@@ -5231,7 +5231,7 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
                                        subopt_off += 2;
                                        tvb_memcpy(tvb, asc_val, subopt_off, 2);
                                        if (sscanf((gchar*)asc_val, "%x", &mib_val) != 1) {
-                                               proto_tree_add_expert_format(v_tree, pinfo, &ei_bootp_bad_bitfield, tvb, subopt_off, 2,
+                                               proto_tree_add_expert_format(v_tree, pinfo, &ei_dhcp_bad_bitfield, tvb, subopt_off, 2,
                                                                        "Bogus bitfield: %s", asc_val);
                                                return;
                                        }
@@ -5239,13 +5239,13 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
 
                                        case PKT_MDC_MIB_CL: {
                                                static const int * cl_flags[] = {
-                                                       &hf_bootp_pkt_mdc_mib_cl_mta,
-                                                       &hf_bootp_pkt_mdc_mib_cl_signaling,
-                                                       &hf_bootp_pkt_mdc_mib_cl_management_event,
-                                                       &hf_bootp_pkt_mdc_mib_cl_mta_extension,
-                                                       &hf_bootp_pkt_mdc_mib_cl_mta_signaling_extension,
-                                                       &hf_bootp_pkt_mdc_mib_cl_mta_mem_extention,
-                                                       &hf_bootp_pkt_mdc_mib_cl_reserved,
+                                                       &hf_dhcp_pkt_mdc_mib_cl_mta,
+                                                       &hf_dhcp_pkt_mdc_mib_cl_signaling,
+                                                       &hf_dhcp_pkt_mdc_mib_cl_management_event,
+                                                       &hf_dhcp_pkt_mdc_mib_cl_mta_extension,
+                                                       &hf_dhcp_pkt_mdc_mib_cl_mta_signaling_extension,
+                                                       &hf_dhcp_pkt_mdc_mib_cl_mta_mem_extention,
+                                                       &hf_dhcp_pkt_mdc_mib_cl_reserved,
                                                        NULL
                                                };
 
@@ -5255,10 +5255,10 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
 
                                        case PKT_MDC_MIB_IETF: {
                                                static const int * ietf_flags[] = {
-                                                       &hf_bootp_pkt_mdc_mib_ietf_mta,
-                                                       &hf_bootp_pkt_mdc_mib_ietf_signaling,
-                                                       &hf_bootp_pkt_mdc_mib_ietf_management_event,
-                                                       &hf_bootp_pkt_mdc_mib_ietf_reserved,
+                                                       &hf_dhcp_pkt_mdc_mib_ietf_mta,
+                                                       &hf_dhcp_pkt_mdc_mib_ietf_signaling,
+                                                       &hf_dhcp_pkt_mdc_mib_ietf_management_event,
+                                                       &hf_dhcp_pkt_mdc_mib_ietf_reserved,
                                                        NULL
                                                };
 
@@ -5268,13 +5268,13 @@ dissect_packetcable_mta_cap(proto_tree *v_tree, packet_info *pinfo, tvbuff_t *tv
 
                                        case PKT_MDC_MIB_EURO: {
                                                static const int * euro_flags[] = {
-                                                       &hf_bootp_pkt_mdc_mib_euro_mta,
-                                                       &hf_bootp_pkt_mdc_mib_euro_signaling,
-                                                       &hf_bootp_pkt_mdc_mib_euro_management_event,
-                                                       &hf_bootp_pkt_mdc_mib_euro_mta_extension,
-                                                       &hf_bootp_pkt_mdc_mib_euro_mta_signaling_extension,
-                                                       &hf_bootp_pkt_mdc_mib_euro_mta_mem_extention,
-                                                       &hf_bootp_pkt_mdc_mib_euro_reserved,
+                                                       &hf_dhcp_pkt_mdc_mib_euro_mta,
+                                                       &hf_dhcp_pkt_mdc_mib_euro_signaling,
+                                                       &hf_dhcp_pkt_mdc_mib_euro_management_event,
+                                                       &hf_dhcp_pkt_mdc_mib_euro_mta_extension,
+                                                       &hf_dhcp_pkt_mdc_mib_euro_mta_signaling_extension,
+                                                       &hf_dhcp_pkt_mdc_mib_euro_mta_mem_extention,
+                                                       &hf_dhcp_pkt_mdc_mib_euro_reserved,
                                                        NULL
                                                };
 
@@ -5428,10 +5428,10 @@ static const value_string docsis_cm_cap_privacy_vals[] = {
        { 0,            NULL }
 };
 
-static int hf_bootp_docsis_cm_cap_ranging_hold_off_cm = -1;
-static int hf_bootp_docsis_cm_cap_ranging_hold_off_eps = -1;
-static int hf_bootp_docsis_cm_cap_ranging_hold_off_emta = -1;
-static int hf_bootp_docsis_cm_cap_ranging_hold_off_dsg = -1;
+static int hf_dhcp_docsis_cm_cap_ranging_hold_off_cm = -1;
+static int hf_dhcp_docsis_cm_cap_ranging_hold_off_eps = -1;
+static int hf_dhcp_docsis_cm_cap_ranging_hold_off_emta = -1;
+static int hf_dhcp_docsis_cm_cap_ranging_hold_off_dsg = -1;
 
 static const value_string docsis_cm_cap_l2vpn_vals[] = {
        { 0x00, "CM not compliant with DOCSIS L2VPN Section 7 (default)" },
@@ -5445,31 +5445,31 @@ static const value_string docsis_cm_cap_filt_vals[] = {
        { 0,            NULL }
 };
 
-static int hf_bootp_docsis_cm_cap_mpls_stpid = -1;
-static int hf_bootp_docsis_cm_cap_mpls_svid = -1;
-static int hf_bootp_docsis_cm_cap_mpls_spcp = -1;
-static int hf_bootp_docsis_cm_cap_mpls_sdei = -1;
-static int hf_bootp_docsis_cm_cap_mpls_ctpid = -1;
-static int hf_bootp_docsis_cm_cap_mpls_cvid = -1;
-static int hf_bootp_docsis_cm_cap_mpls_cpcp = -1;
-static int hf_bootp_docsis_cm_cap_mpls_ccfi = -1;
-static int hf_bootp_docsis_cm_cap_mpls_stci = -1;
-static int hf_bootp_docsis_cm_cap_mpls_ctci = -1;
-static int hf_bootp_docsis_cm_cap_mpls_itpid = -1;
-static int hf_bootp_docsis_cm_cap_mpls_isid = -1;
-static int hf_bootp_docsis_cm_cap_mpls_itci = -1;
-static int hf_bootp_docsis_cm_cap_mpls_ipcp = -1;
-static int hf_bootp_docsis_cm_cap_mpls_idei = -1;
-static int hf_bootp_docsis_cm_cap_mpls_iuca = -1;
-static int hf_bootp_docsis_cm_cap_mpls_btpid = -1;
-static int hf_bootp_docsis_cm_cap_mpls_