From c4522fe10317b1729a0820dc880afc78c663f64d Mon Sep 17 00:00:00 2001 From: Ondrej Fabry Date: Thu, 6 Jun 2019 14:08:48 +0200 Subject: Add various generator improvements - generate service implementation for modules - generate conversion maps and String() method for enums - generate module name and version as constants - rename Union_data field to XXX_UnionData for consistency - generate constant GoVppAPIPackageIsVersionN for checking compatibility with API - add example for using service clients - add some documentation to socketclient adapter - cleanup gen.go file used for generating binapi - regenerate binapi with latest VPP release (19.04.1) - change global variables Messages into a function AllMessages Change-Id: Id1ef97764570759eaa3e5a4dc14ecda7a168ee39 Signed-off-by: Ondrej Fabry --- examples/binapi/interfaces/interfaces.ba.go | 1285 +++++++++++++++++++++++++++ 1 file changed, 1285 insertions(+) create mode 100644 examples/binapi/interfaces/interfaces.ba.go (limited to 'examples/binapi/interfaces/interfaces.ba.go') diff --git a/examples/binapi/interfaces/interfaces.ba.go b/examples/binapi/interfaces/interfaces.ba.go new file mode 100644 index 0000000..1f369de --- /dev/null +++ b/examples/binapi/interfaces/interfaces.ba.go @@ -0,0 +1,1285 @@ +// Code generated by GoVPP binapi-generator. DO NOT EDIT. +// source: /usr/share/vpp/api/core/interface.api.json + +/* +Package interfaces is a generated from VPP binary API module 'interface'. + + The interface module consists of: + 1 alias + 51 messages + 25 services +*/ +package interfaces + +import api "git.fd.io/govpp.git/api" +import bytes "bytes" +import context "context" +import strconv "strconv" +import struc "github.com/lunixbochs/struc" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = api.RegisterMessage +var _ = bytes.NewBuffer +var _ = context.Background +var _ = strconv.Itoa +var _ = struc.Pack + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the GoVPP api package it is being compiled against. +// A compilation error at this line likely means your copy of the +// GoVPP api package needs to be updated. +const _ = api.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package + +const ( + // ModuleName is the name of this module. + ModuleName = "interface" + // APIVersion is the API version of this module. + APIVersion = "2.2.0" + // VersionCrc is the CRC of this module. + VersionCrc = 0x672de521 +) + +/* Aliases */ + +// InterfaceIndex represents VPP binary API alias 'interface_index': +type InterfaceIndex uint32 + +/* Messages */ + +// CollectDetailedInterfaceStats represents VPP binary API message 'collect_detailed_interface_stats': +type CollectDetailedInterfaceStats struct { + SwIfIndex uint32 + EnableDisable uint8 +} + +func (*CollectDetailedInterfaceStats) GetMessageName() string { + return "collect_detailed_interface_stats" +} +func (*CollectDetailedInterfaceStats) GetCrcString() string { + return "69d24598" +} +func (*CollectDetailedInterfaceStats) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// CollectDetailedInterfaceStatsReply represents VPP binary API message 'collect_detailed_interface_stats_reply': +type CollectDetailedInterfaceStatsReply struct { + Retval int32 +} + +func (*CollectDetailedInterfaceStatsReply) GetMessageName() string { + return "collect_detailed_interface_stats_reply" +} +func (*CollectDetailedInterfaceStatsReply) GetCrcString() string { + return "e8d4e804" +} +func (*CollectDetailedInterfaceStatsReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// CreateLoopback represents VPP binary API message 'create_loopback': +type CreateLoopback struct { + MacAddress []byte `struc:"[6]byte"` +} + +func (*CreateLoopback) GetMessageName() string { + return "create_loopback" +} +func (*CreateLoopback) GetCrcString() string { + return "3b54129c" +} +func (*CreateLoopback) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// CreateLoopbackInstance represents VPP binary API message 'create_loopback_instance': +type CreateLoopbackInstance struct { + MacAddress []byte `struc:"[6]byte"` + IsSpecified uint8 + UserInstance uint32 +} + +func (*CreateLoopbackInstance) GetMessageName() string { + return "create_loopback_instance" +} +func (*CreateLoopbackInstance) GetCrcString() string { + return "7bbd53b6" +} +func (*CreateLoopbackInstance) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// CreateLoopbackInstanceReply represents VPP binary API message 'create_loopback_instance_reply': +type CreateLoopbackInstanceReply struct { + Retval int32 + SwIfIndex uint32 +} + +func (*CreateLoopbackInstanceReply) GetMessageName() string { + return "create_loopback_instance_reply" +} +func (*CreateLoopbackInstanceReply) GetCrcString() string { + return "fda5941f" +} +func (*CreateLoopbackInstanceReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// CreateLoopbackReply represents VPP binary API message 'create_loopback_reply': +type CreateLoopbackReply struct { + Retval int32 + SwIfIndex uint32 +} + +func (*CreateLoopbackReply) GetMessageName() string { + return "create_loopback_reply" +} +func (*CreateLoopbackReply) GetCrcString() string { + return "fda5941f" +} +func (*CreateLoopbackReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// CreateSubif represents VPP binary API message 'create_subif': +type CreateSubif struct { + SwIfIndex uint32 + SubID uint32 + NoTags uint8 + OneTag uint8 + TwoTags uint8 + Dot1ad uint8 + ExactMatch uint8 + DefaultSub uint8 + OuterVlanIDAny uint8 + InnerVlanIDAny uint8 + OuterVlanID uint16 + InnerVlanID uint16 +} + +func (*CreateSubif) GetMessageName() string { + return "create_subif" +} +func (*CreateSubif) GetCrcString() string { + return "86cfe408" +} +func (*CreateSubif) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// CreateSubifReply represents VPP binary API message 'create_subif_reply': +type CreateSubifReply struct { + Retval int32 + SwIfIndex uint32 +} + +func (*CreateSubifReply) GetMessageName() string { + return "create_subif_reply" +} +func (*CreateSubifReply) GetCrcString() string { + return "fda5941f" +} +func (*CreateSubifReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// CreateVlanSubif represents VPP binary API message 'create_vlan_subif': +type CreateVlanSubif struct { + SwIfIndex uint32 + VlanID uint32 +} + +func (*CreateVlanSubif) GetMessageName() string { + return "create_vlan_subif" +} +func (*CreateVlanSubif) GetCrcString() string { + return "70cadeda" +} +func (*CreateVlanSubif) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// CreateVlanSubifReply represents VPP binary API message 'create_vlan_subif_reply': +type CreateVlanSubifReply struct { + Retval int32 + SwIfIndex uint32 +} + +func (*CreateVlanSubifReply) GetMessageName() string { + return "create_vlan_subif_reply" +} +func (*CreateVlanSubifReply) GetCrcString() string { + return "fda5941f" +} +func (*CreateVlanSubifReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// DeleteLoopback represents VPP binary API message 'delete_loopback': +type DeleteLoopback struct { + SwIfIndex uint32 +} + +func (*DeleteLoopback) GetMessageName() string { + return "delete_loopback" +} +func (*DeleteLoopback) GetCrcString() string { + return "529cb13f" +} +func (*DeleteLoopback) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// DeleteLoopbackReply represents VPP binary API message 'delete_loopback_reply': +type DeleteLoopbackReply struct { + Retval int32 +} + +func (*DeleteLoopbackReply) GetMessageName() string { + return "delete_loopback_reply" +} +func (*DeleteLoopbackReply) GetCrcString() string { + return "e8d4e804" +} +func (*DeleteLoopbackReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// DeleteSubif represents VPP binary API message 'delete_subif': +type DeleteSubif struct { + SwIfIndex uint32 +} + +func (*DeleteSubif) GetMessageName() string { + return "delete_subif" +} +func (*DeleteSubif) GetCrcString() string { + return "529cb13f" +} +func (*DeleteSubif) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// DeleteSubifReply represents VPP binary API message 'delete_subif_reply': +type DeleteSubifReply struct { + Retval int32 +} + +func (*DeleteSubifReply) GetMessageName() string { + return "delete_subif_reply" +} +func (*DeleteSubifReply) GetCrcString() string { + return "e8d4e804" +} +func (*DeleteSubifReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// HwInterfaceSetMtu represents VPP binary API message 'hw_interface_set_mtu': +type HwInterfaceSetMtu struct { + SwIfIndex uint32 + Mtu uint16 +} + +func (*HwInterfaceSetMtu) GetMessageName() string { + return "hw_interface_set_mtu" +} +func (*HwInterfaceSetMtu) GetCrcString() string { + return "132da1e7" +} +func (*HwInterfaceSetMtu) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// HwInterfaceSetMtuReply represents VPP binary API message 'hw_interface_set_mtu_reply': +type HwInterfaceSetMtuReply struct { + Retval int32 +} + +func (*HwInterfaceSetMtuReply) GetMessageName() string { + return "hw_interface_set_mtu_reply" +} +func (*HwInterfaceSetMtuReply) GetCrcString() string { + return "e8d4e804" +} +func (*HwInterfaceSetMtuReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// InterfaceNameRenumber represents VPP binary API message 'interface_name_renumber': +type InterfaceNameRenumber struct { + SwIfIndex uint32 + NewShowDevInstance uint32 +} + +func (*InterfaceNameRenumber) GetMessageName() string { + return "interface_name_renumber" +} +func (*InterfaceNameRenumber) GetCrcString() string { + return "39194269" +} +func (*InterfaceNameRenumber) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// InterfaceNameRenumberReply represents VPP binary API message 'interface_name_renumber_reply': +type InterfaceNameRenumberReply struct { + Retval int32 +} + +func (*InterfaceNameRenumberReply) GetMessageName() string { + return "interface_name_renumber_reply" +} +func (*InterfaceNameRenumberReply) GetCrcString() string { + return "e8d4e804" +} +func (*InterfaceNameRenumberReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceAddDelAddress represents VPP binary API message 'sw_interface_add_del_address': +type SwInterfaceAddDelAddress struct { + SwIfIndex uint32 + IsAdd uint8 + IsIPv6 uint8 + DelAll uint8 + AddressLength uint8 + Address []byte `struc:"[16]byte"` +} + +func (*SwInterfaceAddDelAddress) GetMessageName() string { + return "sw_interface_add_del_address" +} +func (*SwInterfaceAddDelAddress) GetCrcString() string { + return "7b583179" +} +func (*SwInterfaceAddDelAddress) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceAddDelAddressReply represents VPP binary API message 'sw_interface_add_del_address_reply': +type SwInterfaceAddDelAddressReply struct { + Retval int32 +} + +func (*SwInterfaceAddDelAddressReply) GetMessageName() string { + return "sw_interface_add_del_address_reply" +} +func (*SwInterfaceAddDelAddressReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceAddDelAddressReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceClearStats represents VPP binary API message 'sw_interface_clear_stats': +type SwInterfaceClearStats struct { + SwIfIndex uint32 +} + +func (*SwInterfaceClearStats) GetMessageName() string { + return "sw_interface_clear_stats" +} +func (*SwInterfaceClearStats) GetCrcString() string { + return "529cb13f" +} +func (*SwInterfaceClearStats) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceClearStatsReply represents VPP binary API message 'sw_interface_clear_stats_reply': +type SwInterfaceClearStatsReply struct { + Retval int32 +} + +func (*SwInterfaceClearStatsReply) GetMessageName() string { + return "sw_interface_clear_stats_reply" +} +func (*SwInterfaceClearStatsReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceClearStatsReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceDetails represents VPP binary API message 'sw_interface_details': +type SwInterfaceDetails struct { + SwIfIndex uint32 + SupSwIfIndex uint32 + L2AddressLength uint32 + L2Address []byte `struc:"[8]byte"` + InterfaceName []byte `struc:"[64]byte"` + AdminUpDown uint8 + LinkUpDown uint8 + LinkDuplex uint8 + LinkSpeed uint32 + LinkMtu uint16 + Mtu []uint32 `struc:"[4]uint32"` + SubID uint32 + SubDot1ad uint8 + SubDot1ah uint8 + SubNumberOfTags uint8 + SubOuterVlanID uint16 + SubInnerVlanID uint16 + SubExactMatch uint8 + SubDefault uint8 + SubOuterVlanIDAny uint8 + SubInnerVlanIDAny uint8 + VtrOp uint32 + VtrPushDot1q uint32 + VtrTag1 uint32 + VtrTag2 uint32 + Tag []byte `struc:"[64]byte"` + OuterTag uint16 + BDmac []byte `struc:"[6]byte"` + BSmac []byte `struc:"[6]byte"` + BVlanid uint16 + ISid uint32 +} + +func (*SwInterfaceDetails) GetMessageName() string { + return "sw_interface_details" +} +func (*SwInterfaceDetails) GetCrcString() string { + return "e4ee7eb6" +} +func (*SwInterfaceDetails) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceDump represents VPP binary API message 'sw_interface_dump': +type SwInterfaceDump struct { + NameFilterValid uint8 + NameFilter []byte `struc:"[49]byte"` +} + +func (*SwInterfaceDump) GetMessageName() string { + return "sw_interface_dump" +} +func (*SwInterfaceDump) GetCrcString() string { + return "63f5e3b7" +} +func (*SwInterfaceDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceEvent represents VPP binary API message 'sw_interface_event': +type SwInterfaceEvent struct { + PID uint32 + SwIfIndex uint32 + AdminUpDown uint8 + LinkUpDown uint8 + Deleted uint8 +} + +func (*SwInterfaceEvent) GetMessageName() string { + return "sw_interface_event" +} +func (*SwInterfaceEvent) GetCrcString() string { + return "bf9938e4" +} +func (*SwInterfaceEvent) GetMessageType() api.MessageType { + return api.EventMessage +} + +// SwInterfaceGetMacAddress represents VPP binary API message 'sw_interface_get_mac_address': +type SwInterfaceGetMacAddress struct { + SwIfIndex uint32 +} + +func (*SwInterfaceGetMacAddress) GetMessageName() string { + return "sw_interface_get_mac_address" +} +func (*SwInterfaceGetMacAddress) GetCrcString() string { + return "529cb13f" +} +func (*SwInterfaceGetMacAddress) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceGetMacAddressReply represents VPP binary API message 'sw_interface_get_mac_address_reply': +type SwInterfaceGetMacAddressReply struct { + Retval int32 + MacAddress []byte `struc:"[6]byte"` +} + +func (*SwInterfaceGetMacAddressReply) GetMessageName() string { + return "sw_interface_get_mac_address_reply" +} +func (*SwInterfaceGetMacAddressReply) GetCrcString() string { + return "8ea538d3" +} +func (*SwInterfaceGetMacAddressReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceGetTable represents VPP binary API message 'sw_interface_get_table': +type SwInterfaceGetTable struct { + SwIfIndex uint32 + IsIPv6 uint8 +} + +func (*SwInterfaceGetTable) GetMessageName() string { + return "sw_interface_get_table" +} +func (*SwInterfaceGetTable) GetCrcString() string { + return "6b7bcd0a" +} +func (*SwInterfaceGetTable) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceGetTableReply represents VPP binary API message 'sw_interface_get_table_reply': +type SwInterfaceGetTableReply struct { + Retval int32 + VrfID uint32 +} + +func (*SwInterfaceGetTableReply) GetMessageName() string { + return "sw_interface_get_table_reply" +} +func (*SwInterfaceGetTableReply) GetCrcString() string { + return "a6eb0109" +} +func (*SwInterfaceGetTableReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceRxPlacementDetails represents VPP binary API message 'sw_interface_rx_placement_details': +type SwInterfaceRxPlacementDetails struct { + SwIfIndex uint32 + QueueID uint32 + WorkerID uint32 + Mode uint8 +} + +func (*SwInterfaceRxPlacementDetails) GetMessageName() string { + return "sw_interface_rx_placement_details" +} +func (*SwInterfaceRxPlacementDetails) GetCrcString() string { + return "0e9e33f4" +} +func (*SwInterfaceRxPlacementDetails) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceRxPlacementDump represents VPP binary API message 'sw_interface_rx_placement_dump': +type SwInterfaceRxPlacementDump struct { + SwIfIndex uint32 +} + +func (*SwInterfaceRxPlacementDump) GetMessageName() string { + return "sw_interface_rx_placement_dump" +} +func (*SwInterfaceRxPlacementDump) GetCrcString() string { + return "529cb13f" +} +func (*SwInterfaceRxPlacementDump) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetFlags represents VPP binary API message 'sw_interface_set_flags': +type SwInterfaceSetFlags struct { + SwIfIndex uint32 + AdminUpDown uint8 +} + +func (*SwInterfaceSetFlags) GetMessageName() string { + return "sw_interface_set_flags" +} +func (*SwInterfaceSetFlags) GetCrcString() string { + return "555485f5" +} +func (*SwInterfaceSetFlags) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetFlagsReply represents VPP binary API message 'sw_interface_set_flags_reply': +type SwInterfaceSetFlagsReply struct { + Retval int32 +} + +func (*SwInterfaceSetFlagsReply) GetMessageName() string { + return "sw_interface_set_flags_reply" +} +func (*SwInterfaceSetFlagsReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetFlagsReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceSetIPDirectedBroadcast represents VPP binary API message 'sw_interface_set_ip_directed_broadcast': +type SwInterfaceSetIPDirectedBroadcast struct { + SwIfIndex uint32 + Enable uint8 +} + +func (*SwInterfaceSetIPDirectedBroadcast) GetMessageName() string { + return "sw_interface_set_ip_directed_broadcast" +} +func (*SwInterfaceSetIPDirectedBroadcast) GetCrcString() string { + return "a36fadc0" +} +func (*SwInterfaceSetIPDirectedBroadcast) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetIPDirectedBroadcastReply represents VPP binary API message 'sw_interface_set_ip_directed_broadcast_reply': +type SwInterfaceSetIPDirectedBroadcastReply struct { + Retval int32 +} + +func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageName() string { + return "sw_interface_set_ip_directed_broadcast_reply" +} +func (*SwInterfaceSetIPDirectedBroadcastReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetIPDirectedBroadcastReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceSetMacAddress represents VPP binary API message 'sw_interface_set_mac_address': +type SwInterfaceSetMacAddress struct { + SwIfIndex uint32 + MacAddress []byte `struc:"[6]byte"` +} + +func (*SwInterfaceSetMacAddress) GetMessageName() string { + return "sw_interface_set_mac_address" +} +func (*SwInterfaceSetMacAddress) GetCrcString() string { + return "eed5dfca" +} +func (*SwInterfaceSetMacAddress) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetMacAddressReply represents VPP binary API message 'sw_interface_set_mac_address_reply': +type SwInterfaceSetMacAddressReply struct { + Retval int32 +} + +func (*SwInterfaceSetMacAddressReply) GetMessageName() string { + return "sw_interface_set_mac_address_reply" +} +func (*SwInterfaceSetMacAddressReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetMacAddressReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceSetMtu represents VPP binary API message 'sw_interface_set_mtu': +type SwInterfaceSetMtu struct { + SwIfIndex uint32 + Mtu []uint32 `struc:"[4]uint32"` +} + +func (*SwInterfaceSetMtu) GetMessageName() string { + return "sw_interface_set_mtu" +} +func (*SwInterfaceSetMtu) GetCrcString() string { + return "d0008db8" +} +func (*SwInterfaceSetMtu) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetMtuReply represents VPP binary API message 'sw_interface_set_mtu_reply': +type SwInterfaceSetMtuReply struct { + Retval int32 +} + +func (*SwInterfaceSetMtuReply) GetMessageName() string { + return "sw_interface_set_mtu_reply" +} +func (*SwInterfaceSetMtuReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetMtuReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceSetRxMode represents VPP binary API message 'sw_interface_set_rx_mode': +type SwInterfaceSetRxMode struct { + SwIfIndex uint32 + QueueIDValid uint8 + QueueID uint32 + Mode uint8 +} + +func (*SwInterfaceSetRxMode) GetMessageName() string { + return "sw_interface_set_rx_mode" +} +func (*SwInterfaceSetRxMode) GetCrcString() string { + return "2a1cc58c" +} +func (*SwInterfaceSetRxMode) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetRxModeReply represents VPP binary API message 'sw_interface_set_rx_mode_reply': +type SwInterfaceSetRxModeReply struct { + Retval int32 +} + +func (*SwInterfaceSetRxModeReply) GetMessageName() string { + return "sw_interface_set_rx_mode_reply" +} +func (*SwInterfaceSetRxModeReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetRxModeReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceSetRxPlacement represents VPP binary API message 'sw_interface_set_rx_placement': +type SwInterfaceSetRxPlacement struct { + SwIfIndex uint32 + QueueID uint32 + WorkerID uint32 + IsMain uint8 +} + +func (*SwInterfaceSetRxPlacement) GetMessageName() string { + return "sw_interface_set_rx_placement" +} +func (*SwInterfaceSetRxPlacement) GetCrcString() string { + return "4ef4377d" +} +func (*SwInterfaceSetRxPlacement) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetRxPlacementReply represents VPP binary API message 'sw_interface_set_rx_placement_reply': +type SwInterfaceSetRxPlacementReply struct { + Retval int32 +} + +func (*SwInterfaceSetRxPlacementReply) GetMessageName() string { + return "sw_interface_set_rx_placement_reply" +} +func (*SwInterfaceSetRxPlacementReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetRxPlacementReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceSetTable represents VPP binary API message 'sw_interface_set_table': +type SwInterfaceSetTable struct { + SwIfIndex uint32 + IsIPv6 uint8 + VrfID uint32 +} + +func (*SwInterfaceSetTable) GetMessageName() string { + return "sw_interface_set_table" +} +func (*SwInterfaceSetTable) GetCrcString() string { + return "acb25d89" +} +func (*SwInterfaceSetTable) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetTableReply represents VPP binary API message 'sw_interface_set_table_reply': +type SwInterfaceSetTableReply struct { + Retval int32 +} + +func (*SwInterfaceSetTableReply) GetMessageName() string { + return "sw_interface_set_table_reply" +} +func (*SwInterfaceSetTableReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetTableReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceSetUnnumbered represents VPP binary API message 'sw_interface_set_unnumbered': +type SwInterfaceSetUnnumbered struct { + SwIfIndex uint32 + UnnumberedSwIfIndex uint32 + IsAdd uint8 +} + +func (*SwInterfaceSetUnnumbered) GetMessageName() string { + return "sw_interface_set_unnumbered" +} +func (*SwInterfaceSetUnnumbered) GetCrcString() string { + return "a2c1bbda" +} +func (*SwInterfaceSetUnnumbered) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceSetUnnumberedReply represents VPP binary API message 'sw_interface_set_unnumbered_reply': +type SwInterfaceSetUnnumberedReply struct { + Retval int32 +} + +func (*SwInterfaceSetUnnumberedReply) GetMessageName() string { + return "sw_interface_set_unnumbered_reply" +} +func (*SwInterfaceSetUnnumberedReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceSetUnnumberedReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// SwInterfaceTagAddDel represents VPP binary API message 'sw_interface_tag_add_del': +type SwInterfaceTagAddDel struct { + IsAdd uint8 + SwIfIndex uint32 + Tag []byte `struc:"[64]byte"` +} + +func (*SwInterfaceTagAddDel) GetMessageName() string { + return "sw_interface_tag_add_del" +} +func (*SwInterfaceTagAddDel) GetCrcString() string { + return "14cc636c" +} +func (*SwInterfaceTagAddDel) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// SwInterfaceTagAddDelReply represents VPP binary API message 'sw_interface_tag_add_del_reply': +type SwInterfaceTagAddDelReply struct { + Retval int32 +} + +func (*SwInterfaceTagAddDelReply) GetMessageName() string { + return "sw_interface_tag_add_del_reply" +} +func (*SwInterfaceTagAddDelReply) GetCrcString() string { + return "e8d4e804" +} +func (*SwInterfaceTagAddDelReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +// WantInterfaceEvents represents VPP binary API message 'want_interface_events': +type WantInterfaceEvents struct { + EnableDisable uint32 + PID uint32 +} + +func (*WantInterfaceEvents) GetMessageName() string { + return "want_interface_events" +} +func (*WantInterfaceEvents) GetCrcString() string { + return "476f5a08" +} +func (*WantInterfaceEvents) GetMessageType() api.MessageType { + return api.RequestMessage +} + +// WantInterfaceEventsReply represents VPP binary API message 'want_interface_events_reply': +type WantInterfaceEventsReply struct { + Retval int32 +} + +func (*WantInterfaceEventsReply) GetMessageName() string { + return "want_interface_events_reply" +} +func (*WantInterfaceEventsReply) GetCrcString() string { + return "e8d4e804" +} +func (*WantInterfaceEventsReply) GetMessageType() api.MessageType { + return api.ReplyMessage +} + +func init() { + api.RegisterMessage((*CollectDetailedInterfaceStats)(nil), "interface.CollectDetailedInterfaceStats") + api.RegisterMessage((*CollectDetailedInterfaceStatsReply)(nil), "interface.CollectDetailedInterfaceStatsReply") + api.RegisterMessage((*CreateLoopback)(nil), "interface.CreateLoopback") + api.RegisterMessage((*CreateLoopbackInstance)(nil), "interface.CreateLoopbackInstance") + api.RegisterMessage((*CreateLoopbackInstanceReply)(nil), "interface.CreateLoopbackInstanceReply") + api.RegisterMessage((*CreateLoopbackReply)(nil), "interface.CreateLoopbackReply") + api.RegisterMessage((*CreateSubif)(nil), "interface.CreateSubif") + api.RegisterMessage((*CreateSubifReply)(nil), "interface.CreateSubifReply") + api.RegisterMessage((*CreateVlanSubif)(nil), "interface.CreateVlanSubif") + api.RegisterMessage((*CreateVlanSubifReply)(nil), "interface.CreateVlanSubifReply") + api.RegisterMessage((*DeleteLoopback)(nil), "interface.DeleteLoopback") + api.RegisterMessage((*DeleteLoopbackReply)(nil), "interface.DeleteLoopbackReply") + api.RegisterMessage((*DeleteSubif)(nil), "interface.DeleteSubif") + api.RegisterMessage((*DeleteSubifReply)(nil), "interface.DeleteSubifReply") + api.RegisterMessage((*HwInterfaceSetMtu)(nil), "interface.HwInterfaceSetMtu") + api.RegisterMessage((*HwInterfaceSetMtuReply)(nil), "interface.HwInterfaceSetMtuReply") + api.RegisterMessage((*InterfaceNameRenumber)(nil), "interface.InterfaceNameRenumber") + api.RegisterMessage((*InterfaceNameRenumberReply)(nil), "interface.InterfaceNameRenumberReply") + api.RegisterMessage((*SwInterfaceAddDelAddress)(nil), "interface.SwInterfaceAddDelAddress") + api.RegisterMessage((*SwInterfaceAddDelAddressReply)(nil), "interface.SwInterfaceAddDelAddressReply") + api.RegisterMessage((*SwInterfaceClearStats)(nil), "interface.SwInterfaceClearStats") + api.RegisterMessage((*SwInterfaceClearStatsReply)(nil), "interface.SwInterfaceClearStatsReply") + api.RegisterMessage((*SwInterfaceDetails)(nil), "interface.SwInterfaceDetails") + api.RegisterMessage((*SwInterfaceDump)(nil), "interface.SwInterfaceDump") + api.RegisterMessage((*SwInterfaceEvent)(nil), "interface.SwInterfaceEvent") + api.RegisterMessage((*SwInterfaceGetMacAddress)(nil), "interface.SwInterfaceGetMacAddress") + api.RegisterMessage((*SwInterfaceGetMacAddressReply)(nil), "interface.SwInterfaceGetMacAddressReply") + api.RegisterMessage((*SwInterfaceGetTable)(nil), "interface.SwInterfaceGetTable") + api.RegisterMessage((*SwInterfaceGetTableReply)(nil), "interface.SwInterfaceGetTableReply") + api.RegisterMessage((*SwInterfaceRxPlacementDetails)(nil), "interface.SwInterfaceRxPlacementDetails") + api.RegisterMessage((*SwInterfaceRxPlacementDump)(nil), "interface.SwInterfaceRxPlacementDump") + api.RegisterMessage((*SwInterfaceSetFlags)(nil), "interface.SwInterfaceSetFlags") + api.RegisterMessage((*SwInterfaceSetFlagsReply)(nil), "interface.SwInterfaceSetFlagsReply") + api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcast)(nil), "interface.SwInterfaceSetIPDirectedBroadcast") + api.RegisterMessage((*SwInterfaceSetIPDirectedBroadcastReply)(nil), "interface.SwInterfaceSetIPDirectedBroadcastReply") + api.RegisterMessage((*SwInterfaceSetMacAddress)(nil), "interface.SwInterfaceSetMacAddress") + api.RegisterMessage((*SwInterfaceSetMacAddressReply)(nil), "interface.SwInterfaceSetMacAddressReply") + api.RegisterMessage((*SwInterfaceSetMtu)(nil), "interface.SwInterfaceSetMtu") + api.RegisterMessage((*SwInterfaceSetMtuReply)(nil), "interface.SwInterfaceSetMtuReply") + api.RegisterMessage((*SwInterfaceSetRxMode)(nil), "interface.SwInterfaceSetRxMode") + api.RegisterMessage((*SwInterfaceSetRxModeReply)(nil), "interface.SwInterfaceSetRxModeReply") + api.RegisterMessage((*SwInterfaceSetRxPlacement)(nil), "interface.SwInterfaceSetRxPlacement") + api.RegisterMessage((*SwInterfaceSetRxPlacementReply)(nil), "interface.SwInterfaceSetRxPlacementReply") + api.RegisterMessage((*SwInterfaceSetTable)(nil), "interface.SwInterfaceSetTable") + api.RegisterMessage((*SwInterfaceSetTableReply)(nil), "interface.SwInterfaceSetTableReply") + api.RegisterMessage((*SwInterfaceSetUnnumbered)(nil), "interface.SwInterfaceSetUnnumbered") + api.RegisterMessage((*SwInterfaceSetUnnumberedReply)(nil), "interface.SwInterfaceSetUnnumberedReply") + api.RegisterMessage((*SwInterfaceTagAddDel)(nil), "interface.SwInterfaceTagAddDel") + api.RegisterMessage((*SwInterfaceTagAddDelReply)(nil), "interface.SwInterfaceTagAddDelReply") + api.RegisterMessage((*WantInterfaceEvents)(nil), "interface.WantInterfaceEvents") + api.RegisterMessage((*WantInterfaceEventsReply)(nil), "interface.WantInterfaceEventsReply") +} + +// Messages returns list of all messages in this module. +func AllMessages() []api.Message { + return []api.Message{ + (*CollectDetailedInterfaceStats)(nil), + (*CollectDetailedInterfaceStatsReply)(nil), + (*CreateLoopback)(nil), + (*CreateLoopbackInstance)(nil), + (*CreateLoopbackInstanceReply)(nil), + (*CreateLoopbackReply)(nil), + (*CreateSubif)(nil), + (*CreateSubifReply)(nil), + (*CreateVlanSubif)(nil), + (*CreateVlanSubifReply)(nil), + (*DeleteLoopback)(nil), + (*DeleteLoopbackReply)(nil), + (*DeleteSubif)(nil), + (*DeleteSubifReply)(nil), + (*HwInterfaceSetMtu)(nil), + (*HwInterfaceSetMtuReply)(nil), + (*InterfaceNameRenumber)(nil), + (*InterfaceNameRenumberReply)(nil), + (*SwInterfaceAddDelAddress)(nil), + (*SwInterfaceAddDelAddressReply)(nil), + (*SwInterfaceClearStats)(nil), + (*SwInterfaceClearStatsReply)(nil), + (*SwInterfaceDetails)(nil), + (*SwInterfaceDump)(nil), + (*SwInterfaceEvent)(nil), + (*SwInterfaceGetMacAddress)(nil), + (*SwInterfaceGetMacAddressReply)(nil), + (*SwInterfaceGetTable)(nil), + (*SwInterfaceGetTableReply)(nil), + (*SwInterfaceRxPlacementDetails)(nil), + (*SwInterfaceRxPlacementDump)(nil), + (*SwInterfaceSetFlags)(nil), + (*SwInterfaceSetFlagsReply)(nil), + (*SwInterfaceSetIPDirectedBroadcast)(nil), + (*SwInterfaceSetIPDirectedBroadcastReply)(nil), + (*SwInterfaceSetMacAddress)(nil), + (*SwInterfaceSetMacAddressReply)(nil), + (*SwInterfaceSetMtu)(nil), + (*SwInterfaceSetMtuReply)(nil), + (*SwInterfaceSetRxMode)(nil), + (*SwInterfaceSetRxModeReply)(nil), + (*SwInterfaceSetRxPlacement)(nil), + (*SwInterfaceSetRxPlacementReply)(nil), + (*SwInterfaceSetTable)(nil), + (*SwInterfaceSetTableReply)(nil), + (*SwInterfaceSetUnnumbered)(nil), + (*SwInterfaceSetUnnumberedReply)(nil), + (*SwInterfaceTagAddDel)(nil), + (*SwInterfaceTagAddDelReply)(nil), + (*WantInterfaceEvents)(nil), + (*WantInterfaceEventsReply)(nil), + } +} + +// Service represents services in VPP binary API. +type Service interface { + DumpSwInterface(ctx context.Context, in *SwInterfaceDump) ([]*SwInterfaceDetails, error) + DumpSwInterfaceRxPlacement(ctx context.Context, in *SwInterfaceRxPlacementDump) ([]*SwInterfaceRxPlacementDetails, error) + CollectDetailedInterfaceStats(ctx context.Context, in *CollectDetailedInterfaceStats) (*CollectDetailedInterfaceStatsReply, error) + CreateLoopback(ctx context.Context, in *CreateLoopback) (*CreateLoopbackReply, error) + CreateLoopbackInstance(ctx context.Context, in *CreateLoopbackInstance) (*CreateLoopbackInstanceReply, error) + CreateSubif(ctx context.Context, in *CreateSubif) (*CreateSubifReply, error) + CreateVlanSubif(ctx context.Context, in *CreateVlanSubif) (*CreateVlanSubifReply, error) + DeleteLoopback(ctx context.Context, in *DeleteLoopback) (*DeleteLoopbackReply, error) + DeleteSubif(ctx context.Context, in *DeleteSubif) (*DeleteSubifReply, error) + HwInterfaceSetMtu(ctx context.Context, in *HwInterfaceSetMtu) (*HwInterfaceSetMtuReply, error) + InterfaceNameRenumber(ctx context.Context, in *InterfaceNameRenumber) (*InterfaceNameRenumberReply, error) + SwInterfaceAddDelAddress(ctx context.Context, in *SwInterfaceAddDelAddress) (*SwInterfaceAddDelAddressReply, error) + SwInterfaceClearStats(ctx context.Context, in *SwInterfaceClearStats) (*SwInterfaceClearStatsReply, error) + SwInterfaceGetMacAddress(ctx context.Context, in *SwInterfaceGetMacAddress) (*SwInterfaceGetMacAddressReply, error) + SwInterfaceGetTable(ctx context.Context, in *SwInterfaceGetTable) (*SwInterfaceGetTableReply, error) + SwInterfaceSetFlags(ctx context.Context, in *SwInterfaceSetFlags) (*SwInterfaceSetFlagsReply, error) + SwInterfaceSetIPDirectedBroadcast(ctx context.Context, in *SwInterfaceSetIPDirectedBroadcast) (*SwInterfaceSetIPDirectedBroadcastReply, error) + SwInterfaceSetMacAddress(ctx context.Context, in *SwInterfaceSetMacAddress) (*SwInterfaceSetMacAddressReply, error) + SwInterfaceSetMtu(ctx context.Context, in *SwInterfaceSetMtu) (*SwInterfaceSetMtuReply, error) + SwInterfaceSetRxMode(ctx context.Context, in *SwInterfaceSetRxMode) (*SwInterfaceSetRxModeReply, error) + SwInterfaceSetRxPlacement(ctx context.Context, in *SwInterfaceSetRxPlacement) (*SwInterfaceSetRxPlacementReply, error) + SwInterfaceSetTable(ctx context.Context, in *SwInterfaceSetTable) (*SwInterfaceSetTableReply, error) + SwInterfaceSetUnnumbered(ctx context.Context, in *SwInterfaceSetUnnumbered) (*SwInterfaceSetUnnumberedReply, error) + SwInterfaceTagAddDel(ctx context.Context, in *SwInterfaceTagAddDel) (*SwInterfaceTagAddDelReply, error) + WantInterfaceEvents(ctx context.Context, in *WantInterfaceEvents) (*WantInterfaceEventsReply, error) +} + +type service struct { + ch api.Channel +} + +func NewService(ch api.Channel) Service { + return &service{ch} +} + +func (c *service) DumpSwInterface(ctx context.Context, in *SwInterfaceDump) ([]*SwInterfaceDetails, error) { + var dump []*SwInterfaceDetails + req := c.ch.SendMultiRequest(in) + for { + m := new(SwInterfaceDetails) + stop, err := req.ReceiveReply(m) + if stop { + break + } + if err != nil { + return nil, err + } + dump = append(dump, m) + } + return dump, nil +} + +func (c *service) DumpSwInterfaceRxPlacement(ctx context.Context, in *SwInterfaceRxPlacementDump) ([]*SwInterfaceRxPlacementDetails, error) { + var dump []*SwInterfaceRxPlacementDetails + req := c.ch.SendMultiRequest(in) + for { + m := new(SwInterfaceRxPlacementDetails) + stop, err := req.ReceiveReply(m) + if stop { + break + } + if err != nil { + return nil, err + } + dump = append(dump, m) + } + return dump, nil +} + +func (c *service) CollectDetailedInterfaceStats(ctx context.Context, in *CollectDetailedInterfaceStats) (*CollectDetailedInterfaceStatsReply, error) { + out := new(CollectDetailedInterfaceStatsReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) CreateLoopback(ctx context.Context, in *CreateLoopback) (*CreateLoopbackReply, error) { + out := new(CreateLoopbackReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) CreateLoopbackInstance(ctx context.Context, in *CreateLoopbackInstance) (*CreateLoopbackInstanceReply, error) { + out := new(CreateLoopbackInstanceReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) CreateSubif(ctx context.Context, in *CreateSubif) (*CreateSubifReply, error) { + out := new(CreateSubifReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) CreateVlanSubif(ctx context.Context, in *CreateVlanSubif) (*CreateVlanSubifReply, error) { + out := new(CreateVlanSubifReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) DeleteLoopback(ctx context.Context, in *DeleteLoopback) (*DeleteLoopbackReply, error) { + out := new(DeleteLoopbackReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) DeleteSubif(ctx context.Context, in *DeleteSubif) (*DeleteSubifReply, error) { + out := new(DeleteSubifReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) HwInterfaceSetMtu(ctx context.Context, in *HwInterfaceSetMtu) (*HwInterfaceSetMtuReply, error) { + out := new(HwInterfaceSetMtuReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) InterfaceNameRenumber(ctx context.Context, in *InterfaceNameRenumber) (*InterfaceNameRenumberReply, error) { + out := new(InterfaceNameRenumberReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceAddDelAddress(ctx context.Context, in *SwInterfaceAddDelAddress) (*SwInterfaceAddDelAddressReply, error) { + out := new(SwInterfaceAddDelAddressReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceClearStats(ctx context.Context, in *SwInterfaceClearStats) (*SwInterfaceClearStatsReply, error) { + out := new(SwInterfaceClearStatsReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceGetMacAddress(ctx context.Context, in *SwInterfaceGetMacAddress) (*SwInterfaceGetMacAddressReply, error) { + out := new(SwInterfaceGetMacAddressReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceGetTable(ctx context.Context, in *SwInterfaceGetTable) (*SwInterfaceGetTableReply, error) { + out := new(SwInterfaceGetTableReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetFlags(ctx context.Context, in *SwInterfaceSetFlags) (*SwInterfaceSetFlagsReply, error) { + out := new(SwInterfaceSetFlagsReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetIPDirectedBroadcast(ctx context.Context, in *SwInterfaceSetIPDirectedBroadcast) (*SwInterfaceSetIPDirectedBroadcastReply, error) { + out := new(SwInterfaceSetIPDirectedBroadcastReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetMacAddress(ctx context.Context, in *SwInterfaceSetMacAddress) (*SwInterfaceSetMacAddressReply, error) { + out := new(SwInterfaceSetMacAddressReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetMtu(ctx context.Context, in *SwInterfaceSetMtu) (*SwInterfaceSetMtuReply, error) { + out := new(SwInterfaceSetMtuReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetRxMode(ctx context.Context, in *SwInterfaceSetRxMode) (*SwInterfaceSetRxModeReply, error) { + out := new(SwInterfaceSetRxModeReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetRxPlacement(ctx context.Context, in *SwInterfaceSetRxPlacement) (*SwInterfaceSetRxPlacementReply, error) { + out := new(SwInterfaceSetRxPlacementReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetTable(ctx context.Context, in *SwInterfaceSetTable) (*SwInterfaceSetTableReply, error) { + out := new(SwInterfaceSetTableReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceSetUnnumbered(ctx context.Context, in *SwInterfaceSetUnnumbered) (*SwInterfaceSetUnnumberedReply, error) { + out := new(SwInterfaceSetUnnumberedReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) SwInterfaceTagAddDel(ctx context.Context, in *SwInterfaceTagAddDel) (*SwInterfaceTagAddDelReply, error) { + out := new(SwInterfaceTagAddDelReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *service) WantInterfaceEvents(ctx context.Context, in *WantInterfaceEvents) (*WantInterfaceEventsReply, error) { + out := new(WantInterfaceEventsReply) + err := c.ch.SendRequest(in).ReceiveReply(out) + if err != nil { + return nil, err + } + return out, nil +} -- cgit 1.2.3-korg