summaryrefslogtreecommitdiffstats
path: root/examples/bin_api/interfaces/interfaces.ba.go
diff options
context:
space:
mode:
authorOndrej Fabry <ofabry@cisco.com>2018-08-15 12:59:25 +0200
committerOndrej Fabry <ofabry@cisco.com>2018-08-16 15:03:29 +0200
commita3bb834db727a3ac9a1ffcfeae9265e5dead851f (patch)
tree6ffe64d2dd78a4c3434c2889dd7582b74619fe2b /examples/bin_api/interfaces/interfaces.ba.go
parentda815585c3f75c4ac073b0766dd668abf83844d8 (diff)
Refactor GoVPP
Squashed commit of the following: commit 348930db31575e9f59b3834d9fec07411f011e05 Author: Ondrej Fabry <ofabry@cisco.com> Date: Wed Aug 15 11:30:13 2018 +0200 Use debug level for log about different context commit 9fc963c559cea67a41b85c6cdadc322fb3b1fc7c Author: Ondrej Fabry <ofabry@cisco.com> Date: Wed Aug 15 11:22:03 2018 +0200 Remove annoying logs and add env vars for debugging commit fdc9fd624d13feadb602e0d03d58f8a44b7a565f Author: Ondrej Fabry <ofabry@cisco.com> Date: Wed Aug 15 11:18:47 2018 +0200 Fix printing unknown VPPApiError commit 8f968be36a91de4d4a8ea17593ba314f82aa9583 Author: Ondrej Fabry <ofabry@cisco.com> Date: Tue Aug 14 17:25:10 2018 +0200 Refactor entire GoVPP - fix some cases with inconsistent VPP messages, causing messages to be incorrectly identified as event or request - simplify API, remove direct access to internal Go channels - add module name with message to registration of messages - start watching filesystem only when vpe-api file does not exist - simplify code in message codec and remove unneeded parts - retrieve IDs of all registered messages after connect to VPP - define fallback for control ping in core to avoid duplicate registration - add SetLogLevel function to set logger level more easily - remove lot of unused code commit 34dd1b7e10ef0324aa8c4e4cc42375bd6021c6cb Author: Ondrej Fabry <ofabry@cisco.com> Date: Mon Aug 13 11:29:54 2018 +0200 Rename VnetError to VPPApiError commit c6549d6f77847a1367a12ff47fb716e2955e973a Author: Ondrej Fabry <ofabry@cisco.com> Date: Mon Aug 13 10:23:43 2018 +0200 Fix examples and regenerate binapi commit 4612e36b416779771f5efab4fc654c2766d2cb1c Author: Ondrej Fabry <ofabry@cisco.com> Date: Mon Aug 13 09:51:22 2018 +0200 Add parsing and generation for services commit ac9c5280c5aa27e325f327609e2364cc66f3723f Author: Ondrej Fabry <ofabry@cisco.com> Date: Fri Aug 10 14:30:15 2018 +0200 Fix exit status on error and add continue-onerror flag commit 9b3f4ef9fc7c8c62037fa107085eae18a8725314 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 15:20:56 2018 +0200 Return VnetError when Retval != 0 commit 8fd21a907b5e628ec4d2026215b83d15da96c297 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 14:59:05 2018 +0200 Add all missing errors from api_errno.h commit 08450f288d3046ebaecf40203174ae342a07f1eb Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 14:29:27 2018 +0200 Update README commit d8dced0728dd62243539be741868fb7d9b8de4cc Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 13:59:59 2018 +0200 Regenerate vpe in core commit 254da7592cdbf634cf7aa46ae36ce7bb6d4ee555 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 13:37:00 2018 +0200 Add VnetError type for Retvals commit 4475c1087fb53ab4c788e530bc7fef7cfc89d2cd Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 13:36:07 2018 +0200 Add registration API commit 892a3ea5a2c703e2f7c29331663f6a6fa706bff5 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 13:30:43 2018 +0200 Generate registration for messages and check all IDs on connect commit 389ed03b6e7082260281866c3449d72d72347c99 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 11:32:41 2018 +0200 Show error for empty adapter (on Darwin/Windows) commit ef1ea040d656ade64242432dc5f06810ed8dcde6 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 11:31:37 2018 +0200 Improve logged info commit d4adae3b14ed54c8d693060dd857fa9ba5ec8e06 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 11:27:48 2018 +0200 Update examples commit 63921e1346014701a22639a2611129563bb1eb78 Author: Ondrej Fabry <ofabry@cisco.com> Date: Thu Aug 9 11:02:56 2018 +0200 Generate unions and fix some issues - add comments between sections - define structs on single line if it has no fields - generate unions with setters/getters for each field - fix detection of message type commit 6ab3e3fa590b245898306a6ffaf32c7721eab60c Author: Ondrej Fabry <ofabry@cisco.com> Date: Wed Aug 8 15:37:10 2018 +0200 Refactor binapi-generator - split JSON parsing from code generation - parse and generate enums - parse unions (no generation yet) - change output file suffix to '.ba.go' - cleanup and simplify code - split code into files - add flag for debug mode Change-Id: I58f685e0d4c7a38e9a7b6ea0a1f47792d95d7399 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Diffstat (limited to 'examples/bin_api/interfaces/interfaces.ba.go')
-rw-r--r--examples/bin_api/interfaces/interfaces.ba.go2453
1 files changed, 2453 insertions, 0 deletions
diff --git a/examples/bin_api/interfaces/interfaces.ba.go b/examples/bin_api/interfaces/interfaces.ba.go
new file mode 100644
index 0000000..5ef58ed
--- /dev/null
+++ b/examples/bin_api/interfaces/interfaces.ba.go
@@ -0,0 +1,2453 @@
+// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// source: interface.api.json
+
+/*
+Package interfaces is a generated VPP binary API of the 'interface' VPP module.
+
+It is generated from this file:
+ interface.api.json
+
+It contains these VPP binary API objects:
+ 45 messages
+ 3 types
+ 22 services
+*/
+package interfaces
+
+import "git.fd.io/govpp.git/api"
+import "github.com/lunixbochs/struc"
+import "bytes"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = struc.Pack
+var _ = bytes.NewBuffer
+
+/* Types */
+
+// VlibCounter represents the VPP binary API type 'vlib_counter'.
+// Generated from 'interface.api.json', line 1301:
+//
+// "vlib_counter",
+// [
+// "u64",
+// "packets"
+// ],
+// [
+// "u64",
+// "bytes"
+// ],
+// {
+// "crc": "0xce2325a2"
+// }
+//
+type VlibCounter struct {
+ Packets uint64
+ Bytes uint64
+}
+
+func (*VlibCounter) GetTypeName() string {
+ return "vlib_counter"
+}
+func (*VlibCounter) GetCrcString() string {
+ return "ce2325a2"
+}
+
+// VnetCombinedCounter represents the VPP binary API type 'vnet_combined_counter'.
+// Generated from 'interface.api.json', line 1315:
+//
+// "vnet_combined_counter",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u64",
+// "rx_packets"
+// ],
+// [
+// "u64",
+// "rx_bytes"
+// ],
+// [
+// "u64",
+// "rx_unicast_packets"
+// ],
+// [
+// "u64",
+// "rx_unicast_bytes"
+// ],
+// [
+// "u64",
+// "rx_multicast_packets"
+// ],
+// [
+// "u64",
+// "rx_multicast_bytes"
+// ],
+// [
+// "u64",
+// "rx_broadcast_packets"
+// ],
+// [
+// "u64",
+// "rx_broadcast_bytes"
+// ],
+// [
+// "u64",
+// "tx_packets"
+// ],
+// [
+// "u64",
+// "tx_bytes"
+// ],
+// [
+// "u64",
+// "tx_unicast_packets"
+// ],
+// [
+// "u64",
+// "tx_unicast_bytes"
+// ],
+// [
+// "u64",
+// "tx_multicast_packets"
+// ],
+// [
+// "u64",
+// "tx_multicast_bytes"
+// ],
+// [
+// "u64",
+// "tx_broadcast_packets"
+// ],
+// [
+// "u64",
+// "tx_broadcast_bytes"
+// ],
+// {
+// "crc": "0x20905ca4"
+// }
+//
+type VnetCombinedCounter struct {
+ SwIfIndex uint32
+ RxPackets uint64
+ RxBytes uint64
+ RxUnicastPackets uint64
+ RxUnicastBytes uint64
+ RxMulticastPackets uint64
+ RxMulticastBytes uint64
+ RxBroadcastPackets uint64
+ RxBroadcastBytes uint64
+ TxPackets uint64
+ TxBytes uint64
+ TxUnicastPackets uint64
+ TxUnicastBytes uint64
+ TxMulticastPackets uint64
+ TxMulticastBytes uint64
+ TxBroadcastPackets uint64
+ TxBroadcastBytes uint64
+}
+
+func (*VnetCombinedCounter) GetTypeName() string {
+ return "vnet_combined_counter"
+}
+func (*VnetCombinedCounter) GetCrcString() string {
+ return "20905ca4"
+}
+
+// VnetSimpleCounter represents the VPP binary API type 'vnet_simple_counter'.
+// Generated from 'interface.api.json', line 1389:
+//
+// "vnet_simple_counter",
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u64",
+// "drop"
+// ],
+// [
+// "u64",
+// "punt"
+// ],
+// [
+// "u64",
+// "rx_ip4"
+// ],
+// [
+// "u64",
+// "rx_ip6"
+// ],
+// [
+// "u64",
+// "rx_no_buffer"
+// ],
+// [
+// "u64",
+// "rx_miss"
+// ],
+// [
+// "u64",
+// "rx_error"
+// ],
+// [
+// "u64",
+// "tx_error"
+// ],
+// [
+// "u64",
+// "rx_mpls"
+// ],
+// {
+// "crc": "0x8bd65e2d"
+// }
+//
+type VnetSimpleCounter struct {
+ SwIfIndex uint32
+ Drop uint64
+ Punt uint64
+ RxIP4 uint64
+ RxIP6 uint64
+ RxNoBuffer uint64
+ RxMiss uint64
+ RxError uint64
+ TxError uint64
+ RxMpls uint64
+}
+
+func (*VnetSimpleCounter) GetTypeName() string {
+ return "vnet_simple_counter"
+}
+func (*VnetSimpleCounter) GetCrcString() string {
+ return "8bd65e2d"
+}
+
+/* Messages */
+
+// SwInterfaceSetFlags represents the VPP binary API message 'sw_interface_set_flags'.
+// Generated from 'interface.api.json', line 4:
+//
+// "sw_interface_set_flags",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "admin_up_down"
+// ],
+// {
+// "crc": "0x555485f5"
+// }
+//
+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
+}
+func NewSwInterfaceSetFlags() api.Message {
+ return &SwInterfaceSetFlags{}
+}
+
+// SwInterfaceSetFlagsReply represents the VPP binary API message 'sw_interface_set_flags_reply'.
+// Generated from 'interface.api.json', line 30:
+//
+// "sw_interface_set_flags_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceSetFlagsReply() api.Message {
+ return &SwInterfaceSetFlagsReply{}
+}
+
+// HwInterfaceSetMtu represents the VPP binary API message 'hw_interface_set_mtu'.
+// Generated from 'interface.api.json', line 48:
+//
+// "hw_interface_set_mtu",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u16",
+// "mtu"
+// ],
+// {
+// "crc": "0x132da1e7"
+// }
+//
+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
+}
+func NewHwInterfaceSetMtu() api.Message {
+ return &HwInterfaceSetMtu{}
+}
+
+// HwInterfaceSetMtuReply represents the VPP binary API message 'hw_interface_set_mtu_reply'.
+// Generated from 'interface.api.json', line 74:
+//
+// "hw_interface_set_mtu_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewHwInterfaceSetMtuReply() api.Message {
+ return &HwInterfaceSetMtuReply{}
+}
+
+// SwInterfaceSetMtu represents the VPP binary API message 'sw_interface_set_mtu'.
+// Generated from 'interface.api.json', line 92:
+//
+// "sw_interface_set_mtu",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "mtu",
+// 4
+// ],
+// {
+// "crc": "0xd0008db8"
+// }
+//
+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
+}
+func NewSwInterfaceSetMtu() api.Message {
+ return &SwInterfaceSetMtu{}
+}
+
+// SwInterfaceSetMtuReply represents the VPP binary API message 'sw_interface_set_mtu_reply'.
+// Generated from 'interface.api.json', line 119:
+//
+// "sw_interface_set_mtu_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceSetMtuReply() api.Message {
+ return &SwInterfaceSetMtuReply{}
+}
+
+// SwInterfaceEvent represents the VPP binary API message 'sw_interface_event'.
+// Generated from 'interface.api.json', line 137:
+//
+// "sw_interface_event",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "admin_up_down"
+// ],
+// [
+// "u8",
+// "link_up_down"
+// ],
+// [
+// "u8",
+// "deleted"
+// ],
+// {
+// "crc": "0xbf9938e4"
+// }
+//
+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
+}
+func NewSwInterfaceEvent() api.Message {
+ return &SwInterfaceEvent{}
+}
+
+// WantInterfaceEvents represents the VPP binary API message 'want_interface_events'.
+// Generated from 'interface.api.json', line 171:
+//
+// "want_interface_events",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "enable_disable"
+// ],
+// [
+// "u32",
+// "pid"
+// ],
+// {
+// "crc": "0x476f5a08"
+// }
+//
+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
+}
+func NewWantInterfaceEvents() api.Message {
+ return &WantInterfaceEvents{}
+}
+
+// WantInterfaceEventsReply represents the VPP binary API message 'want_interface_events_reply'.
+// Generated from 'interface.api.json', line 197:
+//
+// "want_interface_events_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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 NewWantInterfaceEventsReply() api.Message {
+ return &WantInterfaceEventsReply{}
+}
+
+// SwInterfaceDetails represents the VPP binary API message 'sw_interface_details'.
+// Generated from 'interface.api.json', line 215:
+//
+// "sw_interface_details",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "sup_sw_if_index"
+// ],
+// [
+// "u32",
+// "l2_address_length"
+// ],
+// [
+// "u8",
+// "l2_address",
+// 8
+// ],
+// [
+// "u8",
+// "interface_name",
+// 64
+// ],
+// [
+// "u8",
+// "admin_up_down"
+// ],
+// [
+// "u8",
+// "link_up_down"
+// ],
+// [
+// "u8",
+// "link_duplex"
+// ],
+// [
+// "u8",
+// "link_speed"
+// ],
+// [
+// "u16",
+// "link_mtu"
+// ],
+// [
+// "u32",
+// "mtu",
+// 4
+// ],
+// [
+// "u32",
+// "sub_id"
+// ],
+// [
+// "u8",
+// "sub_dot1ad"
+// ],
+// [
+// "u8",
+// "sub_dot1ah"
+// ],
+// [
+// "u8",
+// "sub_number_of_tags"
+// ],
+// [
+// "u16",
+// "sub_outer_vlan_id"
+// ],
+// [
+// "u16",
+// "sub_inner_vlan_id"
+// ],
+// [
+// "u8",
+// "sub_exact_match"
+// ],
+// [
+// "u8",
+// "sub_default"
+// ],
+// [
+// "u8",
+// "sub_outer_vlan_id_any"
+// ],
+// [
+// "u8",
+// "sub_inner_vlan_id_any"
+// ],
+// [
+// "u32",
+// "vtr_op"
+// ],
+// [
+// "u32",
+// "vtr_push_dot1q"
+// ],
+// [
+// "u32",
+// "vtr_tag1"
+// ],
+// [
+// "u32",
+// "vtr_tag2"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// [
+// "u16",
+// "outer_tag"
+// ],
+// [
+// "u8",
+// "b_dmac",
+// 6
+// ],
+// [
+// "u8",
+// "b_smac",
+// 6
+// ],
+// [
+// "u16",
+// "b_vlanid"
+// ],
+// [
+// "u32",
+// "i_sid"
+// ],
+// {
+// "crc": "0x09b4b510"
+// }
+//
+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 uint8
+ 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 "09b4b510"
+}
+func (*SwInterfaceDetails) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+func NewSwInterfaceDetails() api.Message {
+ return &SwInterfaceDetails{}
+}
+
+// SwInterfaceDump represents the VPP binary API message 'sw_interface_dump'.
+// Generated from 'interface.api.json', line 359:
+//
+// "sw_interface_dump",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "name_filter_valid"
+// ],
+// [
+// "u8",
+// "name_filter",
+// 49
+// ],
+// {
+// "crc": "0x63f5e3b7"
+// }
+//
+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
+}
+func NewSwInterfaceDump() api.Message {
+ return &SwInterfaceDump{}
+}
+
+// SwInterfaceAddDelAddress represents the VPP binary API message 'sw_interface_add_del_address'.
+// Generated from 'interface.api.json', line 386:
+//
+// "sw_interface_add_del_address",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u8",
+// "del_all"
+// ],
+// [
+// "u8",
+// "address_length"
+// ],
+// [
+// "u8",
+// "address",
+// 16
+// ],
+// {
+// "crc": "0x7b583179"
+// }
+//
+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
+}
+func NewSwInterfaceAddDelAddress() api.Message {
+ return &SwInterfaceAddDelAddress{}
+}
+
+// SwInterfaceAddDelAddressReply represents the VPP binary API message 'sw_interface_add_del_address_reply'.
+// Generated from 'interface.api.json', line 429:
+//
+// "sw_interface_add_del_address_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceAddDelAddressReply() api.Message {
+ return &SwInterfaceAddDelAddressReply{}
+}
+
+// SwInterfaceSetTable represents the VPP binary API message 'sw_interface_set_table'.
+// Generated from 'interface.api.json', line 447:
+//
+// "sw_interface_set_table",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// {
+// "crc": "0xacb25d89"
+// }
+//
+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
+}
+func NewSwInterfaceSetTable() api.Message {
+ return &SwInterfaceSetTable{}
+}
+
+// SwInterfaceSetTableReply represents the VPP binary API message 'sw_interface_set_table_reply'.
+// Generated from 'interface.api.json', line 477:
+//
+// "sw_interface_set_table_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceSetTableReply() api.Message {
+ return &SwInterfaceSetTableReply{}
+}
+
+// SwInterfaceGetTable represents the VPP binary API message 'sw_interface_get_table'.
+// Generated from 'interface.api.json', line 495:
+//
+// "sw_interface_get_table",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "is_ipv6"
+// ],
+// {
+// "crc": "0x6b7bcd0a"
+// }
+//
+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
+}
+func NewSwInterfaceGetTable() api.Message {
+ return &SwInterfaceGetTable{}
+}
+
+// SwInterfaceGetTableReply represents the VPP binary API message 'sw_interface_get_table_reply'.
+// Generated from 'interface.api.json', line 521:
+//
+// "sw_interface_get_table_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "vrf_id"
+// ],
+// {
+// "crc": "0xa6eb0109"
+// }
+//
+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
+}
+func NewSwInterfaceGetTableReply() api.Message {
+ return &SwInterfaceGetTableReply{}
+}
+
+// SwInterfaceSetUnnumbered represents the VPP binary API message 'sw_interface_set_unnumbered'.
+// Generated from 'interface.api.json', line 543:
+//
+// "sw_interface_set_unnumbered",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "unnumbered_sw_if_index"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// {
+// "crc": "0xa2c1bbda"
+// }
+//
+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
+}
+func NewSwInterfaceSetUnnumbered() api.Message {
+ return &SwInterfaceSetUnnumbered{}
+}
+
+// SwInterfaceSetUnnumberedReply represents the VPP binary API message 'sw_interface_set_unnumbered_reply'.
+// Generated from 'interface.api.json', line 573:
+//
+// "sw_interface_set_unnumbered_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceSetUnnumberedReply() api.Message {
+ return &SwInterfaceSetUnnumberedReply{}
+}
+
+// SwInterfaceClearStats represents the VPP binary API message 'sw_interface_clear_stats'.
+// Generated from 'interface.api.json', line 591:
+//
+// "sw_interface_clear_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
+//
+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
+}
+func NewSwInterfaceClearStats() api.Message {
+ return &SwInterfaceClearStats{}
+}
+
+// SwInterfaceClearStatsReply represents the VPP binary API message 'sw_interface_clear_stats_reply'.
+// Generated from 'interface.api.json', line 613:
+//
+// "sw_interface_clear_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceClearStatsReply() api.Message {
+ return &SwInterfaceClearStatsReply{}
+}
+
+// SwInterfaceTagAddDel represents the VPP binary API message 'sw_interface_tag_add_del'.
+// Generated from 'interface.api.json', line 631:
+//
+// "sw_interface_tag_add_del",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "is_add"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "tag",
+// 64
+// ],
+// {
+// "crc": "0x14cc636c"
+// }
+//
+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
+}
+func NewSwInterfaceTagAddDel() api.Message {
+ return &SwInterfaceTagAddDel{}
+}
+
+// SwInterfaceTagAddDelReply represents the VPP binary API message 'sw_interface_tag_add_del_reply'.
+// Generated from 'interface.api.json', line 662:
+//
+// "sw_interface_tag_add_del_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceTagAddDelReply() api.Message {
+ return &SwInterfaceTagAddDelReply{}
+}
+
+// SwInterfaceSetMacAddress represents the VPP binary API message 'sw_interface_set_mac_address'.
+// Generated from 'interface.api.json', line 680:
+//
+// "sw_interface_set_mac_address",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// {
+// "crc": "0xeed5dfca"
+// }
+//
+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
+}
+func NewSwInterfaceSetMacAddress() api.Message {
+ return &SwInterfaceSetMacAddress{}
+}
+
+// SwInterfaceSetMacAddressReply represents the VPP binary API message 'sw_interface_set_mac_address_reply'.
+// Generated from 'interface.api.json', line 707:
+//
+// "sw_interface_set_mac_address_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceSetMacAddressReply() api.Message {
+ return &SwInterfaceSetMacAddressReply{}
+}
+
+// SwInterfaceGetMacAddress represents the VPP binary API message 'sw_interface_get_mac_address'.
+// Generated from 'interface.api.json', line 725:
+//
+// "sw_interface_get_mac_address",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
+//
+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
+}
+func NewSwInterfaceGetMacAddress() api.Message {
+ return &SwInterfaceGetMacAddress{}
+}
+
+// SwInterfaceGetMacAddressReply represents the VPP binary API message 'sw_interface_get_mac_address_reply'.
+// Generated from 'interface.api.json', line 747:
+//
+// "sw_interface_get_mac_address_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// {
+// "crc": "0x8ea538d3"
+// }
+//
+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
+}
+func NewSwInterfaceGetMacAddressReply() api.Message {
+ return &SwInterfaceGetMacAddressReply{}
+}
+
+// SwInterfaceSetRxMode represents the VPP binary API message 'sw_interface_set_rx_mode'.
+// Generated from 'interface.api.json', line 770:
+//
+// "sw_interface_set_rx_mode",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "queue_id_valid"
+// ],
+// [
+// "u32",
+// "queue_id"
+// ],
+// [
+// "u8",
+// "mode"
+// ],
+// {
+// "crc": "0x2a1cc58c"
+// }
+//
+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
+}
+func NewSwInterfaceSetRxMode() api.Message {
+ return &SwInterfaceSetRxMode{}
+}
+
+// SwInterfaceSetRxModeReply represents the VPP binary API message 'sw_interface_set_rx_mode_reply'.
+// Generated from 'interface.api.json', line 804:
+//
+// "sw_interface_set_rx_mode_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewSwInterfaceSetRxModeReply() api.Message {
+ return &SwInterfaceSetRxModeReply{}
+}
+
+// InterfaceNameRenumber represents the VPP binary API message 'interface_name_renumber'.
+// Generated from 'interface.api.json', line 822:
+//
+// "interface_name_renumber",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "new_show_dev_instance"
+// ],
+// {
+// "crc": "0x39194269"
+// }
+//
+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
+}
+func NewInterfaceNameRenumber() api.Message {
+ return &InterfaceNameRenumber{}
+}
+
+// InterfaceNameRenumberReply represents the VPP binary API message 'interface_name_renumber_reply'.
+// Generated from 'interface.api.json', line 848:
+//
+// "interface_name_renumber_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewInterfaceNameRenumberReply() api.Message {
+ return &InterfaceNameRenumberReply{}
+}
+
+// CreateSubif represents the VPP binary API message 'create_subif'.
+// Generated from 'interface.api.json', line 866:
+//
+// "create_subif",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "sub_id"
+// ],
+// [
+// "u8",
+// "no_tags"
+// ],
+// [
+// "u8",
+// "one_tag"
+// ],
+// [
+// "u8",
+// "two_tags"
+// ],
+// [
+// "u8",
+// "dot1ad"
+// ],
+// [
+// "u8",
+// "exact_match"
+// ],
+// [
+// "u8",
+// "default_sub"
+// ],
+// [
+// "u8",
+// "outer_vlan_id_any"
+// ],
+// [
+// "u8",
+// "inner_vlan_id_any"
+// ],
+// [
+// "u16",
+// "outer_vlan_id"
+// ],
+// [
+// "u16",
+// "inner_vlan_id"
+// ],
+// {
+// "crc": "0x86cfe408"
+// }
+//
+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
+}
+func NewCreateSubif() api.Message {
+ return &CreateSubif{}
+}
+
+// CreateSubifReply represents the VPP binary API message 'create_subif_reply'.
+// Generated from 'interface.api.json', line 932:
+//
+// "create_subif_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
+//
+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
+}
+func NewCreateSubifReply() api.Message {
+ return &CreateSubifReply{}
+}
+
+// CreateVlanSubif represents the VPP binary API message 'create_vlan_subif'.
+// Generated from 'interface.api.json', line 954:
+//
+// "create_vlan_subif",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u32",
+// "vlan_id"
+// ],
+// {
+// "crc": "0x70cadeda"
+// }
+//
+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
+}
+func NewCreateVlanSubif() api.Message {
+ return &CreateVlanSubif{}
+}
+
+// CreateVlanSubifReply represents the VPP binary API message 'create_vlan_subif_reply'.
+// Generated from 'interface.api.json', line 980:
+//
+// "create_vlan_subif_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
+//
+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
+}
+func NewCreateVlanSubifReply() api.Message {
+ return &CreateVlanSubifReply{}
+}
+
+// DeleteSubif represents the VPP binary API message 'delete_subif'.
+// Generated from 'interface.api.json', line 1002:
+//
+// "delete_subif",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
+//
+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
+}
+func NewDeleteSubif() api.Message {
+ return &DeleteSubif{}
+}
+
+// DeleteSubifReply represents the VPP binary API message 'delete_subif_reply'.
+// Generated from 'interface.api.json', line 1024:
+//
+// "delete_subif_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewDeleteSubifReply() api.Message {
+ return &DeleteSubifReply{}
+}
+
+// CreateLoopback represents the VPP binary API message 'create_loopback'.
+// Generated from 'interface.api.json', line 1042:
+//
+// "create_loopback",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// {
+// "crc": "0x3b54129c"
+// }
+//
+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
+}
+func NewCreateLoopback() api.Message {
+ return &CreateLoopback{}
+}
+
+// CreateLoopbackReply represents the VPP binary API message 'create_loopback_reply'.
+// Generated from 'interface.api.json', line 1065:
+//
+// "create_loopback_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
+//
+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
+}
+func NewCreateLoopbackReply() api.Message {
+ return &CreateLoopbackReply{}
+}
+
+// CreateLoopbackInstance represents the VPP binary API message 'create_loopback_instance'.
+// Generated from 'interface.api.json', line 1087:
+//
+// "create_loopback_instance",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u8",
+// "mac_address",
+// 6
+// ],
+// [
+// "u8",
+// "is_specified"
+// ],
+// [
+// "u32",
+// "user_instance"
+// ],
+// {
+// "crc": "0x7bbd53b6"
+// }
+//
+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
+}
+func NewCreateLoopbackInstance() api.Message {
+ return &CreateLoopbackInstance{}
+}
+
+// CreateLoopbackInstanceReply represents the VPP binary API message 'create_loopback_instance_reply'.
+// Generated from 'interface.api.json', line 1118:
+//
+// "create_loopback_instance_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0xfda5941f"
+// }
+//
+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
+}
+func NewCreateLoopbackInstanceReply() api.Message {
+ return &CreateLoopbackInstanceReply{}
+}
+
+// DeleteLoopback represents the VPP binary API message 'delete_loopback'.
+// Generated from 'interface.api.json', line 1140:
+//
+// "delete_loopback",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// {
+// "crc": "0x529cb13f"
+// }
+//
+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
+}
+func NewDeleteLoopback() api.Message {
+ return &DeleteLoopback{}
+}
+
+// DeleteLoopbackReply represents the VPP binary API message 'delete_loopback_reply'.
+// Generated from 'interface.api.json', line 1162:
+//
+// "delete_loopback_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewDeleteLoopbackReply() api.Message {
+ return &DeleteLoopbackReply{}
+}
+
+// CollectDetailedInterfaceStats represents the VPP binary API message 'collect_detailed_interface_stats'.
+// Generated from 'interface.api.json', line 1180:
+//
+// "collect_detailed_interface_stats",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "client_index"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "u32",
+// "sw_if_index"
+// ],
+// [
+// "u8",
+// "enable_disable"
+// ],
+// {
+// "crc": "0x69d24598"
+// }
+//
+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
+}
+func NewCollectDetailedInterfaceStats() api.Message {
+ return &CollectDetailedInterfaceStats{}
+}
+
+// CollectDetailedInterfaceStatsReply represents the VPP binary API message 'collect_detailed_interface_stats_reply'.
+// Generated from 'interface.api.json', line 1206:
+//
+// "collect_detailed_interface_stats_reply",
+// [
+// "u16",
+// "_vl_msg_id"
+// ],
+// [
+// "u32",
+// "context"
+// ],
+// [
+// "i32",
+// "retval"
+// ],
+// {
+// "crc": "0xe8d4e804"
+// }
+//
+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
+}
+func NewCollectDetailedInterfaceStatsReply() api.Message {
+ return &CollectDetailedInterfaceStatsReply{}
+}
+
+/* Services */
+
+type Services interface {
+ DumpSwInterface(*SwInterfaceDump) (*SwInterfaceDetails, error)
+ CollectDetailedInterfaceStats(*CollectDetailedInterfaceStats) (*CollectDetailedInterfaceStatsReply, error)
+ CreateLoopback(*CreateLoopback) (*CreateLoopbackReply, error)
+ CreateLoopbackInstance(*CreateLoopbackInstance) (*CreateLoopbackInstanceReply, error)
+ CreateSubif(*CreateSubif) (*CreateSubifReply, error)
+ CreateVlanSubif(*CreateVlanSubif) (*CreateVlanSubifReply, error)
+ DeleteLoopback(*DeleteLoopback) (*DeleteLoopbackReply, error)
+ DeleteSubif(*DeleteSubif) (*DeleteSubifReply, error)
+ HwInterfaceSetMtu(*HwInterfaceSetMtu) (*HwInterfaceSetMtuReply, error)
+ InterfaceNameRenumber(*InterfaceNameRenumber) (*InterfaceNameRenumberReply, error)
+ SwInterfaceAddDelAddress(*SwInterfaceAddDelAddress) (*SwInterfaceAddDelAddressReply, error)
+ SwInterfaceClearStats(*SwInterfaceClearStats) (*SwInterfaceClearStatsReply, error)
+ SwInterfaceGetMacAddress(*SwInterfaceGetMacAddress) (*SwInterfaceGetMacAddressReply, error)
+ SwInterfaceGetTable(*SwInterfaceGetTable) (*SwInterfaceGetTableReply, error)
+ SwInterfaceSetFlags(*SwInterfaceSetFlags) (*SwInterfaceSetFlagsReply, error)
+ SwInterfaceSetMacAddress(*SwInterfaceSetMacAddress) (*SwInterfaceSetMacAddressReply, error)
+ SwInterfaceSetMtu(*SwInterfaceSetMtu) (*SwInterfaceSetMtuReply, error)
+ SwInterfaceSetRxMode(*SwInterfaceSetRxMode) (*SwInterfaceSetRxModeReply, error)
+ SwInterfaceSetTable(*SwInterfaceSetTable) (*SwInterfaceSetTableReply, error)
+ SwInterfaceSetUnnumbered(*SwInterfaceSetUnnumbered) (*SwInterfaceSetUnnumberedReply, error)
+ SwInterfaceTagAddDel(*SwInterfaceTagAddDel) (*SwInterfaceTagAddDelReply, error)
+ WantInterfaceEvents(*WantInterfaceEvents) (*WantInterfaceEventsReply, error)
+}
+
+func init() {
+ api.RegisterMessage((*SwInterfaceSetFlags)(nil), "interface.SwInterfaceSetFlags")
+ api.RegisterMessage((*SwInterfaceSetFlagsReply)(nil), "interface.SwInterfaceSetFlagsReply")
+ api.RegisterMessage((*HwInterfaceSetMtu)(nil), "interface.HwInterfaceSetMtu")
+ api.RegisterMessage((*HwInterfaceSetMtuReply)(nil), "interface.HwInterfaceSetMtuReply")
+ api.RegisterMessage((*SwInterfaceSetMtu)(nil), "interface.SwInterfaceSetMtu")
+ api.RegisterMessage((*SwInterfaceSetMtuReply)(nil), "interface.SwInterfaceSetMtuReply")
+ api.RegisterMessage((*SwInterfaceEvent)(nil), "interface.SwInterfaceEvent")
+ api.RegisterMessage((*WantInterfaceEvents)(nil), "interface.WantInterfaceEvents")
+ api.RegisterMessage((*WantInterfaceEventsReply)(nil), "interface.WantInterfaceEventsReply")
+ api.RegisterMessage((*SwInterfaceDetails)(nil), "interface.SwInterfaceDetails")
+ api.RegisterMessage((*SwInterfaceDump)(nil), "interface.SwInterfaceDump")
+ api.RegisterMessage((*SwInterfaceAddDelAddress)(nil), "interface.SwInterfaceAddDelAddress")
+ api.RegisterMessage((*SwInterfaceAddDelAddressReply)(nil), "interface.SwInterfaceAddDelAddressReply")
+ api.RegisterMessage((*SwInterfaceSetTable)(nil), "interface.SwInterfaceSetTable")
+ api.RegisterMessage((*SwInterfaceSetTableReply)(nil), "interface.SwInterfaceSetTableReply")
+ api.RegisterMessage((*SwInterfaceGetTable)(nil), "interface.SwInterfaceGetTable")
+ api.RegisterMessage((*SwInterfaceGetTableReply)(nil), "interface.SwInterfaceGetTableReply")
+ api.RegisterMessage((*SwInterfaceSetUnnumbered)(nil), "interface.SwInterfaceSetUnnumbered")
+ api.RegisterMessage((*SwInterfaceSetUnnumberedReply)(nil), "interface.SwInterfaceSetUnnumberedReply")
+ api.RegisterMessage((*SwInterfaceClearStats)(nil), "interface.SwInterfaceClearStats")
+ api.RegisterMessage((*SwInterfaceClearStatsReply)(nil), "interface.SwInterfaceClearStatsReply")
+ api.RegisterMessage((*SwInterfaceTagAddDel)(nil), "interface.SwInterfaceTagAddDel")
+ api.RegisterMessage((*SwInterfaceTagAddDelReply)(nil), "interface.SwInterfaceTagAddDelReply")
+ api.RegisterMessage((*SwInterfaceSetMacAddress)(nil), "interface.SwInterfaceSetMacAddress")
+ api.RegisterMessage((*SwInterfaceSetMacAddressReply)(nil), "interface.SwInterfaceSetMacAddressReply")
+ api.RegisterMessage((*SwInterfaceGetMacAddress)(nil), "interface.SwInterfaceGetMacAddress")
+ api.RegisterMessage((*SwInterfaceGetMacAddressReply)(nil), "interface.SwInterfaceGetMacAddressReply")
+ api.RegisterMessage((*SwInterfaceSetRxMode)(nil), "interface.SwInterfaceSetRxMode")
+ api.RegisterMessage((*SwInterfaceSetRxModeReply)(nil), "interface.SwInterfaceSetRxModeReply")
+ api.RegisterMessage((*InterfaceNameRenumber)(nil), "interface.InterfaceNameRenumber")
+ api.RegisterMessage((*InterfaceNameRenumberReply)(nil), "interface.InterfaceNameRenumberReply")
+ 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((*DeleteSubif)(nil), "interface.DeleteSubif")
+ api.RegisterMessage((*DeleteSubifReply)(nil), "interface.DeleteSubifReply")
+ api.RegisterMessage((*CreateLoopback)(nil), "interface.CreateLoopback")
+ api.RegisterMessage((*CreateLoopbackReply)(nil), "interface.CreateLoopbackReply")
+ api.RegisterMessage((*CreateLoopbackInstance)(nil), "interface.CreateLoopbackInstance")
+ api.RegisterMessage((*CreateLoopbackInstanceReply)(nil), "interface.CreateLoopbackInstanceReply")
+ api.RegisterMessage((*DeleteLoopback)(nil), "interface.DeleteLoopback")
+ api.RegisterMessage((*DeleteLoopbackReply)(nil), "interface.DeleteLoopbackReply")
+ api.RegisterMessage((*CollectDetailedInterfaceStats)(nil), "interface.CollectDetailedInterfaceStats")
+ api.RegisterMessage((*CollectDetailedInterfaceStatsReply)(nil), "interface.CollectDetailedInterfaceStatsReply")
+}