diff options
author | Ondrej Fabry <ofabry@cisco.com> | 2020-07-22 04:40:55 +0200 |
---|---|---|
committer | Ondrej Fabry <ofabry@cisco.com> | 2020-07-22 04:40:55 +0200 |
commit | 58da9ac6e691a8c660eb8ca838a154e11da0db68 (patch) | |
tree | a1bbda04c6d0621ce0fc20779276620f1820190b /internal/testbinapi/binapi2001/vxlan_gpe | |
parent | a155cd438c6558da266c1c5931361ea088b35653 (diff) |
Fix binapigen decoding and minor improvements
- fixed allocating byte slices before copying decoded data
- simplified encoding functions
- several minor improvements
Change-Id: I6669424b89eb86333805cb1b57e4551169980cc2
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Diffstat (limited to 'internal/testbinapi/binapi2001/vxlan_gpe')
-rw-r--r-- | internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe.ba.go | 333 | ||||
-rw-r--r-- | internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe_rpc.ba.go | 83 |
2 files changed, 416 insertions, 0 deletions
diff --git a/internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe.ba.go b/internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe.ba.go new file mode 100644 index 0000000..105fa77 --- /dev/null +++ b/internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe.ba.go @@ -0,0 +1,333 @@ +// Code generated by GoVPP's binapi-generator. DO NOT EDIT. +// versions: +// binapi-generator: v0.4.0-dev +// VPP: 20.01 +// source: .vppapi/core/vxlan_gpe.api.json + +// Package vxlan_gpe contains generated bindings for API file vxlan_gpe.api. +// +// Contents: +// 6 messages +// +package vxlan_gpe + +import ( + api "git.fd.io/govpp.git/api" + codec "git.fd.io/govpp.git/codec" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the GoVPP api package it is being compiled against. +// A compilation error at this line likely means your copy of the +// GoVPP api package needs to be updated. +const _ = api.GoVppAPIPackageIsVersion2 + +const ( + APIFile = "vxlan_gpe" + APIVersion = "1.0.0" + VersionCrc = 0x25bfb55d +) + +// SwInterfaceSetVxlanGpeBypass defines message 'sw_interface_set_vxlan_gpe_bypass'. +type SwInterfaceSetVxlanGpeBypass struct { + SwIfIndex uint32 `binapi:"u32,name=sw_if_index" json:"sw_if_index,omitempty"` + IsIPv6 uint8 `binapi:"u8,name=is_ipv6" json:"is_ipv6,omitempty"` + Enable uint8 `binapi:"u8,name=enable" json:"enable,omitempty"` +} + +func (m *SwInterfaceSetVxlanGpeBypass) Reset() { *m = SwInterfaceSetVxlanGpeBypass{} } +func (*SwInterfaceSetVxlanGpeBypass) GetMessageName() string { + return "sw_interface_set_vxlan_gpe_bypass" +} +func (*SwInterfaceSetVxlanGpeBypass) GetCrcString() string { return "e74ca095" } +func (*SwInterfaceSetVxlanGpeBypass) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *SwInterfaceSetVxlanGpeBypass) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.SwIfIndex + size += 1 // m.IsIPv6 + size += 1 // m.Enable + return size +} +func (m *SwInterfaceSetVxlanGpeBypass) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeUint32(m.SwIfIndex) + buf.EncodeUint8(m.IsIPv6) + buf.EncodeUint8(m.Enable) + return buf.Bytes(), nil +} +func (m *SwInterfaceSetVxlanGpeBypass) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = buf.DecodeUint32() + m.IsIPv6 = buf.DecodeUint8() + m.Enable = buf.DecodeUint8() + return nil +} + +// SwInterfaceSetVxlanGpeBypassReply defines message 'sw_interface_set_vxlan_gpe_bypass_reply'. +type SwInterfaceSetVxlanGpeBypassReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *SwInterfaceSetVxlanGpeBypassReply) Reset() { *m = SwInterfaceSetVxlanGpeBypassReply{} } +func (*SwInterfaceSetVxlanGpeBypassReply) GetMessageName() string { + return "sw_interface_set_vxlan_gpe_bypass_reply" +} +func (*SwInterfaceSetVxlanGpeBypassReply) GetCrcString() string { return "e8d4e804" } +func (*SwInterfaceSetVxlanGpeBypassReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *SwInterfaceSetVxlanGpeBypassReply) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.Retval + return size +} +func (m *SwInterfaceSetVxlanGpeBypassReply) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeInt32(m.Retval) + return buf.Bytes(), nil +} +func (m *SwInterfaceSetVxlanGpeBypassReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = buf.DecodeInt32() + return nil +} + +// VxlanGpeAddDelTunnel defines message 'vxlan_gpe_add_del_tunnel'. +type VxlanGpeAddDelTunnel struct { + IsIPv6 uint8 `binapi:"u8,name=is_ipv6" json:"is_ipv6,omitempty"` + Local []byte `binapi:"u8[16],name=local" json:"local,omitempty"` + Remote []byte `binapi:"u8[16],name=remote" json:"remote,omitempty"` + McastSwIfIndex uint32 `binapi:"u32,name=mcast_sw_if_index" json:"mcast_sw_if_index,omitempty"` + EncapVrfID uint32 `binapi:"u32,name=encap_vrf_id" json:"encap_vrf_id,omitempty"` + DecapVrfID uint32 `binapi:"u32,name=decap_vrf_id" json:"decap_vrf_id,omitempty"` + Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` + Vni uint32 `binapi:"u32,name=vni" json:"vni,omitempty"` + IsAdd uint8 `binapi:"u8,name=is_add" json:"is_add,omitempty"` +} + +func (m *VxlanGpeAddDelTunnel) Reset() { *m = VxlanGpeAddDelTunnel{} } +func (*VxlanGpeAddDelTunnel) GetMessageName() string { return "vxlan_gpe_add_del_tunnel" } +func (*VxlanGpeAddDelTunnel) GetCrcString() string { return "d15850ba" } +func (*VxlanGpeAddDelTunnel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *VxlanGpeAddDelTunnel) Size() (size int) { + if m == nil { + return 0 + } + size += 1 // m.IsIPv6 + size += 1 * 16 // m.Local + size += 1 * 16 // m.Remote + size += 4 // m.McastSwIfIndex + size += 4 // m.EncapVrfID + size += 4 // m.DecapVrfID + size += 1 // m.Protocol + size += 4 // m.Vni + size += 1 // m.IsAdd + return size +} +func (m *VxlanGpeAddDelTunnel) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeUint8(m.IsIPv6) + buf.EncodeBytes(m.Local, 16) + buf.EncodeBytes(m.Remote, 16) + buf.EncodeUint32(m.McastSwIfIndex) + buf.EncodeUint32(m.EncapVrfID) + buf.EncodeUint32(m.DecapVrfID) + buf.EncodeUint8(m.Protocol) + buf.EncodeUint32(m.Vni) + buf.EncodeUint8(m.IsAdd) + return buf.Bytes(), nil +} +func (m *VxlanGpeAddDelTunnel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsIPv6 = buf.DecodeUint8() + m.Local = make([]byte, 16) + copy(m.Local, buf.DecodeBytes(len(m.Local))) + m.Remote = make([]byte, 16) + copy(m.Remote, buf.DecodeBytes(len(m.Remote))) + m.McastSwIfIndex = buf.DecodeUint32() + m.EncapVrfID = buf.DecodeUint32() + m.DecapVrfID = buf.DecodeUint32() + m.Protocol = buf.DecodeUint8() + m.Vni = buf.DecodeUint32() + m.IsAdd = buf.DecodeUint8() + return nil +} + +// VxlanGpeAddDelTunnelReply defines message 'vxlan_gpe_add_del_tunnel_reply'. +type VxlanGpeAddDelTunnelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` + SwIfIndex uint32 `binapi:"u32,name=sw_if_index" json:"sw_if_index,omitempty"` +} + +func (m *VxlanGpeAddDelTunnelReply) Reset() { *m = VxlanGpeAddDelTunnelReply{} } +func (*VxlanGpeAddDelTunnelReply) GetMessageName() string { return "vxlan_gpe_add_del_tunnel_reply" } +func (*VxlanGpeAddDelTunnelReply) GetCrcString() string { return "fda5941f" } +func (*VxlanGpeAddDelTunnelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *VxlanGpeAddDelTunnelReply) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.Retval + size += 4 // m.SwIfIndex + return size +} +func (m *VxlanGpeAddDelTunnelReply) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeInt32(m.Retval) + buf.EncodeUint32(m.SwIfIndex) + return buf.Bytes(), nil +} +func (m *VxlanGpeAddDelTunnelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = buf.DecodeInt32() + m.SwIfIndex = buf.DecodeUint32() + return nil +} + +// VxlanGpeTunnelDetails defines message 'vxlan_gpe_tunnel_details'. +type VxlanGpeTunnelDetails struct { + SwIfIndex uint32 `binapi:"u32,name=sw_if_index" json:"sw_if_index,omitempty"` + Local []byte `binapi:"u8[16],name=local" json:"local,omitempty"` + Remote []byte `binapi:"u8[16],name=remote" json:"remote,omitempty"` + Vni uint32 `binapi:"u32,name=vni" json:"vni,omitempty"` + Protocol uint8 `binapi:"u8,name=protocol" json:"protocol,omitempty"` + McastSwIfIndex uint32 `binapi:"u32,name=mcast_sw_if_index" json:"mcast_sw_if_index,omitempty"` + EncapVrfID uint32 `binapi:"u32,name=encap_vrf_id" json:"encap_vrf_id,omitempty"` + DecapVrfID uint32 `binapi:"u32,name=decap_vrf_id" json:"decap_vrf_id,omitempty"` + IsIPv6 uint8 `binapi:"u8,name=is_ipv6" json:"is_ipv6,omitempty"` +} + +func (m *VxlanGpeTunnelDetails) Reset() { *m = VxlanGpeTunnelDetails{} } +func (*VxlanGpeTunnelDetails) GetMessageName() string { return "vxlan_gpe_tunnel_details" } +func (*VxlanGpeTunnelDetails) GetCrcString() string { return "2673fbfa" } +func (*VxlanGpeTunnelDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *VxlanGpeTunnelDetails) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.SwIfIndex + size += 1 * 16 // m.Local + size += 1 * 16 // m.Remote + size += 4 // m.Vni + size += 1 // m.Protocol + size += 4 // m.McastSwIfIndex + size += 4 // m.EncapVrfID + size += 4 // m.DecapVrfID + size += 1 // m.IsIPv6 + return size +} +func (m *VxlanGpeTunnelDetails) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeUint32(m.SwIfIndex) + buf.EncodeBytes(m.Local, 16) + buf.EncodeBytes(m.Remote, 16) + buf.EncodeUint32(m.Vni) + buf.EncodeUint8(m.Protocol) + buf.EncodeUint32(m.McastSwIfIndex) + buf.EncodeUint32(m.EncapVrfID) + buf.EncodeUint32(m.DecapVrfID) + buf.EncodeUint8(m.IsIPv6) + return buf.Bytes(), nil +} +func (m *VxlanGpeTunnelDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = buf.DecodeUint32() + m.Local = make([]byte, 16) + copy(m.Local, buf.DecodeBytes(len(m.Local))) + m.Remote = make([]byte, 16) + copy(m.Remote, buf.DecodeBytes(len(m.Remote))) + m.Vni = buf.DecodeUint32() + m.Protocol = buf.DecodeUint8() + m.McastSwIfIndex = buf.DecodeUint32() + m.EncapVrfID = buf.DecodeUint32() + m.DecapVrfID = buf.DecodeUint32() + m.IsIPv6 = buf.DecodeUint8() + return nil +} + +// VxlanGpeTunnelDump defines message 'vxlan_gpe_tunnel_dump'. +type VxlanGpeTunnelDump struct { + SwIfIndex uint32 `binapi:"u32,name=sw_if_index" json:"sw_if_index,omitempty"` +} + +func (m *VxlanGpeTunnelDump) Reset() { *m = VxlanGpeTunnelDump{} } +func (*VxlanGpeTunnelDump) GetMessageName() string { return "vxlan_gpe_tunnel_dump" } +func (*VxlanGpeTunnelDump) GetCrcString() string { return "529cb13f" } +func (*VxlanGpeTunnelDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *VxlanGpeTunnelDump) Size() (size int) { + if m == nil { + return 0 + } + size += 4 // m.SwIfIndex + return size +} +func (m *VxlanGpeTunnelDump) Marshal(b []byte) ([]byte, error) { + if b == nil { + b = make([]byte, m.Size()) + } + buf := codec.NewBuffer(b) + buf.EncodeUint32(m.SwIfIndex) + return buf.Bytes(), nil +} +func (m *VxlanGpeTunnelDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = buf.DecodeUint32() + return nil +} + +func init() { file_vxlan_gpe_binapi_init() } +func file_vxlan_gpe_binapi_init() { + api.RegisterMessage((*SwInterfaceSetVxlanGpeBypass)(nil), "sw_interface_set_vxlan_gpe_bypass_e74ca095") + api.RegisterMessage((*SwInterfaceSetVxlanGpeBypassReply)(nil), "sw_interface_set_vxlan_gpe_bypass_reply_e8d4e804") + api.RegisterMessage((*VxlanGpeAddDelTunnel)(nil), "vxlan_gpe_add_del_tunnel_d15850ba") + api.RegisterMessage((*VxlanGpeAddDelTunnelReply)(nil), "vxlan_gpe_add_del_tunnel_reply_fda5941f") + api.RegisterMessage((*VxlanGpeTunnelDetails)(nil), "vxlan_gpe_tunnel_details_2673fbfa") + api.RegisterMessage((*VxlanGpeTunnelDump)(nil), "vxlan_gpe_tunnel_dump_529cb13f") +} + +// Messages returns list of all messages in this module. +func AllMessages() []api.Message { + return []api.Message{ + (*SwInterfaceSetVxlanGpeBypass)(nil), + (*SwInterfaceSetVxlanGpeBypassReply)(nil), + (*VxlanGpeAddDelTunnel)(nil), + (*VxlanGpeAddDelTunnelReply)(nil), + (*VxlanGpeTunnelDetails)(nil), + (*VxlanGpeTunnelDump)(nil), + } +} diff --git a/internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe_rpc.ba.go b/internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe_rpc.ba.go new file mode 100644 index 0000000..3cb05d5 --- /dev/null +++ b/internal/testbinapi/binapi2001/vxlan_gpe/vxlan_gpe_rpc.ba.go @@ -0,0 +1,83 @@ +// Code generated by GoVPP's binapi-generator. DO NOT EDIT. + +package vxlan_gpe + +import ( + "context" + "fmt" + api "git.fd.io/govpp.git/api" + vpe "git.fd.io/govpp.git/internal/testbinapi/binapi2001/vpe" + "io" +) + +// RPCService defines RPC service vxlan_gpe. +type RPCService interface { + SwInterfaceSetVxlanGpeBypass(ctx context.Context, in *SwInterfaceSetVxlanGpeBypass) (*SwInterfaceSetVxlanGpeBypassReply, error) + VxlanGpeAddDelTunnel(ctx context.Context, in *VxlanGpeAddDelTunnel) (*VxlanGpeAddDelTunnelReply, error) + VxlanGpeTunnelDump(ctx context.Context, in *VxlanGpeTunnelDump) (RPCService_VxlanGpeTunnelDumpClient, error) +} + +type serviceClient struct { + conn api.Connection +} + +func NewServiceClient(conn api.Connection) RPCService { + return &serviceClient{conn} +} + +func (c *serviceClient) SwInterfaceSetVxlanGpeBypass(ctx context.Context, in *SwInterfaceSetVxlanGpeBypass) (*SwInterfaceSetVxlanGpeBypassReply, error) { + out := new(SwInterfaceSetVxlanGpeBypassReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) VxlanGpeAddDelTunnel(ctx context.Context, in *VxlanGpeAddDelTunnel) (*VxlanGpeAddDelTunnelReply, error) { + out := new(VxlanGpeAddDelTunnelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) VxlanGpeTunnelDump(ctx context.Context, in *VxlanGpeTunnelDump) (RPCService_VxlanGpeTunnelDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_VxlanGpeTunnelDumpClient{stream} + if err := x.Stream.SendMsg(in); err != nil { + return nil, err + } + if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil { + return nil, err + } + return x, nil +} + +type RPCService_VxlanGpeTunnelDumpClient interface { + Recv() (*VxlanGpeTunnelDetails, error) + api.Stream +} + +type serviceClient_VxlanGpeTunnelDumpClient struct { + api.Stream +} + +func (c *serviceClient_VxlanGpeTunnelDumpClient) Recv() (*VxlanGpeTunnelDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *VxlanGpeTunnelDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} |