summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-bootp.c24
-rw-r--r--epan/dissectors/packet-dhcpv6.c12
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[] = {