From d1f24d37bd447b64e402298bb8eb2479681facf9 Mon Sep 17 00:00:00 2001 From: Ondrej Fabry Date: Fri, 17 Jul 2020 10:36:28 +0200 Subject: Improve binapi generator - simplified Size/Marshal/Unmarshal methods - replace struc in unions with custom marshal/unmarshal - fix imports in generated files - fix mock adapter - generate rpc service using low-level stream API (dumps generate control ping or stream msg..) - move examples/binapi to binapi and generate all API for latest release - add binapigen.Plugin for developing custom generator plugins - optionally generate HTTP handlers (REST API) for RPC services - add govpp program for browsing VPP API Change-Id: I092e9ed2b0c17972b3476463c3d4b14dd76ed42b Signed-off-by: Ondrej Fabry --- binapi/bier/bier.ba.go | 1343 +++++++++++++++++++++++++++++++++++++++++++ binapi/bier/bier_rest.ba.go | 152 +++++ binapi/bier/bier_rpc.ba.go | 283 +++++++++ 3 files changed, 1778 insertions(+) create mode 100644 binapi/bier/bier.ba.go create mode 100644 binapi/bier/bier_rest.ba.go create mode 100644 binapi/bier/bier_rpc.ba.go (limited to 'binapi/bier') diff --git a/binapi/bier/bier.ba.go b/binapi/bier/bier.ba.go new file mode 100644 index 0000000..456e25c --- /dev/null +++ b/binapi/bier/bier.ba.go @@ -0,0 +1,1343 @@ +// Code generated by GoVPP's binapi-generator. DO NOT EDIT. +// versions: +// binapi-generator: v0.4.0-dev +// VPP: 20.05-release +// source: /usr/share/vpp/api/core/bier.api.json + +// Package bier contains generated bindings for API file bier.api. +// +// Contents: +// 2 structs +// 22 messages +// +package bier + +import ( + api "git.fd.io/govpp.git/api" + fib_types "git.fd.io/govpp.git/binapi/fib_types" + _ "git.fd.io/govpp.git/binapi/ip_types" + 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 = "bier" + APIVersion = "1.2.1" + VersionCrc = 0x9196a2d4 +) + +// BierRoute defines type 'bier_route'. +type BierRoute struct { + BrBp uint32 `binapi:"u32,name=br_bp" json:"br_bp,omitempty"` + BrTblID BierTableID `binapi:"bier_table_id,name=br_tbl_id" json:"br_tbl_id,omitempty"` + BrNPaths uint8 `binapi:"u8,name=br_n_paths" json:"-"` + BrPaths []fib_types.FibPath `binapi:"fib_path[br_n_paths],name=br_paths" json:"br_paths,omitempty"` +} + +// BierTableID defines type 'bier_table_id'. +type BierTableID struct { + BtSet uint8 `binapi:"u8,name=bt_set" json:"bt_set,omitempty"` + BtSubDomain uint8 `binapi:"u8,name=bt_sub_domain" json:"bt_sub_domain,omitempty"` + BtHdrLenID uint8 `binapi:"u8,name=bt_hdr_len_id" json:"bt_hdr_len_id,omitempty"` +} + +// BierDispEntryAddDel defines message 'bier_disp_entry_add_del'. +type BierDispEntryAddDel struct { + BdeBp uint16 `binapi:"u16,name=bde_bp" json:"bde_bp,omitempty"` + BdeTblID uint32 `binapi:"u32,name=bde_tbl_id" json:"bde_tbl_id,omitempty"` + BdeIsAdd bool `binapi:"bool,name=bde_is_add" json:"bde_is_add,omitempty"` + BdePayloadProto uint8 `binapi:"u8,name=bde_payload_proto" json:"bde_payload_proto,omitempty"` + BdeNPaths uint8 `binapi:"u8,name=bde_n_paths" json:"-"` + BdePaths []fib_types.FibPath `binapi:"fib_path[bde_n_paths],name=bde_paths" json:"bde_paths,omitempty"` +} + +func (m *BierDispEntryAddDel) Reset() { *m = BierDispEntryAddDel{} } +func (*BierDispEntryAddDel) GetMessageName() string { return "bier_disp_entry_add_del" } +func (*BierDispEntryAddDel) GetCrcString() string { return "648323eb" } +func (*BierDispEntryAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierDispEntryAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 2 // m.BdeBp + size += 4 // m.BdeTblID + size += 1 // m.BdeIsAdd + size += 1 // m.BdePayloadProto + size += 1 // m.BdeNPaths + for j1 := 0; j1 < len(m.BdePaths); j1++ { + var s1 fib_types.FibPath + _ = s1 + if j1 < len(m.BdePaths) { + s1 = m.BdePaths[j1] + } + size += 4 // s1.SwIfIndex + size += 4 // s1.TableID + size += 4 // s1.RpfID + size += 1 // s1.Weight + size += 1 // s1.Preference + size += 4 // s1.Type + size += 4 // s1.Flags + size += 4 // s1.Proto + size += 1 * 16 // s1.Nh.Address + size += 4 // s1.Nh.ViaLabel + size += 4 // s1.Nh.ObjID + size += 4 // s1.Nh.ClassifyTableIndex + size += 1 // s1.NLabels + for j2 := 0; j2 < 16; j2++ { + var s2 fib_types.FibMplsLabel + _ = s2 + if j2 < len(s1.LabelStack) { + s2 = s1.LabelStack[j2] + } + size += 1 // s2.IsUniform + size += 4 // s2.Label + size += 1 // s2.TTL + size += 1 // s2.Exp + } + } + return size +} +func (m *BierDispEntryAddDel) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint16(uint16(m.BdeBp)) + buf.EncodeUint32(uint32(m.BdeTblID)) + buf.EncodeBool(m.BdeIsAdd) + buf.EncodeUint8(uint8(m.BdePayloadProto)) + buf.EncodeUint8(uint8(len(m.BdePaths))) + for j0 := 0; j0 < len(m.BdePaths); j0++ { + var v0 fib_types.FibPath + if j0 < len(m.BdePaths) { + v0 = m.BdePaths[j0] + } + buf.EncodeUint32(uint32(v0.SwIfIndex)) + buf.EncodeUint32(uint32(v0.TableID)) + buf.EncodeUint32(uint32(v0.RpfID)) + buf.EncodeUint8(uint8(v0.Weight)) + buf.EncodeUint8(uint8(v0.Preference)) + buf.EncodeUint32(uint32(v0.Type)) + buf.EncodeUint32(uint32(v0.Flags)) + buf.EncodeUint32(uint32(v0.Proto)) + buf.EncodeBytes(v0.Nh.Address.XXX_UnionData[:], 0) + buf.EncodeUint32(uint32(v0.Nh.ViaLabel)) + buf.EncodeUint32(uint32(v0.Nh.ObjID)) + buf.EncodeUint32(uint32(v0.Nh.ClassifyTableIndex)) + buf.EncodeUint8(uint8(v0.NLabels)) + for j1 := 0; j1 < 16; j1++ { + var v1 fib_types.FibMplsLabel + if j1 < len(v0.LabelStack) { + v1 = v0.LabelStack[j1] + } + buf.EncodeUint8(uint8(v1.IsUniform)) + buf.EncodeUint32(uint32(v1.Label)) + buf.EncodeUint8(uint8(v1.TTL)) + buf.EncodeUint8(uint8(v1.Exp)) + } + } + return buf.Bytes(), nil +} +func (m *BierDispEntryAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BdeBp = buf.DecodeUint16() + m.BdeTblID = buf.DecodeUint32() + m.BdeIsAdd = buf.DecodeBool() + m.BdePayloadProto = buf.DecodeUint8() + m.BdeNPaths = buf.DecodeUint8() + m.BdePaths = make([]fib_types.FibPath, int(m.BdeNPaths)) + for j0 := 0; j0 < len(m.BdePaths); j0++ { + m.BdePaths[j0].SwIfIndex = buf.DecodeUint32() + m.BdePaths[j0].TableID = buf.DecodeUint32() + m.BdePaths[j0].RpfID = buf.DecodeUint32() + m.BdePaths[j0].Weight = buf.DecodeUint8() + m.BdePaths[j0].Preference = buf.DecodeUint8() + m.BdePaths[j0].Type = fib_types.FibPathType(buf.DecodeUint32()) + m.BdePaths[j0].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.BdePaths[j0].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.BdePaths[j0].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.BdePaths[j0].Nh.ViaLabel = buf.DecodeUint32() + m.BdePaths[j0].Nh.ObjID = buf.DecodeUint32() + m.BdePaths[j0].Nh.ClassifyTableIndex = buf.DecodeUint32() + m.BdePaths[j0].NLabels = buf.DecodeUint8() + for j1 := 0; j1 < 16; j1++ { + m.BdePaths[j0].LabelStack[j1].IsUniform = buf.DecodeUint8() + m.BdePaths[j0].LabelStack[j1].Label = buf.DecodeUint32() + m.BdePaths[j0].LabelStack[j1].TTL = buf.DecodeUint8() + m.BdePaths[j0].LabelStack[j1].Exp = buf.DecodeUint8() + } + } + return nil +} + +// BierDispEntryAddDelReply defines message 'bier_disp_entry_add_del_reply'. +type BierDispEntryAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *BierDispEntryAddDelReply) Reset() { *m = BierDispEntryAddDelReply{} } +func (*BierDispEntryAddDelReply) GetMessageName() string { return "bier_disp_entry_add_del_reply" } +func (*BierDispEntryAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*BierDispEntryAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierDispEntryAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *BierDispEntryAddDelReply) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.Retval)) + return buf.Bytes(), nil +} +func (m *BierDispEntryAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// BierDispEntryDetails defines message 'bier_disp_entry_details'. +type BierDispEntryDetails struct { + BdeBp uint16 `binapi:"u16,name=bde_bp" json:"bde_bp,omitempty"` + BdeTblID uint32 `binapi:"u32,name=bde_tbl_id" json:"bde_tbl_id,omitempty"` + BdeIsAdd bool `binapi:"bool,name=bde_is_add" json:"bde_is_add,omitempty"` + BdePayloadProto uint8 `binapi:"u8,name=bde_payload_proto" json:"bde_payload_proto,omitempty"` + BdeNPaths uint8 `binapi:"u8,name=bde_n_paths" json:"-"` + BdePaths []fib_types.FibPath `binapi:"fib_path[bde_n_paths],name=bde_paths" json:"bde_paths,omitempty"` +} + +func (m *BierDispEntryDetails) Reset() { *m = BierDispEntryDetails{} } +func (*BierDispEntryDetails) GetMessageName() string { return "bier_disp_entry_details" } +func (*BierDispEntryDetails) GetCrcString() string { return "e5b039a9" } +func (*BierDispEntryDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierDispEntryDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 2 // m.BdeBp + size += 4 // m.BdeTblID + size += 1 // m.BdeIsAdd + size += 1 // m.BdePayloadProto + size += 1 // m.BdeNPaths + for j1 := 0; j1 < len(m.BdePaths); j1++ { + var s1 fib_types.FibPath + _ = s1 + if j1 < len(m.BdePaths) { + s1 = m.BdePaths[j1] + } + size += 4 // s1.SwIfIndex + size += 4 // s1.TableID + size += 4 // s1.RpfID + size += 1 // s1.Weight + size += 1 // s1.Preference + size += 4 // s1.Type + size += 4 // s1.Flags + size += 4 // s1.Proto + size += 1 * 16 // s1.Nh.Address + size += 4 // s1.Nh.ViaLabel + size += 4 // s1.Nh.ObjID + size += 4 // s1.Nh.ClassifyTableIndex + size += 1 // s1.NLabels + for j2 := 0; j2 < 16; j2++ { + var s2 fib_types.FibMplsLabel + _ = s2 + if j2 < len(s1.LabelStack) { + s2 = s1.LabelStack[j2] + } + size += 1 // s2.IsUniform + size += 4 // s2.Label + size += 1 // s2.TTL + size += 1 // s2.Exp + } + } + return size +} +func (m *BierDispEntryDetails) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint16(uint16(m.BdeBp)) + buf.EncodeUint32(uint32(m.BdeTblID)) + buf.EncodeBool(m.BdeIsAdd) + buf.EncodeUint8(uint8(m.BdePayloadProto)) + buf.EncodeUint8(uint8(len(m.BdePaths))) + for j0 := 0; j0 < len(m.BdePaths); j0++ { + var v0 fib_types.FibPath + if j0 < len(m.BdePaths) { + v0 = m.BdePaths[j0] + } + buf.EncodeUint32(uint32(v0.SwIfIndex)) + buf.EncodeUint32(uint32(v0.TableID)) + buf.EncodeUint32(uint32(v0.RpfID)) + buf.EncodeUint8(uint8(v0.Weight)) + buf.EncodeUint8(uint8(v0.Preference)) + buf.EncodeUint32(uint32(v0.Type)) + buf.EncodeUint32(uint32(v0.Flags)) + buf.EncodeUint32(uint32(v0.Proto)) + buf.EncodeBytes(v0.Nh.Address.XXX_UnionData[:], 0) + buf.EncodeUint32(uint32(v0.Nh.ViaLabel)) + buf.EncodeUint32(uint32(v0.Nh.ObjID)) + buf.EncodeUint32(uint32(v0.Nh.ClassifyTableIndex)) + buf.EncodeUint8(uint8(v0.NLabels)) + for j1 := 0; j1 < 16; j1++ { + var v1 fib_types.FibMplsLabel + if j1 < len(v0.LabelStack) { + v1 = v0.LabelStack[j1] + } + buf.EncodeUint8(uint8(v1.IsUniform)) + buf.EncodeUint32(uint32(v1.Label)) + buf.EncodeUint8(uint8(v1.TTL)) + buf.EncodeUint8(uint8(v1.Exp)) + } + } + return buf.Bytes(), nil +} +func (m *BierDispEntryDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BdeBp = buf.DecodeUint16() + m.BdeTblID = buf.DecodeUint32() + m.BdeIsAdd = buf.DecodeBool() + m.BdePayloadProto = buf.DecodeUint8() + m.BdeNPaths = buf.DecodeUint8() + m.BdePaths = make([]fib_types.FibPath, int(m.BdeNPaths)) + for j0 := 0; j0 < len(m.BdePaths); j0++ { + m.BdePaths[j0].SwIfIndex = buf.DecodeUint32() + m.BdePaths[j0].TableID = buf.DecodeUint32() + m.BdePaths[j0].RpfID = buf.DecodeUint32() + m.BdePaths[j0].Weight = buf.DecodeUint8() + m.BdePaths[j0].Preference = buf.DecodeUint8() + m.BdePaths[j0].Type = fib_types.FibPathType(buf.DecodeUint32()) + m.BdePaths[j0].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.BdePaths[j0].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.BdePaths[j0].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.BdePaths[j0].Nh.ViaLabel = buf.DecodeUint32() + m.BdePaths[j0].Nh.ObjID = buf.DecodeUint32() + m.BdePaths[j0].Nh.ClassifyTableIndex = buf.DecodeUint32() + m.BdePaths[j0].NLabels = buf.DecodeUint8() + for j1 := 0; j1 < 16; j1++ { + m.BdePaths[j0].LabelStack[j1].IsUniform = buf.DecodeUint8() + m.BdePaths[j0].LabelStack[j1].Label = buf.DecodeUint32() + m.BdePaths[j0].LabelStack[j1].TTL = buf.DecodeUint8() + m.BdePaths[j0].LabelStack[j1].Exp = buf.DecodeUint8() + } + } + return nil +} + +// BierDispEntryDump defines message 'bier_disp_entry_dump'. +type BierDispEntryDump struct { + BdeTblID uint32 `binapi:"u32,name=bde_tbl_id" json:"bde_tbl_id,omitempty"` +} + +func (m *BierDispEntryDump) Reset() { *m = BierDispEntryDump{} } +func (*BierDispEntryDump) GetMessageName() string { return "bier_disp_entry_dump" } +func (*BierDispEntryDump) GetCrcString() string { return "b5fa54ad" } +func (*BierDispEntryDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierDispEntryDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.BdeTblID + return size +} +func (m *BierDispEntryDump) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.BdeTblID)) + return buf.Bytes(), nil +} +func (m *BierDispEntryDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BdeTblID = buf.DecodeUint32() + return nil +} + +// BierDispTableAddDel defines message 'bier_disp_table_add_del'. +type BierDispTableAddDel struct { + BdtTblID uint32 `binapi:"u32,name=bdt_tbl_id" json:"bdt_tbl_id,omitempty"` + BdtIsAdd bool `binapi:"bool,name=bdt_is_add" json:"bdt_is_add,omitempty"` +} + +func (m *BierDispTableAddDel) Reset() { *m = BierDispTableAddDel{} } +func (*BierDispTableAddDel) GetMessageName() string { return "bier_disp_table_add_del" } +func (*BierDispTableAddDel) GetCrcString() string { return "889657ac" } +func (*BierDispTableAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierDispTableAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.BdtTblID + size += 1 // m.BdtIsAdd + return size +} +func (m *BierDispTableAddDel) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.BdtTblID)) + buf.EncodeBool(m.BdtIsAdd) + return buf.Bytes(), nil +} +func (m *BierDispTableAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BdtTblID = buf.DecodeUint32() + m.BdtIsAdd = buf.DecodeBool() + return nil +} + +// BierDispTableAddDelReply defines message 'bier_disp_table_add_del_reply'. +type BierDispTableAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *BierDispTableAddDelReply) Reset() { *m = BierDispTableAddDelReply{} } +func (*BierDispTableAddDelReply) GetMessageName() string { return "bier_disp_table_add_del_reply" } +func (*BierDispTableAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*BierDispTableAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierDispTableAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *BierDispTableAddDelReply) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.Retval)) + return buf.Bytes(), nil +} +func (m *BierDispTableAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// BierDispTableDetails defines message 'bier_disp_table_details'. +type BierDispTableDetails struct { + BdtTblID uint32 `binapi:"u32,name=bdt_tbl_id" json:"bdt_tbl_id,omitempty"` +} + +func (m *BierDispTableDetails) Reset() { *m = BierDispTableDetails{} } +func (*BierDispTableDetails) GetMessageName() string { return "bier_disp_table_details" } +func (*BierDispTableDetails) GetCrcString() string { return "d27942c0" } +func (*BierDispTableDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierDispTableDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.BdtTblID + return size +} +func (m *BierDispTableDetails) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.BdtTblID)) + return buf.Bytes(), nil +} +func (m *BierDispTableDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BdtTblID = buf.DecodeUint32() + return nil +} + +// BierDispTableDump defines message 'bier_disp_table_dump'. +type BierDispTableDump struct{} + +func (m *BierDispTableDump) Reset() { *m = BierDispTableDump{} } +func (*BierDispTableDump) GetMessageName() string { return "bier_disp_table_dump" } +func (*BierDispTableDump) GetCrcString() string { return "51077d14" } +func (*BierDispTableDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierDispTableDump) Size() int { + if m == nil { + return 0 + } + var size int + return size +} +func (m *BierDispTableDump) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + return buf.Bytes(), nil +} +func (m *BierDispTableDump) Unmarshal(b []byte) error { + return nil +} + +// BierImpAdd defines message 'bier_imp_add'. +type BierImpAdd struct { + BiTblID BierTableID `binapi:"bier_table_id,name=bi_tbl_id" json:"bi_tbl_id,omitempty"` + BiSrc uint16 `binapi:"u16,name=bi_src" json:"bi_src,omitempty"` + BiNBytes uint8 `binapi:"u8,name=bi_n_bytes" json:"-"` + BiBytes []byte `binapi:"u8[bi_n_bytes],name=bi_bytes" json:"bi_bytes,omitempty"` +} + +func (m *BierImpAdd) Reset() { *m = BierImpAdd{} } +func (*BierImpAdd) GetMessageName() string { return "bier_imp_add" } +func (*BierImpAdd) GetCrcString() string { return "3856dc3d" } +func (*BierImpAdd) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierImpAdd) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.BiTblID.BtSet + size += 1 // m.BiTblID.BtSubDomain + size += 1 // m.BiTblID.BtHdrLenID + size += 2 // m.BiSrc + size += 1 // m.BiNBytes + size += 1 * len(m.BiBytes) // m.BiBytes + return size +} +func (m *BierImpAdd) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint8(uint8(m.BiTblID.BtSet)) + buf.EncodeUint8(uint8(m.BiTblID.BtSubDomain)) + buf.EncodeUint8(uint8(m.BiTblID.BtHdrLenID)) + buf.EncodeUint16(uint16(m.BiSrc)) + buf.EncodeUint8(uint8(len(m.BiBytes))) + buf.EncodeBytes(m.BiBytes[:], 0) + return buf.Bytes(), nil +} +func (m *BierImpAdd) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BiTblID.BtSet = buf.DecodeUint8() + m.BiTblID.BtSubDomain = buf.DecodeUint8() + m.BiTblID.BtHdrLenID = buf.DecodeUint8() + m.BiSrc = buf.DecodeUint16() + m.BiNBytes = buf.DecodeUint8() + copy(m.BiBytes[:], buf.DecodeBytes(0)) + return nil +} + +// BierImpAddReply defines message 'bier_imp_add_reply'. +type BierImpAddReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` + BiIndex uint32 `binapi:"u32,name=bi_index" json:"bi_index,omitempty"` +} + +func (m *BierImpAddReply) Reset() { *m = BierImpAddReply{} } +func (*BierImpAddReply) GetMessageName() string { return "bier_imp_add_reply" } +func (*BierImpAddReply) GetCrcString() string { return "d49c5793" } +func (*BierImpAddReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierImpAddReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + size += 4 // m.BiIndex + return size +} +func (m *BierImpAddReply) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.Retval)) + buf.EncodeUint32(uint32(m.BiIndex)) + return buf.Bytes(), nil +} +func (m *BierImpAddReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + m.BiIndex = buf.DecodeUint32() + return nil +} + +// BierImpDel defines message 'bier_imp_del'. +type BierImpDel struct { + BiIndex uint32 `binapi:"u32,name=bi_index" json:"bi_index,omitempty"` +} + +func (m *BierImpDel) Reset() { *m = BierImpDel{} } +func (*BierImpDel) GetMessageName() string { return "bier_imp_del" } +func (*BierImpDel) GetCrcString() string { return "7d45edf6" } +func (*BierImpDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierImpDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.BiIndex + return size +} +func (m *BierImpDel) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.BiIndex)) + return buf.Bytes(), nil +} +func (m *BierImpDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BiIndex = buf.DecodeUint32() + return nil +} + +// BierImpDelReply defines message 'bier_imp_del_reply'. +type BierImpDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *BierImpDelReply) Reset() { *m = BierImpDelReply{} } +func (*BierImpDelReply) GetMessageName() string { return "bier_imp_del_reply" } +func (*BierImpDelReply) GetCrcString() string { return "e8d4e804" } +func (*BierImpDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierImpDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *BierImpDelReply) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.Retval)) + return buf.Bytes(), nil +} +func (m *BierImpDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// BierImpDetails defines message 'bier_imp_details'. +type BierImpDetails struct { + BiTblID BierTableID `binapi:"bier_table_id,name=bi_tbl_id" json:"bi_tbl_id,omitempty"` + BiSrc uint16 `binapi:"u16,name=bi_src" json:"bi_src,omitempty"` + BiNBytes uint8 `binapi:"u8,name=bi_n_bytes" json:"-"` + BiBytes []byte `binapi:"u8[bi_n_bytes],name=bi_bytes" json:"bi_bytes,omitempty"` +} + +func (m *BierImpDetails) Reset() { *m = BierImpDetails{} } +func (*BierImpDetails) GetMessageName() string { return "bier_imp_details" } +func (*BierImpDetails) GetCrcString() string { return "b76192df" } +func (*BierImpDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierImpDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.BiTblID.BtSet + size += 1 // m.BiTblID.BtSubDomain + size += 1 // m.BiTblID.BtHdrLenID + size += 2 // m.BiSrc + size += 1 // m.BiNBytes + size += 1 * len(m.BiBytes) // m.BiBytes + return size +} +func (m *BierImpDetails) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint8(uint8(m.BiTblID.BtSet)) + buf.EncodeUint8(uint8(m.BiTblID.BtSubDomain)) + buf.EncodeUint8(uint8(m.BiTblID.BtHdrLenID)) + buf.EncodeUint16(uint16(m.BiSrc)) + buf.EncodeUint8(uint8(len(m.BiBytes))) + buf.EncodeBytes(m.BiBytes[:], 0) + return buf.Bytes(), nil +} +func (m *BierImpDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BiTblID.BtSet = buf.DecodeUint8() + m.BiTblID.BtSubDomain = buf.DecodeUint8() + m.BiTblID.BtHdrLenID = buf.DecodeUint8() + m.BiSrc = buf.DecodeUint16() + m.BiNBytes = buf.DecodeUint8() + copy(m.BiBytes[:], buf.DecodeBytes(0)) + return nil +} + +// BierImpDump defines message 'bier_imp_dump'. +type BierImpDump struct{} + +func (m *BierImpDump) Reset() { *m = BierImpDump{} } +func (*BierImpDump) GetMessageName() string { return "bier_imp_dump" } +func (*BierImpDump) GetCrcString() string { return "51077d14" } +func (*BierImpDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierImpDump) Size() int { + if m == nil { + return 0 + } + var size int + return size +} +func (m *BierImpDump) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + return buf.Bytes(), nil +} +func (m *BierImpDump) Unmarshal(b []byte) error { + return nil +} + +// BierRouteAddDel defines message 'bier_route_add_del'. +type BierRouteAddDel struct { + BrIsAdd bool `binapi:"bool,name=br_is_add" json:"br_is_add,omitempty"` + BrIsReplace bool `binapi:"bool,name=br_is_replace" json:"br_is_replace,omitempty"` + BrRoute BierRoute `binapi:"bier_route,name=br_route" json:"br_route,omitempty"` +} + +func (m *BierRouteAddDel) Reset() { *m = BierRouteAddDel{} } +func (*BierRouteAddDel) GetMessageName() string { return "bier_route_add_del" } +func (*BierRouteAddDel) GetCrcString() string { return "f29edca0" } +func (*BierRouteAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierRouteAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.BrIsAdd + size += 1 // m.BrIsReplace + size += 4 // m.BrRoute.BrBp + size += 1 // m.BrRoute.BrTblID.BtSet + size += 1 // m.BrRoute.BrTblID.BtSubDomain + size += 1 // m.BrRoute.BrTblID.BtHdrLenID + size += 1 // m.BrRoute.BrNPaths + for j2 := 0; j2 < len(m.BrRoute.BrPaths); j2++ { + var s2 fib_types.FibPath + _ = s2 + if j2 < len(m.BrRoute.BrPaths) { + s2 = m.BrRoute.BrPaths[j2] + } + size += 4 // s2.SwIfIndex + size += 4 // s2.TableID + size += 4 // s2.RpfID + size += 1 // s2.Weight + size += 1 // s2.Preference + size += 4 // s2.Type + size += 4 // s2.Flags + size += 4 // s2.Proto + size += 1 * 16 // s2.Nh.Address + size += 4 // s2.Nh.ViaLabel + size += 4 // s2.Nh.ObjID + size += 4 // s2.Nh.ClassifyTableIndex + size += 1 // s2.NLabels + for j3 := 0; j3 < 16; j3++ { + var s3 fib_types.FibMplsLabel + _ = s3 + if j3 < len(s2.LabelStack) { + s3 = s2.LabelStack[j3] + } + size += 1 // s3.IsUniform + size += 4 // s3.Label + size += 1 // s3.TTL + size += 1 // s3.Exp + } + } + return size +} +func (m *BierRouteAddDel) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeBool(m.BrIsAdd) + buf.EncodeBool(m.BrIsReplace) + buf.EncodeUint32(uint32(m.BrRoute.BrBp)) + buf.EncodeUint8(uint8(m.BrRoute.BrTblID.BtSet)) + buf.EncodeUint8(uint8(m.BrRoute.BrTblID.BtSubDomain)) + buf.EncodeUint8(uint8(m.BrRoute.BrTblID.BtHdrLenID)) + buf.EncodeUint8(uint8(len(m.BrRoute.BrPaths))) + for j1 := 0; j1 < len(m.BrRoute.BrPaths); j1++ { + var v1 fib_types.FibPath + if j1 < len(m.BrRoute.BrPaths) { + v1 = m.BrRoute.BrPaths[j1] + } + buf.EncodeUint32(uint32(v1.SwIfIndex)) + buf.EncodeUint32(uint32(v1.TableID)) + buf.EncodeUint32(uint32(v1.RpfID)) + buf.EncodeUint8(uint8(v1.Weight)) + buf.EncodeUint8(uint8(v1.Preference)) + buf.EncodeUint32(uint32(v1.Type)) + buf.EncodeUint32(uint32(v1.Flags)) + buf.EncodeUint32(uint32(v1.Proto)) + buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 0) + buf.EncodeUint32(uint32(v1.Nh.ViaLabel)) + buf.EncodeUint32(uint32(v1.Nh.ObjID)) + buf.EncodeUint32(uint32(v1.Nh.ClassifyTableIndex)) + buf.EncodeUint8(uint8(v1.NLabels)) + for j2 := 0; j2 < 16; j2++ { + var v2 fib_types.FibMplsLabel + if j2 < len(v1.LabelStack) { + v2 = v1.LabelStack[j2] + } + buf.EncodeUint8(uint8(v2.IsUniform)) + buf.EncodeUint32(uint32(v2.Label)) + buf.EncodeUint8(uint8(v2.TTL)) + buf.EncodeUint8(uint8(v2.Exp)) + } + } + return buf.Bytes(), nil +} +func (m *BierRouteAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BrIsAdd = buf.DecodeBool() + m.BrIsReplace = buf.DecodeBool() + m.BrRoute.BrBp = buf.DecodeUint32() + m.BrRoute.BrTblID.BtSet = buf.DecodeUint8() + m.BrRoute.BrTblID.BtSubDomain = buf.DecodeUint8() + m.BrRoute.BrTblID.BtHdrLenID = buf.DecodeUint8() + m.BrRoute.BrNPaths = buf.DecodeUint8() + m.BrRoute.BrPaths = make([]fib_types.FibPath, int(m.BrRoute.BrNPaths)) + for j1 := 0; j1 < len(m.BrRoute.BrPaths); j1++ { + m.BrRoute.BrPaths[j1].SwIfIndex = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].TableID = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].RpfID = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].Weight = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].Preference = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].Type = fib_types.FibPathType(buf.DecodeUint32()) + m.BrRoute.BrPaths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.BrRoute.BrPaths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.BrRoute.BrPaths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.BrRoute.BrPaths[j1].Nh.ViaLabel = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].Nh.ObjID = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].NLabels = buf.DecodeUint8() + for j2 := 0; j2 < 16; j2++ { + m.BrRoute.BrPaths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].LabelStack[j2].Label = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].LabelStack[j2].TTL = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].LabelStack[j2].Exp = buf.DecodeUint8() + } + } + return nil +} + +// BierRouteAddDelReply defines message 'bier_route_add_del_reply'. +type BierRouteAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *BierRouteAddDelReply) Reset() { *m = BierRouteAddDelReply{} } +func (*BierRouteAddDelReply) GetMessageName() string { return "bier_route_add_del_reply" } +func (*BierRouteAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*BierRouteAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierRouteAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *BierRouteAddDelReply) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.Retval)) + return buf.Bytes(), nil +} +func (m *BierRouteAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// BierRouteDetails defines message 'bier_route_details'. +type BierRouteDetails struct { + BrRoute BierRoute `binapi:"bier_route,name=br_route" json:"br_route,omitempty"` +} + +func (m *BierRouteDetails) Reset() { *m = BierRouteDetails{} } +func (*BierRouteDetails) GetMessageName() string { return "bier_route_details" } +func (*BierRouteDetails) GetCrcString() string { return "39ee6a56" } +func (*BierRouteDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierRouteDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.BrRoute.BrBp + size += 1 // m.BrRoute.BrTblID.BtSet + size += 1 // m.BrRoute.BrTblID.BtSubDomain + size += 1 // m.BrRoute.BrTblID.BtHdrLenID + size += 1 // m.BrRoute.BrNPaths + for j2 := 0; j2 < len(m.BrRoute.BrPaths); j2++ { + var s2 fib_types.FibPath + _ = s2 + if j2 < len(m.BrRoute.BrPaths) { + s2 = m.BrRoute.BrPaths[j2] + } + size += 4 // s2.SwIfIndex + size += 4 // s2.TableID + size += 4 // s2.RpfID + size += 1 // s2.Weight + size += 1 // s2.Preference + size += 4 // s2.Type + size += 4 // s2.Flags + size += 4 // s2.Proto + size += 1 * 16 // s2.Nh.Address + size += 4 // s2.Nh.ViaLabel + size += 4 // s2.Nh.ObjID + size += 4 // s2.Nh.ClassifyTableIndex + size += 1 // s2.NLabels + for j3 := 0; j3 < 16; j3++ { + var s3 fib_types.FibMplsLabel + _ = s3 + if j3 < len(s2.LabelStack) { + s3 = s2.LabelStack[j3] + } + size += 1 // s3.IsUniform + size += 4 // s3.Label + size += 1 // s3.TTL + size += 1 // s3.Exp + } + } + return size +} +func (m *BierRouteDetails) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.BrRoute.BrBp)) + buf.EncodeUint8(uint8(m.BrRoute.BrTblID.BtSet)) + buf.EncodeUint8(uint8(m.BrRoute.BrTblID.BtSubDomain)) + buf.EncodeUint8(uint8(m.BrRoute.BrTblID.BtHdrLenID)) + buf.EncodeUint8(uint8(len(m.BrRoute.BrPaths))) + for j1 := 0; j1 < len(m.BrRoute.BrPaths); j1++ { + var v1 fib_types.FibPath + if j1 < len(m.BrRoute.BrPaths) { + v1 = m.BrRoute.BrPaths[j1] + } + buf.EncodeUint32(uint32(v1.SwIfIndex)) + buf.EncodeUint32(uint32(v1.TableID)) + buf.EncodeUint32(uint32(v1.RpfID)) + buf.EncodeUint8(uint8(v1.Weight)) + buf.EncodeUint8(uint8(v1.Preference)) + buf.EncodeUint32(uint32(v1.Type)) + buf.EncodeUint32(uint32(v1.Flags)) + buf.EncodeUint32(uint32(v1.Proto)) + buf.EncodeBytes(v1.Nh.Address.XXX_UnionData[:], 0) + buf.EncodeUint32(uint32(v1.Nh.ViaLabel)) + buf.EncodeUint32(uint32(v1.Nh.ObjID)) + buf.EncodeUint32(uint32(v1.Nh.ClassifyTableIndex)) + buf.EncodeUint8(uint8(v1.NLabels)) + for j2 := 0; j2 < 16; j2++ { + var v2 fib_types.FibMplsLabel + if j2 < len(v1.LabelStack) { + v2 = v1.LabelStack[j2] + } + buf.EncodeUint8(uint8(v2.IsUniform)) + buf.EncodeUint32(uint32(v2.Label)) + buf.EncodeUint8(uint8(v2.TTL)) + buf.EncodeUint8(uint8(v2.Exp)) + } + } + return buf.Bytes(), nil +} +func (m *BierRouteDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BrRoute.BrBp = buf.DecodeUint32() + m.BrRoute.BrTblID.BtSet = buf.DecodeUint8() + m.BrRoute.BrTblID.BtSubDomain = buf.DecodeUint8() + m.BrRoute.BrTblID.BtHdrLenID = buf.DecodeUint8() + m.BrRoute.BrNPaths = buf.DecodeUint8() + m.BrRoute.BrPaths = make([]fib_types.FibPath, int(m.BrRoute.BrNPaths)) + for j1 := 0; j1 < len(m.BrRoute.BrPaths); j1++ { + m.BrRoute.BrPaths[j1].SwIfIndex = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].TableID = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].RpfID = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].Weight = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].Preference = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].Type = fib_types.FibPathType(buf.DecodeUint32()) + m.BrRoute.BrPaths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.BrRoute.BrPaths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.BrRoute.BrPaths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.BrRoute.BrPaths[j1].Nh.ViaLabel = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].Nh.ObjID = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].NLabels = buf.DecodeUint8() + for j2 := 0; j2 < 16; j2++ { + m.BrRoute.BrPaths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].LabelStack[j2].Label = buf.DecodeUint32() + m.BrRoute.BrPaths[j1].LabelStack[j2].TTL = buf.DecodeUint8() + m.BrRoute.BrPaths[j1].LabelStack[j2].Exp = buf.DecodeUint8() + } + } + return nil +} + +// BierRouteDump defines message 'bier_route_dump'. +type BierRouteDump struct { + BrTblID BierTableID `binapi:"bier_table_id,name=br_tbl_id" json:"br_tbl_id,omitempty"` +} + +func (m *BierRouteDump) Reset() { *m = BierRouteDump{} } +func (*BierRouteDump) GetMessageName() string { return "bier_route_dump" } +func (*BierRouteDump) GetCrcString() string { return "38339846" } +func (*BierRouteDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierRouteDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.BrTblID.BtSet + size += 1 // m.BrTblID.BtSubDomain + size += 1 // m.BrTblID.BtHdrLenID + return size +} +func (m *BierRouteDump) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint8(uint8(m.BrTblID.BtSet)) + buf.EncodeUint8(uint8(m.BrTblID.BtSubDomain)) + buf.EncodeUint8(uint8(m.BrTblID.BtHdrLenID)) + return buf.Bytes(), nil +} +func (m *BierRouteDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BrTblID.BtSet = buf.DecodeUint8() + m.BrTblID.BtSubDomain = buf.DecodeUint8() + m.BrTblID.BtHdrLenID = buf.DecodeUint8() + return nil +} + +// BierTableAddDel defines message 'bier_table_add_del'. +type BierTableAddDel struct { + BtTblID BierTableID `binapi:"bier_table_id,name=bt_tbl_id" json:"bt_tbl_id,omitempty"` + BtLabel uint32 `binapi:"u32,name=bt_label" json:"bt_label,omitempty"` + BtIsAdd bool `binapi:"bool,name=bt_is_add" json:"bt_is_add,omitempty"` +} + +func (m *BierTableAddDel) Reset() { *m = BierTableAddDel{} } +func (*BierTableAddDel) GetMessageName() string { return "bier_table_add_del" } +func (*BierTableAddDel) GetCrcString() string { return "35e59209" } +func (*BierTableAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierTableAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.BtTblID.BtSet + size += 1 // m.BtTblID.BtSubDomain + size += 1 // m.BtTblID.BtHdrLenID + size += 4 // m.BtLabel + size += 1 // m.BtIsAdd + return size +} +func (m *BierTableAddDel) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint8(uint8(m.BtTblID.BtSet)) + buf.EncodeUint8(uint8(m.BtTblID.BtSubDomain)) + buf.EncodeUint8(uint8(m.BtTblID.BtHdrLenID)) + buf.EncodeUint32(uint32(m.BtLabel)) + buf.EncodeBool(m.BtIsAdd) + return buf.Bytes(), nil +} +func (m *BierTableAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BtTblID.BtSet = buf.DecodeUint8() + m.BtTblID.BtSubDomain = buf.DecodeUint8() + m.BtTblID.BtHdrLenID = buf.DecodeUint8() + m.BtLabel = buf.DecodeUint32() + m.BtIsAdd = buf.DecodeBool() + return nil +} + +// BierTableAddDelReply defines message 'bier_table_add_del_reply'. +type BierTableAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *BierTableAddDelReply) Reset() { *m = BierTableAddDelReply{} } +func (*BierTableAddDelReply) GetMessageName() string { return "bier_table_add_del_reply" } +func (*BierTableAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*BierTableAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierTableAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *BierTableAddDelReply) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.Retval)) + return buf.Bytes(), nil +} +func (m *BierTableAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// BierTableDetails defines message 'bier_table_details'. +type BierTableDetails struct { + BtLabel uint32 `binapi:"u32,name=bt_label" json:"bt_label,omitempty"` + BtTblID BierTableID `binapi:"bier_table_id,name=bt_tbl_id" json:"bt_tbl_id,omitempty"` +} + +func (m *BierTableDetails) Reset() { *m = BierTableDetails{} } +func (*BierTableDetails) GetMessageName() string { return "bier_table_details" } +func (*BierTableDetails) GetCrcString() string { return "fc44a9dd" } +func (*BierTableDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *BierTableDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.BtLabel + size += 1 // m.BtTblID.BtSet + size += 1 // m.BtTblID.BtSubDomain + size += 1 // m.BtTblID.BtHdrLenID + return size +} +func (m *BierTableDetails) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + buf.EncodeUint32(uint32(m.BtLabel)) + buf.EncodeUint8(uint8(m.BtTblID.BtSet)) + buf.EncodeUint8(uint8(m.BtTblID.BtSubDomain)) + buf.EncodeUint8(uint8(m.BtTblID.BtHdrLenID)) + return buf.Bytes(), nil +} +func (m *BierTableDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.BtLabel = buf.DecodeUint32() + m.BtTblID.BtSet = buf.DecodeUint8() + m.BtTblID.BtSubDomain = buf.DecodeUint8() + m.BtTblID.BtHdrLenID = buf.DecodeUint8() + return nil +} + +// BierTableDump defines message 'bier_table_dump'. +type BierTableDump struct{} + +func (m *BierTableDump) Reset() { *m = BierTableDump{} } +func (*BierTableDump) GetMessageName() string { return "bier_table_dump" } +func (*BierTableDump) GetCrcString() string { return "51077d14" } +func (*BierTableDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *BierTableDump) Size() int { + if m == nil { + return 0 + } + var size int + return size +} +func (m *BierTableDump) Marshal(b []byte) ([]byte, error) { + var buf *codec.Buffer + if b == nil { + buf = codec.NewBuffer(make([]byte, m.Size())) + } else { + buf = codec.NewBuffer(b) + } + return buf.Bytes(), nil +} +func (m *BierTableDump) Unmarshal(b []byte) error { + return nil +} + +func init() { file_bier_binapi_init() } +func file_bier_binapi_init() { + api.RegisterMessage((*BierDispEntryAddDel)(nil), "bier_disp_entry_add_del_648323eb") + api.RegisterMessage((*BierDispEntryAddDelReply)(nil), "bier_disp_entry_add_del_reply_e8d4e804") + api.RegisterMessage((*BierDispEntryDetails)(nil), "bier_disp_entry_details_e5b039a9") + api.RegisterMessage((*BierDispEntryDump)(nil), "bier_disp_entry_dump_b5fa54ad") + api.RegisterMessage((*BierDispTableAddDel)(nil), "bier_disp_table_add_del_889657ac") + api.RegisterMessage((*BierDispTableAddDelReply)(nil), "bier_disp_table_add_del_reply_e8d4e804") + api.RegisterMessage((*BierDispTableDetails)(nil), "bier_disp_table_details_d27942c0") + api.RegisterMessage((*BierDispTableDump)(nil), "bier_disp_table_dump_51077d14") + api.RegisterMessage((*BierImpAdd)(nil), "bier_imp_add_3856dc3d") + api.RegisterMessage((*BierImpAddReply)(nil), "bier_imp_add_reply_d49c5793") + api.RegisterMessage((*BierImpDel)(nil), "bier_imp_del_7d45edf6") + api.RegisterMessage((*BierImpDelReply)(nil), "bier_imp_del_reply_e8d4e804") + api.RegisterMessage((*BierImpDetails)(nil), "bier_imp_details_b76192df") + api.RegisterMessage((*BierImpDump)(nil), "bier_imp_dump_51077d14") + api.RegisterMessage((*BierRouteAddDel)(nil), "bier_route_add_del_f29edca0") + api.RegisterMessage((*BierRouteAddDelReply)(nil), "bier_route_add_del_reply_e8d4e804") + api.RegisterMessage((*BierRouteDetails)(nil), "bier_route_details_39ee6a56") + api.RegisterMessage((*BierRouteDump)(nil), "bier_route_dump_38339846") + api.RegisterMessage((*BierTableAddDel)(nil), "bier_table_add_del_35e59209") + api.RegisterMessage((*BierTableAddDelReply)(nil), "bier_table_add_del_reply_e8d4e804") + api.RegisterMessage((*BierTableDetails)(nil), "bier_table_details_fc44a9dd") + api.RegisterMessage((*BierTableDump)(nil), "bier_table_dump_51077d14") +} + +// Messages returns list of all messages in this module. +func AllMessages() []api.Message { + return []api.Message{ + (*BierDispEntryAddDel)(nil), + (*BierDispEntryAddDelReply)(nil), + (*BierDispEntryDetails)(nil), + (*BierDispEntryDump)(nil), + (*BierDispTableAddDel)(nil), + (*BierDispTableAddDelReply)(nil), + (*BierDispTableDetails)(nil), + (*BierDispTableDump)(nil), + (*BierImpAdd)(nil), + (*BierImpAddReply)(nil), + (*BierImpDel)(nil), + (*BierImpDelReply)(nil), + (*BierImpDetails)(nil), + (*BierImpDump)(nil), + (*BierRouteAddDel)(nil), + (*BierRouteAddDelReply)(nil), + (*BierRouteDetails)(nil), + (*BierRouteDump)(nil), + (*BierTableAddDel)(nil), + (*BierTableAddDelReply)(nil), + (*BierTableDetails)(nil), + (*BierTableDump)(nil), + } +} diff --git a/binapi/bier/bier_rest.ba.go b/binapi/bier/bier_rest.ba.go new file mode 100644 index 0000000..f65f8f3 --- /dev/null +++ b/binapi/bier/bier_rest.ba.go @@ -0,0 +1,152 @@ +// Code generated by GoVPP's binapi-generator. DO NOT EDIT. + +package bier + +import ( + "encoding/json" + "io/ioutil" + "net/http" +) + +func RESTHandler(rpc RPCService) http.Handler { + mux := http.NewServeMux() + mux.HandleFunc("/bier_disp_entry_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(BierDispEntryAddDel) + b, err := ioutil.ReadAll(req.Body) + if err != nil { + http.Error(w, "read body failed", http.StatusBadRequest) + return + } + if err := json.Unmarshal(b, request); err != nil { + http.Error(w, "unmarshal data failed", http.StatusBadRequest) + return + } + reply, err := rpc.BierDispEntryAddDel(req.Context(), request) + if err != nil { + http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError) + return + } + rep, err := json.MarshalIndent(reply, "", " ") + if err != nil { + http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError) + return + } + w.Write(rep) + }) + mux.HandleFunc("/bier_disp_table_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(BierDispTableAddDel) + b, err := ioutil.ReadAll(req.Body) + if err != nil { + http.Error(w, "read body failed", http.StatusBadRequest) + return + } + if err := json.Unmarshal(b, request); err != nil { + http.Error(w, "unmarshal data failed", http.StatusBadRequest) + return + } + reply, err := rpc.BierDispTableAddDel(req.Context(), request) + if err != nil { + http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError) + return + } + rep, err := json.MarshalIndent(reply, "", " ") + if err != nil { + http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError) + return + } + w.Write(rep) + }) + mux.HandleFunc("/bier_imp_add", func(w http.ResponseWriter, req *http.Request) { + var request = new(BierImpAdd) + b, err := ioutil.ReadAll(req.Body) + if err != nil { + http.Error(w, "read body failed", http.StatusBadRequest) + return + } + if err := json.Unmarshal(b, request); err != nil { + http.Error(w, "unmarshal data failed", http.StatusBadRequest) + return + } + reply, err := rpc.BierImpAdd(req.Context(), request) + if err != nil { + http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError) + return + } + rep, err := json.MarshalIndent(reply, "", " ") + if err != nil { + http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError) + return + } + w.Write(rep) + }) + mux.HandleFunc("/bier_imp_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(BierImpDel) + b, err := ioutil.ReadAll(req.Body) + if err != nil { + http.Error(w, "read body failed", http.StatusBadRequest) + return + } + if err := json.Unmarshal(b, request); err != nil { + http.Error(w, "unmarshal data failed", http.StatusBadRequest) + return + } + reply, err := rpc.BierImpDel(req.Context(), request) + if err != nil { + http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError) + return + } + rep, err := json.MarshalIndent(reply, "", " ") + if err != nil { + http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError) + return + } + w.Write(rep) + }) + mux.HandleFunc("/bier_route_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(BierRouteAddDel) + b, err := ioutil.ReadAll(req.Body) + if err != nil { + http.Error(w, "read body failed", http.StatusBadRequest) + return + } + if err := json.Unmarshal(b, request); err != nil { + http.Error(w, "unmarshal data failed", http.StatusBadRequest) + return + } + reply, err := rpc.BierRouteAddDel(req.Context(), request) + if err != nil { + http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError) + return + } + rep, err := json.MarshalIndent(reply, "", " ") + if err != nil { + http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError) + return + } + w.Write(rep) + }) + mux.HandleFunc("/bier_table_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(BierTableAddDel) + b, err := ioutil.ReadAll(req.Body) + if err != nil { + http.Error(w, "read body failed", http.StatusBadRequest) + return + } + if err := json.Unmarshal(b, request); err != nil { + http.Error(w, "unmarshal data failed", http.StatusBadRequest) + return + } + reply, err := rpc.BierTableAddDel(req.Context(), request) + if err != nil { + http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError) + return + } + rep, err := json.MarshalIndent(reply, "", " ") + if err != nil { + http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError) + return + } + w.Write(rep) + }) + return http.HandlerFunc(mux.ServeHTTP) +} diff --git a/binapi/bier/bier_rpc.ba.go b/binapi/bier/bier_rpc.ba.go new file mode 100644 index 0000000..c744153 --- /dev/null +++ b/binapi/bier/bier_rpc.ba.go @@ -0,0 +1,283 @@ +// Code generated by GoVPP's binapi-generator. DO NOT EDIT. + +package bier + +import ( + "context" + "fmt" + api "git.fd.io/govpp.git/api" + vpe "git.fd.io/govpp.git/binapi/vpe" + "io" +) + +// RPCService defines RPC service bier. +type RPCService interface { + BierDispEntryAddDel(ctx context.Context, in *BierDispEntryAddDel) (*BierDispEntryAddDelReply, error) + BierDispEntryDump(ctx context.Context, in *BierDispEntryDump) (RPCService_BierDispEntryDumpClient, error) + BierDispTableAddDel(ctx context.Context, in *BierDispTableAddDel) (*BierDispTableAddDelReply, error) + BierDispTableDump(ctx context.Context, in *BierDispTableDump) (RPCService_BierDispTableDumpClient, error) + BierImpAdd(ctx context.Context, in *BierImpAdd) (*BierImpAddReply, error) + BierImpDel(ctx context.Context, in *BierImpDel) (*BierImpDelReply, error) + BierImpDump(ctx context.Context, in *BierImpDump) (RPCService_BierImpDumpClient, error) + BierRouteAddDel(ctx context.Context, in *BierRouteAddDel) (*BierRouteAddDelReply, error) + BierRouteDump(ctx context.Context, in *BierRouteDump) (RPCService_BierRouteDumpClient, error) + BierTableAddDel(ctx context.Context, in *BierTableAddDel) (*BierTableAddDelReply, error) + BierTableDump(ctx context.Context, in *BierTableDump) (RPCService_BierTableDumpClient, error) +} + +type serviceClient struct { + conn api.Connection +} + +func NewServiceClient(conn api.Connection) RPCService { + return &serviceClient{conn} +} + +func (c *serviceClient) BierDispEntryAddDel(ctx context.Context, in *BierDispEntryAddDel) (*BierDispEntryAddDelReply, error) { + out := new(BierDispEntryAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) BierDispEntryDump(ctx context.Context, in *BierDispEntryDump) (RPCService_BierDispEntryDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_BierDispEntryDumpClient{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_BierDispEntryDumpClient interface { + Recv() (*BierDispEntryDetails, error) + api.Stream +} + +type serviceClient_BierDispEntryDumpClient struct { + api.Stream +} + +func (c *serviceClient_BierDispEntryDumpClient) Recv() (*BierDispEntryDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *BierDispEntryDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) BierDispTableAddDel(ctx context.Context, in *BierDispTableAddDel) (*BierDispTableAddDelReply, error) { + out := new(BierDispTableAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) BierDispTableDump(ctx context.Context, in *BierDispTableDump) (RPCService_BierDispTableDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_BierDispTableDumpClient{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_BierDispTableDumpClient interface { + Recv() (*BierDispTableDetails, error) + api.Stream +} + +type serviceClient_BierDispTableDumpClient struct { + api.Stream +} + +func (c *serviceClient_BierDispTableDumpClient) Recv() (*BierDispTableDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *BierDispTableDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) BierImpAdd(ctx context.Context, in *BierImpAdd) (*BierImpAddReply, error) { + out := new(BierImpAddReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) BierImpDel(ctx context.Context, in *BierImpDel) (*BierImpDelReply, error) { + out := new(BierImpDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) BierImpDump(ctx context.Context, in *BierImpDump) (RPCService_BierImpDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_BierImpDumpClient{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_BierImpDumpClient interface { + Recv() (*BierImpDetails, error) + api.Stream +} + +type serviceClient_BierImpDumpClient struct { + api.Stream +} + +func (c *serviceClient_BierImpDumpClient) Recv() (*BierImpDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *BierImpDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) BierRouteAddDel(ctx context.Context, in *BierRouteAddDel) (*BierRouteAddDelReply, error) { + out := new(BierRouteAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) BierRouteDump(ctx context.Context, in *BierRouteDump) (RPCService_BierRouteDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_BierRouteDumpClient{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_BierRouteDumpClient interface { + Recv() (*BierRouteDetails, error) + api.Stream +} + +type serviceClient_BierRouteDumpClient struct { + api.Stream +} + +func (c *serviceClient_BierRouteDumpClient) Recv() (*BierRouteDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *BierRouteDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) BierTableAddDel(ctx context.Context, in *BierTableAddDel) (*BierTableAddDelReply, error) { + out := new(BierTableAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) BierTableDump(ctx context.Context, in *BierTableDump) (RPCService_BierTableDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_BierTableDumpClient{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_BierTableDumpClient interface { + Recv() (*BierTableDetails, error) + api.Stream +} + +type serviceClient_BierTableDumpClient struct { + api.Stream +} + +func (c *serviceClient_BierTableDumpClient) Recv() (*BierTableDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *BierTableDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} -- cgit 1.2.3-korg