sys/freebsd: add support for various network protocols
Add support for Ethernet, IPv4, ICMP, IPv6, ICMP6, TCP, and UDP.
This work is based on the corresponding Linux support.
diff --git a/executor/defs.h b/executor/defs.h
index 4262de6..f183b71 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -20,7 +20,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "4b5db889742657ae7fe970feaa45dbf6b13e405b"
+#define SYZ_REVISION "e540c106993372e0b27ed5e2d9ec82c4eed76447"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
diff --git a/sys/freebsd/gen/amd64.go b/sys/freebsd/gen/amd64.go
index 6322b34..2fc0563 100644
--- a/sys/freebsd/gen/amd64.go
+++ b/sys/freebsd/gen/amd64.go
@@ -50,6 +50,32 @@
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "af_name", TypeSize: 16, ArgDir: 1}, Kind: 2, SubKind: "accept_filter_names", Values: []string{"accf_data\x00\x00\x00\x00\x00\x00\x00", "accf_dns\x00\x00\x00\x00\x00\x00\x00\x00", "accf_http\x00\x00\x00\x00\x00\x00\x00"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "af_arg", TypeSize: 240, ArgDir: 1}, Kind: 1, RangeBegin: 240, RangeEnd: 240},
}}},
+ {Key: StructKey{Name: "arp_ether_ipv4_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "arp_ether_ipv4_packet", TypeSize: 28}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ar_hrd", TypeSize: 2}, ArgFormat: 1}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ar_pro", TypeSize: 2}, ArgFormat: 1}, Val: 2048},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ar_hln", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ar_pln", TypeSize: 1}}, Val: 4},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "arp_ops", FldName: "ar_op", TypeSize: 2}, ArgFormat: 1}, Vals: []uint64{1, 2, 3, 4, 8, 9}},
+ &UnionType{Key: StructKey{Name: "mac_addr"}, FldName: "ar_sha"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "ar_spa"},
+ &UnionType{Key: StructKey{Name: "mac_addr"}, FldName: "ar_tha"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "ar_tpa"},
+ }}},
+ {Key: StructKey{Name: "arp_generic_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "arp_generic_packet", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "arp_hrds", FldName: "ar_hrd", TypeSize: 2}, ArgFormat: 1}, Vals: []uint64{1, 6, 15, 24, 32}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ether_types", FldName: "ar_pro", TypeSize: 2}, ArgFormat: 1}, Vals: []uint64{4, 512, 512, 1280, 1536, 1537, 1632, 1633, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2304, 2560, 2561, 2989, 2990, 2991, 4660, 5632, 6537, 6549, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 16962, 16972, 17185, 19522, 21000, 24576, 24577, 24578, 24579, 24580, 24581, 24582, 24583, 24584, 24585, 25944, 25945, 28672, 28673, 28674, 28675, 28677, 28679, 28681, 28720, 28721, 28724, 32771, 32772, 32773, 32774, 32776, 32784, 32787, 32788, 32789, 32790, 32793, 32814, 32815, 32821, 32822, 32823, 32824, 32825, 32826, 32827, 32828, 32829, 32830, 32831, 32832, 32833, 32836, 32840, 32841, 32859, 32860, 32861, 32864, 32866, 32871, 32872, 32873, 32874, 32876, 32877, 32890, 32891, 32892, 32896, 32923, 32927, 32966, 32967, 32981, 32989, 33010, 33011, 33015, 33024, 33026, 33027, 33067, 33072, 33072, 33073, 33079, 33080, 33087, 33093, 33094, 33095, 33096, 33097, 33098, 33100, 33103, 33104, 33149, 33150, 33152, 33153, 33165, 33169, 33680, 34091, 34178, 34523, 34525, 34526, 34527, 34617, 34618, 34667, 34668, 34669, 34824, 34825, 34827, 34848, 34850, 34887, 34888, 34902, 34915, 34916, 34952, 34958, 34984, 36864, 36865, 36866, 36867, 43690, 64245, 65280}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ar_hln", TypeSize: 1}}, Val: 6},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "ar_pln", TypeSize: 1}}, Buf: "ar_spa"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "arp_ops", FldName: "ar_op", TypeSize: 2}, ArgFormat: 1}, Vals: []uint64{1, 2, 3, 4, 8, 9}},
+ &UnionType{Key: StructKey{Name: "mac_addr"}, FldName: "ar_sha"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "ar_spa", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ &UnionType{Key: StructKey{Name: "mac_addr"}, FldName: "ar_tha"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "ar_tpa", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "arp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "arp_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "arp_generic_packet"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "arp_ether_ipv4_packet"}, FldName: "ether_ipv4"},
+ }}},
{Key: StructKey{Name: "cmsghdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "cmsghdr", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "cmsg_len", TypeSize: 8}}, Buf: "parent"},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "cmsg_levels", FldName: "cmsg_level", TypeSize: 4}}, Vals: []uint64{65535, 0, 41, 1, 58, 132, 6, 17, 136}},
@@ -127,6 +153,37 @@
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "fds", IsVarlen: true}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", TypeSize: 4}}},
}, AlignAttr: 8}},
+ {Key: StructKey{Name: "eth2_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "eth2_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "eth2_packet_generic"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "eth2_packet_t[ETHERTYPE_ARP, arp_packet]"}, FldName: "arp"},
+ &StructType{Key: StructKey{Name: "eth2_packet_t[ETHERTYPE_IP, ipv4_packet]"}, FldName: "ipv4"},
+ &StructType{Key: StructKey{Name: "eth2_packet_t[ETHERTYPE_IPV6, ipv6_packet]"}, FldName: "ipv6"},
+ }}},
+ {Key: StructKey{Name: "eth2_packet_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "eth2_packet_generic", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ether_types", FldName: "etype", TypeSize: 2}, ArgFormat: 1}, Vals: []uint64{4, 512, 512, 1280, 1536, 1537, 1632, 1633, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2304, 2560, 2561, 2989, 2990, 2991, 4660, 5632, 6537, 6549, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 16962, 16972, 17185, 19522, 21000, 24576, 24577, 24578, 24579, 24580, 24581, 24582, 24583, 24584, 24585, 25944, 25945, 28672, 28673, 28674, 28675, 28677, 28679, 28681, 28720, 28721, 28724, 32771, 32772, 32773, 32774, 32776, 32784, 32787, 32788, 32789, 32790, 32793, 32814, 32815, 32821, 32822, 32823, 32824, 32825, 32826, 32827, 32828, 32829, 32830, 32831, 32832, 32833, 32836, 32840, 32841, 32859, 32860, 32861, 32864, 32866, 32871, 32872, 32873, 32874, 32876, 32877, 32890, 32891, 32892, 32896, 32923, 32927, 32966, 32967, 32981, 32989, 33010, 33011, 33015, 33024, 33026, 33027, 33067, 33072, 33072, 33073, 33079, 33080, 33087, 33093, 33094, 33095, 33096, 33097, 33098, 33100, 33103, 33104, 33149, 33150, 33152, 33153, 33165, 33169, 33680, 34091, 34178, 34523, 34525, 34526, 34527, 34617, 34618, 34667, 34668, 34669, 34824, 34825, 34827, 34848, 34850, 34887, 34888, 34902, 34915, 34916, 34952, 34958, 34984, 36864, 36865, 36866, 36867, 43690, 64245, 65280}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "eth2_packet_t[ETHERTYPE_ARP, arp_packet]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "eth2_packet_t[ETHERTYPE_ARP, arp_packet]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "etype", TypeSize: 2}, ArgFormat: 1}, Val: 2054},
+ &UnionType{Key: StructKey{Name: "arp_packet"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "eth2_packet_t[ETHERTYPE_IP, ipv4_packet]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "eth2_packet_t[ETHERTYPE_IP, ipv4_packet]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "etype", TypeSize: 2}, ArgFormat: 1}, Val: 2048},
+ &StructType{Key: StructKey{Name: "ipv4_packet"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "eth2_packet_t[ETHERTYPE_IPV6, ipv6_packet]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "eth2_packet_t[ETHERTYPE_IPV6, ipv6_packet]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "etype", TypeSize: 2}, ArgFormat: 1}, Val: 34525},
+ &StructType{Key: StructKey{Name: "ipv6_packet"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "eth_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "eth_packet", IsVarlen: true}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "mac_addr"}, FldName: "dst_mac"},
+ &UnionType{Key: StructKey{Name: "mac_addr"}, FldName: "src_mac"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "vtag", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "vlan_tag"}}, Kind: 1, RangeEnd: 1},
+ &StructType{Key: StructKey{Name: "eth_payload"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "eth_payload"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "eth_payload", IsVarlen: true}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "eth2_packet"}, FldName: "eth2"},
+ }}},
{Key: StructKey{Name: "fd_set", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fd_set", TypeSize: 64, ArgDir: 2}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask0", TypeSize: 8, ArgDir: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mask1", TypeSize: 8, ArgDir: 2}}},
@@ -191,6 +248,289 @@
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_group"},
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_source"},
}}},
+ {Key: StructKey{Name: "icmp_dest_unreach_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_dest_unreach_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 3},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmp_dest_unreach_codes", FldName: "code", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "length", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "mtu", TypeSize: 2}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "icmp_ipv4_header"}, FldName: "iph"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "icmp_echo_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_echo_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 8},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmp_echo_reply_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_echo_reply_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}, Kind: 2, RangeBegin: 100, RangeEnd: 104},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmp_generic_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_generic_packet", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmp_types", FldName: "type", TypeSize: 1}}, Vals: []uint64{0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 30, 31, 32, 33, 34, 35, 36, 39, 40}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmp_info_reply_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_info_reply_packet", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 16},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "icmp_info_request_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_info_request_packet", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 15},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "icmp_ipv4_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_ipv4_header", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "ihl", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, BitSize: 32, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "ecn", TypeSize: 1}, BitfieldLen: 2, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "dscp", TypeSize: 1}, BitfieldOff: 2, BitfieldLen: 6}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "total_len", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}, Kind: 2, RangeBegin: 100, RangeEnd: 104},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "frag_off", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "ttl", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv4_types", FldName: "protocol", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "csum", TypeSize: 2}, ArgFormat: 1}},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "src_ip"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "dst_ip"},
+ &StructType{Key: StructKey{Name: "ipv4_options"}, FldName: "options"},
+ }}},
+ {Key: StructKey{Name: "icmp_mask_reply_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_mask_reply_packet", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "mask", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "icmp_mask_request_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_mask_request_packet", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 17},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "mask", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "icmp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "icmp_generic_packet"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "icmp_echo_reply_packet"}, FldName: "echo_reply"},
+ &StructType{Key: StructKey{Name: "icmp_dest_unreach_packet"}, FldName: "dest_unreach"},
+ &StructType{Key: StructKey{Name: "icmp_source_quench_packet"}, FldName: "source_quench"},
+ &StructType{Key: StructKey{Name: "icmp_redirect_packet"}, FldName: "redirect"},
+ &StructType{Key: StructKey{Name: "icmp_echo_packet"}, FldName: "echo"},
+ &StructType{Key: StructKey{Name: "icmp_time_exceeded_packet"}, FldName: "time_exceeded"},
+ &StructType{Key: StructKey{Name: "icmp_parameter_prob_packet"}, FldName: "parameter_prob"},
+ &StructType{Key: StructKey{Name: "icmp_timestamp_packet"}, FldName: "timestamp"},
+ &StructType{Key: StructKey{Name: "icmp_timestamp_reply_packet"}, FldName: "timestamp_reply"},
+ &StructType{Key: StructKey{Name: "icmp_info_request_packet"}, FldName: "info_request"},
+ &StructType{Key: StructKey{Name: "icmp_info_reply_packet"}, FldName: "info_reply"},
+ &StructType{Key: StructKey{Name: "icmp_mask_request_packet"}, FldName: "mask_request"},
+ &StructType{Key: StructKey{Name: "icmp_mask_reply_packet"}, FldName: "mask_reply"},
+ }}},
+ {Key: StructKey{Name: "icmp_parameter_prob_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_parameter_prob_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 12},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmp_parameter_prob_codes", FldName: "code", TypeSize: 1}}, Vals: []uint64{0, 1, 2}, BitMask: true},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "pointer", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "length", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused", TypeSize: 2}}},
+ &StructType{Key: StructKey{Name: "icmp_ipv4_header"}, FldName: "iph"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "icmp_redirect_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_redirect_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 5},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmp_redirect_codes", FldName: "code", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "ip"},
+ &StructType{Key: StructKey{Name: "icmp_ipv4_header"}, FldName: "iph"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "icmp_source_quench_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_source_quench_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused", TypeSize: 4}}},
+ &StructType{Key: StructKey{Name: "icmp_ipv4_header"}, FldName: "iph"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "icmp_time_exceeded_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_time_exceeded_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 11},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmp_time_exceeded_codes", FldName: "code", TypeSize: 1}}, Vals: []uint64{0, 1}, BitMask: true},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused1", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "length", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused2", TypeSize: 2}}},
+ &StructType{Key: StructKey{Name: "icmp_ipv4_header"}, FldName: "iph"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "icmp_timestamp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_timestamp_packet", TypeSize: 20}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "orig_ts", TypeSize: 4}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "recv_ts", TypeSize: 4}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "trans_ts", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "icmp_timestamp_reply_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_timestamp_reply_packet", TypeSize: 20}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 14},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "orig_ts", TypeSize: 4}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "recv_ts", TypeSize: 4}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "trans_ts", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_dest_unreach_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_dest_unreach_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmpv6_dest_unreach_codes", FldName: "code", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 2, 3, 4, 5, 6, 7}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "length", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 3}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 3, RangeEnd: 3},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
+ {Key: StructKey{Name: "icmpv6_echo_reply_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_echo_reply_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 129},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_echo_request_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_echo_request_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 128},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "seq_num", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ipv6_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ipv6_packet", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "priority", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 6},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "flow_label", TypeSize: 3}, Kind: 1, RangeBegin: 3, RangeEnd: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "length", TypeSize: 2}, ArgFormat: 1}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "hop_limit", TypeSize: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "src_ip"},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "dst_ip"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "ext_headers", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_ext_header"}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_mld_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_mld_packet", TypeSize: 24}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmpv6_mld_types", FldName: "type", TypeSize: 1}}, Vals: []uint64{130, 131, 132}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "mrd", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "unused", TypeSize: 2}}},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "addr"},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ndisc_neigh_advert_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ndisc_neigh_advert_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 136},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "neighbor_flags", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 3}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 3, RangeEnd: 3},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "target_addr"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "icmpv6_ndisc_option"}}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ndisc_neigh_solicit_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ndisc_neigh_solicit_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 135},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "target_addr"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "icmpv6_ndisc_option"}}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ndisc_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ndisc_option", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmpv6_ndisc_option_types", FldName: "option_type", TypeSize: 1}}, Vals: []uint64{1, 2, 3, 4, 5, 14, 24, 25, 31}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ndisc_redir_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ndisc_redir_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 137},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 4}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 4, RangeEnd: 4},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "target_addr"},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "dst_addr"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "icmpv6_ndisc_option"}}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ndisc_router_advert_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ndisc_router_advert_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 134},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "cur_hop_limit", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "router_flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "router_lifetime", TypeSize: 2}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "reachable_time", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "retrans_time", TypeSize: 4}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "icmpv6_ndisc_option"}}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ndisc_router_solicit_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ndisc_router_solicit_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 133},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 4}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 4, RangeEnd: 4},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "icmpv6_ndisc_option"}}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_ni_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ni_packet", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmpv6_ni_types", FldName: "type", TypeSize: 1}}, Vals: []uint64{139, 140}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "qtype", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "flags", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", FldName: "nonce", TypeSize: 8}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "icmpv6_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "icmpv6_dest_unreach_packet"}, FldName: "dest_unreach"},
+ &StructType{Key: StructKey{Name: "icmpv6_pkt_toobig_packet"}, FldName: "pkt_toobig"},
+ &StructType{Key: StructKey{Name: "icmpv6_time_exceed_packet"}, FldName: "time_exceed"},
+ &StructType{Key: StructKey{Name: "icmpv6_param_prob_packet"}, FldName: "param_prob"},
+ &StructType{Key: StructKey{Name: "icmpv6_echo_request_packet"}, FldName: "echo_request"},
+ &StructType{Key: StructKey{Name: "icmpv6_echo_reply_packet"}, FldName: "echo_reply"},
+ &StructType{Key: StructKey{Name: "icmpv6_mld_packet"}, FldName: "mld"},
+ &StructType{Key: StructKey{Name: "icmpv6_ni_packet"}, FldName: "ni"},
+ &StructType{Key: StructKey{Name: "icmpv6_ndisc_router_solicit_packet"}, FldName: "ndisc_rs"},
+ &StructType{Key: StructKey{Name: "icmpv6_ndisc_router_advert_packet"}, FldName: "ndisc_ra"},
+ &StructType{Key: StructKey{Name: "icmpv6_ndisc_neigh_advert_packet"}, FldName: "ndisc_na"},
+ &StructType{Key: StructKey{Name: "icmpv6_ndisc_neigh_solicit_packet"}, FldName: "ndisc_ns"},
+ &StructType{Key: StructKey{Name: "icmpv6_ndisc_redir_packet"}, FldName: "ndisc_redir"},
+ }}},
+ {Key: StructKey{Name: "icmpv6_param_prob_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_param_prob_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmpv6_param_prob_codes", FldName: "code", TypeSize: 1}}, Vals: []uint64{0, 1, 2}, BitMask: true},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "pointer", TypeSize: 4}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
+ {Key: StructKey{Name: "icmpv6_pkt_toobig_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_pkt_toobig_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "mtu", TypeSize: 4}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
+ {Key: StructKey{Name: "icmpv6_time_exceed_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_time_exceed_packet", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 3},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "icmpv6_time_exceed_codes", FldName: "code", TypeSize: 1}}, Vals: []uint64{0, 1}, BitMask: true},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "length", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 3}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 3, RangeEnd: 3},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
{Key: StructKey{Name: "in6_pktinfo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "in6_pktinfo", TypeSize: 20}, Fields: []Type{
&UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "ipi6_addr"},
&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "ipi6_ifindex", TypeSize: 4}},
@@ -317,23 +657,119 @@
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a2", TypeSize: 1, ArgDir: 2}}, ValuesPerProc: 1},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1, ArgDir: 2}}, Val: 187},
}}},
+ {Key: StructKey{Name: "ipv4_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_header", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "ihl", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, BitSize: 32, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "ecn", TypeSize: 1}, BitfieldLen: 2, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "dscp", TypeSize: 1}, BitfieldOff: 2, BitfieldLen: 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "total_len", TypeSize: 2}, ArgFormat: 1}, Buf: "ipv4_packet"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}, Kind: 2, RangeBegin: 100, RangeEnd: 104},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "frag_off", TypeSize: 2}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "ttl", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv4_types", FldName: "protocol", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "src_ip"},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "dst_ip"},
+ &StructType{Key: StructKey{Name: "ipv4_options"}, FldName: "options"},
+ }}},
+ {Key: StructKey{Name: "ipv4_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipv4_option_generic"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "ipv4_option_end"}, FldName: "end"},
+ &StructType{Key: StructKey{Name: "ipv4_option_noop"}, FldName: "noop"},
+ &StructType{Key: StructKey{Name: "ipv4_option_lsrr"}, FldName: "lsrr"},
+ &StructType{Key: StructKey{Name: "ipv4_option_ssrr"}, FldName: "ssrr"},
+ &StructType{Key: StructKey{Name: "ipv4_option_rr"}, FldName: "rr"},
+ &StructType{Key: StructKey{Name: "ipv4_option_timestamp"}, FldName: "timestamp"},
+ &StructType{Key: StructKey{Name: "ipv4_option_ra"}, FldName: "ra"},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_end"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_end", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_generic", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv4_option_types", FldName: "type", TypeSize: 1}}, Vals: []uint64{0, 1, 7, 68, 130, 131, 133, 134, 136, 137, 148}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_lsrr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_lsrr", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 131},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "pointer", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv4_addr"}}},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_noop"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_noop", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_ra"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_ra", TypeSize: 6}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 148},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "value", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_rr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_rr", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 7},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "pointer", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv4_addr"}}},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_ssrr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_ssrr", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 137},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "pointer", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv4_addr"}}},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_timestamp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_timestamp", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 68},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "pointer", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv4_option_timestamp_flags", FldName: "flg", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, Vals: []uint64{0, 1, 3}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "oflw", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "timestamps", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "ipv4_option_timestamp_timestamp"}}},
+ }}},
+ {Key: StructKey{Name: "ipv4_option_timestamp_timestamp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_timestamp_timestamp", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addr", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv4_addr"}}, Kind: 1, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "timestamp", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "ipv4_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_options", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv4_option"}}},
+ }, AlignAttr: 4}},
+ {Key: StructKey{Name: "ipv4_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipv4_header"}, FldName: "header"},
+ &UnionType{Key: StructKey{Name: "ipv4_payload"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "ipv4_payload"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "generic", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "tcp_packet"}, FldName: "tcp"},
+ &StructType{Key: StructKey{Name: "udp_packet"}, FldName: "udp"},
+ &UnionType{Key: StructKey{Name: "icmp_packet"}, FldName: "icmp"},
+ }}},
{Key: StructKey{Name: "ipv6_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr", TypeSize: 16}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "rand_addr", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
&StructType{Key: StructKey{Name: "ipv6_addr_empty"}, FldName: "empty"},
&StructType{Key: StructKey{Name: "ipv6_addr_local"}, FldName: "local"},
&StructType{Key: StructKey{Name: "ipv6_addr_remote"}, FldName: "remote"},
&StructType{Key: StructKey{Name: "ipv6_addr_loopback"}, FldName: "loopback"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_ipv4"}, FldName: "ipv4"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_multicast1"}, FldName: "mcast1"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_multicast2"}, FldName: "mcast2"},
}}},
{Key: StructKey{Name: "ipv6_addr", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "rand_addr", TypeSize: 16, ArgDir: 1}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
&StructType{Key: StructKey{Name: "ipv6_addr_empty", Dir: 1}, FldName: "empty"},
&StructType{Key: StructKey{Name: "ipv6_addr_local", Dir: 1}, FldName: "local"},
&StructType{Key: StructKey{Name: "ipv6_addr_remote", Dir: 1}, FldName: "remote"},
&StructType{Key: StructKey{Name: "ipv6_addr_loopback", Dir: 1}, FldName: "loopback"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_ipv4", Dir: 1}, FldName: "ipv4"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_multicast1", Dir: 1}, FldName: "mcast1"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_multicast2", Dir: 1}, FldName: "mcast2"},
}}},
{Key: StructKey{Name: "ipv6_addr", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr", TypeSize: 16, ArgDir: 2}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "rand_addr", TypeSize: 16, ArgDir: 2}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
&StructType{Key: StructKey{Name: "ipv6_addr_empty", Dir: 2}, FldName: "empty"},
&StructType{Key: StructKey{Name: "ipv6_addr_local", Dir: 2}, FldName: "local"},
&StructType{Key: StructKey{Name: "ipv6_addr_remote", Dir: 2}, FldName: "remote"},
&StructType{Key: StructKey{Name: "ipv6_addr_loopback", Dir: 2}, FldName: "loopback"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_ipv4", Dir: 2}, FldName: "ipv4"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_multicast1", Dir: 2}, FldName: "mcast1"},
+ &StructType{Key: StructKey{Name: "ipv6_addr_multicast2", Dir: 2}, FldName: "mcast2"},
}}},
{Key: StructKey{Name: "ipv6_addr_empty"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_empty", TypeSize: 16}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 16}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
@@ -344,6 +780,21 @@
{Key: StructKey{Name: "ipv6_addr_empty", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_empty", TypeSize: 16, ArgDir: 2}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 16, ArgDir: 2}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 2}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
}}},
+ {Key: StructKey{Name: "ipv6_addr_ipv4"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_ipv4", TypeSize: 16}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 10}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 10, RangeEnd: 10},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a1", TypeSize: 2}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 255}, Kind: 1, RangeBegin: 2, RangeEnd: 2},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "a3"},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_ipv4", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_ipv4", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 10, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}}, Kind: 1, RangeBegin: 10, RangeEnd: 10},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a1", TypeSize: 2, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}, Val: 255}, Kind: 1, RangeBegin: 2, RangeEnd: 2},
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 1}, FldName: "a3"},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_ipv4", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_ipv4", TypeSize: 16, ArgDir: 2}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 10, ArgDir: 2}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 2}}}, Kind: 1, RangeBegin: 10, RangeEnd: 10},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a1", TypeSize: 2, ArgDir: 2}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 2}}, Val: 255}, Kind: 1, RangeBegin: 2, RangeEnd: 2},
+ &UnionType{Key: StructKey{Name: "ipv4_addr", Dir: 2}, FldName: "a3"},
+ }}},
{Key: StructKey{Name: "ipv6_addr_local"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_local", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 254},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 128},
@@ -377,6 +828,42 @@
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 8, ArgDir: 2}, ArgFormat: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 8, ArgDir: 2}, ArgFormat: 1}, Val: 1},
}}},
+ {Key: StructKey{Name: "ipv6_addr_multicast1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_multicast1", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 255},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 13}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 13, RangeEnd: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_multicast1", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_multicast1", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 1}}, Val: 255},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 1}}, Val: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 13, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}}, Kind: 1, RangeBegin: 13, RangeEnd: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1, ArgDir: 1}}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_multicast1", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_multicast1", TypeSize: 16, ArgDir: 2}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 2}}, Val: 255},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 2}}, Val: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 13, ArgDir: 2}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 2}}}, Kind: 1, RangeBegin: 13, RangeEnd: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1, ArgDir: 2}}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_multicast2"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_multicast2", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 255},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 13}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 13, RangeEnd: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_multicast2", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_multicast2", TypeSize: 16, ArgDir: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 1}}, Val: 255},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 1}}, Val: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 13, ArgDir: 1}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 1}}}, Kind: 1, RangeBegin: 13, RangeEnd: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1, ArgDir: 1}}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "ipv6_addr_multicast2", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_multicast2", TypeSize: 16, ArgDir: 2}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1, ArgDir: 2}}, Val: 255},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1, ArgDir: 2}}, Val: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 13, ArgDir: 2}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1, ArgDir: 2}}}, Kind: 1, RangeBegin: 13, RangeEnd: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1, ArgDir: 2}}, Val: 1},
+ }}},
{Key: StructKey{Name: "ipv6_addr_remote"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_remote", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 254},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 128},
@@ -398,6 +885,100 @@
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a3", TypeSize: 1, ArgDir: 2}}, ValuesPerProc: 1},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a4", TypeSize: 1, ArgDir: 2}}, Val: 187},
}}},
+ {Key: StructKey{Name: "ipv6_dstopts_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_dstopts_ext_header", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
+ }, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_ext_header", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipv6_hopots_ext_header"}, FldName: "hopopts"},
+ &StructType{Key: StructKey{Name: "ipv6_rt_hdr"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_fragment_ext_header"}, FldName: "fragment"},
+ &StructType{Key: StructKey{Name: "ipv6_dstopts_ext_header"}, FldName: "dstopts"},
+ }}},
+ {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 8}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved1", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_hi", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "m_flag", TypeSize: 1}, BitfieldLen: 1, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved2", TypeSize: 1}, BitfieldOff: 1, BitfieldLen: 2, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_lo", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 5}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "identification", TypeSize: 4}}, Kind: 2, RangeBegin: 100, RangeEnd: 104},
+ }, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_hopots_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_hopots_ext_header", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
+ }, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_packet", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "priority", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 6},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "flow_label", TypeSize: 3}, Kind: 1, RangeBegin: 3, RangeEnd: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Buf: "payload"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "hop_limit", TypeSize: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "src_ip"},
+ &UnionType{Key: StructKey{Name: "ipv6_addr"}, FldName: "dst_ip"},
+ &StructType{Key: StructKey{Name: "ipv6_packet_payload"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "ipv6_packet_payload"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_packet_payload", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "ext_headers", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_ext_header"}}},
+ &UnionType{Key: StructKey{Name: "ipv6_payload"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "ipv6_payload"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "generic", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "tcp_packet"}, FldName: "tcp"},
+ &StructType{Key: StructKey{Name: "udp_packet"}, FldName: "udp"},
+ &UnionType{Key: StructKey{Name: "icmpv6_packet"}, FldName: "icmpv6"},
+ }}},
+ {Key: StructKey{Name: "ipv6_rt_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_rt_hdr", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 108, 108, 135, 136, 139, 140, 103, 112, 113, 137, 240}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "data"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_routing_types", FldName: "routing_type", TypeSize: 1}}, Vals: []uint64{0, 1, 0}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "segments_left", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
+ }, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_tlv_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_generic", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "data"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "ipv6_tlv_jumbo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_jumbo", TypeSize: 6}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 194},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "len", TypeSize: 1}}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "pkt_len", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "ipv6_tlv_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "ipv6_tlv_generic"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "ipv6_tlv_pad1"}, FldName: "pad1"},
+ &StructType{Key: StructKey{Name: "ipv6_tlv_padn"}, FldName: "padn"},
+ &StructType{Key: StructKey{Name: "ipv6_tlv_jumbo"}, FldName: "jumbo"},
+ &StructType{Key: StructKey{Name: "ipv6_tlv_tun_lim"}, FldName: "enc_lim"},
+ &StructType{Key: StructKey{Name: "ipv6_tlv_ra"}, FldName: "ra"},
+ }}},
+ {Key: StructKey{Name: "ipv6_tlv_pad1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_pad1", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "len", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad", TypeSize: 1}}},
+ }}},
+ {Key: StructKey{Name: "ipv6_tlv_padn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_padn", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 1},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 1}}, Buf: "pad"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", IsVarlen: true}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}},
+ }}},
+ {Key: StructKey{Name: "ipv6_tlv_ra"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_ra", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "len", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "ra", TypeSize: 2}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "ipv6_tlv_tun_lim"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_tun_lim", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "len", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "encap_limit", TypeSize: 1}}},
+ }}},
{Key: StructKey{Name: "itimerval"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "itimerval", TypeSize: 32}, Fields: []Type{
&StructType{Key: StructKey{Name: "timeval"}, FldName: "interv"},
&StructType{Key: StructKey{Name: "timeval"}, FldName: "value"},
@@ -414,6 +995,21 @@
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "onoff", TypeSize: 4, ArgDir: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "linger", TypeSize: 4, ArgDir: 1}}},
}}},
+ {Key: StructKey{Name: "mac_addr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mac_addr", TypeSize: 6}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "empty", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
+ &StructType{Key: StructKey{Name: "mac_addr_t[const[0xaa, int8]]"}, FldName: "local"},
+ &StructType{Key: StructKey{Name: "mac_addr_t[const[0xbb, int8]]"}, FldName: "remote"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "broadcast", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 255}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "random", TypeSize: 6}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "mac_addr_t[const[0xaa, int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mac_addr_t[const[0xaa, int8]]", TypeSize: 6}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 5}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 170}, Kind: 1, RangeBegin: 5, RangeEnd: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 170},
+ }}},
+ {Key: StructKey{Name: "mac_addr_t[const[0xbb, int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mac_addr_t[const[0xbb, int8]]", TypeSize: 6}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 5}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 170}, Kind: 1, RangeBegin: 5, RangeEnd: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 187},
+ }}},
{Key: StructKey{Name: "mf6cctl"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mf6cctl", TypeSize: 92}, Fields: []Type{
&StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "mf6cc_origin"},
&StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "mf6cc_mcastgrp"},
@@ -1037,18 +1633,100 @@
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "gen", TypeSize: 8, ArgDir: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "__spare", TypeSize: 80, ArgDir: 1}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}, Kind: 1, RangeBegin: 10, RangeEnd: 10},
}}},
+ {Key: StructKey{Name: "tcp_eol_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_eol_option", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ }}},
{Key: StructKey{Name: "tcp_fastopen"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_fastopen", TypeSize: 20}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "enable", TypeSize: 4}}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "psk", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
}}},
+ {Key: StructKey{Name: "tcp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_fastopen_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 34},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
{Key: StructKey{Name: "tcp_function_set"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_function_set", TypeSize: 36}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "function_set_name", TypeSize: 32}, Kind: 2, SubKind: "tcp_function_set_names", Values: []string{"freebsd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rack\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bbr\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pcbcnt", TypeSize: 4}}},
}}},
+ {Key: StructKey{Name: "tcp_generic_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_generic_option", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_option_types", FldName: "type", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 8, 19, 34}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "tcp_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_header", IsVarlen: true}, Fields: []Type{
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, ValuesStart: 20000, ValuesPerProc: 4},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, ValuesStart: 20000, ValuesPerProc: 4},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "tcp_seq_num", FldName: "seq_num", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "tcp_seq_num", FldName: "ack_num", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "ns", TypeSize: 1}, BitfieldLen: 1, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 1}, BitfieldOff: 1, BitfieldLen: 3, BitfieldMdl: true}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "data_off", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, BitSize: 32, Buf: "parent"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_flags", FldName: "flags", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 8, 16, 32, 64, 128}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "window_size", TypeSize: 2}, ArgFormat: 1}},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "tcp_packet", Protocol: 6},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "urg_ptr", TypeSize: 2}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "tcp_options"}, FldName: "options"},
+ }}},
+ {Key: StructKey{Name: "tcp_md5sig_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_md5sig_option", TypeSize: 18}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 19},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "md5", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "tcp_mss_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mss_option", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "seg_size", TypeSize: 2}}},
+ }}},
+ {Key: StructKey{Name: "tcp_nop_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_nop_option", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 1},
+ }}},
+ {Key: StructKey{Name: "tcp_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "tcp_generic_option"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "tcp_nop_option"}, FldName: "nop"},
+ &StructType{Key: StructKey{Name: "tcp_eol_option"}, FldName: "eol"},
+ &StructType{Key: StructKey{Name: "tcp_mss_option"}, FldName: "mss"},
+ &StructType{Key: StructKey{Name: "tcp_window_option"}, FldName: "window"},
+ &StructType{Key: StructKey{Name: "tcp_sack_perm_option"}, FldName: "sack_perm"},
+ &StructType{Key: StructKey{Name: "tcp_sack_option"}, FldName: "sack"},
+ &StructType{Key: StructKey{Name: "tcp_timestamp_option"}, FldName: "timestamp"},
+ &StructType{Key: StructKey{Name: "tcp_md5sig_option"}, FldName: "md5sig"},
+ &StructType{Key: StructKey{Name: "tcp_fastopen_option"}, FldName: "fastopen"},
+ }}},
+ {Key: StructKey{Name: "tcp_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_options", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "tcp_option"}}},
+ }, AlignAttr: 4}},
+ {Key: StructKey{Name: "tcp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "tcp_header"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "tcp_payload"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "tcp_payload"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}},
+ }}},
{Key: StructKey{Name: "tcp_resources", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_resources", TypeSize: 8, ArgDir: 1}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "tcp_seq_num", FldName: "seq", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "tcp_seq_num", FldName: "ack", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "tcp_sack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_sack_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 5},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", TypeSize: 4}, ArgFormat: 1}}},
+ }}},
+ {Key: StructKey{Name: "tcp_sack_perm_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_sack_perm_option", TypeSize: 2}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ }}},
+ {Key: StructKey{Name: "tcp_timestamp_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_timestamp_option", TypeSize: 10}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 8},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "tsval", TypeSize: 4}, ArgFormat: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "tsecr", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {Key: StructKey{Name: "tcp_window_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_window_option", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "shift", TypeSize: 1}}},
+ }}},
{Key: StructKey{Name: "timespec"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "timespec", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "nsec", TypeSize: 8}}},
@@ -1069,10 +1747,39 @@
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8, ArgDir: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "usec", TypeSize: 8, ArgDir: 2}}},
}}},
+ {Key: StructKey{Name: "udp_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_header", TypeSize: 8}, Fields: []Type{
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, ValuesStart: 20000, ValuesPerProc: 4},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, ValuesStart: 20000, ValuesPerProc: 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Buf: "parent"},
+ &CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, Kind: 1, Buf: "parent", Protocol: 17},
+ }}},
+ {Key: StructKey{Name: "udp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "udp_header"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "udp_payload"}, FldName: "payload"},
+ }}},
+ {Key: StructKey{Name: "udp_payload"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}},
+ }}},
{Key: StructKey{Name: "unix_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "unix_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd0", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "fd1", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "vlan_tag"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vlan_tag", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "tag_ad", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "vlan_tag_ad"}}, Kind: 1, RangeEnd: 1},
+ &StructType{Key: StructKey{Name: "vlan_tag_q"}, FldName: "tag_q"},
+ }}},
+ {Key: StructKey{Name: "vlan_tag_ad"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vlan_tag_ad", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "tpid", TypeSize: 2}, ArgFormat: 1}, Val: 34984},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "pcp", TypeSize: 2}, BitfieldLen: 3, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "dei", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "vid", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 12}, Kind: 2, RangeEnd: 4},
+ }}},
+ {Key: StructKey{Name: "vlan_tag_q"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vlan_tag_q", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "tpid", TypeSize: 2}, ArgFormat: 1}, Val: 33024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "pcp", TypeSize: 2}, BitfieldLen: 3, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "dei", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "vid", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 12}, Kind: 2, RangeEnd: 4},
+ }}},
}
var syscalls_amd64 = []*Syscall{
@@ -3932,7 +4639,7 @@
{NR: 36, Name: "sync", CallName: "sync"},
{Name: "syz_emit_ethernet", CallName: "syz_emit_ethernet", Args: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "packet"},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "packet", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "packet", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "eth_packet"}}},
}},
{Name: "syz_execute_func", CallName: "syz_execute_func", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "text", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text", IsVarlen: true}, Kind: 4}},
@@ -3994,6 +4701,17 @@
{Name: "AF_IPX", Value: 23},
{Name: "AF_UNIX", Value: 1},
{Name: "AF_UNSPEC"},
+ {Name: "ARPHRD_ETHER", Value: 1},
+ {Name: "ARPHRD_FRELAY", Value: 15},
+ {Name: "ARPHRD_IEEE1394", Value: 24},
+ {Name: "ARPHRD_IEEE802", Value: 6},
+ {Name: "ARPHRD_INFINIBAND", Value: 32},
+ {Name: "ARPOP_INVREPLY", Value: 9},
+ {Name: "ARPOP_INVREQUEST", Value: 8},
+ {Name: "ARPOP_REPLY", Value: 2},
+ {Name: "ARPOP_REQUEST", Value: 1},
+ {Name: "ARPOP_REVREPLY", Value: 4},
+ {Name: "ARPOP_REVREQUEST", Value: 3},
{Name: "AT_FDCWD", Value: 18446744073709551516},
{Name: "AT_REMOVEDIR", Value: 2048},
{Name: "AT_SYMLINK_FOLLOW", Value: 1024},
@@ -4060,6 +4778,184 @@
{Name: "DIOCXBEGIN", Value: 3222291537},
{Name: "DIOCXCOMMIT", Value: 3222291538},
{Name: "DIOCXROLLBACK", Value: 3222291539},
+ {Name: "ETHERTYPE_8023", Value: 4},
+ {Name: "ETHERTYPE_AARP", Value: 33011},
+ {Name: "ETHERTYPE_ACCTON", Value: 33680},
+ {Name: "ETHERTYPE_AEONIC", Value: 32822},
+ {Name: "ETHERTYPE_ALPHA", Value: 33098},
+ {Name: "ETHERTYPE_AMBER", Value: 24584},
+ {Name: "ETHERTYPE_AMOEBA", Value: 33093},
+ {Name: "ETHERTYPE_APOLLO", Value: 33015},
+ {Name: "ETHERTYPE_APOLLODOMAIN", Value: 32793},
+ {Name: "ETHERTYPE_APPLITEK", Value: 32967},
+ {Name: "ETHERTYPE_ARGONAUT", Value: 32826},
+ {Name: "ETHERTYPE_ARP", Value: 2054},
+ {Name: "ETHERTYPE_ATALK", Value: 32923},
+ {Name: "ETHERTYPE_ATOMIC", Value: 34527},
+ {Name: "ETHERTYPE_ATT", Value: 32873},
+ {Name: "ETHERTYPE_ATTSTANFORD", Value: 32776},
+ {Name: "ETHERTYPE_AUTOPHON", Value: 32874},
+ {Name: "ETHERTYPE_AXIS", Value: 34902},
+ {Name: "ETHERTYPE_BCLOOP", Value: 36867},
+ {Name: "ETHERTYPE_BOFL", Value: 33026},
+ {Name: "ETHERTYPE_CABLETRON", Value: 28724},
+ {Name: "ETHERTYPE_CHAOS", Value: 2052},
+ {Name: "ETHERTYPE_COMDESIGN", Value: 32876},
+ {Name: "ETHERTYPE_COMPUGRAPHIC", Value: 32877},
+ {Name: "ETHERTYPE_COUNTERPOINT", Value: 32866},
+ {Name: "ETHERTYPE_CRONUS", Value: 32772},
+ {Name: "ETHERTYPE_CRONUSVLN", Value: 32771},
+ {Name: "ETHERTYPE_DCA", Value: 4660},
+ {Name: "ETHERTYPE_DDE", Value: 32891},
+ {Name: "ETHERTYPE_DEBNI", Value: 43690},
+ {Name: "ETHERTYPE_DECAM", Value: 32840},
+ {Name: "ETHERTYPE_DECCUST", Value: 24582},
+ {Name: "ETHERTYPE_DECDIAG", Value: 24581},
+ {Name: "ETHERTYPE_DECDNS", Value: 32828},
+ {Name: "ETHERTYPE_DECDTS", Value: 32830},
+ {Name: "ETHERTYPE_DECEXPER", Value: 24576},
+ {Name: "ETHERTYPE_DECLAST", Value: 32833},
+ {Name: "ETHERTYPE_DECLTM", Value: 32831},
+ {Name: "ETHERTYPE_DECMUMPS", Value: 24585},
+ {Name: "ETHERTYPE_DECNETBIOS", Value: 32832},
+ {Name: "ETHERTYPE_DECnet", Value: 24579},
+ {Name: "ETHERTYPE_DELTACON", Value: 34526},
+ {Name: "ETHERTYPE_DIDDLE", Value: 17185},
+ {Name: "ETHERTYPE_DLOG1", Value: 1632},
+ {Name: "ETHERTYPE_DLOG2", Value: 1633},
+ {Name: "ETHERTYPE_DOGFIGHT", Value: 6537},
+ {Name: "ETHERTYPE_DSMD", Value: 32825},
+ {Name: "ETHERTYPE_ECMA", Value: 2051},
+ {Name: "ETHERTYPE_ENCRYPT", Value: 32829},
+ {Name: "ETHERTYPE_ES", Value: 32861},
+ {Name: "ETHERTYPE_EXCELAN", Value: 32784},
+ {Name: "ETHERTYPE_EXPERDATA", Value: 32841},
+ {Name: "ETHERTYPE_FLIP", Value: 33094},
+ {Name: "ETHERTYPE_FLOWCONTROL", Value: 34824},
+ {Name: "ETHERTYPE_FRARP", Value: 2056},
+ {Name: "ETHERTYPE_GENDYN", Value: 32872},
+ {Name: "ETHERTYPE_HAYES", Value: 33072},
+ {Name: "ETHERTYPE_HIPPI_FP", Value: 33152},
+ {Name: "ETHERTYPE_HITACHI", Value: 34848},
+ {Name: "ETHERTYPE_HP", Value: 32773},
+ {Name: "ETHERTYPE_IEEEPUP", Value: 2560},
+ {Name: "ETHERTYPE_IEEEPUPAT", Value: 2561},
+ {Name: "ETHERTYPE_IMLBL", Value: 19522},
+ {Name: "ETHERTYPE_IMLBLDIAG", Value: 16972},
+ {Name: "ETHERTYPE_IP", Value: 2048},
+ {Name: "ETHERTYPE_IPAS", Value: 34668},
+ {Name: "ETHERTYPE_IPV6", Value: 34525},
+ {Name: "ETHERTYPE_IPX", Value: 33079},
+ {Name: "ETHERTYPE_IPXNEW", Value: 32823},
+ {Name: "ETHERTYPE_KALPANA", Value: 34178},
+ {Name: "ETHERTYPE_LANBRIDGE", Value: 32824},
+ {Name: "ETHERTYPE_LANPROBE", Value: 34952},
+ {Name: "ETHERTYPE_LAT", Value: 24580},
+ {Name: "ETHERTYPE_LITTLE", Value: 32864},
+ {Name: "ETHERTYPE_LOGICRAFT", Value: 33096},
+ {Name: "ETHERTYPE_LOOPBACK", Value: 36864},
+ {Name: "ETHERTYPE_MATRA", Value: 32890},
+ {Name: "ETHERTYPE_MERIT", Value: 32892},
+ {Name: "ETHERTYPE_MICP", Value: 34618},
+ {Name: "ETHERTYPE_MOPDL", Value: 24577},
+ {Name: "ETHERTYPE_MOPRC", Value: 24578},
+ {Name: "ETHERTYPE_MOTOROLA", Value: 33165},
+ {Name: "ETHERTYPE_MPLS", Value: 34887},
+ {Name: "ETHERTYPE_MPLS_MCAST", Value: 34888},
+ {Name: "ETHERTYPE_MUMPS", Value: 33087},
+ {Name: "ETHERTYPE_NBPCC", Value: 15364},
+ {Name: "ETHERTYPE_NBPCLAIM", Value: 15369},
+ {Name: "ETHERTYPE_NBPCLREQ", Value: 15365},
+ {Name: "ETHERTYPE_NBPCLRSP", Value: 15366},
+ {Name: "ETHERTYPE_NBPCREQ", Value: 15362},
+ {Name: "ETHERTYPE_NBPCRSP", Value: 15363},
+ {Name: "ETHERTYPE_NBPDG", Value: 15367},
+ {Name: "ETHERTYPE_NBPDGB", Value: 15368},
+ {Name: "ETHERTYPE_NBPDLTE", Value: 15370},
+ {Name: "ETHERTYPE_NBPRAR", Value: 15372},
+ {Name: "ETHERTYPE_NBPRAS", Value: 15371},
+ {Name: "ETHERTYPE_NBPRST", Value: 15373},
+ {Name: "ETHERTYPE_NBPSCD", Value: 15361},
+ {Name: "ETHERTYPE_NBPVCD", Value: 15360},
+ {Name: "ETHERTYPE_NBS", Value: 2050},
+ {Name: "ETHERTYPE_NCD", Value: 33097},
+ {Name: "ETHERTYPE_NESTAR", Value: 32774},
+ {Name: "ETHERTYPE_NETBEUI", Value: 33169},
+ {Name: "ETHERTYPE_NOVELL", Value: 33080},
+ {Name: "ETHERTYPE_NS", Value: 1536},
+ {Name: "ETHERTYPE_NSAT", Value: 1537},
+ {Name: "ETHERTYPE_NSCOMPAT", Value: 2055},
+ {Name: "ETHERTYPE_OS9", Value: 28679},
+ {Name: "ETHERTYPE_OS9NET", Value: 28681},
+ {Name: "ETHERTYPE_PACER", Value: 32966},
+ {Name: "ETHERTYPE_PAE", Value: 34958},
+ {Name: "ETHERTYPE_PCS", Value: 16962},
+ {Name: "ETHERTYPE_PLANNING", Value: 32836},
+ {Name: "ETHERTYPE_PPP", Value: 34827},
+ {Name: "ETHERTYPE_PPPOE", Value: 34916},
+ {Name: "ETHERTYPE_PPPOEDISC", Value: 34915},
+ {Name: "ETHERTYPE_PRIMENTS", Value: 28721},
+ {Name: "ETHERTYPE_PUP", Value: 512},
+ {Name: "ETHERTYPE_PUPAT", Value: 512},
+ {Name: "ETHERTYPE_QINQ", Value: 34984},
+ {Name: "ETHERTYPE_RACAL", Value: 28720},
+ {Name: "ETHERTYPE_RATIONAL", Value: 33104},
+ {Name: "ETHERTYPE_RAWFR", Value: 25945},
+ {Name: "ETHERTYPE_RCL", Value: 6549},
+ {Name: "ETHERTYPE_RDP", Value: 34617},
+ {Name: "ETHERTYPE_RETIX", Value: 33010},
+ {Name: "ETHERTYPE_REVARP", Value: 32821},
+ {Name: "ETHERTYPE_SCA", Value: 24583},
+ {Name: "ETHERTYPE_SECTRA", Value: 34523},
+ {Name: "ETHERTYPE_SECUREDATA", Value: 34669},
+ {Name: "ETHERTYPE_SGITW", Value: 33150},
+ {Name: "ETHERTYPE_SG_BOUNCE", Value: 32790},
+ {Name: "ETHERTYPE_SG_DIAG", Value: 32787},
+ {Name: "ETHERTYPE_SG_NETGAMES", Value: 32788},
+ {Name: "ETHERTYPE_SG_RESV", Value: 32789},
+ {Name: "ETHERTYPE_SIMNET", Value: 21000},
+ {Name: "ETHERTYPE_SLOW", Value: 34825},
+ {Name: "ETHERTYPE_SNA", Value: 32981},
+ {Name: "ETHERTYPE_SNMP", Value: 33100},
+ {Name: "ETHERTYPE_SONIX", Value: 64245},
+ {Name: "ETHERTYPE_SPIDER", Value: 32927},
+ {Name: "ETHERTYPE_SPRITE", Value: 1280},
+ {Name: "ETHERTYPE_STP", Value: 33153},
+ {Name: "ETHERTYPE_TALARIS", Value: 33067},
+ {Name: "ETHERTYPE_TALARISMC", Value: 34091},
+ {Name: "ETHERTYPE_TCPCOMP", Value: 34667},
+ {Name: "ETHERTYPE_TCPSM", Value: 36866},
+ {Name: "ETHERTYPE_TEC", Value: 33103},
+ {Name: "ETHERTYPE_TEST", Value: 34850},
+ {Name: "ETHERTYPE_TIGAN", Value: 32815},
+ {Name: "ETHERTYPE_TRANSETHER", Value: 25944},
+ {Name: "ETHERTYPE_TYMSHARE", Value: 32814},
+ {Name: "ETHERTYPE_UBBST", Value: 28677},
+ {Name: "ETHERTYPE_UBDEBUG", Value: 2304},
+ {Name: "ETHERTYPE_UBDIAGLOOP", Value: 28674},
+ {Name: "ETHERTYPE_UBDL", Value: 28672},
+ {Name: "ETHERTYPE_UBNIU", Value: 28673},
+ {Name: "ETHERTYPE_UBNMC", Value: 28675},
+ {Name: "ETHERTYPE_VALID", Value: 5632},
+ {Name: "ETHERTYPE_VARIAN", Value: 32989},
+ {Name: "ETHERTYPE_VAXELN", Value: 32827},
+ {Name: "ETHERTYPE_VEECO", Value: 32871},
+ {Name: "ETHERTYPE_VEXP", Value: 32859},
+ {Name: "ETHERTYPE_VGLAB", Value: 33073},
+ {Name: "ETHERTYPE_VINES", Value: 2989},
+ {Name: "ETHERTYPE_VINESECHO", Value: 2991},
+ {Name: "ETHERTYPE_VINESLOOP", Value: 2990},
+ {Name: "ETHERTYPE_VITAL", Value: 65280},
+ {Name: "ETHERTYPE_VLAN", Value: 33024},
+ {Name: "ETHERTYPE_VLTLMAN", Value: 32896},
+ {Name: "ETHERTYPE_VPROD", Value: 32860},
+ {Name: "ETHERTYPE_VURESERVED", Value: 33095},
+ {Name: "ETHERTYPE_WATERLOO", Value: 33072},
+ {Name: "ETHERTYPE_WELLFLEET", Value: 33027},
+ {Name: "ETHERTYPE_X25", Value: 2053},
+ {Name: "ETHERTYPE_X75", Value: 2049},
+ {Name: "ETHERTYPE_XNSSM", Value: 36865},
+ {Name: "ETHERTYPE_XTP", Value: 33149},
{Name: "FASYNC", Value: 64},
{Name: "FD_CLOEXEC", Value: 1},
{Name: "F_DUPFD"},
@@ -4081,7 +4977,84 @@
{Name: "GETPID", Value: 4},
{Name: "GETVAL", Value: 5},
{Name: "GETZCNT", Value: 7},
+ {Name: "ICMP6_DST_UNREACH", Value: 1},
+ {Name: "ICMP6_DST_UNREACH_ADDR", Value: 3},
+ {Name: "ICMP6_DST_UNREACH_ADMIN", Value: 1},
+ {Name: "ICMP6_DST_UNREACH_BEYONDSCOPE", Value: 2},
+ {Name: "ICMP6_DST_UNREACH_NOPORT", Value: 4},
+ {Name: "ICMP6_DST_UNREACH_NOROUTE"},
+ {Name: "ICMP6_DST_UNREACH_NOTNEIGHBOR", Value: 2},
+ {Name: "ICMP6_DST_UNREACH_POLICY", Value: 5},
+ {Name: "ICMP6_DST_UNREACH_REJECT", Value: 6},
+ {Name: "ICMP6_DST_UNREACH_SRCROUTE", Value: 7},
+ {Name: "ICMP6_ECHO_REPLY", Value: 129},
+ {Name: "ICMP6_ECHO_REQUEST", Value: 128},
+ {Name: "ICMP6_NI_QUERY", Value: 139},
+ {Name: "ICMP6_NI_REPLY", Value: 140},
+ {Name: "ICMP6_PACKET_TOO_BIG", Value: 2},
+ {Name: "ICMP6_PARAMPROB_HEADER"},
+ {Name: "ICMP6_PARAMPROB_NEXTHEADER", Value: 1},
+ {Name: "ICMP6_PARAMPROB_OPTION", Value: 2},
+ {Name: "ICMP6_PARAM_PROB", Value: 4},
+ {Name: "ICMP6_TIME_EXCEEDED", Value: 3},
+ {Name: "ICMP6_TIME_EXCEED_REASSEMBLY", Value: 1},
+ {Name: "ICMP6_TIME_EXCEED_TRANSIT"},
+ {Name: "ICMP_ALTHOSTADDR", Value: 6},
+ {Name: "ICMP_DATACONVERR", Value: 31},
+ {Name: "ICMP_ECHO", Value: 8},
+ {Name: "ICMP_ECHOREPLY"},
+ {Name: "ICMP_IPV6_IAMHERE", Value: 34},
+ {Name: "ICMP_IPV6_WHEREAREYOU", Value: 33},
+ {Name: "ICMP_IREQ", Value: 15},
+ {Name: "ICMP_IREQREPLY", Value: 16},
+ {Name: "ICMP_MASKREPLY", Value: 18},
+ {Name: "ICMP_MASKREQ", Value: 17},
+ {Name: "ICMP_MOBILE_REDIRECT", Value: 32},
+ {Name: "ICMP_MOBILE_REGREPLY", Value: 36},
+ {Name: "ICMP_MOBILE_REGREQUEST", Value: 35},
+ {Name: "ICMP_PARAMPROB", Value: 12},
+ {Name: "ICMP_PARAMPROB_ERRATPTR"},
+ {Name: "ICMP_PARAMPROB_LENGTH", Value: 2},
+ {Name: "ICMP_PARAMPROB_OPTABSENT", Value: 1},
+ {Name: "ICMP_PHOTURIS", Value: 40},
+ {Name: "ICMP_REDIRECT", Value: 5},
+ {Name: "ICMP_REDIRECT_HOST", Value: 1},
+ {Name: "ICMP_REDIRECT_NET"},
+ {Name: "ICMP_REDIRECT_TOSHOST", Value: 3},
+ {Name: "ICMP_REDIRECT_TOSNET", Value: 2},
+ {Name: "ICMP_ROUTERADVERT", Value: 9},
+ {Name: "ICMP_ROUTERSOLICIT", Value: 10},
+ {Name: "ICMP_SKIP", Value: 39},
+ {Name: "ICMP_SOURCEQUENCH", Value: 4},
+ {Name: "ICMP_TIMXCEED", Value: 11},
+ {Name: "ICMP_TIMXCEED_INTRANS"},
+ {Name: "ICMP_TIMXCEED_REASS", Value: 1},
+ {Name: "ICMP_TRACEROUTE", Value: 30},
+ {Name: "ICMP_TSTAMP", Value: 13},
+ {Name: "ICMP_TSTAMPREPLY", Value: 14},
+ {Name: "ICMP_UNREACH", Value: 3},
+ {Name: "ICMP_UNREACH_FILTER_PROHIB", Value: 13},
+ {Name: "ICMP_UNREACH_HOST", Value: 1},
+ {Name: "ICMP_UNREACH_HOST_PRECEDENCE", Value: 14},
+ {Name: "ICMP_UNREACH_HOST_PROHIB", Value: 10},
+ {Name: "ICMP_UNREACH_HOST_UNKNOWN", Value: 7},
+ {Name: "ICMP_UNREACH_ISOLATED", Value: 8},
+ {Name: "ICMP_UNREACH_NEEDFRAG", Value: 4},
+ {Name: "ICMP_UNREACH_NET"},
+ {Name: "ICMP_UNREACH_NET_PROHIB", Value: 9},
+ {Name: "ICMP_UNREACH_NET_UNKNOWN", Value: 6},
+ {Name: "ICMP_UNREACH_PORT", Value: 3},
+ {Name: "ICMP_UNREACH_PRECEDENCE_CUTOFF", Value: 15},
+ {Name: "ICMP_UNREACH_PROTOCOL", Value: 2},
+ {Name: "ICMP_UNREACH_SRCFAIL", Value: 5},
+ {Name: "ICMP_UNREACH_TOSHOST", Value: 12},
+ {Name: "ICMP_UNREACH_TOSNET", Value: 11},
{Name: "IFNAMSIZ", Value: 16},
+ {Name: "IP6OPT_JUMBO", Value: 194},
+ {Name: "IP6OPT_PAD1"},
+ {Name: "IP6OPT_PADN", Value: 1},
+ {Name: "IP6OPT_ROUTER_ALERT", Value: 5},
+ {Name: "IP6OPT_TUNNEL_LIMIT", Value: 4},
{Name: "IPC_CREAT", Value: 512},
{Name: "IPC_EXCL", Value: 1024},
{Name: "IPC_INFO", Value: 3},
@@ -4090,14 +5063,130 @@
{Name: "IPC_RMID"},
{Name: "IPC_SET", Value: 1},
{Name: "IPC_STAT", Value: 2},
+ {Name: "IPOPT_CIPSO", Value: 134},
+ {Name: "IPOPT_EOL"},
+ {Name: "IPOPT_ESO", Value: 133},
+ {Name: "IPOPT_LSRR", Value: 131},
+ {Name: "IPOPT_NOP", Value: 1},
+ {Name: "IPOPT_RA", Value: 148},
+ {Name: "IPOPT_RR", Value: 7},
+ {Name: "IPOPT_SATID", Value: 136},
+ {Name: "IPOPT_SECURITY", Value: 130},
+ {Name: "IPOPT_SSRR", Value: 137},
+ {Name: "IPOPT_TS", Value: 68},
+ {Name: "IPOPT_TS_PRESPEC", Value: 3},
+ {Name: "IPOPT_TS_TSANDADDR", Value: 1},
+ {Name: "IPOPT_TS_TSONLY"},
+ {Name: "IPPROTO_3PC", Value: 34},
+ {Name: "IPPROTO_ADFS", Value: 68},
+ {Name: "IPPROTO_AH", Value: 51},
+ {Name: "IPPROTO_AHIP", Value: 61},
+ {Name: "IPPROTO_APES", Value: 99},
+ {Name: "IPPROTO_ARGUS", Value: 13},
+ {Name: "IPPROTO_AX25", Value: 93},
+ {Name: "IPPROTO_BHA", Value: 49},
+ {Name: "IPPROTO_BLT", Value: 30},
+ {Name: "IPPROTO_BRSATMON", Value: 76},
+ {Name: "IPPROTO_CARP", Value: 112},
+ {Name: "IPPROTO_CFTP", Value: 62},
+ {Name: "IPPROTO_CHAOS", Value: 16},
+ {Name: "IPPROTO_CMTP", Value: 38},
+ {Name: "IPPROTO_CPHB", Value: 73},
+ {Name: "IPPROTO_CPNX", Value: 72},
+ {Name: "IPPROTO_DDP", Value: 37},
+ {Name: "IPPROTO_DGP", Value: 86},
+ {Name: "IPPROTO_DSTOPTS", Value: 60},
+ {Name: "IPPROTO_EGP", Value: 8},
+ {Name: "IPPROTO_EMCON", Value: 14},
+ {Name: "IPPROTO_ENCAP", Value: 98},
+ {Name: "IPPROTO_EON", Value: 80},
+ {Name: "IPPROTO_ESP", Value: 50},
+ {Name: "IPPROTO_ETHERIP", Value: 97},
+ {Name: "IPPROTO_FRAGMENT", Value: 44},
+ {Name: "IPPROTO_GMTP", Value: 100},
+ {Name: "IPPROTO_GRE", Value: 47},
+ {Name: "IPPROTO_HELLO", Value: 63},
+ {Name: "IPPROTO_HIP", Value: 139},
+ {Name: "IPPROTO_HMP", Value: 20},
{Name: "IPPROTO_ICMP", Value: 1},
{Name: "IPPROTO_ICMPV6", Value: 58},
+ {Name: "IPPROTO_IDP", Value: 22},
+ {Name: "IPPROTO_IDPR", Value: 35},
+ {Name: "IPPROTO_IDRP", Value: 45},
+ {Name: "IPPROTO_IGMP", Value: 2},
+ {Name: "IPPROTO_IGP", Value: 85},
+ {Name: "IPPROTO_IGRP", Value: 88},
+ {Name: "IPPROTO_IL", Value: 40},
+ {Name: "IPPROTO_INLSP", Value: 52},
+ {Name: "IPPROTO_INP", Value: 32},
{Name: "IPPROTO_IP"},
+ {Name: "IPPROTO_IPCOMP", Value: 108},
+ {Name: "IPPROTO_IPCV", Value: 71},
+ {Name: "IPPROTO_IPEIP", Value: 94},
+ {Name: "IPPROTO_IPPC", Value: 67},
+ {Name: "IPPROTO_IPV4", Value: 4},
{Name: "IPPROTO_IPV6", Value: 41},
+ {Name: "IPPROTO_IRTP", Value: 28},
+ {Name: "IPPROTO_KRYPTOLAN", Value: 65},
+ {Name: "IPPROTO_LARP", Value: 91},
+ {Name: "IPPROTO_LEAF1", Value: 25},
+ {Name: "IPPROTO_LEAF2", Value: 26},
+ {Name: "IPPROTO_MEAS", Value: 19},
+ {Name: "IPPROTO_MH", Value: 135},
+ {Name: "IPPROTO_MHRP", Value: 48},
+ {Name: "IPPROTO_MICP", Value: 95},
+ {Name: "IPPROTO_MOBILE", Value: 55},
+ {Name: "IPPROTO_MPLS", Value: 137},
+ {Name: "IPPROTO_MTP", Value: 92},
+ {Name: "IPPROTO_MUX", Value: 18},
+ {Name: "IPPROTO_ND", Value: 77},
+ {Name: "IPPROTO_NHRP", Value: 54},
+ {Name: "IPPROTO_NONE", Value: 59},
+ {Name: "IPPROTO_NSP", Value: 31},
+ {Name: "IPPROTO_NVPII", Value: 11},
+ {Name: "IPPROTO_OSPFIGP", Value: 89},
+ {Name: "IPPROTO_PFSYNC", Value: 240},
+ {Name: "IPPROTO_PGM", Value: 113},
+ {Name: "IPPROTO_PIGP", Value: 9},
+ {Name: "IPPROTO_PIM", Value: 103},
+ {Name: "IPPROTO_PRM", Value: 21},
+ {Name: "IPPROTO_PUP", Value: 12},
+ {Name: "IPPROTO_PVP", Value: 75},
+ {Name: "IPPROTO_RCCMON", Value: 10},
+ {Name: "IPPROTO_RDP", Value: 27},
+ {Name: "IPPROTO_ROUTING", Value: 43},
+ {Name: "IPPROTO_RSVP", Value: 46},
+ {Name: "IPPROTO_RVD", Value: 66},
+ {Name: "IPPROTO_SATEXPAK", Value: 64},
+ {Name: "IPPROTO_SATMON", Value: 69},
+ {Name: "IPPROTO_SCCSP", Value: 96},
{Name: "IPPROTO_SCTP", Value: 132},
+ {Name: "IPPROTO_SDRP", Value: 42},
+ {Name: "IPPROTO_SEP", Value: 33},
+ {Name: "IPPROTO_SHIM6", Value: 140},
+ {Name: "IPPROTO_SKIP", Value: 57},
+ {Name: "IPPROTO_SRPC", Value: 90},
+ {Name: "IPPROTO_ST", Value: 7},
+ {Name: "IPPROTO_SVMTP", Value: 82},
+ {Name: "IPPROTO_SWIPE", Value: 53},
+ {Name: "IPPROTO_TCF", Value: 87},
{Name: "IPPROTO_TCP", Value: 6},
+ {Name: "IPPROTO_TLSP", Value: 56},
+ {Name: "IPPROTO_TP", Value: 29},
+ {Name: "IPPROTO_TPXX", Value: 39},
+ {Name: "IPPROTO_TRUNK1", Value: 23},
+ {Name: "IPPROTO_TRUNK2", Value: 24},
+ {Name: "IPPROTO_TTP", Value: 84},
{Name: "IPPROTO_UDP", Value: 17},
{Name: "IPPROTO_UDPLITE", Value: 136},
+ {Name: "IPPROTO_VINES", Value: 83},
+ {Name: "IPPROTO_VISA", Value: 70},
+ {Name: "IPPROTO_VMTP", Value: 81},
+ {Name: "IPPROTO_WBEXPAK", Value: 79},
+ {Name: "IPPROTO_WBMON", Value: 78},
+ {Name: "IPPROTO_WSN", Value: 74},
+ {Name: "IPPROTO_XNET", Value: 15},
+ {Name: "IPPROTO_XTP", Value: 36},
{Name: "IPV6_2292DSTOPTS", Value: 23},
{Name: "IPV6_2292HOPLIMIT", Value: 20},
{Name: "IPV6_2292HOPOPTS", Value: 22},
@@ -4127,6 +5216,9 @@
{Name: "IPV6_RECVTCLASS", Value: 57},
{Name: "IPV6_RTHDR", Value: 51},
{Name: "IPV6_RTHDRDSTOPTS", Value: 35},
+ {Name: "IPV6_RTHDR_LOOSE"},
+ {Name: "IPV6_RTHDR_STRICT", Value: 1},
+ {Name: "IPV6_RTHDR_TYPE_0"},
{Name: "IPV6_TCLASS", Value: 61},
{Name: "IPV6_UNICAST_HOPS", Value: 4},
{Name: "IPV6_V6ONLY", Value: 27},
@@ -4181,6 +5273,9 @@
{Name: "MCL_CURRENT", Value: 1},
{Name: "MCL_FUTURE", Value: 2},
{Name: "MIFF_REGISTER", Value: 1},
+ {Name: "MLD_LISTENER_QUERY", Value: 130},
+ {Name: "MLD_LISTENER_REDUCTION", Value: 132},
+ {Name: "MLD_LISTENER_REPORT", Value: 131},
{Name: "MRT6_ADD_MFC", Value: 104},
{Name: "MRT6_ADD_MIF", Value: 102},
{Name: "MRT6_DEL_MFC", Value: 105},
@@ -4197,6 +5292,20 @@
{Name: "MS_ASYNC", Value: 1},
{Name: "MS_INVALIDATE", Value: 2},
{Name: "MS_SYNC"},
+ {Name: "ND_NEIGHBOR_ADVERT", Value: 136},
+ {Name: "ND_NEIGHBOR_SOLICIT", Value: 135},
+ {Name: "ND_OPT_DNSSL", Value: 31},
+ {Name: "ND_OPT_MTU", Value: 5},
+ {Name: "ND_OPT_NONCE", Value: 14},
+ {Name: "ND_OPT_PREFIX_INFORMATION", Value: 3},
+ {Name: "ND_OPT_RDNSS", Value: 25},
+ {Name: "ND_OPT_REDIRECTED_HEADER", Value: 4},
+ {Name: "ND_OPT_ROUTE_INFO", Value: 24},
+ {Name: "ND_OPT_SOURCE_LINKADDR", Value: 1},
+ {Name: "ND_OPT_TARGET_LINKADDR", Value: 2},
+ {Name: "ND_REDIRECT", Value: 137},
+ {Name: "ND_ROUTER_ADVERT", Value: 134},
+ {Name: "ND_ROUTER_SOLICIT", Value: 133},
{Name: "O_APPEND", Value: 8},
{Name: "O_CLOEXEC", Value: 1048576},
{Name: "O_CREAT", Value: 512},
@@ -4542,6 +5651,15 @@
{Name: "S_IXGRP", Value: 8},
{Name: "S_IXOTH", Value: 1},
{Name: "S_IXUSR", Value: 64},
+ {Name: "TCPOPT_EOL"},
+ {Name: "TCPOPT_FAST_OPEN", Value: 34},
+ {Name: "TCPOPT_MAXSEG", Value: 2},
+ {Name: "TCPOPT_NOP", Value: 1},
+ {Name: "TCPOPT_SACK", Value: 5},
+ {Name: "TCPOPT_SACK_PERMITTED", Value: 4},
+ {Name: "TCPOPT_SIGNATURE", Value: 19},
+ {Name: "TCPOPT_TIMESTAMP", Value: 8},
+ {Name: "TCPOPT_WINDOW", Value: 3},
{Name: "TCP_CCALGOOPT", Value: 65},
{Name: "TCP_CONGESTION", Value: 64},
{Name: "TCP_DELACK", Value: 72},
@@ -4566,6 +5684,14 @@
{Name: "TCP_NOPUSH", Value: 4},
{Name: "TCP_PCAP_IN", Value: 4096},
{Name: "TCP_PCAP_OUT", Value: 2048},
+ {Name: "TH_ACK", Value: 16},
+ {Name: "TH_CWR", Value: 128},
+ {Name: "TH_ECE", Value: 64},
+ {Name: "TH_FIN", Value: 1},
+ {Name: "TH_PUSH", Value: 8},
+ {Name: "TH_RST", Value: 4},
+ {Name: "TH_SYN", Value: 2},
+ {Name: "TH_URG", Value: 32},
{Name: "TIMER_ABSTIME", Value: 1},
{Name: "UDPLITE_RECV_CSCOV", Value: 4},
{Name: "UDPLITE_SEND_CSCOV", Value: 2},
@@ -4578,4 +5704,4 @@
{Name: "WUNTRACED", Value: 2},
}
-const revision_amd64 = "4b5db889742657ae7fe970feaa45dbf6b13e405b"
+const revision_amd64 = "e540c106993372e0b27ed5e2d9ec82c4eed76447"
diff --git a/sys/freebsd/vnet.txt b/sys/freebsd/vnet.txt
index 195668a..de4d1dd 100644
--- a/sys/freebsd/vnet.txt
+++ b/sys/freebsd/vnet.txt
@@ -2,10 +2,18 @@
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
include <sys/types.h>
+include <sys/param.h>
include <sys/socket.h>
+include <net/ethernet.h>
+include <net/if_arp.h>
include <netinet/in.h>
+include <netinet/ip.h>
+include <netinet/ip_icmp.h>
+include <netinet/ip6.h>
+include <netinet/icmp6.h>
+include <netinet/tcp.h>
-syz_emit_ethernet(len len[packet], packet ptr[in, array[int8]])
+syz_emit_ethernet(len len[packet], packet ptr[in, eth_packet])
resource tcp_seq_num[int32]: 0x41424344
@@ -19,7 +27,129 @@
syz_extract_tcp_res(res ptr[out, tcp_resources], seq_inc int32, ack_inc int32)
syz_extract_tcp_res$synack(res ptr[out, tcp_resources], seq_inc const[1], ack_inc const[0])
-# This corresponds to LOCAL_IPV4 ("172.20.%d.170" % pid) in executor/common.h
+################################################################################
+################################### Ethernet ###################################
+################################################################################
+
+# https://en.wikipedia.org/wiki/Ethernet_frame#Structure
+# https://en.wikipedia.org/wiki/IEEE_802.1Q
+
+type mac_addr_t[LAST] {
+ a0 array[const[0xaa, int8], 5]
+ a1 LAST
+} [packed]
+
+mac_addr [
+ empty array[const[0x0, int8], 6]
+ local mac_addr_t[const[0xaa, int8]]
+ remote mac_addr_t[const[0xbb, int8]]
+ broadcast array[const[0xff, int8], 6]
+ random array[int8, 6]
+]
+
+vlan_tag_ad {
+ tpid const[ETHERTYPE_QINQ, int16be]
+ pcp int16:3
+ dei int16:1
+ vid int16:12[0:4]
+} [packed]
+
+vlan_tag_q {
+ tpid const[ETHERTYPE_VLAN, int16be]
+ pcp int16:3
+ dei int16:1
+ vid int16:12[0:4]
+} [packed]
+
+vlan_tag {
+ tag_ad array[vlan_tag_ad, 0:1]
+ tag_q vlan_tag_q
+} [packed]
+
+eth_packet {
+ dst_mac mac_addr
+ src_mac mac_addr
+ vtag array[vlan_tag, 0:1]
+ payload eth_payload
+} [packed]
+
+eth_payload {
+ eth2 eth2_packet
+} [packed]
+
+################################################################################
+################################## Ethernet 2 ##################################
+################################################################################
+
+# https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II
+
+ether_types = ETHERTYPE_8023, ETHERTYPE_PUP, ETHERTYPE_PUPAT, ETHERTYPE_SPRITE, ETHERTYPE_NS, ETHERTYPE_NSAT, ETHERTYPE_DLOG1, ETHERTYPE_DLOG2, ETHERTYPE_IP, ETHERTYPE_X75, ETHERTYPE_NBS, ETHERTYPE_ECMA, ETHERTYPE_CHAOS, ETHERTYPE_X25, ETHERTYPE_ARP, ETHERTYPE_NSCOMPAT, ETHERTYPE_FRARP, ETHERTYPE_UBDEBUG, ETHERTYPE_IEEEPUP, ETHERTYPE_IEEEPUPAT, ETHERTYPE_VINES, ETHERTYPE_VINESLOOP, ETHERTYPE_VINESECHO, ETHERTYPE_DCA, ETHERTYPE_VALID, ETHERTYPE_DOGFIGHT, ETHERTYPE_RCL, ETHERTYPE_NBPVCD, ETHERTYPE_NBPSCD, ETHERTYPE_NBPCREQ, ETHERTYPE_NBPCRSP, ETHERTYPE_NBPCC, ETHERTYPE_NBPCLREQ, ETHERTYPE_NBPCLRSP, ETHERTYPE_NBPDG, ETHERTYPE_NBPDGB, ETHERTYPE_NBPCLAIM, ETHERTYPE_NBPDLTE, ETHERTYPE_NBPRAS, ETHERTYPE_NBPRAR, ETHERTYPE_NBPRST, ETHERTYPE_PCS, ETHERTYPE_IMLBLDIAG, ETHERTYPE_DIDDLE, ETHERTYPE_IMLBL, ETHERTYPE_SIMNET, ETHERTYPE_DECEXPER, ETHERTYPE_MOPDL, ETHERTYPE_MOPRC, ETHERTYPE_DECnet, ETHERTYPE_LAT, ETHERTYPE_DECDIAG, ETHERTYPE_DECCUST, ETHERTYPE_SCA, ETHERTYPE_AMBER, ETHERTYPE_DECMUMPS, ETHERTYPE_TRANSETHER, ETHERTYPE_RAWFR, ETHERTYPE_UBDL, ETHERTYPE_UBNIU, ETHERTYPE_UBDIAGLOOP, ETHERTYPE_UBNMC, ETHERTYPE_UBBST, ETHERTYPE_OS9, ETHERTYPE_OS9NET, ETHERTYPE_RACAL, ETHERTYPE_PRIMENTS, ETHERTYPE_CABLETRON, ETHERTYPE_CRONUSVLN, ETHERTYPE_CRONUS, ETHERTYPE_HP, ETHERTYPE_NESTAR, ETHERTYPE_ATTSTANFORD, ETHERTYPE_EXCELAN, ETHERTYPE_SG_DIAG, ETHERTYPE_SG_NETGAMES, ETHERTYPE_SG_RESV, ETHERTYPE_SG_BOUNCE, ETHERTYPE_APOLLODOMAIN, ETHERTYPE_TYMSHARE, ETHERTYPE_TIGAN, ETHERTYPE_REVARP, ETHERTYPE_AEONIC, ETHERTYPE_IPXNEW, ETHERTYPE_LANBRIDGE, ETHERTYPE_DSMD, ETHERTYPE_ARGONAUT, ETHERTYPE_VAXELN, ETHERTYPE_DECDNS, ETHERTYPE_ENCRYPT, ETHERTYPE_DECDTS, ETHERTYPE_DECLTM, ETHERTYPE_DECNETBIOS, ETHERTYPE_DECLAST, ETHERTYPE_PLANNING, ETHERTYPE_DECAM, ETHERTYPE_EXPERDATA, ETHERTYPE_VEXP, ETHERTYPE_VPROD, ETHERTYPE_ES, ETHERTYPE_LITTLE, ETHERTYPE_COUNTERPOINT, ETHERTYPE_VEECO, ETHERTYPE_GENDYN, ETHERTYPE_ATT, ETHERTYPE_AUTOPHON, ETHERTYPE_COMDESIGN, ETHERTYPE_COMPUGRAPHIC, ETHERTYPE_MATRA, ETHERTYPE_DDE, ETHERTYPE_MERIT, ETHERTYPE_VLTLMAN, ETHERTYPE_ATALK, ETHERTYPE_SPIDER, ETHERTYPE_PACER, ETHERTYPE_APPLITEK, ETHERTYPE_SNA, ETHERTYPE_VARIAN, ETHERTYPE_RETIX, ETHERTYPE_AARP, ETHERTYPE_APOLLO, ETHERTYPE_VLAN, ETHERTYPE_BOFL, ETHERTYPE_WELLFLEET, ETHERTYPE_TALARIS, ETHERTYPE_WATERLOO, ETHERTYPE_HAYES, ETHERTYPE_VGLAB, ETHERTYPE_IPX, ETHERTYPE_NOVELL, ETHERTYPE_MUMPS, ETHERTYPE_AMOEBA, ETHERTYPE_FLIP, ETHERTYPE_VURESERVED, ETHERTYPE_LOGICRAFT, ETHERTYPE_NCD, ETHERTYPE_ALPHA, ETHERTYPE_SNMP, ETHERTYPE_TEC, ETHERTYPE_RATIONAL, ETHERTYPE_XTP, ETHERTYPE_SGITW, ETHERTYPE_HIPPI_FP, ETHERTYPE_STP, ETHERTYPE_MOTOROLA, ETHERTYPE_NETBEUI, ETHERTYPE_ACCTON, ETHERTYPE_TALARISMC, ETHERTYPE_KALPANA, ETHERTYPE_SECTRA, ETHERTYPE_IPV6, ETHERTYPE_DELTACON, ETHERTYPE_ATOMIC, ETHERTYPE_RDP, ETHERTYPE_MICP, ETHERTYPE_TCPCOMP, ETHERTYPE_IPAS, ETHERTYPE_SECUREDATA, ETHERTYPE_FLOWCONTROL, ETHERTYPE_SLOW, ETHERTYPE_PPP, ETHERTYPE_HITACHI, ETHERTYPE_TEST, ETHERTYPE_MPLS, ETHERTYPE_MPLS_MCAST, ETHERTYPE_AXIS, ETHERTYPE_PPPOEDISC, ETHERTYPE_PPPOE, ETHERTYPE_LANPROBE, ETHERTYPE_PAE, ETHERTYPE_QINQ, ETHERTYPE_LOOPBACK, ETHERTYPE_XNSSM, ETHERTYPE_TCPSM, ETHERTYPE_BCLOOP, ETHERTYPE_DEBNI, ETHERTYPE_SONIX, ETHERTYPE_VITAL
+
+eth2_packet [
+ generic eth2_packet_generic
+ arp eth2_packet_t[ETHERTYPE_ARP, arp_packet]
+ ipv4 eth2_packet_t[ETHERTYPE_IP, ipv4_packet]
+ ipv6 eth2_packet_t[ETHERTYPE_IPV6, ipv6_packet]
+] [varlen]
+
+eth2_packet_generic {
+ etype flags[ether_types, int16be]
+ payload array[int8]
+} [packed]
+
+type eth2_packet_t[TYPE, PAYLOAD] {
+ etype const[TYPE, int16be]
+ payload PAYLOAD
+} [packed]
+
+################################################################################
+###################################### ARP #####################################
+################################################################################
+
+# https://en.wikipedia.org/wiki/Address_Resolution_Protocol#Packet_structure
+# https://tools.ietf.org/html/rfc826
+
+arp_hrds = ARPHRD_ETHER, ARPHRD_IEEE802, ARPHRD_FRELAY, ARPHRD_IEEE1394, ARPHRD_INFINIBAND
+
+arp_ops = ARPOP_REQUEST, ARPOP_REPLY, ARPOP_REVREQUEST, ARPOP_REVREPLY, ARPOP_INVREQUEST, ARPOP_INVREPLY
+
+arp_generic_packet {
+ ar_hrd flags[arp_hrds, int16be]
+ ar_pro flags[ether_types, int16be]
+ ar_hln const[6, int8]
+ ar_pln len[ar_spa, int8]
+ ar_op flags[arp_ops, int16be]
+ ar_sha mac_addr
+ ar_spa array[int8, 0:16]
+ ar_tha mac_addr
+ ar_tpa array[int8, 16]
+} [packed]
+
+arp_ether_ipv4_packet {
+ ar_hrd const[ARPHRD_ETHER, int16be]
+ ar_pro const[ETHERTYPE_IP, int16be]
+ ar_hln const[6, int8]
+ ar_pln const[4, int8]
+ ar_op flags[arp_ops, int16be]
+ ar_sha mac_addr
+ ar_spa ipv4_addr
+ ar_tha mac_addr
+ ar_tpa ipv4_addr
+} [packed]
+
+arp_packet [
+ generic arp_generic_packet
+ ether_ipv4 arp_ether_ipv4_packet
+] [varlen]
+
+################################################################################
+##################################### IPv4 #####################################
+################################################################################
+
+# https://tools.ietf.org/html/rfc791#section-3.1
+# https://en.wikipedia.org/wiki/IPv4#Header
+
+# This corresponds to LOCAL_IPV4 ("172.20.%d.170" % pid) in executor/common_bsd.h
ipv4_addr_local {
a0 const[0xac, int8]
a1 const[0x14, int8]
@@ -27,7 +157,7 @@
a3 const[0xaa, int8]
} [packed]
-# This corresponds to LOCAL_IPV4 ("172.20.%d.187" % pid) in executor/common.h
+# This corresponds to LOCAL_IPV4 ("172.20.%d.187" % pid) in executor/common_bsd.h
ipv4_addr_remote {
a0 const[0xac, int8]
a1 const[0x14, int8]
@@ -54,11 +184,313 @@
rand_addr int32be
]
+# http://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1
+ipv4_option [
+ generic ipv4_option_generic
+ end ipv4_option_end
+ noop ipv4_option_noop
+ lsrr ipv4_option_lsrr
+ ssrr ipv4_option_ssrr
+ rr ipv4_option_rr
+ timestamp ipv4_option_timestamp
+ ra ipv4_option_ra
+] [varlen]
+
+ipv4_option_types = IPOPT_EOL, IPOPT_NOP, IPOPT_RR, IPOPT_TS, IPOPT_SECURITY, IPOPT_LSRR, IPOPT_ESO, IPOPT_CIPSO, IPOPT_SATID, IPOPT_SSRR, IPOPT_RA
+
+ipv4_option_generic {
+ type flags[ipv4_option_types, int8]
+ length len[parent, int8]
+ data array[int8, 0:16]
+} [packed]
+
+# https://tools.ietf.org/html/rfc791#section-3.1
+ipv4_option_end {
+ type const[IPOPT_EOL, int8]
+} [packed]
+
+# https://tools.ietf.org/html/rfc791#section-3.1
+ipv4_option_noop {
+ type const[IPOPT_NOP, int8]
+} [packed]
+
+# https://tools.ietf.org/html/rfc791#section-3.1
+ipv4_option_lsrr {
+ type const[IPOPT_LSRR, int8]
+ length len[parent, int8]
+ pointer int8
+ data array[ipv4_addr]
+} [packed]
+
+# https://tools.ietf.org/html/rfc791#section-3.1
+ipv4_option_ssrr {
+ type const[IPOPT_SSRR, int8]
+ length len[parent, int8]
+ pointer int8
+ data array[ipv4_addr]
+} [packed]
+
+# https://tools.ietf.org/html/rfc791#section-3.1
+ipv4_option_rr {
+ type const[IPOPT_RR, int8]
+ length len[parent, int8]
+ pointer int8
+ data array[ipv4_addr]
+} [packed]
+
+ipv4_option_timestamp_flags = IPOPT_TS_TSONLY, IPOPT_TS_TSANDADDR, IPOPT_TS_PRESPEC
+
+ipv4_option_timestamp_timestamp {
+ addr array[ipv4_addr, 0:1]
+ timestamp int32be
+} [packed]
+
+# https://tools.ietf.org/html/rfc791#section-3.1
+# http://www.networksorcery.com/enp/protocol/ip/option004.htm
+ipv4_option_timestamp {
+ type const[IPOPT_TS, int8]
+ length len[parent, int8]
+ pointer int8
+ flg flags[ipv4_option_timestamp_flags, int8:4]
+ oflw int8:4
+ timestamps array[ipv4_option_timestamp_timestamp]
+} [packed]
+
+# https://tools.ietf.org/html/rfc2113
+ipv4_option_ra {
+ type const[IPOPT_RA, int8]
+ length len[parent, int8]
+ value int32be
+} [packed]
+
+ipv4_options {
+ options array[ipv4_option]
+} [packed, align_4]
+
+ipv4_types = IPPROTO_ICMP, IPPROTO_IGMP, IPPROTO_IPV4, IPPROTO_TCP, IPPROTO_ST, IPPROTO_EGP, IPPROTO_PIGP, IPPROTO_RCCMON, IPPROTO_NVPII, IPPROTO_PUP, IPPROTO_ARGUS, IPPROTO_EMCON, IPPROTO_XNET, IPPROTO_CHAOS, IPPROTO_UDP, IPPROTO_MUX, IPPROTO_MEAS, IPPROTO_HMP, IPPROTO_PRM, IPPROTO_IDP, IPPROTO_TRUNK1, IPPROTO_TRUNK2, IPPROTO_LEAF1, IPPROTO_LEAF2, IPPROTO_RDP, IPPROTO_IRTP, IPPROTO_TP, IPPROTO_BLT, IPPROTO_NSP, IPPROTO_INP, IPPROTO_SEP, IPPROTO_3PC, IPPROTO_IDPR, IPPROTO_XTP, IPPROTO_DDP, IPPROTO_CMTP, IPPROTO_TPXX, IPPROTO_IL, IPPROTO_SDRP, IPPROTO_IDRP, IPPROTO_RSVP, IPPROTO_GRE, IPPROTO_MHRP, IPPROTO_BHA, IPPROTO_ESP, IPPROTO_AH, IPPROTO_INLSP, IPPROTO_SWIPE, IPPROTO_NHRP, IPPROTO_MOBILE, IPPROTO_TLSP, IPPROTO_SKIP, IPPROTO_AHIP, IPPROTO_CFTP, IPPROTO_HELLO, IPPROTO_SATEXPAK, IPPROTO_KRYPTOLAN, IPPROTO_RVD, IPPROTO_IPPC, IPPROTO_ADFS, IPPROTO_SATMON, IPPROTO_VISA, IPPROTO_IPCV, IPPROTO_CPNX, IPPROTO_CPHB, IPPROTO_WSN, IPPROTO_PVP, IPPROTO_BRSATMON, IPPROTO_ND, IPPROTO_WBMON, IPPROTO_WBEXPAK, IPPROTO_EON, IPPROTO_VMTP, IPPROTO_SVMTP, IPPROTO_VINES, IPPROTO_TTP, IPPROTO_IGP, IPPROTO_DGP, IPPROTO_TCF, IPPROTO_IGRP, IPPROTO_OSPFIGP, IPPROTO_SRPC, IPPROTO_LARP, IPPROTO_MTP, IPPROTO_AX25, IPPROTO_IPEIP, IPPROTO_MICP, IPPROTO_SCCSP, IPPROTO_ETHERIP, IPPROTO_ENCAP, IPPROTO_APES, IPPROTO_GMTP, IPPROTO_IPCOMP, IPPROTO_IPCOMP, IPPROTO_MH, IPPROTO_UDPLITE, IPPROTO_HIP, IPPROTO_SHIM6, IPPROTO_PIM, IPPROTO_CARP, IPPROTO_PGM, IPPROTO_MPLS, IPPROTO_PFSYNC
+
+ipv4_header {
+ ihl bytesize4[parent, int8:4]
+ version const[4, int8:4]
+ ecn int8:2
+ dscp int8:6
+ total_len len[ipv4_packet, int16be]
+ id int16be[100:104]
+ frag_off int16be
+# TODO: frag_off is actually 13 bits, 3 bits are flags
+ ttl int8
+ protocol flags[ipv4_types, int8]
+ csum csum[parent, inet, int16be]
+ src_ip ipv4_addr
+ dst_ip ipv4_addr
+ options ipv4_options
+} [packed]
+
+ipv4_packet {
+ header ipv4_header
+ payload ipv4_payload
+} [packed]
+
+ipv4_payload [
+ generic array[int8]
+ tcp tcp_packet
+ udp udp_packet
+ icmp icmp_packet
+] [varlen]
+
+################################################################################
+###################################### ICMP ####################################
+################################################################################
+
+# https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#ICMP_datagram_structure
+# https://tools.ietf.org/html/rfc792
+# https://tools.ietf.org/html/rfc4884#section-4.1
+# http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
+
+icmp_ipv4_header {
+ ihl bytesize4[parent, int8:4]
+ version const[4, int8:4]
+ ecn int8:2
+ dscp int8:6
+ total_len int16be
+ id icmp_id
+ frag_off int16be
+ ttl int8
+ protocol flags[ipv4_types, int8]
+ csum int16be
+ src_ip ipv4_addr
+ dst_ip ipv4_addr
+ options ipv4_options
+} [packed]
+
+icmp_types = ICMP_ECHOREPLY, ICMP_UNREACH, ICMP_SOURCEQUENCH, ICMP_REDIRECT, ICMP_ALTHOSTADDR, ICMP_ECHO, ICMP_ROUTERADVERT, ICMP_ROUTERSOLICIT, ICMP_TIMXCEED, ICMP_PARAMPROB, ICMP_TSTAMP, ICMP_TSTAMPREPLY, ICMP_IREQ, ICMP_IREQREPLY, ICMP_MASKREQ, ICMP_MASKREPLY, ICMP_TRACEROUTE, ICMP_DATACONVERR, ICMP_MOBILE_REDIRECT, ICMP_IPV6_WHEREAREYOU, ICMP_IPV6_IAMHERE, ICMP_MOBILE_REGREQUEST, ICMP_MOBILE_REGREPLY, ICMP_SKIP, ICMP_PHOTURIS
+
+icmp_generic_packet {
+ type flags[icmp_types, int8]
+ code int8
+ csum csum[parent, inet, int16be]
+ data array[int8]
+} [packed]
+
+icmp_echo_reply_packet {
+ type const[ICMP_ECHOREPLY, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ id icmp_id
+ seq_num int16be
+ data array[int8]
+} [packed]
+
+type icmp_id int16be[100:104]
+
+icmp_dest_unreach_codes = ICMP_UNREACH_NET, ICMP_UNREACH_HOST, ICMP_UNREACH_PROTOCOL, ICMP_UNREACH_PORT, ICMP_UNREACH_NEEDFRAG, ICMP_UNREACH_SRCFAIL, ICMP_UNREACH_NET_UNKNOWN, ICMP_UNREACH_HOST_UNKNOWN, ICMP_UNREACH_ISOLATED, ICMP_UNREACH_NET_PROHIB, ICMP_UNREACH_HOST_PROHIB, ICMP_UNREACH_TOSNET, ICMP_UNREACH_TOSHOST, ICMP_UNREACH_FILTER_PROHIB, ICMP_UNREACH_HOST_PRECEDENCE, ICMP_UNREACH_PRECEDENCE_CUTOFF
+
+icmp_dest_unreach_packet {
+ type const[ICMP_UNREACH, int8]
+ code flags[icmp_dest_unreach_codes, int8]
+ csum csum[parent, inet, int16be]
+ unused const[0, int8]
+ length int8
+ mtu int16be
+ iph icmp_ipv4_header
+ data array[int8, 0:8]
+} [packed]
+
+icmp_source_quench_packet {
+ type const[ICMP_SOURCEQUENCH, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ unused const[0, int32]
+ iph icmp_ipv4_header
+ data array[int8, 0:8]
+} [packed]
+
+icmp_redirect_codes = ICMP_REDIRECT_NET, ICMP_REDIRECT_HOST, ICMP_REDIRECT_TOSNET, ICMP_REDIRECT_TOSHOST
+
+icmp_redirect_packet {
+ type const[ICMP_REDIRECT, int8]
+ code flags[icmp_redirect_codes, int8]
+ csum csum[parent, inet, int16be]
+ ip ipv4_addr
+ iph icmp_ipv4_header
+ data array[int8, 0:8]
+} [packed]
+
+icmp_echo_packet {
+ type const[ICMP_ECHO, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ id int16be
+ seq_num int16be
+ data array[int8]
+} [packed]
+
+icmp_time_exceeded_codes = ICMP_TIMXCEED_INTRANS, ICMP_TIMXCEED_REASS
+
+icmp_time_exceeded_packet {
+ type const[ICMP_TIMXCEED, int8]
+ code flags[icmp_time_exceeded_codes, int8]
+ csum csum[parent, inet, int16be]
+ unused1 const[0, int8]
+ length int8
+ unused2 const[0, int16]
+ iph icmp_ipv4_header
+ data array[int8, 0:8]
+} [packed]
+
+icmp_parameter_prob_codes = ICMP_PARAMPROB_ERRATPTR, ICMP_PARAMPROB_OPTABSENT, ICMP_PARAMPROB_LENGTH
+
+icmp_parameter_prob_packet {
+ type const[ICMP_PARAMPROB, int8]
+ code flags[icmp_parameter_prob_codes, int8]
+ csum csum[parent, inet, int16be]
+ pointer int8
+ length int8
+ unused const[0, int16]
+ iph icmp_ipv4_header
+ data array[int8, 0:8]
+} [packed]
+
+icmp_timestamp_packet {
+ type const[ICMP_TSTAMP, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ id int16be
+ seq_num int16be
+ orig_ts int32be
+ recv_ts int32be
+ trans_ts int32be
+} [packed]
+
+icmp_timestamp_reply_packet {
+ type const[ICMP_TSTAMPREPLY, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ id int16be
+ seq_num int16be
+ orig_ts int32be
+ recv_ts int32be
+ trans_ts int32be
+} [packed]
+
+icmp_info_request_packet {
+ type const[ICMP_IREQ, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ id int16be
+ seq_num int16be
+} [packed]
+
+icmp_info_reply_packet {
+ type const[ICMP_IREQREPLY, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ id int16be
+ seq_num int16be
+} [packed]
+
+icmp_mask_request_packet {
+ type const[ICMP_MASKREQ, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ mask int32be
+} [packed]
+
+icmp_mask_reply_packet {
+ type const[ICMP_MASKREPLY, int8]
+ code const[0, int8]
+ csum csum[parent, inet, int16be]
+ mask int32be
+} [packed]
+
+icmp_packet [
+ generic icmp_generic_packet
+ echo_reply icmp_echo_reply_packet
+ dest_unreach icmp_dest_unreach_packet
+ source_quench icmp_source_quench_packet
+ redirect icmp_redirect_packet
+ echo icmp_echo_packet
+ time_exceeded icmp_time_exceeded_packet
+ parameter_prob icmp_parameter_prob_packet
+ timestamp icmp_timestamp_packet
+ timestamp_reply icmp_timestamp_reply_packet
+ info_request icmp_info_request_packet
+ info_reply icmp_info_reply_packet
+ mask_request icmp_mask_request_packet
+ mask_reply icmp_mask_reply_packet
+] [varlen]
+
+################################################################################
+##################################### IPv6 #####################################
+################################################################################
+
+ipv6_types = IPPROTO_IPV4, IPPROTO_TCP, IPPROTO_ST, IPPROTO_EGP, IPPROTO_PIGP, IPPROTO_RCCMON, IPPROTO_NVPII, IPPROTO_PUP, IPPROTO_ARGUS, IPPROTO_EMCON, IPPROTO_XNET, IPPROTO_CHAOS, IPPROTO_UDP, IPPROTO_MUX, IPPROTO_MEAS, IPPROTO_HMP, IPPROTO_PRM, IPPROTO_IDP, IPPROTO_TRUNK1, IPPROTO_TRUNK2, IPPROTO_LEAF1, IPPROTO_LEAF2, IPPROTO_RDP, IPPROTO_IRTP, IPPROTO_TP, IPPROTO_BLT, IPPROTO_NSP, IPPROTO_INP, IPPROTO_SEP, IPPROTO_3PC, IPPROTO_IDPR, IPPROTO_XTP, IPPROTO_DDP, IPPROTO_CMTP, IPPROTO_TPXX, IPPROTO_IL, IPPROTO_SDRP, IPPROTO_ROUTING, IPPROTO_FRAGMENT, IPPROTO_IDRP, IPPROTO_RSVP, IPPROTO_GRE, IPPROTO_MHRP, IPPROTO_BHA, IPPROTO_ESP, IPPROTO_AH, IPPROTO_INLSP, IPPROTO_SWIPE, IPPROTO_NHRP, IPPROTO_MOBILE, IPPROTO_TLSP, IPPROTO_SKIP, IPPROTO_ICMPV6, IPPROTO_NONE, IPPROTO_DSTOPTS, IPPROTO_AHIP, IPPROTO_CFTP, IPPROTO_HELLO, IPPROTO_SATEXPAK, IPPROTO_KRYPTOLAN, IPPROTO_RVD, IPPROTO_IPPC, IPPROTO_ADFS, IPPROTO_SATMON, IPPROTO_VISA, IPPROTO_IPCV, IPPROTO_CPNX, IPPROTO_CPHB, IPPROTO_WSN, IPPROTO_PVP, IPPROTO_BRSATMON, IPPROTO_ND, IPPROTO_WBMON, IPPROTO_WBEXPAK, IPPROTO_EON, IPPROTO_VMTP, IPPROTO_SVMTP, IPPROTO_VINES, IPPROTO_TTP, IPPROTO_IGP, IPPROTO_DGP, IPPROTO_TCF, IPPROTO_IGRP, IPPROTO_OSPFIGP, IPPROTO_SRPC, IPPROTO_LARP, IPPROTO_MTP, IPPROTO_AX25, IPPROTO_IPEIP, IPPROTO_MICP, IPPROTO_SCCSP, IPPROTO_ETHERIP, IPPROTO_ENCAP, IPPROTO_APES, IPPROTO_GMTP, IPPROTO_IPCOMP, IPPROTO_IPCOMP, IPPROTO_MH, IPPROTO_UDPLITE, IPPROTO_HIP, IPPROTO_SHIM6, IPPROTO_PIM, IPPROTO_CARP, IPPROTO_PGM, IPPROTO_MPLS, IPPROTO_PFSYNC
+
ipv6_addr_empty {
a0 array[const[0x0, int8], 16]
}
-# This corresponds to LOCAL_IPV6 ("fe80::%02hxaa" % pid) in executor/common.h
+# This corresponds to LOCAL_IPV6 ("fe80::%02hxaa" % pid) in executor/common_bsd.h
ipv6_addr_local {
a0 const[0xfe, int8]
a1 const[0x80, int8]
@@ -67,7 +499,7 @@
a4 const[0xaa, int8]
} [packed]
-# This corresponds to REMOTE_IPV6 ("fe80::%02hxbb" % pid) in executor/common.h
+# This corresponds to REMOTE_IPV6 ("fe80::%02hxbb" % pid) in executor/common_bsd.h
ipv6_addr_remote {
a0 const[0xfe, int8]
a1 const[0x80, int8]
@@ -81,9 +513,478 @@
a1 const[1, int64be]
} [packed]
+ipv6_addr_ipv4 {
+ a0 array[const[0x0, int8], 10]
+ a1 array[const[0xff, int8], 2]
+ a3 ipv4_addr
+} [packed]
+
+ipv6_addr_multicast1 {
+ a0 const[0xff, int8]
+ a1 const[0x1, int8]
+ a2 array[const[0x0, int8], 13]
+ a3 const[0x1, int8]
+} [packed]
+
+ipv6_addr_multicast2 {
+ a0 const[0xff, int8]
+ a1 const[0x2, int8]
+ a2 array[const[0x0, int8], 13]
+ a3 const[0x1, int8]
+} [packed]
+
ipv6_addr [
+ rand_addr array[int8, 16]
empty ipv6_addr_empty
local ipv6_addr_local
remote ipv6_addr_remote
loopback ipv6_addr_loopback
-]
+ ipv4 ipv6_addr_ipv4
+ mcast1 ipv6_addr_multicast1
+ mcast2 ipv6_addr_multicast2
+] [size[16]]
+
+# https://tools.ietf.org/html/rfc2402
+# https://tools.ietf.org/html/rfc2406
+# https://tools.ietf.org/html/rfc3775
+
+# https://tools.ietf.org/html/rfc2460#section-4
+# The length field in each of the extension headers specifies the
+# length of the header in 8-octet units not including the first 8 octets.
+
+ipv6_ext_header [
+ hopopts ipv6_hopots_ext_header
+ routing ipv6_rt_hdr
+ fragment ipv6_fragment_ext_header
+ dstopts ipv6_dstopts_ext_header
+] [varlen]
+
+ipv6_hopots_ext_header {
+ next_header flags[ipv6_types, int8]
+ length bytesize8[options, int8]
+ pad array[const[0, int8], 6]
+ options array[ipv6_tlv_option]
+} [packed, align_8]
+
+ipv6_routing_types = IPV6_RTHDR_LOOSE, IPV6_RTHDR_STRICT, IPV6_RTHDR_TYPE_0
+
+ipv6_rt_hdr {
+ next_header flags[ipv6_types, int8]
+ length bytesize8[data, int8]
+ routing_type flags[ipv6_routing_types, int8]
+ segments_left int8
+ reserved const[0, int32]
+ data array[ipv6_addr]
+} [packed, align_8]
+
+ipv6_fragment_ext_header {
+ next_header flags[ipv6_types, int8]
+ reserved1 const[0, int8]
+ fragment_off_hi int8
+ m_flag int8:1
+ reserved2 const[0, int8:2]
+ fragment_off_lo int8:5
+ identification int32[100:104]
+} [packed, align_8]
+
+ipv6_dstopts_ext_header {
+ next_header flags[ipv6_types, int8]
+ length bytesize8[options, int8]
+ pad array[const[0, int8], 6]
+ options array[ipv6_tlv_option]
+} [packed, align_8]
+
+ipv6_tlv_option [
+ generic ipv6_tlv_generic
+ pad1 ipv6_tlv_pad1
+ padn ipv6_tlv_padn
+ jumbo ipv6_tlv_jumbo
+ enc_lim ipv6_tlv_tun_lim
+ ra ipv6_tlv_ra
+] [varlen]
+
+ipv6_tlv_generic {
+ type int8
+ length len[data, int8]
+ data array[int8]
+} [packed]
+
+ipv6_tlv_pad1 {
+ type const[IP6OPT_PAD1, int8]
+ len const[1, int8]
+ pad const[0, int8]
+} [packed]
+
+ipv6_tlv_padn {
+ type const[IP6OPT_PADN, int8]
+ len len[pad, int8]
+ pad array[const[0, int8]]
+} [packed]
+
+ipv6_tlv_jumbo {
+ type const[IP6OPT_JUMBO, int8]
+ len const[4, int8]
+ pkt_len int32be
+} [packed]
+
+ipv6_tlv_tun_lim {
+ type const[IP6OPT_TUNNEL_LIMIT, int8]
+ len const[1, int8]
+ encap_limit int8
+} [packed]
+
+ipv6_tlv_ra {
+ type const[IP6OPT_ROUTER_ALERT, int8]
+ len const[2, int8]
+ ra int16be
+} [packed]
+
+ipv6_packet {
+ priority int8:4
+ version const[6, int8:4]
+ flow_label array[int8, 3]
+# TODO: flow_label is actually 20 bits, 4 bits are part of priority
+ length len[payload, int16be]
+ next_header flags[ipv6_types, int8]
+ hop_limit int8
+ src_ip ipv6_addr
+ dst_ip ipv6_addr
+ payload ipv6_packet_payload
+} [packed]
+
+ipv6_packet_payload {
+ ext_headers array[ipv6_ext_header]
+ payload ipv6_payload
+} [packed]
+
+ipv6_payload [
+ generic array[int8]
+ tcp tcp_packet
+ udp udp_packet
+ icmpv6 icmpv6_packet
+] [varlen]
+
+################################################################################
+##################################### ICMPv6 ###################################
+################################################################################
+
+# https://tools.ietf.org/html/rfc4443
+# http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml
+
+icmpv6_ipv6_packet {
+ priority int8:4
+ version const[6, int8:4]
+ flow_label array[int8, 3]
+ length int16be
+ next_header flags[ipv6_types, int8]
+ hop_limit int8
+ src_ip ipv6_addr
+ dst_ip ipv6_addr
+ ext_headers array[ipv6_ext_header]
+ data array[int8]
+} [packed]
+
+icmpv6_dest_unreach_codes = ICMP6_DST_UNREACH_NOROUTE, ICMP6_DST_UNREACH_ADMIN, ICMP6_DST_UNREACH_NOTNEIGHBOR, ICMP6_DST_UNREACH_BEYONDSCOPE, ICMP6_DST_UNREACH_ADDR, ICMP6_DST_UNREACH_NOPORT, ICMP6_DST_UNREACH_POLICY, ICMP6_DST_UNREACH_REJECT, ICMP6_DST_UNREACH_SRCROUTE
+
+icmpv6_dest_unreach_packet {
+ type const[ICMP6_DST_UNREACH, int8]
+ code flags[icmpv6_dest_unreach_codes, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ length int8
+ unused array[const[0, int8], 3]
+ packet icmpv6_ipv6_packet
+} [packed]
+
+icmpv6_pkt_toobig_packet {
+ type const[ICMP6_PACKET_TOO_BIG, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ mtu int32be
+ packet icmpv6_ipv6_packet
+} [packed]
+
+icmpv6_time_exceed_codes = ICMP6_TIME_EXCEED_TRANSIT, ICMP6_TIME_EXCEED_REASSEMBLY
+
+icmpv6_time_exceed_packet {
+ type const[ICMP6_TIME_EXCEEDED, int8]
+ code flags[icmpv6_time_exceed_codes, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ length int8
+ unused array[const[0, int8], 3]
+ packet icmpv6_ipv6_packet
+} [packed]
+
+icmpv6_param_prob_codes = ICMP6_PARAMPROB_HEADER, ICMP6_PARAMPROB_NEXTHEADER, ICMP6_PARAMPROB_OPTION
+
+icmpv6_param_prob_packet {
+ type const[ICMP6_PARAM_PROB, int8]
+ code flags[icmpv6_param_prob_codes, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ pointer int32be
+ packet icmpv6_ipv6_packet
+} [packed]
+
+icmpv6_echo_request_packet {
+ type const[ICMP6_ECHO_REQUEST, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ id int16be
+ seq_num int16be
+ data array[int8]
+} [packed]
+
+icmpv6_echo_reply_packet {
+ type const[ICMP6_ECHO_REPLY, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ id int16be
+ seq_num int16be
+ data array[int8]
+} [packed]
+
+icmpv6_mld_types = MLD_LISTENER_QUERY, MLD_LISTENER_REPORT, MLD_LISTENER_REDUCTION
+
+# https://tools.ietf.org/html/rfc2710#section-3
+icmpv6_mld_packet {
+ type flags[icmpv6_mld_types, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ mrd int16be
+ unused int16
+ addr ipv6_addr
+} [packed]
+
+icmpv6_ni_types = ICMP6_NI_QUERY, ICMP6_NI_REPLY
+
+# https://tools.ietf.org/html/rfc4620#section-4
+icmpv6_ni_packet {
+ type flags[icmpv6_ni_types, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ qtype int16be
+ flags int16be
+ nonce int64be
+ data array[int8]
+} [packed]
+
+icmpv6_ndisc_option_types = ND_OPT_SOURCE_LINKADDR, ND_OPT_TARGET_LINKADDR, ND_OPT_PREFIX_INFORMATION, ND_OPT_REDIRECTED_HEADER, ND_OPT_MTU, ND_OPT_NONCE, ND_OPT_ROUTE_INFO, ND_OPT_RDNSS, ND_OPT_DNSSL
+
+# https://tools.ietf.org/html/rfc4861#section-4.6
+icmpv6_ndisc_option {
+ option_type flags[icmpv6_ndisc_option_types, int8]
+ length bytesize8[parent, int8]
+# TODO: define the option formats
+ data array[int8]
+} [packed]
+
+# https://tools.ietf.org/html/rfc4861#section-4.1
+icmpv6_ndisc_router_solicit_packet {
+ type const[ND_ROUTER_SOLICIT, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ unused array[const[0, int8], 4]
+ options array[icmpv6_ndisc_option]
+} [packed]
+
+# https://tools.ietf.org/html/rfc4861#section-4.2
+icmpv6_ndisc_router_advert_packet {
+ type const[ND_ROUTER_ADVERT, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ cur_hop_limit int8
+# TODO: Implement bitflags for the router advert flags
+ router_flags int8
+ router_lifetime int16
+ reachable_time int32
+ retrans_time int32
+ options array[icmpv6_ndisc_option]
+} [packed]
+
+# https://tools.ietf.org/html/rfc4861#section-4.3
+icmpv6_ndisc_neigh_solicit_packet {
+ type const[ND_NEIGHBOR_SOLICIT, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ target_addr ipv6_addr
+ options array[icmpv6_ndisc_option]
+} [packed]
+
+# https://tools.ietf.org/html/rfc4861#section-4.4
+icmpv6_ndisc_neigh_advert_packet {
+ type const[ND_NEIGHBOR_ADVERT, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+# TODO: Implement bitflags for the neighbor advert flags
+ neighbor_flags int8
+ unused array[const[0, int8], 3]
+ target_addr ipv6_addr
+ options array[icmpv6_ndisc_option]
+} [packed]
+
+# https://tools.ietf.org/html/rfc4861#section-4.5
+icmpv6_ndisc_redir_packet {
+ type const[ND_REDIRECT, int8]
+ code const[0, int8]
+ csum csum[parent, pseudo, IPPROTO_ICMPV6, int16be]
+ unused array[const[0, int8], 4]
+ target_addr ipv6_addr
+ dst_addr ipv6_addr
+ options array[icmpv6_ndisc_option]
+} [packed]
+
+icmpv6_packet [
+ dest_unreach icmpv6_dest_unreach_packet
+ pkt_toobig icmpv6_pkt_toobig_packet
+ time_exceed icmpv6_time_exceed_packet
+ param_prob icmpv6_param_prob_packet
+ echo_request icmpv6_echo_request_packet
+ echo_reply icmpv6_echo_reply_packet
+ mld icmpv6_mld_packet
+ ni icmpv6_ni_packet
+ ndisc_rs icmpv6_ndisc_router_solicit_packet
+ ndisc_ra icmpv6_ndisc_router_advert_packet
+ ndisc_na icmpv6_ndisc_neigh_advert_packet
+ ndisc_ns icmpv6_ndisc_neigh_solicit_packet
+ ndisc_redir icmpv6_ndisc_redir_packet
+] [varlen]
+
+################################################################################
+###################################### TCP #####################################
+################################################################################
+
+# https://tools.ietf.org/html/rfc793#section-3.1
+# https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure
+# http://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml
+
+tcp_option [
+ generic tcp_generic_option
+ nop tcp_nop_option
+ eol tcp_eol_option
+ mss tcp_mss_option
+ window tcp_window_option
+ sack_perm tcp_sack_perm_option
+ sack tcp_sack_option
+ timestamp tcp_timestamp_option
+ md5sig tcp_md5sig_option
+ fastopen tcp_fastopen_option
+] [varlen]
+
+tcp_option_types = TCPOPT_EOL, TCPOPT_NOP, TCPOPT_MAXSEG, TCPOPT_WINDOW, TCPOPT_SACK_PERMITTED, TCPOPT_SACK, TCPOPT_TIMESTAMP, TCPOPT_SIGNATURE, TCPOPT_FAST_OPEN
+
+tcp_generic_option {
+ type flags[tcp_option_types, int8]
+ length len[parent, int8]
+ data array[int8, 0:16]
+} [packed]
+
+# https://tools.ietf.org/html/rfc793#section-3.1
+tcp_eol_option {
+ type const[TCPOPT_EOL, int8]
+} [packed]
+
+# https://tools.ietf.org/html/rfc793#section-3.1
+tcp_nop_option {
+ type const[TCPOPT_NOP, int8]
+} [packed]
+
+# https://tools.ietf.org/html/rfc793#section-3.1
+tcp_mss_option {
+ type const[TCPOPT_MAXSEG, int8]
+ length len[parent, int8]
+ seg_size int16
+} [packed]
+
+# https://tools.ietf.org/html/rfc7323#section-2
+tcp_window_option {
+ type const[TCPOPT_WINDOW, int8]
+ length len[parent, int8]
+ shift int8
+} [packed]
+
+# https://tools.ietf.org/html/rfc2018#section-2
+tcp_sack_perm_option {
+ type const[TCPOPT_SACK_PERMITTED, int8]
+ length len[parent, int8]
+} [packed]
+
+# https://tools.ietf.org/html/rfc2018#section-3
+tcp_sack_option {
+ type const[TCPOPT_SACK, int8]
+ length len[parent, int8]
+ data array[int32be]
+} [packed]
+
+# https://tools.ietf.org/html/rfc7323#section-3
+tcp_timestamp_option {
+ type const[TCPOPT_TIMESTAMP, int8]
+ length len[parent, int8]
+ tsval int32be
+ tsecr int32be
+} [packed]
+
+# https://tools.ietf.org/html/rfc2385#section-3.0
+tcp_md5sig_option {
+ type const[TCPOPT_SIGNATURE, int8]
+ length len[parent, int8]
+ md5 array[int8, 16]
+} [packed]
+
+# https://tools.ietf.org/html/rfc7413#section-4.1.1
+tcp_fastopen_option {
+ type const[TCPOPT_FAST_OPEN, int8]
+ length len[parent, int8]
+ data array[int8, 0:16]
+} [packed]
+
+tcp_options {
+ options array[tcp_option]
+} [packed, align_4]
+
+tcp_flags = 0, TH_FIN, TH_SYN, TH_RST, TH_PUSH, TH_ACK, TH_URG, TH_ECE, TH_CWR
+
+tcp_header {
+ src_port sock_port
+ dst_port sock_port
+ seq_num tcp_seq_num
+ ack_num tcp_seq_num
+ ns int8:1
+ reserved const[0, int8:3]
+ data_off bytesize4[parent, int8:4]
+ flags flags[tcp_flags, int8]
+ window_size int16be
+ csum csum[tcp_packet, pseudo, IPPROTO_TCP, int16be]
+ urg_ptr int16be
+ options tcp_options
+} [packed]
+
+tcp_packet {
+ header tcp_header
+ payload tcp_payload
+} [packed]
+
+tcp_payload {
+ payload array[int8]
+} [packed]
+
+################################################################################
+###################################### UDP #####################################
+################################################################################
+
+# https://tools.ietf.org/html/rfc768
+# https://en.wikipedia.org/wiki/User_Datagram_Protocol#Packet_structure
+
+udp_header {
+ src_port sock_port
+ dst_port sock_port
+ length len[parent, int16be]
+ csum csum[parent, pseudo, IPPROTO_UDP, int16be]
+} [packed]
+
+udp_packet {
+ header udp_header
+ payload udp_payload
+} [packed]
+
+udp_payload {
+ payload array[int8]
+} [packed]
diff --git a/sys/freebsd/vnet_amd64.const b/sys/freebsd/vnet_amd64.const
new file mode 100644
index 0000000..caade90
--- /dev/null
+++ b/sys/freebsd/vnet_amd64.const
@@ -0,0 +1,425 @@
+# AUTOGENERATED FILE
+ARPHRD_ETHER = 1
+ARPHRD_FRELAY = 15
+ARPHRD_IEEE1394 = 24
+ARPHRD_IEEE802 = 6
+ARPHRD_INFINIBAND = 32
+ARPOP_INVREPLY = 9
+ARPOP_INVREQUEST = 8
+ARPOP_REPLY = 2
+ARPOP_REQUEST = 1
+ARPOP_REVREPLY = 4
+ARPOP_REVREQUEST = 3
+ETHERTYPE_8023 = 4
+ETHERTYPE_AARP = 33011
+ETHERTYPE_ACCTON = 33680
+ETHERTYPE_AEONIC = 32822
+ETHERTYPE_ALPHA = 33098
+ETHERTYPE_AMBER = 24584
+ETHERTYPE_AMOEBA = 33093
+ETHERTYPE_APOLLO = 33015
+ETHERTYPE_APOLLODOMAIN = 32793
+ETHERTYPE_APPLITEK = 32967
+ETHERTYPE_ARGONAUT = 32826
+ETHERTYPE_ARP = 2054
+ETHERTYPE_ATALK = 32923
+ETHERTYPE_ATOMIC = 34527
+ETHERTYPE_ATT = 32873
+ETHERTYPE_ATTSTANFORD = 32776
+ETHERTYPE_AUTOPHON = 32874
+ETHERTYPE_AXIS = 34902
+ETHERTYPE_BCLOOP = 36867
+ETHERTYPE_BOFL = 33026
+ETHERTYPE_CABLETRON = 28724
+ETHERTYPE_CHAOS = 2052
+ETHERTYPE_COMDESIGN = 32876
+ETHERTYPE_COMPUGRAPHIC = 32877
+ETHERTYPE_COUNTERPOINT = 32866
+ETHERTYPE_CRONUS = 32772
+ETHERTYPE_CRONUSVLN = 32771
+ETHERTYPE_DCA = 4660
+ETHERTYPE_DDE = 32891
+ETHERTYPE_DEBNI = 43690
+ETHERTYPE_DECAM = 32840
+ETHERTYPE_DECCUST = 24582
+ETHERTYPE_DECDIAG = 24581
+ETHERTYPE_DECDNS = 32828
+ETHERTYPE_DECDTS = 32830
+ETHERTYPE_DECEXPER = 24576
+ETHERTYPE_DECLAST = 32833
+ETHERTYPE_DECLTM = 32831
+ETHERTYPE_DECMUMPS = 24585
+ETHERTYPE_DECNETBIOS = 32832
+ETHERTYPE_DECnet = 24579
+ETHERTYPE_DELTACON = 34526
+ETHERTYPE_DIDDLE = 17185
+ETHERTYPE_DLOG1 = 1632
+ETHERTYPE_DLOG2 = 1633
+ETHERTYPE_DOGFIGHT = 6537
+ETHERTYPE_DSMD = 32825
+ETHERTYPE_ECMA = 2051
+ETHERTYPE_ENCRYPT = 32829
+ETHERTYPE_ES = 32861
+ETHERTYPE_EXCELAN = 32784
+ETHERTYPE_EXPERDATA = 32841
+ETHERTYPE_FLIP = 33094
+ETHERTYPE_FLOWCONTROL = 34824
+ETHERTYPE_FRARP = 2056
+ETHERTYPE_GENDYN = 32872
+ETHERTYPE_HAYES = 33072
+ETHERTYPE_HIPPI_FP = 33152
+ETHERTYPE_HITACHI = 34848
+ETHERTYPE_HP = 32773
+ETHERTYPE_IEEEPUP = 2560
+ETHERTYPE_IEEEPUPAT = 2561
+ETHERTYPE_IMLBL = 19522
+ETHERTYPE_IMLBLDIAG = 16972
+ETHERTYPE_IP = 2048
+ETHERTYPE_IPAS = 34668
+ETHERTYPE_IPV6 = 34525
+ETHERTYPE_IPX = 33079
+ETHERTYPE_IPXNEW = 32823
+ETHERTYPE_KALPANA = 34178
+ETHERTYPE_LANBRIDGE = 32824
+ETHERTYPE_LANPROBE = 34952
+ETHERTYPE_LAT = 24580
+ETHERTYPE_LITTLE = 32864
+ETHERTYPE_LOGICRAFT = 33096
+ETHERTYPE_LOOPBACK = 36864
+ETHERTYPE_MATRA = 32890
+ETHERTYPE_MERIT = 32892
+ETHERTYPE_MICP = 34618
+ETHERTYPE_MOPDL = 24577
+ETHERTYPE_MOPRC = 24578
+ETHERTYPE_MOTOROLA = 33165
+ETHERTYPE_MPLS = 34887
+ETHERTYPE_MPLS_MCAST = 34888
+ETHERTYPE_MUMPS = 33087
+ETHERTYPE_NBPCC = 15364
+ETHERTYPE_NBPCLAIM = 15369
+ETHERTYPE_NBPCLREQ = 15365
+ETHERTYPE_NBPCLRSP = 15366
+ETHERTYPE_NBPCREQ = 15362
+ETHERTYPE_NBPCRSP = 15363
+ETHERTYPE_NBPDG = 15367
+ETHERTYPE_NBPDGB = 15368
+ETHERTYPE_NBPDLTE = 15370
+ETHERTYPE_NBPRAR = 15372
+ETHERTYPE_NBPRAS = 15371
+ETHERTYPE_NBPRST = 15373
+ETHERTYPE_NBPSCD = 15361
+ETHERTYPE_NBPVCD = 15360
+ETHERTYPE_NBS = 2050
+ETHERTYPE_NCD = 33097
+ETHERTYPE_NESTAR = 32774
+ETHERTYPE_NETBEUI = 33169
+ETHERTYPE_NOVELL = 33080
+ETHERTYPE_NS = 1536
+ETHERTYPE_NSAT = 1537
+ETHERTYPE_NSCOMPAT = 2055
+ETHERTYPE_OS9 = 28679
+ETHERTYPE_OS9NET = 28681
+ETHERTYPE_PACER = 32966
+ETHERTYPE_PAE = 34958
+ETHERTYPE_PCS = 16962
+ETHERTYPE_PLANNING = 32836
+ETHERTYPE_PPP = 34827
+ETHERTYPE_PPPOE = 34916
+ETHERTYPE_PPPOEDISC = 34915
+ETHERTYPE_PRIMENTS = 28721
+ETHERTYPE_PUP = 512
+ETHERTYPE_PUPAT = 512
+ETHERTYPE_QINQ = 34984
+ETHERTYPE_RACAL = 28720
+ETHERTYPE_RATIONAL = 33104
+ETHERTYPE_RAWFR = 25945
+ETHERTYPE_RCL = 6549
+ETHERTYPE_RDP = 34617
+ETHERTYPE_RETIX = 33010
+ETHERTYPE_REVARP = 32821
+ETHERTYPE_SCA = 24583
+ETHERTYPE_SECTRA = 34523
+ETHERTYPE_SECUREDATA = 34669
+ETHERTYPE_SGITW = 33150
+ETHERTYPE_SG_BOUNCE = 32790
+ETHERTYPE_SG_DIAG = 32787
+ETHERTYPE_SG_NETGAMES = 32788
+ETHERTYPE_SG_RESV = 32789
+ETHERTYPE_SIMNET = 21000
+ETHERTYPE_SLOW = 34825
+ETHERTYPE_SNA = 32981
+ETHERTYPE_SNMP = 33100
+ETHERTYPE_SONIX = 64245
+ETHERTYPE_SPIDER = 32927
+ETHERTYPE_SPRITE = 1280
+ETHERTYPE_STP = 33153
+ETHERTYPE_TALARIS = 33067
+ETHERTYPE_TALARISMC = 34091
+ETHERTYPE_TCPCOMP = 34667
+ETHERTYPE_TCPSM = 36866
+ETHERTYPE_TEC = 33103
+ETHERTYPE_TEST = 34850
+ETHERTYPE_TIGAN = 32815
+ETHERTYPE_TRANSETHER = 25944
+ETHERTYPE_TYMSHARE = 32814
+ETHERTYPE_UBBST = 28677
+ETHERTYPE_UBDEBUG = 2304
+ETHERTYPE_UBDIAGLOOP = 28674
+ETHERTYPE_UBDL = 28672
+ETHERTYPE_UBNIU = 28673
+ETHERTYPE_UBNMC = 28675
+ETHERTYPE_VALID = 5632
+ETHERTYPE_VARIAN = 32989
+ETHERTYPE_VAXELN = 32827
+ETHERTYPE_VEECO = 32871
+ETHERTYPE_VEXP = 32859
+ETHERTYPE_VGLAB = 33073
+ETHERTYPE_VINES = 2989
+ETHERTYPE_VINESECHO = 2991
+ETHERTYPE_VINESLOOP = 2990
+ETHERTYPE_VITAL = 65280
+ETHERTYPE_VLAN = 33024
+ETHERTYPE_VLTLMAN = 32896
+ETHERTYPE_VPROD = 32860
+ETHERTYPE_VURESERVED = 33095
+ETHERTYPE_WATERLOO = 33072
+ETHERTYPE_WELLFLEET = 33027
+ETHERTYPE_X25 = 2053
+ETHERTYPE_X75 = 2049
+ETHERTYPE_XNSSM = 36865
+ETHERTYPE_XTP = 33149
+ICMP6_DST_UNREACH = 1
+ICMP6_DST_UNREACH_ADDR = 3
+ICMP6_DST_UNREACH_ADMIN = 1
+ICMP6_DST_UNREACH_BEYONDSCOPE = 2
+ICMP6_DST_UNREACH_NOPORT = 4
+ICMP6_DST_UNREACH_NOROUTE = 0
+ICMP6_DST_UNREACH_NOTNEIGHBOR = 2
+ICMP6_DST_UNREACH_POLICY = 5
+ICMP6_DST_UNREACH_REJECT = 6
+ICMP6_DST_UNREACH_SRCROUTE = 7
+ICMP6_ECHO_REPLY = 129
+ICMP6_ECHO_REQUEST = 128
+ICMP6_NI_QUERY = 139
+ICMP6_NI_REPLY = 140
+ICMP6_PACKET_TOO_BIG = 2
+ICMP6_PARAMPROB_HEADER = 0
+ICMP6_PARAMPROB_NEXTHEADER = 1
+ICMP6_PARAMPROB_OPTION = 2
+ICMP6_PARAM_PROB = 4
+ICMP6_TIME_EXCEEDED = 3
+ICMP6_TIME_EXCEED_REASSEMBLY = 1
+ICMP6_TIME_EXCEED_TRANSIT = 0
+ICMP_ALTHOSTADDR = 6
+ICMP_DATACONVERR = 31
+ICMP_ECHO = 8
+ICMP_ECHOREPLY = 0
+ICMP_IPV6_IAMHERE = 34
+ICMP_IPV6_WHEREAREYOU = 33
+ICMP_IREQ = 15
+ICMP_IREQREPLY = 16
+ICMP_MASKREPLY = 18
+ICMP_MASKREQ = 17
+ICMP_MOBILE_REDIRECT = 32
+ICMP_MOBILE_REGREPLY = 36
+ICMP_MOBILE_REGREQUEST = 35
+ICMP_PARAMPROB = 12
+ICMP_PARAMPROB_ERRATPTR = 0
+ICMP_PARAMPROB_LENGTH = 2
+ICMP_PARAMPROB_OPTABSENT = 1
+ICMP_PHOTURIS = 40
+ICMP_REDIRECT = 5
+ICMP_REDIRECT_HOST = 1
+ICMP_REDIRECT_NET = 0
+ICMP_REDIRECT_TOSHOST = 3
+ICMP_REDIRECT_TOSNET = 2
+ICMP_ROUTERADVERT = 9
+ICMP_ROUTERSOLICIT = 10
+ICMP_SKIP = 39
+ICMP_SOURCEQUENCH = 4
+ICMP_TIMXCEED = 11
+ICMP_TIMXCEED_INTRANS = 0
+ICMP_TIMXCEED_REASS = 1
+ICMP_TRACEROUTE = 30
+ICMP_TSTAMP = 13
+ICMP_TSTAMPREPLY = 14
+ICMP_UNREACH = 3
+ICMP_UNREACH_FILTER_PROHIB = 13
+ICMP_UNREACH_HOST = 1
+ICMP_UNREACH_HOST_PRECEDENCE = 14
+ICMP_UNREACH_HOST_PROHIB = 10
+ICMP_UNREACH_HOST_UNKNOWN = 7
+ICMP_UNREACH_ISOLATED = 8
+ICMP_UNREACH_NEEDFRAG = 4
+ICMP_UNREACH_NET = 0
+ICMP_UNREACH_NET_PROHIB = 9
+ICMP_UNREACH_NET_UNKNOWN = 6
+ICMP_UNREACH_PORT = 3
+ICMP_UNREACH_PRECEDENCE_CUTOFF = 15
+ICMP_UNREACH_PROTOCOL = 2
+ICMP_UNREACH_SRCFAIL = 5
+ICMP_UNREACH_TOSHOST = 12
+ICMP_UNREACH_TOSNET = 11
+IP6OPT_JUMBO = 194
+IP6OPT_PAD1 = 0
+IP6OPT_PADN = 1
+IP6OPT_ROUTER_ALERT = 5
+IP6OPT_TUNNEL_LIMIT = 4
+IPOPT_CIPSO = 134
+IPOPT_EOL = 0
+IPOPT_ESO = 133
+IPOPT_LSRR = 131
+IPOPT_NOP = 1
+IPOPT_RA = 148
+IPOPT_RR = 7
+IPOPT_SATID = 136
+IPOPT_SECURITY = 130
+IPOPT_SSRR = 137
+IPOPT_TS = 68
+IPOPT_TS_PRESPEC = 3
+IPOPT_TS_TSANDADDR = 1
+IPOPT_TS_TSONLY = 0
+IPPROTO_3PC = 34
+IPPROTO_ADFS = 68
+IPPROTO_AH = 51
+IPPROTO_AHIP = 61
+IPPROTO_APES = 99
+IPPROTO_ARGUS = 13
+IPPROTO_AX25 = 93
+IPPROTO_BHA = 49
+IPPROTO_BLT = 30
+IPPROTO_BRSATMON = 76
+IPPROTO_CARP = 112
+IPPROTO_CFTP = 62
+IPPROTO_CHAOS = 16
+IPPROTO_CMTP = 38
+IPPROTO_CPHB = 73
+IPPROTO_CPNX = 72
+IPPROTO_DDP = 37
+IPPROTO_DGP = 86
+IPPROTO_DSTOPTS = 60
+IPPROTO_EGP = 8
+IPPROTO_EMCON = 14
+IPPROTO_ENCAP = 98
+IPPROTO_EON = 80
+IPPROTO_ESP = 50
+IPPROTO_ETHERIP = 97
+IPPROTO_FRAGMENT = 44
+IPPROTO_GMTP = 100
+IPPROTO_GRE = 47
+IPPROTO_HELLO = 63
+IPPROTO_HIP = 139
+IPPROTO_HMP = 20
+IPPROTO_ICMP = 1
+IPPROTO_ICMPV6 = 58
+IPPROTO_IDP = 22
+IPPROTO_IDPR = 35
+IPPROTO_IDRP = 45
+IPPROTO_IGMP = 2
+IPPROTO_IGP = 85
+IPPROTO_IGRP = 88
+IPPROTO_IL = 40
+IPPROTO_INLSP = 52
+IPPROTO_INP = 32
+IPPROTO_IPCOMP = 108
+IPPROTO_IPCV = 71
+IPPROTO_IPEIP = 94
+IPPROTO_IPPC = 67
+IPPROTO_IPV4 = 4
+IPPROTO_IRTP = 28
+IPPROTO_KRYPTOLAN = 65
+IPPROTO_LARP = 91
+IPPROTO_LEAF1 = 25
+IPPROTO_LEAF2 = 26
+IPPROTO_MEAS = 19
+IPPROTO_MH = 135
+IPPROTO_MHRP = 48
+IPPROTO_MICP = 95
+IPPROTO_MOBILE = 55
+IPPROTO_MPLS = 137
+IPPROTO_MTP = 92
+IPPROTO_MUX = 18
+IPPROTO_ND = 77
+IPPROTO_NHRP = 54
+IPPROTO_NONE = 59
+IPPROTO_NSP = 31
+IPPROTO_NVPII = 11
+IPPROTO_OSPFIGP = 89
+IPPROTO_PFSYNC = 240
+IPPROTO_PGM = 113
+IPPROTO_PIGP = 9
+IPPROTO_PIM = 103
+IPPROTO_PRM = 21
+IPPROTO_PUP = 12
+IPPROTO_PVP = 75
+IPPROTO_RCCMON = 10
+IPPROTO_RDP = 27
+IPPROTO_ROUTING = 43
+IPPROTO_RSVP = 46
+IPPROTO_RVD = 66
+IPPROTO_SATEXPAK = 64
+IPPROTO_SATMON = 69
+IPPROTO_SCCSP = 96
+IPPROTO_SDRP = 42
+IPPROTO_SEP = 33
+IPPROTO_SHIM6 = 140
+IPPROTO_SKIP = 57
+IPPROTO_SRPC = 90
+IPPROTO_ST = 7
+IPPROTO_SVMTP = 82
+IPPROTO_SWIPE = 53
+IPPROTO_TCF = 87
+IPPROTO_TCP = 6
+IPPROTO_TLSP = 56
+IPPROTO_TP = 29
+IPPROTO_TPXX = 39
+IPPROTO_TRUNK1 = 23
+IPPROTO_TRUNK2 = 24
+IPPROTO_TTP = 84
+IPPROTO_UDP = 17
+IPPROTO_UDPLITE = 136
+IPPROTO_VINES = 83
+IPPROTO_VISA = 70
+IPPROTO_VMTP = 81
+IPPROTO_WBEXPAK = 79
+IPPROTO_WBMON = 78
+IPPROTO_WSN = 74
+IPPROTO_XNET = 15
+IPPROTO_XTP = 36
+IPV6_RTHDR_LOOSE = 0
+IPV6_RTHDR_STRICT = 1
+IPV6_RTHDR_TYPE_0 = 0
+MLD_LISTENER_QUERY = 130
+MLD_LISTENER_REDUCTION = 132
+MLD_LISTENER_REPORT = 131
+ND_NEIGHBOR_ADVERT = 136
+ND_NEIGHBOR_SOLICIT = 135
+ND_OPT_DNSSL = 31
+ND_OPT_MTU = 5
+ND_OPT_NONCE = 14
+ND_OPT_PREFIX_INFORMATION = 3
+ND_OPT_RDNSS = 25
+ND_OPT_REDIRECTED_HEADER = 4
+ND_OPT_ROUTE_INFO = 24
+ND_OPT_SOURCE_LINKADDR = 1
+ND_OPT_TARGET_LINKADDR = 2
+ND_REDIRECT = 137
+ND_ROUTER_ADVERT = 134
+ND_ROUTER_SOLICIT = 133
+TCPOPT_EOL = 0
+TCPOPT_FAST_OPEN = 34
+TCPOPT_MAXSEG = 2
+TCPOPT_NOP = 1
+TCPOPT_SACK = 5
+TCPOPT_SACK_PERMITTED = 4
+TCPOPT_SIGNATURE = 19
+TCPOPT_TIMESTAMP = 8
+TCPOPT_WINDOW = 3
+TH_ACK = 16
+TH_CWR = 128
+TH_ECE = 64
+TH_FIN = 1
+TH_PUSH = 8
+TH_RST = 4
+TH_SYN = 2
+TH_URG = 32