summaryrefslogtreecommitdiffstats
path: root/examples/binapi
diff options
context:
space:
mode:
Diffstat (limited to 'examples/binapi')
-rw-r--r--examples/binapi/VPP_VERSION1
-rw-r--r--examples/binapi/acl/acl.ba.go970
-rw-r--r--examples/binapi/af_packet/af_packet.ba.go249
-rw-r--r--examples/binapi/gen.go18
-rw-r--r--examples/binapi/interfaces/interfaces.ba.go1285
-rw-r--r--examples/binapi/ip/ip.ba.go2638
-rw-r--r--examples/binapi/memclnt/memclnt.ba.go601
-rw-r--r--examples/binapi/memif/memif.ba.go317
-rw-r--r--examples/binapi/vpe/vpe.ba.go493
9 files changed, 6572 insertions, 0 deletions
diff --git a/examples/binapi/VPP_VERSION b/examples/binapi/VPP_VERSION
new file mode 100644
index 0000000..c12c3c9
--- /dev/null
+++ b/examples/binapi/VPP_VERSION
@@ -0,0 +1 @@
+19.04.1-rc0~15-g85ff80645~b56 \ No newline at end of file
diff --git a/examples/binapi/acl/acl.ba.go b/examples/binapi/acl/acl.ba.go
new file mode 100644
index 0000000..a00918e
--- /dev/null
+++ b/examples/binapi/acl/acl.ba.go
@@ -0,0 +1,970 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/plugins/acl.api.json
+
+/*
+Package acl is a generated from VPP binary API module 'acl'.
+
+ The acl module consists of:
+ 2 types
+ 36 messages
+ 18 services
+*/
+package acl
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// 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.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+ // ModuleName is the name of this module.
+ ModuleName = "acl"
+ // APIVersion is the API version of this module.
+ APIVersion = "1.0.1"
+ // VersionCrc is the CRC of this module.
+ VersionCrc = 0x8ed22cb9
+)
+
+/* Types */
+
+// ACLRule represents VPP binary API type 'acl_rule':
+type ACLRule struct {
+ IsPermit uint8
+ IsIPv6 uint8
+ SrcIPAddr []byte `struc:"[16]byte"`
+ SrcIPPrefixLen uint8
+ DstIPAddr []byte `struc:"[16]byte"`
+ DstIPPrefixLen uint8
+ Proto uint8
+ SrcportOrIcmptypeFirst uint16
+ SrcportOrIcmptypeLast uint16
+ DstportOrIcmpcodeFirst uint16
+ DstportOrIcmpcodeLast uint16
+ TCPFlagsMask uint8
+ TCPFlagsValue uint8
+}
+
+func (*ACLRule) GetTypeName() string {
+ return "acl_rule"
+}
+func (*ACLRule) GetCrcString() string {
+ return "6f99bf4d"
+}
+
+// MacipACLRule represents VPP binary API type 'macip_acl_rule':
+type MacipACLRule struct {
+ IsPermit uint8
+ IsIPv6 uint8
+ SrcMac []byte `struc:"[6]byte"`
+ SrcMacMask []byte `struc:"[6]byte"`
+ SrcIPAddr []byte `struc:"[16]byte"`
+ SrcIPPrefixLen uint8
+}
+
+func (*MacipACLRule) GetTypeName() string {
+ return "macip_acl_rule"
+}
+func (*MacipACLRule) GetCrcString() string {
+ return "70589f1e"
+}
+
+/* Messages */
+
+// ACLAddReplace represents VPP binary API message 'acl_add_replace':
+type ACLAddReplace struct {
+ ACLIndex uint32
+ Tag []byte `struc:"[64]byte"`
+ Count uint32 `struc:"sizeof=R"`
+ R []ACLRule
+}
+
+func (*ACLAddReplace) GetMessageName() string {
+ return "acl_add_replace"
+}
+func (*ACLAddReplace) GetCrcString() string {
+ return "e839997e"
+}
+func (*ACLAddReplace) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLAddReplaceReply represents VPP binary API message 'acl_add_replace_reply':
+type ACLAddReplaceReply struct {
+ ACLIndex uint32
+ Retval int32
+}
+
+func (*ACLAddReplaceReply) GetMessageName() string {
+ return "acl_add_replace_reply"
+}
+func (*ACLAddReplaceReply) GetCrcString() string {
+ return "ac407b0c"
+}
+func (*ACLAddReplaceReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLDel represents VPP binary API message 'acl_del':
+type ACLDel struct {
+ ACLIndex uint32
+}
+
+func (*ACLDel) GetMessageName() string {
+ return "acl_del"
+}
+func (*ACLDel) GetCrcString() string {
+ return "ef34fea4"
+}
+func (*ACLDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLDelReply represents VPP binary API message 'acl_del_reply':
+type ACLDelReply struct {
+ Retval int32
+}
+
+func (*ACLDelReply) GetMessageName() string {
+ return "acl_del_reply"
+}
+func (*ACLDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*ACLDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLDetails represents VPP binary API message 'acl_details':
+type ACLDetails struct {
+ ACLIndex uint32
+ Tag []byte `struc:"[64]byte"`
+ Count uint32 `struc:"sizeof=R"`
+ R []ACLRule
+}
+
+func (*ACLDetails) GetMessageName() string {
+ return "acl_details"
+}
+func (*ACLDetails) GetCrcString() string {
+ return "5bd895be"
+}
+func (*ACLDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLDump represents VPP binary API message 'acl_dump':
+type ACLDump struct {
+ ACLIndex uint32
+}
+
+func (*ACLDump) GetMessageName() string {
+ return "acl_dump"
+}
+func (*ACLDump) GetCrcString() string {
+ return "ef34fea4"
+}
+func (*ACLDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLInterfaceAddDel represents VPP binary API message 'acl_interface_add_del':
+type ACLInterfaceAddDel struct {
+ IsAdd uint8
+ IsInput uint8
+ SwIfIndex uint32
+ ACLIndex uint32
+}
+
+func (*ACLInterfaceAddDel) GetMessageName() string {
+ return "acl_interface_add_del"
+}
+func (*ACLInterfaceAddDel) GetCrcString() string {
+ return "0b2aedd1"
+}
+func (*ACLInterfaceAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLInterfaceAddDelReply represents VPP binary API message 'acl_interface_add_del_reply':
+type ACLInterfaceAddDelReply struct {
+ Retval int32
+}
+
+func (*ACLInterfaceAddDelReply) GetMessageName() string {
+ return "acl_interface_add_del_reply"
+}
+func (*ACLInterfaceAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*ACLInterfaceAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLInterfaceEtypeWhitelistDetails represents VPP binary API message 'acl_interface_etype_whitelist_details':
+type ACLInterfaceEtypeWhitelistDetails struct {
+ SwIfIndex uint32
+ Count uint8 `struc:"sizeof=Whitelist"`
+ NInput uint8
+ Whitelist []uint16
+}
+
+func (*ACLInterfaceEtypeWhitelistDetails) GetMessageName() string {
+ return "acl_interface_etype_whitelist_details"
+}
+func (*ACLInterfaceEtypeWhitelistDetails) GetCrcString() string {
+ return "6a5d4e81"
+}
+func (*ACLInterfaceEtypeWhitelistDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLInterfaceEtypeWhitelistDump represents VPP binary API message 'acl_interface_etype_whitelist_dump':
+type ACLInterfaceEtypeWhitelistDump struct {
+ SwIfIndex uint32
+}
+
+func (*ACLInterfaceEtypeWhitelistDump) GetMessageName() string {
+ return "acl_interface_etype_whitelist_dump"
+}
+func (*ACLInterfaceEtypeWhitelistDump) GetCrcString() string {
+ return "529cb13f"
+}
+func (*ACLInterfaceEtypeWhitelistDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLInterfaceListDetails represents VPP binary API message 'acl_interface_list_details':
+type ACLInterfaceListDetails struct {
+ SwIfIndex uint32
+ Count uint8 `struc:"sizeof=Acls"`
+ NInput uint8
+ Acls []uint32
+}
+
+func (*ACLInterfaceListDetails) GetMessageName() string {
+ return "acl_interface_list_details"
+}
+func (*ACLInterfaceListDetails) GetCrcString() string {
+ return "d5e80809"
+}
+func (*ACLInterfaceListDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLInterfaceListDump represents VPP binary API message 'acl_interface_list_dump':
+type ACLInterfaceListDump struct {
+ SwIfIndex uint32
+}
+
+func (*ACLInterfaceListDump) GetMessageName() string {
+ return "acl_interface_list_dump"
+}
+func (*ACLInterfaceListDump) GetCrcString() string {
+ return "529cb13f"
+}
+func (*ACLInterfaceListDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLInterfaceSetACLList represents VPP binary API message 'acl_interface_set_acl_list':
+type ACLInterfaceSetACLList struct {
+ SwIfIndex uint32
+ Count uint8 `struc:"sizeof=Acls"`
+ NInput uint8
+ Acls []uint32
+}
+
+func (*ACLInterfaceSetACLList) GetMessageName() string {
+ return "acl_interface_set_acl_list"
+}
+func (*ACLInterfaceSetACLList) GetCrcString() string {
+ return "8baece38"
+}
+func (*ACLInterfaceSetACLList) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLInterfaceSetACLListReply represents VPP binary API message 'acl_interface_set_acl_list_reply':
+type ACLInterfaceSetACLListReply struct {
+ Retval int32
+}
+
+func (*ACLInterfaceSetACLListReply) GetMessageName() string {
+ return "acl_interface_set_acl_list_reply"
+}
+func (*ACLInterfaceSetACLListReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*ACLInterfaceSetACLListReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLInterfaceSetEtypeWhitelist represents VPP binary API message 'acl_interface_set_etype_whitelist':
+type ACLInterfaceSetEtypeWhitelist struct {
+ SwIfIndex uint32
+ Count uint8 `struc:"sizeof=Whitelist"`
+ NInput uint8
+ Whitelist []uint16
+}
+
+func (*ACLInterfaceSetEtypeWhitelist) GetMessageName() string {
+ return "acl_interface_set_etype_whitelist"
+}
+func (*ACLInterfaceSetEtypeWhitelist) GetCrcString() string {
+ return "f515efc5"
+}
+func (*ACLInterfaceSetEtypeWhitelist) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLInterfaceSetEtypeWhitelistReply represents VPP binary API message 'acl_interface_set_etype_whitelist_reply':
+type ACLInterfaceSetEtypeWhitelistReply struct {
+ Retval int32
+}
+
+func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageName() string {
+ return "acl_interface_set_etype_whitelist_reply"
+}
+func (*ACLInterfaceSetEtypeWhitelistReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*ACLInterfaceSetEtypeWhitelistReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLPluginControlPing represents VPP binary API message 'acl_plugin_control_ping':
+type ACLPluginControlPing struct{}
+
+func (*ACLPluginControlPing) GetMessageName() string {
+ return "acl_plugin_control_ping"
+}
+func (*ACLPluginControlPing) GetCrcString() string {
+ return "51077d14"
+}
+func (*ACLPluginControlPing) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLPluginControlPingReply represents VPP binary API message 'acl_plugin_control_ping_reply':
+type ACLPluginControlPingReply struct {
+ Retval int32
+ ClientIndex uint32
+ VpePID uint32
+}
+
+func (*ACLPluginControlPingReply) GetMessageName() string {
+ return "acl_plugin_control_ping_reply"
+}
+func (*ACLPluginControlPingReply) GetCrcString() string {
+ return "f6b0b8ca"
+}
+func (*ACLPluginControlPingReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLPluginGetConnTableMaxEntries represents VPP binary API message 'acl_plugin_get_conn_table_max_entries':
+type ACLPluginGetConnTableMaxEntries struct{}
+
+func (*ACLPluginGetConnTableMaxEntries) GetMessageName() string {
+ return "acl_plugin_get_conn_table_max_entries"
+}
+func (*ACLPluginGetConnTableMaxEntries) GetCrcString() string {
+ return "51077d14"
+}
+func (*ACLPluginGetConnTableMaxEntries) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLPluginGetConnTableMaxEntriesReply represents VPP binary API message 'acl_plugin_get_conn_table_max_entries_reply':
+type ACLPluginGetConnTableMaxEntriesReply struct {
+ ConnTableMaxEntries uint64
+}
+
+func (*ACLPluginGetConnTableMaxEntriesReply) GetMessageName() string {
+ return "acl_plugin_get_conn_table_max_entries_reply"
+}
+func (*ACLPluginGetConnTableMaxEntriesReply) GetCrcString() string {
+ return "7a096d3d"
+}
+func (*ACLPluginGetConnTableMaxEntriesReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ACLPluginGetVersion represents VPP binary API message 'acl_plugin_get_version':
+type ACLPluginGetVersion struct{}
+
+func (*ACLPluginGetVersion) GetMessageName() string {
+ return "acl_plugin_get_version"
+}
+func (*ACLPluginGetVersion) GetCrcString() string {
+ return "51077d14"
+}
+func (*ACLPluginGetVersion) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ACLPluginGetVersionReply represents VPP binary API message 'acl_plugin_get_version_reply':
+type ACLPluginGetVersionReply struct {
+ Major uint32
+ Minor uint32
+}
+
+func (*ACLPluginGetVersionReply) GetMessageName() string {
+ return "acl_plugin_get_version_reply"
+}
+func (*ACLPluginGetVersionReply) GetCrcString() string {
+ return "9b32cf86"
+}
+func (*ACLPluginGetVersionReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLAdd represents VPP binary API message 'macip_acl_add':
+type MacipACLAdd struct {
+ Tag []byte `struc:"[64]byte"`
+ Count uint32 `struc:"sizeof=R"`
+ R []MacipACLRule
+}
+
+func (*MacipACLAdd) GetMessageName() string {
+ return "macip_acl_add"
+}
+func (*MacipACLAdd) GetCrcString() string {
+ return "b3d3d65a"
+}
+func (*MacipACLAdd) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MacipACLAddReplace represents VPP binary API message 'macip_acl_add_replace':
+type MacipACLAddReplace struct {
+ ACLIndex uint32
+ Tag []byte `struc:"[64]byte"`
+ Count uint32 `struc:"sizeof=R"`
+ R []MacipACLRule
+}
+
+func (*MacipACLAddReplace) GetMessageName() string {
+ return "macip_acl_add_replace"
+}
+func (*MacipACLAddReplace) GetCrcString() string {
+ return "a0e8c01b"
+}
+func (*MacipACLAddReplace) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MacipACLAddReplaceReply represents VPP binary API message 'macip_acl_add_replace_reply':
+type MacipACLAddReplaceReply struct {
+ ACLIndex uint32
+ Retval int32
+}
+
+func (*MacipACLAddReplaceReply) GetMessageName() string {
+ return "macip_acl_add_replace_reply"
+}
+func (*MacipACLAddReplaceReply) GetCrcString() string {
+ return "ac407b0c"
+}
+func (*MacipACLAddReplaceReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLAddReply represents VPP binary API message 'macip_acl_add_reply':
+type MacipACLAddReply struct {
+ ACLIndex uint32
+ Retval int32
+}
+
+func (*MacipACLAddReply) GetMessageName() string {
+ return "macip_acl_add_reply"
+}
+func (*MacipACLAddReply) GetCrcString() string {
+ return "ac407b0c"
+}
+func (*MacipACLAddReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLDel represents VPP binary API message 'macip_acl_del':
+type MacipACLDel struct {
+ ACLIndex uint32
+}
+
+func (*MacipACLDel) GetMessageName() string {
+ return "macip_acl_del"
+}
+func (*MacipACLDel) GetCrcString() string {
+ return "ef34fea4"
+}
+func (*MacipACLDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MacipACLDelReply represents VPP binary API message 'macip_acl_del_reply':
+type MacipACLDelReply struct {
+ Retval int32
+}
+
+func (*MacipACLDelReply) GetMessageName() string {
+ return "macip_acl_del_reply"
+}
+func (*MacipACLDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MacipACLDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLDetails represents VPP binary API message 'macip_acl_details':
+type MacipACLDetails struct {
+ ACLIndex uint32
+ Tag []byte `struc:"[64]byte"`
+ Count uint32 `struc:"sizeof=R"`
+ R []MacipACLRule
+}
+
+func (*MacipACLDetails) GetMessageName() string {
+ return "macip_acl_details"
+}
+func (*MacipACLDetails) GetCrcString() string {
+ return "dd2b55ba"
+}
+func (*MacipACLDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLDump represents VPP binary API message 'macip_acl_dump':
+type MacipACLDump struct {
+ ACLIndex uint32
+}
+
+func (*MacipACLDump) GetMessageName() string {
+ return "macip_acl_dump"
+}
+func (*MacipACLDump) GetCrcString() string {
+ return "ef34fea4"
+}
+func (*MacipACLDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MacipACLInterfaceAddDel represents VPP binary API message 'macip_acl_interface_add_del':
+type MacipACLInterfaceAddDel struct {
+ IsAdd uint8
+ SwIfIndex uint32
+ ACLIndex uint32
+}
+
+func (*MacipACLInterfaceAddDel) GetMessageName() string {
+ return "macip_acl_interface_add_del"
+}
+func (*MacipACLInterfaceAddDel) GetCrcString() string {
+ return "6a6be97c"
+}
+func (*MacipACLInterfaceAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MacipACLInterfaceAddDelReply represents VPP binary API message 'macip_acl_interface_add_del_reply':
+type MacipACLInterfaceAddDelReply struct {
+ Retval int32
+}
+
+func (*MacipACLInterfaceAddDelReply) GetMessageName() string {
+ return "macip_acl_interface_add_del_reply"
+}
+func (*MacipACLInterfaceAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MacipACLInterfaceAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLInterfaceGet represents VPP binary API message 'macip_acl_interface_get':
+type MacipACLInterfaceGet struct{}
+
+func (*MacipACLInterfaceGet) GetMessageName() string {
+ return "macip_acl_interface_get"
+}
+func (*MacipACLInterfaceGet) GetCrcString() string {
+ return "51077d14"
+}
+func (*MacipACLInterfaceGet) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MacipACLInterfaceGetReply represents VPP binary API message 'macip_acl_interface_get_reply':
+type MacipACLInterfaceGetReply struct {
+ Count uint32 `struc:"sizeof=Acls"`
+ Acls []uint32
+}
+
+func (*MacipACLInterfaceGetReply) GetMessageName() string {
+ return "macip_acl_interface_get_reply"
+}
+func (*MacipACLInterfaceGetReply) GetCrcString() string {
+ return "accf9b05"
+}
+func (*MacipACLInterfaceGetReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLInterfaceListDetails represents VPP binary API message 'macip_acl_interface_list_details':
+type MacipACLInterfaceListDetails struct {
+ SwIfIndex uint32
+ Count uint8 `struc:"sizeof=Acls"`
+ Acls []uint32
+}
+
+func (*MacipACLInterfaceListDetails) GetMessageName() string {
+ return "macip_acl_interface_list_details"
+}
+func (*MacipACLInterfaceListDetails) GetCrcString() string {
+ return "29783fa0"
+}
+func (*MacipACLInterfaceListDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MacipACLInterfaceListDump represents VPP binary API message 'macip_acl_interface_list_dump':
+type MacipACLInterfaceListDump struct {
+ SwIfIndex uint32
+}
+
+func (*MacipACLInterfaceListDump) GetMessageName() string {
+ return "macip_acl_interface_list_dump"
+}
+func (*MacipACLInterfaceListDump) GetCrcString() string {
+ return "529cb13f"
+}
+func (*MacipACLInterfaceListDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func init() {
+ api.RegisterMessage((*ACLAddReplace)(nil), "acl.ACLAddReplace")
+ api.RegisterMessage((*ACLAddReplaceReply)(nil), "acl.ACLAddReplaceReply")
+ api.RegisterMessage((*ACLDel)(nil), "acl.ACLDel")
+ api.RegisterMessage((*ACLDelReply)(nil), "acl.ACLDelReply")
+ api.RegisterMessage((*ACLDetails)(nil), "acl.ACLDetails")
+ api.RegisterMessage((*ACLDump)(nil), "acl.ACLDump")
+ api.RegisterMessage((*ACLInterfaceAddDel)(nil), "acl.ACLInterfaceAddDel")
+ api.RegisterMessage((*ACLInterfaceAddDelReply)(nil), "acl.ACLInterfaceAddDelReply")
+ api.RegisterMessage((*ACLInterfaceEtypeWhitelistDetails)(nil), "acl.ACLInterfaceEtypeWhitelistDetails")
+ api.RegisterMessage((*ACLInterfaceEtypeWhitelistDump)(nil), "acl.ACLInterfaceEtypeWhitelistDump")
+ api.RegisterMessage((*ACLInterfaceListDetails)(nil), "acl.ACLInterfaceListDetails")
+ api.RegisterMessage((*ACLInterfaceListDump)(nil), "acl.ACLInterfaceListDump")
+ api.RegisterMessage((*ACLInterfaceSetACLList)(nil), "acl.ACLInterfaceSetACLList")
+ api.RegisterMessage((*ACLInterfaceSetACLListReply)(nil), "acl.ACLInterfaceSetACLListReply")
+ api.RegisterMessage((*ACLInterfaceSetEtypeWhitelist)(nil), "acl.ACLInterfaceSetEtypeWhitelist")
+ api.RegisterMessage((*ACLInterfaceSetEtypeWhitelistReply)(nil), "acl.ACLInterfaceSetEtypeWhitelistReply")
+ api.RegisterMessage((*ACLPluginControlPing)(nil), "acl.ACLPluginControlPing")
+ api.RegisterMessage((*ACLPluginControlPingReply)(nil), "acl.ACLPluginControlPingReply")
+ api.RegisterMessage((*ACLPluginGetConnTableMaxEntries)(nil), "acl.ACLPluginGetConnTableMaxEntries")
+ api.RegisterMessage((*ACLPluginGetConnTableMaxEntriesReply)(nil), "acl.ACLPluginGetConnTableMaxEntriesReply")
+ api.RegisterMessage((*ACLPluginGetVersion)(nil), "acl.ACLPluginGetVersion")
+ api.RegisterMessage((*ACLPluginGetVersionReply)(nil), "acl.ACLPluginGetVersionReply")
+ api.RegisterMessage((*MacipACLAdd)(nil), "acl.MacipACLAdd")
+ api.RegisterMessage((*MacipACLAddReplace)(nil), "acl.MacipACLAddReplace")
+ api.RegisterMessage((*MacipACLAddReplaceReply)(nil), "acl.MacipACLAddReplaceReply")
+ api.RegisterMessage((*MacipACLAddReply)(nil), "acl.MacipACLAddReply")
+ api.RegisterMessage((*MacipACLDel)(nil), "acl.MacipACLDel")
+ api.RegisterMessage((*MacipACLDelReply)(nil), "acl.MacipACLDelReply")
+ api.RegisterMessage((*MacipACLDetails)(nil), "acl.MacipACLDetails")
+ api.RegisterMessage((*MacipACLDump)(nil), "acl.MacipACLDump")
+ api.RegisterMessage((*MacipACLInterfaceAddDel)(nil), "acl.MacipACLInterfaceAddDel")
+ api.RegisterMessage((*MacipACLInterfaceAddDelReply)(nil), "acl.MacipACLInterfaceAddDelReply")
+ api.RegisterMessage((*MacipACLInterfaceGet)(nil), "acl.MacipACLInterfaceGet")
+ api.RegisterMessage((*MacipACLInterfaceGetReply)(nil), "acl.MacipACLInterfaceGetReply")
+ api.RegisterMessage((*MacipACLInterfaceListDetails)(nil), "acl.MacipACLInterfaceListDetails")
+ api.RegisterMessage((*MacipACLInterfaceListDump)(nil), "acl.MacipACLInterfaceListDump")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*ACLAddReplace)(nil),
+ (*ACLAddReplaceReply)(nil),
+ (*ACLDel)(nil),
+ (*ACLDelReply)(nil),
+ (*ACLDetails)(nil),
+ (*ACLDump)(nil),
+ (*ACLInterfaceAddDel)(nil),
+ (*ACLInterfaceAddDelReply)(nil),
+ (*ACLInterfaceEtypeWhitelistDetails)(nil),
+ (*ACLInterfaceEtypeWhitelistDump)(nil),
+ (*ACLInterfaceListDetails)(nil),
+ (*ACLInterfaceListDump)(nil),
+ (*ACLInterfaceSetACLList)(nil),
+ (*ACLInterfaceSetACLListReply)(nil),
+ (*ACLInterfaceSetEtypeWhitelist)(nil),
+ (*ACLInterfaceSetEtypeWhitelistReply)(nil),
+ (*ACLPluginControlPing)(nil),
+ (*ACLPluginControlPingReply)(nil),
+ (*ACLPluginGetConnTableMaxEntries)(nil),
+ (*ACLPluginGetConnTableMaxEntriesReply)(nil),
+ (*ACLPluginGetVersion)(nil),
+ (*ACLPluginGetVersionReply)(nil),
+ (*MacipACLAdd)(nil),
+ (*MacipACLAddReplace)(nil),
+ (*MacipACLAddReplaceReply)(nil),
+ (*MacipACLAddReply)(nil),
+ (*MacipACLDel)(nil),
+ (*MacipACLDelReply)(nil),
+ (*MacipACLDetails)(nil),
+ (*MacipACLDump)(nil),
+ (*MacipACLInterfaceAddDel)(nil),
+ (*MacipACLInterfaceAddDelReply)(nil),
+ (*MacipACLInterfaceGet)(nil),
+ (*MacipACLInterfaceGetReply)(nil),
+ (*MacipACLInterfaceListDetails)(nil),
+ (*MacipACLInterfaceListDump)(nil),
+ }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+ DumpACL(ctx context.Context, in *ACLDump) ([]*ACLDetails, error)
+ DumpACLInterfaceEtypeWhitelist(ctx context.Context, in *ACLInterfaceEtypeWhitelistDump) ([]*ACLInterfaceEtypeWhitelistDetails, error)
+ DumpACLInterfaceList(ctx context.Context, in *ACLInterfaceListDump) ([]*ACLInterfaceListDetails, error)
+ DumpMacipACL(ctx context.Context, in *MacipACLDump) ([]*MacipACLDetails, error)
+ DumpMacipACLInterfaceList(ctx context.Context, in *MacipACLInterfaceListDump) ([]*MacipACLInterfaceListDetails, error)
+ ACLAddReplace(ctx context.Context, in *ACLAddReplace) (*ACLAddReplaceReply, error)
+ ACLDel(ctx context.Context, in *ACLDel) (*ACLDelReply, error)
+ ACLInterfaceAddDel(ctx context.Context, in *ACLInterfaceAddDel) (*ACLInterfaceAddDelReply, error)
+ ACLInterfaceSetACLList(ctx context.Context, in *ACLInterfaceSetACLList) (*ACLInterfaceSetACLListReply, error)
+ ACLInterfaceSetEtypeWhitelist(ctx context.Context, in *ACLInterfaceSetEtypeWhitelist) (*ACLInterfaceSetEtypeWhitelistReply, error)
+ ACLPluginControlPing(ctx context.Context, in *ACLPluginControlPing) (*ACLPluginControlPingReply, error)
+ ACLPluginGetConnTableMaxEntries(ctx context.Context, in *ACLPluginGetConnTableMaxEntries) (*ACLPluginGetConnTableMaxEntriesReply, error)
+ ACLPluginGetVersion(ctx context.Context, in *ACLPluginGetVersion) (*ACLPluginGetVersionReply, error)
+ MacipACLAdd(ctx context.Context, in *MacipACLAdd) (*MacipACLAddReply, error)
+ MacipACLAddReplace(ctx context.Context, in *MacipACLAddReplace) (*MacipACLAddReplaceReply, error)
+ MacipACLDel(ctx context.Context, in *MacipACLDel) (*MacipACLDelReply, error)
+ MacipACLInterfaceAddDel(ctx context.Context, in *MacipACLInterfaceAddDel) (*MacipACLInterfaceAddDelReply, error)
+ MacipACLInterfaceGet(ctx context.Context, in *MacipACLInterfaceGet) (*MacipACLInterfaceGetReply, error)
+}
+
+type service struct {
+ ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+ return &service{ch}
+}
+
+func (c *service) DumpACL(ctx context.Context, in *ACLDump) ([]*ACLDetails, error) {
+ var dump []*ACLDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(ACLDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpACLInterfaceEtypeWhitelist(ctx context.Context, in *ACLInterfaceEtypeWhitelistDump) ([]*ACLInterfaceEtypeWhitelistDetails, error) {
+ var dump []*ACLInterfaceEtypeWhitelistDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(ACLInterfaceEtypeWhitelistDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpACLInterfaceList(ctx context.Context, in *ACLInterfaceListDump) ([]*ACLInterfaceListDetails, error) {
+ var dump []*ACLInterfaceListDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(ACLInterfaceListDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpMacipACL(ctx context.Context, in *MacipACLDump) ([]*MacipACLDetails, error) {
+ var dump []*MacipACLDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(MacipACLDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpMacipACLInterfaceList(ctx context.Context, in *MacipACLInterfaceListDump) ([]*MacipACLInterfaceListDetails, error) {
+ var dump []*MacipACLInterfaceListDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(MacipACLInterfaceListDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) ACLAddReplace(ctx context.Context, in *ACLAddReplace) (*ACLAddReplaceReply, error) {
+ out := new(ACLAddReplaceReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ACLDel(ctx context.Context, in *ACLDel) (*ACLDelReply, error) {
+ out := new(ACLDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ACLInterfaceAddDel(ctx context.Context, in *ACLInterfaceAddDel) (*ACLInterfaceAddDelReply, error) {
+ out := new(ACLInterfaceAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ACLInterfaceSetACLList(ctx context.Context, in *ACLInterfaceSetACLList) (*ACLInterfaceSetACLListReply, error) {
+ out := new(ACLInterfaceSetACLListReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ACLInterfaceSetEtypeWhitelist(ctx context.Context, in *ACLInterfaceSetEtypeWhitelist) (*ACLInterfaceSetEtypeWhitelistReply, error) {
+ out := new(ACLInterfaceSetEtypeWhitelistReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ACLPluginControlPing(ctx context.Context, in *ACLPluginControlPing) (*ACLPluginControlPingReply, error) {
+ out := new(ACLPluginControlPingReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ACLPluginGetConnTableMaxEntries(ctx context.Context, in *ACLPluginGetConnTableMaxEntries) (*ACLPluginGetConnTableMaxEntriesReply, error) {
+ out := new(ACLPluginGetConnTableMaxEntriesReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ACLPluginGetVersion(ctx context.Context, in *ACLPluginGetVersion) (*ACLPluginGetVersionReply, error) {
+ out := new(ACLPluginGetVersionReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MacipACLAdd(ctx context.Context, in *MacipACLAdd) (*MacipACLAddReply, error) {
+ out := new(MacipACLAddReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MacipACLAddReplace(ctx context.Context, in *MacipACLAddReplace) (*MacipACLAddReplaceReply, error) {
+ out := new(MacipACLAddReplaceReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MacipACLDel(ctx context.Context, in *MacipACLDel) (*MacipACLDelReply, error) {
+ out := new(MacipACLDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MacipACLInterfaceAddDel(ctx context.Context, in *MacipACLInterfaceAddDel) (*MacipACLInterfaceAddDelReply, error) {
+ out := new(MacipACLInterfaceAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MacipACLInterfaceGet(ctx context.Context, in *MacipACLInterfaceGet) (*MacipACLInterfaceGetReply, error) {
+ out := new(MacipACLInterfaceGetReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
diff --git a/examples/binapi/af_packet/af_packet.ba.go b/examples/binapi/af_packet/af_packet.ba.go
new file mode 100644
index 0000000..96fd02a
--- /dev/null
+++ b/examples/binapi/af_packet/af_packet.ba.go
@@ -0,0 +1,249 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/core/af_packet.api.json
+
+/*
+Package af_packet is a generated from VPP binary API module 'af_packet'.
+
+ The af_packet module consists of:
+ 8 messages
+ 4 services
+*/
+package af_packet
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// 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.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+ // ModuleName is the name of this module.
+ ModuleName = "af_packet"
+ // APIVersion is the API version of this module.
+ APIVersion = "1.0.0"
+ // VersionCrc is the CRC of this module.
+ VersionCrc = 0x206563c
+)
+
+/* Messages */
+
+// AfPacketCreate represents VPP binary API message 'af_packet_create':
+type AfPacketCreate struct {
+ HostIfName []byte `struc:"[64]byte"`
+ HwAddr []byte `struc:"[6]byte"`
+ UseRandomHwAddr uint8
+}
+
+func (*AfPacketCreate) GetMessageName() string {
+ return "af_packet_create"
+}
+func (*AfPacketCreate) GetCrcString() string {
+ return "6d5d30d6"
+}
+func (*AfPacketCreate) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// AfPacketCreateReply represents VPP binary API message 'af_packet_create_reply':
+type AfPacketCreateReply struct {
+ Retval int32
+ SwIfIndex uint32
+}
+
+func (*AfPacketCreateReply) GetMessageName() string {
+ return "af_packet_create_reply"
+}
+func (*AfPacketCreateReply) GetCrcString() string {
+ return "fda5941f"
+}
+func (*AfPacketCreateReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// AfPacketDelete represents VPP binary API message 'af_packet_delete':
+type AfPacketDelete struct {
+ HostIfName []byte `struc:"[64]byte"`
+}
+
+func (*AfPacketDelete) GetMessageName() string {
+ return "af_packet_delete"
+}
+func (*AfPacketDelete) GetCrcString() string {
+ return "3efceda3"
+}
+func (*AfPacketDelete) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// AfPacketDeleteReply represents VPP binary API message 'af_packet_delete_reply':
+type AfPacketDeleteReply struct {
+ Retval int32
+}
+
+func (*AfPacketDeleteReply) GetMessageName() string {
+ return "af_packet_delete_reply"
+}
+func (*AfPacketDeleteReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*AfPacketDeleteReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// AfPacketDetails represents VPP binary API message 'af_packet_details':
+type AfPacketDetails struct {
+ SwIfIndex uint32
+ HostIfName []byte `struc:"[64]byte"`
+}
+
+func (*AfPacketDetails) GetMessageName() string {
+ return "af_packet_details"
+}
+func (*AfPacketDetails) GetCrcString() string {
+ return "057205fa"
+}
+func (*AfPacketDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// AfPacketDump represents VPP binary API message 'af_packet_dump':
+type AfPacketDump struct{}
+
+func (*AfPacketDump) GetMessageName() string {
+ return "af_packet_dump"
+}
+func (*AfPacketDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*AfPacketDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// AfPacketSetL4CksumOffload represents VPP binary API message 'af_packet_set_l4_cksum_offload':
+type AfPacketSetL4CksumOffload struct {
+ SwIfIndex uint8
+ Set uint8
+}
+
+func (*AfPacketSetL4CksumOffload) GetMessageName() string {
+ return "af_packet_set_l4_cksum_offload"
+}
+func (*AfPacketSetL4CksumOffload) GetCrcString() string {
+ return "86538585"
+}
+func (*AfPacketSetL4CksumOffload) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// AfPacketSetL4CksumOffloadReply represents VPP binary API message 'af_packet_set_l4_cksum_offload_reply':
+type AfPacketSetL4CksumOffloadReply struct {
+ Retval int32
+}
+
+func (*AfPacketSetL4CksumOffloadReply) GetMessageName() string {
+ return "af_packet_set_l4_cksum_offload_reply"
+}
+func (*AfPacketSetL4CksumOffloadReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*AfPacketSetL4CksumOffloadReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func init() {
+ api.RegisterMessage((*AfPacketCreate)(nil), "af_packet.AfPacketCreate")
+ api.RegisterMessage((*AfPacketCreateReply)(nil), "af_packet.AfPacketCreateReply")
+ api.RegisterMessage((*AfPacketDelete)(nil), "af_packet.AfPacketDelete")
+ api.RegisterMessage((*AfPacketDeleteReply)(nil), "af_packet.AfPacketDeleteReply")
+ api.RegisterMessage((*AfPacketDetails)(nil), "af_packet.AfPacketDetails")
+ api.RegisterMessage((*AfPacketDump)(nil), "af_packet.AfPacketDump")
+ api.RegisterMessage((*AfPacketSetL4CksumOffload)(nil), "af_packet.AfPacketSetL4CksumOffload")
+ api.RegisterMessage((*AfPacketSetL4CksumOffloadReply)(nil), "af_packet.AfPacketSetL4CksumOffloadReply")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*AfPacketCreate)(nil),
+ (*AfPacketCreateReply)(nil),
+ (*AfPacketDelete)(nil),
+ (*AfPacketDeleteReply)(nil),
+ (*AfPacketDetails)(nil),
+ (*AfPacketDump)(nil),
+ (*AfPacketSetL4CksumOffload)(nil),
+ (*AfPacketSetL4CksumOffloadReply)(nil),
+ }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+ DumpAfPacket(ctx context.Context, in *AfPacketDump) ([]*AfPacketDetails, error)
+ AfPacketCreate(ctx context.Context, in *AfPacketCreate) (*AfPacketCreateReply, error)
+ AfPacketDelete(ctx context.Context, in *AfPacketDelete) (*AfPacketDeleteReply, error)
+ AfPacketSetL4CksumOffload(ctx context.Context, in *AfPacketSetL4CksumOffload) (*AfPacketSetL4CksumOffloadReply, error)
+}
+
+type service struct {
+ ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+ return &service{ch}
+}
+
+func (c *service) DumpAfPacket(ctx context.Context, in *AfPacketDump) ([]*AfPacketDetails, error) {
+ var dump []*AfPacketDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(AfPacketDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) AfPacketCreate(ctx context.Context, in *AfPacketCreate) (*AfPacketCreateReply, error) {
+ out := new(AfPacketCreateReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) AfPacketDelete(ctx context.Context, in *AfPacketDelete) (*AfPacketDeleteReply, error) {
+ out := new(AfPacketDeleteReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) AfPacketSetL4CksumOffload(ctx context.Context, in *AfPacketSetL4CksumOffload) (*AfPacketSetL4CksumOffloadReply, error) {
+ out := new(AfPacketSetL4CksumOffloadReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
diff --git a/examples/binapi/gen.go b/examples/binapi/gen.go
new file mode 100644
index 0000000..40fb25d
--- /dev/null
+++ b/examples/binapi/gen.go
@@ -0,0 +1,18 @@
+package binapi
+
+// Generate Go code from the VPP APIs located in the /usr/share/vpp/api directory.
+//go:generate -command binapigen binapi-generator --output-dir=. --include-services
+
+// Core
+//go:generate binapigen --input-file=/usr/share/vpp/api/core/af_packet.api.json
+//go:generate binapigen --input-file=/usr/share/vpp/api/core/interface.api.json
+//go:generate binapigen --input-file=/usr/share/vpp/api/core/ip.api.json
+//go:generate binapigen --input-file=/usr/share/vpp/api/core/memclnt.api.json
+//go:generate binapigen --input-file=/usr/share/vpp/api/core/vpe.api.json
+
+// Plugins
+//go:generate binapigen --input-file=/usr/share/vpp/api/plugins/acl.api.json
+//go:generate binapigen --input-file=/usr/share/vpp/api/plugins/memif.api.json
+
+// VPP version
+//go:generate sh -ec "dpkg-query -f '$DOLLAR{Version}' -W vpp > VPP_VERSION"
diff --git a/examples/binapi/interfaces/interfaces.ba.go b/examples/binapi/interfaces/interfaces.ba.go
new file mode 100644
index 0000000..1f369de
--- /dev/null
+++ b/examples/binapi/interfaces/interfaces.ba.go
@@ -0,0 +1,1285 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/core/interface.api.json
+
+/*
+Package interfaces is a generated from VPP binary API module 'interface'.
+
+ The interface module consists of:
+ 1 alias
+ 51 messages
+ 25 services
+*/
+package interfaces
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// 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.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+ // ModuleName is the name of this module.
+ ModuleName = "interface"
+ // APIVersion is the API version of this module.
+ APIVersion = "2.2.0"
+ // VersionCrc is the CRC of this module.
+ VersionCrc = 0x672de521
+)
+
+/* Aliases */
+
+// InterfaceIndex represents VPP binary API alias 'interface_index':
+type InterfaceIndex uint32
+
+/* Messages */
+
+// CollectDetailedInterfaceStats represents VPP binary API message 'collect_detailed_interface_stats':
+type CollectDetailedInterfaceStats struct {
+ SwIfIndex uint32
+ EnableDisable uint8
+}
+
+func (*CollectDetailedInterfaceStats) GetMessageName() string {
+ return "collect_detailed_interface_stats"
+}
+func (*CollectDetailedInterfaceStats) GetCrcString() string {
+ return "69d24598"
+}
+func (*CollectDetailedInterfaceStats) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// CollectDetailedInterfaceStatsReply represents VPP binary API message 'collect_detailed_interface_stats_reply':
+type CollectDetailedInterfaceStatsReply struct {
+ Retval int32
+}
+
+func (*CollectDetailedInterfaceStatsReply) GetMessageName() string {
+ return "collect_detailed_interface_stats_reply"
+}
+func (*CollectDetailedInterfaceStatsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*CollectDetailedInterfaceStatsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// CreateLoopback represents VPP binary API message 'create_loopback':
+type CreateLoopback struct {
+ MacAddress []byte `struc:"[6]byte"`
+}
+
+func (*CreateLoopback) GetMessageName() string {
+ return "create_loopback"
+}
+func (*CreateLoopback) GetCrcString() string {
+ return "3b54129c"
+}
+func (*CreateLoopback) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// CreateLoopbackInstance represents VPP binary API message 'create_loopback_instance':
+type CreateLoopbackInstance struct {
+ MacAddress []byte `struc:"[6]byte"`
+ IsSpecified uint8
+ UserInstance uint32
+}
+
+func (*CreateLoopbackInstance) GetMessageName() string {
+ return "create_loopback_instance"
+}
+func (*CreateLoopbackInstance) GetCrcString() string {
+ return "7bbd53b6"
+}
+func (*CreateLoopbackInstance) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// CreateLoopbackInstanceReply represents VPP binary API message 'create_loopback_instance_reply':
+type CreateLoopbackInstanceReply struct {
+ Retval int32
+ SwIfIndex uint32
+}
+
+func (*CreateLoopbackInstanceReply) GetMessageName() string {
+ return "create_loopback_instance_reply"
+}
+func (*CreateLoopbackInstanceReply) GetCrcString() string {
+ return "fda5941f"
+}
+func (*CreateLoopbackInstanceReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// CreateLoopbackReply represents VPP binary API message 'create_loopback_reply':
+type CreateLoopbackReply struct {
+ Retval int32
+ SwIfIndex uint32
+}
+
+func (*CreateLoopbackReply) GetMessageName() string {
+ return "create_loopback_reply"
+}
+func (*CreateLoopbackReply) GetCrcString() string {
+ return "fda5941f"
+}
+func (*CreateLoopbackReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// CreateSubif represents VPP binary API message 'create_subif':
+type CreateSubif struct {
+ SwIfIndex uint32
+ SubID uint32
+ NoTags uint8
+ OneTag uint8
+ TwoTags uint8
+ Dot1ad uint8
+ ExactMatch uint8
+ DefaultSub uint8
+ OuterVlanIDAny uint8
+ InnerVlanIDAny uint8
+ OuterVlanID uint16
+ InnerVlanID uint16
+}
+
+func (*CreateSubif) GetMessageName() string {
+ return "create_subif"
+}
+func (*CreateSubif) GetCrcString() string {
+ return "86cfe408"
+}
+func (*CreateSubif) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// CreateSubifReply represents VPP binary API message 'create_subif_reply':
+type CreateSubifReply struct {
+ Retval int32
+ SwIfIndex uint32
+}
+
+func (*CreateSubifReply) GetMessageName() string {
+ return "create_subif_reply"
+}
+func (*CreateSubifReply) GetCrcString() string {
+ return "fda5941f"
+}
+func (*CreateSubifReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// CreateVlanSubif represents VPP binary API message 'create_vlan_subif':
+type CreateVlanSubif struct {
+ SwIfIndex uint32
+ VlanID uint32
+}
+
+func (*CreateVlanSubif) GetMessageName() string {
+ return "create_vlan_subif"
+}
+func (*CreateVlanSubif) GetCrcString() string {
+ return "70cadeda"
+}
+func (*CreateVlanSubif) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// CreateVlanSubifReply represents VPP binary API message 'create_vlan_subif_reply':
+type CreateVlanSubifReply struct {
+ Retval int32
+ SwIfIndex uint32
+}
+
+func (*CreateVlanSubifReply) GetMessageName() string {
+ return "create_vlan_subif_reply"
+}
+func (*CreateVlanSubifReply) GetCrcString() string {
+ return "fda5941f"
+}
+func (*CreateVlanSubifReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// DeleteLoopback represents VPP binary API message 'delete_loopback':
+type DeleteLoopback struct {
+ SwIfIndex uint32
+}
+
+func (*DeleteLoopback) GetMessageName() string {
+ return "delete_loopback"
+}
+func (*DeleteLoopback) GetCrcString() string {
+ return "529cb13f"
+}
+func (*DeleteLoopback) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// DeleteLoopbackReply represents VPP binary API message 'delete_loopback_reply':
+type DeleteLoopbackReply struct {
+ Retval int32
+}
+
+func (*DeleteLoopbackReply) GetMessageName() string {
+ return "delete_loopback_reply"
+}
+func (*DeleteLoopbackReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*DeleteLoopbackReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// DeleteSubif represents VPP binary API message 'delete_subif':
+type DeleteSubif struct {
+ SwIfIndex uint32
+}
+
+func (*DeleteSubif) GetMessageName() string {
+ return "delete_subif"
+}
+func (*DeleteSubif) GetCrcString() string {
+ return "529cb13f"
+}
+func (*DeleteSubif) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// DeleteSubifReply represents VPP binary API message 'delete_subif_reply':
+type DeleteSubifReply struct {
+ Retval int32
+}
+
+func (*DeleteSubifReply) GetMessageName() string {
+ return "delete_subif_reply"
+}
+func (*DeleteSubifReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*DeleteSubifReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// HwInterfaceSetMtu represents VPP binary API message 'hw_interface_set_mtu':
+type HwInterfaceSetMtu struct {
+ SwIfIndex uint32
+ Mtu uint16
+}
+
+func (*HwInterfaceSetMtu) GetMessageName() string {
+ return "hw_interface_set_mtu"
+}
+func (*HwInterfaceSetMtu) GetCrcString() string {
+ return "132da1e7"
+}
+func (*HwInterfaceSetMtu) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// HwInterfaceSetMtuReply represents VPP binary API message 'hw_interface_set_mtu_reply':
+type HwInterfaceSetMtuReply struct {
+ Retval int32
+}
+
+func (*HwInterfaceSetMtuReply) GetMessageName() string {
+ return "hw_interface_set_mtu_reply"
+}
+func (*HwInterfaceSetMtuReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*HwInterfaceSetMtuReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// InterfaceNameRenumber represents VPP binary API message 'interface_name_renumber':
+type InterfaceNameRenumber struct {
+ SwIfIndex uint32
+ NewShowDevInstance uint32
+}
+
+func (*InterfaceNameRenumber) GetMessageName() string {
+ return "interface_name_renumber"
+}
+func (*InterfaceNameRenumber) GetCrcString() string {
+ return "39194269"
+}
+func (*InterfaceNameRenumber) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// InterfaceNameRenumberReply represents VPP binary API message 'interface_name_renumber_reply':
+type InterfaceNameRenumberReply struct {
+ Retval int32
+}
+
+func (*InterfaceNameRenumberReply) GetMessageName() string {
+ return "interface_name_renumber_reply"
+}
+func (*InterfaceNameRenumberReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*InterfaceNameRenumberReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceAddDelAddress represents VPP binary API message 'sw_interface_add_del_address':
+type SwInterfaceAddDelAddress struct {
+ SwIfIndex uint32
+ IsAdd uint8
+ IsIPv6 uint8
+ DelAll uint8
+ AddressLength uint8
+ Address []byte `struc:"[16]byte"`
+}
+
+func (*SwInterfaceAddDelAddress) GetMessageName() string {
+ return "sw_interface_add_del_address"
+}
+func (*SwInterfaceAddDelAddress) GetCrcString() string {
+ return "7b583179"
+}
+func (*SwInterfaceAddDelAddress) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceAddDelAddressReply represents VPP binary API message 'sw_interface_add_del_address_reply':
+type SwInterfaceAddDelAddressReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceAddDelAddressReply) GetMessageName() string {
+ return "sw_interface_add_del_address_reply"
+}
+func (*SwInterfaceAddDelAddressReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceAddDelAddressReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceClearStats represents VPP binary API message 'sw_interface_clear_stats':
+type SwInterfaceClearStats struct {
+ SwIfIndex uint32
+}
+
+func (*SwInterfaceClearStats) GetMessageName() string {
+ return "sw_interface_clear_stats"
+}
+func (*SwInterfaceClearStats) GetCrcString() string {
+ return "529cb13f"
+}
+func (*SwInterfaceClearStats) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceClearStatsReply represents VPP binary API message 'sw_interface_clear_stats_reply':
+type SwInterfaceClearStatsReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceClearStatsReply) GetMessageName() string {
+ return "sw_interface_clear_stats_reply"
+}
+func (*SwInterfaceClearStatsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceClearStatsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceDetails represents VPP binary API message 'sw_interface_details':
+type SwInterfaceDetails struct {
+ SwIfIndex uint32
+ SupSwIfIndex uint32
+ L2AddressLength uint32
+ L2Address []byte `struc:"[8]byte"`
+ InterfaceName []byte `struc:"[64]byte"`
+ AdminUpDown uint8
+ LinkUpDown uint8
+ LinkDuplex uint8
+ LinkSpeed uint32
+ LinkMtu uint16
+ Mtu []uint32 `struc:"[4]uint32"`
+ SubID uint32
+ SubDot1ad uint8
+ SubDot1ah uint8
+ SubNumberOfTags uint8
+ SubOuterVlanID uint16
+ SubInnerVlanID uint16
+ SubExactMatch uint8
+ SubDefault uint8
+ SubOuterVlanIDAny uint8
+ SubInnerVlanIDAny uint8
+ VtrOp uint32
+ VtrPushDot1q uint32
+ VtrTag1 uint32
+ VtrTag2 uint32
+ Tag []byte `struc:"[64]byte"`
+ OuterTag uint16
+ BDmac []byte `struc:"[6]byte"`
+ BSmac []byte `struc:"[6]byte"`
+ BVlanid uint16
+ ISid uint32
+}
+
+func (*SwInterfaceDetails) GetMessageName() string {
+ return "sw_interface_details"
+}
+func (*SwInterfaceDetails) GetCrcString() string {
+ return "e4ee7eb6"
+}
+func (*SwInterfaceDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceDump represents VPP binary API message 'sw_interface_dump':
+type SwInterfaceDump struct {
+ NameFilterValid uint8
+ NameFilter []byte `struc:"[49]byte"`
+}
+
+func (*SwInterfaceDump) GetMessageName() string {
+ return "sw_interface_dump"
+}
+func (*SwInterfaceDump) GetCrcString() string {
+ return "63f5e3b7"
+}
+func (*SwInterfaceDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceEvent represents VPP binary API message 'sw_interface_event':
+type SwInterfaceEvent struct {
+ PID uint32
+ SwIfIndex uint32
+ AdminUpDown uint8
+ LinkUpDown uint8
+ Deleted uint8
+}
+
+func (*SwInterfaceEvent) GetMessageName() string {
+ return "sw_interface_event"
+}
+func (*SwInterfaceEvent) GetCrcString() string {
+ return "bf9938e4"
+}
+func (*SwInterfaceEvent) GetMessageType() api.MessageType {
+ return api.EventMessage
+}
+
+// SwInterfaceGetMacAddress represents VPP binary API message 'sw_interface_get_mac_address':
+type SwInterfaceGetMacAddress struct {
+ SwIfIndex uint32
+}
+
+func (*SwInterfaceGetMacAddress) GetMessageName() string {
+ return "sw_interface_get_mac_address"
+}
+func (*SwInterfaceGetMacAddress) GetCrcString() string {
+ return "529cb13f"
+}
+func (*SwInterfaceGetMacAddress) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceGetMacAddressReply represents VPP binary API message 'sw_interface_get_mac_address_reply':
+type SwInterfaceGetMacAddressReply struct {
+ Retval int32
+ MacAddress []byte `struc:"[6]byte"`
+}
+
+func (*SwInterfaceGetMacAddressReply) GetMessageName() string {
+ return "sw_interface_get_mac_address_reply"
+}
+func (*SwInterfaceGetMacAddressReply) GetCrcString() string {
+ return "8ea538d3"
+}
+func (*SwInterfaceGetMacAddressReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceGetTable represents VPP binary API message 'sw_interface_get_table':
+type SwInterfaceGetTable struct {
+ SwIfIndex uint32
+ IsIPv6 uint8
+}
+
+func (*SwInterfaceGetTable) GetMessageName() string {
+ return "sw_interface_get_table"
+}
+func (*SwInterfaceGetTable) GetCrcString() string {
+ return "6b7bcd0a"
+}
+func (*SwInterfaceGetTable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceGetTableReply represents VPP binary API message 'sw_interface_get_table_reply':
+type SwInterfaceGetTableReply struct {
+ Retval int32
+ VrfID uint32
+}
+
+func (*SwInterfaceGetTableReply) GetMessageName() string {
+ return "sw_interface_get_table_reply"
+}
+func (*SwInterfaceGetTableReply) GetCrcString() string {
+ return "a6eb0109"
+}
+func (*SwInterfaceGetTableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceRxPlacementDetails represents VPP binary API message 'sw_interface_rx_placement_details':
+type SwInterfaceRxPlacementDetails struct {
+ SwIfIndex uint32
+ QueueID uint32
+ WorkerID uint32
+ Mode uint8
+}
+
+func (*SwInterfaceRxPlacementDetails) GetMessageName() string {
+ return "sw_interface_rx_placement_details"
+}
+func (*SwInterfaceRxPlacementDetails) GetCrcString() string {
+ return "0e9e33f4"
+}
+func (*SwInterfaceRxPlacementDetails) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceRxPlacementDump represents VPP binary API message 'sw_interface_rx_placement_dump':
+type SwInterfaceRxPlacementDump struct {
+ SwIfIndex uint32
+}
+
+func (*SwInterfaceRxPlacementDump) GetMessageName() string {
+ return "sw_interface_rx_placement_dump"
+}
+func (*SwInterfaceRxPlacementDump) GetCrcString() string {
+ return "529cb13f"
+}
+func (*SwInterfaceRxPlacementDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetFlags represents VPP binary API message 'sw_interface_set_flags':
+type SwInterfaceSetFlags struct {
+ SwIfIndex uint32
+ AdminUpDown uint8
+}
+
+func (*SwInterfaceSetFlags) GetMessageName() string {
+ return "sw_interface_set_flags"
+}
+func (*SwInterfaceSetFlags) GetCrcString() string {
+ return "555485f5"
+}
+func (*SwInterfaceSetFlags) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetFlagsReply represents VPP binary API message 'sw_interface_set_flags_reply':
+type SwInterfaceSetFlagsReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetFlagsReply) GetMessageName() string {
+ return "sw_interface_set_flags_reply"
+}
+func (*SwInterfaceSetFlagsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetFlagsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceSetIPDirectedBroadcast represents VPP binary API message 'sw_interface_set_ip_directed_broadcast':
+type SwInterfaceSetIPDirectedBroadcast struct {
+ SwIfIndex uint32
+ Enable uint8
+}
+
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageName() string {
+ return "sw_interface_set_ip_directed_broadcast"
+}
+func (*SwInterfaceSetIPDirectedBroadcast) GetCrcString() string {
+ return "a36fadc0"
+}
+func (*SwInterfaceSetIPDirectedBroadcast) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetIPDirectedBroadcastReply represents VPP binary API message 'sw_interface_set_ip_directed_broadcast_reply':
+type SwInterfaceSetIPDirectedBroadcastReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageName() string {
+ return "sw_interface_set_ip_directed_broadcast_reply"
+}
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceSetMacAddress represents VPP binary API message 'sw_interface_set_mac_address':
+type SwInterfaceSetMacAddress struct {
+ SwIfIndex uint32
+ MacAddress []byte `struc:"[6]byte"`
+}
+
+func (*SwInterfaceSetMacAddress) GetMessageName() string {
+ return "sw_interface_set_mac_address"
+}
+func (*SwInterfaceSetMacAddress) GetCrcString() string {
+ return "eed5dfca"
+}
+func (*SwInterfaceSetMacAddress) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetMacAddressReply represents VPP binary API message 'sw_interface_set_mac_address_reply':
+type SwInterfaceSetMacAddressReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetMacAddressReply) GetMessageName() string {
+ return "sw_interface_set_mac_address_reply"
+}
+func (*SwInterfaceSetMacAddressReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetMacAddressReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceSetMtu represents VPP binary API message 'sw_interface_set_mtu':
+type SwInterfaceSetMtu struct {
+ SwIfIndex uint32
+ Mtu []uint32 `struc:"[4]uint32"`
+}
+
+func (*SwInterfaceSetMtu) GetMessageName() string {
+ return "sw_interface_set_mtu"
+}
+func (*SwInterfaceSetMtu) GetCrcString() string {
+ return "d0008db8"
+}
+func (*SwInterfaceSetMtu) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetMtuReply represents VPP binary API message 'sw_interface_set_mtu_reply':
+type SwInterfaceSetMtuReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetMtuReply) GetMessageName() string {
+ return "sw_interface_set_mtu_reply"
+}
+func (*SwInterfaceSetMtuReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetMtuReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceSetRxMode represents VPP binary API message 'sw_interface_set_rx_mode':
+type SwInterfaceSetRxMode struct {
+ SwIfIndex uint32
+ QueueIDValid uint8
+ QueueID uint32
+ Mode uint8
+}
+
+func (*SwInterfaceSetRxMode) GetMessageName() string {
+ return "sw_interface_set_rx_mode"
+}
+func (*SwInterfaceSetRxMode) GetCrcString() string {
+ return "2a1cc58c"
+}
+func (*SwInterfaceSetRxMode) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetRxModeReply represents VPP binary API message 'sw_interface_set_rx_mode_reply':
+type SwInterfaceSetRxModeReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetRxModeReply) GetMessageName() string {
+ return "sw_interface_set_rx_mode_reply"
+}
+func (*SwInterfaceSetRxModeReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetRxModeReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceSetRxPlacement represents VPP binary API message 'sw_interface_set_rx_placement':
+type SwInterfaceSetRxPlacement struct {
+ SwIfIndex uint32
+ QueueID uint32
+ WorkerID uint32
+ IsMain uint8
+}
+
+func (*SwInterfaceSetRxPlacement) GetMessageName() string {
+ return "sw_interface_set_rx_placement"
+}
+func (*SwInterfaceSetRxPlacement) GetCrcString() string {
+ return "4ef4377d"
+}
+func (*SwInterfaceSetRxPlacement) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetRxPlacementReply represents VPP binary API message 'sw_interface_set_rx_placement_reply':
+type SwInterfaceSetRxPlacementReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetRxPlacementReply) GetMessageName() string {
+ return "sw_interface_set_rx_placement_reply"
+}
+func (*SwInterfaceSetRxPlacementReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetRxPlacementReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceSetTable represents VPP binary API message 'sw_interface_set_table':
+type SwInterfaceSetTable struct {
+ SwIfIndex uint32
+ IsIPv6 uint8
+ VrfID uint32
+}
+
+func (*SwInterfaceSetTable) GetMessageName() string {
+ return "sw_interface_set_table"
+}
+func (*SwInterfaceSetTable) GetCrcString() string {
+ return "acb25d89"
+}
+func (*SwInterfaceSetTable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetTableReply represents VPP binary API message 'sw_interface_set_table_reply':
+type SwInterfaceSetTableReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetTableReply) GetMessageName() string {
+ return "sw_interface_set_table_reply"
+}
+func (*SwInterfaceSetTableReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetTableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceSetUnnumbered represents VPP binary API message 'sw_interface_set_unnumbered':
+type SwInterfaceSetUnnumbered struct {
+ SwIfIndex uint32
+ UnnumberedSwIfIndex uint32
+ IsAdd uint8
+}
+
+func (*SwInterfaceSetUnnumbered) GetMessageName() string {
+ return "sw_interface_set_unnumbered"
+}
+func (*SwInterfaceSetUnnumbered) GetCrcString() string {
+ return "a2c1bbda"
+}
+func (*SwInterfaceSetUnnumbered) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceSetUnnumberedReply represents VPP binary API message 'sw_interface_set_unnumbered_reply':
+type SwInterfaceSetUnnumberedReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceSetUnnumberedReply) GetMessageName() string {
+ return "sw_interface_set_unnumbered_reply"
+}
+func (*SwInterfaceSetUnnumberedReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceSetUnnumberedReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceTagAddDel represents VPP binary API message 'sw_interface_tag_add_del':
+type SwInterfaceTagAddDel struct {
+ IsAdd uint8
+ SwIfIndex uint32
+ Tag []byte `struc:"[64]byte"`
+}
+
+func (*SwInterfaceTagAddDel) GetMessageName() string {
+ return "sw_interface_tag_add_del"
+}
+func (*SwInterfaceTagAddDel) GetCrcString() string {
+ return "14cc636c"
+}
+func (*SwInterfaceTagAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceTagAddDelReply represents VPP binary API message 'sw_interface_tag_add_del_reply':
+type SwInterfaceTagAddDelReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceTagAddDelReply) GetMessageName() string {
+ return "sw_interface_tag_add_del_reply"
+}
+func (*SwInterfaceTagAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceTagAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// WantInterfaceEvents represents VPP binary API message 'want_interface_events':
+type WantInterfaceEvents struct {
+ EnableDisable uint32
+ PID uint32
+}
+
+func (*WantInterfaceEvents) GetMessageName() string {
+ return "want_interface_events"
+}
+func (*WantInterfaceEvents) GetCrcString() string {
+ return "476f5a08"
+}
+func (*WantInterfaceEvents) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// WantInterfaceEventsReply represents VPP binary API message 'want_interface_events_reply':
+type WantInterfaceEventsReply struct {
+ Retval int32
+}
+
+func (*WantInterfaceEventsReply) GetMessageName() string {
+ return "want_interface_events_reply"
+}
+func (*WantInterfaceEventsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*WantInterfaceEventsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func init() {
+ api.RegisterMessage((*CollectDetailedInterfaceStats)(nil), "interface.CollectDetailedInterfaceStats")
+ api.RegisterMessage((*CollectDetailedInterfaceStatsReply)(nil), "interface.CollectDetailedInterfaceStatsReply")
+ api.RegisterMessage((*CreateLoopback)(nil), "interface.CreateLoopback")
+ api.RegisterMessage((*CreateLoopbackInstance)(nil), "interface.CreateLoopbackInstance")
+ api.RegisterMessage((*CreateLoopbackInstanceReply)(nil), "interface.CreateLoopbackInstanceReply")
+ api.RegisterMessage((*CreateLoopbackReply)(nil), "interface.CreateLoopbackReply")
+ api.RegisterMessage((*CreateSubif)(nil), "interface.CreateSubif")
+ api.RegisterMessage((*CreateSubifReply)(nil), "interface.CreateSubifReply")
+ api.RegisterMessage((*CreateVlanSubif)(nil), "interface.CreateVlanSubif")
+ api.RegisterMessage((*CreateVlanSubifReply)(nil), "interface.CreateVlanSubifReply")
+ api.RegisterMessage((*DeleteLoopback)(nil), "interface.DeleteLoopback")
+ api.RegisterMessage((*DeleteLoopbackReply)(nil), "interface.DeleteLoopbackReply")
+ api.RegisterMessage((*DeleteSubif)(nil), "interface.DeleteSubif")
+ api.RegisterMessage((*DeleteSubifReply)(nil), "interface.DeleteSubifReply")
+ api.RegisterMessage((*HwInterfaceSetMtu)(nil), "interface.HwInterfaceSetMtu")
+ api.RegisterMessage((*HwInterfaceSetMtuReply)(nil), "interface.HwInterfaceSetMtuReply")
+ api.RegisterMessage((*InterfaceNameRenumber)(nil), "interface.InterfaceNameRenumber")
+ api.RegisterMessage((*InterfaceNameRenumberReply)(nil), "interface.InterfaceNameRenumberReply")
+ api.RegisterMessage((*SwInterfaceAddDelAddress)(nil), "interface.SwInterfaceAddDelAddress")
+ api.RegisterMessage((*SwInterfaceAddDelAddressReply)(nil), "interface.SwInterfaceAddDelAddressReply")
+ api.RegisterMessage((*SwInterfaceClearStats)(nil), "interface.SwInterfaceClearStats")
+ api.RegisterMessage((*SwInterfaceClearStatsReply)(nil), "interface.SwInterfaceClearStatsReply")
+ api.RegisterMessage((*SwInterfaceDetails)(nil), "interface.SwInterfaceDetails")
+ api.RegisterMessage((*SwInterfaceDump)(nil), "interface.SwInterfaceDump")
+ api.RegisterMessage((*SwInterfaceEvent)(nil), "interface.SwInterfaceEvent")
+ api.RegisterMessage((*SwInterfaceGetMacAddress)(nil), "interface.SwInterfaceGetMacAddress")
+ api.RegisterMessage((*SwInterfaceGetMacAddressReply)(nil), "interface.SwInterfaceGetMacAddressReply")
+ api.RegisterMessage((*SwInterfaceGetTable)(nil), "interface.SwInterfaceGetTable")
+ api.RegisterMessage((*SwInterfaceGetTableReply)(nil), "interface.SwInterfaceGetTableReply")
+ api.RegisterMessage((*SwInterfaceRxPlacementDetails)(nil), "interface.SwInterfaceRxPlacementDetails")
+ api.RegisterMessage((*SwInterfaceRxPlacementDump)(nil), "interface.SwInterfaceRxPlacementDump")
+ api.RegisterMessage((*SwInterfaceSetFlags)(nil), "interface.SwInterfaceSetFlags")
+ api.RegisterMessage((*SwInterfaceSetFlagsReply)(nil), "interface.SwInterfaceSetFlagsReply")
+ api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcast)(nil), "interface.SwInterfaceSetIPDirectedBroadcast")
+ api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcastReply)(nil), "interface.SwInterfaceSetIPDirectedBroadcastReply")
+ api.RegisterMessage((*SwInterfaceSetMacAddress)(nil), "interface.SwInterfaceSetMacAddress")
+ api.RegisterMessage((*SwInterfaceSetMacAddressReply)(nil), "interface.SwInterfaceSetMacAddressReply")
+ api.RegisterMessage((*SwInterfaceSetMtu)(nil), "interface.SwInterfaceSetMtu")
+ api.RegisterMessage((*SwInterfaceSetMtuReply)(nil), "interface.SwInterfaceSetMtuReply")
+ api.RegisterMessage((*SwInterfaceSetRxMode)(nil), "interface.SwInterfaceSetRxMode")
+ api.RegisterMessage((*SwInterfaceSetRxModeReply)(nil), "interface.SwInterfaceSetRxModeReply")
+ api.RegisterMessage((*SwInterfaceSetRxPlacement)(nil), "interface.SwInterfaceSetRxPlacement")
+ api.RegisterMessage((*SwInterfaceSetRxPlacementReply)(nil), "interface.SwInterfaceSetRxPlacementReply")
+ api.RegisterMessage((*SwInterfaceSetTable)(nil), "interface.SwInterfaceSetTable")
+ api.RegisterMessage((*SwInterfaceSetTableReply)(nil), "interface.SwInterfaceSetTableReply")
+ api.RegisterMessage((*SwInterfaceSetUnnumbered)(nil), "interface.SwInterfaceSetUnnumbered")
+ api.RegisterMessage((*SwInterfaceSetUnnumberedReply)(nil), "interface.SwInterfaceSetUnnumberedReply")
+ api.RegisterMessage((*SwInterfaceTagAddDel)(nil), "interface.SwInterfaceTagAddDel")
+ api.RegisterMessage((*SwInterfaceTagAddDelReply)(nil), "interface.SwInterfaceTagAddDelReply")
+ api.RegisterMessage((*WantInterfaceEvents)(nil), "interface.WantInterfaceEvents")
+ api.RegisterMessage((*WantInterfaceEventsReply)(nil), "interface.WantInterfaceEventsReply")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*CollectDetailedInterfaceStats)(nil),
+ (*CollectDetailedInterfaceStatsReply)(nil),
+ (*CreateLoopback)(nil),
+ (*CreateLoopbackInstance)(nil),
+ (*CreateLoopbackInstanceReply)(nil),
+ (*CreateLoopbackReply)(nil),
+ (*CreateSubif)(nil),
+ (*CreateSubifReply)(nil),
+ (*CreateVlanSubif)(nil),
+ (*CreateVlanSubifReply)(nil),
+ (*DeleteLoopback)(nil),
+ (*DeleteLoopbackReply)(nil),
+ (*DeleteSubif)(nil),
+ (*DeleteSubifReply)(nil),
+ (*HwInterfaceSetMtu)(nil),
+ (*HwInterfaceSetMtuReply)(nil),
+ (*InterfaceNameRenumber)(nil),
+ (*InterfaceNameRenumberReply)(nil),
+ (*SwInterfaceAddDelAddress)(nil),
+ (*SwInterfaceAddDelAddressReply)(nil),
+ (*SwInterfaceClearStats)(nil),
+ (*SwInterfaceClearStatsReply)(nil),
+ (*SwInterfaceDetails)(nil),
+ (*SwInterfaceDump)(nil),
+ (*SwInterfaceEvent)(nil),
+ (*SwInterfaceGetMacAddress)(nil),
+ (*SwInterfaceGetMacAddressReply)(nil),
+ (*SwInterfaceGetTable)(nil),
+ (*SwInterfaceGetTableReply)(nil),
+ (*SwInterfaceRxPlacementDetails)(nil),
+ (*SwInterfaceRxPlacementDump)(nil),
+ (*SwInterfaceSetFlags)(nil),
+ (*SwInterfaceSetFlagsReply)(nil),
+ (*SwInterfaceSetIPDirectedBroadcast)(nil),
+ (*SwInterfaceSetIPDirectedBroadcastReply)(nil),
+ (*SwInterfaceSetMacAddress)(nil),
+ (*SwInterfaceSetMacAddressReply)(nil),
+ (*SwInterfaceSetMtu)(nil),
+ (*SwInterfaceSetMtuReply)(nil),
+ (*SwInterfaceSetRxMode)(nil),
+ (*SwInterfaceSetRxModeReply)(nil),
+ (*SwInterfaceSetRxPlacement)(nil),
+ (*SwInterfaceSetRxPlacementReply)(nil),
+ (*SwInterfaceSetTable)(nil),
+ (*SwInterfaceSetTableReply)(nil),
+ (*SwInterfaceSetUnnumbered)(nil),
+ (*SwInterfaceSetUnnumberedReply)(nil),
+ (*SwInterfaceTagAddDel)(nil),
+ (*SwInterfaceTagAddDelReply)(nil),
+ (*WantInterfaceEvents)(nil),
+ (*WantInterfaceEventsReply)(nil),
+ }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+ DumpSwInterface(ctx context.Context, in *SwInterfaceDump) ([]*SwInterfaceDetails, error)
+ DumpSwInterfaceRxPlacement(ctx context.Context, in *SwInterfaceRxPlacementDump) ([]*SwInterfaceRxPlacementDetails, error)
+ CollectDetailedInterfaceStats(ctx context.Context, in *CollectDetailedInterfaceStats) (*CollectDetailedInterfaceStatsReply, error)
+ CreateLoopback(ctx context.Context, in *CreateLoopback) (*CreateLoopbackReply, error)
+ CreateLoopbackInstance(ctx context.Context, in *CreateLoopbackInstance) (*CreateLoopbackInstanceReply, error)
+ CreateSubif(ctx context.Context, in *CreateSubif) (*CreateSubifReply, error)
+ CreateVlanSubif(ctx context.Context, in *CreateVlanSubif) (*CreateVlanSubifReply, error)
+ DeleteLoopback(ctx context.Context, in *DeleteLoopback) (*DeleteLoopbackReply, error)
+ DeleteSubif(ctx context.Context, in *DeleteSubif) (*DeleteSubifReply, error)
+ HwInterfaceSetMtu(ctx context.Context, in *HwInterfaceSetMtu) (*HwInterfaceSetMtuReply, error)
+ InterfaceNameRenumber(ctx context.Context, in *InterfaceNameRenumber) (*InterfaceNameRenumberReply, error)
+ SwInterfaceAddDelAddress(ctx context.Context, in *SwInterfaceAddDelAddress) (*SwInterfaceAddDelAddressReply, error)
+ SwInterfaceClearStats(ctx context.Context, in *SwInterfaceClearStats) (*SwInterfaceClearStatsReply, error)
+ SwInterfaceGetMacAddress(ctx context.Context, in *SwInterfaceGetMacAddress) (*SwInterfaceGetMacAddressReply, error)
+ SwInterfaceGetTable(ctx context.Context, in *SwInterfaceGetTable) (*SwInterfaceGetTableReply, error)
+ SwInterfaceSetFlags(ctx context.Context, in *SwInterfaceSetFlags) (*SwInterfaceSetFlagsReply, error)
+ SwInterfaceSetIPDirectedBroadcast(ctx context.Context, in *SwInterfaceSetIPDirectedBroadcast) (*SwInterfaceSetIPDirectedBroadcastReply, error)
+ SwInterfaceSetMacAddress(ctx context.Context, in *SwInterfaceSetMacAddress) (*SwInterfaceSetMacAddressReply, error)
+ SwInterfaceSetMtu(ctx context.Context, in *SwInterfaceSetMtu) (*SwInterfaceSetMtuReply, error)
+ SwInterfaceSetRxMode(ctx context.Context, in *SwInterfaceSetRxMode) (*SwInterfaceSetRxModeReply, error)
+ SwInterfaceSetRxPlacement(ctx context.Context, in *SwInterfaceSetRxPlacement) (*SwInterfaceSetRxPlacementReply, error)
+ SwInterfaceSetTable(ctx context.Context, in *SwInterfaceSetTable) (*SwInterfaceSetTableReply, error)
+ SwInterfaceSetUnnumbered(ctx context.Context, in *SwInterfaceSetUnnumbered) (*SwInterfaceSetUnnumberedReply, error)
+ SwInterfaceTagAddDel(ctx context.Context, in *SwInterfaceTagAddDel) (*SwInterfaceTagAddDelReply, error)
+ WantInterfaceEvents(ctx context.Context, in *WantInterfaceEvents) (*WantInterfaceEventsReply, error)
+}
+
+type service struct {
+ ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+ return &service{ch}
+}
+
+func (c *service) DumpSwInterface(ctx context.Context, in *SwInterfaceDump) ([]*SwInterfaceDetails, error) {
+ var dump []*SwInterfaceDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(SwInterfaceDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpSwInterfaceRxPlacement(ctx context.Context, in *SwInterfaceRxPlacementDump) ([]*SwInterfaceRxPlacementDetails, error) {
+ var dump []*SwInterfaceRxPlacementDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(SwInterfaceRxPlacementDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) CollectDetailedInterfaceStats(ctx context.Context, in *CollectDetailedInterfaceStats) (*CollectDetailedInterfaceStatsReply, error) {
+ out := new(CollectDetailedInterfaceStatsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) CreateLoopback(ctx context.Context, in *CreateLoopback) (*CreateLoopbackReply, error) {
+ out := new(CreateLoopbackReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) CreateLoopbackInstance(ctx context.Context, in *CreateLoopbackInstance) (*CreateLoopbackInstanceReply, error) {
+ out := new(CreateLoopbackInstanceReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) CreateSubif(ctx context.Context, in *CreateSubif) (*CreateSubifReply, error) {
+ out := new(CreateSubifReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) CreateVlanSubif(ctx context.Context, in *CreateVlanSubif) (*CreateVlanSubifReply, error) {
+ out := new(CreateVlanSubifReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) DeleteLoopback(ctx context.Context, in *DeleteLoopback) (*DeleteLoopbackReply, error) {
+ out := new(DeleteLoopbackReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) DeleteSubif(ctx context.Context, in *DeleteSubif) (*DeleteSubifReply, error) {
+ out := new(DeleteSubifReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) HwInterfaceSetMtu(ctx context.Context, in *HwInterfaceSetMtu) (*HwInterfaceSetMtuReply, error) {
+ out := new(HwInterfaceSetMtuReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) InterfaceNameRenumber(ctx context.Context, in *InterfaceNameRenumber) (*InterfaceNameRenumberReply, error) {
+ out := new(InterfaceNameRenumberReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceAddDelAddress(ctx context.Context, in *SwInterfaceAddDelAddress) (*SwInterfaceAddDelAddressReply, error) {
+ out := new(SwInterfaceAddDelAddressReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceClearStats(ctx context.Context, in *SwInterfaceClearStats) (*SwInterfaceClearStatsReply, error) {
+ out := new(SwInterfaceClearStatsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceGetMacAddress(ctx context.Context, in *SwInterfaceGetMacAddress) (*SwInterfaceGetMacAddressReply, error) {
+ out := new(SwInterfaceGetMacAddressReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceGetTable(ctx context.Context, in *SwInterfaceGetTable) (*SwInterfaceGetTableReply, error) {
+ out := new(SwInterfaceGetTableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetFlags(ctx context.Context, in *SwInterfaceSetFlags) (*SwInterfaceSetFlagsReply, error) {
+ out := new(SwInterfaceSetFlagsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetIPDirectedBroadcast(ctx context.Context, in *SwInterfaceSetIPDirectedBroadcast) (*SwInterfaceSetIPDirectedBroadcastReply, error) {
+ out := new(SwInterfaceSetIPDirectedBroadcastReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetMacAddress(ctx context.Context, in *SwInterfaceSetMacAddress) (*SwInterfaceSetMacAddressReply, error) {
+ out := new(SwInterfaceSetMacAddressReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetMtu(ctx context.Context, in *SwInterfaceSetMtu) (*SwInterfaceSetMtuReply, error) {
+ out := new(SwInterfaceSetMtuReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetRxMode(ctx context.Context, in *SwInterfaceSetRxMode) (*SwInterfaceSetRxModeReply, error) {
+ out := new(SwInterfaceSetRxModeReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetRxPlacement(ctx context.Context, in *SwInterfaceSetRxPlacement) (*SwInterfaceSetRxPlacementReply, error) {
+ out := new(SwInterfaceSetRxPlacementReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetTable(ctx context.Context, in *SwInterfaceSetTable) (*SwInterfaceSetTableReply, error) {
+ out := new(SwInterfaceSetTableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceSetUnnumbered(ctx context.Context, in *SwInterfaceSetUnnumbered) (*SwInterfaceSetUnnumberedReply, error) {
+ out := new(SwInterfaceSetUnnumberedReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceTagAddDel(ctx context.Context, in *SwInterfaceTagAddDel) (*SwInterfaceTagAddDelReply, error) {
+ out := new(SwInterfaceTagAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) WantInterfaceEvents(ctx context.Context, in *WantInterfaceEvents) (*WantInterfaceEventsReply, error) {
+ out := new(WantInterfaceEventsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
diff --git a/examples/binapi/ip/ip.ba.go b/examples/binapi/ip/ip.ba.go
new file mode 100644
index 0000000..71a6476
--- /dev/null
+++ b/examples/binapi/ip/ip.ba.go
@@ -0,0 +1,2638 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/core/ip.api.json
+
+/*
+Package ip is a generated from VPP binary API module 'ip'.
+
+ The ip module consists of:
+ 2 enums
+ 3 aliases
+ 12 types
+ 1 union
+ 91 messages
+ 44 services
+*/
+package ip
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// 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.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+ // ModuleName is the name of this module.
+ ModuleName = "ip"
+ // APIVersion is the API version of this module.
+ APIVersion = "2.0.0"
+ // VersionCrc is the CRC of this module.
+ VersionCrc = 0x51ac4ce0
+)
+
+/* Enums */
+
+// AddressFamily represents VPP binary API enum 'address_family':
+type AddressFamily uint32
+
+const (
+ ADDRESS_IP4 AddressFamily = 0
+ ADDRESS_IP6 AddressFamily = 1
+)
+
+var AddressFamily_name = map[uint32]string{
+ 0: "ADDRESS_IP4",
+ 1: "ADDRESS_IP6",
+}
+
+var AddressFamily_value = map[string]uint32{
+ "ADDRESS_IP4": 0,
+ "ADDRESS_IP6": 1,
+}
+
+func (x AddressFamily) String() string {
+ s, ok := AddressFamily_name[uint32(x)]
+ if ok {
+ return s
+ }
+ return strconv.Itoa(int(x))
+}
+
+// IPNeighborFlags represents VPP binary API enum 'ip_neighbor_flags':
+type IPNeighborFlags uint32
+
+const (
+ IP_API_NEIGHBOR_FLAG_NONE IPNeighborFlags = 0
+ IP_API_NEIGHBOR_FLAG_STATIC IPNeighborFlags = 1
+ IP_API_NEIGHBOR_FLAG_NO_FIB_ENTRY IPNeighborFlags = 2
+)
+
+var IPNeighborFlags_name = map[uint32]string{
+ 0: "IP_API_NEIGHBOR_FLAG_NONE",
+ 1: "IP_API_NEIGHBOR_FLAG_STATIC",
+ 2: "IP_API_NEIGHBOR_FLAG_NO_FIB_ENTRY",
+}
+
+var IPNeighborFlags_value = map[string]uint32{
+ "IP_API_NEIGHBOR_FLAG_NONE": 0,
+ "IP_API_NEIGHBOR_FLAG_STATIC": 1,
+ "IP_API_NEIGHBOR_FLAG_NO_FIB_ENTRY": 2,
+}
+
+func (x IPNeighborFlags) String() string {
+ s, ok := IPNeighborFlags_name[uint32(x)]
+ if ok {
+ return s
+ }
+ return strconv.Itoa(int(x))
+}
+
+/* Aliases */
+
+// IP4Address represents VPP binary API alias 'ip4_address':
+type IP4Address [4]uint8
+
+// IP6Address represents VPP binary API alias 'ip6_address':
+type IP6Address [16]uint8
+
+// MacAddress represents VPP binary API alias 'mac_address':
+type MacAddress [6]uint8
+
+/* Types */
+
+// Address represents VPP binary API type 'address':
+type Address struct {
+ Af AddressFamily
+ Un AddressUnion
+}
+
+func (*Address) GetTypeName() string {
+ return "address"
+}
+func (*Address) GetCrcString() string {
+ return "09f11671"
+}
+
+// FibMplsLabel represents VPP binary API type 'fib_mpls_label':
+type FibMplsLabel struct {
+ IsUniform uint8
+ Label uint32
+ TTL uint8
+ Exp uint8
+}
+
+func (*FibMplsLabel) GetTypeName() string {
+ return "fib_mpls_label"
+}
+func (*FibMplsLabel) GetCrcString() string {
+ return "c93bf35c"
+}
+
+// FibPath represents VPP binary API type 'fib_path':
+type FibPath struct {
+ SwIfIndex uint32
+ TableID uint32
+ Weight uint8
+ Preference uint8
+ IsLocal uint8
+ IsDrop uint8
+ IsUDPEncap uint8
+ IsUnreach uint8
+ IsProhibit uint8
+ IsResolveHost uint8
+ IsResolveAttached uint8
+ IsDvr uint8
+ IsSourceLookup uint8
+ IsInterfaceRx uint8
+ Afi uint8
+ NextHop []byte `struc:"[16]byte"`
+ NextHopID uint32
+ RpfID uint32
+ ViaLabel uint32
+ NLabels uint8
+ LabelStack []FibMplsLabel `struc:"[16]FibMplsLabel"`
+}
+
+func (*FibPath) GetTypeName() string {
+ return "fib_path"
+}
+func (*FibPath) GetCrcString() string {
+ return "ba7a81f0"
+}
+
+// IP4Prefix represents VPP binary API type 'ip4_prefix':
+type IP4Prefix struct {
+ Prefix IP4Address
+ Len uint8
+}
+
+func (*IP4Prefix) GetTypeName() string {
+ return "ip4_prefix"
+}
+func (*IP4Prefix) GetCrcString() string {
+ return "ea8dc11d"
+}
+
+// IP6Prefix represents VPP binary API type 'ip6_prefix':
+type IP6Prefix struct {
+ Prefix IP6Address
+ Len uint8
+}
+
+func (*IP6Prefix) GetTypeName() string {
+ return "ip6_prefix"
+}
+func (*IP6Prefix) GetCrcString() string {
+ return "779fd64f"
+}
+
+// IP6RaPrefixInfo represents VPP binary API type 'ip6_ra_prefix_info':
+type IP6RaPrefixInfo struct {
+ Prefix Prefix
+ Flags uint8
+ ValidTime uint32
+ PreferredTime uint32
+}
+
+func (*IP6RaPrefixInfo) GetTypeName() string {
+ return "ip6_ra_prefix_info"
+}
+func (*IP6RaPrefixInfo) GetCrcString() string {
+ return "fa025b72"
+}
+
+// IPNeighbor represents VPP binary API type 'ip_neighbor':
+type IPNeighbor struct {
+ SwIfIndex uint32
+ Flags IPNeighborFlags
+ MacAddress MacAddress
+ IPAddress Address
+}
+
+func (*IPNeighbor) GetTypeName() string {
+ return "ip_neighbor"
+}
+func (*IPNeighbor) GetCrcString() string {
+ return "4bf82d5d"
+}
+
+// MfibPath represents VPP binary API type 'mfib_path':
+type MfibPath struct {
+ Path FibPath
+ ItfFlags uint32
+}
+
+func (*MfibPath) GetTypeName() string {
+ return "mfib_path"
+}
+func (*MfibPath) GetCrcString() string {
+ return "4ba77d32"
+}
+
+// Mprefix represents VPP binary API type 'mprefix':
+type Mprefix struct {
+ Af AddressFamily
+ GrpAddressLength uint16
+ GrpAddress AddressUnion
+ SrcAddress AddressUnion
+}
+
+func (*Mprefix) GetTypeName() string {
+ return "mprefix"
+}
+func (*Mprefix) GetCrcString() string {
+ return "1c4cba05"
+}
+
+// Prefix represents VPP binary API type 'prefix':
+type Prefix struct {
+ Address Address
+ AddressLength uint8
+}
+
+func (*Prefix) GetTypeName() string {
+ return "prefix"
+}
+func (*Prefix) GetCrcString() string {
+ return "0403aebc"
+}
+
+// ProxyArp represents VPP binary API type 'proxy_arp':
+type ProxyArp struct {
+ TableID uint32
+ Low IP4Address
+ Hi IP4Address
+}
+
+func (*ProxyArp) GetTypeName() string {
+ return "proxy_arp"
+}
+func (*ProxyArp) GetCrcString() string {
+ return "e9067693"
+}
+
+// PuntRedirect represents VPP binary API type 'punt_redirect':
+type PuntRedirect struct {
+ RxSwIfIndex uint32
+ TxSwIfIndex uint32
+ Nh Address
+}
+
+func (*PuntRedirect) GetTypeName() string {
+ return "punt_redirect"
+}
+func (*PuntRedirect) GetCrcString() string {
+ return "3e7a801f"
+}
+
+/* Unions */
+
+// AddressUnion represents VPP binary API union 'address_union':
+type AddressUnion struct {
+ XXX_UnionData [16]byte
+}
+
+func (*AddressUnion) GetTypeName() string {
+ return "address_union"
+}
+func (*AddressUnion) GetCrcString() string {
+ return "d68a2fb4"
+}
+
+func AddressUnionIP4(a IP4Address) (u AddressUnion) {
+ u.SetIP4(a)
+ return
+}
+func (u *AddressUnion) SetIP4(a IP4Address) {
+ var b = new(bytes.Buffer)
+ if err := struc.Pack(b, &a); err != nil {
+ return
+ }
+ copy(u.XXX_UnionData[:], b.Bytes())
+}
+func (u *AddressUnion) GetIP4() (a IP4Address) {
+ var b = bytes.NewReader(u.XXX_UnionData[:])
+ struc.Unpack(b, &a)
+ return
+}
+
+func AddressUnionIP6(a IP6Address) (u AddressUnion) {
+ u.SetIP6(a)
+ return
+}
+func (u *AddressUnion) SetIP6(a IP6Address) {
+ var b = new(bytes.Buffer)
+ if err := struc.Pack(b, &a); err != nil {
+ return
+ }
+ copy(u.XXX_UnionData[:], b.Bytes())
+}
+func (u *AddressUnion) GetIP6() (a IP6Address) {
+ var b = bytes.NewReader(u.XXX_UnionData[:])
+ struc.Unpack(b, &a)
+ return
+}
+
+/* Messages */
+
+// IoamDisable represents VPP binary API message 'ioam_disable':
+type IoamDisable struct {
+ ID uint16
+}
+
+func (*IoamDisable) GetMessageName() string {
+ return "ioam_disable"
+}
+func (*IoamDisable) GetCrcString() string {
+ return "6b16a45e"
+}
+func (*IoamDisable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
+type IoamDisableReply struct {
+ Retval int32
+}
+
+func (*IoamDisableReply) GetMessageName() string {
+ return "ioam_disable_reply"
+}
+func (*IoamDisableReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IoamDisableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IoamEnable represents VPP binary API message 'ioam_enable':
+type IoamEnable struct {
+ ID uint16
+ Seqno uint8
+ Analyse uint8
+ PotEnable uint8
+ TraceEnable uint8
+ NodeID uint32
+}
+
+func (*IoamEnable) GetMessageName() string {
+ return "ioam_enable"
+}
+func (*IoamEnable) GetCrcString() string {
+ return "9392e032"
+}
+func (*IoamEnable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
+type IoamEnableReply struct {
+ Retval int32
+}
+
+func (*IoamEnableReply) GetMessageName() string {
+ return "ioam_enable_reply"
+}
+func (*IoamEnableReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IoamEnableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
+type IP4ArpEvent struct {
+ IP IP4Address
+ PID uint32
+ SwIfIndex uint32
+ Mac MacAddress
+ MacIP uint8
+}
+
+func (*IP4ArpEvent) GetMessageName() string {
+ return "ip4_arp_event"
+}
+func (*IP4ArpEvent) GetCrcString() string {
+ return "72cdde7c"
+}
+func (*IP4ArpEvent) GetMessageType() api.MessageType {
+ return api.EventMessage
+}
+
+// IP6FibDetails represents VPP binary API message 'ip6_fib_details':
+type IP6FibDetails struct {
+ TableID uint32
+ TableName []byte `struc:"[64]byte"`
+ AddressLength uint8
+ Address []byte `struc:"[16]byte"`
+ Count uint32 `struc:"sizeof=Path"`
+ StatsIndex uint32
+ Path []FibPath
+}
+
+func (*IP6FibDetails) GetMessageName() string {
+ return "ip6_fib_details"
+}
+func (*IP6FibDetails) GetCrcString() string {
+ return "ef11e94d"
+}
+func (*IP6FibDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IP6FibDump represents VPP binary API message 'ip6_fib_dump':
+type IP6FibDump struct{}
+
+func (*IP6FibDump) GetMessageName() string {
+ return "ip6_fib_dump"
+}
+func (*IP6FibDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*IP6FibDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IP6MfibDetails represents VPP binary API message 'ip6_mfib_details':
+type IP6MfibDetails struct {
+ TableID uint32
+ AddressLength uint8
+ GrpAddress []byte `struc:"[16]byte"`
+ SrcAddress []byte `struc:"[16]byte"`
+ Count uint32 `struc:"sizeof=Path"`
+ Path []MfibPath
+}
+
+func (*IP6MfibDetails) GetMessageName() string {
+ return "ip6_mfib_details"
+}
+func (*IP6MfibDetails) GetCrcString() string {
+ return "738c546e"
+}
+func (*IP6MfibDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
+type IP6MfibDump struct{}
+
+func (*IP6MfibDump) GetMessageName() string {
+ return "ip6_mfib_dump"
+}
+func (*IP6MfibDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*IP6MfibDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IP6NdEvent represents VPP binary API message 'ip6_nd_event':
+type IP6NdEvent struct {
+ PID uint32
+ SwIfIndex uint32
+ IP IP6Address
+ Mac MacAddress
+ MacIP uint8
+}
+
+func (*IP6NdEvent) GetMessageName() string {
+ return "ip6_nd_event"
+}
+func (*IP6NdEvent) GetCrcString() string {
+ return "3a23e7d4"
+}
+func (*IP6NdEvent) GetMessageType() api.MessageType {
+ return api.EventMessage
+}
+
+// IP6RaEvent represents VPP binary API message 'ip6_ra_event':
+type IP6RaEvent struct {
+ PID uint32
+ SwIfIndex uint32
+ RouterAddr IP6Address
+ CurrentHopLimit uint8
+ Flags uint8
+ RouterLifetimeInSec uint16
+ NeighborReachableTimeInMsec uint32
+ TimeInMsecBetweenRetransmittedNeighborSolicitations uint32
+ NPrefixes uint32 `struc:"sizeof=Prefixes"`
+ Prefixes []IP6RaPrefixInfo
+}
+
+func (*IP6RaEvent) GetMessageName() string {
+ return "ip6_ra_event"
+}
+func (*IP6RaEvent) GetCrcString() string {
+ return "2e718fcc"
+}
+func (*IP6RaEvent) GetMessageType() api.MessageType {
+ return api.EventMessage
+}
+
+// IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del':
+type IP6ndProxyAddDel struct {
+ SwIfIndex uint32
+ IsDel uint8
+ IP IP6Address
+}
+
+func (*IP6ndProxyAddDel) GetMessageName() string {
+ return "ip6nd_proxy_add_del"
+}
+func (*IP6ndProxyAddDel) GetCrcString() string {
+ return "bff10d55"
+}
+func (*IP6ndProxyAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IP6ndProxyAddDelReply represents VPP binary API message 'ip6nd_proxy_add_del_reply':
+type IP6ndProxyAddDelReply struct {
+ Retval int32
+}
+
+func (*IP6ndProxyAddDelReply) GetMessageName() string {
+ return "ip6nd_proxy_add_del_reply"
+}
+func (*IP6ndProxyAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IP6ndProxyAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IP6ndProxyDetails represents VPP binary API message 'ip6nd_proxy_details':
+type IP6ndProxyDetails struct {
+ SwIfIndex uint32
+ IP IP6Address
+}
+
+func (*IP6ndProxyDetails) GetMessageName() string {
+ return "ip6nd_proxy_details"
+}
+func (*IP6ndProxyDetails) GetCrcString() string {
+ return "bbbd7894"
+}
+func (*IP6ndProxyDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IP6ndProxyDump represents VPP binary API message 'ip6nd_proxy_dump':
+type IP6ndProxyDump struct{}
+
+func (*IP6ndProxyDump) GetMessageName() string {
+ return "ip6nd_proxy_dump"
+}
+func (*IP6ndProxyDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*IP6ndProxyDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IP6ndSendRouterSolicitation represents VPP binary API message 'ip6nd_send_router_solicitation':
+type IP6ndSendRouterSolicitation struct {
+ Irt uint32
+ Mrt uint32
+ Mrc uint32
+ Mrd uint32
+ SwIfIndex uint32
+ Stop uint8
+}
+
+func (*IP6ndSendRouterSolicitation) GetMessageName() string {
+ return "ip6nd_send_router_solicitation"
+}
+func (*IP6ndSendRouterSolicitation) GetCrcString() string {
+ return "bd968917"
+}
+func (*IP6ndSendRouterSolicitation) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IP6ndSendRouterSolicitationReply represents VPP binary API message 'ip6nd_send_router_solicitation_reply':
+type IP6ndSendRouterSolicitationReply struct {
+ Retval int32
+}
+
+func (*IP6ndSendRouterSolicitationReply) GetMessageName() string {
+ return "ip6nd_send_router_solicitation_reply"
+}
+func (*IP6ndSendRouterSolicitationReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IP6ndSendRouterSolicitationReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPAddDelRoute represents VPP binary API message 'ip_add_del_route':
+type IPAddDelRoute struct {
+ NextHopSwIfIndex uint32
+ TableID uint32
+ ClassifyTableIndex uint32
+ NextHopTableID uint32
+ NextHopID uint32
+ IsAdd uint8
+ IsDrop uint8
+ IsUnreach uint8
+ IsProhibit uint8
+ IsIPv6 uint8
+ IsLocal uint8
+ IsClassify uint8
+ IsMultipath uint8
+ IsResolveHost uint8
+ IsResolveAttached uint8
+ IsDvr uint8
+ IsSourceLookup uint8
+ IsUDPEncap uint8
+ NextHopWeight uint8
+ NextHopPreference uint8
+ NextHopProto uint8
+ DstAddressLength uint8
+ DstAddress []byte `struc:"[16]byte"`
+ NextHopAddress []byte `struc:"[16]byte"`
+ NextHopNOutLabels uint8 `struc:"sizeof=NextHopOutLabelStack"`
+ NextHopViaLabel uint32
+ NextHopOutLabelStack []FibMplsLabel
+}
+
+func (*IPAddDelRoute) GetMessageName() string {
+ return "ip_add_del_route"
+}
+func (*IPAddDelRoute) GetCrcString() string {
+ return "4219d62d"
+}
+func (*IPAddDelRoute) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
+type IPAddDelRouteReply struct {
+ Retval int32
+ StatsIndex uint32
+}
+
+func (*IPAddDelRouteReply) GetMessageName() string {
+ return "ip_add_del_route_reply"
+}
+func (*IPAddDelRouteReply) GetCrcString() string {
+ return "1992deab"
+}
+func (*IPAddDelRouteReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPAddressDetails represents VPP binary API message 'ip_address_details':
+type IPAddressDetails struct {
+ IP []byte `struc:"[16]byte"`
+ PrefixLength uint8
+ SwIfIndex uint32
+ IsIPv6 uint8
+}
+
+func (*IPAddressDetails) GetMessageName() string {
+ return "ip_address_details"
+}
+func (*IPAddressDetails) GetCrcString() string {
+ return "9bc25966"
+}
+func (*IPAddressDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPAddressDump represents VPP binary API message 'ip_address_dump':
+type IPAddressDump struct {
+ SwIfIndex uint32
+ IsIPv6 uint8
+}
+
+func (*IPAddressDump) GetMessageName() string {
+ return "ip_address_dump"
+}
+func (*IPAddressDump) GetCrcString() string {
+ return "6b7bcd0a"
+}
+func (*IPAddressDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPContainerProxyAddDel represents VPP binary API message 'ip_container_proxy_add_del':
+type IPContainerProxyAddDel struct {
+ Pfx Prefix
+ SwIfIndex uint32
+ IsAdd uint8
+}
+
+func (*IPContainerProxyAddDel) GetMessageName() string {
+ return "ip_container_proxy_add_del"
+}
+func (*IPContainerProxyAddDel) GetCrcString() string {
+ return "5938e73a"
+}
+func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply':
+type IPContainerProxyAddDelReply struct {
+ Retval int32
+}
+
+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
+}
+
+// IPContainerProxyDetails represents VPP binary API message 'ip_container_proxy_details':
+type IPContainerProxyDetails struct {
+ SwIfIndex uint32
+ Prefix Prefix
+}
+
+func (*IPContainerProxyDetails) GetMessageName() string {
+ return "ip_container_proxy_details"
+}
+func (*IPContainerProxyDetails) GetCrcString() string {
+ return "d528df63"
+}
+func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
+type IPContainerProxyDump struct{}
+
+func (*IPContainerProxyDump) GetMessageName() string {
+ return "ip_container_proxy_dump"
+}
+func (*IPContainerProxyDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*IPContainerProxyDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPDetails represents VPP binary API message 'ip_details':
+type IPDetails struct {
+ SwIfIndex uint32
+ IsIPv6 uint8
+}
+
+func (*IPDetails) GetMessageName() string {
+ return "ip_details"
+}
+func (*IPDetails) GetCrcString() string {
+ return "8bb37ec4"
+}
+func (*IPDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPDump represents VPP binary API message 'ip_dump':
+type IPDump struct {
+ IsIPv6 uint8
+}
+
+func (*IPDump) GetMessageName() string {
+ return "ip_dump"
+}
+func (*IPDump) GetCrcString() string {
+ return "de883da4"
+}
+func (*IPDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPFibDetails represents VPP binary API message 'ip_fib_details':
+type IPFibDetails struct {
+ TableID uint32
+ TableName []byte `struc:"[64]byte"`
+ AddressLength uint8
+ Address []byte `struc:"[4]byte"`
+ Count uint32 `struc:"sizeof=Path"`
+ StatsIndex uint32
+ Path []FibPath
+}
+
+func (*IPFibDetails) GetMessageName() string {
+ return "ip_fib_details"
+}
+func (*IPFibDetails) GetCrcString() string {
+ return "f6a2fab3"
+}
+func (*IPFibDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPFibDump represents VPP binary API message 'ip_fib_dump':
+type IPFibDump struct{}
+
+func (*IPFibDump) GetMessageName() string {
+ return "ip_fib_dump"
+}
+func (*IPFibDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*IPFibDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPMfibDetails represents VPP binary API message 'ip_mfib_details':
+type IPMfibDetails struct {
+ TableID uint32
+ EntryFlags uint32
+ RpfID uint32
+ AddressLength uint8
+ GrpAddress []byte `struc:"[4]byte"`
+ SrcAddress []byte `struc:"[4]byte"`
+ Count uint32 `struc:"sizeof=Path"`
+ StatsIndex uint32
+ Path []MfibPath
+}
+
+func (*IPMfibDetails) GetMessageName() string {
+ return "ip_mfib_details"
+}
+func (*IPMfibDetails) GetCrcString() string {
+ return "61faa26f"
+}
+func (*IPMfibDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPMfibDump represents VPP binary API message 'ip_mfib_dump':
+type IPMfibDump struct{}
+
+func (*IPMfibDump) GetMessageName() string {
+ return "ip_mfib_dump"
+}
+func (*IPMfibDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*IPMfibDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del':
+type IPMrouteAddDel struct {
+ NextHopSwIfIndex uint32
+ TableID uint32
+ EntryFlags uint32
+ ItfFlags uint32
+ RpfID uint32
+ BierImp uint32
+ GrpAddressLength uint16
+ NextHopAfi uint8
+ IsAdd uint8
+ IsIPv6 uint8
+ IsLocal uint8
+ GrpAddress []byte `struc:"[16]byte"`
+ SrcAddress []byte `struc:"[16]byte"`
+ NhAddress []byte `struc:"[16]byte"`
+}
+
+func (*IPMrouteAddDel) GetMessageName() string {
+ return "ip_mroute_add_del"
+}
+func (*IPMrouteAddDel) GetCrcString() string {
+ return "f44c17b1"
+}
+func (*IPMrouteAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
+type IPMrouteAddDelReply struct {
+ Retval int32
+ StatsIndex uint32
+}
+
+func (*IPMrouteAddDelReply) GetMessageName() string {
+ return "ip_mroute_add_del_reply"
+}
+func (*IPMrouteAddDelReply) GetCrcString() string {
+ return "1992deab"
+}
+func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
+type IPNeighborAddDel struct {
+ IsAdd uint8
+ Neighbor IPNeighbor
+}
+
+func (*IPNeighborAddDel) GetMessageName() string {
+ return "ip_neighbor_add_del"
+}
+func (*IPNeighborAddDel) GetCrcString() string {
+ return "adea3ef4"
+}
+func (*IPNeighborAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
+type IPNeighborAddDelReply struct {
+ Retval int32
+ StatsIndex uint32
+}
+
+func (*IPNeighborAddDelReply) GetMessageName() string {
+ return "ip_neighbor_add_del_reply"
+}
+func (*IPNeighborAddDelReply) GetCrcString() string {
+ return "1992deab"
+}
+func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPNeighborDetails represents VPP binary API message 'ip_neighbor_details':
+type IPNeighborDetails struct {
+ Neighbor IPNeighbor
+}
+
+func (*IPNeighborDetails) GetMessageName() string {
+ return "ip_neighbor_details"
+}
+func (*IPNeighborDetails) GetCrcString() string {
+ return "512fb08d"
+}
+func (*IPNeighborDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
+type IPNeighborDump struct {
+ SwIfIndex uint32
+ IsIPv6 uint8
+}
+
+func (*IPNeighborDump) GetMessageName() string {
+ return "ip_neighbor_dump"
+}
+func (*IPNeighborDump) GetCrcString() string {
+ return "6b7bcd0a"
+}
+func (*IPNeighborDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
+type IPProbeNeighbor struct {
+ SwIfIndex uint32
+ Dst Address
+}
+
+func (*IPProbeNeighbor) GetMessageName() string {
+ return "ip_probe_neighbor"
+}
+func (*IPProbeNeighbor) GetCrcString() string {
+ return "1e6c0a77"
+}
+func (*IPProbeNeighbor) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
+type IPProbeNeighborReply struct {
+ Retval int32
+}
+
+func (*IPProbeNeighborReply) GetMessageName() string {
+ return "ip_probe_neighbor_reply"
+}
+func (*IPProbeNeighborReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPPuntPolice represents VPP binary API message 'ip_punt_police':
+type IPPuntPolice struct {
+ PolicerIndex uint32
+ IsAdd uint8
+ IsIP6 uint8
+}
+
+func (*IPPuntPolice) GetMessageName() string {
+ return "ip_punt_police"
+}
+func (*IPPuntPolice) GetCrcString() string {
+ return "38691592"
+}
+func (*IPPuntPolice) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPPuntPoliceReply represents VPP binary API message 'ip_punt_police_reply':
+type IPPuntPoliceReply struct {
+ Retval int32
+}
+
+func (*IPPuntPoliceReply) GetMessageName() string {
+ return "ip_punt_police_reply"
+}
+func (*IPPuntPoliceReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPPuntRedirect represents VPP binary API message 'ip_punt_redirect':
+type IPPuntRedirect struct {
+ Punt PuntRedirect
+ IsAdd uint8
+}
+
+func (*IPPuntRedirect) GetMessageName() string {
+ return "ip_punt_redirect"
+}
+func (*IPPuntRedirect) GetCrcString() string {
+ return "a953495b"
+}
+func (*IPPuntRedirect) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
+type IPPuntRedirectDetails struct {
+ Punt PuntRedirect
+}
+
+func (*IPPuntRedirectDetails) GetMessageName() string {
+ return "ip_punt_redirect_details"
+}
+func (*IPPuntRedirectDetails) GetCrcString() string {
+ return "a47f70da"
+}
+func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPPuntRedirectDump represents VPP binary API message 'ip_punt_redirect_dump':
+type IPPuntRedirectDump struct {
+ SwIfIndex uint32
+ IsIPv6 uint8
+}
+
+func (*IPPuntRedirectDump) GetMessageName() string {
+ return "ip_punt_redirect_dump"
+}
+func (*IPPuntRedirectDump) GetCrcString() string {
+ return "6b7bcd0a"
+}
+func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
+type IPPuntRedirectReply struct {
+ Retval int32
+}
+
+func (*IPPuntRedirectReply) GetMessageName() string {
+ return "ip_punt_redirect_reply"
+}
+func (*IPPuntRedirectReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
+type IPReassemblyEnableDisable struct {
+ SwIfIndex uint32
+ EnableIP4 uint8
+ EnableIP6 uint8
+}
+
+func (*IPReassemblyEnableDisable) GetMessageName() string {
+ return "ip_reassembly_enable_disable"
+}
+func (*IPReassemblyEnableDisable) GetCrcString() string {
+ return "bb8dc5d0"
+}
+func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
+type IPReassemblyEnableDisableReply struct {
+ Retval int32
+}
+
+func (*IPReassemblyEnableDisableReply) GetMessageName() string {
+ return "ip_reassembly_enable_disable_reply"
+}
+func (*IPReassemblyEnableDisableReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
+type IPReassemblyGet struct {
+ IsIP6 uint8
+}
+
+func (*IPReassemblyGet) GetMessageName() string {
+ return "ip_reassembly_get"
+}
+func (*IPReassemblyGet) GetCrcString() string {
+ return "6fe91190"
+}
+func (*IPReassemblyGet) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
+type IPReassemblyGetReply struct {
+ Retval int32
+ TimeoutMs uint32
+ MaxReassemblies uint32
+ ExpireWalkIntervalMs uint32
+ IsIP6 uint8
+}
+
+func (*IPReassemblyGetReply) GetMessageName() string {
+ return "ip_reassembly_get_reply"
+}
+func (*IPReassemblyGetReply) GetCrcString() string {
+ return "1f90afd1"
+}
+func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
+type IPReassemblySet struct {
+ TimeoutMs uint32
+ MaxReassemblies uint32
+ ExpireWalkIntervalMs uint32
+ IsIP6 uint8
+}
+
+func (*IPReassemblySet) GetMessageName() string {
+ return "ip_reassembly_set"
+}
+func (*IPReassemblySet) GetCrcString() string {
+ return "1db184de"
+}
+func (*IPReassemblySet) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
+type IPReassemblySetReply struct {
+ Retval int32
+}
+
+func (*IPReassemblySetReply) GetMessageName() string {
+ return "ip_reassembly_set_reply"
+}
+func (*IPReassemblySetReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPReassemblySetReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable':
+type IPScanNeighborEnableDisable struct {
+ Mode uint8
+ ScanInterval uint8
+ MaxProcTime uint8
+ MaxUpdate uint8
+ ScanIntDelay uint8
+ StaleThreshold uint8
+}
+
+func (*IPScanNeighborEnableDisable) GetMessageName() string {
+ return "ip_scan_neighbor_enable_disable"
+}
+func (*IPScanNeighborEnableDisable) GetCrcString() string {
+ return "0a6bf57a"
+}
+func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
+type IPScanNeighborEnableDisableReply struct {
+ Retval int32
+}
+
+func (*IPScanNeighborEnableDisableReply) GetMessageName() string {
+ return "ip_scan_neighbor_enable_disable_reply"
+}
+func (*IPScanNeighborEnableDisableReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
+type IPSourceAndPortRangeCheckAddDel struct {
+ IsAdd uint8
+ Prefix Prefix
+ NumberOfRanges uint8
+ LowPorts []uint16 `struc:"[32]uint16"`
+ HighPorts []uint16 `struc:"[32]uint16"`
+ VrfID uint32
+}
+
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageName() string {
+ return "ip_source_and_port_range_check_add_del"
+}
+func (*IPSourceAndPortRangeCheckAddDel) GetCrcString() string {
+ return "ea07c429"
+}
+func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
+type IPSourceAndPortRangeCheckAddDelReply struct {
+ Retval int32
+}
+
+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
+}
+
+// IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del':
+type IPSourceAndPortRangeCheckInterfaceAddDel struct {
+ IsAdd uint8
+ SwIfIndex uint32
+ TCPInVrfID uint32
+ TCPOutVrfID uint32
+ UDPInVrfID uint32
+ UDPOutVrfID uint32
+}
+
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageName() string {
+ return "ip_source_and_port_range_check_interface_add_del"
+}
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetCrcString() string {
+ return "6966bc44"
+}
+func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
+type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
+ Retval int32
+}
+
+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
+}
+
+// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
+type IPSourceCheckInterfaceAddDel struct {
+ IsAdd uint8
+ Loose uint8
+ SwIfIndex uint32
+}
+
+func (*IPSourceCheckInterfaceAddDel) GetMessageName() string {
+ return "ip_source_check_interface_add_del"
+}
+func (*IPSourceCheckInterfaceAddDel) GetCrcString() string {
+ return "0a60152a"
+}
+func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
+type IPSourceCheckInterfaceAddDelReply struct {
+ Retval int32
+}
+
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageName() string {
+ return "ip_source_check_interface_add_del_reply"
+}
+func (*IPSourceCheckInterfaceAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPTableAddDel represents VPP binary API message 'ip_table_add_del':
+type IPTableAddDel struct {
+ TableID uint32
+ IsIPv6 uint8
+ IsAdd uint8
+ Name []byte `struc:"[64]byte"`
+}
+
+func (*IPTableAddDel) GetMessageName() string {
+ return "ip_table_add_del"
+}
+func (*IPTableAddDel) GetCrcString() string {
+ return "0240c89d"
+}
+func (*IPTableAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply':
+type IPTableAddDelReply struct {
+ Retval int32
+}
+
+func (*IPTableAddDelReply) GetMessageName() string {
+ return "ip_table_add_del_reply"
+}
+func (*IPTableAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*IPTableAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
+type IPUnnumberedDetails struct {
+ SwIfIndex uint32
+ IPSwIfIndex uint32
+}
+
+func (*IPUnnumberedDetails) GetMessageName() string {
+ return "ip_unnumbered_details"
+}
+func (*IPUnnumberedDetails) GetCrcString() string {
+ return "ae694cf4"
+}
+func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
+type IPUnnumberedDump struct {
+ SwIfIndex uint32
+}
+
+func (*IPUnnumberedDump) GetMessageName() string {
+ return "ip_unnumbered_dump"
+}
+func (*IPUnnumberedDump) GetCrcString() string {
+ return "529cb13f"
+}
+func (*IPUnnumberedDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MfibSignalDetails represents VPP binary API message 'mfib_signal_details':
+type MfibSignalDetails struct {
+ SwIfIndex uint32
+ TableID uint32
+ GrpAddressLen uint16
+ GrpAddress []byte `struc:"[16]byte"`
+ SrcAddress []byte `struc:"[16]byte"`
+ IPPacketLen uint16
+ IPPacketData []byte `struc:"[256]byte"`
+}
+
+func (*MfibSignalDetails) GetMessageName() string {
+ return "mfib_signal_details"
+}
+func (*MfibSignalDetails) GetCrcString() string {
+ return "3f5f03f5"
+}
+func (*MfibSignalDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MfibSignalDump represents VPP binary API message 'mfib_signal_dump':
+type MfibSignalDump struct{}
+
+func (*MfibSignalDump) GetMessageName() string {
+ return "mfib_signal_dump"
+}
+func (*MfibSignalDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*MfibSignalDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del':
+type ProxyArpAddDel struct {
+ IsAdd uint8
+ Proxy ProxyArp
+}
+
+func (*ProxyArpAddDel) GetMessageName() string {
+ return "proxy_arp_add_del"
+}
+func (*ProxyArpAddDel) GetCrcString() string {
+ return "227988d9"
+}
+func (*ProxyArpAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply':
+type ProxyArpAddDelReply struct {
+ Retval int32
+}
+
+func (*ProxyArpAddDelReply) GetMessageName() string {
+ return "proxy_arp_add_del_reply"
+}
+func (*ProxyArpAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ProxyArpDetails represents VPP binary API message 'proxy_arp_details':
+type ProxyArpDetails struct {
+ Proxy ProxyArp
+}
+
+func (*ProxyArpDetails) GetMessageName() string {
+ return "proxy_arp_details"
+}
+func (*ProxyArpDetails) GetCrcString() string {
+ return "9b707c77"
+}
+func (*ProxyArpDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ProxyArpDump represents VPP binary API message 'proxy_arp_dump':
+type ProxyArpDump struct{}
+
+func (*ProxyArpDump) GetMessageName() string {
+ return "proxy_arp_dump"
+}
+func (*ProxyArpDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*ProxyArpDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details':
+type ProxyArpIntfcDetails struct {
+ SwIfIndex uint32
+}
+
+func (*ProxyArpIntfcDetails) GetMessageName() string {
+ return "proxy_arp_intfc_details"
+}
+func (*ProxyArpIntfcDetails) GetCrcString() string {
+ return "f6458e5f"
+}
+func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump':
+type ProxyArpIntfcDump struct{}
+
+func (*ProxyArpIntfcDump) GetMessageName() string {
+ return "proxy_arp_intfc_dump"
+}
+func (*ProxyArpIntfcDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable':
+type ProxyArpIntfcEnableDisable struct {
+ SwIfIndex uint32
+ EnableDisable uint8
+}
+
+func (*ProxyArpIntfcEnableDisable) GetMessageName() string {
+ return "proxy_arp_intfc_enable_disable"
+}
+func (*ProxyArpIntfcEnableDisable) GetCrcString() string {
+ return "69d24598"
+}
+func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply':
+type ProxyArpIntfcEnableDisableReply struct {
+ Retval int32
+}
+
+func (*ProxyArpIntfcEnableDisableReply) GetMessageName() string {
+ return "proxy_arp_intfc_enable_disable_reply"
+}
+func (*ProxyArpIntfcEnableDisableReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ResetFib represents VPP binary API message 'reset_fib':
+type ResetFib struct {
+ VrfID uint32
+ IsIPv6 uint8
+}
+
+func (*ResetFib) GetMessageName() string {
+ return "reset_fib"
+}
+func (*ResetFib) GetCrcString() string {
+ return "8553ebd9"
+}
+func (*ResetFib) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ResetFibReply represents VPP binary API message 'reset_fib_reply':
+type ResetFibReply struct {
+ Retval int32
+}
+
+func (*ResetFibReply) GetMessageName() string {
+ return "reset_fib_reply"
+}
+func (*ResetFibReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*ResetFibReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit':
+type SetArpNeighborLimit struct {
+ IsIPv6 uint8
+ ArpNeighborLimit uint32
+}
+
+func (*SetArpNeighborLimit) GetMessageName() string {
+ return "set_arp_neighbor_limit"
+}
+func (*SetArpNeighborLimit) GetCrcString() string {
+ return "97d01fd6"
+}
+func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply':
+type SetArpNeighborLimitReply struct {
+ Retval int32
+}
+
+func (*SetArpNeighborLimitReply) GetMessageName() string {
+ return "set_arp_neighbor_limit_reply"
+}
+func (*SetArpNeighborLimitReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash':
+type SetIPFlowHash struct {
+ VrfID uint32
+ IsIPv6 uint8
+ Src uint8
+ Dst uint8
+ Sport uint8
+ Dport uint8
+ Proto uint8
+ Reverse uint8
+ Symmetric uint8
+}
+
+func (*SetIPFlowHash) GetMessageName() string {
+ return "set_ip_flow_hash"
+}
+func (*SetIPFlowHash) GetCrcString() string {
+ return "a9084bfb"
+}
+func (*SetIPFlowHash) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply':
+type SetIPFlowHashReply struct {
+ Retval int32
+}
+
+func (*SetIPFlowHashReply) GetMessageName() string {
+ return "set_ip_flow_hash_reply"
+}
+func (*SetIPFlowHashReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceIP6EnableDisable represents VPP binary API message 'sw_interface_ip6_enable_disable':
+type SwInterfaceIP6EnableDisable struct {
+ SwIfIndex uint32
+ Enable uint8
+}
+
+func (*SwInterfaceIP6EnableDisable) GetMessageName() string {
+ return "sw_interface_ip6_enable_disable"
+}
+func (*SwInterfaceIP6EnableDisable) GetCrcString() string {
+ return "a36fadc0"
+}
+func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceIP6EnableDisableReply represents VPP binary API message 'sw_interface_ip6_enable_disable_reply':
+type SwInterfaceIP6EnableDisableReply struct {
+ Retval int32
+}
+
+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
+}
+
+// SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config':
+type SwInterfaceIP6ndRaConfig struct {
+ SwIfIndex uint32
+ Suppress uint8
+ Managed uint8
+ Other uint8
+ LlOption uint8
+ SendUnicast uint8
+ Cease uint8
+ IsNo uint8
+ DefaultRouter uint8
+ MaxInterval uint32
+ MinInterval uint32
+ Lifetime uint32
+ InitialCount uint32
+ InitialInterval uint32
+}
+
+func (*SwInterfaceIP6ndRaConfig) GetMessageName() string {
+ return "sw_interface_ip6nd_ra_config"
+}
+func (*SwInterfaceIP6ndRaConfig) GetCrcString() string {
+ return "c3f02daa"
+}
+func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply':
+type SwInterfaceIP6ndRaConfigReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceIP6ndRaConfigReply) GetMessageName() string {
+ return "sw_interface_ip6nd_ra_config_reply"
+}
+func (*SwInterfaceIP6ndRaConfigReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix':
+type SwInterfaceIP6ndRaPrefix struct {
+ SwIfIndex uint32
+ Prefix Prefix
+ UseDefault uint8
+ NoAdvertise uint8
+ OffLink uint8
+ NoAutoconfig uint8
+ NoOnlink uint8
+ IsNo uint8
+ ValLifetime uint32
+ PrefLifetime uint32
+}
+
+func (*SwInterfaceIP6ndRaPrefix) GetMessageName() string {
+ return "sw_interface_ip6nd_ra_prefix"
+}
+func (*SwInterfaceIP6ndRaPrefix) GetCrcString() string {
+ return "59934d3b"
+}
+func (*SwInterfaceIP6ndRaPrefix) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SwInterfaceIP6ndRaPrefixReply represents VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply':
+type SwInterfaceIP6ndRaPrefixReply struct {
+ Retval int32
+}
+
+func (*SwInterfaceIP6ndRaPrefixReply) GetMessageName() string {
+ return "sw_interface_ip6nd_ra_prefix_reply"
+}
+func (*SwInterfaceIP6ndRaPrefixReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
+type WantIP4ArpEvents struct {
+ EnableDisable uint8
+ PID uint32
+ IP IP4Address
+}
+
+func (*WantIP4ArpEvents) GetMessageName() string {
+ return "want_ip4_arp_events"
+}
+func (*WantIP4ArpEvents) GetCrcString() string {
+ return "70fd7195"
+}
+func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply':
+type WantIP4ArpEventsReply struct {
+ Retval int32
+}
+
+func (*WantIP4ArpEventsReply) GetMessageName() string {
+ return "want_ip4_arp_events_reply"
+}
+func (*WantIP4ArpEventsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events':
+type WantIP6NdEvents struct {
+ EnableDisable uint8
+ PID uint32
+ IP IP6Address
+}
+
+func (*WantIP6NdEvents) GetMessageName() string {
+ return "want_ip6_nd_events"
+}
+func (*WantIP6NdEvents) GetCrcString() string {
+ return "ba330719"
+}
+func (*WantIP6NdEvents) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply':
+type WantIP6NdEventsReply struct {
+ Retval int32
+}
+
+func (*WantIP6NdEventsReply) GetMessageName() string {
+ return "want_ip6_nd_events_reply"
+}
+func (*WantIP6NdEventsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events':
+type WantIP6RaEvents struct {
+ EnableDisable uint8
+ PID uint32
+}
+
+func (*WantIP6RaEvents) GetMessageName() string {
+ return "want_ip6_ra_events"
+}
+func (*WantIP6RaEvents) GetCrcString() string {
+ return "05b454b5"
+}
+func (*WantIP6RaEvents) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply':
+type WantIP6RaEventsReply struct {
+ Retval int32
+}
+
+func (*WantIP6RaEventsReply) GetMessageName() string {
+ return "want_ip6_ra_events_reply"
+}
+func (*WantIP6RaEventsReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*WantIP6RaEventsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func init() {
+ api.RegisterMessage((*IoamDisable)(nil), "ip.IoamDisable")
+ api.RegisterMessage((*IoamDisableReply)(nil), "ip.IoamDisableReply")
+ api.RegisterMessage((*IoamEnable)(nil), "ip.IoamEnable")
+ api.RegisterMessage((*IoamEnableReply)(nil), "ip.IoamEnableReply")
+ api.RegisterMessage((*IP4ArpEvent)(nil), "ip.IP4ArpEvent")
+ api.RegisterMessage((*IP6FibDetails)(nil), "ip.IP6FibDetails")
+ api.RegisterMessage((*IP6FibDump)(nil), "ip.IP6FibDump")
+ api.RegisterMessage((*IP6MfibDetails)(nil), "ip.IP6MfibDetails")
+ api.RegisterMessage((*IP6MfibDump)(nil), "ip.IP6MfibDump")
+ api.RegisterMessage((*IP6NdEvent)(nil), "ip.IP6NdEvent")
+ api.RegisterMessage((*IP6RaEvent)(nil), "ip.IP6RaEvent")
+ api.RegisterMessage((*IP6ndProxyAddDel)(nil), "ip.IP6ndProxyAddDel")
+ api.RegisterMessage((*IP6ndProxyAddDelReply)(nil), "ip.IP6ndProxyAddDelReply")
+ api.RegisterMessage((*IP6ndProxyDetails)(nil), "ip.IP6ndProxyDetails")
+ api.RegisterMessage((*IP6ndProxyDump)(nil), "ip.IP6ndProxyDump")
+ api.RegisterMessage((*IP6ndSendRouterSolicitation)(nil), "ip.IP6ndSendRouterSolicitation")
+ api.RegisterMessage((*IP6ndSendRouterSolicitationReply)(nil), "ip.IP6ndSendRouterSolicitationReply")
+ api.RegisterMessage((*IPAddDelRoute)(nil), "ip.IPAddDelRoute")
+ api.RegisterMessage((*IPAddDelRouteReply)(nil), "ip.IPAddDelRouteReply")
+ api.RegisterMessage((*IPAddressDetails)(nil), "ip.IPAddressDetails")
+ api.RegisterMessage((*IPAddressDump)(nil), "ip.IPAddressDump")
+ api.RegisterMessage((*IPContainerProxyAddDel)(nil), "ip.IPContainerProxyAddDel")
+ api.RegisterMessage((*IPContainerProxyAddDelReply)(nil), "ip.IPContainerProxyAddDelReply")
+ api.RegisterMessage((*IPContainerProxyDetails)(nil), "ip.IPContainerProxyDetails")
+ api.RegisterMessage((*IPContainerProxyDump)(nil), "ip.IPContainerProxyDump")
+ api.RegisterMessage((*IPDetails)(nil), "ip.IPDetails")
+ api.RegisterMessage((*IPDump)(nil), "ip.IPDump")
+ api.RegisterMessage((*IPFibDetails)(nil), "ip.IPFibDetails")
+ api.RegisterMessage((*IPFibDump)(nil), "ip.IPFibDump")
+ api.RegisterMessage((*IPMfibDetails)(nil), "ip.IPMfibDetails")
+ api.RegisterMessage((*IPMfibDump)(nil), "ip.IPMfibDump")
+ api.RegisterMessage((*IPMrouteAddDel)(nil), "ip.IPMrouteAddDel")
+ api.RegisterMessage((*IPMrouteAddDelReply)(nil), "ip.IPMrouteAddDelReply")
+ api.RegisterMessage((*IPNeighborAddDel)(nil), "ip.IPNeighborAddDel")
+ api.RegisterMessage((*IPNeighborAddDelReply)(nil), "ip.IPNeighborAddDelReply")
+ api.RegisterMessage((*IPNeighborDetails)(nil), "ip.IPNeighborDetails")
+ api.RegisterMessage((*IPNeighborDump)(nil), "ip.IPNeighborDump")
+ api.RegisterMessage((*IPProbeNeighbor)(nil), "ip.IPProbeNeighbor")
+ api.RegisterMessage((*IPProbeNeighborReply)(nil), "ip.IPProbeNeighborReply")
+ api.RegisterMessage((*IPPuntPolice)(nil), "ip.IPPuntPolice")
+ api.RegisterMessage((*IPPuntPoliceReply)(nil), "ip.IPPuntPoliceReply")
+ api.RegisterMessage((*IPPuntRedirect)(nil), "ip.IPPuntRedirect")
+ api.RegisterMessage((*IPPuntRedirectDetails)(nil), "ip.IPPuntRedirectDetails")
+ api.RegisterMessage((*IPPuntRedirectDump)(nil), "ip.IPPuntRedirectDump")
+ api.RegisterMessage((*IPPuntRedirectReply)(nil), "ip.IPPuntRedirectReply")
+ api.RegisterMessage((*IPReassemblyEnableDisable)(nil), "ip.IPReassemblyEnableDisable")
+ api.RegisterMessage((*IPReassemblyEnableDisableReply)(nil), "ip.IPReassemblyEnableDisableReply")
+ api.RegisterMessage((*IPReassemblyGet)(nil), "ip.IPReassemblyGet")
+ api.RegisterMessage((*IPReassemblyGetReply)(nil), "ip.IPReassemblyGetReply")
+ api.RegisterMessage((*IPReassemblySet)(nil), "ip.IPReassemblySet")
+ api.RegisterMessage((*IPReassemblySetReply)(nil), "ip.IPReassemblySetReply")
+ api.RegisterMessage((*IPScanNeighborEnableDisable)(nil), "ip.IPScanNeighborEnableDisable")
+ api.RegisterMessage((*IPScanNeighborEnableDisableReply)(nil), "ip.IPScanNeighborEnableDisableReply")
+ api.RegisterMessage((*IPSourceAndPortRangeCheckAddDel)(nil), "ip.IPSourceAndPortRangeCheckAddDel")
+ api.RegisterMessage((*IPSourceAndPortRangeCheckAddDelReply)(nil), "ip.IPSourceAndPortRangeCheckAddDelReply")
+ api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDel)(nil), "ip.IPSourceAndPortRangeCheckInterfaceAddDel")
+ api.RegisterMessage((*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil), "ip.IPSourceAndPortRangeCheckInterfaceAddDelReply")
+ api.RegisterMessage((*IPSourceCheckInterfaceAddDel)(nil), "ip.IPSourceCheckInterfaceAddDel")
+ api.RegisterMessage((*IPSourceCheckInterfaceAddDelReply)(nil), "ip.IPSourceCheckInterfaceAddDelReply")
+ api.RegisterMessage((*IPTableAddDel)(nil), "ip.IPTableAddDel")
+ api.RegisterMessage((*IPTableAddDelReply)(nil), "ip.IPTableAddDelReply")
+ api.RegisterMessage((*IPUnnumberedDetails)(nil), "ip.IPUnnumberedDetails")
+ api.RegisterMessage((*IPUnnumberedDump)(nil), "ip.IPUnnumberedDump")
+ api.RegisterMessage((*MfibSignalDetails)(nil), "ip.MfibSignalDetails")
+ api.RegisterMessage((*MfibSignalDump)(nil), "ip.MfibSignalDump")
+ api.RegisterMessage((*ProxyArpAddDel)(nil), "ip.ProxyArpAddDel")
+ api.RegisterMessage((*ProxyArpAddDelReply)(nil), "ip.ProxyArpAddDelReply")
+ api.RegisterMessage((*ProxyArpDetails)(nil), "ip.ProxyArpDetails")
+ api.RegisterMessage((*ProxyArpDump)(nil), "ip.ProxyArpDump")
+ api.RegisterMessage((*ProxyArpIntfcDetails)(nil), "ip.ProxyArpIntfcDetails")
+ api.RegisterMessage((*ProxyArpIntfcDump)(nil), "ip.ProxyArpIntfcDump")
+ api.RegisterMessage((*ProxyArpIntfcEnableDisable)(nil), "ip.ProxyArpIntfcEnableDisable")
+ api.RegisterMessage((*ProxyArpIntfcEnableDisableReply)(nil), "ip.ProxyArpIntfcEnableDisableReply")
+ api.RegisterMessage((*ResetFib)(nil), "ip.ResetFib")
+ api.RegisterMessage((*ResetFibReply)(nil), "ip.ResetFibReply")
+ api.RegisterMessage((*SetArpNeighborLimit)(nil), "ip.SetArpNeighborLimit")
+ api.RegisterMessage((*SetArpNeighborLimitReply)(nil), "ip.SetArpNeighborLimitReply")
+ api.RegisterMessage((*SetIPFlowHash)(nil), "ip.SetIPFlowHash")
+ api.RegisterMessage((*SetIPFlowHashReply)(nil), "ip.SetIPFlowHashReply")
+ api.RegisterMessage((*SwInterfaceIP6EnableDisable)(nil), "ip.SwInterfaceIP6EnableDisable")
+ api.RegisterMessage((*SwInterfaceIP6EnableDisableReply)(nil), "ip.SwInterfaceIP6EnableDisableReply")
+ api.RegisterMessage((*SwInterfaceIP6ndRaConfig)(nil), "ip.SwInterfaceIP6ndRaConfig")
+ api.RegisterMessage((*SwInterfaceIP6ndRaConfigReply)(nil), "ip.SwInterfaceIP6ndRaConfigReply")
+ api.RegisterMessage((*SwInterfaceIP6ndRaPrefix)(nil), "ip.SwInterfaceIP6ndRaPrefix")
+ api.RegisterMessage((*SwInterfaceIP6ndRaPrefixReply)(nil), "ip.SwInterfaceIP6ndRaPrefixReply")
+ api.RegisterMessage((*WantIP4ArpEvents)(nil), "ip.WantIP4ArpEvents")
+ api.RegisterMessage((*WantIP4ArpEventsReply)(nil), "ip.WantIP4ArpEventsReply")
+ api.RegisterMessage((*WantIP6NdEvents)(nil), "ip.WantIP6NdEvents")
+ api.RegisterMessage((*WantIP6NdEventsReply)(nil), "ip.WantIP6NdEventsReply")
+ api.RegisterMessage((*WantIP6RaEvents)(nil), "ip.WantIP6RaEvents")
+ api.RegisterMessage((*WantIP6RaEventsReply)(nil), "ip.WantIP6RaEventsReply")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*IoamDisable)(nil),
+ (*IoamDisableReply)(nil),
+ (*IoamEnable)(nil),
+ (*IoamEnableReply)(nil),
+ (*IP4ArpEvent)(nil),
+ (*IP6FibDetails)(nil),
+ (*IP6FibDump)(nil),
+ (*IP6MfibDetails)(nil),
+ (*IP6MfibDump)(nil),
+ (*IP6NdEvent)(nil),
+ (*IP6RaEvent)(nil),
+ (*IP6ndProxyAddDel)(nil),
+ (*IP6ndProxyAddDelReply)(nil),
+ (*IP6ndProxyDetails)(nil),
+ (*IP6ndProxyDump)(nil),
+ (*IP6ndSendRouterSolicitation)(nil),
+ (*IP6ndSendRouterSolicitationReply)(nil),
+ (*IPAddDelRoute)(nil),
+ (*IPAddDelRouteReply)(nil),
+ (*IPAddressDetails)(nil),
+ (*IPAddressDump)(nil),
+ (*IPContainerProxyAddDel)(nil),
+ (*IPContainerProxyAddDelReply)(nil),
+ (*IPContainerProxyDetails)(nil),
+ (*IPContainerProxyDump)(nil),
+ (*IPDetails)(nil),
+ (*IPDump)(nil),
+ (*IPFibDetails)(nil),
+ (*IPFibDump)(nil),
+ (*IPMfibDetails)(nil),
+ (*IPMfibDump)(nil),
+ (*IPMrouteAddDel)(nil),
+ (*IPMrouteAddDelReply)(nil),
+ (*IPNeighborAddDel)(nil),
+ (*IPNeighborAddDelReply)(nil),
+ (*IPNeighborDetails)(nil),
+ (*IPNeighborDump)(nil),
+ (*IPProbeNeighbor)(nil),
+ (*IPProbeNeighborReply)(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),
+ (*IPScanNeighborEnableDisable)(nil),
+ (*IPScanNeighborEnableDisableReply)(nil),
+ (*IPSourceAndPortRangeCheckAddDel)(nil),
+ (*IPSourceAndPortRangeCheckAddDelReply)(nil),
+ (*IPSourceAndPortRangeCheckInterfaceAddDel)(nil),
+ (*IPSourceAndPortRangeCheckInterfaceAddDelReply)(nil),
+ (*IPSourceCheckInterfaceAddDel)(nil),
+ (*IPSourceCheckInterfaceAddDelReply)(nil),
+ (*IPTableAddDel)(nil),
+ (*IPTableAddDelReply)(nil),
+ (*IPUnnumberedDetails)(nil),
+ (*IPUnnumberedDump)(nil),
+ (*MfibSignalDetails)(nil),
+ (*MfibSignalDump)(nil),
+ (*ProxyArpAddDel)(nil),
+ (*ProxyArpAddDelReply)(nil),
+ (*ProxyArpDetails)(nil),
+ (*ProxyArpDump)(nil),
+ (*ProxyArpIntfcDetails)(nil),
+ (*ProxyArpIntfcDump)(nil),
+ (*ProxyArpIntfcEnableDisable)(nil),
+ (*ProxyArpIntfcEnableDisableReply)(nil),
+ (*ResetFib)(nil),
+ (*ResetFibReply)(nil),
+ (*SetArpNeighborLimit)(nil),
+ (*SetArpNeighborLimitReply)(nil),
+ (*SetIPFlowHash)(nil),
+ (*SetIPFlowHashReply)(nil),
+ (*SwInterfaceIP6EnableDisable)(nil),
+ (*SwInterfaceIP6EnableDisableReply)(nil),
+ (*SwInterfaceIP6ndRaConfig)(nil),
+ (*SwInterfaceIP6ndRaConfigReply)(nil),
+ (*SwInterfaceIP6ndRaPrefix)(nil),
+ (*SwInterfaceIP6ndRaPrefixReply)(nil),
+ (*WantIP4ArpEvents)(nil),
+ (*WantIP4ArpEventsReply)(nil),
+ (*WantIP6NdEvents)(nil),
+ (*WantIP6NdEventsReply)(nil),
+ (*WantIP6RaEvents)(nil),
+ (*WantIP6RaEventsReply)(nil),
+ }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+ DumpIP6Fib(ctx context.Context, in *IP6FibDump) ([]*IP6FibDetails, error)
+ DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) ([]*IP6MfibDetails, error)
+ DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) ([]*IP6ndProxyDetails, error)
+ DumpIPAddress(ctx context.Context, in *IPAddressDump) ([]*IPAddressDetails, error)
+ DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) ([]*IPContainerProxyDetails, error)
+ DumpIP(ctx context.Context, in *IPDump) ([]*IPDetails, error)
+ DumpIPFib(ctx context.Context, in *IPFibDump) ([]*IPFibDetails, error)
+ DumpIPMfib(ctx context.Context, in *IPMfibDump) ([]*IPMfibDetails, error)
+ DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) ([]*IPNeighborDetails, error)
+ DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error)
+ DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) ([]*IPUnnumberedDetails, error)
+ DumpMfibSignal(ctx context.Context, in *MfibSignalDump) ([]*MfibSignalDetails, error)
+ DumpProxyArp(ctx context.Context, in *ProxyArpDump) ([]*ProxyArpDetails, error)
+ DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error)
+ IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error)
+ IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error)
+ IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
+ IP6ndSendRouterSolicitation(ctx context.Context, in *IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error)
+ IPAddDelRoute(ctx context.Context, in *IPAddDelRoute) (*IPAddDelRouteReply, error)
+ IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
+ IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error)
+ IPNeighborAddDel(ctx context.Context, in *IPNeighborAddDel) (*IPNeighborAddDelReply, error)
+ IPProbeNeighbor(ctx context.Context, in *IPProbeNeighbor) (*IPProbeNeighborReply, error)
+ IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error)
+ IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, 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)
+ IPScanNeighborEnableDisable(ctx context.Context, in *IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error)
+ IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
+ IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
+ IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error)
+ IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error)
+ ProxyArpAddDel(ctx context.Context, in *ProxyArpAddDel) (*ProxyArpAddDelReply, error)
+ ProxyArpIntfcEnableDisable(ctx context.Context, in *ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error)
+ ResetFib(ctx context.Context, in *ResetFib) (*ResetFibReply, error)
+ SetArpNeighborLimit(ctx context.Context, in *SetArpNeighborLimit) (*SetArpNeighborLimitReply, error)
+ SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error)
+ SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
+ SwInterfaceIP6ndRaConfig(ctx context.Context, in *SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error)
+ SwInterfaceIP6ndRaPrefix(ctx context.Context, in *SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error)
+ WantIP4ArpEvents(ctx context.Context, in *WantIP4ArpEvents) (*WantIP4ArpEventsReply, error)
+ WantIP6NdEvents(ctx context.Context, in *WantIP6NdEvents) (*WantIP6NdEventsReply, error)
+ WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*WantIP6RaEventsReply, error)
+}
+
+type service struct {
+ ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+ return &service{ch}
+}
+
+func (c *service) DumpIP6Fib(ctx context.Context, in *IP6FibDump) ([]*IP6FibDetails, error) {
+ var dump []*IP6FibDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IP6FibDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) ([]*IP6MfibDetails, error) {
+ var dump []*IP6MfibDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IP6MfibDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) ([]*IP6ndProxyDetails, error) {
+ var dump []*IP6ndProxyDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IP6ndProxyDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIPAddress(ctx context.Context, in *IPAddressDump) ([]*IPAddressDetails, error) {
+ var dump []*IPAddressDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPAddressDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) ([]*IPContainerProxyDetails, error) {
+ var dump []*IPContainerProxyDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPContainerProxyDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIP(ctx context.Context, in *IPDump) ([]*IPDetails, error) {
+ var dump []*IPDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIPFib(ctx context.Context, in *IPFibDump) ([]*IPFibDetails, error) {
+ var dump []*IPFibDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPFibDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIPMfib(ctx context.Context, in *IPMfibDump) ([]*IPMfibDetails, error) {
+ var dump []*IPMfibDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPMfibDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) ([]*IPNeighborDetails, error) {
+ var dump []*IPNeighborDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPNeighborDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error) {
+ var dump []*IPPuntRedirectDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPPuntRedirectDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) ([]*IPUnnumberedDetails, error) {
+ var dump []*IPUnnumberedDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(IPUnnumberedDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpMfibSignal(ctx context.Context, in *MfibSignalDump) ([]*MfibSignalDetails, error) {
+ var dump []*MfibSignalDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(MfibSignalDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpProxyArp(ctx context.Context, in *ProxyArpDump) ([]*ProxyArpDetails, error) {
+ var dump []*ProxyArpDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(ProxyArpDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error) {
+ var dump []*ProxyArpIntfcDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(ProxyArpIntfcDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) {
+ out := new(IoamDisableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) {
+ out := new(IoamEnableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error) {
+ out := new(IP6ndProxyAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IP6ndSendRouterSolicitation(ctx context.Context, in *IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error) {
+ out := new(IP6ndSendRouterSolicitationReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPAddDelRoute(ctx context.Context, in *IPAddDelRoute) (*IPAddDelRouteReply, error) {
+ out := new(IPAddDelRouteReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) {
+ out := new(IPContainerProxyAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) {
+ out := new(IPMrouteAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPNeighborAddDel(ctx context.Context, in *IPNeighborAddDel) (*IPNeighborAddDelReply, error) {
+ out := new(IPNeighborAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPProbeNeighbor(ctx context.Context, in *IPProbeNeighbor) (*IPProbeNeighborReply, error) {
+ out := new(IPProbeNeighborReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) {
+ out := new(IPPuntPoliceReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) {
+ out := new(IPPuntRedirectReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error) {
+ out := new(IPReassemblyEnableDisableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error) {
+ out := new(IPReassemblyGetReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error) {
+ out := new(IPReassemblySetReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPScanNeighborEnableDisable(ctx context.Context, in *IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error) {
+ out := new(IPScanNeighborEnableDisableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error) {
+ out := new(IPSourceAndPortRangeCheckAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error) {
+ out := new(IPSourceAndPortRangeCheckInterfaceAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error) {
+ out := new(IPSourceCheckInterfaceAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error) {
+ out := new(IPTableAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ProxyArpAddDel(ctx context.Context, in *ProxyArpAddDel) (*ProxyArpAddDelReply, error) {
+ out := new(ProxyArpAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ProxyArpIntfcEnableDisable(ctx context.Context, in *ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error) {
+ out := new(ProxyArpIntfcEnableDisableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ResetFib(ctx context.Context, in *ResetFib) (*ResetFibReply, error) {
+ out := new(ResetFibReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SetArpNeighborLimit(ctx context.Context, in *SetArpNeighborLimit) (*SetArpNeighborLimitReply, error) {
+ out := new(SetArpNeighborLimitReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error) {
+ out := new(SetIPFlowHashReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error) {
+ out := new(SwInterfaceIP6EnableDisableReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceIP6ndRaConfig(ctx context.Context, in *SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error) {
+ out := new(SwInterfaceIP6ndRaConfigReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SwInterfaceIP6ndRaPrefix(ctx context.Context, in *SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error) {
+ out := new(SwInterfaceIP6ndRaPrefixReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) WantIP4ArpEvents(ctx context.Context, in *WantIP4ArpEvents) (*WantIP4ArpEventsReply, error) {
+ out := new(WantIP4ArpEventsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) WantIP6NdEvents(ctx context.Context, in *WantIP6NdEvents) (*WantIP6NdEventsReply, error) {
+ out := new(WantIP6NdEventsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*WantIP6RaEventsReply, error) {
+ out := new(WantIP6RaEventsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
diff --git a/examples/binapi/memclnt/memclnt.ba.go b/examples/binapi/memclnt/memclnt.ba.go
new file mode 100644
index 0000000..e7395c7
--- /dev/null
+++ b/examples/binapi/memclnt/memclnt.ba.go
@@ -0,0 +1,601 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/core/memclnt.api.json
+
+/*
+Package memclnt is a generated from VPP binary API module 'memclnt'.
+
+ The memclnt module consists of:
+ 2 types
+ 22 messages
+ 13 services
+*/
+package memclnt
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// 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.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+ // ModuleName is the name of this module.
+ ModuleName = "memclnt"
+ // APIVersion is the API version of this module.
+ APIVersion = "2.1.0"
+ // VersionCrc is the CRC of this module.
+ VersionCrc = 0xb619530
+)
+
+/* Types */
+
+// MessageTableEntry represents VPP binary API type 'message_table_entry':
+type MessageTableEntry struct {
+ Index uint16
+ Name []byte `struc:"[64]byte"`
+}
+
+func (*MessageTableEntry) GetTypeName() string {
+ return "message_table_entry"
+}
+func (*MessageTableEntry) GetCrcString() string {
+ return "913bf1c6"
+}
+
+// ModuleVersion represents VPP binary API type 'module_version':
+type ModuleVersion struct {
+ Major uint32
+ Minor uint32
+ Patch uint32
+ Name []byte `struc:"[64]byte"`
+}
+
+func (*ModuleVersion) GetTypeName() string {
+ return "module_version"
+}
+func (*ModuleVersion) GetCrcString() string {
+ return "4b6da11a"
+}
+
+/* Messages */
+
+// APIVersions represents VPP binary API message 'api_versions':
+type APIVersions struct{}
+
+func (*APIVersions) GetMessageName() string {
+ return "api_versions"
+}
+func (*APIVersions) GetCrcString() string {
+ return "51077d14"
+}
+func (*APIVersions) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// APIVersionsReply represents VPP binary API message 'api_versions_reply':
+type APIVersionsReply struct {
+ Retval int32
+ Count uint32 `struc:"sizeof=APIVersions"`
+ APIVersions []ModuleVersion
+}
+
+func (*APIVersionsReply) GetMessageName() string {
+ return "api_versions_reply"
+}
+func (*APIVersionsReply) GetCrcString() string {
+ return "90a39195"
+}
+func (*APIVersionsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// GetFirstMsgID represents VPP binary API message 'get_first_msg_id':
+type GetFirstMsgID struct {
+ Name []byte `struc:"[64]byte"`
+}
+
+func (*GetFirstMsgID) GetMessageName() string {
+ return "get_first_msg_id"
+}
+func (*GetFirstMsgID) GetCrcString() string {
+ return "0cb71b0e"
+}
+func (*GetFirstMsgID) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// GetFirstMsgIDReply represents VPP binary API message 'get_first_msg_id_reply':
+type GetFirstMsgIDReply struct {
+ Retval int32
+ FirstMsgID uint16
+}
+
+func (*GetFirstMsgIDReply) GetMessageName() string {
+ return "get_first_msg_id_reply"
+}
+func (*GetFirstMsgIDReply) GetCrcString() string {
+ return "7d337472"
+}
+func (*GetFirstMsgIDReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemclntCreate represents VPP binary API message 'memclnt_create':
+type MemclntCreate struct {
+ CtxQuota int32
+ InputQueue uint64
+ Name []byte `struc:"[64]byte"`
+ APIVersions []uint32 `struc:"[8]uint32"`
+}
+
+func (*MemclntCreate) GetMessageName() string {
+ return "memclnt_create"
+}
+func (*MemclntCreate) GetCrcString() string {
+ return "6d33c5ea"
+}
+func (*MemclntCreate) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemclntCreateReply represents VPP binary API message 'memclnt_create_reply':
+type MemclntCreateReply struct {
+ Response int32
+ Handle uint64
+ Index uint32
+ MessageTable uint64
+}
+
+func (*MemclntCreateReply) GetMessageName() string {
+ return "memclnt_create_reply"
+}
+func (*MemclntCreateReply) GetCrcString() string {
+ return "42ec4560"
+}
+func (*MemclntCreateReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemclntDelete represents VPP binary API message 'memclnt_delete':
+type MemclntDelete struct {
+ Index uint32
+ Handle uint64
+ DoCleanup uint8
+}
+
+func (*MemclntDelete) GetMessageName() string {
+ return "memclnt_delete"
+}
+func (*MemclntDelete) GetCrcString() string {
+ return "4dd351e9"
+}
+func (*MemclntDelete) GetMessageType() api.MessageType {
+ return api.OtherMessage
+}
+
+// MemclntDeleteReply represents VPP binary API message 'memclnt_delete_reply':
+type MemclntDeleteReply struct {
+ Response int32
+ Handle uint64
+}
+
+func (*MemclntDeleteReply) GetMessageName() string {
+ return "memclnt_delete_reply"
+}
+func (*MemclntDeleteReply) GetCrcString() string {
+ return "3d3b6312"
+}
+func (*MemclntDeleteReply) GetMessageType() api.MessageType {
+ return api.OtherMessage
+}
+
+// MemclntKeepalive represents VPP binary API message 'memclnt_keepalive':
+type MemclntKeepalive struct{}
+
+func (*MemclntKeepalive) GetMessageName() string {
+ return "memclnt_keepalive"
+}
+func (*MemclntKeepalive) GetCrcString() string {
+ return "51077d14"
+}
+func (*MemclntKeepalive) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MemclntKeepaliveReply represents VPP binary API message 'memclnt_keepalive_reply':
+type MemclntKeepaliveReply struct {
+ Retval int32
+}
+
+func (*MemclntKeepaliveReply) GetMessageName() string {
+ return "memclnt_keepalive_reply"
+}
+func (*MemclntKeepaliveReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MemclntKeepaliveReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemclntReadTimeout represents VPP binary API message 'memclnt_read_timeout':
+type MemclntReadTimeout struct {
+ Dummy uint8
+}
+
+func (*MemclntReadTimeout) GetMessageName() string {
+ return "memclnt_read_timeout"
+}
+func (*MemclntReadTimeout) GetCrcString() string {
+ return "c3a3a452"
+}
+func (*MemclntReadTimeout) GetMessageType() api.MessageType {
+ return api.OtherMessage
+}
+
+// MemclntRxThreadSuspend represents VPP binary API message 'memclnt_rx_thread_suspend':
+type MemclntRxThreadSuspend struct {
+ Dummy uint8
+}
+
+func (*MemclntRxThreadSuspend) GetMessageName() string {
+ return "memclnt_rx_thread_suspend"
+}
+func (*MemclntRxThreadSuspend) GetCrcString() string {
+ return "c3a3a452"
+}
+func (*MemclntRxThreadSuspend) GetMessageType() api.MessageType {
+ return api.OtherMessage
+}
+
+// RPCCall represents VPP binary API message 'rpc_call':
+type RPCCall struct {
+ Function uint64
+ Multicast uint8
+ NeedBarrierSync uint8
+ SendReply uint8
+ DataLen uint32 `struc:"sizeof=Data"`
+ Data []byte
+}
+
+func (*RPCCall) GetMessageName() string {
+ return "rpc_call"
+}
+func (*RPCCall) GetCrcString() string {
+ return "7e8a2c95"
+}
+func (*RPCCall) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// RPCCallReply represents VPP binary API message 'rpc_call_reply':
+type RPCCallReply struct {
+ Retval int32
+}
+
+func (*RPCCallReply) GetMessageName() string {
+ return "rpc_call_reply"
+}
+func (*RPCCallReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*RPCCallReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// RxThreadExit represents VPP binary API message 'rx_thread_exit':
+type RxThreadExit struct {
+ Dummy uint8
+}
+
+func (*RxThreadExit) GetMessageName() string {
+ return "rx_thread_exit"
+}
+func (*RxThreadExit) GetCrcString() string {
+ return "c3a3a452"
+}
+func (*RxThreadExit) GetMessageType() api.MessageType {
+ return api.OtherMessage
+}
+
+// SockInitShm represents VPP binary API message 'sock_init_shm':
+type SockInitShm struct {
+ RequestedSize uint32
+ Nitems uint8 `struc:"sizeof=Configs"`
+ Configs []uint64
+}
+
+func (*SockInitShm) GetMessageName() string {
+ return "sock_init_shm"
+}
+func (*SockInitShm) GetCrcString() string {
+ return "51646d92"
+}
+func (*SockInitShm) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SockInitShmReply represents VPP binary API message 'sock_init_shm_reply':
+type SockInitShmReply struct {
+ Retval int32
+}
+
+func (*SockInitShmReply) GetMessageName() string {
+ return "sock_init_shm_reply"
+}
+func (*SockInitShmReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*SockInitShmReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SockclntCreate represents VPP binary API message 'sockclnt_create':
+type SockclntCreate struct {
+ Name []byte `struc:"[64]byte"`
+}
+
+func (*SockclntCreate) GetMessageName() string {
+ return "sockclnt_create"
+}
+func (*SockclntCreate) GetCrcString() string {
+ return "df2cf94d"
+}
+func (*SockclntCreate) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// SockclntCreateReply represents VPP binary API message 'sockclnt_create_reply':
+type SockclntCreateReply struct {
+ Response int32
+ Index uint32
+ Count uint16 `struc:"sizeof=MessageTable"`
+ MessageTable []MessageTableEntry
+}
+
+func (*SockclntCreateReply) GetMessageName() string {
+ return "sockclnt_create_reply"
+}
+func (*SockclntCreateReply) GetCrcString() string {
+ return "a134a8a8"
+}
+func (*SockclntCreateReply) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SockclntDelete represents VPP binary API message 'sockclnt_delete':
+type SockclntDelete struct {
+ Index uint32
+}
+
+func (*SockclntDelete) GetMessageName() string {
+ return "sockclnt_delete"
+}
+func (*SockclntDelete) GetCrcString() string {
+ return "8ac76db6"
+}
+func (*SockclntDelete) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// SockclntDeleteReply represents VPP binary API message 'sockclnt_delete_reply':
+type SockclntDeleteReply struct {
+ Response int32
+}
+
+func (*SockclntDeleteReply) GetMessageName() string {
+ return "sockclnt_delete_reply"
+}
+func (*SockclntDeleteReply) GetCrcString() string {
+ return "8f38b1ee"
+}
+func (*SockclntDeleteReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// TracePluginMsgIds represents VPP binary API message 'trace_plugin_msg_ids':
+type TracePluginMsgIds struct {
+ PluginName []byte `struc:"[128]byte"`
+ FirstMsgID uint16
+ LastMsgID uint16
+}
+
+func (*TracePluginMsgIds) GetMessageName() string {
+ return "trace_plugin_msg_ids"
+}
+func (*TracePluginMsgIds) GetCrcString() string {
+ return "64af79f9"
+}
+func (*TracePluginMsgIds) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func init() {
+ api.RegisterMessage((*APIVersions)(nil), "memclnt.APIVersions")
+ api.RegisterMessage((*APIVersionsReply)(nil), "memclnt.APIVersionsReply")
+ api.RegisterMessage((*GetFirstMsgID)(nil), "memclnt.GetFirstMsgID")
+ api.RegisterMessage((*GetFirstMsgIDReply)(nil), "memclnt.GetFirstMsgIDReply")
+ api.RegisterMessage((*MemclntCreate)(nil), "memclnt.MemclntCreate")
+ api.RegisterMessage((*MemclntCreateReply)(nil), "memclnt.MemclntCreateReply")
+ api.RegisterMessage((*MemclntDelete)(nil), "memclnt.MemclntDelete")
+ api.RegisterMessage((*MemclntDeleteReply)(nil), "memclnt.MemclntDeleteReply")
+ api.RegisterMessage((*MemclntKeepalive)(nil), "memclnt.MemclntKeepalive")
+ api.RegisterMessage((*MemclntKeepaliveReply)(nil), "memclnt.MemclntKeepaliveReply")
+ api.RegisterMessage((*MemclntReadTimeout)(nil), "memclnt.MemclntReadTimeout")
+ api.RegisterMessage((*MemclntRxThreadSuspend)(nil), "memclnt.MemclntRxThreadSuspend")
+ api.RegisterMessage((*RPCCall)(nil), "memclnt.RPCCall")
+ api.RegisterMessage((*RPCCallReply)(nil), "memclnt.RPCCallReply")
+ api.RegisterMessage((*RxThreadExit)(nil), "memclnt.RxThreadExit")
+ api.RegisterMessage((*SockInitShm)(nil), "memclnt.SockInitShm")
+ api.RegisterMessage((*SockInitShmReply)(nil), "memclnt.SockInitShmReply")
+ api.RegisterMessage((*SockclntCreate)(nil), "memclnt.SockclntCreate")
+ api.RegisterMessage((*SockclntCreateReply)(nil), "memclnt.SockclntCreateReply")
+ api.RegisterMessage((*SockclntDelete)(nil), "memclnt.SockclntDelete")
+ api.RegisterMessage((*SockclntDeleteReply)(nil), "memclnt.SockclntDeleteReply")
+ api.RegisterMessage((*TracePluginMsgIds)(nil), "memclnt.TracePluginMsgIds")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*APIVersions)(nil),
+ (*APIVersionsReply)(nil),
+ (*GetFirstMsgID)(nil),
+ (*GetFirstMsgIDReply)(nil),
+ (*MemclntCreate)(nil),
+ (*MemclntCreateReply)(nil),
+ (*MemclntDelete)(nil),
+ (*MemclntDeleteReply)(nil),
+ (*MemclntKeepalive)(nil),
+ (*MemclntKeepaliveReply)(nil),
+ (*MemclntReadTimeout)(nil),
+ (*MemclntRxThreadSuspend)(nil),
+ (*RPCCall)(nil),
+ (*RPCCallReply)(nil),
+ (*RxThreadExit)(nil),
+ (*SockInitShm)(nil),
+ (*SockInitShmReply)(nil),
+ (*SockclntCreate)(nil),
+ (*SockclntCreateReply)(nil),
+ (*SockclntDelete)(nil),
+ (*SockclntDeleteReply)(nil),
+ (*TracePluginMsgIds)(nil),
+ }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+ APIVersions(ctx context.Context, in *APIVersions) (*APIVersionsReply, error)
+ GetFirstMsgID(ctx context.Context, in *GetFirstMsgID) (*GetFirstMsgIDReply, error)
+ MemclntCreate(ctx context.Context, in *MemclntCreate) (*MemclntCreateReply, error)
+ MemclntDelete(ctx context.Context, in *MemclntDelete) (*MemclntDeleteReply, error)
+ MemclntKeepalive(ctx context.Context, in *MemclntKeepalive) (*MemclntKeepaliveReply, error)
+ MemclntReadTimeout(ctx context.Context, in *MemclntReadTimeout) error
+ MemclntRxThreadSuspend(ctx context.Context, in *MemclntRxThreadSuspend) error
+ RPCCall(ctx context.Context, in *RPCCall) (*RPCCallReply, error)
+ RxThreadExit(ctx context.Context, in *RxThreadExit) error
+ SockInitShm(ctx context.Context, in *SockInitShm) (*SockInitShmReply, error)
+ SockclntCreate(ctx context.Context, in *SockclntCreate) (*SockclntCreateReply, error)
+ SockclntDelete(ctx context.Context, in *SockclntDelete) (*SockclntDeleteReply, error)
+ TracePluginMsgIds(ctx context.Context, in *TracePluginMsgIds) error
+}
+
+type service struct {
+ ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+ return &service{ch}
+}
+
+func (c *service) APIVersions(ctx context.Context, in *APIVersions) (*APIVersionsReply, error) {
+ out := new(APIVersionsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) GetFirstMsgID(ctx context.Context, in *GetFirstMsgID) (*GetFirstMsgIDReply, error) {
+ out := new(GetFirstMsgIDReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MemclntCreate(ctx context.Context, in *MemclntCreate) (*MemclntCreateReply, error) {
+ out := new(MemclntCreateReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MemclntDelete(ctx context.Context, in *MemclntDelete) (*MemclntDeleteReply, error) {
+ out := new(MemclntDeleteReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MemclntKeepalive(ctx context.Context, in *MemclntKeepalive) (*MemclntKeepaliveReply, error) {
+ out := new(MemclntKeepaliveReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MemclntReadTimeout(ctx context.Context, in *MemclntReadTimeout) error {
+ c.ch.SendRequest(in)
+ return nil
+}
+
+func (c *service) MemclntRxThreadSuspend(ctx context.Context, in *MemclntRxThreadSuspend) error {
+ c.ch.SendRequest(in)
+ return nil
+}
+
+func (c *service) RPCCall(ctx context.Context, in *RPCCall) (*RPCCallReply, error) {
+ out := new(RPCCallReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) RxThreadExit(ctx context.Context, in *RxThreadExit) error {
+ c.ch.SendRequest(in)
+ return nil
+}
+
+func (c *service) SockInitShm(ctx context.Context, in *SockInitShm) (*SockInitShmReply, error) {
+ out := new(SockInitShmReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SockclntCreate(ctx context.Context, in *SockclntCreate) (*SockclntCreateReply, error) {
+ out := new(SockclntCreateReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) SockclntDelete(ctx context.Context, in *SockclntDelete) (*SockclntDeleteReply, error) {
+ out := new(SockclntDeleteReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) TracePluginMsgIds(ctx context.Context, in *TracePluginMsgIds) error {
+ c.ch.SendRequest(in)
+ return nil
+}
diff --git a/examples/binapi/memif/memif.ba.go b/examples/binapi/memif/memif.ba.go
new file mode 100644
index 0000000..1ac0b0a
--- /dev/null
+++ b/examples/binapi/memif/memif.ba.go
@@ -0,0 +1,317 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/plugins/memif.api.json
+
+/*
+Package memif is a generated from VPP binary API module 'memif'.
+
+ The memif module consists of:
+ 10 messages
+ 5 services
+*/
+package memif
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// 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.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+ // ModuleName is the name of this module.
+ ModuleName = "memif"
+ // APIVersion is the API version of this module.
+ APIVersion = "2.0.0"
+ // VersionCrc is the CRC of this module.
+ VersionCrc = 0x31b42e17
+)
+
+/* Messages */
+
+// MemifCreate represents VPP binary API message 'memif_create':
+type MemifCreate struct {
+ Role uint8
+ Mode uint8
+ RxQueues uint8
+ TxQueues uint8
+ ID uint32
+ SocketID uint32
+ Secret []byte `struc:"[24]byte"`
+ RingSize uint32
+ BufferSize uint16
+ HwAddr []byte `struc:"[6]byte"`
+}
+
+func (*MemifCreate) GetMessageName() string {
+ return "memif_create"
+}
+func (*MemifCreate) GetCrcString() string {
+ return "6597cdb2"
+}
+func (*MemifCreate) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MemifCreateReply represents VPP binary API message 'memif_create_reply':
+type MemifCreateReply struct {
+ Retval int32
+ SwIfIndex uint32
+}
+
+func (*MemifCreateReply) GetMessageName() string {
+ return "memif_create_reply"
+}
+func (*MemifCreateReply) GetCrcString() string {
+ return "fda5941f"
+}
+func (*MemifCreateReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemifDelete represents VPP binary API message 'memif_delete':
+type MemifDelete struct {
+ SwIfIndex uint32
+}
+
+func (*MemifDelete) GetMessageName() string {
+ return "memif_delete"
+}
+func (*MemifDelete) GetCrcString() string {
+ return "529cb13f"
+}
+func (*MemifDelete) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MemifDeleteReply represents VPP binary API message 'memif_delete_reply':
+type MemifDeleteReply struct {
+ Retval int32
+}
+
+func (*MemifDeleteReply) GetMessageName() string {
+ return "memif_delete_reply"
+}
+func (*MemifDeleteReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MemifDeleteReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemifDetails represents VPP binary API message 'memif_details':
+type MemifDetails struct {
+ SwIfIndex uint32
+ IfName []byte `struc:"[64]byte"`
+ HwAddr []byte `struc:"[6]byte"`
+ ID uint32
+ Role uint8
+ Mode uint8
+ SocketID uint32
+ RingSize uint32
+ BufferSize uint16
+ AdminUpDown uint8
+ LinkUpDown uint8
+}
+
+func (*MemifDetails) GetMessageName() string {
+ return "memif_details"
+}
+func (*MemifDetails) GetCrcString() string {
+ return "4f5a3397"
+}
+func (*MemifDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemifDump represents VPP binary API message 'memif_dump':
+type MemifDump struct{}
+
+func (*MemifDump) GetMessageName() string {
+ return "memif_dump"
+}
+func (*MemifDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*MemifDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MemifSocketFilenameAddDel represents VPP binary API message 'memif_socket_filename_add_del':
+type MemifSocketFilenameAddDel struct {
+ IsAdd uint8
+ SocketID uint32
+ SocketFilename []byte `struc:"[128]byte"`
+}
+
+func (*MemifSocketFilenameAddDel) GetMessageName() string {
+ return "memif_socket_filename_add_del"
+}
+func (*MemifSocketFilenameAddDel) GetCrcString() string {
+ return "30e3929d"
+}
+func (*MemifSocketFilenameAddDel) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// MemifSocketFilenameAddDelReply represents VPP binary API message 'memif_socket_filename_add_del_reply':
+type MemifSocketFilenameAddDelReply struct {
+ Retval int32
+}
+
+func (*MemifSocketFilenameAddDelReply) GetMessageName() string {
+ return "memif_socket_filename_add_del_reply"
+}
+func (*MemifSocketFilenameAddDelReply) GetCrcString() string {
+ return "e8d4e804"
+}
+func (*MemifSocketFilenameAddDelReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemifSocketFilenameDetails represents VPP binary API message 'memif_socket_filename_details':
+type MemifSocketFilenameDetails struct {
+ SocketID uint32
+ SocketFilename []byte `struc:"[128]byte"`
+}
+
+func (*MemifSocketFilenameDetails) GetMessageName() string {
+ return "memif_socket_filename_details"
+}
+func (*MemifSocketFilenameDetails) GetCrcString() string {
+ return "e347e32f"
+}
+func (*MemifSocketFilenameDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// MemifSocketFilenameDump represents VPP binary API message 'memif_socket_filename_dump':
+type MemifSocketFilenameDump struct{}
+
+func (*MemifSocketFilenameDump) GetMessageName() string {
+ return "memif_socket_filename_dump"
+}
+func (*MemifSocketFilenameDump) GetCrcString() string {
+ return "51077d14"
+}
+func (*MemifSocketFilenameDump) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func init() {
+ api.RegisterMessage((*MemifCreate)(nil), "memif.MemifCreate")
+ api.RegisterMessage((*MemifCreateReply)(nil), "memif.MemifCreateReply")
+ api.RegisterMessage((*MemifDelete)(nil), "memif.MemifDelete")
+ api.RegisterMessage((*MemifDeleteReply)(nil), "memif.MemifDeleteReply")
+ api.RegisterMessage((*MemifDetails)(nil), "memif.MemifDetails")
+ api.RegisterMessage((*MemifDump)(nil), "memif.MemifDump")
+ api.RegisterMessage((*MemifSocketFilenameAddDel)(nil), "memif.MemifSocketFilenameAddDel")
+ api.RegisterMessage((*MemifSocketFilenameAddDelReply)(nil), "memif.MemifSocketFilenameAddDelReply")
+ api.RegisterMessage((*MemifSocketFilenameDetails)(nil), "memif.MemifSocketFilenameDetails")
+ api.RegisterMessage((*MemifSocketFilenameDump)(nil), "memif.MemifSocketFilenameDump")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*MemifCreate)(nil),
+ (*MemifCreateReply)(nil),
+ (*MemifDelete)(nil),
+ (*MemifDeleteReply)(nil),
+ (*MemifDetails)(nil),
+ (*MemifDump)(nil),
+ (*MemifSocketFilenameAddDel)(nil),
+ (*MemifSocketFilenameAddDelReply)(nil),
+ (*MemifSocketFilenameDetails)(nil),
+ (*MemifSocketFilenameDump)(nil),
+ }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+ DumpMemif(ctx context.Context, in *MemifDump) ([]*MemifDetails, error)
+ DumpMemifSocketFilename(ctx context.Context, in *MemifSocketFilenameDump) ([]*MemifSocketFilenameDetails, error)
+ MemifCreate(ctx context.Context, in *MemifCreate) (*MemifCreateReply, error)
+ MemifDelete(ctx context.Context, in *MemifDelete) (*MemifDeleteReply, error)
+ MemifSocketFilenameAddDel(ctx context.Context, in *MemifSocketFilenameAddDel) (*MemifSocketFilenameAddDelReply, error)
+}
+
+type service struct {
+ ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+ return &service{ch}
+}
+
+func (c *service) DumpMemif(ctx context.Context, in *MemifDump) ([]*MemifDetails, error) {
+ var dump []*MemifDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(MemifDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) DumpMemifSocketFilename(ctx context.Context, in *MemifSocketFilenameDump) ([]*MemifSocketFilenameDetails, error) {
+ var dump []*MemifSocketFilenameDetails
+ req := c.ch.SendMultiRequest(in)
+ for {
+ m := new(MemifSocketFilenameDetails)
+ stop, err := req.ReceiveReply(m)
+ if stop {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ dump = append(dump, m)
+ }
+ return dump, nil
+}
+
+func (c *service) MemifCreate(ctx context.Context, in *MemifCreate) (*MemifCreateReply, error) {
+ out := new(MemifCreateReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MemifDelete(ctx context.Context, in *MemifDelete) (*MemifDeleteReply, error) {
+ out := new(MemifDeleteReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) MemifSocketFilenameAddDel(ctx context.Context, in *MemifSocketFilenameAddDel) (*MemifSocketFilenameAddDelReply, error) {
+ out := new(MemifSocketFilenameAddDelReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
diff --git a/examples/binapi/vpe/vpe.ba.go b/examples/binapi/vpe/vpe.ba.go
new file mode 100644
index 0000000..25707fc
--- /dev/null
+++ b/examples/binapi/vpe/vpe.ba.go
@@ -0,0 +1,493 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: /usr/share/vpp/api/core/vpe.api.json
+
+/*
+Package vpe is a generated from VPP binary API module 'vpe'.
+
+ The vpe module consists of:
+ 1 type
+ 18 messages
+ 9 services
+*/
+package vpe
+
+import api "git.fd.io/govpp.git/api"
+import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
+
+// 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.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+ // ModuleName is the name of this module.
+ ModuleName = "vpe"
+ // APIVersion is the API version of this module.
+ APIVersion = "1.1.0"
+ // VersionCrc is the CRC of this module.
+ VersionCrc = 0x2cc8d629
+)
+
+/* Types */
+
+// ThreadData represents VPP binary API type 'thread_data':
+type ThreadData struct {
+ ID uint32
+ Name []byte `struc:"[64]byte"`
+ Type []byte `struc:"[64]byte"`
+ PID uint32
+ CPUID uint32
+ Core uint32
+ CPUSocket uint32
+}
+
+func (*ThreadData) GetTypeName() string {
+ return "thread_data"
+}
+func (*ThreadData) GetCrcString() string {
+ return "0f57094e"
+}
+
+/* Messages */
+
+// AddNodeNext represents VPP binary API message 'add_node_next':
+type AddNodeNext struct {
+ NodeName []byte `struc:"[64]byte"`
+ NextName []byte `struc:"[64]byte"`
+}
+
+func (*AddNodeNext) GetMessageName() string {
+ return "add_node_next"
+}
+func (*AddNodeNext) GetCrcString() string {
+ return "9ab92f7a"
+}
+func (*AddNodeNext) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// AddNodeNextReply represents VPP binary API message 'add_node_next_reply':
+type AddNodeNextReply struct {
+ Retval int32
+ NextIndex uint32
+}
+
+func (*AddNodeNextReply) GetMessageName() string {
+ return "add_node_next_reply"
+}
+func (*AddNodeNextReply) GetCrcString() string {
+ return "2ed75f32"
+}
+func (*AddNodeNextReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// Cli represents VPP binary API message 'cli':
+type Cli struct {
+ CmdInShmem uint64
+}
+
+func (*Cli) GetMessageName() string {
+ return "cli"
+}
+func (*Cli) GetCrcString() string {
+ return "23bfbfff"
+}
+func (*Cli) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// CliInband represents VPP binary API message 'cli_inband':
+type CliInband struct {
+ XXX_CmdLen uint32 `struc:"sizeof=Cmd"`
+ Cmd string
+}
+
+func (*CliInband) GetMessageName() string {
+ return "cli_inband"
+}
+func (*CliInband) GetCrcString() string {
+ return "b1ad59b3"
+}
+func (*CliInband) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// CliInbandReply represents VPP binary API message 'cli_inband_reply':
+type CliInbandReply struct {
+ Retval int32
+ XXX_ReplyLen uint32 `struc:"sizeof=Reply"`
+ Reply string
+}
+
+func (*CliInbandReply) GetMessageName() string {
+ return "cli_inband_reply"
+}
+func (*CliInbandReply) GetCrcString() string {
+ return "6d3c80a4"
+}
+func (*CliInbandReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// CliReply represents VPP binary API message 'cli_reply':
+type CliReply struct {
+ Retval int32
+ ReplyInShmem uint64
+}
+
+func (*CliReply) GetMessageName() string {
+ return "cli_reply"
+}
+func (*CliReply) GetCrcString() string {
+ return "06d68297"
+}
+func (*CliReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ControlPing represents VPP binary API message 'control_ping':
+type ControlPing struct{}
+
+func (*ControlPing) GetMessageName() string {
+ return "control_ping"
+}
+func (*ControlPing) GetCrcString() string {
+ return "51077d14"
+}
+func (*ControlPing) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ControlPingReply represents VPP binary API message 'control_ping_reply':
+type ControlPingReply struct {
+ Retval int32
+ ClientIndex uint32
+ VpePID uint32
+}
+
+func (*ControlPingReply) GetMessageName() string {
+ return "control_ping_reply"
+}
+func (*ControlPingReply) GetCrcString() string {
+ return "f6b0b8ca"
+}
+func (*ControlPingReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// GetNextIndex represents VPP binary API message 'get_next_index':
+type GetNextIndex struct {
+ NodeName []byte `struc:"[64]byte"`
+ NextName []byte `struc:"[64]byte"`
+}
+
+func (*GetNextIndex) GetMessageName() string {
+ return "get_next_index"
+}
+func (*GetNextIndex) GetCrcString() string {
+ return "9ab92f7a"
+}
+func (*GetNextIndex) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// GetNextIndexReply represents VPP binary API message 'get_next_index_reply':
+type GetNextIndexReply struct {
+ Retval int32
+ NextIndex uint32
+}
+
+func (*GetNextIndexReply) GetMessageName() string {
+ return "get_next_index_reply"
+}
+func (*GetNextIndexReply) GetCrcString() string {
+ return "2ed75f32"
+}
+func (*GetNextIndexReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// GetNodeGraph represents VPP binary API message 'get_node_graph':
+type GetNodeGraph struct{}
+
+func (*GetNodeGraph) GetMessageName() string {
+ return "get_node_graph"
+}
+func (*GetNodeGraph) GetCrcString() string {
+ return "51077d14"
+}
+func (*GetNodeGraph) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// GetNodeGraphReply represents VPP binary API message 'get_node_graph_reply':
+type GetNodeGraphReply struct {
+ Retval int32
+ ReplyInShmem uint64
+}
+
+func (*GetNodeGraphReply) GetMessageName() string {
+ return "get_node_graph_reply"
+}
+func (*GetNodeGraphReply) GetCrcString() string {
+ return "06d68297"
+}
+func (*GetNodeGraphReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// GetNodeIndex represents VPP binary API message 'get_node_index':
+type GetNodeIndex struct {
+ NodeName []byte `struc:"[64]byte"`
+}
+
+func (*GetNodeIndex) GetMessageName() string {
+ return "get_node_index"
+}
+func (*GetNodeIndex) GetCrcString() string {
+ return "6c9a495d"
+}
+func (*GetNodeIndex) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// GetNodeIndexReply represents VPP binary API message 'get_node_index_reply':
+type GetNodeIndexReply struct {
+ Retval int32
+ NodeIndex uint32
+}
+
+func (*GetNodeIndexReply) GetMessageName() string {
+ return "get_node_index_reply"
+}
+func (*GetNodeIndexReply) GetCrcString() string {
+ return "a8600b89"
+}
+func (*GetNodeIndexReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ShowThreads represents VPP binary API message 'show_threads':
+type ShowThreads struct{}
+
+func (*ShowThreads) GetMessageName() string {
+ return "show_threads"
+}
+func (*ShowThreads) GetCrcString() string {
+ return "51077d14"
+}
+func (*ShowThreads) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ShowThreadsReply represents VPP binary API message 'show_threads_reply':
+type ShowThreadsReply struct {
+ Retval int32
+ Count uint32 `struc:"sizeof=ThreadData"`
+ ThreadData []ThreadData
+}
+
+func (*ShowThreadsReply) GetMessageName() string {
+ return "show_threads_reply"
+}
+func (*ShowThreadsReply) GetCrcString() string {
+ return "6942fb35"
+}
+func (*ShowThreadsReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+// ShowVersion represents VPP binary API message 'show_version':
+type ShowVersion struct{}
+
+func (*ShowVersion) GetMessageName() string {
+ return "show_version"
+}
+func (*ShowVersion) GetCrcString() string {
+ return "51077d14"
+}
+func (*ShowVersion) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+// ShowVersionReply represents VPP binary API message 'show_version_reply':
+type ShowVersionReply struct {
+ Retval int32
+ XXX_ProgramLen uint32 `struc:"sizeof=Program"`
+ Program string
+ XXX_VersionLen uint32 `struc:"sizeof=Version"`
+ Version string
+ XXX_BuildDateLen uint32 `struc:"sizeof=BuildDate"`
+ BuildDate string
+ XXX_BuildDirectoryLen uint32 `struc:"sizeof=BuildDirectory"`
+ BuildDirectory string
+}
+
+func (*ShowVersionReply) GetMessageName() string {
+ return "show_version_reply"
+}
+func (*ShowVersionReply) GetCrcString() string {
+ return "b9bcf6df"
+}
+func (*ShowVersionReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func init() {
+ api.RegisterMessage((*AddNodeNext)(nil), "vpe.AddNodeNext")
+ api.RegisterMessage((*AddNodeNextReply)(nil), "vpe.AddNodeNextReply")
+ api.RegisterMessage((*Cli)(nil), "vpe.Cli")
+ api.RegisterMessage((*CliInband)(nil), "vpe.CliInband")
+ api.RegisterMessage((*CliInbandReply)(nil), "vpe.CliInbandReply")
+ api.RegisterMessage((*CliReply)(nil), "vpe.CliReply")
+ api.RegisterMessage((*ControlPing)(nil), "vpe.ControlPing")
+ api.RegisterMessage((*ControlPingReply)(nil), "vpe.ControlPingReply")
+ api.RegisterMessage((*GetNextIndex)(nil), "vpe.GetNextIndex")
+ api.RegisterMessage((*GetNextIndexReply)(nil), "vpe.GetNextIndexReply")
+ api.RegisterMessage((*GetNodeGraph)(nil), "vpe.GetNodeGraph")
+ api.RegisterMessage((*GetNodeGraphReply)(nil), "vpe.GetNodeGraphReply")
+ api.RegisterMessage((*GetNodeIndex)(nil), "vpe.GetNodeIndex")
+ api.RegisterMessage((*GetNodeIndexReply)(nil), "vpe.GetNodeIndexReply")
+ api.RegisterMessage((*ShowThreads)(nil), "vpe.ShowThreads")
+ api.RegisterMessage((*ShowThreadsReply)(nil), "vpe.ShowThreadsReply")
+ api.RegisterMessage((*ShowVersion)(nil), "vpe.ShowVersion")
+ api.RegisterMessage((*ShowVersionReply)(nil), "vpe.ShowVersionReply")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*AddNodeNext)(nil),
+ (*AddNodeNextReply)(nil),
+ (*Cli)(nil),
+ (*CliInband)(nil),
+ (*CliInbandReply)(nil),
+ (*CliReply)(nil),
+ (*ControlPing)(nil),
+ (*ControlPingReply)(nil),
+ (*GetNextIndex)(nil),
+ (*GetNextIndexReply)(nil),
+ (*GetNodeGraph)(nil),
+ (*GetNodeGraphReply)(nil),
+ (*GetNodeIndex)(nil),
+ (*GetNodeIndexReply)(nil),
+ (*ShowThreads)(nil),
+ (*ShowThreadsReply)(nil),
+ (*ShowVersion)(nil),
+ (*ShowVersionReply)(nil),
+ }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+ AddNodeNext(ctx context.Context, in *AddNodeNext) (*AddNodeNextReply, error)
+ Cli(ctx context.Context, in *Cli) (*CliReply, error)
+ CliInband(ctx context.Context, in *CliInband) (*CliInbandReply, error)
+ ControlPing(ctx context.Context, in *ControlPing) (*ControlPingReply, error)
+ GetNextIndex(ctx context.Context, in *GetNextIndex) (*GetNextIndexReply, error)
+ GetNodeGraph(ctx context.Context, in *GetNodeGraph) (*GetNodeGraphReply, error)
+ GetNodeIndex(ctx context.Context, in *GetNodeIndex) (*GetNodeIndexReply, error)
+ ShowThreads(ctx context.Context, in *ShowThreads) (*ShowThreadsReply, error)
+ ShowVersion(ctx context.Context, in *ShowVersion) (*ShowVersionReply, error)
+}
+
+type service struct {
+ ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+ return &service{ch}
+}
+
+func (c *service) AddNodeNext(ctx context.Context, in *AddNodeNext) (*AddNodeNextReply, error) {
+ out := new(AddNodeNextReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) Cli(ctx context.Context, in *Cli) (*CliReply, error) {
+ out := new(CliReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) CliInband(ctx context.Context, in *CliInband) (*CliInbandReply, error) {
+ out := new(CliInbandReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ControlPing(ctx context.Context, in *ControlPing) (*ControlPingReply, error) {
+ out := new(ControlPingReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) GetNextIndex(ctx context.Context, in *GetNextIndex) (*GetNextIndexReply, error) {
+ out := new(GetNextIndexReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) GetNodeGraph(ctx context.Context, in *GetNodeGraph) (*GetNodeGraphReply, error) {
+ out := new(GetNodeGraphReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) GetNodeIndex(ctx context.Context, in *GetNodeIndex) (*GetNodeIndexReply, error) {
+ out := new(GetNodeIndexReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ShowThreads(ctx context.Context, in *ShowThreads) (*ShowThreadsReply, error) {
+ out := new(ShowThreadsReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *service) ShowVersion(ctx context.Context, in *ShowVersion) (*ShowVersionReply, error) {
+ out := new(ShowVersionReply)
+ err := c.ch.SendRequest(in).ReceiveReply(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}