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");
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;
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;
/*
# 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.
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.
#
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
# \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
# 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
# | 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
# 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
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)
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)
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)
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)
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)
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
# 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
# \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.
# | 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.
# | 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.
# | 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
# \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
# | 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
# | 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
# | 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
# \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
# | 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
# | 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
# | 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
# 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
# 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
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
# 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
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
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
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]
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
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]
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
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
# 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
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
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
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
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
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
# 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
# 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
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
# 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
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.
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
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
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
# 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
#
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
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
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
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
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
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
#
# 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
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
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
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
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
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
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,
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
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