]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
decode DHCPv6 structs as nested
authorAlan T. DeKok <aland@freeradius.org>
Tue, 5 Sep 2023 17:18:29 +0000 (13:18 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 5 Sep 2023 17:38:55 +0000 (13:38 -0400)
25 files changed:
src/protocols/dhcpv6/decode.c
src/protocols/dhcpv6/dhcpv6.h
src/tests/unit/protocols/dhcpv6/packet.txt
src/tests/unit/protocols/dhcpv6/packet_AFTR-Name-rfc6334.txt
src/tests/unit/protocols/dhcpv6/packet_client_server.txt
src/tests/unit/protocols/dhcpv6/packet_domain-list.txt
src/tests/unit/protocols/dhcpv6/packet_ia-na.txt
src/tests/unit/protocols/dhcpv6/packet_ia-pd.txt
src/tests/unit/protocols/dhcpv6/packet_ia-ta.txt
src/tests/unit/protocols/dhcpv6/packet_ntp-server.txt
src/tests/unit/protocols/dhcpv6/packet_sip-server-d.txt
src/tests/unit/protocols/dhcpv6/relay_forward.txt
src/tests/unit/protocols/dhcpv6/relay_reply.txt
src/tests/unit/protocols/dhcpv6/rfc3315.txt
src/tests/unit/protocols/dhcpv6/rfc3633.txt
src/tests/unit/protocols/dhcpv6/rfc4704.txt
src/tests/unit/protocols/dhcpv6/rfc4776.txt
src/tests/unit/protocols/dhcpv6/rfc6225.txt
src/tests/unit/protocols/dhcpv6/rfc6355.txt
src/tests/unit/protocols/dhcpv6/rfc6731.txt
src/tests/unit/protocols/dhcpv6/rfc6939.txt
src/tests/unit/protocols/dhcpv6/rfc7078.txt
src/tests/unit/protocols/dhcpv6/rfc7600.txt
src/tests/unit/protocols/dhcpv6/rfc8415.txt
src/tests/unit/protocols/dhcpv6/server.txt

index 3dec19940a87628d66ff144e05de7326965758a2..820a47fcd5b47d4049fe48d4c6915418c8743925 100644 (file)
@@ -73,7 +73,6 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out,
        ssize_t                 slen;
        fr_pair_t               *vp = NULL;
        uint8_t                 prefix_len;
-       fr_dhcpv6_decode_ctx_t  *packet_ctx = decode_ctx;
 
        FR_PROTO_HEX_DUMP(data, data_len, "decode_value");
 
@@ -176,7 +175,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out,
                break;
 
        case FR_TYPE_STRUCT:
-               slen = fr_struct_from_network(ctx, out, parent, data, data_len, packet_ctx->struct_nested,
+               slen = fr_struct_from_network(ctx, out, parent, data, data_len, true,
                                              decode_ctx, decode_value_trampoline, decode_tlv_trampoline);
                if (slen < 0) goto raw;
 
index cce442f2b821dca855a6a92055ad80b7d920826a..2b880655f07d7f8a7c3d8ca79b2be17c1f177c46 100644 (file)
@@ -142,7 +142,6 @@ typedef struct {
        uint32_t                transaction_id;         //!< previous transaction ID
        uint8_t                 *duid;                  //!< the expected DUID, in wire format
        size_t                  duid_len;               //!< length of the expected DUID
-       bool                    struct_nested;          //!< decode structs as nested
 } fr_dhcpv6_decode_ctx_t;
 
 /*
index dd2a9fd189da36ebdcddee4bf4e859d3f1c3c84f..e9a45cd089d9b65c32cce7bd6f34647b60ea3ee7 100644 (file)
@@ -15,7 +15,7 @@ match 00 05 00 18 20 01 0d b8 00 00 00 00 00 00 00 00 00 0c 78 eb 00 00 00 00 00
 #  Decode ALL fields.
 #
 decode-pair -
-match IA-Addr.IPv6-Address = 2001:db8::c:78eb, IA-Addr.Preferred-Lifetime = 0, IA-Addr.Valid-Lifetime = 3600
+match IA-Addr = { IPv6-Address = 2001:db8::c:78eb, Preferred-Lifetime = 0, Valid-Lifetime = 3600 }
 
 #
 #  Allow structs as groups, in which case they are encoded properly.
@@ -23,12 +23,6 @@ match IA-Addr.IPv6-Address = 2001:db8::c:78eb, IA-Addr.Preferred-Lifetime = 0, I
 encode-pair IA-Addr = { IPv6-Address = 2001:db8::c:78eb, Valid-Lifetime = 3600 }
 match 00 05 00 18 20 01 0d b8 00 00 00 00 00 00 00 00 00 0c 78 eb 00 00 00 00 00 00 0e 10
 
-#
-#  But the decoding portion isn't done yet.
-#
-decode-pair -
-match IA-Addr.IPv6-Address = 2001:db8::c:78eb, IA-Addr.Preferred-Lifetime = 0, IA-Addr.Valid-Lifetime = 3600
-
 #
 #  BUT if we are given the children out of order, we sort them, and put them in place properly.
 #
@@ -44,7 +38,7 @@ encode-proto Packet-Type = Request, Transaction-ID = 0xabcdef, Client-ID.DUID =
 match 03 ab cd ef 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 
 decode-proto -
-match Packet-Type = Request, Transaction-ID = 0xabcdef, Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
+match Packet-Type = Request, Transaction-ID = 0xabcdef, Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }
 
 count
-match 19
+match 17
index c022c3d9f337b961567244115bfb57f368330f60..2ca48cbaf516f839b4b76171e06d8783369420b5 100644 (file)
@@ -44,7 +44,7 @@ fuzzer-out dhcpv6
 #       \iapdopt   \
 #
 decode-proto 01 d8 1e b8 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00 40 00 08 00 02 00 00 00 19 00 0c 02 03 04 05 00 00 0e 10 00 00 15 18
-match Packet-Type = Solicit, Transaction-ID = 0xd81eb8, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Option-Request = DNS-Servers, Option-Request = AFTR-Name, Elapsed-Time = 0, IA-PD.IAID = 33752069, IA-PD.T1 = 3600, IA-PD.T2 = 5400
+match Packet-Type = Solicit, Transaction-ID = 0xd81eb8, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Option-Request = DNS-Servers, Option-Request = AFTR-Name, Elapsed-Time = 0, IA-PD = { IAID = 33752069, T1 = 3600, T2 = 5400 }
 
 encode-proto -
 match 01 d8 1e b8 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00 40 00 08 00 02 00 00 00 19 00 0c 02 03 04 05 00 00 0e 10 00 00 15 18
@@ -101,7 +101,7 @@ match 01 d8 1e b8 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00
 #         data      = '\taftr-name\x08mydomain\x03net\x00'
 #
 decode-proto 02 d8 1e b8 00 19 00 29 02 03 04 05 00 00 00 96 00 00 00 fa 00 1a 00 19 00 00 00 fa 00 00 01 2c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 3f 4e f0 00 11 22 33 44 55 00 07 00 01 0a 00 17 00 10 2a 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 40 00 18 09 61 66 74 72 2d 6e 61 6d 65 08 6d 79 64 6f 6d 61 69 6e 03 6e 65 74 00
-match Packet-Type = Advertise, Transaction-ID = 0xd81eb8, IA-PD.IAID = 33752069, IA-PD.T1 = 150, IA-PD.T2 = 250, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 250, IA-PD-Prefix.Valid-Lifetime = 300, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 21 2012 08:36:00 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55, Preference = 10, DNS-Servers = 2a01::1, AFTR-Name = "aftr-name.mydomain.net"
+match Packet-Type = Advertise, Transaction-ID = 0xd81eb8, IA-PD = { IAID = 33752069, T1 = 150, T2 = 250, Options = { IA-PD-Prefix = { Preferred-Lifetime = 250, Valid-Lifetime = 300, IPv6-Prefix = 2a00:1:1:100::/56 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 21 2012 08:36:00 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }, Preference = 10, DNS-Servers = 2a01::1, AFTR-Name = "aftr-name.mydomain.net"
 
 encode-proto -
 match 02 d8 1e b8 00 19 00 29 02 03 04 05 00 00 00 96 00 00 00 fa 00 1a 00 19 00 00 00 fa 00 00 01 2c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 3f 4e f0 00 11 22 33 44 55 00 07 00 01 0a 00 17 00 10 2a 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 40 00 18 09 61 66 74 72 2d 6e 61 6d 65 08 6d 79 64 6f 6d 61 69 6e 03 6e 65 74 00
@@ -154,7 +154,7 @@ match 02 d8 1e b8 00 19 00 29 02 03 04 05 00 00 00 96 00 00 00 fa 00 1a 00 19 00
 #         |  iaprefopts= ''
 #
 decode-proto 03 1e 29 1d 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 3f 4e f0 00 11 22 33 44 55 00 06 00 04 00 17 00 40 00 08 00 02 00 00 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 1c 20 00 00 1d 4c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00
-match Packet-Type = Request, Transaction-ID = 0x1e291d, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 21 2012 08:36:00 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55, Option-Request = DNS-Servers, Option-Request = AFTR-Name, Elapsed-Time = 0, IA-PD.IAID = 33752069, IA-PD.T1 = 3600, IA-PD.T2 = 5400, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 7200, IA-PD-Prefix.Valid-Lifetime = 7500, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }
+match Packet-Type = Request, Transaction-ID = 0x1e291d, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 21 2012 08:36:00 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }, Option-Request = DNS-Servers, Option-Request = AFTR-Name, Elapsed-Time = 0, IA-PD = { IAID = 33752069, T1 = 3600, T2 = 5400, Options = { IA-PD-Prefix = { Preferred-Lifetime = 7200, Valid-Lifetime = 7500, IPv6-Prefix = 2a00:1:1:100::/56 } } }
 
 encode-proto -
 match 03 1e 29 1d 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 3f 4e f0 00 11 22 33 44 55 00 06 00 04 00 17 00 40 00 08 00 02 00 00 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 1c 20 00 00 1d 4c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00
@@ -211,7 +211,7 @@ match 03 1e 29 1d 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00
 #         data      = '\taftr-name\x08mydomain\x03net\x00'
 #
 decode-proto 07 1e 29 1d 00 19 00 29 02 03 04 05 00 00 00 96 00 00 00 fa 00 1a 00 19 00 00 00 fa 00 00 01 2c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 3f 4e f0 00 11 22 33 44 55 00 07 00 01 0a 00 17 00 10 2a 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 40 00 18 09 61 66 74 72 2d 6e 61 6d 65 08 6d 79 64 6f 6d 61 69 6e 03 6e 65 74 00
-match Packet-Type = Reply, Transaction-ID = 0x1e291d, IA-PD.IAID = 33752069, IA-PD.T1 = 150, IA-PD.T2 = 250, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 250, IA-PD-Prefix.Valid-Lifetime = 300, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 21 2012 08:36:00 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55, Preference = 10, DNS-Servers = 2a01::1, AFTR-Name = "aftr-name.mydomain.net"
+match Packet-Type = Reply, Transaction-ID = 0x1e291d, IA-PD = { IAID = 33752069, T1 = 150, T2 = 250, Options = { IA-PD-Prefix = { Preferred-Lifetime = 250, Valid-Lifetime = 300, IPv6-Prefix = 2a00:1:1:100::/56 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 21 2012 08:36:00 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }, Preference = 10, DNS-Servers = 2a01::1, AFTR-Name = "aftr-name.mydomain.net"
 
 encode-proto -
 match 07 1e 29 1d 00 19 00 29 02 03 04 05 00 00 00 96 00 00 00 fa 00 1a 00 19 00 00 00 fa 00 00 01 2c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 3f 4e f0 00 11 22 33 44 55 00 07 00 01 0a 00 17 00 10 2a 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 40 00 18 09 61 66 74 72 2d 6e 61 6d 65 08 6d 79 64 6f 6d 61 69 6e 03 6e 65 74 00
index 8481726c468ae5822b11e10cd322d1cf2723789a..97914175baa985022b678e78c7a1dcfed566365a 100644 (file)
@@ -31,7 +31,10 @@ encode-proto Packet-Type = Solicit, Transaction-ID = 0xabcdef, Rapid-Commit = ye
 match 01 ab cd ef 00 0e 00 00 00 03 00 12 0a bc de f0 00 00 d3 4d 00 00 b3 3f 00 06 00 02 00 ad 00 27 00 0b 04 09 74 61 70 69 6f 63 61 30 31 00 06 00 0a 00 17 00 18 00 38 00 1f 00 0e 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 08 00 02 b3 3f
 
 decode-proto -
-match Packet-Type = Solicit, Transaction-ID = 0xabcdef, Rapid-Commit = yes, IA-NA.IAID = 180150000, IA-NA.T1 = 54093, IA-NA.T2 = 45887, IA-NA.Options = { Option-Request = 173 }, Client-FQDN.Reserved = 0, Client-FQDN.No-Server-Update = yes, Client-FQDN.Server-Override = no, Client-FQDN.Server-Update = no, Client-FQDN.Domain-Name = "tapioca01", Option-Request = DNS-Servers, Option-Request = Domain-List, Option-Request = NTP-Server, Option-Request = SNTP-Servers, Option-Request = Rapid-Commit, Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Elapsed-Time = 45887
+match Packet-Type = Solicit, Transaction-ID = 0xabcdef, Rapid-Commit = yes, IA-NA = { IAID = 180150000, T1 = 54093, T2 = 45887, Options = { Option-Request = 173 } }, Client-FQDN = { Reserved = 0, No-Server-Update = yes, Server-Override = no, Server-Update = no, Domain-Name = "tapioca01" }, Option-Request = DNS-Servers, Option-Request = Domain-List, Option-Request = NTP-Server, Option-Request = SNTP-Servers, Option-Request = Rapid-Commit, Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Elapsed-Time = 45887
+
+encode-proto -
+match 01 ab cd ef 00 0e 00 00 00 03 00 12 0a bc de f0 00 00 d3 4d 00 00 b3 3f 00 06 00 02 00 ad 00 27 00 0b 04 09 74 61 70 69 6f 63 61 30 31 00 06 00 0a 00 17 00 18 00 38 00 1f 00 0e 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 08 00 02 b3 3f
 
 #
 #  2. Advertise (Server -> Client)
@@ -50,7 +53,10 @@ encode-proto Packet-Type = Advertise, Transaction-ID = 0xabcdef, Rapid-Commit =
 match 02 ab cd ef 00 0e 00 00 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 52 00 04 dd cc bb aa 00 17 00 20 28 04 01 4d 2a 73 44 ab 00 00 00 00 00 00 01 23 28 04 01 4d 2a 73 44 ab 00 00 00 00 00 00 04 56 00 18 00 31 09 6d 79 64 6f 6d 61 69 6e 31 03 63 6f 6d 00 09 6d 79 64 6f 6d 61 69 6e 32 03 6c 61 6e 00 04 63 6f 72 70 09 6d 79 64 6f 6d 61 69 6e 33 02 63 6f 00 00 03 00 12 0a bc de f0 00 00 d3 4d 00 00 b3 3f 00 06 00 02 00 ad 00 05 00 1e fd 85 d2 bb 09 2c 00 01 74 ae 28 71 f5 6c 8d 94 00 00 00 78 00 01 51 80 00 06 00 02 00 ad
 
 decode-proto -
-match Packet-Type = Advertise, Transaction-ID = 0xabcdef, Rapid-Commit = yes, Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, SOL-Max-RT = 3721182122, DNS-Servers = 2804:14d:2a73:44ab::123, DNS-Servers = 2804:14d:2a73:44ab::456, Domain-List = "mydomain1.com", Domain-List = "mydomain2.lan", Domain-List = "corp.mydomain3.co", IA-NA.IAID = 180150000, IA-NA.T1 = 54093, IA-NA.T2 = 45887, IA-NA.Options = { Option-Request = 173 }, IA-Addr.IPv6-Address = fd85:d2bb:92c:1:74ae:2871:f56c:8d94, IA-Addr.Preferred-Lifetime = 120, IA-Addr.Valid-Lifetime = 86400, IA-Addr.Options = { Option-Request = 173 }
+match Packet-Type = Advertise, Transaction-ID = 0xabcdef, Rapid-Commit = yes, Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, SOL-Max-RT = 3721182122, DNS-Servers = 2804:14d:2a73:44ab::123, DNS-Servers = 2804:14d:2a73:44ab::456, Domain-List = "mydomain1.com", Domain-List = "mydomain2.lan", Domain-List = "corp.mydomain3.co", IA-NA = { IAID = 180150000, T1 = 54093, T2 = 45887, Options = { Option-Request = 173 } }, IA-Addr = { IPv6-Address = fd85:d2bb:92c:1:74ae:2871:f56c:8d94, Preferred-Lifetime = 120, Valid-Lifetime = 86400, Options = { Option-Request = 173 } }
+
+encode-proto -
+match 02 ab cd ef 00 0e 00 00 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 52 00 04 dd cc bb aa 00 17 00 20 28 04 01 4d 2a 73 44 ab 00 00 00 00 00 00 01 23 28 04 01 4d 2a 73 44 ab 00 00 00 00 00 00 04 56 00 18 00 31 09 6d 79 64 6f 6d 61 69 6e 31 03 63 6f 6d 00 09 6d 79 64 6f 6d 61 69 6e 32 03 6c 61 6e 00 04 63 6f 72 70 09 6d 79 64 6f 6d 61 69 6e 33 02 63 6f 00 00 03 00 12 0a bc de f0 00 00 d3 4d 00 00 b3 3f 00 06 00 02 00 ad 00 05 00 1e fd 85 d2 bb 09 2c 00 01 74 ae 28 71 f5 6c 8d 94 00 00 00 78 00 01 51 80 00 06 00 02 00 ad
 
 #
 #  3. Request (Client -> Broadcast)
@@ -69,7 +75,7 @@ encode-proto Packet-Type = Request, Transaction-ID = 0xc0ffee, Server-ID.DUID =
 match 03 c0 ff ee 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 03 00 12 0a bc de f0 00 00 d3 4d 00 00 b3 3f 00 06 00 02 00 ad 00 05 00 1e fd 85 d2 bb 09 2c 00 01 74 ae 28 71 f5 6c 8d 94 00 00 00 78 00 01 51 80 00 06 00 02 00 ad 00 27 00 0b 04 09 74 61 70 69 6f 63 61 30 31 00 06 00 0a 00 17 00 18 00 38 00 1f 00 0e 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 08 00 02 b3 3f
 
 decode-proto -
-match Packet-Type = Request, Transaction-ID = 0xc0ffee, Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, IA-NA.IAID = 180150000, IA-NA.T1 = 54093, IA-NA.T2 = 45887, IA-NA.Options = { Option-Request = 173 }, IA-Addr.IPv6-Address = fd85:d2bb:92c:1:74ae:2871:f56c:8d94, IA-Addr.Preferred-Lifetime = 120, IA-Addr.Valid-Lifetime = 86400, IA-Addr.Options = { Option-Request = 173 }, Client-FQDN.Reserved = 0, Client-FQDN.No-Server-Update = yes, Client-FQDN.Server-Override = no, Client-FQDN.Server-Update = no, Client-FQDN.Domain-Name = "tapioca01", Option-Request = DNS-Servers, Option-Request = Domain-List, Option-Request = NTP-Server, Option-Request = SNTP-Servers, Option-Request = Rapid-Commit, Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Elapsed-Time = 45887
+match Packet-Type = Request, Transaction-ID = 0xc0ffee, Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, IA-NA = { IAID = 180150000, T1 = 54093, T2 = 45887, Options = { Option-Request = 173 } }, IA-Addr = { IPv6-Address = fd85:d2bb:92c:1:74ae:2871:f56c:8d94, Preferred-Lifetime = 120, Valid-Lifetime = 86400, Options = { Option-Request = 173 } }, Client-FQDN = { Reserved = 0, No-Server-Update = yes, Server-Override = no, Server-Update = no, Domain-Name = "tapioca01" }, Option-Request = DNS-Servers, Option-Request = Domain-List, Option-Request = NTP-Server, Option-Request = SNTP-Servers, Option-Request = Rapid-Commit, Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Elapsed-Time = 45887
 
 #
 #  4. Reply (Server -> Client)
@@ -88,7 +94,7 @@ encode-proto Packet-Type = Reply, Transaction-ID = 0xc0ffee, Server-ID.DUID = UU
 match 07 c0 ff ee 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 52 00 04 00 00 00 3c 00 17 00 20 fd 85 d2 bb 09 2c 00 00 00 00 00 00 00 00 00 01 fd 85 d2 bb 09 2c 00 00 00 00 00 00 00 00 00 02
 
 decode-proto -
-match Packet-Type = Reply, Transaction-ID = 0xc0ffee, Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, SOL-Max-RT = 60, DNS-Servers = fd85:d2bb:92c::1, DNS-Servers = fd85:d2bb:92c::2
+match Packet-Type = Reply, Transaction-ID = 0xc0ffee, Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, SOL-Max-RT = 60, DNS-Servers = fd85:d2bb:92c::1, DNS-Servers = fd85:d2bb:92c::2
 
 #
 #  5. Release (Client -> Broadcast)
@@ -106,7 +112,7 @@ encode-proto Packet-Type = Release, Transaction-ID = 0x00b33f, Client-ID.DUID =
 match 08 00 b3 3f 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 06 00 04 00 17 00 18 00 08 00 02 b3 3f 00 19 00 11 aa bb cc dd 00 00 d3 4d 00 00 b3 3f 00 07 00 01 01
 
 decode-proto -
-match Packet-Type = Release, Transaction-ID = 0x00b33f, Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 45887, IA-PD.IAID = 2864434397, IA-PD.T1 = 54093, IA-PD.T2 = 45887, IA-PD.Options = { Preference = 1 }
+match Packet-Type = Release, Transaction-ID = 0x00b33f, Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 45887, IA-PD = { IAID = 2864434397, T1 = 54093, T2 = 45887, Options = { Preference = 1 } }
 
 #
 #  6. Reply (Server -> Client)
@@ -122,7 +128,7 @@ encode-proto Packet-Type = Reply, Transaction-ID = 0x00b33f, Client-ID.DUID = UU
 match 07 00 b3 3f 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 0d 00 13 00 00 52 65 6c 65 61 73 65 20 72 65 63 65 69 76 65 64 2e
 
 decode-proto -
-match Packet-Type = Reply, Transaction-ID = 0x00b33f, Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f, Status-Code.Value = Success, Status-Code.Message = "Release received."
+match Packet-Type = Reply, Transaction-ID = 0x00b33f, Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }, Status-Code = { Value = Success, Message = "Release received." }
 
 count
-match 27
+match 31
index 7fa9ee98c6fb03a19abadad63b6a8c8c632c7e72..e5b8815440fa03627a0b63d451dd46204432fed5 100644 (file)
@@ -43,7 +43,7 @@ fuzzer-out dhcpv6
 #      dnsdomains= ['example.com.', 'sales.example.com.', 'eng.example.com.']
 #
 decode-proto 07 aa 56 ce 00 01 00 0e 00 01 00 01 18 f0 0b 3f 00 0c 29 38 f3 68 00 02 00 0e 00 01 00 01 18 ef 95 1b 00 0c 29 9b a1 53 00 18 00 31 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 05 73 61 6c 65 73 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 03 65 6e 67 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00
-match  Packet-Type = Reply, Transaction-ID = 0xaa56ce, Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Apr  4 2013 09:58:23 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:0c:29:38:f3:68, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Apr  4 2013 01:34:19 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:0c:29:9b:a1:53, Domain-List = "example.com", Domain-List = "sales.example.com", Domain-List = "eng.example.com"
+match Packet-Type = Reply, Transaction-ID = 0xaa56ce, Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Apr  4 2013 09:58:23 UTC", Hardware-Type.Ethernet = { Address = 00:0c:29:38:f3:68 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Apr  4 2013 01:34:19 UTC", Hardware-Type.Ethernet = { Address = 00:0c:29:9b:a1:53 } } }, Domain-List = "example.com", Domain-List = "sales.example.com", Domain-List = "eng.example.com"
 
 encode-proto -
 match 07 aa 56 ce 00 01 00 0e 00 01 00 01 18 f0 0b 3f 00 0c 29 38 f3 68 00 02 00 0e 00 01 00 01 18 ef 95 1b 00 0c 29 9b a1 53 00 18 00 31 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 05 73 61 6c 65 73 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 03 65 6e 67 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00
index 87cda6fecba0bfe863c57923798fed5d0419c627..1c347ff0f9c29c73b537a65c9b49f0b0669409ba 100644 (file)
@@ -44,7 +44,7 @@ fuzzer-out dhcpv6
 #       \ianaopts  \
 #
 decode-proto 01 90 b4 5c 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 03 00 0c 02 03 04 05 00 00 0e 10 00 00 15 18
-match Packet-Type = Solicit, Transaction-ID = 0x90b45c, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA.IAID = 33752069, IA-NA.T1 = 3600, IA-NA.T2 = 5400
+match Packet-Type = Solicit, Transaction-ID = 0x90b45c, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA = { IAID = 33752069, T1 = 3600, T2 = 5400 }
 
 #
 #  2.
@@ -85,7 +85,7 @@ match Packet-Type = Solicit, Transaction-ID = 0x90b45c, Client-ID.DUID = LL, Cli
 #       |  lladdr    = 00:11:22:33:44:55
 #
 decode-proto 02 90 b4 5c 00 03 00 28 02 03 04 05 00 00 0e 10 00 00 15 18 00 05 00 18 2a 00 00 01 00 01 02 00 38 e6 b2 2e c4 40 ac df 00 00 11 94 00 00 1c 20 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 48 8c 00 11 22 33 44 55
-match Packet-Type = Advertise, Transaction-ID = 0x90b45c, IA-NA.IAID = 33752069, IA-NA.T1 = 3600, IA-NA.T2 = 5400, IA-NA.Options = { IA-Addr.IPv6-Address = 2a00:1:1:200:38e6:b22e:c440:acdf, IA-Addr.Preferred-Lifetime = 4500, IA-Addr.Valid-Lifetime = 7200 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:34:36 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55
+match Packet-Type = Advertise, Transaction-ID = 0x90b45c, IA-NA = { IAID = 33752069, T1 = 3600, T2 = 5400, Options = { IA-Addr = { IPv6-Address = 2a00:1:1:200:38e6:b22e:c440:acdf, Preferred-Lifetime = 4500, Valid-Lifetime = 7200 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:34:36 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }
 
 #
 #  3.
@@ -134,7 +134,7 @@ match Packet-Type = Advertise, Transaction-ID = 0x90b45c, IA-NA.IAID = 33752069,
 #         |  iaaddropts= ''
 #
 decode-proto 03 2f fd d1 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 48 8c 00 11 22 33 44 55 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 03 00 28 02 03 04 05 00 00 0e 10 00 00 15 18 00 05 00 18 2a 00 00 01 00 01 02 00 38 e6 b2 2e c4 40 ac df 00 00 1c 20 00 00 1d 4c
-match Packet-Type = Request, Transaction-ID = 0x2ffdd1, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:34:36 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA.IAID = 33752069, IA-NA.T1 = 3600, IA-NA.T2 = 5400, IA-NA.Options = { IA-Addr.IPv6-Address = 2a00:1:1:200:38e6:b22e:c440:acdf, IA-Addr.Preferred-Lifetime = 7200, IA-Addr.Valid-Lifetime = 7500 }
+match Packet-Type = Request, Transaction-ID = 0x2ffdd1, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:34:36 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA = { IAID = 33752069, T1 = 3600, T2 = 5400, Options = { IA-Addr = { IPv6-Address = 2a00:1:1:200:38e6:b22e:c440:acdf, Preferred-Lifetime = 7200, Valid-Lifetime = 7500 } } }
 
 #
 #  4.
@@ -175,7 +175,7 @@ match Packet-Type = Request, Transaction-ID = 0x2ffdd1, Client-ID.DUID = LL, Cli
 #       |  lladdr    = 00:11:22:33:44:55
 #
 decode-proto 07 2f fd d1 00 03 00 28 02 03 04 05 00 00 0e 10 00 00 15 18 00 05 00 18 2a 00 00 01 00 01 02 00 38 e6 b2 2e c4 40 ac df 00 00 11 94 00 00 1c 20 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 48 8c 00 11 22 33 44 55
-match Packet-Type = Reply, Transaction-ID = 0x2ffdd1, IA-NA.IAID = 33752069, IA-NA.T1 = 3600, IA-NA.T2 = 5400, IA-NA.Options = { IA-Addr.IPv6-Address = 2a00:1:1:200:38e6:b22e:c440:acdf, IA-Addr.Preferred-Lifetime = 4500, IA-Addr.Valid-Lifetime = 7200 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:34:36 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55
+match Packet-Type = Reply, Transaction-ID = 0x2ffdd1, IA-NA = { IAID = 33752069, T1 = 3600, T2 = 5400, Options = { IA-Addr = { IPv6-Address = 2a00:1:1:200:38e6:b22e:c440:acdf, Preferred-Lifetime = 4500, Valid-Lifetime = 7200 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:34:36 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }
 
 count
 match 11
index 116bcf3b881812facc93c3c970ed86c34707f2dc..9f4f3d485fc7c10293cf1497b6985f3301023248 100644 (file)
@@ -44,7 +44,7 @@ fuzzer-out dhcpv6
 #       \iapdopt   \
 #
 decode-proto 01 e1 e0 93 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 19 00 0c 02 03 04 05 00 00 0e 10 00 00 15 18
-match Packet-Type = Solicit, Transaction-ID = 0xe1e093, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-PD.IAID = 33752069, IA-PD.T1 = 3600, IA-PD.T2 = 5400
+match Packet-Type = Solicit, Transaction-ID = 0xe1e093, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-PD = { IAID = 33752069, T1 = 3600, T2 = 5400 }
 
 encode-proto -
 match 01 e1 e0 93 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 19 00 0c 02 03 04 05 00 00 0e 10 00 00 15 18
@@ -89,7 +89,7 @@ match 01 e1 e0 93 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00
 #       |  lladdr    = 00:11:22:33:44:55
 #
 decode-proto 02 e1 e0 93 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 11 94 00 00 1c 20 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 49 99 00 11 22 33 44 55
-match Packet-Type = Advertise, Transaction-ID = 0xe1e093, IA-PD.IAID = 33752069, IA-PD.T1 = 3600, IA-PD.T2 = 5400, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 4500, IA-PD-Prefix.Valid-Lifetime = 7200, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:39:05 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55
+match Packet-Type = Advertise, Transaction-ID = 0xe1e093, IA-PD = { IAID = 33752069, T1 = 3600, T2 = 5400, Options = { IA-PD-Prefix = { Preferred-Lifetime = 4500, Valid-Lifetime = 7200, IPv6-Prefix = 2a00:1:1:100::/56 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:39:05 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }
 
 encode-proto -
 match 02 e1 e0 93 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 11 94 00 00 1c 20 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 49 99 00 11 22 33 44 55
@@ -143,7 +143,7 @@ match 02 e1 e0 93 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00
 #         |  iaprefopts= ''
 #
 decode-proto 03 12 b0 8a 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 49 99 00 11 22 33 44 55 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 1c 20 00 00 1d 4c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00
-match Packet-Type = Request, Transaction-ID = 0x12b08a, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:39:05 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-PD.IAID = 33752069, IA-PD.T1 = 3600, IA-PD.T2 = 5400, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 7200, IA-PD-Prefix.Valid-Lifetime = 7500, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }
+match Packet-Type = Request, Transaction-ID = 0x12b08a, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:39:05 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-PD = { IAID = 33752069, T1 = 3600, T2 = 5400, Options = { IA-PD-Prefix = { Preferred-Lifetime = 7200, Valid-Lifetime = 7500, IPv6-Prefix = 2a00:1:1:100::/56 } } }
 
 encode-proto -
 match 03 12 b0 8a 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 49 99 00 11 22 33 44 55 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 1c 20 00 00 1d 4c 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00
@@ -188,7 +188,7 @@ match 03 12 b0 8a 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00
 #       |  lladdr    = 00:11:22:33:44:55
 #
 decode-proto 07 12 b0 8a 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 11 94 00 00 1c 20 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 49 99 00 11 22 33 44 55
-match Packet-Type = Reply, Transaction-ID = 0x12b08a, IA-PD.IAID = 33752069, IA-PD.T1 = 3600, IA-PD.T2 = 5400, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 4500, IA-PD-Prefix.Valid-Lifetime = 7200, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:39:05 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55
+match Packet-Type = Reply, Transaction-ID = 0x12b08a, IA-PD = { IAID = 33752069, T1 = 3600, T2 = 5400, Options = { IA-PD-Prefix = { Preferred-Lifetime = 4500, Valid-Lifetime = 7200, IPv6-Prefix = 2a00:1:1:100::/56 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:39:05 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }
 
 encode-proto -
 match 07 12 b0 8a 00 19 00 29 02 03 04 05 00 00 0e 10 00 00 15 18 00 1a 00 19 00 00 11 94 00 00 1c 20 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 49 99 00 11 22 33 44 55
index eaa8d5f415d9b39d49fb6f3adef985e5b4991baa..bc288d96116303ae454c51cd45904cdac7f2dfeb 100644 (file)
@@ -42,7 +42,7 @@ fuzzer-out dhcpv6
 #       \iataopts  \
 #
 decode-proto 01 28 b0 40 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 04 00 04 02 03 04 05
-match Packet-Type = Solicit, Transaction-ID = 0x28b040, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-TA.IAID = 33752069
+match Packet-Type = Solicit, Transaction-ID = 0x28b040, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-TA = { IAID = 33752069 }
 
 encode-proto -
 match 01 28 b0 40 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 04 00 04 02 03 04 05
@@ -84,7 +84,7 @@ match 01 28 b0 40 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 06 00 04 00 17 00
 #       |  lladdr    = 00:11:22:33:44:55
 #
 decode-proto 02 28 b0 40 00 04 00 20 02 03 04 05 00 05 00 18 2a 00 00 01 00 01 02 00 5d a2 f9 20 84 c4 88 cc 00 00 11 94 00 00 1c 20 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 47 f0 00 11 22 33 44 55
-match Packet-Type = Advertise, Transaction-ID = 0x28b040, IA-TA.IAID = 33752069, IA-TA.Options = { IA-Addr.IPv6-Address = 2a00:1:1:200:5da2:f920:84c4:88cc, IA-Addr.Preferred-Lifetime = 4500, IA-Addr.Valid-Lifetime = 7200 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:32:00 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55
+match Packet-Type = Advertise, Transaction-ID = 0x28b040, IA-TA = { IAID = 33752069, Options = { IA-Addr = { IPv6-Address = 2a00:1:1:200:5da2:f920:84c4:88cc, Preferred-Lifetime = 4500, Valid-Lifetime = 7200 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:32:00 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }
 
 encode-proto -
 match 02 28 b0 40 00 04 00 20 02 03 04 05 00 05 00 18 2a 00 00 01 00 01 02 00 5d a2 f9 20 84 c4 88 cc 00 00 11 94 00 00 1c 20 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 47 f0 00 11 22 33 44 55
@@ -134,7 +134,7 @@ match 02 28 b0 40 00 04 00 20 02 03 04 05 00 05 00 18 2a 00 00 01 00 01 02 00 5d
 #         |  iaaddropts= ''
 #
 decode-proto 03 2b 0e 45 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 47 f0 00 11 22 33 44 55 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 04 00 20 02 03 04 05 00 05 00 18 2a 00 00 01 00 01 02 00 5d a2 f9 20 84 c4 88 cc 00 00 1c 20 00 00 1d 4c
-match Packet-Type = Request, Transaction-ID = 0x2b0e45, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:32:00 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-TA.IAID = 33752069, IA-TA.Options = { IA-Addr.IPv6-Address = 2a00:1:1:200:5da2:f920:84c4:88cc, IA-Addr.Preferred-Lifetime = 7200, IA-Addr.Valid-Lifetime = 7500 }
+match Packet-Type = Request, Transaction-ID = 0x2b0e45, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:32:00 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }, Option-Request = DNS-Servers, Option-Request = Domain-List, Elapsed-Time = 0, IA-TA = { IAID = 33752069, Options = { IA-Addr = { IPv6-Address = 2a00:1:1:200:5da2:f920:84c4:88cc, Preferred-Lifetime = 7200, Valid-Lifetime = 7500 } } }
 
 encode-proto -
 match 03 2b 0e 45 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 47 f0 00 11 22 33 44 55 00 06 00 04 00 17 00 18 00 08 00 02 00 00 00 04 00 20 02 03 04 05 00 05 00 18 2a 00 00 01 00 01 02 00 5d a2 f9 20 84 c4 88 cc 00 00 1c 20 00 00 1d 4c
@@ -176,7 +176,7 @@ match 03 2b 0e 45 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00
 #       |  lladdr    = 00:11:22:33:44:55
 #
 decode-proto 07 2b 0e 45 00 04 00 20 02 03 04 05 00 05 00 18 2a 00 00 01 00 01 02 00 5d a2 f9 20 84 c4 88 cc 00 00 11 94 00 00 1c 20 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 47 f0 00 11 22 33 44 55
-match Packet-Type = Reply, Transaction-ID = 0x2b0e45, IA-TA.IAID = 33752069, IA-TA.Options = { IA-Addr.IPv6-Address = 2a00:1:1:200:5da2:f920:84c4:88cc, IA-Addr.Preferred-Lifetime = 4500, IA-Addr.Valid-Lifetime = 7200 }, Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Nov 26 2012 15:32:00 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:11:22:33:44:55
+match Packet-Type = Reply, Transaction-ID = 0x2b0e45, IA-TA = { IAID = 33752069, Options = { IA-Addr = { IPv6-Address = 2a00:1:1:200:5da2:f920:84c4:88cc, Preferred-Lifetime = 4500, Valid-Lifetime = 7200 } } }, Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Nov 26 2012 15:32:00 UTC", Hardware-Type.Ethernet = { Address = 00:11:22:33:44:55 } } }
 
 encode-proto -
 match 07 2b 0e 45 00 04 00 20 02 03 04 05 00 05 00 18 2a 00 00 01 00 01 02 00 5d a2 f9 20 84 c4 88 cc 00 00 11 94 00 00 1c 20 00 01 00 0a 00 03 00 01 00 01 02 03 04 05 00 02 00 0e 00 01 00 01 18 46 47 f0 00 11 22 33 44 55
index 12beec41de40eb05cfb39d4c86c6a8896d9fcc8d..87950bb7a4791fc64b30355c3ca995701cc22e0e 100644 (file)
@@ -43,7 +43,7 @@ fuzzer-out dhcpv6
 #      data      = '\x00\x01\x00\x10*\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x10\xff\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x03\x00\x11\x03ntp\x07example\x03com\x00'
 #
 decode-proto 07 f6 9b 57 00 01 00 0e 00 01 00 01 18 f0 0b 3f 00 0c 29 38 f3 68 00 02 00 0e 00 01 00 01 18 ef 95 1b 00 0c 29 9b a1 53 00 38 00 3d 00 01 00 10 2a 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 10 ff 05 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 03 00 11 03 6e 74 70 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00
-match Packet-Type = Reply, Transaction-ID = 0xf69b57, Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Apr  4 2013 09:58:23 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:0c:29:38:f3:68, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Apr  4 2013 01:34:19 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:0c:29:9b:a1:53, NTP-Server.Address = 2a01::1, NTP-Server.Multicast-Address = ff05::101, NTP-Server.FQDN = "ntp.example.com"
+match Packet-Type = Reply, Transaction-ID = 0xf69b57, Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Apr  4 2013 09:58:23 UTC", Hardware-Type.Ethernet = { Address = 00:0c:29:38:f3:68 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Apr  4 2013 01:34:19 UTC", Hardware-Type.Ethernet = { Address = 00:0c:29:9b:a1:53 } } }, NTP-Server.Address = 2a01::1, NTP-Server.Multicast-Address = ff05::101, NTP-Server.FQDN = "ntp.example.com"
 
 encode-proto -
 match 07 f6 9b 57 00 01 00 0e 00 01 00 01 18 f0 0b 3f 00 0c 29 38 f3 68 00 02 00 0e 00 01 00 01 18 ef 95 1b 00 0c 29 9b a1 53 00 38 00 3d 00 01 00 10 2a 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 10 ff 05 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 03 00 11 03 6e 74 70 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00
index 0869e786c38899f47bfa62c54f72783de96763cb..77c35c85810eef24b335f87fc5562a4599ed5b72 100644 (file)
@@ -43,7 +43,7 @@ fuzzer-out dhcpv6
 #      sipdomains= ['sip1.my-domain.net.', 'sip2.example.com.', 'sip3.sub.my-domain.org.']
 #
 decode-proto 07 68 90 d8 00 01 00 0e 00 01 00 01 18 f0 0b 3f 00 0c 29 38 f3 68 00 02 00 0e 00 01 00 01 18 ef 95 1b 00 0c 29 9b a1 53 00 15 00 3e 04 73 69 70 31 09 6d 79 2d 64 6f 6d 61 69 6e 03 6e 65 74 00 04 73 69 70 32 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 04 73 69 70 33 03 73 75 62 09 6d 79 2d 64 6f 6d 61 69 6e 03 6f 72 67 00
-match Packet-Type = Reply, Transaction-ID = 0x6890d8, Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Apr  4 2013 09:58:23 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:0c:29:38:f3:68, Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Apr  4 2013 01:34:19 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:0c:29:9b:a1:53, SIP-Server-Domain-Name-List = "sip1.my-domain.net", SIP-Server-Domain-Name-List = "sip2.example.com", SIP-Server-Domain-Name-List = "sip3.sub.my-domain.org"
+match Packet-Type = Reply, Transaction-ID = 0x6890d8, Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Apr  4 2013 09:58:23 UTC", Hardware-Type.Ethernet = { Address = 00:0c:29:38:f3:68 } } }, Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Apr  4 2013 01:34:19 UTC", Hardware-Type.Ethernet = { Address = 00:0c:29:9b:a1:53 } } }, SIP-Server-Domain-Name-List = "sip1.my-domain.net", SIP-Server-Domain-Name-List = "sip2.example.com", SIP-Server-Domain-Name-List = "sip3.sub.my-domain.org"
 
 encode-proto -
 match 07 68 90 d8 00 01 00 0e 00 01 00 01 18 f0 0b 3f 00 0c 29 38 f3 68 00 02 00 0e 00 01 00 01 18 ef 95 1b 00 0c 29 9b a1 53 00 15 00 3e 04 73 69 70 31 09 6d 79 2d 64 6f 6d 61 69 6e 03 6e 65 74 00 04 73 69 70 32 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 04 73 69 70 33 03 73 75 62 09 6d 79 2d 64 6f 6d 61 69 6e 03 6f 72 67 00
index a958b24b12a14bb7e99735c80dc61cda06506c53..e26575a9abeb82c124c3ccc57e03a9f9d1352761 100644 (file)
@@ -12,7 +12,7 @@ proto-dictionary dhcpv6
 fuzzer-out dhcpv6
 
 decode-proto 0c0126058600000680000000000000000000fe80000000000000025056fffea353fe000900c40c0000000000000000000000000000000000fe80000000000000025056fffea353fe0012001c4c41424f4c54322065746820312f312f30352f30312f32382f312f310009007e011141d70001000e0001000126b1b7f1005056a353fe0012001c4c41424f4c54322065746820312f312f30352f30312f32382f312f310006000200180008000200000003002856a353fe00000e1000001518000500182605860000064000000000000000000100001c2000002a300019000c56a353fe00000e1000001518002500120000197f0001000126b1b7f1005056a353fe0011002a0000197f0001000a4c41424f4c54322d6e610002000a4c41424f4c54322d7064000300013f0004000140
-match Packet-Type = Relay-Forward, Hop-Count = 1, Relay-Link-Address = 2605:8600:6:8000::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Relay-Message = { Packet-Type = Relay-Forward, Hop-Count = 0, Relay-Link-Address = ::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Relay-Message = { Packet-Type = Solicit, Transaction-ID = 0x1141d7, Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Jul 27 2020 16:06:09 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:50:56:a3:53:fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA.IAID = 1453544446, IA-NA.T1 = 3600, IA-NA.T2 = 5400, IA-NA.Options = { IA-Addr.IPv6-Address = 2605:8600:6:4000::1, IA-Addr.Preferred-Lifetime = 7200, IA-Addr.Valid-Lifetime = 10800 }, IA-PD.IAID = 1453544446, IA-PD.T1 = 3600, IA-PD.T2 = 5400 } }, Relay-Agent-Remote-ID.Vendor = 6527, Relay-Agent-Remote-ID.Value = 0x0001000126b1b7f1005056a353fe, Vendor-Opts.Nokia-SR.WAN-Pool = "LABOLT2-na", Vendor-Opts.Nokia-SR.PFX-Pool = "LABOLT2-pd", Vendor-Opts.Nokia-SR.PFX-Len = 63, Vendor-Opts.Nokia-SR.Reserved-NA-Len = 64
+match Packet-Type = Relay-Forward, Hop-Count = 1, Relay-Link-Address = 2605:8600:6:8000::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Relay-Message = { Packet-Type = Relay-Forward, Hop-Count = 0, Relay-Link-Address = ::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Relay-Message = { Packet-Type = Solicit, Transaction-ID = 0x1141d7, Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Jul 27 2020 16:06:09 UTC", Hardware-Type.Ethernet = { Address = 00:50:56:a3:53:fe } } }, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA = { IAID = 1453544446, T1 = 3600, T2 = 5400, Options = { IA-Addr = { IPv6-Address = 2605:8600:6:4000::1, Preferred-Lifetime = 7200, Valid-Lifetime = 10800 } } }, IA-PD = { IAID = 1453544446, T1 = 3600, T2 = 5400 } } }, Relay-Agent-Remote-ID = { Vendor = 6527, Value = 0x0001000126b1b7f1005056a353fe }, Vendor-Opts.Nokia-SR.WAN-Pool = "LABOLT2-na", Vendor-Opts.Nokia-SR.PFX-Pool = "LABOLT2-pd", Vendor-Opts.Nokia-SR.PFX-Len = 63, Vendor-Opts.Nokia-SR.Reserved-NA-Len = 64
 
 encode-proto -
 match 0c 01 26 05 86 00 00 06 80 00 00 00 00 00 00 00 00 00 fe 80 00 00 00 00 00 00 02 50 56 ff fe a3 53 fe 00 09 00 c4 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe 80 00 00 00 00 00 00 02 50 56 ff fe a3 53 fe 00 12 00 1c 4c 41 42 4f 4c 54 32 20 65 74 68 20 31 2f 31 2f 30 35 2f 30 31 2f 32 38 2f 31 2f 31 00 09 00 7e 01 11 41 d7 00 01 00 0e 00 01 00 01 26 b1 b7 f1 00 50 56 a3 53 fe 00 12 00 1c 4c 41 42 4f 4c 54 32 20 65 74 68 20 31 2f 31 2f 30 35 2f 30 31 2f 32 38 2f 31 2f 31 00 06 00 02 00 18 00 08 00 02 00 00 00 03 00 28 56 a3 53 fe 00 00 0e 10 00 00 15 18 00 05 00 18 26 05 86 00 00 06 40 00 00 00 00 00 00 00 00 01 00 00 1c 20 00 00 2a 30 00 19 00 0c 56 a3 53 fe 00 00 0e 10 00 00 15 18 00 25 00 12 00 00 19 7f 00 01 00 01 26 b1 b7 f1 00 50 56 a3 53 fe 00 11 00 12 00 00 19 7f 00 01 00 0a 4c 41 42 4f 4c 54 32 2d 6e 61 00 11 00 12 00 00 19 7f 00 02 00 0a 4c 41 42 4f 4c 54 32 2d 70 64 00 11 00 09 00 00 19 7f 00 03 00 01 3f 00 11 00 09 00 00 19 7f 00 04 00 01 40
@@ -21,7 +21,7 @@ match 0c 01 26 05 86 00 00 06 80 00 00 00 00 00 00 00 00 00 fe 80 00 00 00 00 00
 #  Yes, this is exactly the same massive text blob as above. :)
 #
 decode-proto -
-match Packet-Type = Relay-Forward, Hop-Count = 1, Relay-Link-Address = 2605:8600:6:8000::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Relay-Message = { Packet-Type = Relay-Forward, Hop-Count = 0, Relay-Link-Address = ::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Relay-Message = { Packet-Type = Solicit, Transaction-ID = 0x1141d7, Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Jul 27 2020 16:06:09 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:50:56:a3:53:fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA.IAID = 1453544446, IA-NA.T1 = 3600, IA-NA.T2 = 5400, IA-NA.Options = { IA-Addr.IPv6-Address = 2605:8600:6:4000::1, IA-Addr.Preferred-Lifetime = 7200, IA-Addr.Valid-Lifetime = 10800 }, IA-PD.IAID = 1453544446, IA-PD.T1 = 3600, IA-PD.T2 = 5400 } }, Relay-Agent-Remote-ID.Vendor = 6527, Relay-Agent-Remote-ID.Value = 0x0001000126b1b7f1005056a353fe, Vendor-Opts.Nokia-SR.WAN-Pool = "LABOLT2-na", Vendor-Opts.Nokia-SR.PFX-Pool = "LABOLT2-pd", Vendor-Opts.Nokia-SR.PFX-Len = 63, Vendor-Opts.Nokia-SR.Reserved-NA-Len = 64
+match Packet-Type = Relay-Forward, Hop-Count = 1, Relay-Link-Address = 2605:8600:6:8000::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Relay-Message = { Packet-Type = Relay-Forward, Hop-Count = 0, Relay-Link-Address = ::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Relay-Message = { Packet-Type = Solicit, Transaction-ID = 0x1141d7, Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Jul 27 2020 16:06:09 UTC", Hardware-Type.Ethernet = { Address = 00:50:56:a3:53:fe } } }, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Option-Request = Domain-List, Elapsed-Time = 0, IA-NA = { IAID = 1453544446, T1 = 3600, T2 = 5400, Options = { IA-Addr = { IPv6-Address = 2605:8600:6:4000::1, Preferred-Lifetime = 7200, Valid-Lifetime = 10800 } } }, IA-PD = { IAID = 1453544446, T1 = 3600, T2 = 5400 } } }, Relay-Agent-Remote-ID = { Vendor = 6527, Value = 0x0001000126b1b7f1005056a353fe }, Vendor-Opts.Nokia-SR.WAN-Pool = "LABOLT2-na", Vendor-Opts.Nokia-SR.PFX-Pool = "LABOLT2-pd", Vendor-Opts.Nokia-SR.PFX-Len = 63, Vendor-Opts.Nokia-SR.Reserved-NA-Len = 64
 
 count
 match 9
index 8eef590f75275579604607aedb1ed8643dc9a1bb..320fb867caae920c0a935482f923bd896ae4fe48 100644 (file)
@@ -15,7 +15,7 @@ encode-proto Packet-Type = Relay-Reply, Hop-Count = 1, Relay-Link-Address = 2605
 match 0d 01 26 05 86 00 00 06 80 00 00 00 00 00 00 00 00 00 fe 80 00 00 00 00 00 00 02 50 56 ff fe a3 53 fe 00 12 00 0d 6c 61 67 2d 37 3a 31 30 35 2e 31 32 38 00 09 00 5c 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe 80 00 00 00 00 00 00 02 50 56 ff fe a3 53 fe 00 12 00 1c 4c 41 42 4f 4c 54 32 20 65 74 68 20 31 2f 31 2f 30 35 2f 30 31 2f 32 38 2f 31 2f 31 00 09 00 16 02 95 08 06 00 01 00 0e 00 01 00 01 26 b1 b7 f1 00 50 56 a3 53 fe
 
 decode-proto -
-match Packet-Type = Relay-Reply, Hop-Count = 1, Relay-Link-Address = 2605:8600:6:8000::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x6c61672d373a3130352e313238, Relay-Message = { Packet-Type = Relay-Reply, Hop-Count = 0, Relay-Link-Address = ::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Relay-Message = { Packet-Type = Advertise, Transaction-ID = 0x950806, Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Jul 27 2020 16:06:09 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:50:56:a3:53:fe } }
+match Packet-Type = Relay-Reply, Hop-Count = 1, Relay-Link-Address = 2605:8600:6:8000::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x6c61672d373a3130352e313238, Relay-Message = { Packet-Type = Relay-Reply, Hop-Count = 0, Relay-Link-Address = ::, Relay-Peer-Address = fe80::250:56ff:fea3:53fe, Interface-ID = 0x4c41424f4c54322065746820312f312f30352f30312f32382f312f31, Relay-Message = { Packet-Type = Advertise, Transaction-ID = 0x950806, Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Jul 27 2020 16:06:09 UTC", Hardware-Type.Ethernet = { Address = 00:50:56:a3:53:fe } } } } }
 
 count
 match 7
index aee1f0c4f88c75c01a054cf7abc7eccae0bb69c2..123948376a59bf0ea30b7481c47cda914741b94a 100644 (file)
@@ -47,7 +47,7 @@ encode-pair Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = 1, Client-I
 match 00 01 00 0e 00 01 00 01 00 00 a8 c0 aa bb cc dd ee ff
 
 decode-pair -
-match Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Jan  1 2000 12:00:00 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = aa:bb:cc:dd:ee:ff
+match Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Jan  1 2000 12:00:00 UTC", Hardware-Type.Ethernet = { Address = aa:bb:cc:dd:ee:ff } } }
 
 #
 #  Server Identifier
@@ -58,7 +58,7 @@ encode-pair Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, S
 match 00 02 00 0e 00 01 00 01 00 00 a8 c0 c0 ff ee c0 ff ee
 
 decode-pair -
-match Server-ID.DUID = LLT, Server-ID.DUID.LLT.Hardware-Type = Ethernet, Server-ID.DUID.LLT.Time = "Jan  1 2000 12:00:00 UTC", Server-ID.DUID.LLT.Hardware-Type.Ethernet.Address = c0:ff:ee:c0:ff:ee
+match Server-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Jan  1 2000 12:00:00 UTC", Hardware-Type.Ethernet = { Address = c0:ff:ee:c0:ff:ee } } }
 
 #
 #  9.3. DUID Assigned by Vendor Based on Enterprise Number [DUID-EN]
@@ -85,7 +85,7 @@ encode-pair Client-ID.DUID = EN, Client-ID.DUID.EN.Enterprise-Number = 11344, Cl
 match 00 01 00 0c 00 02 00 00 2c 50 aa bb cc dd ee ff
 
 decode-pair -
-match Client-ID.DUID = EN, Client-ID.DUID.EN.Enterprise-Number = 11344, Client-ID.DUID.EN.Identifier = 0xaabbccddeeff
+match Client-ID = { DUID = EN, DUID.EN = { Enterprise-Number = 11344, Identifier = 0xaabbccddeeff } }
 
 #
 #  Server Identifier
@@ -96,7 +96,7 @@ encode-pair Server-ID.DUID = EN, Server-ID.DUID.EN.Enterprise-Number = 11344, Se
 match 00 02 00 0c 00 02 00 00 2c 50 c0 ff ee c0 ff ee
 
 decode-pair -
-match Server-ID.DUID = EN, Server-ID.DUID.EN.Enterprise-Number = 11344, Server-ID.DUID.EN.Identifier = 0xc0ffeec0ffee
+match Server-ID = { DUID = EN, DUID.EN = { Enterprise-Number = 11344, Identifier = 0xc0ffeec0ffee } }
 
 #
 #  9.4. DUID Based on Link-layer Address [DUID-LL]
@@ -121,7 +121,7 @@ encode-pair Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Cli
 match 00 01 00 0a 00 03 00 01 aa bb cc dd ee ff
 
 decode-pair -
-match  Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = aa:bb:cc:dd:ee:ff
+match Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = aa:bb:cc:dd:ee:ff } } }
 
 #
 #  Server Identifier
@@ -132,7 +132,7 @@ encode-pair Server-ID.DUID = LL, Server-ID.DUID.LL.Hardware-Type = Ethernet, Ser
 match 00 02 00 0a 00 03 00 01 d3 4d 00 c0 ff ee
 
 decode-pair -
-match Server-ID.DUID = LL, Server-ID.DUID.LL.Hardware-Type = Ethernet, Server-ID.DUID.LL.Hardware-Type.Ethernet.Address = d3:4d:00:c0:ff:ee
+match Server-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = d3:4d:00:c0:ff:ee } } }
 
 #
 #  And unknown hardware types: hardware type 255 is unassigned
@@ -143,7 +143,7 @@ match Server-ID.DUID = LL, Server-ID.DUID.LL.Hardware-Type = Ethernet, Server-ID
 #  this will likely be easier to do once we have real nested TLVs / groups
 #
 decode-pair 00 02 00 0a 00 03 00 ff d3 4d 00 c0 ff ee
-match Server-ID.DUID = LL, raw.Server-ID.DUID.LL = 0x00ffd34d00c0ffee
+match Server-ID = { DUID = LL, raw.DUID.LL = 0x00ffd34d00c0ffee }
 
 count
 match 29
index 14d647dd8cc88cd3bfc503ca0373ce16c9a0e619..3acf7b05d86544f86a35478aa44a0694de0d9b89 100644 (file)
@@ -13,13 +13,13 @@ encode-pair IA-PD.IAID = 0, IA-PD.T1 = 0, IA-PD.T2 = 0, IA-PD.Options = { Prefer
 match 00 19 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 01 01
 
 decode-pair -
-match IA-PD.IAID = 0, IA-PD.T1 = 0, IA-PD.T2 = 0, IA-PD.Options = { Preference = 1 }
+match IA-PD = { IAID = 0, T1 = 0, T2 = 0, Options = { Preference = 1 } }
 
 encode-pair IA-PD.IAID = 0, IA-PD.T1 = 0, IA-PD.T2 = 0, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 4500, IA-PD-Prefix.Valid-Lifetime = 7200, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }
 match 00 19 00 29 00 00 00 00 00 00 00 00 00 00 00 00 00 1a 00 19 00 00 11 94 00 00 1c 20 38 2a 00 00 01 00 01 01 00 00 00 00 00 00 00 00 00
 
 decode-pair -
-match IA-PD.IAID = 0, IA-PD.T1 = 0, IA-PD.T2 = 0, IA-PD.Options = { IA-PD-Prefix.Preferred-Lifetime = 4500, IA-PD-Prefix.Valid-Lifetime = 7200, IA-PD-Prefix.IPv6-Prefix = 2a00:1:1:100::/56 }
+match IA-PD = { IAID = 0, T1 = 0, T2 = 0, Options = { IA-PD-Prefix = { Preferred-Lifetime = 4500, Valid-Lifetime = 7200, IPv6-Prefix = 2a00:1:1:100::/56 } } }
 
 count
 match 11
index 60e7567574547f553507414b618a4095c4cfd4d6..1b80eab98e6c28d84427876152f78b2046d5319a 100644 (file)
@@ -44,14 +44,14 @@ encode-pair Client-FQDN.No-Server-Update = no, Client-FQDN.Server-Override = yes
 match 00 27 00 0b 03 09 74 61 70 69 6f 63 61 30 31
 
 decode-pair -
-match Client-FQDN.Reserved = 0, Client-FQDN.No-Server-Update = no, Client-FQDN.Server-Override = yes, Client-FQDN.Server-Update = yes, Client-FQDN.Domain-Name = "tapioca01"
+match Client-FQDN = { Reserved = 0, No-Server-Update = no, Server-Override = yes, Server-Update = yes, Domain-Name = "tapioca01" }
 
 # let's try another combination
 encode-pair Client-FQDN.No-Server-Update = yes, Client-FQDN.Server-Override = no, Client-FQDN.Server-Update = no, Client-FQDN.Domain-Name = "tapioca01"
 match 00 27 00 0b 04 09 74 61 70 69 6f 63 61 30 31
 
 decode-pair -
-match Client-FQDN.Reserved = 0, Client-FQDN.No-Server-Update = yes, Client-FQDN.Server-Override = no, Client-FQDN.Server-Update = no, Client-FQDN.Domain-Name = "tapioca01"
+match Client-FQDN = { Reserved = 0, No-Server-Update = yes, Server-Override = no, Server-Update = no, Domain-Name = "tapioca01" }
 
 count
 match 11
index ec226776337b656bf8ab51aab2815fabeec0488c..1b7e5b54befb0d29fdcbf4717e18e4431122478d 100644 (file)
@@ -16,8 +16,7 @@ encode-pair Geoconf-Civic = { What = Client-Location, Country-Code = "CA", Civic
 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 }
+match Geoconf-Civic = { What = Client-Location, Country-Code = "CA", Civic-Address-Elements = 0x01024f4e }
 
 count
 match 7
index 0913ce3744d9c00c0a404c4dfe1350dfb416313a..8e02a39a3ea56b743e866de41f9f710b9d54173a 100644 (file)
@@ -88,6 +88,6 @@ encode-pair GeoLocation.Latitude-Uncertainty = 1, GeoLocation.Latitude = 0x4235a
 match 00 3f 00 10 04 42 35 af a6 04 c2 97 64 f6 10 40 00 00 63 42
 
 decode-pair -
-match Geolocation.Latitude-Uncertainty = 1, Geolocation.Latitude = 1110814630, Geolocation.Longitude-Uncertainty = 1, Geolocation.Longitude = 3264701686, Geolocation.Altitude-Type = Meters, Geolocation.Altitude-Uncertainty = 1, Geolocation.Altitude = 99, Geolocation.Version = 1, Geolocation.Reserved = 0, Geolocation.Datum = NAD83-NAVD88
+match Geolocation = { Latitude-Uncertainty = 1, Latitude = 1110814630, Longitude-Uncertainty = 1, Longitude = 3264701686, Altitude-Type = Meters, Altitude-Uncertainty = 1, Altitude = 99, Version = 1, Reserved = 0, Datum = NAD83-NAVD88 }
 count
 match 7
index e56c08dc210f592350b1327bf3b640d9a887ee68..bbe0dcfdef49c339e01168de51d08f0358726508 100644 (file)
@@ -51,14 +51,14 @@ encode-pair Client-ID.DUID = UUID
 match 00 01 00 02 00 04
 
 decode-pair -
-match Client-ID.DUID = UUID
+match Client-ID = { DUID = UUID }
 
 #  Encode a 16-octet UUID
 encode-pair Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
 match 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 
 decode-pair -
-match Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
+match Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }
 
 #  UUID-Value field is 16 octets.  So we truncate if if it's too long, and pad it with zeros if it's too short.
 encode-pair Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f1112
@@ -66,7 +66,7 @@ match 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 
 #  But if we decode something that's too long, we ignore the extra data
 decode-pair -
-match Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
+match Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }
 
 #  Or we pad the UUID to 16 octets if it's too short
 encode-pair Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d
@@ -74,7 +74,7 @@ match 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 00 00
 
 #  And if we see something that's too short, we get a bad attribute.
 decode-pair 00 01 00 10 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
-match Client-ID.DUID = UUID, raw.Client-ID.DUID.UUID = 0x000102030405060708090a0b0c0d
+match Client-ID = { DUID = UUID, raw.DUID.UUID = 0x000102030405060708090a0b0c0d }
 
 #
 #  Server Identifier
@@ -85,14 +85,14 @@ encode-pair Server-ID.DUID = UUID
 match 00 02 00 02 00 04
 
 decode-pair -
-match Server-ID.DUID = UUID
+match Server-ID = { DUID = UUID }
 
 #  Encode a 16-octet UUID
 encode-pair Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
 match 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 
 decode-pair -
-match Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
+match Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }
 
 #  UUID-Value field is 16 octets.  So we truncate if if it's too long, and pad it with zeros if it's too short.
 encode-pair Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f1112
@@ -100,18 +100,18 @@ match 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 
 #  But if we decode something that's too long, we ignore the extra data
 decode-pair -
-match Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
+match Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }
 
 #  Or we pad the UUID to 16 octets if it's too short
 encode-pair Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d
 match 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 00 00
 
 decode-pair -
-match Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0000
+match Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0000 } }
 
 #  And if we see something that's too short, we get a bad attribute.
 decode-pair 00 02 00 10 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
-match Server-ID.DUID = UUID, raw.Server-ID.DUID.UUID = 0x000102030405060708090a0b0c0d
+match Server-ID = { DUID = UUID, raw.DUID.UUID = 0x000102030405060708090a0b0c0d }
 
 count
 match 37
index b8820bb30f78e7645b725cb8973e5ef1b58b21b4..fdbe9ddfb05e149370b1b01ee26c23a071768a86 100644 (file)
@@ -32,7 +32,7 @@ encode-pair RDNSS-Selection = { DNS-Recursive-Name-Server = ::1, Preference = Hi
 match 00 4a 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 03 6e 73 31 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00
 
 decode-pair -
-match RDNSS-Selection.DNS-Recursive-Name-Server = ::1, RDNSS-Selection.Preference = High, RDNSS-Selection.FQDN = "ns1.example.com"
+match RDNSS-Selection = { DNS-Recursive-Name-Server = ::1, Preference = High, FQDN = "ns1.example.com" }
 
 #
 #  RFC 8415 Section 10 says that DNS labels MUST NOT be stored in compressed form.
@@ -41,7 +41,7 @@ encode-pair RDNSS-Selection = { DNS-Recursive-Name-Server = ::1, Preference = Hi
 match 00 4a 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 03 6e 73 31 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 03 6e 73 32 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00
 
 decode-pair -
-match RDNSS-Selection.DNS-Recursive-Name-Server = ::1, RDNSS-Selection.Preference = High, RDNSS-Selection.FQDN = "ns1.example.com", RDNSS-Selection.FQDN = "ns2.example.com"
+match RDNSS-Selection = { DNS-Recursive-Name-Server = ::1, Preference = High, FQDN = "ns1.example.com", FQDN = "ns2.example.com" }
 
 count
 match 11
index 2cfee17f6f4b59610f2af8ec8c503c5b546d63a9..8ac1a871484ef5b024e8407c941b27938ef371a5 100644 (file)
@@ -43,14 +43,14 @@ encode-pair Client-Link-Layer.Type = Ethernet, Client-Link-Layer.Type.Ethernet.A
 match 00 4f 00 08 00 01 c0 ff ee c0 ff ee
 
 decode-pair 00 4f 00 08 00 01 c0 ff ee c0 ff ee
-match Client-Link-Layer.Type = Ethernet, Client-Link-Layer.Type.Ethernet.Address = c0:ff:ee:c0:ff:ee
+match Client-Link-Layer = { Type = Ethernet, Type.Ethernet = { Address = c0:ff:ee:c0:ff:ee } }
 
 # type: Lanstar
 encode-pair Client-Link-Layer.Type = Lanstar, Client-Link-Layer.Type.Lanstar.Address = 0xc0ffeec0ffee
 match 00 4f 00 08 00 09 c0 ff ee c0 ff ee
 
 decode-pair -
-match Client-Link-Layer.Type = Lanstar, Client-Link-Layer.Type.Lanstar.Address = 0xc0ffeec0ffee
+match Client-Link-Layer = { Type = Lanstar, Type.Lanstar = { Address = 0xc0ffeec0ffee } }
 
 count
 match 11
index 7b31fadd9daeefa8f0973e097c0fd390d1786bb4..b406a13c8aa1e663cc364cd0c3bd029ea21f8615 100644 (file)
@@ -98,7 +98,7 @@ encode-pair Address-Selection.Privacy-Reference = yes, Address-Selection.Table-R
 match 00 54 00 18 01 00 55 00 13 11 08 80 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 10
 
 decode-pair -
-match Address-Selection.Reserved = 0, Address-Selection.Automatic-Row-Addition = no, Address-Selection.Privacy-Reference = yes, Address-Selection.Table-Rows = { Address-Selection-Table.Label = 17, Address-Selection-Table.Precedence = 8, Address-Selection-Table.Prefix = ::ffff:0.0.0.16/128 }
+match Address-Selection = { Reserved = 0, Automatic-Row-Addition = no, Privacy-Reference = yes, Table-Rows = { Address-Selection-Table = { Label = 17, Precedence = 8, Prefix = ::ffff:0.0.0.16/128 } } }
 
 count
 match 7
index bf74a298e6f5e31cf1a874931d0266f919a5de4b..85dba0de86ec88d5a8e4558be4decb31cd1bbd9f 100644 (file)
@@ -45,7 +45,8 @@ match 00 61 00 18 00 62 00 14 10 80 04 01 01 02 03 04 00 00 00 00 00 00 00 00 00
 #  The same as the input, with an added IP4RD-Map-Rule.IPv6-Prefix = 0x00..
 #
 decode-pair -
-match IP4RD = { IP4RD-Map-Rule.IPv4-Prefix-Len = 16, IP4RD-Map-Rule.IPv6-Prefix-Len = 128, IP4RD-Map-Rule.EA-Len = 4, IP4RD-Map-Rule.WPK-Authorized = 1, IP4RD-Map-Rule.IPv4-Prefix = 0x01020304, IP4RD-Map-Rule.IPv6-Prefix = 0x000000000000000000000000 }
+match IP4RD = { IP4RD-Map-Rule = { IPv4-Prefix-Len = 16, IPv6-Prefix-Len = 128, EA-Len = 4, WPK-Authorized = 1, IPv4-Prefix = 0x01020304, IPv6-Prefix = 0x000000000000000000000000 } }
+
 #
 #  Multiple rules
 #
@@ -53,7 +54,7 @@ encode-pair IP4RD = { IP4RD-Map-Rule.IPv4-Prefix-Len = 16, IP4RD-Map-Rule.IPv6-P
 match 00 61 00 30 00 62 00 14 10 80 04 01 01 02 03 04 00 00 00 00 00 00 00 00 00 00 00 00 00 62 00 14 08 00 04 01 7f 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
 
 decode-pair -
-match IP4RD = { IP4RD-Map-Rule.IPv4-Prefix-Len = 16, IP4RD-Map-Rule.IPv6-Prefix-Len = 128, IP4RD-Map-Rule.EA-Len = 4, IP4RD-Map-Rule.WPK-Authorized = 1, IP4RD-Map-Rule.IPv4-Prefix = 0x01020304, IP4RD-Map-Rule.IPv6-Prefix = 0x000000000000000000000000, IP4RD-Map-Rule.IPv4-Prefix-Len = 8, IP4RD-Map-Rule.IPv6-Prefix-Len = 0, IP4RD-Map-Rule.EA-Len = 4, IP4RD-Map-Rule.WPK-Authorized = 1, IP4RD-Map-Rule.IPv4-Prefix = 0x7f000001, IP4RD-Map-Rule.IPv6-Prefix = 0x000000000000000000000000 }
+match IP4RD = { IP4RD-Map-Rule = { IPv4-Prefix-Len = 16, IPv6-Prefix-Len = 128, EA-Len = 4, WPK-Authorized = 1, IPv4-Prefix = 0x01020304, IPv6-Prefix = 0x000000000000000000000000 }, IP4RD-Map-Rule = { IPv4-Prefix-Len = 8, IPv6-Prefix-Len = 0, EA-Len = 4, WPK-Authorized = 1, IPv4-Prefix = 0x7f000001, IPv6-Prefix = 0x000000000000000000000000 } }
 
 #
 #   0                   1                   2                   3
@@ -82,7 +83,7 @@ encode-pair IP4RD-Non-Map-Rule.Traffic-Class-Provided = yes, IP4RD-Non-Map-Rule.
 match 00 63 00 02 81 1f
 
 decode-pair -
-match IP4RD-Non-Map-Rule.Traffic-Class-Provided = yes, IP4RD-Non-Map-Rule.Reserved = 0, IP4RD-Non-Map-Rule.Hub-And-Spoke = yes, IP4RD-Non-Map-Rule.Domain-PMTU = 31
+match IP4RD-Non-Map-Rule = { Traffic-Class-Provided = yes, Reserved = 0, Hub-And-Spoke = yes, Domain-PMTU = 31 }
 
 count
 match 15
index 8da38658a778c0b40dfc9e78b5d32ebda34aa09c..96fc064eacd3ed540df7b3c8ed19a387008808a7 100644 (file)
@@ -109,7 +109,7 @@ encode-pair Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060
 match 00 01 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 
 decode-pair -
-match Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
+match Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }
 
 #
 #  21.3. Server Identifier Option
@@ -141,7 +141,7 @@ encode-pair Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060
 match 00 02 00 12 00 04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
 
 decode-pair -
-match Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000102030405060708090a0b0c0d0e0f
+match Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000102030405060708090a0b0c0d0e0f } }
 
 #
 #  21.4. Identity Association for Non-temporary Addresses Option
@@ -197,7 +197,7 @@ encode-pair IA-NA.IAID = 180150000, IA-NA.T1 = 54093, IA-NA.T2 = 45887, IA-NA.Op
 match 00 03 00 12 0a bc de f0 00 00 d3 4d 00 00 b3 3f 00 06 00 02 00 ad
 
 decode-pair -
-match IA-NA.IAID = 180150000, IA-NA.T1 = 54093, IA-NA.T2 = 45887, IA-NA.Options = { Option-Request = 173 }
+match IA-NA = { IAID = 180150000, T1 = 54093, T2 = 45887, Options = { Option-Request = 173 } }
 
 #
 #  21.5. Identity Association for Temporary Addresses Option
@@ -236,7 +236,7 @@ encode-pair IA-TA.IAID = 3237998080, IA-TA.Options = { Option-Request = 173 }
 match 00 04 00 0a c0 ff ee 00 00 06 00 02 00 ad
 
 decode-pair -
-match IA-TA.IAID = 3237998080, IA-TA.Options = { Option-Request = 173 }
+match IA-TA = { IAID = 3237998080, Options = { Option-Request = 173 } }
 
 #
 #  21.6.  IA Address Option
@@ -296,12 +296,12 @@ match 00 05 00 1e fd 85 d2 bb 09 2c 00 00 74 ae 28 71 f5 6c 8d 94 00 00 00 78 00
 
 #
 # inet_pton() on Linux represents fields consisting of only zeros
-# as a single 0. macOS ommits the value entirely.
+# as a single 0. macOS omits the value entirely.
 #
 # We use a regex match to deal with the inconsistency.
 #
 decode-pair -
-match-regex IA-Addr.IPv6-Address = fd85:d2bb:92c:0{0,4}:74ae:2871:f56c:8d94, IA-Addr.Preferred-Lifetime = 120, IA-Addr.Valid-Lifetime = 86400, IA-Addr.Options = \{ Option-Request = 173 \}
+match-regex IA-Addr = \{ IPv6-Address = fd85:d2bb:92c:0{0,4}:74ae:2871:f56c:8d94, Preferred-Lifetime = 120, Valid-Lifetime = 86400, Options = \{ Option-Request = 173 \} \}
 
 #
 #  21.7.  Option Request Option
@@ -456,7 +456,7 @@ encode-pair Auth.Protocol = Reconfigure-Key, Auth.Algorithm = HMAC-MD5, Auth.Rep
 match 00 0b 00 1a 03 01 00 00 00 00 00 49 96 02 d2 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
 
 decode-pair -
-match Auth.Protocol = Reconfigure-Key, Auth.Algorithm = HMAC-MD5, Auth.Replay-Detection-Method = Monotonicly-Increasing-Value, Auth.Replay-Detection = 1234567890, Auth.Information = 0x010203040506070809101112131415
+match Auth = { Protocol = Reconfigure-Key, Algorithm = HMAC-MD5, Replay-Detection-Method = Monotonicly-Increasing-Value, Replay-Detection = 1234567890, Information = 0x010203040506070809101112131415 }
 
 #
 #  21.12.  Server Unicast Option
@@ -530,7 +530,7 @@ encode-pair Status-Code.Value = NoPrefixAvail, Status-Code.Message = "Tapioca co
 match 00 0d 00 14 00 06 54 61 70 69 6f 63 61 20 63 6f 6d 20 71 75 65 69 6a 6f
 
 decode-pair -
-match Status-Code.Value = NoPrefixAvail, Status-Code.Message = "Tapioca com queijo"
+match Status-Code = { Value = NoPrefixAvail, Message = "Tapioca com queijo" }
 
 #
 #  21.14.  Rapid Commit Option
@@ -632,7 +632,7 @@ encode-pair Vendor-Class.PEN = 11344, Vendor-Class.Data = 0xb33f
 match 00 10 00 08 00 00 2c 50 00 02 b3 3f
 
 decode-pair -
-match Vendor-Class.PEN = 11344, Vendor-Class.Data = 0xb33f
+match Vendor-Class = { PEN = 11344, Data = 0xb33f }
 
 #
 #  21.17.  Vendor-specific Information Option
@@ -836,7 +836,7 @@ encode-pair IA-PD.IAID = 2864434397, IA-PD.T1 = 54093, IA-PD.T2 = 45887, IA-PD.O
 match 00 19 00 11 aa bb cc dd 00 00 d3 4d 00 00 b3 3f 00 07 00 01 01
 
 decode-pair -
-match IA-PD.IAID = 2864434397, IA-PD.T1 = 54093, IA-PD.T2 = 45887, IA-PD.Options = { Preference = 1 }
+match IA-PD = { IAID = 2864434397, T1 = 54093, T2 = 45887, Options = { Preference = 1 } }
 
 #
 #  21.22.  IA Prefix Option
@@ -897,7 +897,7 @@ encode-pair IA-PD-Prefix.Preferred-Lifetime = 29425646, IA-PD-Prefix.Valid-Lifet
 match 00 1a 00 19 01 c0 ff ee 02 c0 ff ee 80 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 19 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 01 01
 
 decode-pair -
-match IA-PD-Prefix.Preferred-Lifetime = 29425646, IA-PD-Prefix.Valid-Lifetime = 46202862, IA-PD-Prefix.IPv6-Prefix = ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128, IA-PD.IAID = 0, IA-PD.T1 = 0, IA-PD.T2 = 0, IA-PD.Options = { Preference = 1 }
+match IA-PD-Prefix = { Preferred-Lifetime = 29425646, Valid-Lifetime = 46202862, IPv6-Prefix = ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128 }, IA-PD = { IAID = 0, T1 = 0, T2 = 0, Options = { Preference = 1 } }
 
 #
 #  21.23.  Information Refresh Time Option
index adbe62cf3f70bb2ede6db00664ae0214cac089c5..ef278833156de9aa6f81a2c6a79c5286e677a022 100644 (file)
@@ -16,13 +16,14 @@ encode-pair Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000100012750f52
 match 00 01 00 12 00 04 00 01 00 01 27 50 f5 27 02 42 0a 00 00 09 00 00
 
 decode-pair -
-match Client-ID.DUID = UUID, Client-ID.DUID.UUID.Value = 0x000100012750f52702420a0000090000
+match Client-ID = { DUID = UUID, DUID.UUID = { Value = 0x000100012750f52702420a0000090000 } }
+
 
 encode-pair Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000100012750f52702420a0000090000
 match 00 02 00 12 00 04 00 01 00 01 27 50 f5 27 02 42 0a 00 00 09 00 00
 
 decode-pair -
-match Server-ID.DUID = UUID, Server-ID.DUID.UUID.Value = 0x000100012750f52702420a0000090000
+match Server-ID = { DUID = UUID, DUID.UUID = { Value = 0x000100012750f52702420a0000090000 } }
 
 #
 #  We SHOULD be adding a sub-struct with Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address,
@@ -35,7 +36,7 @@ encode-pair Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, C
 match 00 01 00 0e 00 01 00 01 00 00 00 02 00 01 02 03 04 05
 
 decode-pair -
-match Client-ID.DUID = LLT, Client-ID.DUID.LLT.Hardware-Type = Ethernet, Client-ID.DUID.LLT.Time = "Jan  1 2000 00:00:02 UTC", Client-ID.DUID.LLT.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05
+match Client-ID = { DUID = LLT, DUID.LLT = { Hardware-Type = Ethernet, Time = "Jan  1 2000 00:00:02 UTC", Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }
 
 #
 #  sub-struct LL is LLT, but without the T
@@ -46,7 +47,7 @@ encode-pair Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Cli
 match 00 01 00 0a 00 03 00 01 00 01 02 03 04 05
 
 decode-pair -
-match Client-ID.DUID = LL, Client-ID.DUID.LL.Hardware-Type = Ethernet, Client-ID.DUID.LL.Hardware-Type.Ethernet.Address = 00:01:02:03:04:05
+match Client-ID = { DUID = LL, DUID.LL = { Hardware-Type = Ethernet, Hardware-Type.Ethernet = { Address = 00:01:02:03:04:05 } } }
 
 count
 match 21