diff options
-rw-r--r-- | epan/dissectors/packet-bootp.c | 24 | ||||
-rw-r--r-- | epan/dissectors/packet-dhcpv6.c | 12 |
2 files changed, 33 insertions, 3 deletions
diff --git a/epan/dissectors/packet-bootp.c b/epan/dissectors/packet-bootp.c index 2de3feaf21..fb16c9e3b5 100644 --- a/epan/dissectors/packet-bootp.c +++ b/epan/dissectors/packet-bootp.c @@ -475,6 +475,8 @@ 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 */ @@ -531,6 +533,7 @@ 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_tftp_server_address = -1; /* 150 */ +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 */ @@ -1315,8 +1318,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 [TODO:RFC4833]", opaque, NULL }, -/* 101 */ { "TCode [TODO:RFC4833]", opaque, NULL }, +/* 100 */ { "PCode", string, &hf_bootp_option_tz_pcode }, +/* 101 */ { "TCode", string, &hf_bootp_option_tz_tcode }, /* 102 */ { "Removed/unassigned", opaque, NULL }, /* 103 */ { "Removed/unassigned", opaque, NULL }, /* 104 */ { "Removed/unassigned", opaque, NULL }, @@ -1376,7 +1379,7 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = { /* 158 */ { "Unassigned", opaque, NULL }, /* 159 */ { "Unassigned", opaque, NULL }, /* 160 */ { "Unassigned", opaque, NULL }, -/* 161 */ { "Unassigned", opaque, NULL }, +/* 161 */ { "Manufacturer Usage Description", string, &hf_bootp_option_mudurl}, /* 162 */ { "Unassigned", opaque, NULL }, /* 163 */ { "Unassigned", opaque, NULL }, /* 164 */ { "Unassigned", opaque, NULL }, @@ -8074,6 +8077,16 @@ proto_register_bootp(void) FT_STRINGZ, BASE_NONE, NULL, 0x0, "Option 99: CA Value", HFILL }}, + { &hf_bootp_option_tz_pcode, + { "TZ PCode", "bootp.option.tz_pcode", + FT_STRING, BASE_NONE, NULL, 0x0, + "Option 100: TZ PCode", HFILL }}, + + { &hf_bootp_option_tz_tcode, + { "TZ TCode", "bootp.option.tz_tcode", + FT_STRING, BASE_NONE, NULL, 0x0, + "Option 101: TZ TCode", HFILL }}, + { &hf_bootp_option_netinfo_parent_server_address, { "NetInfo Parent Server Address", "bootp.option.netinfo_parent_server_address", FT_IPv4, BASE_NONE, NULL, 0x00, @@ -8344,6 +8357,11 @@ proto_register_bootp(void) FT_IPv4, BASE_NONE, NULL, 0x00, "Option 150: TFTP Server Address", HFILL }}, + { &hf_bootp_option_mudurl, + { "MUDURL", "bootp.option.mudurl", + FT_STRING, BASE_NONE, NULL, 0x0, + "Option 161: MUDURL", HFILL }}, + { &hf_bootp_option_pxe_config_file, { "PXELINUX configuration file", "bootp.option.pxe_config_file", FT_STRING, BASE_NONE, NULL, 0x0, diff --git a/epan/dissectors/packet-dhcpv6.c b/epan/dissectors/packet-dhcpv6.c index 15c638a5c6..058b301120 100644 --- a/epan/dissectors/packet-dhcpv6.c +++ b/epan/dissectors/packet-dhcpv6.c @@ -27,6 +27,7 @@ * RFC7598.txt (Configuration of Softwire Address and Port-Mapped Clients) * draft-ietf-dhc-dhcpv6-opt-timeconfig-03.txt * draft-ietf-dhc-dhcpv6-opt-lifetime-00.txt + * draft-ietf-opsawg-mud-02.txt (Manufacturer Usage Descriptions + IANA assignment) * CL-SP-CANN-DHCP-Reg-I10-130808.pdf * * Note that protocol constants are still subject to change, based on IANA @@ -155,6 +156,7 @@ static int hf_dhcpv6_hopcount = -1; static int hf_dhcpv6_xid = -1; static int hf_dhcpv6_peeraddr = -1; static int hf_dhcpv6_linkaddr = -1; +static int hf_opt_mudurl = -1; static int hf_option_ntpserver_type = -1; static int hf_option_ntpserver_length = -1; static int hf_option_ntpserver_addr = -1; @@ -382,6 +384,7 @@ static dissector_handle_t dhcpv6_handle; #define OPTION_ANI_AP_BSSID 108 /* RFC 7839 */ #define OPTION_ANI_OPERATOR_ID 109 /* RFC 7839 */ #define OPTION_ANI_OPERATOR_REALM 110 /* RFC 7839 */ +#define OPTION_MUDURL 112 /* MUDURL */ #define OPTION_IPv6_ADDRESS_ANDSF 143 /* RFC 6153 */ /* temporary value until defined by IETF */ @@ -532,6 +535,7 @@ static const value_string opttype_vals[] = { { OPTION_MIP6_HA, "Mobile IPv6 Home Agent" }, { OPTION_MIP6_HOA, "Mobile IPv6 Home Address" }, { OPTION_NAI, "Network Access Identifier" }, + { OPTION_MUDURL, "Manufacturer Usage Description" }, { 0, NULL } }; static value_string_ext opttype_vals_ext = VALUE_STRING_EXT_INIT(opttype_vals); @@ -2022,6 +2026,12 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, if (optlen > 0) proto_tree_add_item(subtree, hf_opt_tzdb, tvb, off, optlen, ENC_ASCII|ENC_NA); break; + + case OPTION_MUDURL: + if (optlen > 0) + proto_tree_add_item(subtree, hf_opt_mudurl, tvb, off, optlen, ENC_ASCII|ENC_NA); + break; + case OPTION_LQ_QUERY: { guint8 query_type; @@ -2612,6 +2622,8 @@ proto_register_dhcpv6(void) { "PSID length", "dhcpv6.s46_portparam.psid_len", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_option_s46_portparam_psid, { "PSID", "dhcpv6.s46_portparam.psid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_opt_mudurl, + { "MUDURL", "dhcpv6.mudurl", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, }; static gint *ett[] = { |