diff options
author | Ondrej Fabry <ofabry@cisco.com> | 2020-07-17 10:36:28 +0200 |
---|---|---|
committer | Ondrej Fabry <ofabry@cisco.com> | 2020-07-17 11:43:41 +0200 |
commit | d1f24d37bd447b64e402298bb8eb2479681facf9 (patch) | |
tree | a3fc21ba730a91d8a402c7a5bf9c614e3677c4fc /binapi/ip | |
parent | 1548c7e12531e3d055567d761c580a1c7ff0ac40 (diff) |
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 <ofabry@cisco.com>
Diffstat (limited to 'binapi/ip')
-rw-r--r-- | binapi/ip/ip.ba.go | 3269 | ||||
-rw-r--r-- | binapi/ip/ip_rest.ba.go | 474 | ||||
-rw-r--r-- | binapi/ip/ip_rpc.ba.go | 623 |
3 files changed, 4366 insertions, 0 deletions
diff --git a/binapi/ip/ip.ba.go b/binapi/ip/ip.ba.go new file mode 100644 index 0000000..7702c92 --- /dev/null +++ b/binapi/ip/ip.ba.go @@ -0,0 +1,3269 @@ +// 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/ip.api.json + +// Package ip contains generated bindings for API file ip.api. +// +// Contents: +// 1 enum +// 4 structs +// 60 messages +// +package ip + +import ( + api "git.fd.io/govpp.git/api" + _ "git.fd.io/govpp.git/binapi/ethernet_types" + fib_types "git.fd.io/govpp.git/binapi/fib_types" + interface_types "git.fd.io/govpp.git/binapi/interface_types" + ip_types "git.fd.io/govpp.git/binapi/ip_types" + mfib_types "git.fd.io/govpp.git/binapi/mfib_types" + codec "git.fd.io/govpp.git/codec" + "strconv" +) + +// 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 = "ip" + APIVersion = "3.0.1" + VersionCrc = 0x765d74b1 +) + +// IPReassType defines enum 'ip_reass_type'. +type IPReassType uint32 + +const ( + IP_REASS_TYPE_FULL IPReassType = 0 + IP_REASS_TYPE_SHALLOW_VIRTUAL IPReassType = 1 +) + +var ( + IPReassType_name = map[uint32]string{ + 0: "IP_REASS_TYPE_FULL", + 1: "IP_REASS_TYPE_SHALLOW_VIRTUAL", + } + IPReassType_value = map[string]uint32{ + "IP_REASS_TYPE_FULL": 0, + "IP_REASS_TYPE_SHALLOW_VIRTUAL": 1, + } +) + +func (x IPReassType) String() string { + s, ok := IPReassType_name[uint32(x)] + if ok { + return s + } + return "IPReassType(" + strconv.Itoa(int(x)) + ")" +} + +// IPMroute defines type 'ip_mroute'. +type IPMroute struct { + TableID uint32 `binapi:"u32,name=table_id" json:"table_id,omitempty"` + EntryFlags uint32 `binapi:"u32,name=entry_flags" json:"entry_flags,omitempty"` + RpfID uint32 `binapi:"u32,name=rpf_id" json:"rpf_id,omitempty"` + Prefix ip_types.Mprefix `binapi:"mprefix,name=prefix" json:"prefix,omitempty"` + NPaths uint8 `binapi:"u8,name=n_paths" json:"-"` + Paths []mfib_types.MfibPath `binapi:"mfib_path[n_paths],name=paths" json:"paths,omitempty"` +} + +// IPRoute defines type 'ip_route'. +type IPRoute struct { + TableID uint32 `binapi:"u32,name=table_id" json:"table_id,omitempty"` + StatsIndex uint32 `binapi:"u32,name=stats_index" json:"stats_index,omitempty"` + Prefix ip_types.Prefix `binapi:"prefix,name=prefix" json:"prefix,omitempty"` + NPaths uint8 `binapi:"u8,name=n_paths" json:"-"` + Paths []fib_types.FibPath `binapi:"fib_path[n_paths],name=paths" json:"paths,omitempty"` +} + +// IPTable defines type 'ip_table'. +type IPTable struct { + TableID uint32 `binapi:"u32,name=table_id" json:"table_id,omitempty"` + IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` + Name string `binapi:"string[64],name=name" json:"name,omitempty"` +} + +// PuntRedirect defines type 'punt_redirect'. +type PuntRedirect struct { + RxSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=rx_sw_if_index" json:"rx_sw_if_index,omitempty"` + TxSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=tx_sw_if_index" json:"tx_sw_if_index,omitempty"` + Nh ip_types.Address `binapi:"address,name=nh" json:"nh,omitempty"` +} + +// IoamDisable defines message 'ioam_disable'. +type IoamDisable struct { + ID uint16 `binapi:"u16,name=id" json:"id,omitempty"` +} + +func (m *IoamDisable) Reset() { *m = IoamDisable{} } +func (*IoamDisable) GetMessageName() string { return "ioam_disable" } +func (*IoamDisable) GetCrcString() string { return "6b16a45e" } +func (*IoamDisable) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IoamDisable) Size() int { + if m == nil { + return 0 + } + var size int + size += 2 // m.ID + return size +} +func (m *IoamDisable) 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.ID)) + return buf.Bytes(), nil +} +func (m *IoamDisable) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.ID = buf.DecodeUint16() + return nil +} + +// IoamDisableReply defines message 'ioam_disable_reply'. +type IoamDisableReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IoamDisableReply) Reset() { *m = IoamDisableReply{} } +func (*IoamDisableReply) GetMessageName() string { return "ioam_disable_reply" } +func (*IoamDisableReply) GetCrcString() string { return "e8d4e804" } +func (*IoamDisableReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IoamDisableReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IoamDisableReply) 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 *IoamDisableReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IoamEnable defines message 'ioam_enable'. +type IoamEnable struct { + ID uint16 `binapi:"u16,name=id" json:"id,omitempty"` + Seqno bool `binapi:"bool,name=seqno" json:"seqno,omitempty"` + Analyse bool `binapi:"bool,name=analyse" json:"analyse,omitempty"` + PotEnable bool `binapi:"bool,name=pot_enable" json:"pot_enable,omitempty"` + TraceEnable bool `binapi:"bool,name=trace_enable" json:"trace_enable,omitempty"` + NodeID uint32 `binapi:"u32,name=node_id" json:"node_id,omitempty"` +} + +func (m *IoamEnable) Reset() { *m = IoamEnable{} } +func (*IoamEnable) GetMessageName() string { return "ioam_enable" } +func (*IoamEnable) GetCrcString() string { return "51ccd868" } +func (*IoamEnable) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IoamEnable) Size() int { + if m == nil { + return 0 + } + var size int + size += 2 // m.ID + size += 1 // m.Seqno + size += 1 // m.Analyse + size += 1 // m.PotEnable + size += 1 // m.TraceEnable + size += 4 // m.NodeID + return size +} +func (m *IoamEnable) 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.ID)) + buf.EncodeBool(m.Seqno) + buf.EncodeBool(m.Analyse) + buf.EncodeBool(m.PotEnable) + buf.EncodeBool(m.TraceEnable) + buf.EncodeUint32(uint32(m.NodeID)) + return buf.Bytes(), nil +} +func (m *IoamEnable) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.ID = buf.DecodeUint16() + m.Seqno = buf.DecodeBool() + m.Analyse = buf.DecodeBool() + m.PotEnable = buf.DecodeBool() + m.TraceEnable = buf.DecodeBool() + m.NodeID = buf.DecodeUint32() + return nil +} + +// IoamEnableReply defines message 'ioam_enable_reply'. +type IoamEnableReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IoamEnableReply) Reset() { *m = IoamEnableReply{} } +func (*IoamEnableReply) GetMessageName() string { return "ioam_enable_reply" } +func (*IoamEnableReply) GetCrcString() string { return "e8d4e804" } +func (*IoamEnableReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IoamEnableReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IoamEnableReply) 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 *IoamEnableReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPAddressDetails defines message 'ip_address_details'. +type IPAddressDetails struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + Prefix ip_types.AddressWithPrefix `binapi:"address_with_prefix,name=prefix" json:"prefix,omitempty"` +} + +func (m *IPAddressDetails) Reset() { *m = IPAddressDetails{} } +func (*IPAddressDetails) GetMessageName() string { return "ip_address_details" } +func (*IPAddressDetails) GetCrcString() string { return "b1199745" } +func (*IPAddressDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPAddressDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 // m.Prefix.Address.Af + size += 1 * 16 // m.Prefix.Address.Un + size += 1 // m.Prefix.Len + return size +} +func (m *IPAddressDetails) 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.SwIfIndex)) + buf.EncodeUint8(uint8(m.Prefix.Address.Af)) + buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Prefix.Len)) + return buf.Bytes(), nil +} +func (m *IPAddressDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Prefix.Len = buf.DecodeUint8() + return nil +} + +// IPAddressDump defines message 'ip_address_dump'. +type IPAddressDump struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` +} + +func (m *IPAddressDump) Reset() { *m = IPAddressDump{} } +func (*IPAddressDump) GetMessageName() string { return "ip_address_dump" } +func (*IPAddressDump) GetCrcString() string { return "2d033de4" } +func (*IPAddressDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPAddressDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 // m.IsIPv6 + return size +} +func (m *IPAddressDump) 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.SwIfIndex)) + buf.EncodeBool(m.IsIPv6) + return buf.Bytes(), nil +} +func (m *IPAddressDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.IsIPv6 = buf.DecodeBool() + return nil +} + +// IPContainerProxyAddDel defines message 'ip_container_proxy_add_del'. +type IPContainerProxyAddDel struct { + Pfx ip_types.Prefix `binapi:"prefix,name=pfx" json:"pfx,omitempty"` + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` +} + +func (m *IPContainerProxyAddDel) Reset() { *m = IPContainerProxyAddDel{} } +func (*IPContainerProxyAddDel) GetMessageName() string { return "ip_container_proxy_add_del" } +func (*IPContainerProxyAddDel) GetCrcString() string { return "91189f40" } +func (*IPContainerProxyAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPContainerProxyAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.Pfx.Address.Af + size += 1 * 16 // m.Pfx.Address.Un + size += 1 // m.Pfx.Len + size += 4 // m.SwIfIndex + size += 1 // m.IsAdd + return size +} +func (m *IPContainerProxyAddDel) 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.Pfx.Address.Af)) + buf.EncodeBytes(m.Pfx.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Pfx.Len)) + buf.EncodeUint32(uint32(m.SwIfIndex)) + buf.EncodeBool(m.IsAdd) + return buf.Bytes(), nil +} +func (m *IPContainerProxyAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Pfx.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Pfx.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Pfx.Len = buf.DecodeUint8() + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.IsAdd = buf.DecodeBool() + return nil +} + +// IPContainerProxyAddDelReply defines message 'ip_container_proxy_add_del_reply'. +type IPContainerProxyAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPContainerProxyAddDelReply) Reset() { *m = IPContainerProxyAddDelReply{} } +func (*IPContainerProxyAddDelReply) GetMessageName() string { + return "ip_container_proxy_add_del_reply" +} +func (*IPContainerProxyAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPContainerProxyAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPContainerProxyAddDelReply) 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 *IPContainerProxyAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPContainerProxyDetails defines message 'ip_container_proxy_details'. +type IPContainerProxyDetails struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + Prefix ip_types.Prefix `binapi:"prefix,name=prefix" json:"prefix,omitempty"` +} + +func (m *IPContainerProxyDetails) Reset() { *m = IPContainerProxyDetails{} } +func (*IPContainerProxyDetails) GetMessageName() string { return "ip_container_proxy_details" } +func (*IPContainerProxyDetails) GetCrcString() string { return "0ee460e8" } +func (*IPContainerProxyDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPContainerProxyDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 // m.Prefix.Address.Af + size += 1 * 16 // m.Prefix.Address.Un + size += 1 // m.Prefix.Len + return size +} +func (m *IPContainerProxyDetails) 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.SwIfIndex)) + buf.EncodeUint8(uint8(m.Prefix.Address.Af)) + buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Prefix.Len)) + return buf.Bytes(), nil +} +func (m *IPContainerProxyDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Prefix.Len = buf.DecodeUint8() + return nil +} + +// IPContainerProxyDump defines message 'ip_container_proxy_dump'. +type IPContainerProxyDump struct{} + +func (m *IPContainerProxyDump) Reset() { *m = IPContainerProxyDump{} } +func (*IPContainerProxyDump) GetMessageName() string { return "ip_container_proxy_dump" } +func (*IPContainerProxyDump) GetCrcString() string { return "51077d14" } +func (*IPContainerProxyDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPContainerProxyDump) Size() int { + if m == nil { + return 0 + } + var size int + return size +} +func (m *IPContainerProxyDump) 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 *IPContainerProxyDump) Unmarshal(b []byte) error { + return nil +} + +// IPDetails defines message 'ip_details'. +type IPDetails struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` +} + +func (m *IPDetails) Reset() { *m = IPDetails{} } +func (*IPDetails) GetMessageName() string { return "ip_details" } +func (*IPDetails) GetCrcString() string { return "eb152d07" } +func (*IPDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 // m.IsIPv6 + return size +} +func (m *IPDetails) 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.SwIfIndex)) + buf.EncodeBool(m.IsIPv6) + return buf.Bytes(), nil +} +func (m *IPDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.IsIPv6 = buf.DecodeBool() + return nil +} + +// IPDump defines message 'ip_dump'. +type IPDump struct { + IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` +} + +func (m *IPDump) Reset() { *m = IPDump{} } +func (*IPDump) GetMessageName() string { return "ip_dump" } +func (*IPDump) GetCrcString() string { return "98d231ca" } +func (*IPDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.IsIPv6 + return size +} +func (m *IPDump) 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.IsIPv6) + return buf.Bytes(), nil +} +func (m *IPDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsIPv6 = buf.DecodeBool() + return nil +} + +// IPMrouteAddDel defines message 'ip_mroute_add_del'. +type IPMrouteAddDel struct { + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` + IsMultipath bool `binapi:"bool,name=is_multipath" json:"is_multipath,omitempty"` + Route IPMroute `binapi:"ip_mroute,name=route" json:"route,omitempty"` +} + +func (m *IPMrouteAddDel) Reset() { *m = IPMrouteAddDel{} } +func (*IPMrouteAddDel) GetMessageName() string { return "ip_mroute_add_del" } +func (*IPMrouteAddDel) GetCrcString() string { return "f6627d17" } +func (*IPMrouteAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPMrouteAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.IsAdd + size += 1 // m.IsMultipath + size += 4 // m.Route.TableID + size += 4 // m.Route.EntryFlags + size += 4 // m.Route.RpfID + size += 1 // m.Route.Prefix.Af + size += 2 // m.Route.Prefix.GrpAddressLength + size += 1 * 16 // m.Route.Prefix.GrpAddress + size += 1 * 16 // m.Route.Prefix.SrcAddress + size += 1 // m.Route.NPaths + for j2 := 0; j2 < len(m.Route.Paths); j2++ { + var s2 mfib_types.MfibPath + _ = s2 + if j2 < len(m.Route.Paths) { + s2 = m.Route.Paths[j2] + } + size += 4 // s2.ItfFlags + size += 4 // s2.Path.SwIfIndex + size += 4 // s2.Path.TableID + size += 4 // s2.Path.RpfID + size += 1 // s2.Path.Weight + size += 1 // s2.Path.Preference + size += 4 // s2.Path.Type + size += 4 // s2.Path.Flags + size += 4 // s2.Path.Proto + size += 1 * 16 // s2.Path.Nh.Address + size += 4 // s2.Path.Nh.ViaLabel + size += 4 // s2.Path.Nh.ObjID + size += 4 // s2.Path.Nh.ClassifyTableIndex + size += 1 // s2.Path.NLabels + for j4 := 0; j4 < 16; j4++ { + var s4 fib_types.FibMplsLabel + _ = s4 + if j4 < len(s2.Path.LabelStack) { + s4 = s2.Path.LabelStack[j4] + } + size += 1 // s4.IsUniform + size += 4 // s4.Label + size += 1 // s4.TTL + size += 1 // s4.Exp + } + } + return size +} +func (m *IPMrouteAddDel) 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.IsAdd) + buf.EncodeBool(m.IsMultipath) + buf.EncodeUint32(uint32(m.Route.TableID)) + buf.EncodeUint32(uint32(m.Route.EntryFlags)) + buf.EncodeUint32(uint32(m.Route.RpfID)) + buf.EncodeUint8(uint8(m.Route.Prefix.Af)) + buf.EncodeUint16(uint16(m.Route.Prefix.GrpAddressLength)) + buf.EncodeBytes(m.Route.Prefix.GrpAddress.XXX_UnionData[:], 0) + buf.EncodeBytes(m.Route.Prefix.SrcAddress.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(len(m.Route.Paths))) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + var v1 mfib_types.MfibPath + if j1 < len(m.Route.Paths) { + v1 = m.Route.Paths[j1] + } + buf.EncodeUint32(uint32(v1.ItfFlags)) + buf.EncodeUint32(uint32(v1.Path.SwIfIndex)) + buf.EncodeUint32(uint32(v1.Path.TableID)) + buf.EncodeUint32(uint32(v1.Path.RpfID)) + buf.EncodeUint8(uint8(v1.Path.Weight)) + buf.EncodeUint8(uint8(v1.Path.Preference)) + buf.EncodeUint32(uint32(v1.Path.Type)) + buf.EncodeUint32(uint32(v1.Path.Flags)) + buf.EncodeUint32(uint32(v1.Path.Proto)) + buf.EncodeBytes(v1.Path.Nh.Address.XXX_UnionData[:], 0) + buf.EncodeUint32(uint32(v1.Path.Nh.ViaLabel)) + buf.EncodeUint32(uint32(v1.Path.Nh.ObjID)) + buf.EncodeUint32(uint32(v1.Path.Nh.ClassifyTableIndex)) + buf.EncodeUint8(uint8(v1.Path.NLabels)) + for j3 := 0; j3 < 16; j3++ { + var v3 fib_types.FibMplsLabel + if j3 < len(v1.Path.LabelStack) { + v3 = v1.Path.LabelStack[j3] + } + buf.EncodeUint8(uint8(v3.IsUniform)) + buf.EncodeUint32(uint32(v3.Label)) + buf.EncodeUint8(uint8(v3.TTL)) + buf.EncodeUint8(uint8(v3.Exp)) + } + } + return buf.Bytes(), nil +} +func (m *IPMrouteAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsAdd = buf.DecodeBool() + m.IsMultipath = buf.DecodeBool() + m.Route.TableID = buf.DecodeUint32() + m.Route.EntryFlags = buf.DecodeUint32() + m.Route.RpfID = buf.DecodeUint32() + m.Route.Prefix.Af = ip_types.AddressFamily(buf.DecodeUint8()) + m.Route.Prefix.GrpAddressLength = buf.DecodeUint16() + copy(m.Route.Prefix.GrpAddress.XXX_UnionData[:], buf.DecodeBytes(16)) + copy(m.Route.Prefix.SrcAddress.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.NPaths = buf.DecodeUint8() + m.Route.Paths = make([]mfib_types.MfibPath, int(m.Route.NPaths)) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + m.Route.Paths[j1].ItfFlags = mfib_types.MfibItfFlags(buf.DecodeUint32()) + m.Route.Paths[j1].Path.SwIfIndex = buf.DecodeUint32() + m.Route.Paths[j1].Path.TableID = buf.DecodeUint32() + m.Route.Paths[j1].Path.RpfID = buf.DecodeUint32() + m.Route.Paths[j1].Path.Weight = buf.DecodeUint8() + m.Route.Paths[j1].Path.Preference = buf.DecodeUint8() + m.Route.Paths[j1].Path.Type = fib_types.FibPathType(buf.DecodeUint32()) + m.Route.Paths[j1].Path.Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.Route.Paths[j1].Path.Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.Route.Paths[j1].Path.Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Paths[j1].Path.Nh.ViaLabel = buf.DecodeUint32() + m.Route.Paths[j1].Path.Nh.ObjID = buf.DecodeUint32() + m.Route.Paths[j1].Path.Nh.ClassifyTableIndex = buf.DecodeUint32() + m.Route.Paths[j1].Path.NLabels = buf.DecodeUint8() + for j3 := 0; j3 < 16; j3++ { + m.Route.Paths[j1].Path.LabelStack[j3].IsUniform = buf.DecodeUint8() + m.Route.Paths[j1].Path.LabelStack[j3].Label = buf.DecodeUint32() + m.Route.Paths[j1].Path.LabelStack[j3].TTL = buf.DecodeUint8() + m.Route.Paths[j1].Path.LabelStack[j3].Exp = buf.DecodeUint8() + } + } + return nil +} + +// IPMrouteAddDelReply defines message 'ip_mroute_add_del_reply'. +type IPMrouteAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` + StatsIndex uint32 `binapi:"u32,name=stats_index" json:"stats_index,omitempty"` +} + +func (m *IPMrouteAddDelReply) Reset() { *m = IPMrouteAddDelReply{} } +func (*IPMrouteAddDelReply) GetMessageName() string { return "ip_mroute_add_del_reply" } +func (*IPMrouteAddDelReply) GetCrcString() string { return "1992deab" } +func (*IPMrouteAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPMrouteAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + size += 4 // m.StatsIndex + return size +} +func (m *IPMrouteAddDelReply) 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.StatsIndex)) + return buf.Bytes(), nil +} +func (m *IPMrouteAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + m.StatsIndex = buf.DecodeUint32() + return nil +} + +// IPMrouteDetails defines message 'ip_mroute_details'. +type IPMrouteDetails struct { + Route IPMroute `binapi:"ip_mroute,name=route" json:"route,omitempty"` +} + +func (m *IPMrouteDetails) Reset() { *m = IPMrouteDetails{} } +func (*IPMrouteDetails) GetMessageName() string { return "ip_mroute_details" } +func (*IPMrouteDetails) GetCrcString() string { return "c1cb4b44" } +func (*IPMrouteDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPMrouteDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Route.TableID + size += 4 // m.Route.EntryFlags + size += 4 // m.Route.RpfID + size += 1 // m.Route.Prefix.Af + size += 2 // m.Route.Prefix.GrpAddressLength + size += 1 * 16 // m.Route.Prefix.GrpAddress + size += 1 * 16 // m.Route.Prefix.SrcAddress + size += 1 // m.Route.NPaths + for j2 := 0; j2 < len(m.Route.Paths); j2++ { + var s2 mfib_types.MfibPath + _ = s2 + if j2 < len(m.Route.Paths) { + s2 = m.Route.Paths[j2] + } + size += 4 // s2.ItfFlags + size += 4 // s2.Path.SwIfIndex + size += 4 // s2.Path.TableID + size += 4 // s2.Path.RpfID + size += 1 // s2.Path.Weight + size += 1 // s2.Path.Preference + size += 4 // s2.Path.Type + size += 4 // s2.Path.Flags + size += 4 // s2.Path.Proto + size += 1 * 16 // s2.Path.Nh.Address + size += 4 // s2.Path.Nh.ViaLabel + size += 4 // s2.Path.Nh.ObjID + size += 4 // s2.Path.Nh.ClassifyTableIndex + size += 1 // s2.Path.NLabels + for j4 := 0; j4 < 16; j4++ { + var s4 fib_types.FibMplsLabel + _ = s4 + if j4 < len(s2.Path.LabelStack) { + s4 = s2.Path.LabelStack[j4] + } + size += 1 // s4.IsUniform + size += 4 // s4.Label + size += 1 // s4.TTL + size += 1 // s4.Exp + } + } + return size +} +func (m *IPMrouteDetails) 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.Route.TableID)) + buf.EncodeUint32(uint32(m.Route.EntryFlags)) + buf.EncodeUint32(uint32(m.Route.RpfID)) + buf.EncodeUint8(uint8(m.Route.Prefix.Af)) + buf.EncodeUint16(uint16(m.Route.Prefix.GrpAddressLength)) + buf.EncodeBytes(m.Route.Prefix.GrpAddress.XXX_UnionData[:], 0) + buf.EncodeBytes(m.Route.Prefix.SrcAddress.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(len(m.Route.Paths))) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + var v1 mfib_types.MfibPath + if j1 < len(m.Route.Paths) { + v1 = m.Route.Paths[j1] + } + buf.EncodeUint32(uint32(v1.ItfFlags)) + buf.EncodeUint32(uint32(v1.Path.SwIfIndex)) + buf.EncodeUint32(uint32(v1.Path.TableID)) + buf.EncodeUint32(uint32(v1.Path.RpfID)) + buf.EncodeUint8(uint8(v1.Path.Weight)) + buf.EncodeUint8(uint8(v1.Path.Preference)) + buf.EncodeUint32(uint32(v1.Path.Type)) + buf.EncodeUint32(uint32(v1.Path.Flags)) + buf.EncodeUint32(uint32(v1.Path.Proto)) + buf.EncodeBytes(v1.Path.Nh.Address.XXX_UnionData[:], 0) + buf.EncodeUint32(uint32(v1.Path.Nh.ViaLabel)) + buf.EncodeUint32(uint32(v1.Path.Nh.ObjID)) + buf.EncodeUint32(uint32(v1.Path.Nh.ClassifyTableIndex)) + buf.EncodeUint8(uint8(v1.Path.NLabels)) + for j3 := 0; j3 < 16; j3++ { + var v3 fib_types.FibMplsLabel + if j3 < len(v1.Path.LabelStack) { + v3 = v1.Path.LabelStack[j3] + } + buf.EncodeUint8(uint8(v3.IsUniform)) + buf.EncodeUint32(uint32(v3.Label)) + buf.EncodeUint8(uint8(v3.TTL)) + buf.EncodeUint8(uint8(v3.Exp)) + } + } + return buf.Bytes(), nil +} +func (m *IPMrouteDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Route.TableID = buf.DecodeUint32() + m.Route.EntryFlags = buf.DecodeUint32() + m.Route.RpfID = buf.DecodeUint32() + m.Route.Prefix.Af = ip_types.AddressFamily(buf.DecodeUint8()) + m.Route.Prefix.GrpAddressLength = buf.DecodeUint16() + copy(m.Route.Prefix.GrpAddress.XXX_UnionData[:], buf.DecodeBytes(16)) + copy(m.Route.Prefix.SrcAddress.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.NPaths = buf.DecodeUint8() + m.Route.Paths = make([]mfib_types.MfibPath, int(m.Route.NPaths)) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + m.Route.Paths[j1].ItfFlags = mfib_types.MfibItfFlags(buf.DecodeUint32()) + m.Route.Paths[j1].Path.SwIfIndex = buf.DecodeUint32() + m.Route.Paths[j1].Path.TableID = buf.DecodeUint32() + m.Route.Paths[j1].Path.RpfID = buf.DecodeUint32() + m.Route.Paths[j1].Path.Weight = buf.DecodeUint8() + m.Route.Paths[j1].Path.Preference = buf.DecodeUint8() + m.Route.Paths[j1].Path.Type = fib_types.FibPathType(buf.DecodeUint32()) + m.Route.Paths[j1].Path.Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.Route.Paths[j1].Path.Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.Route.Paths[j1].Path.Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Paths[j1].Path.Nh.ViaLabel = buf.DecodeUint32() + m.Route.Paths[j1].Path.Nh.ObjID = buf.DecodeUint32() + m.Route.Paths[j1].Path.Nh.ClassifyTableIndex = buf.DecodeUint32() + m.Route.Paths[j1].Path.NLabels = buf.DecodeUint8() + for j3 := 0; j3 < 16; j3++ { + m.Route.Paths[j1].Path.LabelStack[j3].IsUniform = buf.DecodeUint8() + m.Route.Paths[j1].Path.LabelStack[j3].Label = buf.DecodeUint32() + m.Route.Paths[j1].Path.LabelStack[j3].TTL = buf.DecodeUint8() + m.Route.Paths[j1].Path.LabelStack[j3].Exp = buf.DecodeUint8() + } + } + return nil +} + +// IPMrouteDump defines message 'ip_mroute_dump'. +type IPMrouteDump struct { + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPMrouteDump) Reset() { *m = IPMrouteDump{} } +func (*IPMrouteDump) GetMessageName() string { return "ip_mroute_dump" } +func (*IPMrouteDump) GetCrcString() string { return "b9d2e09e" } +func (*IPMrouteDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPMrouteDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPMrouteDump) 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.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPMrouteDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPMtableDetails defines message 'ip_mtable_details'. +type IPMtableDetails struct { + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPMtableDetails) Reset() { *m = IPMtableDetails{} } +func (*IPMtableDetails) GetMessageName() string { return "ip_mtable_details" } +func (*IPMtableDetails) GetCrcString() string { return "b9d2e09e" } +func (*IPMtableDetails) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPMtableDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPMtableDetails) 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.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPMtableDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPMtableDump defines message 'ip_mtable_dump'. +type IPMtableDump struct{} + +func (m *IPMtableDump) Reset() { *m = IPMtableDump{} } +func (*IPMtableDump) GetMessageName() string { return "ip_mtable_dump" } +func (*IPMtableDump) GetCrcString() string { return "51077d14" } +func (*IPMtableDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPMtableDump) Size() int { + if m == nil { + return 0 + } + var size int + return size +} +func (m *IPMtableDump) 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 *IPMtableDump) Unmarshal(b []byte) error { + return nil +} + +// IPPuntPolice defines message 'ip_punt_police'. +type IPPuntPolice struct { + PolicerIndex uint32 `binapi:"u32,name=policer_index" json:"policer_index,omitempty"` + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` + IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` +} + +func (m *IPPuntPolice) Reset() { *m = IPPuntPolice{} } +func (*IPPuntPolice) GetMessageName() string { return "ip_punt_police" } +func (*IPPuntPolice) GetCrcString() string { return "db867cea" } +func (*IPPuntPolice) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPPuntPolice) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.PolicerIndex + size += 1 // m.IsAdd + size += 1 // m.IsIP6 + return size +} +func (m *IPPuntPolice) 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.PolicerIndex)) + buf.EncodeBool(m.IsAdd) + buf.EncodeBool(m.IsIP6) + return buf.Bytes(), nil +} +func (m *IPPuntPolice) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.PolicerIndex = buf.DecodeUint32() + m.IsAdd = buf.DecodeBool() + m.IsIP6 = buf.DecodeBool() + return nil +} + +// IPPuntPoliceReply defines message 'ip_punt_police_reply'. +type IPPuntPoliceReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPPuntPoliceReply) Reset() { *m = IPPuntPoliceReply{} } +func (*IPPuntPoliceReply) GetMessageName() string { return "ip_punt_police_reply" } +func (*IPPuntPoliceReply) GetCrcString() string { return "e8d4e804" } +func (*IPPuntPoliceReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPPuntPoliceReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPPuntPoliceReply) 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 *IPPuntPoliceReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPPuntRedirect defines message 'ip_punt_redirect'. +type IPPuntRedirect struct { + Punt PuntRedirect `binapi:"punt_redirect,name=punt" json:"punt,omitempty"` + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` +} + +func (m *IPPuntRedirect) Reset() { *m = IPPuntRedirect{} } +func (*IPPuntRedirect) GetMessageName() string { return "ip_punt_redirect" } +func (*IPPuntRedirect) GetCrcString() string { return "a9a5592c" } +func (*IPPuntRedirect) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPPuntRedirect) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Punt.RxSwIfIndex + size += 4 // m.Punt.TxSwIfIndex + size += 1 // m.Punt.Nh.Af + size += 1 * 16 // m.Punt.Nh.Un + size += 1 // m.IsAdd + return size +} +func (m *IPPuntRedirect) 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.Punt.RxSwIfIndex)) + buf.EncodeUint32(uint32(m.Punt.TxSwIfIndex)) + buf.EncodeUint8(uint8(m.Punt.Nh.Af)) + buf.EncodeBytes(m.Punt.Nh.Un.XXX_UnionData[:], 0) + buf.EncodeBool(m.IsAdd) + return buf.Bytes(), nil +} +func (m *IPPuntRedirect) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Punt.RxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Punt.TxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Punt.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Punt.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.IsAdd = buf.DecodeBool() + return nil +} + +// IPPuntRedirectDetails defines message 'ip_punt_redirect_details'. +type IPPuntRedirectDetails struct { + Punt PuntRedirect `binapi:"punt_redirect,name=punt" json:"punt,omitempty"` +} + +func (m *IPPuntRedirectDetails) Reset() { *m = IPPuntRedirectDetails{} } +func (*IPPuntRedirectDetails) GetMessageName() string { return "ip_punt_redirect_details" } +func (*IPPuntRedirectDetails) GetCrcString() string { return "3924f5d3" } +func (*IPPuntRedirectDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPPuntRedirectDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Punt.RxSwIfIndex + size += 4 // m.Punt.TxSwIfIndex + size += 1 // m.Punt.Nh.Af + size += 1 * 16 // m.Punt.Nh.Un + return size +} +func (m *IPPuntRedirectDetails) 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.Punt.RxSwIfIndex)) + buf.EncodeUint32(uint32(m.Punt.TxSwIfIndex)) + buf.EncodeUint8(uint8(m.Punt.Nh.Af)) + buf.EncodeBytes(m.Punt.Nh.Un.XXX_UnionData[:], 0) + return buf.Bytes(), nil +} +func (m *IPPuntRedirectDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Punt.RxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Punt.TxSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Punt.Nh.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Punt.Nh.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + return nil +} + +// IPPuntRedirectDump defines message 'ip_punt_redirect_dump'. +type IPPuntRedirectDump struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` +} + +func (m *IPPuntRedirectDump) Reset() { *m = IPPuntRedirectDump{} } +func (*IPPuntRedirectDump) GetMessageName() string { return "ip_punt_redirect_dump" } +func (*IPPuntRedirectDump) GetCrcString() string { return "2d033de4" } +func (*IPPuntRedirectDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPPuntRedirectDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 // m.IsIPv6 + return size +} +func (m *IPPuntRedirectDump) 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.SwIfIndex)) + buf.EncodeBool(m.IsIPv6) + return buf.Bytes(), nil +} +func (m *IPPuntRedirectDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.IsIPv6 = buf.DecodeBool() + return nil +} + +// IPPuntRedirectReply defines message 'ip_punt_redirect_reply'. +type IPPuntRedirectReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPPuntRedirectReply) Reset() { *m = IPPuntRedirectReply{} } +func (*IPPuntRedirectReply) GetMessageName() string { return "ip_punt_redirect_reply" } +func (*IPPuntRedirectReply) GetCrcString() string { return "e8d4e804" } +func (*IPPuntRedirectReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPPuntRedirectReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPPuntRedirectReply) 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 *IPPuntRedirectReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPReassemblyEnableDisable defines message 'ip_reassembly_enable_disable'. +type IPReassemblyEnableDisable struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + EnableIP4 bool `binapi:"bool,name=enable_ip4" json:"enable_ip4,omitempty"` + EnableIP6 bool `binapi:"bool,name=enable_ip6" json:"enable_ip6,omitempty"` + Type IPReassType `binapi:"ip_reass_type,name=type" json:"type,omitempty"` +} + +func (m *IPReassemblyEnableDisable) Reset() { *m = IPReassemblyEnableDisable{} } +func (*IPReassemblyEnableDisable) GetMessageName() string { return "ip_reassembly_enable_disable" } +func (*IPReassemblyEnableDisable) GetCrcString() string { return "885c85a6" } +func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPReassemblyEnableDisable) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 // m.EnableIP4 + size += 1 // m.EnableIP6 + size += 4 // m.Type + return size +} +func (m *IPReassemblyEnableDisable) 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.SwIfIndex)) + buf.EncodeBool(m.EnableIP4) + buf.EncodeBool(m.EnableIP6) + buf.EncodeUint32(uint32(m.Type)) + return buf.Bytes(), nil +} +func (m *IPReassemblyEnableDisable) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.EnableIP4 = buf.DecodeBool() + m.EnableIP6 = buf.DecodeBool() + m.Type = IPReassType(buf.DecodeUint32()) + return nil +} + +// IPReassemblyEnableDisableReply defines message 'ip_reassembly_enable_disable_reply'. +type IPReassemblyEnableDisableReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPReassemblyEnableDisableReply) Reset() { *m = IPReassemblyEnableDisableReply{} } +func (*IPReassemblyEnableDisableReply) GetMessageName() string { + return "ip_reassembly_enable_disable_reply" +} +func (*IPReassemblyEnableDisableReply) GetCrcString() string { return "e8d4e804" } +func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPReassemblyEnableDisableReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPReassemblyEnableDisableReply) 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 *IPReassemblyEnableDisableReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPReassemblyGet defines message 'ip_reassembly_get'. +type IPReassemblyGet struct { + IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` + Type IPReassType `binapi:"ip_reass_type,name=type" json:"type,omitempty"` +} + +func (m *IPReassemblyGet) Reset() { *m = IPReassemblyGet{} } +func (*IPReassemblyGet) GetMessageName() string { return "ip_reassembly_get" } +func (*IPReassemblyGet) GetCrcString() string { return "ea13ff63" } +func (*IPReassemblyGet) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPReassemblyGet) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.IsIP6 + size += 4 // m.Type + return size +} +func (m *IPReassemblyGet) 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.IsIP6) + buf.EncodeUint32(uint32(m.Type)) + return buf.Bytes(), nil +} +func (m *IPReassemblyGet) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsIP6 = buf.DecodeBool() + m.Type = IPReassType(buf.DecodeUint32()) + return nil +} + +// IPReassemblyGetReply defines message 'ip_reassembly_get_reply'. +type IPReassemblyGetReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` + TimeoutMs uint32 `binapi:"u32,name=timeout_ms" json:"timeout_ms,omitempty"` + MaxReassemblies uint32 `binapi:"u32,name=max_reassemblies" json:"max_reassemblies,omitempty"` + MaxReassemblyLength uint32 `binapi:"u32,name=max_reassembly_length" json:"max_reassembly_length,omitempty"` + ExpireWalkIntervalMs uint32 `binapi:"u32,name=expire_walk_interval_ms" json:"expire_walk_interval_ms,omitempty"` + IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` +} + +func (m *IPReassemblyGetReply) Reset() { *m = IPReassemblyGetReply{} } +func (*IPReassemblyGetReply) GetMessageName() string { return "ip_reassembly_get_reply" } +func (*IPReassemblyGetReply) GetCrcString() string { return "d5eb8d34" } +func (*IPReassemblyGetReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPReassemblyGetReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + size += 4 // m.TimeoutMs + size += 4 // m.MaxReassemblies + size += 4 // m.MaxReassemblyLength + size += 4 // m.ExpireWalkIntervalMs + size += 1 // m.IsIP6 + return size +} +func (m *IPReassemblyGetReply) 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.TimeoutMs)) + buf.EncodeUint32(uint32(m.MaxReassemblies)) + buf.EncodeUint32(uint32(m.MaxReassemblyLength)) + buf.EncodeUint32(uint32(m.ExpireWalkIntervalMs)) + buf.EncodeBool(m.IsIP6) + return buf.Bytes(), nil +} +func (m *IPReassemblyGetReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + m.TimeoutMs = buf.DecodeUint32() + m.MaxReassemblies = buf.DecodeUint32() + m.MaxReassemblyLength = buf.DecodeUint32() + m.ExpireWalkIntervalMs = buf.DecodeUint32() + m.IsIP6 = buf.DecodeBool() + return nil +} + +// IPReassemblySet defines message 'ip_reassembly_set'. +type IPReassemblySet struct { + TimeoutMs uint32 `binapi:"u32,name=timeout_ms" json:"timeout_ms,omitempty"` + MaxReassemblies uint32 `binapi:"u32,name=max_reassemblies" json:"max_reassemblies,omitempty"` + MaxReassemblyLength uint32 `binapi:"u32,name=max_reassembly_length" json:"max_reassembly_length,omitempty"` + ExpireWalkIntervalMs uint32 `binapi:"u32,name=expire_walk_interval_ms" json:"expire_walk_interval_ms,omitempty"` + IsIP6 bool `binapi:"bool,name=is_ip6" json:"is_ip6,omitempty"` + Type IPReassType `binapi:"ip_reass_type,name=type" json:"type,omitempty"` +} + +func (m *IPReassemblySet) Reset() { *m = IPReassemblySet{} } +func (*IPReassemblySet) GetMessageName() string { return "ip_reassembly_set" } +func (*IPReassemblySet) GetCrcString() string { return "16467d25" } +func (*IPReassemblySet) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPReassemblySet) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.TimeoutMs + size += 4 // m.MaxReassemblies + size += 4 // m.MaxReassemblyLength + size += 4 // m.ExpireWalkIntervalMs + size += 1 // m.IsIP6 + size += 4 // m.Type + return size +} +func (m *IPReassemblySet) 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.TimeoutMs)) + buf.EncodeUint32(uint32(m.MaxReassemblies)) + buf.EncodeUint32(uint32(m.MaxReassemblyLength)) + buf.EncodeUint32(uint32(m.ExpireWalkIntervalMs)) + buf.EncodeBool(m.IsIP6) + buf.EncodeUint32(uint32(m.Type)) + return buf.Bytes(), nil +} +func (m *IPReassemblySet) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.TimeoutMs = buf.DecodeUint32() + m.MaxReassemblies = buf.DecodeUint32() + m.MaxReassemblyLength = buf.DecodeUint32() + m.ExpireWalkIntervalMs = buf.DecodeUint32() + m.IsIP6 = buf.DecodeBool() + m.Type = IPReassType(buf.DecodeUint32()) + return nil +} + +// IPReassemblySetReply defines message 'ip_reassembly_set_reply'. +type IPReassemblySetReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPReassemblySetReply) Reset() { *m = IPReassemblySetReply{} } +func (*IPReassemblySetReply) GetMessageName() string { return "ip_reassembly_set_reply" } +func (*IPReassemblySetReply) GetCrcString() string { return "e8d4e804" } +func (*IPReassemblySetReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPReassemblySetReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPReassemblySetReply) 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 *IPReassemblySetReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPRouteAddDel defines message 'ip_route_add_del'. +type IPRouteAddDel struct { + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` + IsMultipath bool `binapi:"bool,name=is_multipath" json:"is_multipath,omitempty"` + Route IPRoute `binapi:"ip_route,name=route" json:"route,omitempty"` +} + +func (m *IPRouteAddDel) Reset() { *m = IPRouteAddDel{} } +func (*IPRouteAddDel) GetMessageName() string { return "ip_route_add_del" } +func (*IPRouteAddDel) GetCrcString() string { return "c1ff832d" } +func (*IPRouteAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPRouteAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.IsAdd + size += 1 // m.IsMultipath + size += 4 // m.Route.TableID + size += 4 // m.Route.StatsIndex + size += 1 // m.Route.Prefix.Address.Af + size += 1 * 16 // m.Route.Prefix.Address.Un + size += 1 // m.Route.Prefix.Len + size += 1 // m.Route.NPaths + for j2 := 0; j2 < len(m.Route.Paths); j2++ { + var s2 fib_types.FibPath + _ = s2 + if j2 < len(m.Route.Paths) { + s2 = m.Route.Paths[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 *IPRouteAddDel) 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.IsAdd) + buf.EncodeBool(m.IsMultipath) + buf.EncodeUint32(uint32(m.Route.TableID)) + buf.EncodeUint32(uint32(m.Route.StatsIndex)) + buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af)) + buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Route.Prefix.Len)) + buf.EncodeUint8(uint8(len(m.Route.Paths))) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + var v1 fib_types.FibPath + if j1 < len(m.Route.Paths) { + v1 = m.Route.Paths[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 *IPRouteAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsAdd = buf.DecodeBool() + m.IsMultipath = buf.DecodeBool() + m.Route.TableID = buf.DecodeUint32() + m.Route.StatsIndex = buf.DecodeUint32() + m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Prefix.Len = buf.DecodeUint8() + m.Route.NPaths = buf.DecodeUint8() + m.Route.Paths = make([]fib_types.FibPath, int(m.Route.NPaths)) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32() + m.Route.Paths[j1].TableID = buf.DecodeUint32() + m.Route.Paths[j1].RpfID = buf.DecodeUint32() + m.Route.Paths[j1].Weight = buf.DecodeUint8() + m.Route.Paths[j1].Preference = buf.DecodeUint8() + m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32()) + m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32() + m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32() + m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32() + m.Route.Paths[j1].NLabels = buf.DecodeUint8() + for j2 := 0; j2 < 16; j2++ { + m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8() + m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32() + m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8() + m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8() + } + } + return nil +} + +// IPRouteAddDelReply defines message 'ip_route_add_del_reply'. +type IPRouteAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` + StatsIndex uint32 `binapi:"u32,name=stats_index" json:"stats_index,omitempty"` +} + +func (m *IPRouteAddDelReply) Reset() { *m = IPRouteAddDelReply{} } +func (*IPRouteAddDelReply) GetMessageName() string { return "ip_route_add_del_reply" } +func (*IPRouteAddDelReply) GetCrcString() string { return "1992deab" } +func (*IPRouteAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPRouteAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + size += 4 // m.StatsIndex + return size +} +func (m *IPRouteAddDelReply) 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.StatsIndex)) + return buf.Bytes(), nil +} +func (m *IPRouteAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + m.StatsIndex = buf.DecodeUint32() + return nil +} + +// IPRouteDetails defines message 'ip_route_details'. +type IPRouteDetails struct { + Route IPRoute `binapi:"ip_route,name=route" json:"route,omitempty"` +} + +func (m *IPRouteDetails) Reset() { *m = IPRouteDetails{} } +func (*IPRouteDetails) GetMessageName() string { return "ip_route_details" } +func (*IPRouteDetails) GetCrcString() string { return "d1ffaae1" } +func (*IPRouteDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPRouteDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Route.TableID + size += 4 // m.Route.StatsIndex + size += 1 // m.Route.Prefix.Address.Af + size += 1 * 16 // m.Route.Prefix.Address.Un + size += 1 // m.Route.Prefix.Len + size += 1 // m.Route.NPaths + for j2 := 0; j2 < len(m.Route.Paths); j2++ { + var s2 fib_types.FibPath + _ = s2 + if j2 < len(m.Route.Paths) { + s2 = m.Route.Paths[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 *IPRouteDetails) 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.Route.TableID)) + buf.EncodeUint32(uint32(m.Route.StatsIndex)) + buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af)) + buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Route.Prefix.Len)) + buf.EncodeUint8(uint8(len(m.Route.Paths))) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + var v1 fib_types.FibPath + if j1 < len(m.Route.Paths) { + v1 = m.Route.Paths[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 *IPRouteDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Route.TableID = buf.DecodeUint32() + m.Route.StatsIndex = buf.DecodeUint32() + m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Prefix.Len = buf.DecodeUint8() + m.Route.NPaths = buf.DecodeUint8() + m.Route.Paths = make([]fib_types.FibPath, int(m.Route.NPaths)) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32() + m.Route.Paths[j1].TableID = buf.DecodeUint32() + m.Route.Paths[j1].RpfID = buf.DecodeUint32() + m.Route.Paths[j1].Weight = buf.DecodeUint8() + m.Route.Paths[j1].Preference = buf.DecodeUint8() + m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32()) + m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32() + m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32() + m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32() + m.Route.Paths[j1].NLabels = buf.DecodeUint8() + for j2 := 0; j2 < 16; j2++ { + m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8() + m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32() + m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8() + m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8() + } + } + return nil +} + +// IPRouteDump defines message 'ip_route_dump'. +type IPRouteDump struct { + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPRouteDump) Reset() { *m = IPRouteDump{} } +func (*IPRouteDump) GetMessageName() string { return "ip_route_dump" } +func (*IPRouteDump) GetCrcString() string { return "b9d2e09e" } +func (*IPRouteDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPRouteDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPRouteDump) 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.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPRouteDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPRouteLookup defines message 'ip_route_lookup'. +type IPRouteLookup struct { + TableID uint32 `binapi:"u32,name=table_id" json:"table_id,omitempty"` + Exact uint8 `binapi:"u8,name=exact" json:"exact,omitempty"` + Prefix ip_types.Prefix `binapi:"prefix,name=prefix" json:"prefix,omitempty"` +} + +func (m *IPRouteLookup) Reset() { *m = IPRouteLookup{} } +func (*IPRouteLookup) GetMessageName() string { return "ip_route_lookup" } +func (*IPRouteLookup) GetCrcString() string { return "e2986185" } +func (*IPRouteLookup) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPRouteLookup) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.TableID + size += 1 // m.Exact + size += 1 // m.Prefix.Address.Af + size += 1 * 16 // m.Prefix.Address.Un + size += 1 // m.Prefix.Len + return size +} +func (m *IPRouteLookup) 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.TableID)) + buf.EncodeUint8(uint8(m.Exact)) + buf.EncodeUint8(uint8(m.Prefix.Address.Af)) + buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Prefix.Len)) + return buf.Bytes(), nil +} +func (m *IPRouteLookup) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.TableID = buf.DecodeUint32() + m.Exact = buf.DecodeUint8() + m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Prefix.Len = buf.DecodeUint8() + return nil +} + +// IPRouteLookupReply defines message 'ip_route_lookup_reply'. +type IPRouteLookupReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` + Route IPRoute `binapi:"ip_route,name=route" json:"route,omitempty"` +} + +func (m *IPRouteLookupReply) Reset() { *m = IPRouteLookupReply{} } +func (*IPRouteLookupReply) GetMessageName() string { return "ip_route_lookup_reply" } +func (*IPRouteLookupReply) GetCrcString() string { return "ae99de8e" } +func (*IPRouteLookupReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPRouteLookupReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + size += 4 // m.Route.TableID + size += 4 // m.Route.StatsIndex + size += 1 // m.Route.Prefix.Address.Af + size += 1 * 16 // m.Route.Prefix.Address.Un + size += 1 // m.Route.Prefix.Len + size += 1 // m.Route.NPaths + for j2 := 0; j2 < len(m.Route.Paths); j2++ { + var s2 fib_types.FibPath + _ = s2 + if j2 < len(m.Route.Paths) { + s2 = m.Route.Paths[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 *IPRouteLookupReply) 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.Route.TableID)) + buf.EncodeUint32(uint32(m.Route.StatsIndex)) + buf.EncodeUint8(uint8(m.Route.Prefix.Address.Af)) + buf.EncodeBytes(m.Route.Prefix.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Route.Prefix.Len)) + buf.EncodeUint8(uint8(len(m.Route.Paths))) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + var v1 fib_types.FibPath + if j1 < len(m.Route.Paths) { + v1 = m.Route.Paths[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 *IPRouteLookupReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + m.Route.TableID = buf.DecodeUint32() + m.Route.StatsIndex = buf.DecodeUint32() + m.Route.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Route.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Prefix.Len = buf.DecodeUint8() + m.Route.NPaths = buf.DecodeUint8() + m.Route.Paths = make([]fib_types.FibPath, int(m.Route.NPaths)) + for j1 := 0; j1 < len(m.Route.Paths); j1++ { + m.Route.Paths[j1].SwIfIndex = buf.DecodeUint32() + m.Route.Paths[j1].TableID = buf.DecodeUint32() + m.Route.Paths[j1].RpfID = buf.DecodeUint32() + m.Route.Paths[j1].Weight = buf.DecodeUint8() + m.Route.Paths[j1].Preference = buf.DecodeUint8() + m.Route.Paths[j1].Type = fib_types.FibPathType(buf.DecodeUint32()) + m.Route.Paths[j1].Flags = fib_types.FibPathFlags(buf.DecodeUint32()) + m.Route.Paths[j1].Proto = fib_types.FibPathNhProto(buf.DecodeUint32()) + copy(m.Route.Paths[j1].Nh.Address.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Route.Paths[j1].Nh.ViaLabel = buf.DecodeUint32() + m.Route.Paths[j1].Nh.ObjID = buf.DecodeUint32() + m.Route.Paths[j1].Nh.ClassifyTableIndex = buf.DecodeUint32() + m.Route.Paths[j1].NLabels = buf.DecodeUint8() + for j2 := 0; j2 < 16; j2++ { + m.Route.Paths[j1].LabelStack[j2].IsUniform = buf.DecodeUint8() + m.Route.Paths[j1].LabelStack[j2].Label = buf.DecodeUint32() + m.Route.Paths[j1].LabelStack[j2].TTL = buf.DecodeUint8() + m.Route.Paths[j1].LabelStack[j2].Exp = buf.DecodeUint8() + } + } + return nil +} + +// IPSourceAndPortRangeCheckAddDel defines message 'ip_source_and_port_range_check_add_del'. +type IPSourceAndPortRangeCheckAddDel struct { + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` + Prefix ip_types.Prefix `binapi:"prefix,name=prefix" json:"prefix,omitempty"` + NumberOfRanges uint8 `binapi:"u8,name=number_of_ranges" json:"number_of_ranges,omitempty"` + LowPorts []uint16 `binapi:"u16[32],name=low_ports" json:"low_ports,omitempty"` + HighPorts []uint16 `binapi:"u16[32],name=high_ports" json:"high_ports,omitempty"` + VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` +} + +func (m *IPSourceAndPortRangeCheckAddDel) Reset() { *m = IPSourceAndPortRangeCheckAddDel{} } +func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string { + return "ip_source_and_port_range_check_add_del" +} +func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string { return "8bfc76f2" } +func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPSourceAndPortRangeCheckAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.IsAdd + size += 1 // m.Prefix.Address.Af + size += 1 * 16 // m.Prefix.Address.Un + size += 1 // m.Prefix.Len + size += 1 // m.NumberOfRanges + size += 2 * 32 // m.LowPorts + size += 2 * 32 // m.HighPorts + size += 4 // m.VrfID + return size +} +func (m *IPSourceAndPortRangeCheckAddDel) 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.IsAdd) + buf.EncodeUint8(uint8(m.Prefix.Address.Af)) + buf.EncodeBytes(m.Prefix.Address.Un.XXX_UnionData[:], 0) + buf.EncodeUint8(uint8(m.Prefix.Len)) + buf.EncodeUint8(uint8(m.NumberOfRanges)) + for i := 0; i < 32; i++ { + var x uint16 + if i < len(m.LowPorts) { + x = uint16(m.LowPorts[i]) + } + buf.EncodeUint16(uint16(x)) + } + for i := 0; i < 32; i++ { + var x uint16 + if i < len(m.HighPorts) { + x = uint16(m.HighPorts[i]) + } + buf.EncodeUint16(uint16(x)) + } + buf.EncodeUint32(uint32(m.VrfID)) + return buf.Bytes(), nil +} +func (m *IPSourceAndPortRangeCheckAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsAdd = buf.DecodeBool() + m.Prefix.Address.Af = ip_types.AddressFamily(buf.DecodeUint8()) + copy(m.Prefix.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16)) + m.Prefix.Len = buf.DecodeUint8() + m.NumberOfRanges = buf.DecodeUint8() + m.LowPorts = make([]uint16, 32) + for i := 0; i < len(m.LowPorts); i++ { + m.LowPorts[i] = buf.DecodeUint16() + } + m.HighPorts = make([]uint16, 32) + for i := 0; i < len(m.HighPorts); i++ { + m.HighPorts[i] = buf.DecodeUint16() + } + m.VrfID = buf.DecodeUint32() + return nil +} + +// IPSourceAndPortRangeCheckAddDelReply defines message 'ip_source_and_port_range_check_add_del_reply'. +type IPSourceAndPortRangeCheckAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPSourceAndPortRangeCheckAddDelReply) Reset() { *m = IPSourceAndPortRangeCheckAddDelReply{} } +func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageName() string { + return "ip_source_and_port_range_check_add_del_reply" +} +func (*IPSourceAndPortRangeCheckAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPSourceAndPortRangeCheckAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPSourceAndPortRangeCheckAddDelReply) 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 *IPSourceAndPortRangeCheckAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPSourceAndPortRangeCheckInterfaceAddDel defines message 'ip_source_and_port_range_check_interface_add_del'. +type IPSourceAndPortRangeCheckInterfaceAddDel struct { + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + TCPInVrfID uint32 `binapi:"u32,name=tcp_in_vrf_id" json:"tcp_in_vrf_id,omitempty"` + TCPOutVrfID uint32 `binapi:"u32,name=tcp_out_vrf_id" json:"tcp_out_vrf_id,omitempty"` + UDPInVrfID uint32 `binapi:"u32,name=udp_in_vrf_id" json:"udp_in_vrf_id,omitempty"` + UDPOutVrfID uint32 `binapi:"u32,name=udp_out_vrf_id" json:"udp_out_vrf_id,omitempty"` +} + +func (m *IPSourceAndPortRangeCheckInterfaceAddDel) Reset() { + *m = IPSourceAndPortRangeCheckInterfaceAddDel{} +} +func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string { + return "ip_source_and_port_range_check_interface_add_del" +} +func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string { return "e1ba8987" } +func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPSourceAndPortRangeCheckInterfaceAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.IsAdd + size += 4 // m.SwIfIndex + size += 4 // m.TCPInVrfID + size += 4 // m.TCPOutVrfID + size += 4 // m.UDPInVrfID + size += 4 // m.UDPOutVrfID + return size +} +func (m *IPSourceAndPortRangeCheckInterfaceAddDel) 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.IsAdd) + buf.EncodeUint32(uint32(m.SwIfIndex)) + buf.EncodeUint32(uint32(m.TCPInVrfID)) + buf.EncodeUint32(uint32(m.TCPOutVrfID)) + buf.EncodeUint32(uint32(m.UDPInVrfID)) + buf.EncodeUint32(uint32(m.UDPOutVrfID)) + return buf.Bytes(), nil +} +func (m *IPSourceAndPortRangeCheckInterfaceAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsAdd = buf.DecodeBool() + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.TCPInVrfID = buf.DecodeUint32() + m.TCPOutVrfID = buf.DecodeUint32() + m.UDPInVrfID = buf.DecodeUint32() + m.UDPOutVrfID = buf.DecodeUint32() + return nil +} + +// IPSourceAndPortRangeCheckInterfaceAddDelReply defines message 'ip_source_and_port_range_check_interface_add_del_reply'. +type IPSourceAndPortRangeCheckInterfaceAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPSourceAndPortRangeCheckInterfaceAddDelReply) Reset() { + *m = IPSourceAndPortRangeCheckInterfaceAddDelReply{} +} +func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageName() string { + return "ip_source_and_port_range_check_interface_add_del_reply" +} +func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPSourceAndPortRangeCheckInterfaceAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPSourceAndPortRangeCheckInterfaceAddDelReply) 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 *IPSourceAndPortRangeCheckInterfaceAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPTableAddDel defines message 'ip_table_add_del'. +type IPTableAddDel struct { + IsAdd bool `binapi:"bool,name=is_add,default=true" json:"is_add,omitempty"` + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPTableAddDel) Reset() { *m = IPTableAddDel{} } +func (*IPTableAddDel) GetMessageName() string { return "ip_table_add_del" } +func (*IPTableAddDel) GetCrcString() string { return "0ffdaec0" } +func (*IPTableAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPTableAddDel) Size() int { + if m == nil { + return 0 + } + var size int + size += 1 // m.IsAdd + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPTableAddDel) 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.IsAdd) + buf.EncodeUint32(uint32(m.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPTableAddDel) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.IsAdd = buf.DecodeBool() + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPTableAddDelReply defines message 'ip_table_add_del_reply'. +type IPTableAddDelReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPTableAddDelReply) Reset() { *m = IPTableAddDelReply{} } +func (*IPTableAddDelReply) GetMessageName() string { return "ip_table_add_del_reply" } +func (*IPTableAddDelReply) GetCrcString() string { return "e8d4e804" } +func (*IPTableAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPTableAddDelReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPTableAddDelReply) 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 *IPTableAddDelReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPTableDetails defines message 'ip_table_details'. +type IPTableDetails struct { + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPTableDetails) Reset() { *m = IPTableDetails{} } +func (*IPTableDetails) GetMessageName() string { return "ip_table_details" } +func (*IPTableDetails) GetCrcString() string { return "c79fca0f" } +func (*IPTableDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPTableDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPTableDetails) 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.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPTableDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPTableDump defines message 'ip_table_dump'. +type IPTableDump struct{} + +func (m *IPTableDump) Reset() { *m = IPTableDump{} } +func (*IPTableDump) GetMessageName() string { return "ip_table_dump" } +func (*IPTableDump) GetCrcString() string { return "51077d14" } +func (*IPTableDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPTableDump) Size() int { + if m == nil { + return 0 + } + var size int + return size +} +func (m *IPTableDump) 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 *IPTableDump) Unmarshal(b []byte) error { + return nil +} + +// IPTableFlush defines message 'ip_table_flush'. +type IPTableFlush struct { + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPTableFlush) Reset() { *m = IPTableFlush{} } +func (*IPTableFlush) GetMessageName() string { return "ip_table_flush" } +func (*IPTableFlush) GetCrcString() string { return "b9d2e09e" } +func (*IPTableFlush) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPTableFlush) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPTableFlush) 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.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPTableFlush) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPTableFlushReply defines message 'ip_table_flush_reply'. +type IPTableFlushReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPTableFlushReply) Reset() { *m = IPTableFlushReply{} } +func (*IPTableFlushReply) GetMessageName() string { return "ip_table_flush_reply" } +func (*IPTableFlushReply) GetCrcString() string { return "e8d4e804" } +func (*IPTableFlushReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPTableFlushReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPTableFlushReply) 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 *IPTableFlushReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPTableReplaceBegin defines message 'ip_table_replace_begin'. +type IPTableReplaceBegin struct { + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPTableReplaceBegin) Reset() { *m = IPTableReplaceBegin{} } +func (*IPTableReplaceBegin) GetMessageName() string { return "ip_table_replace_begin" } +func (*IPTableReplaceBegin) GetCrcString() string { return "b9d2e09e" } +func (*IPTableReplaceBegin) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPTableReplaceBegin) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPTableReplaceBegin) 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.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPTableReplaceBegin) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPTableReplaceBeginReply defines message 'ip_table_replace_begin_reply'. +type IPTableReplaceBeginReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPTableReplaceBeginReply) Reset() { *m = IPTableReplaceBeginReply{} } +func (*IPTableReplaceBeginReply) GetMessageName() string { return "ip_table_replace_begin_reply" } +func (*IPTableReplaceBeginReply) GetCrcString() string { return "e8d4e804" } +func (*IPTableReplaceBeginReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPTableReplaceBeginReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPTableReplaceBeginReply) 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 *IPTableReplaceBeginReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPTableReplaceEnd defines message 'ip_table_replace_end'. +type IPTableReplaceEnd struct { + Table IPTable `binapi:"ip_table,name=table" json:"table,omitempty"` +} + +func (m *IPTableReplaceEnd) Reset() { *m = IPTableReplaceEnd{} } +func (*IPTableReplaceEnd) GetMessageName() string { return "ip_table_replace_end" } +func (*IPTableReplaceEnd) GetCrcString() string { return "b9d2e09e" } +func (*IPTableReplaceEnd) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPTableReplaceEnd) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Table.TableID + size += 1 // m.Table.IsIP6 + size += 64 // m.Table.Name + return size +} +func (m *IPTableReplaceEnd) 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.Table.TableID)) + buf.EncodeBool(m.Table.IsIP6) + buf.EncodeString(m.Table.Name, 64) + return buf.Bytes(), nil +} +func (m *IPTableReplaceEnd) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Table.TableID = buf.DecodeUint32() + m.Table.IsIP6 = buf.DecodeBool() + m.Table.Name = buf.DecodeString(64) + return nil +} + +// IPTableReplaceEndReply defines message 'ip_table_replace_end_reply'. +type IPTableReplaceEndReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *IPTableReplaceEndReply) Reset() { *m = IPTableReplaceEndReply{} } +func (*IPTableReplaceEndReply) GetMessageName() string { return "ip_table_replace_end_reply" } +func (*IPTableReplaceEndReply) GetCrcString() string { return "e8d4e804" } +func (*IPTableReplaceEndReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPTableReplaceEndReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *IPTableReplaceEndReply) 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 *IPTableReplaceEndReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// IPUnnumberedDetails defines message 'ip_unnumbered_details'. +type IPUnnumberedDetails struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + IPSwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=ip_sw_if_index" json:"ip_sw_if_index,omitempty"` +} + +func (m *IPUnnumberedDetails) Reset() { *m = IPUnnumberedDetails{} } +func (*IPUnnumberedDetails) GetMessageName() string { return "ip_unnumbered_details" } +func (*IPUnnumberedDetails) GetCrcString() string { return "aa12a483" } +func (*IPUnnumberedDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *IPUnnumberedDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 4 // m.IPSwIfIndex + return size +} +func (m *IPUnnumberedDetails) 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.SwIfIndex)) + buf.EncodeUint32(uint32(m.IPSwIfIndex)) + return buf.Bytes(), nil +} +func (m *IPUnnumberedDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.IPSwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + return nil +} + +// IPUnnumberedDump defines message 'ip_unnumbered_dump'. +type IPUnnumberedDump struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index,default=%!s(float64=4.294967295e+09)" json:"sw_if_index,omitempty"` +} + +func (m *IPUnnumberedDump) Reset() { *m = IPUnnumberedDump{} } +func (*IPUnnumberedDump) GetMessageName() string { return "ip_unnumbered_dump" } +func (*IPUnnumberedDump) GetCrcString() string { return "f9e6675e" } +func (*IPUnnumberedDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *IPUnnumberedDump) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + return size +} +func (m *IPUnnumberedDump) 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.SwIfIndex)) + return buf.Bytes(), nil +} +func (m *IPUnnumberedDump) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + return nil +} + +// MfibSignalDetails defines message 'mfib_signal_details'. +type MfibSignalDetails struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + TableID uint32 `binapi:"u32,name=table_id" json:"table_id,omitempty"` + Prefix ip_types.Mprefix `binapi:"mprefix,name=prefix" json:"prefix,omitempty"` + IPPacketLen uint16 `binapi:"u16,name=ip_packet_len" json:"ip_packet_len,omitempty"` + IPPacketData []byte `binapi:"u8[256],name=ip_packet_data" json:"ip_packet_data,omitempty"` +} + +func (m *MfibSignalDetails) Reset() { *m = MfibSignalDetails{} } +func (*MfibSignalDetails) GetMessageName() string { return "mfib_signal_details" } +func (*MfibSignalDetails) GetCrcString() string { return "64398a9a" } +func (*MfibSignalDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *MfibSignalDetails) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 4 // m.TableID + size += 1 // m.Prefix.Af + size += 2 // m.Prefix.GrpAddressLength + size += 1 * 16 // m.Prefix.GrpAddress + size += 1 * 16 // m.Prefix.SrcAddress + size += 2 // m.IPPacketLen + size += 1 * 256 // m.IPPacketData + return size +} +func (m *MfibSignalDetails) 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.SwIfIndex)) + buf.EncodeUint32(uint32(m.TableID)) + buf.EncodeUint8(uint8(m.Prefix.Af)) + buf.EncodeUint16(uint16(m.Prefix.GrpAddressLength)) + buf.EncodeBytes(m.Prefix.GrpAddress.XXX_UnionData[:], 0) + buf.EncodeBytes(m.Prefix.SrcAddress.XXX_UnionData[:], 0) + buf.EncodeUint16(uint16(m.IPPacketLen)) + buf.EncodeBytes(m.IPPacketData[:], 256) + return buf.Bytes(), nil +} +func (m *MfibSignalDetails) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.TableID = buf.DecodeUint32() + m.Prefix.Af = ip_types.AddressFamily(buf.DecodeUint8()) + m.Prefix.GrpAddressLength = buf.DecodeUint16() + copy(m.Prefix.GrpAddress.XXX_UnionData[:], buf.DecodeBytes(16)) + copy(m.Prefix.SrcAddress.XXX_UnionData[:], buf.DecodeBytes(16)) + m.IPPacketLen = buf.DecodeUint16() + copy(m.IPPacketData[:], buf.DecodeBytes(256)) + return nil +} + +// MfibSignalDump defines message 'mfib_signal_dump'. +type MfibSignalDump struct{} + +func (m *MfibSignalDump) Reset() { *m = MfibSignalDump{} } +func (*MfibSignalDump) GetMessageName() string { return "mfib_signal_dump" } +func (*MfibSignalDump) GetCrcString() string { return "51077d14" } +func (*MfibSignalDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *MfibSignalDump) Size() int { + if m == nil { + return 0 + } + var size int + return size +} +func (m *MfibSignalDump) 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 *MfibSignalDump) Unmarshal(b []byte) error { + return nil +} + +// SetIPFlowHash defines message 'set_ip_flow_hash'. +type SetIPFlowHash struct { + VrfID uint32 `binapi:"u32,name=vrf_id" json:"vrf_id,omitempty"` + IsIPv6 bool `binapi:"bool,name=is_ipv6" json:"is_ipv6,omitempty"` + Src bool `binapi:"bool,name=src" json:"src,omitempty"` + Dst bool `binapi:"bool,name=dst" json:"dst,omitempty"` + Sport bool `binapi:"bool,name=sport" json:"sport,omitempty"` + Dport bool `binapi:"bool,name=dport" json:"dport,omitempty"` + Proto bool `binapi:"bool,name=proto" json:"proto,omitempty"` + Reverse bool `binapi:"bool,name=reverse" json:"reverse,omitempty"` + Symmetric bool `binapi:"bool,name=symmetric" json:"symmetric,omitempty"` +} + +func (m *SetIPFlowHash) Reset() { *m = SetIPFlowHash{} } +func (*SetIPFlowHash) GetMessageName() string { return "set_ip_flow_hash" } +func (*SetIPFlowHash) GetCrcString() string { return "084ee09e" } +func (*SetIPFlowHash) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *SetIPFlowHash) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.VrfID + size += 1 // m.IsIPv6 + size += 1 // m.Src + size += 1 // m.Dst + size += 1 // m.Sport + size += 1 // m.Dport + size += 1 // m.Proto + size += 1 // m.Reverse + size += 1 // m.Symmetric + return size +} +func (m *SetIPFlowHash) 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.VrfID)) + buf.EncodeBool(m.IsIPv6) + buf.EncodeBool(m.Src) + buf.EncodeBool(m.Dst) + buf.EncodeBool(m.Sport) + buf.EncodeBool(m.Dport) + buf.EncodeBool(m.Proto) + buf.EncodeBool(m.Reverse) + buf.EncodeBool(m.Symmetric) + return buf.Bytes(), nil +} +func (m *SetIPFlowHash) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.VrfID = buf.DecodeUint32() + m.IsIPv6 = buf.DecodeBool() + m.Src = buf.DecodeBool() + m.Dst = buf.DecodeBool() + m.Sport = buf.DecodeBool() + m.Dport = buf.DecodeBool() + m.Proto = buf.DecodeBool() + m.Reverse = buf.DecodeBool() + m.Symmetric = buf.DecodeBool() + return nil +} + +// SetIPFlowHashReply defines message 'set_ip_flow_hash_reply'. +type SetIPFlowHashReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *SetIPFlowHashReply) Reset() { *m = SetIPFlowHashReply{} } +func (*SetIPFlowHashReply) GetMessageName() string { return "set_ip_flow_hash_reply" } +func (*SetIPFlowHashReply) GetCrcString() string { return "e8d4e804" } +func (*SetIPFlowHashReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *SetIPFlowHashReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *SetIPFlowHashReply) 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 *SetIPFlowHashReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// SwInterfaceIP6EnableDisable defines message 'sw_interface_ip6_enable_disable'. +type SwInterfaceIP6EnableDisable struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + Enable bool `binapi:"bool,name=enable" json:"enable,omitempty"` +} + +func (m *SwInterfaceIP6EnableDisable) Reset() { *m = SwInterfaceIP6EnableDisable{} } +func (*SwInterfaceIP6EnableDisable) GetMessageName() string { return "sw_interface_ip6_enable_disable" } +func (*SwInterfaceIP6EnableDisable) GetCrcString() string { return "ae6cfcfb" } +func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *SwInterfaceIP6EnableDisable) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 // m.Enable + return size +} +func (m *SwInterfaceIP6EnableDisable) 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.SwIfIndex)) + buf.EncodeBool(m.Enable) + return buf.Bytes(), nil +} +func (m *SwInterfaceIP6EnableDisable) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + m.Enable = buf.DecodeBool() + return nil +} + +// SwInterfaceIP6EnableDisableReply defines message 'sw_interface_ip6_enable_disable_reply'. +type SwInterfaceIP6EnableDisableReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *SwInterfaceIP6EnableDisableReply) Reset() { *m = SwInterfaceIP6EnableDisableReply{} } +func (*SwInterfaceIP6EnableDisableReply) GetMessageName() string { + return "sw_interface_ip6_enable_disable_reply" +} +func (*SwInterfaceIP6EnableDisableReply) GetCrcString() string { return "e8d4e804" } +func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *SwInterfaceIP6EnableDisableReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *SwInterfaceIP6EnableDisableReply) 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 *SwInterfaceIP6EnableDisableReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +// SwInterfaceIP6SetLinkLocalAddress defines message 'sw_interface_ip6_set_link_local_address'. +type SwInterfaceIP6SetLinkLocalAddress struct { + SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"` + IP ip_types.IP6Address `binapi:"ip6_address,name=ip" json:"ip,omitempty"` +} + +func (m *SwInterfaceIP6SetLinkLocalAddress) Reset() { *m = SwInterfaceIP6SetLinkLocalAddress{} } +func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageName() string { + return "sw_interface_ip6_set_link_local_address" +} +func (*SwInterfaceIP6SetLinkLocalAddress) GetCrcString() string { return "2931d9fa" } +func (*SwInterfaceIP6SetLinkLocalAddress) GetMessageType() api.MessageType { + return api.RequestMessage +} + +func (m *SwInterfaceIP6SetLinkLocalAddress) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.SwIfIndex + size += 1 * 16 // m.IP + return size +} +func (m *SwInterfaceIP6SetLinkLocalAddress) 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.SwIfIndex)) + buf.EncodeBytes(m.IP[:], 16) + return buf.Bytes(), nil +} +func (m *SwInterfaceIP6SetLinkLocalAddress) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32()) + copy(m.IP[:], buf.DecodeBytes(16)) + return nil +} + +// SwInterfaceIP6SetLinkLocalAddressReply defines message 'sw_interface_ip6_set_link_local_address_reply'. +type SwInterfaceIP6SetLinkLocalAddressReply struct { + Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"` +} + +func (m *SwInterfaceIP6SetLinkLocalAddressReply) Reset() { + *m = SwInterfaceIP6SetLinkLocalAddressReply{} +} +func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageName() string { + return "sw_interface_ip6_set_link_local_address_reply" +} +func (*SwInterfaceIP6SetLinkLocalAddressReply) GetCrcString() string { return "e8d4e804" } +func (*SwInterfaceIP6SetLinkLocalAddressReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func (m *SwInterfaceIP6SetLinkLocalAddressReply) Size() int { + if m == nil { + return 0 + } + var size int + size += 4 // m.Retval + return size +} +func (m *SwInterfaceIP6SetLinkLocalAddressReply) 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 *SwInterfaceIP6SetLinkLocalAddressReply) Unmarshal(b []byte) error { + buf := codec.NewBuffer(b) + m.Retval = int32(buf.DecodeUint32()) + return nil +} + +func init() { file_ip_binapi_init() } +func file_ip_binapi_init() { + api.RegisterMessage((*IoamDisable)(nil), "ioam_disable_6b16a45e") + api.RegisterMessage((*IoamDisableReply)(nil), "ioam_disable_reply_e8d4e804") + api.RegisterMessage((*IoamEnable)(nil), "ioam_enable_51ccd868") + api.RegisterMessage((*IoamEnableReply)(nil), "ioam_enable_reply_e8d4e804") + api.RegisterMessage((*IPAddressDetails)(nil), "ip_address_details_b1199745") + api.RegisterMessage((*IPAddressDump)(nil), "ip_address_dump_2d033de4") + api.RegisterMessage((*IPContainerProxyAddDel)(nil), "ip_container_proxy_add_del_91189f40") + api.RegisterMessage((*IPContainerProxyAddDelReply)(nil), "ip_container_proxy_add_del_reply_e8d4e804") + api.RegisterMessage((*IPContainerProxyDetails)(nil), "ip_container_proxy_details_0ee460e8") + api.RegisterMessage((*IPContainerProxyDump)(nil), "ip_container_proxy_dump_51077d14") + api.RegisterMessage((*IPDetails)(nil), "ip_details_eb152d07") + api.RegisterMessage((*IPDump)(nil), "ip_dump_98d231ca") + api.RegisterMessage((*IPMrouteAddDel)(nil), "ip_mroute_add_del_f6627d17") + api.RegisterMessage((*IPMrouteAddDelReply)(nil), "ip_mroute_add_del_reply_1992deab") + api.RegisterMessage((*IPMrouteDetails)(nil), "ip_mroute_details_c1cb4b44") + api.RegisterMessage((*IPMrouteDump)(nil), "ip_mroute_dump_b9d2e09e") + api.RegisterMessage((*IPMtableDetails)(nil), "ip_mtable_details_b9d2e09e") + api.RegisterMessage((*IPMtableDump)(nil), "ip_mtable_dump_51077d14") + api.RegisterMessage((*IPPuntPolice)(nil), "ip_punt_police_db867cea") + api.RegisterMessage((*IPPuntPoliceReply)(nil), "ip_punt_police_reply_e8d4e804") + api.RegisterMessage((*IPPuntRedirect)(nil), "ip_punt_redirect_a9a5592c") + api.RegisterMessage((*IPPuntRedirectDetails)(nil), "ip_punt_redirect_details_3924f5d3") + api.RegisterMessage((*IPPuntRedirectDump)(nil), "ip_punt_redirect_dump_2d033de4") + api.RegisterMessage((*IPPuntRedirectReply)(nil), "ip_punt_redirect_reply_e8d4e804") + api.RegisterMessage((*IPReassemblyEnableDisable)(nil), "ip_reassembly_enable_disable_885c85a6") + api.RegisterMessage((*IPReassemblyEnableDisableReply)(nil), "ip_reassembly_enable_disable_reply_e8d4e804") + api.RegisterMessage((*IPReassemblyGet)(nil), "ip_reassembly_get_ea13ff63") + api.RegisterMessage((*IPReassemblyGetReply)(nil), "ip_reassembly_get_reply_d5eb8d34") + api.RegisterMessage((*IPReassemblySet)(nil), "ip_reassembly_set_16467d25") + api.RegisterMessage((*IPReassemblySetReply)(nil), "ip_reassembly_set_reply_e8d4e804") + api.RegisterMessage((*IPRouteAddDel)(nil), "ip_route_add_del_c1ff832d") + api.RegisterMessage((*IPRouteAddDelReply)(nil), "ip_route_add_del_reply_1992deab") + api.RegisterMessage((*IPRouteDetails)(nil), "ip_route_details_d1ffaae1") + api.RegisterMessage((*IPRouteDump)(nil), "ip_route_dump_b9d2e09e") + api.RegisterMessage((*IPRouteLookup)(nil), "ip_route_lookup_e2986185") + api.RegisterMessage((*IPRouteLookupReply)(nil), "ip_route_lookup_reply_ae99de8e") + api.RegisterMessage((*IPSourceAndPortRangeCheckAddDel)(nil), "ip_source_and_port_range_check_add_del_8bfc76f2") + api.RegisterMessage((*IPSourceAndPortRangeCheckAddDelReply)(nil), "ip_source_and_port_range_check_add_del_reply_e8d4e804") + api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDel)(nil), "ip_source_and_port_range_check_interface_add_del_e1ba8987") + api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil), "ip_source_and_port_range_check_interface_add_del_reply_e8d4e804") + api.RegisterMessage((*IPTableAddDel)(nil), "ip_table_add_del_0ffdaec0") + api.RegisterMessage((*IPTableAddDelReply)(nil), "ip_table_add_del_reply_e8d4e804") + api.RegisterMessage((*IPTableDetails)(nil), "ip_table_details_c79fca0f") + api.RegisterMessage((*IPTableDump)(nil), "ip_table_dump_51077d14") + api.RegisterMessage((*IPTableFlush)(nil), "ip_table_flush_b9d2e09e") + api.RegisterMessage((*IPTableFlushReply)(nil), "ip_table_flush_reply_e8d4e804") + api.RegisterMessage((*IPTableReplaceBegin)(nil), "ip_table_replace_begin_b9d2e09e") + api.RegisterMessage((*IPTableReplaceBeginReply)(nil), "ip_table_replace_begin_reply_e8d4e804") + api.RegisterMessage((*IPTableReplaceEnd)(nil), "ip_table_replace_end_b9d2e09e") + api.RegisterMessage((*IPTableReplaceEndReply)(nil), "ip_table_replace_end_reply_e8d4e804") + api.RegisterMessage((*IPUnnumberedDetails)(nil), "ip_unnumbered_details_aa12a483") + api.RegisterMessage((*IPUnnumberedDump)(nil), "ip_unnumbered_dump_f9e6675e") + api.RegisterMessage((*MfibSignalDetails)(nil), "mfib_signal_details_64398a9a") + api.RegisterMessage((*MfibSignalDump)(nil), "mfib_signal_dump_51077d14") + api.RegisterMessage((*SetIPFlowHash)(nil), "set_ip_flow_hash_084ee09e") + api.RegisterMessage((*SetIPFlowHashReply)(nil), "set_ip_flow_hash_reply_e8d4e804") + api.RegisterMessage((*SwInterfaceIP6EnableDisable)(nil), "sw_interface_ip6_enable_disable_ae6cfcfb") + api.RegisterMessage((*SwInterfaceIP6EnableDisableReply)(nil), "sw_interface_ip6_enable_disable_reply_e8d4e804") + api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddress)(nil), "sw_interface_ip6_set_link_local_address_2931d9fa") + api.RegisterMessage((*SwInterfaceIP6SetLinkLocalAddressReply)(nil), "sw_interface_ip6_set_link_local_address_reply_e8d4e804") +} + +// Messages returns list of all messages in this module. +func AllMessages() []api.Message { + return []api.Message{ + (*IoamDisable)(nil), + (*IoamDisableReply)(nil), + (*IoamEnable)(nil), + (*IoamEnableReply)(nil), + (*IPAddressDetails)(nil), + (*IPAddressDump)(nil), + (*IPContainerProxyAddDel)(nil), + (*IPContainerProxyAddDelReply)(nil), + (*IPContainerProxyDetails)(nil), + (*IPContainerProxyDump)(nil), + (*IPDetails)(nil), + (*IPDump)(nil), + (*IPMrouteAddDel)(nil), + (*IPMrouteAddDelReply)(nil), + (*IPMrouteDetails)(nil), + (*IPMrouteDump)(nil), + (*IPMtableDetails)(nil), + (*IPMtableDump)(nil), + (*IPPuntPolice)(nil), + (*IPPuntPoliceReply)(nil), + (*IPPuntRedirect)(nil), + (*IPPuntRedirectDetails)(nil), + (*IPPuntRedirectDump)(nil), + (*IPPuntRedirectReply)(nil), + (*IPReassemblyEnableDisable)(nil), + (*IPReassemblyEnableDisableReply)(nil), + (*IPReassemblyGet)(nil), + (*IPReassemblyGetReply)(nil), + (*IPReassemblySet)(nil), + (*IPReassemblySetReply)(nil), + (*IPRouteAddDel)(nil), + (*IPRouteAddDelReply)(nil), + (*IPRouteDetails)(nil), + (*IPRouteDump)(nil), + (*IPRouteLookup)(nil), + (*IPRouteLookupReply)(nil), + (*IPSourceAndPortRangeCheckAddDel)(nil), + (*IPSourceAndPortRangeCheckAddDelReply)(nil), + (*IPSourceAndPortRangeCheckInterfaceAddDel)(nil), + (*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil), + (*IPTableAddDel)(nil), + (*IPTableAddDelReply)(nil), + (*IPTableDetails)(nil), + (*IPTableDump)(nil), + (*IPTableFlush)(nil), + (*IPTableFlushReply)(nil), + (*IPTableReplaceBegin)(nil), + (*IPTableReplaceBeginReply)(nil), + (*IPTableReplaceEnd)(nil), + (*IPTableReplaceEndReply)(nil), + (*IPUnnumberedDetails)(nil), + (*IPUnnumberedDump)(nil), + (*MfibSignalDetails)(nil), + (*MfibSignalDump)(nil), + (*SetIPFlowHash)(nil), + (*SetIPFlowHashReply)(nil), + (*SwInterfaceIP6EnableDisable)(nil), + (*SwInterfaceIP6EnableDisableReply)(nil), + (*SwInterfaceIP6SetLinkLocalAddress)(nil), + (*SwInterfaceIP6SetLinkLocalAddressReply)(nil), + } +} diff --git a/binapi/ip/ip_rest.ba.go b/binapi/ip/ip_rest.ba.go new file mode 100644 index 0000000..245ffed --- /dev/null +++ b/binapi/ip/ip_rest.ba.go @@ -0,0 +1,474 @@ +// Code generated by GoVPP's binapi-generator. DO NOT EDIT. + +package ip + +import ( + "encoding/json" + "io/ioutil" + "net/http" +) + +func RESTHandler(rpc RPCService) http.Handler { + mux := http.NewServeMux() + mux.HandleFunc("/ioam_disable", func(w http.ResponseWriter, req *http.Request) { + var request = new(IoamDisable) + 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.IoamDisable(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("/ioam_enable", func(w http.ResponseWriter, req *http.Request) { + var request = new(IoamEnable) + 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.IoamEnable(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("/ip_container_proxy_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPContainerProxyAddDel) + 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.IPContainerProxyAddDel(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("/ip_mroute_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPMrouteAddDel) + 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.IPMrouteAddDel(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("/ip_punt_police", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPPuntPolice) + 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.IPPuntPolice(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("/ip_punt_redirect", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPPuntRedirect) + 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.IPPuntRedirect(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("/ip_reassembly_enable_disable", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPReassemblyEnableDisable) + 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.IPReassemblyEnableDisable(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("/ip_reassembly_get", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPReassemblyGet) + 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.IPReassemblyGet(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("/ip_reassembly_set", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPReassemblySet) + 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.IPReassemblySet(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("/ip_route_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPRouteAddDel) + 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.IPRouteAddDel(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("/ip_route_lookup", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPRouteLookup) + 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.IPRouteLookup(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("/ip_source_and_port_range_check_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPSourceAndPortRangeCheckAddDel) + 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.IPSourceAndPortRangeCheckAddDel(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("/ip_source_and_port_range_check_interface_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPSourceAndPortRangeCheckInterfaceAddDel) + 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.IPSourceAndPortRangeCheckInterfaceAddDel(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("/ip_table_add_del", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPTableAddDel) + 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.IPTableAddDel(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("/ip_table_flush", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPTableFlush) + 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.IPTableFlush(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("/ip_table_replace_begin", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPTableReplaceBegin) + 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.IPTableReplaceBegin(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("/ip_table_replace_end", func(w http.ResponseWriter, req *http.Request) { + var request = new(IPTableReplaceEnd) + 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.IPTableReplaceEnd(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("/set_ip_flow_hash", func(w http.ResponseWriter, req *http.Request) { + var request = new(SetIPFlowHash) + 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.SetIPFlowHash(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("/sw_interface_ip6_enable_disable", func(w http.ResponseWriter, req *http.Request) { + var request = new(SwInterfaceIP6EnableDisable) + 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.SwInterfaceIP6EnableDisable(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("/sw_interface_ip6_set_link_local_address", func(w http.ResponseWriter, req *http.Request) { + var request = new(SwInterfaceIP6SetLinkLocalAddress) + 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.SwInterfaceIP6SetLinkLocalAddress(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/ip/ip_rpc.ba.go b/binapi/ip/ip_rpc.ba.go new file mode 100644 index 0000000..f50c660 --- /dev/null +++ b/binapi/ip/ip_rpc.ba.go @@ -0,0 +1,623 @@ +// Code generated by GoVPP's binapi-generator. DO NOT EDIT. + +package ip + +import ( + "context" + "fmt" + api "git.fd.io/govpp.git/api" + vpe "git.fd.io/govpp.git/binapi/vpe" + "io" +) + +// RPCService defines RPC service ip. +type RPCService interface { + IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) + IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) + IPAddressDump(ctx context.Context, in *IPAddressDump) (RPCService_IPAddressDumpClient, error) + IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) + IPContainerProxyDump(ctx context.Context, in *IPContainerProxyDump) (RPCService_IPContainerProxyDumpClient, error) + IPDump(ctx context.Context, in *IPDump) (RPCService_IPDumpClient, error) + IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) + IPMrouteDump(ctx context.Context, in *IPMrouteDump) (RPCService_IPMrouteDumpClient, error) + IPMtableDump(ctx context.Context, in *IPMtableDump) (RPCService_IPMtableDumpClient, error) + IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) + IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) + IPPuntRedirectDump(ctx context.Context, in *IPPuntRedirectDump) (RPCService_IPPuntRedirectDumpClient, error) + IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error) + IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error) + IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error) + IPRouteAddDel(ctx context.Context, in *IPRouteAddDel) (*IPRouteAddDelReply, error) + IPRouteDump(ctx context.Context, in *IPRouteDump) (RPCService_IPRouteDumpClient, error) + IPRouteLookup(ctx context.Context, in *IPRouteLookup) (*IPRouteLookupReply, error) + IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error) + IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error) + IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error) + IPTableDump(ctx context.Context, in *IPTableDump) (RPCService_IPTableDumpClient, error) + IPTableFlush(ctx context.Context, in *IPTableFlush) (*IPTableFlushReply, error) + IPTableReplaceBegin(ctx context.Context, in *IPTableReplaceBegin) (*IPTableReplaceBeginReply, error) + IPTableReplaceEnd(ctx context.Context, in *IPTableReplaceEnd) (*IPTableReplaceEndReply, error) + IPUnnumberedDump(ctx context.Context, in *IPUnnumberedDump) (RPCService_IPUnnumberedDumpClient, error) + MfibSignalDump(ctx context.Context, in *MfibSignalDump) (RPCService_MfibSignalDumpClient, error) + SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error) + SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error) + SwInterfaceIP6SetLinkLocalAddress(ctx context.Context, in *SwInterfaceIP6SetLinkLocalAddress) (*SwInterfaceIP6SetLinkLocalAddressReply, error) +} + +type serviceClient struct { + conn api.Connection +} + +func NewServiceClient(conn api.Connection) RPCService { + return &serviceClient{conn} +} + +func (c *serviceClient) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) { + out := new(IoamDisableReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) { + out := new(IoamEnableReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPAddressDump(ctx context.Context, in *IPAddressDump) (RPCService_IPAddressDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPAddressDumpClient{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_IPAddressDumpClient interface { + Recv() (*IPAddressDetails, error) + api.Stream +} + +type serviceClient_IPAddressDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPAddressDumpClient) Recv() (*IPAddressDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPAddressDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) { + out := new(IPContainerProxyAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPContainerProxyDump(ctx context.Context, in *IPContainerProxyDump) (RPCService_IPContainerProxyDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPContainerProxyDumpClient{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_IPContainerProxyDumpClient interface { + Recv() (*IPContainerProxyDetails, error) + api.Stream +} + +type serviceClient_IPContainerProxyDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPContainerProxyDumpClient) Recv() (*IPContainerProxyDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPContainerProxyDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPDump(ctx context.Context, in *IPDump) (RPCService_IPDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPDumpClient{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_IPDumpClient interface { + Recv() (*IPDetails, error) + api.Stream +} + +type serviceClient_IPDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPDumpClient) Recv() (*IPDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) { + out := new(IPMrouteAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPMrouteDump(ctx context.Context, in *IPMrouteDump) (RPCService_IPMrouteDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPMrouteDumpClient{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_IPMrouteDumpClient interface { + Recv() (*IPMrouteDetails, error) + api.Stream +} + +type serviceClient_IPMrouteDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPMrouteDumpClient) Recv() (*IPMrouteDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPMrouteDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPMtableDump(ctx context.Context, in *IPMtableDump) (RPCService_IPMtableDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPMtableDumpClient{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_IPMtableDumpClient interface { + Recv() (*IPMtableDetails, error) + api.Stream +} + +type serviceClient_IPMtableDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPMtableDumpClient) Recv() (*IPMtableDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPMtableDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) { + out := new(IPPuntPoliceReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) { + out := new(IPPuntRedirectReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPPuntRedirectDump(ctx context.Context, in *IPPuntRedirectDump) (RPCService_IPPuntRedirectDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPPuntRedirectDumpClient{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_IPPuntRedirectDumpClient interface { + Recv() (*IPPuntRedirectDetails, error) + api.Stream +} + +type serviceClient_IPPuntRedirectDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPPuntRedirectDumpClient) Recv() (*IPPuntRedirectDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPPuntRedirectDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error) { + out := new(IPReassemblyEnableDisableReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error) { + out := new(IPReassemblyGetReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error) { + out := new(IPReassemblySetReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPRouteAddDel(ctx context.Context, in *IPRouteAddDel) (*IPRouteAddDelReply, error) { + out := new(IPRouteAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPRouteDump(ctx context.Context, in *IPRouteDump) (RPCService_IPRouteDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPRouteDumpClient{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_IPRouteDumpClient interface { + Recv() (*IPRouteDetails, error) + api.Stream +} + +type serviceClient_IPRouteDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPRouteDumpClient) Recv() (*IPRouteDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPRouteDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPRouteLookup(ctx context.Context, in *IPRouteLookup) (*IPRouteLookupReply, error) { + out := new(IPRouteLookupReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error) { + out := new(IPSourceAndPortRangeCheckAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error) { + out := new(IPSourceAndPortRangeCheckInterfaceAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error) { + out := new(IPTableAddDelReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPTableDump(ctx context.Context, in *IPTableDump) (RPCService_IPTableDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPTableDumpClient{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_IPTableDumpClient interface { + Recv() (*IPTableDetails, error) + api.Stream +} + +type serviceClient_IPTableDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPTableDumpClient) Recv() (*IPTableDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPTableDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) IPTableFlush(ctx context.Context, in *IPTableFlush) (*IPTableFlushReply, error) { + out := new(IPTableFlushReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPTableReplaceBegin(ctx context.Context, in *IPTableReplaceBegin) (*IPTableReplaceBeginReply, error) { + out := new(IPTableReplaceBeginReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPTableReplaceEnd(ctx context.Context, in *IPTableReplaceEnd) (*IPTableReplaceEndReply, error) { + out := new(IPTableReplaceEndReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) IPUnnumberedDump(ctx context.Context, in *IPUnnumberedDump) (RPCService_IPUnnumberedDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_IPUnnumberedDumpClient{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_IPUnnumberedDumpClient interface { + Recv() (*IPUnnumberedDetails, error) + api.Stream +} + +type serviceClient_IPUnnumberedDumpClient struct { + api.Stream +} + +func (c *serviceClient_IPUnnumberedDumpClient) Recv() (*IPUnnumberedDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *IPUnnumberedDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) MfibSignalDump(ctx context.Context, in *MfibSignalDump) (RPCService_MfibSignalDumpClient, error) { + stream, err := c.conn.NewStream(ctx) + if err != nil { + return nil, err + } + x := &serviceClient_MfibSignalDumpClient{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_MfibSignalDumpClient interface { + Recv() (*MfibSignalDetails, error) + api.Stream +} + +type serviceClient_MfibSignalDumpClient struct { + api.Stream +} + +func (c *serviceClient_MfibSignalDumpClient) Recv() (*MfibSignalDetails, error) { + msg, err := c.Stream.RecvMsg() + if err != nil { + return nil, err + } + switch m := msg.(type) { + case *MfibSignalDetails: + return m, nil + case *vpe.ControlPingReply: + return nil, io.EOF + default: + return nil, fmt.Errorf("unexpected message: %T %v", m, m) + } +} + +func (c *serviceClient) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error) { + out := new(SetIPFlowHashReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error) { + out := new(SwInterfaceIP6EnableDisableReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serviceClient) SwInterfaceIP6SetLinkLocalAddress(ctx context.Context, in *SwInterfaceIP6SetLinkLocalAddress) (*SwInterfaceIP6SetLinkLocalAddressReply, error) { + out := new(SwInterfaceIP6SetLinkLocalAddressReply) + err := c.conn.Invoke(ctx, in, out) + if err != nil { + return nil, err + } + return out, nil +} |