aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2009-03-06 19:43:45 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2009-03-06 19:43:45 +0000
commitd7d058214ee33f72a94f7154806ba7c30ee696b3 (patch)
tree4b860a8545b34d522afecb77c5c15c4c6e1bada0 /epan
parent055a9393b6ac2d858c59ee2f1379566b0c0b8745 (diff)
From Alexis La Goutte (bug 3308):
Add DHCP(v4 & v6) Option for CAPWAP (RFC5417) svn path=/trunk/; revision=27625
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-bootp.c3
-rw-r--r--epan/dissectors/packet-dhcpv6.c16
2 files changed, 18 insertions, 1 deletions
diff --git a/epan/dissectors/packet-bootp.c b/epan/dissectors/packet-bootp.c
index 58000ab384..7b78a39aa6 100644
--- a/epan/dissectors/packet-bootp.c
+++ b/epan/dissectors/packet-bootp.c
@@ -26,6 +26,7 @@
* RFC 4243: Vendor-Specific Information Suboption for the Dynamic Host Configuration Protocol (DHCP) Relay Agent Option
* RFC 4776: Dynamic Host Configuration Protocol (DHCPv4 and DHCPv6) Option for Civic Addresses Configuration Information
* RFC 5223: Discovering Location-to-Service Translation (LoST) Servers Using the Dynamic Host Configuration Protocol (DHCP)
+ * RFC 5417: CAPWAP Access Controller DHCP Option
* draft-ietf-dhc-fqdn-option-07.txt
* BOOTP and DHCP Parameters
* http://www.iana.org/assignments/bootp-dhcp-parameters
@@ -623,7 +624,7 @@ static struct opt_info default_bootp_opt[BOOTP_OPT_NUM] = {
/* 135 */ { "PXE - undefined (vendor specific)", opaque, NULL },
/* 136 */ { "OPTION_PANA_AGENT [TODO]", opaque, NULL },
/* 137 */ { "LoST Server Domain Name", string, NULL },
-/* 138 */ { "OPTION_CAPWAP_AC_V4 [TODO]", opaque, NULL },
+/* 138 */ { "CAPWAP Access Controllers", ipv4_list, NULL },
/* 139 */ { "Unassigned", opaque, NULL },
/* 140 */ { "Unassigned", opaque, NULL },
/* 141 */ { "Unassigned", opaque, NULL },
diff --git a/epan/dissectors/packet-dhcpv6.c b/epan/dissectors/packet-dhcpv6.c
index 7200f3f92d..0c4173f44c 100644
--- a/epan/dissectors/packet-dhcpv6.c
+++ b/epan/dissectors/packet-dhcpv6.c
@@ -16,6 +16,7 @@
* RFC3898.txt (NIS options)
* RFC4704.txt (Client FQDN)
* RFC5007.txt (DHCPv6 Leasequery)
+ * RFC5417.txt (CAPWAP Access Controller DHCP Option)
* draft-ietf-dhc-dhcpv6-opt-timeconfig-03.txt
* draft-ietf-dhc-dhcpv6-opt-lifetime-00.txt
*
@@ -130,6 +131,7 @@ static gint ett_dhcpv6_option_vsoption = -1;
#define OPTION_CLT_TIME 46
#define OPTION_LQ_RELAY_DATA 47
#define OPTION_LQ_CLIENT_LINK 48
+#define OPTION_CAPWAP_AC_V6 52
/* temporary value until defined by IETF */
#define OPTION_MIP6_HA 165
@@ -212,6 +214,7 @@ static const value_string opttype_vals[] = {
{ OPTION_CLT_TIME, "Client Last Transaction Time" },
{ OPTION_LQ_RELAY_DATA, "Leasequery Relay Data" },
{ OPTION_LQ_CLIENT_LINK, "Leasequery Client Link Address List" },
+ { OPTION_CAPWAP_AC_V6, "CAPWAP Access Controllers" },
{ OPTION_MIP6_HA, "Mobile IPv6 Home Agent" },
{ OPTION_MIP6_HOA, "Mobile IPv6 Home Address" },
{ OPTION_NAI, "Network Access Identifier" },
@@ -973,6 +976,19 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree,
ip6_to_str(&in6));
}
break;
+ case OPTION_CAPWAP_AC_V6:
+ if (optlen % 16) {
+ proto_tree_add_text(subtree, tvb, off, optlen,
+ "CAPWAP Access Controllers address: malformed option");
+ break;
+ }
+ for (i = 0; i < optlen; i += 16) {
+ tvb_get_ipv6(tvb, off + i, &in6);
+ proto_tree_add_text(subtree, tvb, off + i,
+ sizeof(in6), "CAPWAP Access Controllers address: %s",
+ ip6_to_str(&in6));
+ }
+ break;
case OPTION_IAPREFIX:
{
guint32 preferred_lifetime, valid_lifetime;