// 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")
}