From e17f4a5dfb4e9ad6fc12d6a94a6a978e8bec42aa Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 15 Jan 2018 20:26:04 +0100 Subject: sys/linux: generate GRE v0 packets even with incorrect payload --- sys/linux/386.go | 26 +++++++++++++++++++++++++- sys/linux/amd64.go | 26 +++++++++++++++++++++++++- sys/linux/arm.go | 26 +++++++++++++++++++++++++- sys/linux/arm64.go | 26 +++++++++++++++++++++++++- sys/linux/ppc64le.go | 26 +++++++++++++++++++++++++- sys/linux/vnet.txt | 9 +++++---- 6 files changed, 130 insertions(+), 9 deletions(-) (limited to 'sys/linux') diff --git a/sys/linux/386.go b/sys/linux/386.go index dbdb0e2f0..a04043d17 100644 --- a/sys/linux/386.go +++ b/sys/linux/386.go @@ -1753,6 +1753,30 @@ var structDescs_386 = []*KeyedStruct{ }, AlignAttr: 4}}, {Key: StructKey{Name: "gre_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "gre_packet_pptp"}, FldName: "pptp"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, FldName: "cisco_ipv4"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, FldName: "cisco_ipv6"}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IP, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 2048}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IPV6, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 34525}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, }}}, {Key: StructKey{Name: "gre_packet_pptp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_pptp", IsVarlen: true}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, @@ -20635,4 +20659,4 @@ var consts_386 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_386 = "6102f03a10367cb69d968a776e22bb72d8068467" +const revision_386 = "916bfee7feb083598a57ed9b867cc9bd93bfd64c" diff --git a/sys/linux/amd64.go b/sys/linux/amd64.go index 49a56f8c8..dd8a3e532 100644 --- a/sys/linux/amd64.go +++ b/sys/linux/amd64.go @@ -1775,6 +1775,30 @@ var structDescs_amd64 = []*KeyedStruct{ }, AlignAttr: 4}}, {Key: StructKey{Name: "gre_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "gre_packet_pptp"}, FldName: "pptp"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, FldName: "cisco_ipv4"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, FldName: "cisco_ipv6"}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IP, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 2048}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IPV6, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 34525}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, }}}, {Key: StructKey{Name: "gre_packet_pptp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_pptp", IsVarlen: true}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, @@ -21113,4 +21137,4 @@ var consts_amd64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_amd64 = "225e51555c52f81a7b7b41c60db525ebda1f3f06" +const revision_amd64 = "941cd0a1e243fbeb2b5edb32d3ebee2335c3cd65" diff --git a/sys/linux/arm.go b/sys/linux/arm.go index 78e7d3dbf..6b047752b 100644 --- a/sys/linux/arm.go +++ b/sys/linux/arm.go @@ -1758,6 +1758,30 @@ var structDescs_arm = []*KeyedStruct{ }, AlignAttr: 4}}, {Key: StructKey{Name: "gre_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "gre_packet_pptp"}, FldName: "pptp"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, FldName: "cisco_ipv4"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, FldName: "cisco_ipv6"}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IP, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 2048}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IPV6, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 34525}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, }}}, {Key: StructKey{Name: "gre_packet_pptp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_pptp", IsVarlen: true}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, @@ -20503,4 +20527,4 @@ var consts_arm = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm = "58e57ca0534f2eb44f23aa78b76ab493b2d55924" +const revision_arm = "c0e463825d9884ce54de5c96103415d1a623c938" diff --git a/sys/linux/arm64.go b/sys/linux/arm64.go index fe937133b..23531d87c 100644 --- a/sys/linux/arm64.go +++ b/sys/linux/arm64.go @@ -1775,6 +1775,30 @@ var structDescs_arm64 = []*KeyedStruct{ }, AlignAttr: 4}}, {Key: StructKey{Name: "gre_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "gre_packet_pptp"}, FldName: "pptp"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, FldName: "cisco_ipv4"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, FldName: "cisco_ipv6"}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IP, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 2048}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IPV6, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 34525}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, }}}, {Key: StructKey{Name: "gre_packet_pptp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_pptp", IsVarlen: true}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, @@ -20495,4 +20519,4 @@ var consts_arm64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm64 = "0e792d9fd80a6f092a99e2f148063261f9a7b68d" +const revision_arm64 = "db2eb8e4a017714533569d70a3615aab8a9b3651" diff --git a/sys/linux/ppc64le.go b/sys/linux/ppc64le.go index 9d07472bd..bd6623b48 100644 --- a/sys/linux/ppc64le.go +++ b/sys/linux/ppc64le.go @@ -1768,6 +1768,30 @@ var structDescs_ppc64le = []*KeyedStruct{ }, AlignAttr: 4}}, {Key: StructKey{Name: "gre_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "gre_packet_pptp"}, FldName: "pptp"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, FldName: "cisco_ipv4"}, + &StructType{Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, FldName: "cisco_ipv6"}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IP, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IP, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 2048}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, + }}}, + {Key: StructKey{Name: "gre_packet_cisco[ETH_P_IPV6, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_cisco[ETH_P_IPV6, array[int8]]", IsVarlen: true}, Fields: []Type{ + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "R", TypeSize: 2}, BitfieldOff: 1, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "K", TypeSize: 2}, BitfieldOff: 2, BitfieldLen: 1, BitfieldMdl: true}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "S", TypeSize: 2}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 2}, BitfieldOff: 4, BitfieldLen: 9, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "version", TypeSize: 2}, BitfieldOff: 13, BitfieldLen: 3}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "protocol", TypeSize: 2}, BigEndian: true}, Val: 34525}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "add", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", TypeSize: 2}, BigEndian: true}}, Kind: 1, RangeEnd: 3}, + &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "payload", IsVarlen: true}}, }}}, {Key: StructKey{Name: "gre_packet_pptp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "gre_packet_pptp", IsVarlen: true}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "C", TypeSize: 2}, BitfieldLen: 1, BitfieldMdl: true}}, @@ -20240,4 +20264,4 @@ var consts_ppc64le = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_ppc64le = "0a355878cbbdbd14239b9ff7e2a905894acc87ed" +const revision_ppc64le = "b379d1a0c6689d83dfbf8220707eb0d317389ef7" diff --git a/sys/linux/vnet.txt b/sys/linux/vnet.txt index 2946879a7..d59532575 100644 --- a/sys/linux/vnet.txt +++ b/sys/linux/vnet.txt @@ -824,11 +824,12 @@ udp_packet { include gre_packet { - pptp gre_packet_pptp + pptp gre_packet_pptp # TODO: add more packets -# TODO: this creates recursion ipv4 -> gre -> ipv4 -> ... -# cisco_ipv4 gre_packet_cisco[ETH_P_IP, ipv4_packet] -# cisco_ipv6 gre_packet_cisco[ETH_P_IPV6, ipv6_packet] +# TODO: the payload should be ipv4_packet/ipv6_packet, but this creates recursion +# ipv4 -> gre -> ipv4 -> ... + cisco_ipv4 gre_packet_cisco[ETH_P_IP, array[int8]] + cisco_ipv6 gre_packet_cisco[ETH_P_IPV6, array[int8]] } [packed] type gre_packet_cisco[PROTO, PAYLOAD] { -- cgit mrf-deployment