From f3b53f7e53d09008c7302856533051cfe0ae5787 Mon Sep 17 00:00:00 2001 From: hedi bouattour Date: Tue, 30 Jan 2024 15:21:04 +0000 Subject: [PATCH] vpp: upgrade vpp to 24.02-rc0~186 Notable changes: * b1a1209ce dpdk: bump rdma-core to 49.0 - Dave Wallace * 327c32306 dpdk: bump to DPDK 23.11 - Kai Ji * 006c071b0 dpdk: add Mellanox BlueField NICs - Alexander Kozyrev * 029f039d5 dpdk: add ConnectX-6LX and ConnectX-7 support - Alexander Kozyrev * 2d725c612 ena: Amazon Elastic Network Adapter (ENA) native driver - Damjan Marion * 67f03ba71 iavf: interrupt mode support - Damjan Marion * 29d07dbef af_packet: remove UNIX_FILE_EVENT_EDGE_TRIGGERED flag - Artem Glazychev * 47447f1f5 iavf: new driver using new dev infra - Damjan Marion * 589fe7ca6 cnat: add flow hash config to cnat translation - hedi bouattour * 7f75e80f0 vppinfra: refactor interrupt code - Damjan Marion * ddf6cec37 dev: initial set of APIs - Damjan Marion * b8dd9815e dev: interrupt mode support - Damjan Marion --- vpp-manager/images/ubuntu-build/Dockerfile | 3 +- vpplink/generated/bindings/ipsec/ipsec.ba.go | 326 +++++++++++++++++- .../generated/bindings/ipsec/ipsec_rpc.ba.go | 54 +++ .../bindings/ipsec_types/ipsec_types.ba.go | 21 +- vpplink/generated/generate.log | 8 +- vpplink/generated/vpp_clone_current.sh | 5 +- 6 files changed, 403 insertions(+), 14 deletions(-) diff --git a/vpp-manager/images/ubuntu-build/Dockerfile b/vpp-manager/images/ubuntu-build/Dockerfile index 8e1451a9..d4bc7d42 100644 --- a/vpp-manager/images/ubuntu-build/Dockerfile +++ b/vpp-manager/images/ubuntu-build/Dockerfile @@ -27,7 +27,8 @@ RUN apt-get update \ libssl-dev \ clang clang-format-11 \ libffi7 \ - enchant-2 + enchant-2 \ + tshark WORKDIR / diff --git a/vpplink/generated/bindings/ipsec/ipsec.ba.go b/vpplink/generated/bindings/ipsec/ipsec.ba.go index 18e01fed..caf0c9c7 100644 --- a/vpplink/generated/bindings/ipsec/ipsec.ba.go +++ b/vpplink/generated/bindings/ipsec/ipsec.ba.go @@ -4,7 +4,7 @@ // // Contents: // - 2 structs -// - 56 messages +// - 60 messages package ipsec import ( @@ -25,7 +25,7 @@ const _ = api.GoVppAPIPackageIsVersion2 const ( APIFile = "ipsec" APIVersion = "5.0.2" - VersionCrc = 0x1b4ba2ec + VersionCrc = 0x8d9c3489 ) // IpsecItf defines type 'ipsec_itf'. @@ -1057,6 +1057,173 @@ func (m *IpsecSaV4Dump) Unmarshal(b []byte) error { return nil } +// IpsecSaV5Details defines message 'ipsec_sa_v5_details'. +type IpsecSaV5Details struct { + Entry ipsec_types.IpsecSadEntryV4 `binapi:"ipsec_sad_entry_v4,name=entry" json:"entry,omitempty"` + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + SeqOutbound uint64 `binapi:"u64,name=seq_outbound" json:"seq_outbound,omitempty"` + LastSeqInbound uint64 `binapi:"u64,name=last_seq_inbound" json:"last_seq_inbound,omitempty"` + ReplayWindow uint64 `binapi:"u64,name=replay_window" json:"replay_window,omitempty"` + ThreadIndex uint32 `binapi:"u32,name=thread_index" json:"thread_index,omitempty"` + StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"` +} + +func (m *IpsecSaV5Details) Reset() { *m = IpsecSaV5Details{} } +func (*IpsecSaV5Details) GetMessageName() string { return "ipsec_sa_v5_details" } +func (*IpsecSaV5Details) GetCrcString() string { return "3cfecfbd" } +func (*IpsecSaV5Details) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IpsecSaV5Details) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.Entry.SadID + size += 4 // m.Entry.Spi + size += 4 // m.Entry.Protocol + size += 4 // m.Entry.CryptoAlgorithm + size += 1 // m.Entry.CryptoKey.Length + size += 1 * 128 // m.Entry.CryptoKey.Data + size += 4 // m.Entry.IntegrityAlgorithm + size += 1 // m.Entry.IntegrityKey.Length + size += 1 * 128 // m.Entry.IntegrityKey.Data + size += 4 // m.Entry.Flags + size += 4 // m.Entry.Tunnel.Instance + size += 1 // m.Entry.Tunnel.Src.Af + size += 1 * 16 // m.Entry.Tunnel.Src.Un + size += 1 // m.Entry.Tunnel.Dst.Af + size += 1 * 16 // m.Entry.Tunnel.Dst.Un + size += 4 // m.Entry.Tunnel.SwIfIndex + size += 4 // m.Entry.Tunnel.TableID + size += 1 // m.Entry.Tunnel.EncapDecapFlags + size += 1 // m.Entry.Tunnel.Mode + size += 1 // m.Entry.Tunnel.Flags + size += 1 // m.Entry.Tunnel.Dscp + size += 1 // m.Entry.Tunnel.HopLimit + size += 4 // m.Entry.Salt + size += 2 // m.Entry.UDPSrcPort + size += 2 // m.Entry.UDPDstPort + size += 4 // m.Entry.AntiReplayWindowSize + size += 4 // m.SwIfIndex + size += 8 // m.SeqOutbound + size += 8 // m.LastSeqInbound + size += 8 // m.ReplayWindow + size += 4 // m.ThreadIndex + size += 4 // m.StatIndex + return size +} +func (m *IpsecSaV5Details) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeUint32(m.Entry.SadID) + buf.EncodeUint32(m.Entry.Spi) + buf.EncodeUint32(uint32(m.Entry.Protocol)) + buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm)) + buf.EncodeUint8(m.Entry.CryptoKey.Length) + buf.EncodeBytes(m.Entry.CryptoKey.Data, 128) + buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm)) + buf.EncodeUint8(m.Entry.IntegrityKey.Length) + buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128) + buf.EncodeUint32(uint32(m.Entry.Flags)) + buf.EncodeUint32(m.Entry.Tunnel.Instance) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Src.Af)) + buf.EncodeBytes(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], 16) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Dst.Af)) + buf.EncodeBytes(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], 16) + buf.EncodeUint32(uint32(m.Entry.Tunnel.SwIfIndex)) + buf.EncodeUint32(m.Entry.Tunnel.TableID) + buf.EncodeUint8(uint8(m.Entry.Tunnel.EncapDecapFlags)) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Mode)) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Flags)) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Dscp)) + buf.EncodeUint8(m.Entry.Tunnel.HopLimit) + buf.EncodeUint32(m.Entry.Salt) + buf.EncodeUint16(m.Entry.UDPSrcPort) + buf.EncodeUint16(m.Entry.UDPDstPort) + buf.EncodeUint32(m.Entry.AntiReplayWindowSize) + buf.EncodeUint32(uint32(m.SwIfIndex)) + buf.EncodeUint64(m.SeqOutbound) + buf.EncodeUint64(m.LastSeqInbound) + buf.EncodeUint64(m.ReplayWindow) + buf.EncodeUint32(m.ThreadIndex) + buf.EncodeUint32(m.StatIndex) + return buf.Bytes(), nil +} +func (m *IpsecSaV5Details) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Entry.SadID = buf.DecodeUint32() + m.Entry.Spi = buf.DecodeUint32() + m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32()) + m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32()) + m.Entry.CryptoKey.Length = buf.DecodeUint8() + m.Entry.CryptoKey.Data = make([]byte, 128) + copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data))) + m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32()) + m.Entry.IntegrityKey.Length = buf.DecodeUint8() + m.Entry.IntegrityKey.Data = make([]byte, 128) + copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data))) + m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32()) + m.Entry.Tunnel.Instance = buf.DecodeUint32() + m.Entry.Tunnel.Src.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Entry.Tunnel.Dst.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Entry.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Entry.Tunnel.TableID = buf.DecodeUint32() + m.Entry.Tunnel.EncapDecapFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8()) + m.Entry.Tunnel.Mode = tunnel_types.TunnelMode(buf.DecodeUint8()) + m.Entry.Tunnel.Flags = tunnel_types.TunnelFlags(buf.DecodeUint8()) + m.Entry.Tunnel.Dscp = ip_types.IPDscp(buf.DecodeUint8()) + m.Entry.Tunnel.HopLimit = buf.DecodeUint8() + m.Entry.Salt = buf.DecodeUint32() + m.Entry.UDPSrcPort = buf.DecodeUint16() + m.Entry.UDPDstPort = buf.DecodeUint16() + m.Entry.AntiReplayWindowSize = buf.DecodeUint32() + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.SeqOutbound = buf.DecodeUint64() + m.LastSeqInbound = buf.DecodeUint64() + m.ReplayWindow = buf.DecodeUint64() + m.ThreadIndex = buf.DecodeUint32() + m.StatIndex = buf.DecodeUint32() + return nil +} + +// IpsecSaV5Dump defines message 'ipsec_sa_v5_dump'. +type IpsecSaV5Dump struct { + SaID uint32 `binapi:"u32,name=sa_id" json:"sa_id,omitempty"` +} + +func (m *IpsecSaV5Dump) Reset() { *m = IpsecSaV5Dump{} } +func (*IpsecSaV5Dump) GetMessageName() string { return "ipsec_sa_v5_dump" } +func (*IpsecSaV5Dump) GetCrcString() string { return "2076c2f4" } +func (*IpsecSaV5Dump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IpsecSaV5Dump) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.SaID + return size +} +func (m *IpsecSaV5Dump) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeUint32(m.SaID) + return buf.Bytes(), nil +} +func (m *IpsecSaV5Dump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SaID = buf.DecodeUint32() + return nil +} + // An API to bind an SAD entry to a specific worker // - sa_id - the id of the SA to bind // - worker - the worker's index to which the SA will be bound to @@ -1690,6 +1857,153 @@ func (m *IpsecSadEntryAddReply) Unmarshal(b []byte) error { return nil } +// IpsecSadEntryAddV2 defines message 'ipsec_sad_entry_add_v2'. +type IpsecSadEntryAddV2 struct { + Entry ipsec_types.IpsecSadEntryV4 `binapi:"ipsec_sad_entry_v4,name=entry" json:"entry,omitempty"` +} + +func (m *IpsecSadEntryAddV2) Reset() { *m = IpsecSadEntryAddV2{} } +func (*IpsecSadEntryAddV2) GetMessageName() string { return "ipsec_sad_entry_add_v2" } +func (*IpsecSadEntryAddV2) GetCrcString() string { return "9611297a" } +func (*IpsecSadEntryAddV2) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IpsecSadEntryAddV2) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.Entry.SadID + size += 4 // m.Entry.Spi + size += 4 // m.Entry.Protocol + size += 4 // m.Entry.CryptoAlgorithm + size += 1 // m.Entry.CryptoKey.Length + size += 1 * 128 // m.Entry.CryptoKey.Data + size += 4 // m.Entry.IntegrityAlgorithm + size += 1 // m.Entry.IntegrityKey.Length + size += 1 * 128 // m.Entry.IntegrityKey.Data + size += 4 // m.Entry.Flags + size += 4 // m.Entry.Tunnel.Instance + size += 1 // m.Entry.Tunnel.Src.Af + size += 1 * 16 // m.Entry.Tunnel.Src.Un + size += 1 // m.Entry.Tunnel.Dst.Af + size += 1 * 16 // m.Entry.Tunnel.Dst.Un + size += 4 // m.Entry.Tunnel.SwIfIndex + size += 4 // m.Entry.Tunnel.TableID + size += 1 // m.Entry.Tunnel.EncapDecapFlags + size += 1 // m.Entry.Tunnel.Mode + size += 1 // m.Entry.Tunnel.Flags + size += 1 // m.Entry.Tunnel.Dscp + size += 1 // m.Entry.Tunnel.HopLimit + size += 4 // m.Entry.Salt + size += 2 // m.Entry.UDPSrcPort + size += 2 // m.Entry.UDPDstPort + size += 4 // m.Entry.AntiReplayWindowSize + return size +} +func (m *IpsecSadEntryAddV2) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeUint32(m.Entry.SadID) + buf.EncodeUint32(m.Entry.Spi) + buf.EncodeUint32(uint32(m.Entry.Protocol)) + buf.EncodeUint32(uint32(m.Entry.CryptoAlgorithm)) + buf.EncodeUint8(m.Entry.CryptoKey.Length) + buf.EncodeBytes(m.Entry.CryptoKey.Data, 128) + buf.EncodeUint32(uint32(m.Entry.IntegrityAlgorithm)) + buf.EncodeUint8(m.Entry.IntegrityKey.Length) + buf.EncodeBytes(m.Entry.IntegrityKey.Data, 128) + buf.EncodeUint32(uint32(m.Entry.Flags)) + buf.EncodeUint32(m.Entry.Tunnel.Instance) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Src.Af)) + buf.EncodeBytes(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], 16) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Dst.Af)) + buf.EncodeBytes(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], 16) + buf.EncodeUint32(uint32(m.Entry.Tunnel.SwIfIndex)) + buf.EncodeUint32(m.Entry.Tunnel.TableID) + buf.EncodeUint8(uint8(m.Entry.Tunnel.EncapDecapFlags)) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Mode)) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Flags)) + buf.EncodeUint8(uint8(m.Entry.Tunnel.Dscp)) + buf.EncodeUint8(m.Entry.Tunnel.HopLimit) + buf.EncodeUint32(m.Entry.Salt) + buf.EncodeUint16(m.Entry.UDPSrcPort) + buf.EncodeUint16(m.Entry.UDPDstPort) + buf.EncodeUint32(m.Entry.AntiReplayWindowSize) + return buf.Bytes(), nil +} +func (m *IpsecSadEntryAddV2) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Entry.SadID = buf.DecodeUint32() + m.Entry.Spi = buf.DecodeUint32() + m.Entry.Protocol = ipsec_types.IpsecProto(buf.DecodeUint32()) + m.Entry.CryptoAlgorithm = ipsec_types.IpsecCryptoAlg(buf.DecodeUint32()) + m.Entry.CryptoKey.Length = buf.DecodeUint8() + m.Entry.CryptoKey.Data = make([]byte, 128) + copy(m.Entry.CryptoKey.Data, buf.DecodeBytes(len(m.Entry.CryptoKey.Data))) + m.Entry.IntegrityAlgorithm = ipsec_types.IpsecIntegAlg(buf.DecodeUint32()) + m.Entry.IntegrityKey.Length = buf.DecodeUint8() + m.Entry.IntegrityKey.Data = make([]byte, 128) + copy(m.Entry.IntegrityKey.Data, buf.DecodeBytes(len(m.Entry.IntegrityKey.Data))) + m.Entry.Flags = ipsec_types.IpsecSadFlags(buf.DecodeUint32()) + m.Entry.Tunnel.Instance = buf.DecodeUint32() + m.Entry.Tunnel.Src.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Entry.Tunnel.Src.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Entry.Tunnel.Dst.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Entry.Tunnel.Dst.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Entry.Tunnel.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Entry.Tunnel.TableID = buf.DecodeUint32() + m.Entry.Tunnel.EncapDecapFlags = tunnel_types.TunnelEncapDecapFlags(buf.DecodeUint8()) + m.Entry.Tunnel.Mode = tunnel_types.TunnelMode(buf.DecodeUint8()) + m.Entry.Tunnel.Flags = tunnel_types.TunnelFlags(buf.DecodeUint8()) + m.Entry.Tunnel.Dscp = ip_types.IPDscp(buf.DecodeUint8()) + m.Entry.Tunnel.HopLimit = buf.DecodeUint8() + m.Entry.Salt = buf.DecodeUint32() + m.Entry.UDPSrcPort = buf.DecodeUint16() + m.Entry.UDPDstPort = buf.DecodeUint16() + m.Entry.AntiReplayWindowSize = buf.DecodeUint32() + return nil +} + +// IpsecSadEntryAddV2Reply defines message 'ipsec_sad_entry_add_v2_reply'. +type IpsecSadEntryAddV2Reply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` + StatIndex uint32 `binapi:"u32,name=stat_index" json:"stat_index,omitempty"` +} + +func (m *IpsecSadEntryAddV2Reply) Reset() { *m = IpsecSadEntryAddV2Reply{} } +func (*IpsecSadEntryAddV2Reply) GetMessageName() string { return "ipsec_sad_entry_add_v2_reply" } +func (*IpsecSadEntryAddV2Reply) GetCrcString() string { return "9ffac24b" } +func (*IpsecSadEntryAddV2Reply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IpsecSadEntryAddV2Reply) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.Retval + size += 4 // m.StatIndex + return size +} +func (m *IpsecSadEntryAddV2Reply) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeInt32(m.Retval) + buf.EncodeUint32(m.StatIndex) + return buf.Bytes(), nil +} +func (m *IpsecSadEntryAddV2Reply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = buf.DecodeInt32() + m.StatIndex = buf.DecodeUint32() + return nil +} + // IpsecSadEntryDel defines message 'ipsec_sad_entry_del'. type IpsecSadEntryDel struct { ID uint32 `binapi:"u32,name=id" json:"id,omitempty"` @@ -3027,6 +3341,8 @@ func file_ipsec_binapi_init() { api.RegisterMessage((*IpsecSaV3Dump)(nil), "ipsec_sa_v3_dump_2076c2f4") api.RegisterMessage((*IpsecSaV4Details)(nil), "ipsec_sa_v4_details_87a322d7") api.RegisterMessage((*IpsecSaV4Dump)(nil), "ipsec_sa_v4_dump_2076c2f4") + api.RegisterMessage((*IpsecSaV5Details)(nil), "ipsec_sa_v5_details_3cfecfbd") + api.RegisterMessage((*IpsecSaV5Dump)(nil), "ipsec_sa_v5_dump_2076c2f4") api.RegisterMessage((*IpsecSadBind)(nil), "ipsec_sad_bind_0649c0d9") api.RegisterMessage((*IpsecSadBindReply)(nil), "ipsec_sad_bind_reply_e8d4e804") api.RegisterMessage((*IpsecSadEntryAdd)(nil), "ipsec_sad_entry_add_50229353") @@ -3037,6 +3353,8 @@ func file_ipsec_binapi_init() { api.RegisterMessage((*IpsecSadEntryAddDelV3)(nil), "ipsec_sad_entry_add_del_v3_c77ebd92") api.RegisterMessage((*IpsecSadEntryAddDelV3Reply)(nil), "ipsec_sad_entry_add_del_v3_reply_9ffac24b") api.RegisterMessage((*IpsecSadEntryAddReply)(nil), "ipsec_sad_entry_add_reply_9ffac24b") + api.RegisterMessage((*IpsecSadEntryAddV2)(nil), "ipsec_sad_entry_add_v2_9611297a") + api.RegisterMessage((*IpsecSadEntryAddV2Reply)(nil), "ipsec_sad_entry_add_v2_reply_9ffac24b") api.RegisterMessage((*IpsecSadEntryDel)(nil), "ipsec_sad_entry_del_3a91bde5") api.RegisterMessage((*IpsecSadEntryDelReply)(nil), "ipsec_sad_entry_del_reply_e8d4e804") api.RegisterMessage((*IpsecSadEntryUpdate)(nil), "ipsec_sad_entry_update_1412af86") @@ -3088,6 +3406,8 @@ func AllMessages() []api.Message { (*IpsecSaV3Dump)(nil), (*IpsecSaV4Details)(nil), (*IpsecSaV4Dump)(nil), + (*IpsecSaV5Details)(nil), + (*IpsecSaV5Dump)(nil), (*IpsecSadBind)(nil), (*IpsecSadBindReply)(nil), (*IpsecSadEntryAdd)(nil), @@ -3098,6 +3418,8 @@ func AllMessages() []api.Message { (*IpsecSadEntryAddDelV3)(nil), (*IpsecSadEntryAddDelV3Reply)(nil), (*IpsecSadEntryAddReply)(nil), + (*IpsecSadEntryAddV2)(nil), + (*IpsecSadEntryAddV2Reply)(nil), (*IpsecSadEntryDel)(nil), (*IpsecSadEntryDelReply)(nil), (*IpsecSadEntryUpdate)(nil), diff --git a/vpplink/generated/bindings/ipsec/ipsec_rpc.ba.go b/vpplink/generated/bindings/ipsec/ipsec_rpc.ba.go index 56a9660d..5afc642f 100644 --- a/vpplink/generated/bindings/ipsec/ipsec_rpc.ba.go +++ b/vpplink/generated/bindings/ipsec/ipsec_rpc.ba.go @@ -22,11 +22,13 @@ type RPCService interface { IpsecSaV2Dump(ctx context.Context, in *IpsecSaV2Dump) (RPCService_IpsecSaV2DumpClient, error) IpsecSaV3Dump(ctx context.Context, in *IpsecSaV3Dump) (RPCService_IpsecSaV3DumpClient, error) IpsecSaV4Dump(ctx context.Context, in *IpsecSaV4Dump) (RPCService_IpsecSaV4DumpClient, error) + IpsecSaV5Dump(ctx context.Context, in *IpsecSaV5Dump) (RPCService_IpsecSaV5DumpClient, error) IpsecSadBind(ctx context.Context, in *IpsecSadBind) (*IpsecSadBindReply, error) IpsecSadEntryAdd(ctx context.Context, in *IpsecSadEntryAdd) (*IpsecSadEntryAddReply, error) IpsecSadEntryAddDel(ctx context.Context, in *IpsecSadEntryAddDel) (*IpsecSadEntryAddDelReply, error) IpsecSadEntryAddDelV2(ctx context.Context, in *IpsecSadEntryAddDelV2) (*IpsecSadEntryAddDelV2Reply, error) IpsecSadEntryAddDelV3(ctx context.Context, in *IpsecSadEntryAddDelV3) (*IpsecSadEntryAddDelV3Reply, error) + IpsecSadEntryAddV2(ctx context.Context, in *IpsecSadEntryAddV2) (*IpsecSadEntryAddV2Reply, error) IpsecSadEntryDel(ctx context.Context, in *IpsecSadEntryDel) (*IpsecSadEntryDelReply, error) IpsecSadEntryUpdate(ctx context.Context, in *IpsecSadEntryUpdate) (*IpsecSadEntryUpdateReply, error) IpsecSadUnbind(ctx context.Context, in *IpsecSadUnbind) (*IpsecSadUnbindReply, error) @@ -336,6 +338,49 @@ func (c *serviceClient_IpsecSaV4DumpClient) Recv() (*IpsecSaV4Details, error) { } } +func (c *serviceClient) IpsecSaV5Dump(ctx context.Context, in *IpsecSaV5Dump) (RPCService_IpsecSaV5DumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IpsecSaV5DumpClient{stream} + if err := x.Stream.SendMsg(in); err != nil { + return nil, err + } + if err = x.Stream.SendMsg(&memclnt.ControlPing{}); err != nil { + return nil, err + } + return x, nil +} + +type RPCService_IpsecSaV5DumpClient interface { + Recv() (*IpsecSaV5Details, error) + api.Stream +} + +type serviceClient_IpsecSaV5DumpClient struct { + api.Stream +} + +func (c *serviceClient_IpsecSaV5DumpClient) Recv() (*IpsecSaV5Details, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IpsecSaV5Details: + return m, nil + case *memclnt.ControlPingReply: + err = c.Stream.Close() + if err != nil { + return nil, err + } + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + func (c *serviceClient) IpsecSadBind(ctx context.Context, in *IpsecSadBind) (*IpsecSadBindReply, error) { out := new(IpsecSadBindReply) err := c.conn.Invoke(ctx, in, out) @@ -381,6 +426,15 @@ func (c *serviceClient) IpsecSadEntryAddDelV3(ctx context.Context, in *IpsecSadE return out, api.RetvalToVPPApiError(out.Retval) } +func (c *serviceClient) IpsecSadEntryAddV2(ctx context.Context, in *IpsecSadEntryAddV2) (*IpsecSadEntryAddV2Reply, error) { + out := new(IpsecSadEntryAddV2Reply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, api.RetvalToVPPApiError(out.Retval) +} + func (c *serviceClient) IpsecSadEntryDel(ctx context.Context, in *IpsecSadEntryDel) (*IpsecSadEntryDelReply, error) { out := new(IpsecSadEntryDelReply) err := c.conn.Invoke(ctx, in, out) diff --git a/vpplink/generated/bindings/ipsec_types/ipsec_types.ba.go b/vpplink/generated/bindings/ipsec_types/ipsec_types.ba.go index 806afda1..120eba12 100644 --- a/vpplink/generated/bindings/ipsec_types/ipsec_types.ba.go +++ b/vpplink/generated/bindings/ipsec_types/ipsec_types.ba.go @@ -4,7 +4,7 @@ // // Contents: // - 5 enums -// - 6 structs +// - 7 structs package ipsec_types import ( @@ -25,7 +25,7 @@ const _ = api.GoVppAPIPackageIsVersion2 const ( APIFile = "ipsec_types" APIVersion = "3.0.1" - VersionCrc = 0x7892423b + VersionCrc = 0x9b9b8bc ) // IpsecCryptoAlg defines enum 'ipsec_crypto_alg'. @@ -317,6 +317,23 @@ type IpsecSadEntryV3 struct { UDPDstPort uint16 `binapi:"u16,name=udp_dst_port,default=4500" json:"udp_dst_port,omitempty"` } +// IpsecSadEntryV4 defines type 'ipsec_sad_entry_v4'. +type IpsecSadEntryV4 struct { + SadID uint32 `binapi:"u32,name=sad_id" json:"sad_id,omitempty"` + Spi uint32 `binapi:"u32,name=spi" json:"spi,omitempty"` + Protocol IpsecProto `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"` + CryptoAlgorithm IpsecCryptoAlg `binapi:"ipsec_crypto_alg,name=crypto_algorithm" json:"crypto_algorithm,omitempty"` + CryptoKey Key `binapi:"key,name=crypto_key" json:"crypto_key,omitempty"` + IntegrityAlgorithm IpsecIntegAlg `binapi:"ipsec_integ_alg,name=integrity_algorithm" json:"integrity_algorithm,omitempty"` + IntegrityKey Key `binapi:"key,name=integrity_key" json:"integrity_key,omitempty"` + Flags IpsecSadFlags `binapi:"ipsec_sad_flags,name=flags" json:"flags,omitempty"` + Tunnel tunnel_types.Tunnel `binapi:"tunnel,name=tunnel" json:"tunnel,omitempty"` + Salt uint32 `binapi:"u32,name=salt" json:"salt,omitempty"` + UDPSrcPort uint16 `binapi:"u16,name=udp_src_port,default=4500" json:"udp_src_port,omitempty"` + UDPDstPort uint16 `binapi:"u16,name=udp_dst_port,default=4500" json:"udp_dst_port,omitempty"` + AntiReplayWindowSize uint32 `binapi:"u32,name=anti_replay_window_size,default=64" json:"anti_replay_window_size,omitempty"` +} + // IpsecSpdEntry defines type 'ipsec_spd_entry'. type IpsecSpdEntry struct { SpdID uint32 `binapi:"u32,name=spd_id" json:"spd_id,omitempty"` diff --git a/vpplink/generated/generate.log b/vpplink/generated/generate.log index 5e53e01d..daab51d9 100755 --- a/vpplink/generated/generate.log +++ b/vpplink/generated/generate.log @@ -1,13 +1,11 @@ -VPP Version : 24.02-rc0~8-g5374967e3 +VPP Version : 24.02-rc0~186-g7dcba520c Binapi-generator version : v0.10.0-dev -VPP Base commit : 7d0cee39a gerrit:34726/3 interface: add buffer stats api +VPP Base commit : eae5a2e91 gerrit:34726/3 interface: add buffer stats api ------------------ Cherry picked commits -------------------- capo: Calico Policies plugin acl: acl-plugin custom policies cnat: [WIP] no k8s maglev from pods pbl: Port based balancer -gerrit:40078/3 vnet: allow format deleted swifidx -gerrit:40090/3 cnat: undo fib_entry_contribute_forwarding -gerrit:39507/13 cnat: add flow hash config to cnat translation +gerrit:40244/1 udp: update rx sw_if_index to ip-local selected one gerrit:34726/3 interface: add buffer stats api ------------------------------------------------------------- diff --git a/vpplink/generated/vpp_clone_current.sh b/vpplink/generated/vpp_clone_current.sh index 32c696e2..41ca5f2f 100755 --- a/vpplink/generated/vpp_clone_current.sh +++ b/vpplink/generated/vpp_clone_current.sh @@ -92,12 +92,9 @@ function git_clone_cd_and_reset () # --------------- Things to cherry pick --------------- -git_clone_cd_and_reset "$1" 7419bede7ad73544338fd4363da833b2d5fc89a5 # misc: Initial 24.02-rc0 commit (tag: v24.02-rc0) +git_clone_cd_and_reset "$1" 2ae8f79b5087c8da7d30283693f22ca710a60347 # cnat: undo fib_entry_contribute_forwarding git_cherry_pick refs/changes/26/34726/3 # 34726: interface: add buffer stats api | https://gerrit.fd.io/r/c/vpp/+/34726 -git_cherry_pick refs/changes/07/39507/13 # 39507: cnat: add flow hash config to cnat translation | https://gerrit.fd.io/r/c/vpp/+/39507/13 -git_cherry_pick refs/changes/90/40090/3 # 40090: cnat: undo fib_entry_contribute_forwarding | https://gerrit.fd.io/r/c/vpp/+/40090 -git_cherry_pick refs/changes/78/40078/3 # 40078: vnet: allow format deleted swifidx | https://gerrit.fd.io/r/c/vpp/+/40078 git_cherry_pick refs/changes/44/40244/1 # 40244: udp: update rx sw_if_index to ip-local selected one | https://gerrit.fd.io/r/c/vpp/+/40244 # --------------- private plugins ---------------