#
##############################################################################
-ATTRIBUTE Geoconf-Civic 36 octets # Complex struct see RFC 4776
+ATTRIBUTE Geoconf-Civic 36 struct
+MEMBER What uint8
+VALUE What DHCP-Server-Location 0
+VALUE What Closest-Network-Element 1
+VALUE What Client-Location 2
+
+#
+# 2 letter ISO 3166 country code
+#
+MEMBER Country-Code string[2]
+
+#
+# @todo - define this option for DHCPv4, and then have the option here
+# be a "group" which references the DHCPv4 options. That _should_ get
+# everything encoded correctly.
+#
+MEMBER Civic-Address-Elements octets # really 8-bit DHCPv4 option
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2019 Network RADIUS SARL <legal@networkradius.com>
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+#
+# Version $Id$
+#
+
+proto dhcpv6
+proto-dictionary dhcpv6
+
+#
+# A1 = "ON"
+#
+encode-pair Geoconf-Civic = { What = Client-Location, Country-Code = "CA", Civic-Address-Elements = 0x01024f4e }
+match 00 24 00 07 02 43 41 01 02 4f 4e
+
+decode-pair -
+match Geoconf-Civic.What = Client-Location, Geoconf-Civic.Country-Code = "CA", Geoconf-Civic.Civic-Address-Elements = 0x01024f4e
+#match Geoconf-Civic = { What = Client-Location, Country-Code = "CA", Civic-Address-Elements = 0x01024f4e }
+
+count
+match 6