aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorGreg Steuck <greg@nest.cx>2020-04-25 09:33:49 -0700
committerDmitry Vyukov <dvyukov@google.com>2020-04-26 04:43:15 +0200
commit99b258ddc33e296f07588a15397ae426c6ed236c (patch)
tree218300e17ac828aae107106f74ef2dcec5ff7366 /sys
parent32c0bff1a887caf206ddd5ea1a8ae9df8dd166f4 (diff)
sys/openbsd: extend vnet
* started with freebsd/vnet.txt * pruned unsupported items * gmake extract * gmake generate_sys * gmake fomat
Diffstat (limited to 'sys')
-rw-r--r--sys/openbsd/gen/amd64.go1046
-rw-r--r--sys/openbsd/vnet.txt972
-rw-r--r--sys/openbsd/vnet_amd64.const338
3 files changed, 2349 insertions, 7 deletions
diff --git a/sys/openbsd/gen/amd64.go b/sys/openbsd/gen/amd64.go
index ef120292f..135db0751 100644
--- a/sys/openbsd/gen/amd64.go
+++ b/sys/openbsd/gen/amd64.go
@@ -43,6 +43,32 @@ var resources_amd64 = []*ResourceDesc{
}
var structDescs_amd64 = []*KeyedStruct{
+ {StructKey{Name: "arp_ether_ipv4_packet"}, &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"},
+ }}},
+ {StructKey{Name: "arp_generic_packet"}, &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}},
+ &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, 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}}, Path: []string{"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},
+ }}},
+ {StructKey{Name: "arp_packet"}, &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"},
+ }}},
{StructKey{Name: "bf_insns"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "bf_insns", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "code", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "jt", TypeSize: 1}}},
@@ -97,6 +123,37 @@ var structDescs_amd64 = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
&FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "dk_diskmap_flags", FldName: "flags", TypeSize: 4}}, []uint64{1, 2}, true},
}}},
+ {StructKey{Name: "eth2_packet"}, &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_t]"}, FldName: "ipv6"},
+ }}},
+ {StructKey{Name: "eth2_packet_generic"}, &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, 34887, 34888, 34902, 34915, 34916, 34952, 34958, 34984, 36864, 36865, 36866, 36867, 43690, 64245, 65280}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "eth2_packet_t[ETHERTYPE_ARP, arp_packet]"}, &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"},
+ }}},
+ {StructKey{Name: "eth2_packet_t[ETHERTYPE_IP, ipv4_packet]"}, &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"},
+ }}},
+ {StructKey{Name: "eth2_packet_t[ETHERTYPE_IPV6, ipv6_packet_t]"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "eth2_packet_t[ETHERTYPE_IPV6, ipv6_packet_t]", 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_t"}, FldName: "payload"},
+ }}},
+ {StructKey{Name: "eth_packet"}, &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"},
+ }}},
+ {StructKey{Name: "eth_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "eth_payload", IsVarlen: true}, Fields: []Type{
+ &UnionType{Key: StructKey{Name: "eth2_packet"}, FldName: "eth2"},
+ }}},
{StructKey{"fd_set", 2}, &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}}},
@@ -116,6 +173,289 @@ var structDescs_amd64 = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
}}},
+ {StructKey{Name: "icmp_dest_unreach_packet"}, &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},
+ }}},
+ {StructKey{Name: "icmp_echo_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmp_echo_reply_packet"}, &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: 1, 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}},
+ }}},
+ {StructKey{Name: "icmp_generic_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmp_info_reply_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmp_info_request_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmp_ipv4_header"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "icmp_ipv4_header", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "ihl"}, BitfieldLen: 4, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4, BitfieldUnit: 1}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "ecn"}, BitfieldLen: 2, BitfieldUnit: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "dscp", TypeSize: 1}, BitfieldOff: 2, BitfieldLen: 6, BitfieldUnit: 1}},
+ &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: 1, 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{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &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"},
+ }}},
+ {StructKey{Name: "icmp_mask_reply_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmp_mask_request_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmp_packet"}, &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"},
+ }}},
+ {StructKey{Name: "icmp_parameter_prob_packet"}, &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}},
+ &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},
+ }}},
+ {StructKey{Name: "icmp_redirect_packet"}, &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},
+ }}},
+ {StructKey{Name: "icmp_source_quench_packet"}, &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},
+ }}},
+ {StructKey{Name: "icmp_time_exceeded_packet"}, &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}},
+ &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},
+ }}},
+ {StructKey{Name: "icmp_timestamp_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmp_timestamp_reply_packet"}, &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}},
+ }}},
+ {StructKey{Name: "icmpv6_dest_unreach_packet"}, &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, 3, 4}},
+ &CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "length", TypeSize: 1}}},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 3}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 3, 3},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
+ {StructKey{Name: "icmpv6_echo_reply_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ }}},
+ {StructKey{Name: "icmpv6_echo_request_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ }}},
+ {StructKey{Name: "icmpv6_ipv6_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "icmpv6_ipv6_packet", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "priority"}, BitfieldLen: 4, BitfieldUnit: 1}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4, BitfieldUnit: 1}, 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{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &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}},
+ }}},
+ {StructKey{Name: "icmpv6_mld_packet"}, &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}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}},
+ &CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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"},
+ }}},
+ {StructKey{Name: "icmpv6_ndisc_neigh_advert_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "neighbor_flags", TypeSize: 1}}},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 3}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 3, 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"}}},
+ }}},
+ {StructKey{Name: "icmpv6_ndisc_neigh_solicit_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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"}}},
+ }}},
+ {StructKey{Name: "icmpv6_ndisc_option"}, &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, 24, 25, 31}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Path: []string{"parent"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "icmpv6_ndisc_redir_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 58},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 4}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 4, 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"}}},
+ }}},
+ {StructKey{Name: "icmpv6_ndisc_router_advert_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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"}}},
+ }}},
+ {StructKey{Name: "icmpv6_ndisc_router_solicit_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 58},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 4}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 4, 4},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "icmpv6_ndisc_option"}}},
+ }}},
+ {StructKey{Name: "icmpv6_ni_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ }}},
+ {StructKey{Name: "icmpv6_packet"}, &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"},
+ }}},
+ {StructKey{Name: "icmpv6_param_prob_packet"}, &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}},
+ &CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "pointer", TypeSize: 4}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
+ {StructKey{Name: "icmpv6_pkt_toobig_packet"}, &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{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "mtu", TypeSize: 4}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
+ {StructKey{Name: "icmpv6_time_exceed_packet"}, &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}},
+ &CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 58},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "length", TypeSize: 1}}},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "unused", TypeSize: 3}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 3, 3},
+ &StructType{Key: StructKey{Name: "icmpv6_ipv6_packet"}, FldName: "packet"},
+ }}},
{StructKey{"ifr_ifru", 1}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ifr_ifru", ArgDir: 1, IsVarlen: true}, Fields: []Type{
&UnionType{Key: StructKey{"sockaddr_storage", 1}, FldName: "ifru_addr"},
&UnionType{Key: StructKey{"sockaddr_storage", 1}, FldName: "ifru_dstaddr"},
@@ -158,6 +498,254 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 8}}},
}}},
+ {StructKey{Name: "ipv4_addr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "empty", TypeSize: 4}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "ipv4_addr_local"}, FldName: "local"},
+ &StructType{Key: StructKey{Name: "ipv4_addr_remote"}, FldName: "remote"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "loopback", TypeSize: 4}, ArgFormat: 1}, Val: 2130706433},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "multicast1", TypeSize: 4}, ArgFormat: 1}, Val: 3758096385},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "multicast2", TypeSize: 4}, ArgFormat: 1}, Val: 3758096386},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "broadcast", TypeSize: 4}, ArgFormat: 1}, Val: 4294967295},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "rand_addr", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {StructKey{Name: "ipv4_addr_local"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr_local", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 172},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 20},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a2", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 170},
+ }}},
+ {StructKey{Name: "ipv4_addr_remote"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_addr_remote", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 1}}, Val: 172},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 20},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a2", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 187},
+ }}},
+ {StructKey{Name: "ipv4_header"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_header", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "ihl"}, BitfieldLen: 4, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4, BitfieldUnit: 1}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "ecn"}, BitfieldLen: 2, BitfieldUnit: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "dscp", TypeSize: 1}, BitfieldOff: 2, BitfieldLen: 6, BitfieldUnit: 1}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "total_len", TypeSize: 2}, ArgFormat: 1}, Path: []string{"ipv4_packet"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "id", TypeSize: 2}, ArgFormat: 1}, Kind: 1, 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{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &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"},
+ }}},
+ {StructKey{Name: "ipv4_option"}, &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"},
+ }}},
+ {StructKey{Name: "ipv4_option_end"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_end", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ }}},
+ {StructKey{Name: "ipv4_option_generic"}, &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, 136, 137, 148}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Path: []string{"parent"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {StructKey{Name: "ipv4_option_lsrr"}, &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}}, Path: []string{"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"}}},
+ }}},
+ {StructKey{Name: "ipv4_option_noop"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv4_option_noop", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 1},
+ }}},
+ {StructKey{Name: "ipv4_option_ra"}, &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}}, Path: []string{"parent"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", FldName: "value", TypeSize: 4}, ArgFormat: 1}},
+ }}},
+ {StructKey{Name: "ipv4_option_rr"}, &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}}, Path: []string{"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"}}},
+ }}},
+ {StructKey{Name: "ipv4_option_ssrr"}, &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}}, Path: []string{"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"}}},
+ }}},
+ {StructKey{Name: "ipv4_option_timestamp"}, &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}}, Path: []string{"parent"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "pointer", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv4_option_timestamp_flags", FldName: "flg"}, BitfieldLen: 4, BitfieldUnit: 1}, Vals: []uint64{0, 1, 3}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "oflw", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4, BitfieldUnit: 1}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "timestamps", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "ipv4_option_timestamp_timestamp"}}},
+ }}},
+ {StructKey{Name: "ipv4_option_timestamp_timestamp"}, &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}},
+ }}},
+ {StructKey{Name: "ipv4_options"}, &StructDesc{TypeCommon{TypeName: "ipv4_options", IsVarlen: true}, []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv4_option"}}},
+ }, 4}},
+ {StructKey{Name: "ipv4_packet"}, &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"},
+ }}},
+ {StructKey{Name: "ipv4_payload"}, &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"},
+ }}},
+ {StructKey{Name: "ipv6_addr"}, &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"},
+ }}},
+ {StructKey{Name: "ipv6_addr_empty"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_empty", TypeSize: 16}, Fields: []Type{
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 16}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 16, 16},
+ }}},
+ {StructKey{Name: "ipv6_addr_ipv4"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_ipv4", TypeSize: 16}, Fields: []Type{
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 10}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 10, 10},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "a1", TypeSize: 2}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 255}, 1, 2, 2},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "a3"},
+ }}},
+ {StructKey{Name: "ipv6_addr_local"}, &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},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 12}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 12, 12},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a3", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a4", TypeSize: 1}}, Val: 170},
+ }}},
+ {StructKey{Name: "ipv6_addr_loopback"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_addr_loopback", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 8}, ArgFormat: 1}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 8}, ArgFormat: 1}, Val: 1},
+ }}},
+ {StructKey{Name: "ipv6_addr_multicast1"}, &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{TypeName: "array", FldName: "a2", TypeSize: 13}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 13, 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 1},
+ }}},
+ {StructKey{Name: "ipv6_addr_multicast2"}, &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{TypeName: "array", FldName: "a2", TypeSize: 13}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 13, 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a3", TypeSize: 1}}, Val: 1},
+ }}},
+ {StructKey{Name: "ipv6_addr_remote"}, &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},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "a2", TypeSize: 12}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 12, 12},
+ &ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a3", TypeSize: 1}}, ValuesPerProc: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a4", TypeSize: 1}}, Val: 187},
+ }}},
+ {StructKey{Name: "ipv6_dstopts_ext_header"}, &StructDesc{TypeCommon{TypeName: "ipv6_dstopts_ext_header", IsVarlen: true}, []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Path: []string{"options"}},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 6, 6},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
+ }, 8}},
+ {StructKey{Name: "ipv6_ext_header"}, &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"},
+ }}},
+ {StructKey{Name: "ipv6_fragment_ext_header"}, &StructDesc{TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 8}, []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &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"}, BitfieldLen: 1, BitfieldUnit: 1}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved2"}, BitfieldOff: 1, BitfieldLen: 2, BitfieldUnit: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_lo", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 5, BitfieldUnit: 1}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "identification", TypeSize: 4}}, Kind: 1, RangeBegin: 100, RangeEnd: 104},
+ }, 8}},
+ {StructKey{Name: "ipv6_hopots_ext_header"}, &StructDesc{TypeCommon{TypeName: "ipv6_hopots_ext_header", IsVarlen: true}, []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Path: []string{"options"}},
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 6, 6},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
+ }, 8}},
+ {StructKey{Name: "ipv6_packet_payload"}, &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"},
+ }}},
+ {StructKey{Name: "ipv6_packet_t"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_packet_t", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "priority"}, BitfieldLen: 4, BitfieldUnit: 1}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4, BitfieldUnit: 1}, 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}, Path: []string{"payload"}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &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"},
+ }}},
+ {StructKey{Name: "ipv6_payload"}, &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"},
+ }}},
+ {StructKey{Name: "ipv6_rt_hdr"}, &StructDesc{TypeCommon{TypeName: "ipv6_rt_hdr", IsVarlen: true}, []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 4, 6, 8, 12, 17, 22, 29, 41, 43, 44, 46, 47, 50, 51, 55, 58, 59, 60, 80, 97, 98, 103, 108, 112, 136, 137, 240, 255}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Path: []string{"data"}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_routing_types", FldName: "routing_type", TypeSize: 1}}, Vals: []uint64{0, 0}},
+ &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"}}},
+ }, 8}},
+ {StructKey{Name: "ipv6_tlv_generic"}, &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}}, Path: []string{"data"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "ipv6_tlv_jumbo"}, &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}},
+ }}},
+ {StructKey{Name: "ipv6_tlv_option"}, &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"},
+ }}},
+ {StructKey{Name: "ipv6_tlv_pad1"}, &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}}},
+ }}},
+ {StructKey{Name: "ipv6_tlv_padn"}, &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}}, Path: []string{"pad"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", IsVarlen: true}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}},
+ }}},
+ {StructKey{Name: "ipv6_tlv_ra"}, &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}},
+ }}},
+ {StructKey{Name: "ipv6_tlv_tun_lim"}, &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}}},
+ }}},
{StructKey{Name: "itimerval"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "itimerval", TypeSize: 32}, Fields: []Type{
&StructType{Key: StructKey{Name: "timeval"}, FldName: "interv"},
&StructType{Key: StructKey{Name: "timeval"}, FldName: "value"},
@@ -186,6 +774,21 @@ var structDescs_amd64 = []*KeyedStruct{
&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}}},
}}},
+ {StructKey{Name: "mac_addr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "mac_addr", TypeSize: 6}, Fields: []Type{
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "empty", TypeSize: 6}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, 1, 6, 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{TypeName: "array", FldName: "broadcast", TypeSize: 6}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 255}, 1, 6, 6},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "random", TypeSize: 6}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
+ }}},
+ {StructKey{Name: "mac_addr_t[const[0xaa, int8]]"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "mac_addr_t[const[0xaa, int8]]", TypeSize: 6}, Fields: []Type{
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 5}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 170}, 1, 5, 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 170},
+ }}},
+ {StructKey{Name: "mac_addr_t[const[0xbb, int8]]"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "mac_addr_t[const[0xbb, int8]]", TypeSize: 6}, Fields: []Type{
+ &ArrayType{TypeCommon{TypeName: "array", FldName: "a0", TypeSize: 5}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}, Val: 170}, 1, 5, 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a1", TypeSize: 1}}, Val: 187},
+ }}},
{StructKey{Name: "mf6cctl"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "mf6cctl", TypeSize: 60}, Fields: []Type{
&StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "mf6cc_origin"},
&StructType{Key: StructKey{Name: "sockaddr_in6"}, FldName: "mf6cc_mcastgrp"},
@@ -431,10 +1034,86 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 4, ArgDir: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 4, ArgDir: 1}}},
}}},
+ {StructKey{Name: "tcp_eol_option"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_eol_option", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ }}},
+ {StructKey{Name: "tcp_generic_option"}, &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}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Path: []string{"parent"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {StructKey{Name: "tcp_header"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_header", IsVarlen: true}, Fields: []Type{
+ &ProcType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, 20000, 4},
+ &ProcType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, 20000, 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"}, BitfieldLen: 1, BitfieldUnit: 1}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved"}, BitfieldOff: 1, BitfieldLen: 3, BitfieldUnit: 1}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "data_off", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "tcp_flags", FldName: "flags", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 8, 16, 32, 64, 128}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "window_size", TypeSize: 2}, ArgFormat: 1}},
+ &CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "tcp_packet", 6},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "urg_ptr", TypeSize: 2}, ArgFormat: 1}},
+ &StructType{Key: StructKey{Name: "tcp_options"}, FldName: "options"},
+ }}},
+ {StructKey{Name: "tcp_md5sig_option"}, &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}}, Path: []string{"parent"}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "md5", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
+ {StructKey{Name: "tcp_mss_option"}, &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}}, Path: []string{"parent"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "seg_size", TypeSize: 2}}},
+ }}},
+ {StructKey{Name: "tcp_nop_option"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_nop_option", TypeSize: 1}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 1},
+ }}},
+ {StructKey{Name: "tcp_option"}, &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"},
+ }}},
+ {StructKey{Name: "tcp_options"}, &StructDesc{TypeCommon{TypeName: "tcp_options", IsVarlen: true}, []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "tcp_option"}}},
+ }, 4}},
+ {StructKey{Name: "tcp_packet"}, &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"},
+ }}},
+ {StructKey{Name: "tcp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}},
+ }}},
{StructKey{"tcp_resources", 1}, &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}},
}}},
+ {StructKey{Name: "tcp_sack_option"}, &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}}, Path: []string{"parent"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32be", TypeSize: 4}, ArgFormat: 1}}},
+ }}},
+ {StructKey{Name: "tcp_sack_perm_option"}, &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}}, Path: []string{"parent"}},
+ }}},
+ {StructKey{Name: "tcp_timestamp_option"}, &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}}, Path: []string{"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}},
+ }}},
+ {StructKey{Name: "tcp_window_option"}, &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}}, Path: []string{"parent"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "shift", TypeSize: 1}}},
+ }}},
{StructKey{Name: "termios"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "termios", TypeSize: 44}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "iflag", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "oflag", TypeSize: 4}}},
@@ -491,6 +1170,19 @@ var structDescs_amd64 = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "gid", FldName: "gid", TypeSize: 4, ArgDir: 1}},
}}},
+ {StructKey{Name: "udp_header"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_header", TypeSize: 8}, Fields: []Type{
+ &ProcType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, 20000, 4},
+ &ProcType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, 20000, 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Path: []string{"parent"}},
+ &CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 17},
+ }}},
+ {StructKey{Name: "udp_packet"}, &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"},
+ }}},
+ {StructKey{Name: "udp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}},
+ }}},
{StructKey{"unix_pair", 1}, &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}},
@@ -546,6 +1238,22 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "vsi_base", TypeSize: 8, ArgDir: 2}}},
}}},
+ {StructKey{Name: "vlan_tag"}, &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"},
+ }}},
+ {StructKey{Name: "vlan_tag_ad"}, &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"}, BitfieldLen: 3, BitfieldUnit: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "dei"}, BitfieldOff: 3, BitfieldLen: 1, BitfieldUnit: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "vid", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 12, BitfieldUnit: 2}, Kind: 1, RangeEnd: 4},
+ }}},
+ {StructKey{Name: "vlan_tag_q"}, &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"}, BitfieldLen: 3, BitfieldUnit: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "dei"}, BitfieldOff: 3, BitfieldLen: 1, BitfieldUnit: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "vid", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 12, BitfieldUnit: 2}, Kind: 1, RangeEnd: 4},
+ }}},
{StructKey{Name: "vm_create_params"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "vm_create_params", TypeSize: 1280}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "vcp_nmemranges", TypeSize: 8}}, Path: []string{"vcp_memranges"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "vcp_ncpus", TypeSize: 8}}},
@@ -2395,7 +3103,7 @@ var syscalls_amd64 = []*Syscall{
{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}}, Path: []string{"packet"}},
- &PtrType{TypeCommon{TypeName: "ptr", FldName: "packet", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &PtrType{TypeCommon{TypeName: "ptr", FldName: "packet", TypeSize: 8}, &StructType{Key: StructKey{Name: "eth_packet"}}},
}},
{Name: "syz_execute_func", CallName: "syz_execute_func", Args: []Type{
&PtrType{TypeCommon{TypeName: "ptr", FldName: "text", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "text", IsVarlen: true}, Kind: 4}},
@@ -2465,6 +3173,16 @@ var consts_amd64 = []ConstValue{
{"AF_NS", 6},
{"AF_UNIX", 1},
{Name: "AF_UNSPEC"},
+ {"ARPHRD_ETHER", 1},
+ {"ARPHRD_FRELAY", 15},
+ {"ARPHRD_IEEE1394", 24},
+ {"ARPHRD_IEEE802", 6},
+ {"ARPOP_INVREPLY", 9},
+ {"ARPOP_INVREQUEST", 8},
+ {"ARPOP_REPLY", 2},
+ {"ARPOP_REQUEST", 1},
+ {"ARPOP_REVREPLY", 4},
+ {"ARPOP_REVREQUEST", 3},
{"AT_EACCESS", 1},
{"AT_FDCWD", 18446744073709551516},
{"AT_REMOVEDIR", 8},
@@ -2502,6 +3220,183 @@ var consts_amd64 = []ConstValue{
{"DIOCMAP", 3222299767},
{"DM_OPENBLCK", 2},
{"DM_OPENPART", 1},
+ {"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_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},
{"EVFILT_AIO", 18446744073709551613},
{"EVFILT_DEVICE", 18446744073709551608},
{"EVFILT_PROC", 18446744073709551611},
@@ -2543,8 +3438,81 @@ var consts_amd64 = []ConstValue{
{"GETPID", 4},
{"GETVAL", 5},
{"GETZCNT", 7},
+ {"ICMP6_DST_UNREACH", 1},
+ {"ICMP6_DST_UNREACH_ADDR", 3},
+ {"ICMP6_DST_UNREACH_ADMIN", 1},
+ {"ICMP6_DST_UNREACH_BEYONDSCOPE", 2},
+ {"ICMP6_DST_UNREACH_NOPORT", 4},
+ {Name: "ICMP6_DST_UNREACH_NOROUTE"},
+ {"ICMP6_ECHO_REPLY", 129},
+ {"ICMP6_ECHO_REQUEST", 128},
+ {"ICMP6_NI_QUERY", 139},
+ {"ICMP6_NI_REPLY", 140},
+ {"ICMP6_PACKET_TOO_BIG", 2},
+ {Name: "ICMP6_PARAMPROB_HEADER"},
+ {"ICMP6_PARAMPROB_NEXTHEADER", 1},
+ {"ICMP6_PARAMPROB_OPTION", 2},
+ {"ICMP6_PARAM_PROB", 4},
+ {"ICMP6_TIME_EXCEEDED", 3},
+ {"ICMP6_TIME_EXCEED_REASSEMBLY", 1},
+ {Name: "ICMP6_TIME_EXCEED_TRANSIT"},
+ {"ICMP_ALTHOSTADDR", 6},
+ {"ICMP_DATACONVERR", 31},
+ {"ICMP_ECHO", 8},
+ {Name: "ICMP_ECHOREPLY"},
+ {"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},
+ {Name: "ICMP_PARAMPROB_ERRATPTR"},
+ {"ICMP_PARAMPROB_LENGTH", 2},
+ {"ICMP_PARAMPROB_OPTABSENT", 1},
+ {"ICMP_PHOTURIS", 40},
+ {"ICMP_REDIRECT", 5},
+ {"ICMP_REDIRECT_HOST", 1},
+ {Name: "ICMP_REDIRECT_NET"},
+ {"ICMP_REDIRECT_TOSHOST", 3},
+ {"ICMP_REDIRECT_TOSNET", 2},
+ {"ICMP_ROUTERADVERT", 9},
+ {"ICMP_ROUTERSOLICIT", 10},
+ {"ICMP_SKIP", 39},
+ {"ICMP_SOURCEQUENCH", 4},
+ {"ICMP_TIMXCEED", 11},
+ {Name: "ICMP_TIMXCEED_INTRANS"},
+ {"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},
+ {Name: "ICMP_UNREACH_NET"},
+ {"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},
{"IFNAMSIZ", 16},
{"IFREQ_SIZE", 32},
+ {"IP6OPT_JUMBO", 194},
+ {Name: "IP6OPT_PAD1"},
+ {"IP6OPT_PADN", 1},
+ {"IP6OPT_ROUTER_ALERT", 5},
+ {"IP6OPT_TUNNEL_LIMIT", 4},
{"IPC_CREAT", 512},
{"IPC_EXCL", 1024},
{"IPC_NOWAIT", 2048},
@@ -2552,9 +3520,52 @@ var consts_amd64 = []ConstValue{
{Name: "IPC_RMID"},
{"IPC_SET", 1},
{"IPC_STAT", 2},
+ {Name: "IPOPT_EOL"},
+ {"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},
+ {Name: "IPOPT_TS_TSONLY"},
+ {"IPPROTO_AH", 51},
+ {"IPPROTO_CARP", 112},
+ {"IPPROTO_DSTOPTS", 60},
+ {"IPPROTO_EGP", 8},
+ {"IPPROTO_ENCAP", 98},
+ {"IPPROTO_EON", 80},
+ {"IPPROTO_ESP", 50},
+ {"IPPROTO_ETHERIP", 97},
+ {"IPPROTO_FRAGMENT", 44},
+ {"IPPROTO_GGP", 3},
+ {"IPPROTO_GRE", 47},
{"IPPROTO_ICMP", 1},
+ {"IPPROTO_ICMPV6", 58},
+ {"IPPROTO_IDP", 22},
+ {"IPPROTO_IGMP", 2},
{Name: "IPPROTO_IP"},
+ {"IPPROTO_IPCOMP", 108},
+ {"IPPROTO_IPV4", 4},
{"IPPROTO_IPV6", 41},
+ {"IPPROTO_MOBILE", 55},
+ {"IPPROTO_MPLS", 137},
+ {"IPPROTO_NONE", 59},
+ {"IPPROTO_PFSYNC", 240},
+ {"IPPROTO_PIM", 103},
+ {"IPPROTO_PUP", 12},
+ {"IPPROTO_RAW", 255},
+ {"IPPROTO_ROUTING", 43},
+ {"IPPROTO_RSVP", 46},
+ {"IPPROTO_TCP", 6},
+ {"IPPROTO_TP", 29},
+ {"IPPROTO_UDP", 17},
+ {"IPPROTO_UDPLITE", 136},
+ {Name: "IPV6_RTHDR_LOOSE"},
+ {Name: "IPV6_RTHDR_TYPE_0"},
{"IP_OPTIONS", 1},
{"ITIMER_PROF", 2},
{Name: "ITIMER_REAL"},
@@ -2619,6 +3630,8 @@ var consts_amd64 = []ConstValue{
{"MCL_CURRENT", 1},
{"MCL_FUTURE", 2},
{"MIFF_REGISTER", 1},
+ {"MLD_LISTENER_QUERY", 130},
+ {"MLD_LISTENER_REPORT", 131},
{"MRT6_ADD_MFC", 104},
{"MRT6_ADD_MIF", 102},
{"MRT6_DEL_MFC", 105},
@@ -2631,6 +3644,19 @@ var consts_amd64 = []ConstValue{
{"MSG_PEEK", 2},
{"MSG_WAITALL", 64},
{"NCCS", 20},
+ {"ND_NEIGHBOR_ADVERT", 136},
+ {"ND_NEIGHBOR_SOLICIT", 135},
+ {"ND_OPT_DNSSL", 31},
+ {"ND_OPT_MTU", 5},
+ {"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},
{"NOTE_ATTRIB", 8},
{"NOTE_CHANGE", 1},
{"NOTE_CHILD", 4},
@@ -2885,6 +3911,22 @@ var consts_amd64 = []ConstValue{
{"S_IXGRP", 8},
{"S_IXOTH", 1},
{"S_IXUSR", 64},
+ {Name: "TCPOPT_EOL"},
+ {"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},
{"TIOCCBRK", 536900730},
{"TIOCCDTR", 536900728},
{"TIOCCHKVERAUTH", 536900638},
@@ -3058,4 +4100,4 @@ var consts_amd64 = []ConstValue{
{"__MAP_NOREPLACE", 2048},
}
-const revision_amd64 = "a570b2d3d9a419936727c8cd0987ecf9172f7ef7"
+const revision_amd64 = "ac9b6f8078c1ecfe0d04ae960aa55911b242da3f"
diff --git a/sys/openbsd/vnet.txt b/sys/openbsd/vnet.txt
index 1c9f99a04..bd18f899c 100644
--- a/sys/openbsd/vnet.txt
+++ b/sys/openbsd/vnet.txt
@@ -1,11 +1,19 @@
-# Copyright 2018 syzkaller project authors. All rights reserved.
+# Copyright 2017 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-# TODO(blackgnezdo): discover a cheap way to share protocol
-# descriptions between different OSs. They are platform agnostic
-# and should not need to be recreated on each platform.
+include <sys/types.h>
+include <sys/param.h>
+include <sys/socket.h>
+include <net/ethertypes.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
@@ -18,3 +26,957 @@ tcp_resources {
# They also adds the inc arguments to the returned values, this way sequence numbers get incremented.
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])
+
+################################################################################
+################################### 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_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_t]
+] [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
+
+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]
+ a2 proc[0, 1, int8]
+ a3 const[0xaa, int8]
+} [packed]
+
+# 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]
+ a2 proc[0, 1, int8]
+ a3 const[0xbb, int8]
+} [packed]
+
+ipv4_addr [
+# 0.0.0.0
+ empty const[0x0, int32be]
+# 172.20.%d.170
+ local ipv4_addr_local
+# 172.20.%d.187
+ remote ipv4_addr_remote
+# 127.0.0.1
+ loopback const[0x7f000001, int32be]
+# 224.0.0.1
+ multicast1 const[0xe0000001, int32be]
+# 224.0.0.2
+ multicast2 const[0xe0000002, int32be]
+# 255.255.255.255
+ broadcast const[0xffffffff, int32be]
+# random
+ 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_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_IP, IPPROTO_ICMP, IPPROTO_IGMP, IPPROTO_GGP, IPPROTO_IPV4, IPPROTO_TCP, IPPROTO_EGP, IPPROTO_PUP, IPPROTO_UDP, IPPROTO_IDP, IPPROTO_TP, IPPROTO_IPV6, IPPROTO_ROUTING, IPPROTO_FRAGMENT, IPPROTO_RSVP, IPPROTO_GRE, IPPROTO_ESP, IPPROTO_AH, IPPROTO_MOBILE, IPPROTO_ICMPV6, IPPROTO_NONE, IPPROTO_DSTOPTS, IPPROTO_EON, IPPROTO_ETHERIP, IPPROTO_ENCAP, IPPROTO_PIM, IPPROTO_IPCOMP, IPPROTO_CARP, IPPROTO_UDPLITE, IPPROTO_MPLS, IPPROTO_PFSYNC, IPPROTO_RAW
+
+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_IP, IPPROTO_ICMP, IPPROTO_IGMP, IPPROTO_GGP, IPPROTO_IPV4, IPPROTO_TCP, IPPROTO_EGP, IPPROTO_PUP, IPPROTO_UDP, IPPROTO_IDP, IPPROTO_TP, IPPROTO_IPV6, IPPROTO_ROUTING, IPPROTO_FRAGMENT, IPPROTO_RSVP, IPPROTO_GRE, IPPROTO_ESP, IPPROTO_AH, IPPROTO_MOBILE, IPPROTO_ICMPV6, IPPROTO_NONE, IPPROTO_DSTOPTS, IPPROTO_EON, IPPROTO_ETHERIP, IPPROTO_ENCAP, IPPROTO_PIM, IPPROTO_IPCOMP, IPPROTO_CARP, IPPROTO_UDPLITE, IPPROTO_MPLS, IPPROTO_PFSYNC, IPPROTO_RAW
+
+ipv6_addr_empty {
+ a0 array[const[0x0, int8], 16]
+}
+
+# This corresponds to LOCAL_IPV6 ("fe80::%02hxaa" % pid) in executor/common_bsd.h
+ipv6_addr_local {
+ a0 const[0xfe, int8]
+ a1 const[0x80, int8]
+ a2 array[const[0x0, int8], 12]
+ a3 proc[0, 1, int8]
+ a4 const[0xaa, int8]
+} [packed]
+
+# This corresponds to REMOTE_IPV6 ("fe80::%02hxbb" % pid) in executor/common_bsd.h
+ipv6_addr_remote {
+ a0 const[0xfe, int8]
+ a1 const[0x80, int8]
+ a2 array[const[0x0, int8], 12]
+ a3 proc[0, 1, int8]
+ a4 const[0xbb, int8]
+} [packed]
+
+ipv6_addr_loopback {
+ a0 const[0, int64be]
+ 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_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_t {
+ 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_BEYONDSCOPE, ICMP6_DST_UNREACH_ADDR, ICMP6_DST_UNREACH_NOPORT
+
+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
+
+# 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_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
+] [varlen]
+
+tcp_option_types = TCPOPT_EOL, TCPOPT_NOP, TCPOPT_MAXSEG, TCPOPT_WINDOW, TCPOPT_SACK_PERMITTED, TCPOPT_SACK, TCPOPT_TIMESTAMP, TCPOPT_SIGNATURE
+
+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]
+
+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/openbsd/vnet_amd64.const b/sys/openbsd/vnet_amd64.const
new file mode 100644
index 000000000..6a6d780a7
--- /dev/null
+++ b/sys/openbsd/vnet_amd64.const
@@ -0,0 +1,338 @@
+# AUTOGENERATED FILE
+ARPHRD_ETHER = 1
+ARPHRD_FRELAY = 15
+ARPHRD_IEEE1394 = 24
+ARPHRD_IEEE802 = 6
+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_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_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_EOL = 0
+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_AH = 51
+IPPROTO_CARP = 112
+IPPROTO_DSTOPTS = 60
+IPPROTO_EGP = 8
+IPPROTO_ENCAP = 98
+IPPROTO_EON = 80
+IPPROTO_ESP = 50
+IPPROTO_ETHERIP = 97
+IPPROTO_FRAGMENT = 44
+IPPROTO_GGP = 3
+IPPROTO_GRE = 47
+IPPROTO_ICMP = 1
+IPPROTO_ICMPV6 = 58
+IPPROTO_IDP = 22
+IPPROTO_IGMP = 2
+IPPROTO_IP = 0
+IPPROTO_IPCOMP = 108
+IPPROTO_IPV4 = 4
+IPPROTO_IPV6 = 41
+IPPROTO_MOBILE = 55
+IPPROTO_MPLS = 137
+IPPROTO_NONE = 59
+IPPROTO_PFSYNC = 240
+IPPROTO_PIM = 103
+IPPROTO_PUP = 12
+IPPROTO_RAW = 255
+IPPROTO_ROUTING = 43
+IPPROTO_RSVP = 46
+IPPROTO_TCP = 6
+IPPROTO_TP = 29
+IPPROTO_UDP = 17
+IPPROTO_UDPLITE = 136
+IPV6_RTHDR_LOOSE = 0
+IPV6_RTHDR_TYPE_0 = 0
+MLD_LISTENER_QUERY = 130
+MLD_LISTENER_REPORT = 131
+ND_NEIGHBOR_ADVERT = 136
+ND_NEIGHBOR_SOLICIT = 135
+ND_OPT_DNSSL = 31
+ND_OPT_MTU = 5
+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_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