Improvements for binapi-generator and support VPP 19.04 in statsclient
[govpp.git] / examples / binapi / ip / ip.ba.go
index 58a9aaa..a23ae94 100644 (file)
@@ -1,10 +1,10 @@
-// Code generated by GoVPP binapi-generator. DO NOT EDIT.
+// Code generated by GoVPP's binapi-generator. DO NOT EDIT.
 // source: /usr/share/vpp/api/core/ip.api.json
 
 /*
-Package ip is a generated from VPP binary API module 'ip'.
+Package ip is a generated VPP binary API for 'ip' module.
 
- The ip module consists of:
+It consists of:
          2 enums
          3 aliases
         12 types
@@ -14,24 +14,14 @@ Package ip is a generated from VPP binary API module 'ip'.
 */
 package ip
 
-import api "git.fd.io/govpp.git/api"
-import bytes "bytes"
-import context "context"
-import strconv "strconv"
-import struc "github.com/lunixbochs/struc"
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = api.RegisterMessage
-var _ = bytes.NewBuffer
-var _ = context.Background
-var _ = strconv.Itoa
-var _ = struc.Pack
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the GoVPP api package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// GoVPP api package needs to be updated.
-const _ = api.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+import (
+       bytes "bytes"
+       context "context"
+       api "git.fd.io/govpp.git/api"
+       struc "github.com/lunixbochs/struc"
+       io "io"
+       strconv "strconv"
+)
 
 const (
        // ModuleName is the name of this module.
@@ -42,9 +32,7 @@ const (
        VersionCrc = 0x51ac4ce0
 )
 
-/* Enums */
-
-// AddressFamily represents VPP binary API enum 'address_family':
+// AddressFamily represents VPP binary API enum 'address_family'.
 type AddressFamily uint32
 
 const (
@@ -70,7 +58,7 @@ func (x AddressFamily) String() string {
        return strconv.Itoa(int(x))
 }
 
-// IPNeighborFlags represents VPP binary API enum 'ip_neighbor_flags':
+// IPNeighborFlags represents VPP binary API enum 'ip_neighbor_flags'.
 type IPNeighborFlags uint32
 
 const (
@@ -99,20 +87,16 @@ func (x IPNeighborFlags) String() string {
        return strconv.Itoa(int(x))
 }
 
-/* Aliases */
-
-// IP4Address represents VPP binary API alias 'ip4_address':
+// IP4Address represents VPP binary API alias 'ip4_address'.
 type IP4Address [4]uint8
 
-// IP6Address represents VPP binary API alias 'ip6_address':
+// IP6Address represents VPP binary API alias 'ip6_address'.
 type IP6Address [16]uint8
 
-// MacAddress represents VPP binary API alias 'mac_address':
+// MacAddress represents VPP binary API alias 'mac_address'.
 type MacAddress [6]uint8
 
-/* Types */
-
-// Address represents VPP binary API type 'address':
+// Address represents VPP binary API type 'address'.
 type Address struct {
        Af AddressFamily
        Un AddressUnion
@@ -125,7 +109,7 @@ func (*Address) GetCrcString() string {
        return "09f11671"
 }
 
-// FibMplsLabel represents VPP binary API type 'fib_mpls_label':
+// FibMplsLabel represents VPP binary API type 'fib_mpls_label'.
 type FibMplsLabel struct {
        IsUniform uint8
        Label     uint32
@@ -140,7 +124,7 @@ func (*FibMplsLabel) GetCrcString() string {
        return "c93bf35c"
 }
 
-// FibPath represents VPP binary API type 'fib_path':
+// FibPath represents VPP binary API type 'fib_path'.
 type FibPath struct {
        SwIfIndex         uint32
        TableID           uint32
@@ -172,7 +156,7 @@ func (*FibPath) GetCrcString() string {
        return "ba7a81f0"
 }
 
-// IP4Prefix represents VPP binary API type 'ip4_prefix':
+// IP4Prefix represents VPP binary API type 'ip4_prefix'.
 type IP4Prefix struct {
        Prefix IP4Address
        Len    uint8
@@ -185,7 +169,7 @@ func (*IP4Prefix) GetCrcString() string {
        return "ea8dc11d"
 }
 
-// IP6Prefix represents VPP binary API type 'ip6_prefix':
+// IP6Prefix represents VPP binary API type 'ip6_prefix'.
 type IP6Prefix struct {
        Prefix IP6Address
        Len    uint8
@@ -198,7 +182,7 @@ func (*IP6Prefix) GetCrcString() string {
        return "779fd64f"
 }
 
-// IP6RaPrefixInfo represents VPP binary API type 'ip6_ra_prefix_info':
+// IP6RaPrefixInfo represents VPP binary API type 'ip6_ra_prefix_info'.
 type IP6RaPrefixInfo struct {
        Prefix        Prefix
        Flags         uint8
@@ -213,7 +197,7 @@ func (*IP6RaPrefixInfo) GetCrcString() string {
        return "fa025b72"
 }
 
-// IPNeighbor represents VPP binary API type 'ip_neighbor':
+// IPNeighbor represents VPP binary API type 'ip_neighbor'.
 type IPNeighbor struct {
        SwIfIndex  uint32
        Flags      IPNeighborFlags
@@ -228,7 +212,7 @@ func (*IPNeighbor) GetCrcString() string {
        return "4bf82d5d"
 }
 
-// MfibPath represents VPP binary API type 'mfib_path':
+// MfibPath represents VPP binary API type 'mfib_path'.
 type MfibPath struct {
        Path     FibPath
        ItfFlags uint32
@@ -241,7 +225,7 @@ func (*MfibPath) GetCrcString() string {
        return "4ba77d32"
 }
 
-// Mprefix represents VPP binary API type 'mprefix':
+// Mprefix represents VPP binary API type 'mprefix'.
 type Mprefix struct {
        Af               AddressFamily
        GrpAddressLength uint16
@@ -256,7 +240,7 @@ func (*Mprefix) GetCrcString() string {
        return "1c4cba05"
 }
 
-// Prefix represents VPP binary API type 'prefix':
+// Prefix represents VPP binary API type 'prefix'.
 type Prefix struct {
        Address       Address
        AddressLength uint8
@@ -269,7 +253,7 @@ func (*Prefix) GetCrcString() string {
        return "0403aebc"
 }
 
-// ProxyArp represents VPP binary API type 'proxy_arp':
+// ProxyArp represents VPP binary API type 'proxy_arp'.
 type ProxyArp struct {
        TableID uint32
        Low     IP4Address
@@ -283,7 +267,7 @@ func (*ProxyArp) GetCrcString() string {
        return "e9067693"
 }
 
-// PuntRedirect represents VPP binary API type 'punt_redirect':
+// PuntRedirect represents VPP binary API type 'punt_redirect'.
 type PuntRedirect struct {
        RxSwIfIndex uint32
        TxSwIfIndex uint32
@@ -297,9 +281,7 @@ func (*PuntRedirect) GetCrcString() string {
        return "3e7a801f"
 }
 
-/* Unions */
-
-// AddressUnion represents VPP binary API union 'address_union':
+// AddressUnion represents VPP binary API union 'address_union'.
 type AddressUnion struct {
        XXX_UnionData [16]byte
 }
@@ -345,9 +327,7 @@ func (u *AddressUnion) GetIP6() (a IP6Address) {
        return
 }
 
-/* Messages */
-
-// IoamDisable represents VPP binary API message 'ioam_disable':
+// IoamDisable represents VPP binary API message 'ioam_disable'.
 type IoamDisable struct {
        ID uint16
 }
@@ -362,7 +342,7 @@ func (*IoamDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IoamDisableReply represents VPP binary API message 'ioam_disable_reply':
+// IoamDisableReply represents VPP binary API message 'ioam_disable_reply'.
 type IoamDisableReply struct {
        Retval int32
 }
@@ -377,7 +357,7 @@ func (*IoamDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IoamEnable represents VPP binary API message 'ioam_enable':
+// IoamEnable represents VPP binary API message 'ioam_enable'.
 type IoamEnable struct {
        ID          uint16
        Seqno       uint8
@@ -397,7 +377,7 @@ func (*IoamEnable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IoamEnableReply represents VPP binary API message 'ioam_enable_reply':
+// IoamEnableReply represents VPP binary API message 'ioam_enable_reply'.
 type IoamEnableReply struct {
        Retval int32
 }
@@ -412,7 +392,7 @@ func (*IoamEnableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP4ArpEvent represents VPP binary API message 'ip4_arp_event':
+// IP4ArpEvent represents VPP binary API message 'ip4_arp_event'.
 type IP4ArpEvent struct {
        IP        IP4Address
        PID       uint32
@@ -431,7 +411,7 @@ func (*IP4ArpEvent) GetMessageType() api.MessageType {
        return api.EventMessage
 }
 
-// IP6FibDetails represents VPP binary API message 'ip6_fib_details':
+// IP6FibDetails represents VPP binary API message 'ip6_fib_details'.
 type IP6FibDetails struct {
        TableID       uint32
        TableName     []byte `struc:"[64]byte"`
@@ -452,7 +432,7 @@ func (*IP6FibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP6FibDump represents VPP binary API message 'ip6_fib_dump':
+// IP6FibDump represents VPP binary API message 'ip6_fib_dump'.
 type IP6FibDump struct{}
 
 func (*IP6FibDump) GetMessageName() string {
@@ -465,7 +445,7 @@ func (*IP6FibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IP6MfibDetails represents VPP binary API message 'ip6_mfib_details':
+// IP6MfibDetails represents VPP binary API message 'ip6_mfib_details'.
 type IP6MfibDetails struct {
        TableID       uint32
        AddressLength uint8
@@ -485,7 +465,7 @@ func (*IP6MfibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump':
+// IP6MfibDump represents VPP binary API message 'ip6_mfib_dump'.
 type IP6MfibDump struct{}
 
 func (*IP6MfibDump) GetMessageName() string {
@@ -498,7 +478,7 @@ func (*IP6MfibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IP6NdEvent represents VPP binary API message 'ip6_nd_event':
+// IP6NdEvent represents VPP binary API message 'ip6_nd_event'.
 type IP6NdEvent struct {
        PID       uint32
        SwIfIndex uint32
@@ -517,7 +497,7 @@ func (*IP6NdEvent) GetMessageType() api.MessageType {
        return api.EventMessage
 }
 
-// IP6RaEvent represents VPP binary API message 'ip6_ra_event':
+// IP6RaEvent represents VPP binary API message 'ip6_ra_event'.
 type IP6RaEvent struct {
        PID                                                 uint32
        SwIfIndex                                           uint32
@@ -541,7 +521,7 @@ func (*IP6RaEvent) GetMessageType() api.MessageType {
        return api.EventMessage
 }
 
-// IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del':
+// IP6ndProxyAddDel represents VPP binary API message 'ip6nd_proxy_add_del'.
 type IP6ndProxyAddDel struct {
        SwIfIndex uint32
        IsDel     uint8
@@ -558,7 +538,7 @@ func (*IP6ndProxyAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IP6ndProxyAddDelReply represents VPP binary API message 'ip6nd_proxy_add_del_reply':
+// IP6ndProxyAddDelReply represents VPP binary API message 'ip6nd_proxy_add_del_reply'.
 type IP6ndProxyAddDelReply struct {
        Retval int32
 }
@@ -573,7 +553,7 @@ func (*IP6ndProxyAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP6ndProxyDetails represents VPP binary API message 'ip6nd_proxy_details':
+// IP6ndProxyDetails represents VPP binary API message 'ip6nd_proxy_details'.
 type IP6ndProxyDetails struct {
        SwIfIndex uint32
        IP        IP6Address
@@ -589,7 +569,7 @@ func (*IP6ndProxyDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IP6ndProxyDump represents VPP binary API message 'ip6nd_proxy_dump':
+// IP6ndProxyDump represents VPP binary API message 'ip6nd_proxy_dump'.
 type IP6ndProxyDump struct{}
 
 func (*IP6ndProxyDump) GetMessageName() string {
@@ -602,7 +582,7 @@ func (*IP6ndProxyDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IP6ndSendRouterSolicitation represents VPP binary API message 'ip6nd_send_router_solicitation':
+// IP6ndSendRouterSolicitation represents VPP binary API message 'ip6nd_send_router_solicitation'.
 type IP6ndSendRouterSolicitation struct {
        Irt       uint32
        Mrt       uint32
@@ -622,7 +602,7 @@ func (*IP6ndSendRouterSolicitation) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IP6ndSendRouterSolicitationReply represents VPP binary API message 'ip6nd_send_router_solicitation_reply':
+// IP6ndSendRouterSolicitationReply represents VPP binary API message 'ip6nd_send_router_solicitation_reply'.
 type IP6ndSendRouterSolicitationReply struct {
        Retval int32
 }
@@ -637,7 +617,7 @@ func (*IP6ndSendRouterSolicitationReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPAddDelRoute represents VPP binary API message 'ip_add_del_route':
+// IPAddDelRoute represents VPP binary API message 'ip_add_del_route'.
 type IPAddDelRoute struct {
        NextHopSwIfIndex     uint32
        TableID              uint32
@@ -678,7 +658,7 @@ func (*IPAddDelRoute) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply':
+// IPAddDelRouteReply represents VPP binary API message 'ip_add_del_route_reply'.
 type IPAddDelRouteReply struct {
        Retval     int32
        StatsIndex uint32
@@ -694,7 +674,7 @@ func (*IPAddDelRouteReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPAddressDetails represents VPP binary API message 'ip_address_details':
+// IPAddressDetails represents VPP binary API message 'ip_address_details'.
 type IPAddressDetails struct {
        IP           []byte `struc:"[16]byte"`
        PrefixLength uint8
@@ -712,7 +692,7 @@ func (*IPAddressDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPAddressDump represents VPP binary API message 'ip_address_dump':
+// IPAddressDump represents VPP binary API message 'ip_address_dump'.
 type IPAddressDump struct {
        SwIfIndex uint32
        IsIPv6    uint8
@@ -728,7 +708,7 @@ func (*IPAddressDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPContainerProxyAddDel represents VPP binary API message 'ip_container_proxy_add_del':
+// IPContainerProxyAddDel represents VPP binary API message 'ip_container_proxy_add_del'.
 type IPContainerProxyAddDel struct {
        Pfx       Prefix
        SwIfIndex uint32
@@ -745,7 +725,7 @@ func (*IPContainerProxyAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply':
+// IPContainerProxyAddDelReply represents VPP binary API message 'ip_container_proxy_add_del_reply'.
 type IPContainerProxyAddDelReply struct {
        Retval int32
 }
@@ -760,7 +740,7 @@ func (*IPContainerProxyAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPContainerProxyDetails represents VPP binary API message 'ip_container_proxy_details':
+// IPContainerProxyDetails represents VPP binary API message 'ip_container_proxy_details'.
 type IPContainerProxyDetails struct {
        SwIfIndex uint32
        Prefix    Prefix
@@ -776,7 +756,7 @@ func (*IPContainerProxyDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump':
+// IPContainerProxyDump represents VPP binary API message 'ip_container_proxy_dump'.
 type IPContainerProxyDump struct{}
 
 func (*IPContainerProxyDump) GetMessageName() string {
@@ -789,7 +769,7 @@ func (*IPContainerProxyDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPDetails represents VPP binary API message 'ip_details':
+// IPDetails represents VPP binary API message 'ip_details'.
 type IPDetails struct {
        SwIfIndex uint32
        IsIPv6    uint8
@@ -805,7 +785,7 @@ func (*IPDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPDump represents VPP binary API message 'ip_dump':
+// IPDump represents VPP binary API message 'ip_dump'.
 type IPDump struct {
        IsIPv6 uint8
 }
@@ -820,7 +800,7 @@ func (*IPDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPFibDetails represents VPP binary API message 'ip_fib_details':
+// IPFibDetails represents VPP binary API message 'ip_fib_details'.
 type IPFibDetails struct {
        TableID       uint32
        TableName     []byte `struc:"[64]byte"`
@@ -841,7 +821,7 @@ func (*IPFibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPFibDump represents VPP binary API message 'ip_fib_dump':
+// IPFibDump represents VPP binary API message 'ip_fib_dump'.
 type IPFibDump struct{}
 
 func (*IPFibDump) GetMessageName() string {
@@ -854,7 +834,7 @@ func (*IPFibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPMfibDetails represents VPP binary API message 'ip_mfib_details':
+// IPMfibDetails represents VPP binary API message 'ip_mfib_details'.
 type IPMfibDetails struct {
        TableID       uint32
        EntryFlags    uint32
@@ -877,7 +857,7 @@ func (*IPMfibDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPMfibDump represents VPP binary API message 'ip_mfib_dump':
+// IPMfibDump represents VPP binary API message 'ip_mfib_dump'.
 type IPMfibDump struct{}
 
 func (*IPMfibDump) GetMessageName() string {
@@ -890,7 +870,7 @@ func (*IPMfibDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del':
+// IPMrouteAddDel represents VPP binary API message 'ip_mroute_add_del'.
 type IPMrouteAddDel struct {
        NextHopSwIfIndex uint32
        TableID          uint32
@@ -918,7 +898,7 @@ func (*IPMrouteAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply':
+// IPMrouteAddDelReply represents VPP binary API message 'ip_mroute_add_del_reply'.
 type IPMrouteAddDelReply struct {
        Retval     int32
        StatsIndex uint32
@@ -934,7 +914,7 @@ func (*IPMrouteAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del':
+// IPNeighborAddDel represents VPP binary API message 'ip_neighbor_add_del'.
 type IPNeighborAddDel struct {
        IsAdd    uint8
        Neighbor IPNeighbor
@@ -950,7 +930,7 @@ func (*IPNeighborAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply':
+// IPNeighborAddDelReply represents VPP binary API message 'ip_neighbor_add_del_reply'.
 type IPNeighborAddDelReply struct {
        Retval     int32
        StatsIndex uint32
@@ -966,7 +946,7 @@ func (*IPNeighborAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPNeighborDetails represents VPP binary API message 'ip_neighbor_details':
+// IPNeighborDetails represents VPP binary API message 'ip_neighbor_details'.
 type IPNeighborDetails struct {
        Neighbor IPNeighbor
 }
@@ -981,7 +961,7 @@ func (*IPNeighborDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump':
+// IPNeighborDump represents VPP binary API message 'ip_neighbor_dump'.
 type IPNeighborDump struct {
        SwIfIndex uint32
        IsIPv6    uint8
@@ -997,7 +977,7 @@ func (*IPNeighborDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor':
+// IPProbeNeighbor represents VPP binary API message 'ip_probe_neighbor'.
 type IPProbeNeighbor struct {
        SwIfIndex uint32
        Dst       Address
@@ -1013,7 +993,7 @@ func (*IPProbeNeighbor) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply':
+// IPProbeNeighborReply represents VPP binary API message 'ip_probe_neighbor_reply'.
 type IPProbeNeighborReply struct {
        Retval int32
 }
@@ -1028,7 +1008,7 @@ func (*IPProbeNeighborReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPPuntPolice represents VPP binary API message 'ip_punt_police':
+// IPPuntPolice represents VPP binary API message 'ip_punt_police'.
 type IPPuntPolice struct {
        PolicerIndex uint32
        IsAdd        uint8
@@ -1045,7 +1025,7 @@ func (*IPPuntPolice) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPPuntPoliceReply represents VPP binary API message 'ip_punt_police_reply':
+// IPPuntPoliceReply represents VPP binary API message 'ip_punt_police_reply'.
 type IPPuntPoliceReply struct {
        Retval int32
 }
@@ -1060,7 +1040,7 @@ func (*IPPuntPoliceReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPPuntRedirect represents VPP binary API message 'ip_punt_redirect':
+// IPPuntRedirect represents VPP binary API message 'ip_punt_redirect'.
 type IPPuntRedirect struct {
        Punt  PuntRedirect
        IsAdd uint8
@@ -1076,7 +1056,7 @@ func (*IPPuntRedirect) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details':
+// IPPuntRedirectDetails represents VPP binary API message 'ip_punt_redirect_details'.
 type IPPuntRedirectDetails struct {
        Punt PuntRedirect
 }
@@ -1091,7 +1071,7 @@ func (*IPPuntRedirectDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPPuntRedirectDump represents VPP binary API message 'ip_punt_redirect_dump':
+// IPPuntRedirectDump represents VPP binary API message 'ip_punt_redirect_dump'.
 type IPPuntRedirectDump struct {
        SwIfIndex uint32
        IsIPv6    uint8
@@ -1107,7 +1087,7 @@ func (*IPPuntRedirectDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply':
+// IPPuntRedirectReply represents VPP binary API message 'ip_punt_redirect_reply'.
 type IPPuntRedirectReply struct {
        Retval int32
 }
@@ -1122,7 +1102,7 @@ func (*IPPuntRedirectReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable':
+// IPReassemblyEnableDisable represents VPP binary API message 'ip_reassembly_enable_disable'.
 type IPReassemblyEnableDisable struct {
        SwIfIndex uint32
        EnableIP4 uint8
@@ -1139,7 +1119,7 @@ func (*IPReassemblyEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply':
+// IPReassemblyEnableDisableReply represents VPP binary API message 'ip_reassembly_enable_disable_reply'.
 type IPReassemblyEnableDisableReply struct {
        Retval int32
 }
@@ -1154,7 +1134,7 @@ func (*IPReassemblyEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get':
+// IPReassemblyGet represents VPP binary API message 'ip_reassembly_get'.
 type IPReassemblyGet struct {
        IsIP6 uint8
 }
@@ -1169,7 +1149,7 @@ func (*IPReassemblyGet) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply':
+// IPReassemblyGetReply represents VPP binary API message 'ip_reassembly_get_reply'.
 type IPReassemblyGetReply struct {
        Retval               int32
        TimeoutMs            uint32
@@ -1188,7 +1168,7 @@ func (*IPReassemblyGetReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPReassemblySet represents VPP binary API message 'ip_reassembly_set':
+// IPReassemblySet represents VPP binary API message 'ip_reassembly_set'.
 type IPReassemblySet struct {
        TimeoutMs            uint32
        MaxReassemblies      uint32
@@ -1206,7 +1186,7 @@ func (*IPReassemblySet) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply':
+// IPReassemblySetReply represents VPP binary API message 'ip_reassembly_set_reply'.
 type IPReassemblySetReply struct {
        Retval int32
 }
@@ -1221,7 +1201,7 @@ func (*IPReassemblySetReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable':
+// IPScanNeighborEnableDisable represents VPP binary API message 'ip_scan_neighbor_enable_disable'.
 type IPScanNeighborEnableDisable struct {
        Mode           uint8
        ScanInterval   uint8
@@ -1241,7 +1221,7 @@ func (*IPScanNeighborEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply':
+// IPScanNeighborEnableDisableReply represents VPP binary API message 'ip_scan_neighbor_enable_disable_reply'.
 type IPScanNeighborEnableDisableReply struct {
        Retval int32
 }
@@ -1256,7 +1236,7 @@ func (*IPScanNeighborEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del':
+// IPSourceAndPortRangeCheckAddDel represents VPP binary API message 'ip_source_and_port_range_check_add_del'.
 type IPSourceAndPortRangeCheckAddDel struct {
        IsAdd          uint8
        Prefix         Prefix
@@ -1276,7 +1256,7 @@ func (*IPSourceAndPortRangeCheckAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply':
+// IPSourceAndPortRangeCheckAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_add_del_reply'.
 type IPSourceAndPortRangeCheckAddDelReply struct {
        Retval int32
 }
@@ -1291,7 +1271,7 @@ func (*IPSourceAndPortRangeCheckAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del':
+// IPSourceAndPortRangeCheckInterfaceAddDel represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del'.
 type IPSourceAndPortRangeCheckInterfaceAddDel struct {
        IsAdd       uint8
        SwIfIndex   uint32
@@ -1311,7 +1291,7 @@ func (*IPSourceAndPortRangeCheckInterfaceAddDel) GetMessageType() api.MessageTyp
        return api.RequestMessage
 }
 
-// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply':
+// IPSourceAndPortRangeCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_and_port_range_check_interface_add_del_reply'.
 type IPSourceAndPortRangeCheckInterfaceAddDelReply struct {
        Retval int32
 }
@@ -1326,7 +1306,7 @@ func (*IPSourceAndPortRangeCheckInterfaceAddDelReply) GetMessageType() api.Messa
        return api.ReplyMessage
 }
 
-// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del':
+// IPSourceCheckInterfaceAddDel represents VPP binary API message 'ip_source_check_interface_add_del'.
 type IPSourceCheckInterfaceAddDel struct {
        IsAdd     uint8
        Loose     uint8
@@ -1343,7 +1323,7 @@ func (*IPSourceCheckInterfaceAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply':
+// IPSourceCheckInterfaceAddDelReply represents VPP binary API message 'ip_source_check_interface_add_del_reply'.
 type IPSourceCheckInterfaceAddDelReply struct {
        Retval int32
 }
@@ -1358,7 +1338,7 @@ func (*IPSourceCheckInterfaceAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPTableAddDel represents VPP binary API message 'ip_table_add_del':
+// IPTableAddDel represents VPP binary API message 'ip_table_add_del'.
 type IPTableAddDel struct {
        TableID uint32
        IsIPv6  uint8
@@ -1376,7 +1356,7 @@ func (*IPTableAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply':
+// IPTableAddDelReply represents VPP binary API message 'ip_table_add_del_reply'.
 type IPTableAddDelReply struct {
        Retval int32
 }
@@ -1391,7 +1371,7 @@ func (*IPTableAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details':
+// IPUnnumberedDetails represents VPP binary API message 'ip_unnumbered_details'.
 type IPUnnumberedDetails struct {
        SwIfIndex   uint32
        IPSwIfIndex uint32
@@ -1407,7 +1387,7 @@ func (*IPUnnumberedDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump':
+// IPUnnumberedDump represents VPP binary API message 'ip_unnumbered_dump'.
 type IPUnnumberedDump struct {
        SwIfIndex uint32
 }
@@ -1422,7 +1402,7 @@ func (*IPUnnumberedDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// MfibSignalDetails represents VPP binary API message 'mfib_signal_details':
+// MfibSignalDetails represents VPP binary API message 'mfib_signal_details'.
 type MfibSignalDetails struct {
        SwIfIndex     uint32
        TableID       uint32
@@ -1443,7 +1423,7 @@ func (*MfibSignalDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// MfibSignalDump represents VPP binary API message 'mfib_signal_dump':
+// MfibSignalDump represents VPP binary API message 'mfib_signal_dump'.
 type MfibSignalDump struct{}
 
 func (*MfibSignalDump) GetMessageName() string {
@@ -1456,7 +1436,7 @@ func (*MfibSignalDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del':
+// ProxyArpAddDel represents VPP binary API message 'proxy_arp_add_del'.
 type ProxyArpAddDel struct {
        IsAdd uint8
        Proxy ProxyArp
@@ -1472,7 +1452,7 @@ func (*ProxyArpAddDel) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply':
+// ProxyArpAddDelReply represents VPP binary API message 'proxy_arp_add_del_reply'.
 type ProxyArpAddDelReply struct {
        Retval int32
 }
@@ -1487,7 +1467,7 @@ func (*ProxyArpAddDelReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ProxyArpDetails represents VPP binary API message 'proxy_arp_details':
+// ProxyArpDetails represents VPP binary API message 'proxy_arp_details'.
 type ProxyArpDetails struct {
        Proxy ProxyArp
 }
@@ -1502,7 +1482,7 @@ func (*ProxyArpDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ProxyArpDump represents VPP binary API message 'proxy_arp_dump':
+// ProxyArpDump represents VPP binary API message 'proxy_arp_dump'.
 type ProxyArpDump struct{}
 
 func (*ProxyArpDump) GetMessageName() string {
@@ -1515,7 +1495,7 @@ func (*ProxyArpDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details':
+// ProxyArpIntfcDetails represents VPP binary API message 'proxy_arp_intfc_details'.
 type ProxyArpIntfcDetails struct {
        SwIfIndex uint32
 }
@@ -1530,7 +1510,7 @@ func (*ProxyArpIntfcDetails) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump':
+// ProxyArpIntfcDump represents VPP binary API message 'proxy_arp_intfc_dump'.
 type ProxyArpIntfcDump struct{}
 
 func (*ProxyArpIntfcDump) GetMessageName() string {
@@ -1543,7 +1523,7 @@ func (*ProxyArpIntfcDump) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable':
+// ProxyArpIntfcEnableDisable represents VPP binary API message 'proxy_arp_intfc_enable_disable'.
 type ProxyArpIntfcEnableDisable struct {
        SwIfIndex     uint32
        EnableDisable uint8
@@ -1559,7 +1539,7 @@ func (*ProxyArpIntfcEnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply':
+// ProxyArpIntfcEnableDisableReply represents VPP binary API message 'proxy_arp_intfc_enable_disable_reply'.
 type ProxyArpIntfcEnableDisableReply struct {
        Retval int32
 }
@@ -1574,7 +1554,7 @@ func (*ProxyArpIntfcEnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// ResetFib represents VPP binary API message 'reset_fib':
+// ResetFib represents VPP binary API message 'reset_fib'.
 type ResetFib struct {
        VrfID  uint32
        IsIPv6 uint8
@@ -1590,7 +1570,7 @@ func (*ResetFib) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// ResetFibReply represents VPP binary API message 'reset_fib_reply':
+// ResetFibReply represents VPP binary API message 'reset_fib_reply'.
 type ResetFibReply struct {
        Retval int32
 }
@@ -1605,7 +1585,7 @@ func (*ResetFibReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit':
+// SetArpNeighborLimit represents VPP binary API message 'set_arp_neighbor_limit'.
 type SetArpNeighborLimit struct {
        IsIPv6           uint8
        ArpNeighborLimit uint32
@@ -1621,7 +1601,7 @@ func (*SetArpNeighborLimit) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply':
+// SetArpNeighborLimitReply represents VPP binary API message 'set_arp_neighbor_limit_reply'.
 type SetArpNeighborLimitReply struct {
        Retval int32
 }
@@ -1636,7 +1616,7 @@ func (*SetArpNeighborLimitReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash':
+// SetIPFlowHash represents VPP binary API message 'set_ip_flow_hash'.
 type SetIPFlowHash struct {
        VrfID     uint32
        IsIPv6    uint8
@@ -1659,7 +1639,7 @@ func (*SetIPFlowHash) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply':
+// SetIPFlowHashReply represents VPP binary API message 'set_ip_flow_hash_reply'.
 type SetIPFlowHashReply struct {
        Retval int32
 }
@@ -1674,7 +1654,7 @@ func (*SetIPFlowHashReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceIP6EnableDisable represents VPP binary API message 'sw_interface_ip6_enable_disable':
+// SwInterfaceIP6EnableDisable represents VPP binary API message 'sw_interface_ip6_enable_disable'.
 type SwInterfaceIP6EnableDisable struct {
        SwIfIndex uint32
        Enable    uint8
@@ -1690,7 +1670,7 @@ func (*SwInterfaceIP6EnableDisable) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceIP6EnableDisableReply represents VPP binary API message 'sw_interface_ip6_enable_disable_reply':
+// SwInterfaceIP6EnableDisableReply represents VPP binary API message 'sw_interface_ip6_enable_disable_reply'.
 type SwInterfaceIP6EnableDisableReply struct {
        Retval int32
 }
@@ -1705,7 +1685,7 @@ func (*SwInterfaceIP6EnableDisableReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config':
+// SwInterfaceIP6ndRaConfig represents VPP binary API message 'sw_interface_ip6nd_ra_config'.
 type SwInterfaceIP6ndRaConfig struct {
        SwIfIndex       uint32
        Suppress        uint8
@@ -1733,7 +1713,7 @@ func (*SwInterfaceIP6ndRaConfig) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply':
+// SwInterfaceIP6ndRaConfigReply represents VPP binary API message 'sw_interface_ip6nd_ra_config_reply'.
 type SwInterfaceIP6ndRaConfigReply struct {
        Retval int32
 }
@@ -1748,7 +1728,7 @@ func (*SwInterfaceIP6ndRaConfigReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix':
+// SwInterfaceIP6ndRaPrefix represents VPP binary API message 'sw_interface_ip6nd_ra_prefix'.
 type SwInterfaceIP6ndRaPrefix struct {
        SwIfIndex    uint32
        Prefix       Prefix
@@ -1772,7 +1752,7 @@ func (*SwInterfaceIP6ndRaPrefix) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// SwInterfaceIP6ndRaPrefixReply represents VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply':
+// SwInterfaceIP6ndRaPrefixReply represents VPP binary API message 'sw_interface_ip6nd_ra_prefix_reply'.
 type SwInterfaceIP6ndRaPrefixReply struct {
        Retval int32
 }
@@ -1787,7 +1767,7 @@ func (*SwInterfaceIP6ndRaPrefixReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events':
+// WantIP4ArpEvents represents VPP binary API message 'want_ip4_arp_events'.
 type WantIP4ArpEvents struct {
        EnableDisable uint8
        PID           uint32
@@ -1804,7 +1784,7 @@ func (*WantIP4ArpEvents) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply':
+// WantIP4ArpEventsReply represents VPP binary API message 'want_ip4_arp_events_reply'.
 type WantIP4ArpEventsReply struct {
        Retval int32
 }
@@ -1819,7 +1799,7 @@ func (*WantIP4ArpEventsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events':
+// WantIP6NdEvents represents VPP binary API message 'want_ip6_nd_events'.
 type WantIP6NdEvents struct {
        EnableDisable uint8
        PID           uint32
@@ -1836,7 +1816,7 @@ func (*WantIP6NdEvents) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply':
+// WantIP6NdEventsReply represents VPP binary API message 'want_ip6_nd_events_reply'.
 type WantIP6NdEventsReply struct {
        Retval int32
 }
@@ -1851,7 +1831,7 @@ func (*WantIP6NdEventsReply) GetMessageType() api.MessageType {
        return api.ReplyMessage
 }
 
-// WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events':
+// WantIP6RaEvents represents VPP binary API message 'want_ip6_ra_events'.
 type WantIP6RaEvents struct {
        EnableDisable uint8
        PID           uint32
@@ -1867,7 +1847,7 @@ func (*WantIP6RaEvents) GetMessageType() api.MessageType {
        return api.RequestMessage
 }
 
-// WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply':
+// WantIP6RaEventsReply represents VPP binary API message 'want_ip6_ra_events_reply'.
 type WantIP6RaEventsReply struct {
        Retval int32
 }
@@ -2073,22 +2053,22 @@ func AllMessages() []api.Message {
        }
 }
 
-// Service represents VPP binary API services in ip module.
-type Service interface {
-       DumpIP6Fib(ctx context.Context, in *IP6FibDump) ([]*IP6FibDetails, error)
-       DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) ([]*IP6MfibDetails, error)
-       DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) ([]*IP6ndProxyDetails, error)
-       DumpIPAddress(ctx context.Context, in *IPAddressDump) ([]*IPAddressDetails, error)
-       DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) ([]*IPContainerProxyDetails, error)
-       DumpIP(ctx context.Context, in *IPDump) ([]*IPDetails, error)
-       DumpIPFib(ctx context.Context, in *IPFibDump) ([]*IPFibDetails, error)
-       DumpIPMfib(ctx context.Context, in *IPMfibDump) ([]*IPMfibDetails, error)
-       DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) ([]*IPNeighborDetails, error)
-       DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error)
-       DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) ([]*IPUnnumberedDetails, error)
-       DumpMfibSignal(ctx context.Context, in *MfibSignalDump) ([]*MfibSignalDetails, error)
-       DumpProxyArp(ctx context.Context, in *ProxyArpDump) ([]*ProxyArpDetails, error)
-       DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error)
+// RPCService represents RPC service API for ip module.
+type RPCService interface {
+       DumpIP6Fib(ctx context.Context, in *IP6FibDump) (RPCService_DumpIP6FibClient, error)
+       DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) (RPCService_DumpIP6MfibClient, error)
+       DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) (RPCService_DumpIP6ndProxyClient, error)
+       DumpIPAddress(ctx context.Context, in *IPAddressDump) (RPCService_DumpIPAddressClient, error)
+       DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) (RPCService_DumpIPContainerProxyClient, error)
+       DumpIP(ctx context.Context, in *IPDump) (RPCService_DumpIPClient, error)
+       DumpIPFib(ctx context.Context, in *IPFibDump) (RPCService_DumpIPFibClient, error)
+       DumpIPMfib(ctx context.Context, in *IPMfibDump) (RPCService_DumpIPMfibClient, error)
+       DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) (RPCService_DumpIPNeighborClient, error)
+       DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) (RPCService_DumpIPPuntRedirectClient, error)
+       DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) (RPCService_DumpIPUnnumberedClient, error)
+       DumpMfibSignal(ctx context.Context, in *MfibSignalDump) (RPCService_DumpMfibSignalClient, error)
+       DumpProxyArp(ctx context.Context, in *ProxyArpDump) (RPCService_DumpProxyArpClient, error)
+       DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) (RPCService_DumpProxyArpIntfcClient, error)
        IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error)
        IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error)
        IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error)
@@ -2121,253 +2101,379 @@ type Service interface {
        WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*WantIP6RaEventsReply, error)
 }
 
-type service struct {
+type serviceClient struct {
        ch api.Channel
 }
 
-func NewService(ch api.Channel) Service {
-       return &service{ch}
+func NewServiceClient(ch api.Channel) RPCService {
+       return &serviceClient{ch}
+}
+
+func (c *serviceClient) DumpIP6Fib(ctx context.Context, in *IP6FibDump) (RPCService_DumpIP6FibClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIP6FibClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIP6FibClient interface {
+       Recv() (*IP6FibDetails, error)
+}
+
+type serviceClient_DumpIP6FibClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIP6FibClient) Recv() (*IP6FibDetails, error) {
+       m := new(IP6FibDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
+       }
+       if stop {
+               return nil, io.EOF
+       }
+       return m, nil
+}
+
+func (c *serviceClient) DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) (RPCService_DumpIP6MfibClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIP6MfibClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIP6MfibClient interface {
+       Recv() (*IP6MfibDetails, error)
+}
+
+type serviceClient_DumpIP6MfibClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIP6MfibClient) Recv() (*IP6MfibDetails, error) {
+       m := new(IP6MfibDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
+       }
+       if stop {
+               return nil, io.EOF
+       }
+       return m, nil
+}
+
+func (c *serviceClient) DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) (RPCService_DumpIP6ndProxyClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIP6ndProxyClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIP6ndProxyClient interface {
+       Recv() (*IP6ndProxyDetails, error)
+}
+
+type serviceClient_DumpIP6ndProxyClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIP6ndProxyClient) Recv() (*IP6ndProxyDetails, error) {
+       m := new(IP6ndProxyDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
+       }
+       if stop {
+               return nil, io.EOF
+       }
+       return m, nil
+}
+
+func (c *serviceClient) DumpIPAddress(ctx context.Context, in *IPAddressDump) (RPCService_DumpIPAddressClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPAddressClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPAddressClient interface {
+       Recv() (*IPAddressDetails, error)
+}
+
+type serviceClient_DumpIPAddressClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPAddressClient) Recv() (*IPAddressDetails, error) {
+       m := new(IPAddressDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
+       }
+       if stop {
+               return nil, io.EOF
+       }
+       return m, nil
+}
+
+func (c *serviceClient) DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) (RPCService_DumpIPContainerProxyClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPContainerProxyClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPContainerProxyClient interface {
+       Recv() (*IPContainerProxyDetails, error)
+}
+
+type serviceClient_DumpIPContainerProxyClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPContainerProxyClient) Recv() (*IPContainerProxyDetails, error) {
+       m := new(IPContainerProxyDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
+       }
+       if stop {
+               return nil, io.EOF
+       }
+       return m, nil
+}
+
+func (c *serviceClient) DumpIP(ctx context.Context, in *IPDump) (RPCService_DumpIPClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPClient interface {
+       Recv() (*IPDetails, error)
+}
+
+type serviceClient_DumpIPClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPClient) Recv() (*IPDetails, error) {
+       m := new(IPDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
+       }
+       if stop {
+               return nil, io.EOF
+       }
+       return m, nil
+}
+
+func (c *serviceClient) DumpIPFib(ctx context.Context, in *IPFibDump) (RPCService_DumpIPFibClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPFibClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPFibClient interface {
+       Recv() (*IPFibDetails, error)
 }
 
-func (c *service) DumpIP6Fib(ctx context.Context, in *IP6FibDump) ([]*IP6FibDetails, error) {
-       var dump []*IP6FibDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IP6FibDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+type serviceClient_DumpIPFibClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPFibClient) Recv() (*IPFibDetails, error) {
+       m := new(IPFibDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
        }
-       return dump, nil
-}
-
-func (c *service) DumpIP6Mfib(ctx context.Context, in *IP6MfibDump) ([]*IP6MfibDetails, error) {
-       var dump []*IP6MfibDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IP6MfibDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       if stop {
+               return nil, io.EOF
        }
-       return dump, nil
-}
-
-func (c *service) DumpIP6ndProxy(ctx context.Context, in *IP6ndProxyDump) ([]*IP6ndProxyDetails, error) {
-       var dump []*IP6ndProxyDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IP6ndProxyDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       return m, nil
+}
+
+func (c *serviceClient) DumpIPMfib(ctx context.Context, in *IPMfibDump) (RPCService_DumpIPMfibClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPMfibClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPMfibClient interface {
+       Recv() (*IPMfibDetails, error)
+}
+
+type serviceClient_DumpIPMfibClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPMfibClient) Recv() (*IPMfibDetails, error) {
+       m := new(IPMfibDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
+       }
+       if stop {
+               return nil, io.EOF
+       }
+       return m, nil
+}
+
+func (c *serviceClient) DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) (RPCService_DumpIPNeighborClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPNeighborClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPNeighborClient interface {
+       Recv() (*IPNeighborDetails, error)
+}
+
+type serviceClient_DumpIPNeighborClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPNeighborClient) Recv() (*IPNeighborDetails, error) {
+       m := new(IPNeighborDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
        }
-       return dump, nil
-}
-
-func (c *service) DumpIPAddress(ctx context.Context, in *IPAddressDump) ([]*IPAddressDetails, error) {
-       var dump []*IPAddressDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPAddressDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       if stop {
+               return nil, io.EOF
        }
-       return dump, nil
-}
-
-func (c *service) DumpIPContainerProxy(ctx context.Context, in *IPContainerProxyDump) ([]*IPContainerProxyDetails, error) {
-       var dump []*IPContainerProxyDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPContainerProxyDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       return m, nil
+}
+
+func (c *serviceClient) DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) (RPCService_DumpIPPuntRedirectClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPPuntRedirectClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPPuntRedirectClient interface {
+       Recv() (*IPPuntRedirectDetails, error)
+}
+
+type serviceClient_DumpIPPuntRedirectClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPPuntRedirectClient) Recv() (*IPPuntRedirectDetails, error) {
+       m := new(IPPuntRedirectDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
        }
-       return dump, nil
-}
-
-func (c *service) DumpIP(ctx context.Context, in *IPDump) ([]*IPDetails, error) {
-       var dump []*IPDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       if stop {
+               return nil, io.EOF
        }
-       return dump, nil
-}
-
-func (c *service) DumpIPFib(ctx context.Context, in *IPFibDump) ([]*IPFibDetails, error) {
-       var dump []*IPFibDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPFibDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       return m, nil
+}
+
+func (c *serviceClient) DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) (RPCService_DumpIPUnnumberedClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpIPUnnumberedClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpIPUnnumberedClient interface {
+       Recv() (*IPUnnumberedDetails, error)
+}
+
+type serviceClient_DumpIPUnnumberedClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpIPUnnumberedClient) Recv() (*IPUnnumberedDetails, error) {
+       m := new(IPUnnumberedDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
        }
-       return dump, nil
-}
-
-func (c *service) DumpIPMfib(ctx context.Context, in *IPMfibDump) ([]*IPMfibDetails, error) {
-       var dump []*IPMfibDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPMfibDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       if stop {
+               return nil, io.EOF
        }
-       return dump, nil
-}
-
-func (c *service) DumpIPNeighbor(ctx context.Context, in *IPNeighborDump) ([]*IPNeighborDetails, error) {
-       var dump []*IPNeighborDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPNeighborDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       return m, nil
+}
+
+func (c *serviceClient) DumpMfibSignal(ctx context.Context, in *MfibSignalDump) (RPCService_DumpMfibSignalClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpMfibSignalClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpMfibSignalClient interface {
+       Recv() (*MfibSignalDetails, error)
+}
+
+type serviceClient_DumpMfibSignalClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpMfibSignalClient) Recv() (*MfibSignalDetails, error) {
+       m := new(MfibSignalDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
        }
-       return dump, nil
-}
-
-func (c *service) DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) ([]*IPPuntRedirectDetails, error) {
-       var dump []*IPPuntRedirectDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPPuntRedirectDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       if stop {
+               return nil, io.EOF
        }
-       return dump, nil
-}
-
-func (c *service) DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) ([]*IPUnnumberedDetails, error) {
-       var dump []*IPUnnumberedDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(IPUnnumberedDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       return m, nil
+}
+
+func (c *serviceClient) DumpProxyArp(ctx context.Context, in *ProxyArpDump) (RPCService_DumpProxyArpClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpProxyArpClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpProxyArpClient interface {
+       Recv() (*ProxyArpDetails, error)
+}
+
+type serviceClient_DumpProxyArpClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpProxyArpClient) Recv() (*ProxyArpDetails, error) {
+       m := new(ProxyArpDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
        }
-       return dump, nil
-}
-
-func (c *service) DumpMfibSignal(ctx context.Context, in *MfibSignalDump) ([]*MfibSignalDetails, error) {
-       var dump []*MfibSignalDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(MfibSignalDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       if stop {
+               return nil, io.EOF
        }
-       return dump, nil
-}
-
-func (c *service) DumpProxyArp(ctx context.Context, in *ProxyArpDump) ([]*ProxyArpDetails, error) {
-       var dump []*ProxyArpDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(ProxyArpDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       return m, nil
+}
+
+func (c *serviceClient) DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) (RPCService_DumpProxyArpIntfcClient, error) {
+       stream := c.ch.SendMultiRequest(in)
+       x := &serviceClient_DumpProxyArpIntfcClient{stream}
+       return x, nil
+}
+
+type RPCService_DumpProxyArpIntfcClient interface {
+       Recv() (*ProxyArpIntfcDetails, error)
+}
+
+type serviceClient_DumpProxyArpIntfcClient struct {
+       api.MultiRequestCtx
+}
+
+func (c *serviceClient_DumpProxyArpIntfcClient) Recv() (*ProxyArpIntfcDetails, error) {
+       m := new(ProxyArpIntfcDetails)
+       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+       if err != nil {
+               return nil, err
        }
-       return dump, nil
-}
-
-func (c *service) DumpProxyArpIntfc(ctx context.Context, in *ProxyArpIntfcDump) ([]*ProxyArpIntfcDetails, error) {
-       var dump []*ProxyArpIntfcDetails
-       req := c.ch.SendMultiRequest(in)
-       for {
-               m := new(ProxyArpIntfcDetails)
-               stop, err := req.ReceiveReply(m)
-               if stop {
-                       break
-               }
-               if err != nil {
-                       return nil, err
-               }
-               dump = append(dump, m)
+       if stop {
+               return nil, io.EOF
        }
-       return dump, nil
+       return m, nil
 }
 
-func (c *service) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) {
+func (c *serviceClient) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) {
        out := new(IoamDisableReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2376,7 +2482,7 @@ func (c *service) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisabl
        return out, nil
 }
 
-func (c *service) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) {
+func (c *serviceClient) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) {
        out := new(IoamEnableReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2385,7 +2491,7 @@ func (c *service) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableRe
        return out, nil
 }
 
-func (c *service) IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error) {
+func (c *serviceClient) IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*IP6ndProxyAddDelReply, error) {
        out := new(IP6ndProxyAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2394,7 +2500,7 @@ func (c *service) IP6ndProxyAddDel(ctx context.Context, in *IP6ndProxyAddDel) (*
        return out, nil
 }
 
-func (c *service) IP6ndSendRouterSolicitation(ctx context.Context, in *IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error) {
+func (c *serviceClient) IP6ndSendRouterSolicitation(ctx context.Context, in *IP6ndSendRouterSolicitation) (*IP6ndSendRouterSolicitationReply, error) {
        out := new(IP6ndSendRouterSolicitationReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2403,7 +2509,7 @@ func (c *service) IP6ndSendRouterSolicitation(ctx context.Context, in *IP6ndSend
        return out, nil
 }
 
-func (c *service) IPAddDelRoute(ctx context.Context, in *IPAddDelRoute) (*IPAddDelRouteReply, error) {
+func (c *serviceClient) IPAddDelRoute(ctx context.Context, in *IPAddDelRoute) (*IPAddDelRouteReply, error) {
        out := new(IPAddDelRouteReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2412,7 +2518,7 @@ func (c *service) IPAddDelRoute(ctx context.Context, in *IPAddDelRoute) (*IPAddD
        return out, nil
 }
 
-func (c *service) IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) {
+func (c *serviceClient) IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) {
        out := new(IPContainerProxyAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2421,7 +2527,7 @@ func (c *service) IPContainerProxyAddDel(ctx context.Context, in *IPContainerPro
        return out, nil
 }
 
-func (c *service) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) {
+func (c *serviceClient) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) {
        out := new(IPMrouteAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2430,7 +2536,7 @@ func (c *service) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMr
        return out, nil
 }
 
-func (c *service) IPNeighborAddDel(ctx context.Context, in *IPNeighborAddDel) (*IPNeighborAddDelReply, error) {
+func (c *serviceClient) IPNeighborAddDel(ctx context.Context, in *IPNeighborAddDel) (*IPNeighborAddDelReply, error) {
        out := new(IPNeighborAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2439,7 +2545,7 @@ func (c *service) IPNeighborAddDel(ctx context.Context, in *IPNeighborAddDel) (*
        return out, nil
 }
 
-func (c *service) IPProbeNeighbor(ctx context.Context, in *IPProbeNeighbor) (*IPProbeNeighborReply, error) {
+func (c *serviceClient) IPProbeNeighbor(ctx context.Context, in *IPProbeNeighbor) (*IPProbeNeighborReply, error) {
        out := new(IPProbeNeighborReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2448,7 +2554,7 @@ func (c *service) IPProbeNeighbor(ctx context.Context, in *IPProbeNeighbor) (*IP
        return out, nil
 }
 
-func (c *service) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) {
+func (c *serviceClient) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) {
        out := new(IPPuntPoliceReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2457,7 +2563,7 @@ func (c *service) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPo
        return out, nil
 }
 
-func (c *service) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) {
+func (c *serviceClient) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) {
        out := new(IPPuntRedirectReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2466,7 +2572,7 @@ func (c *service) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPu
        return out, nil
 }
 
-func (c *service) IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error) {
+func (c *serviceClient) IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error) {
        out := new(IPReassemblyEnableDisableReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2475,7 +2581,7 @@ func (c *service) IPReassemblyEnableDisable(ctx context.Context, in *IPReassembl
        return out, nil
 }
 
-func (c *service) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error) {
+func (c *serviceClient) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error) {
        out := new(IPReassemblyGetReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2484,7 +2590,7 @@ func (c *service) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IP
        return out, nil
 }
 
-func (c *service) IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error) {
+func (c *serviceClient) IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error) {
        out := new(IPReassemblySetReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2493,7 +2599,7 @@ func (c *service) IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IP
        return out, nil
 }
 
-func (c *service) IPScanNeighborEnableDisable(ctx context.Context, in *IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error) {
+func (c *serviceClient) IPScanNeighborEnableDisable(ctx context.Context, in *IPScanNeighborEnableDisable) (*IPScanNeighborEnableDisableReply, error) {
        out := new(IPScanNeighborEnableDisableReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2502,7 +2608,7 @@ func (c *service) IPScanNeighborEnableDisable(ctx context.Context, in *IPScanNei
        return out, nil
 }
 
-func (c *service) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error) {
+func (c *serviceClient) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error) {
        out := new(IPSourceAndPortRangeCheckAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2511,7 +2617,7 @@ func (c *service) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSou
        return out, nil
 }
 
-func (c *service) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error) {
+func (c *serviceClient) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error) {
        out := new(IPSourceAndPortRangeCheckInterfaceAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2520,7 +2626,7 @@ func (c *service) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context,
        return out, nil
 }
 
-func (c *service) IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error) {
+func (c *serviceClient) IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error) {
        out := new(IPSourceCheckInterfaceAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2529,7 +2635,7 @@ func (c *service) IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSource
        return out, nil
 }
 
-func (c *service) IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error) {
+func (c *serviceClient) IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error) {
        out := new(IPTableAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2538,7 +2644,7 @@ func (c *service) IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTabl
        return out, nil
 }
 
-func (c *service) ProxyArpAddDel(ctx context.Context, in *ProxyArpAddDel) (*ProxyArpAddDelReply, error) {
+func (c *serviceClient) ProxyArpAddDel(ctx context.Context, in *ProxyArpAddDel) (*ProxyArpAddDelReply, error) {
        out := new(ProxyArpAddDelReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2547,7 +2653,7 @@ func (c *service) ProxyArpAddDel(ctx context.Context, in *ProxyArpAddDel) (*Prox
        return out, nil
 }
 
-func (c *service) ProxyArpIntfcEnableDisable(ctx context.Context, in *ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error) {
+func (c *serviceClient) ProxyArpIntfcEnableDisable(ctx context.Context, in *ProxyArpIntfcEnableDisable) (*ProxyArpIntfcEnableDisableReply, error) {
        out := new(ProxyArpIntfcEnableDisableReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2556,7 +2662,7 @@ func (c *service) ProxyArpIntfcEnableDisable(ctx context.Context, in *ProxyArpIn
        return out, nil
 }
 
-func (c *service) ResetFib(ctx context.Context, in *ResetFib) (*ResetFibReply, error) {
+func (c *serviceClient) ResetFib(ctx context.Context, in *ResetFib) (*ResetFibReply, error) {
        out := new(ResetFibReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2565,7 +2671,7 @@ func (c *service) ResetFib(ctx context.Context, in *ResetFib) (*ResetFibReply, e
        return out, nil
 }
 
-func (c *service) SetArpNeighborLimit(ctx context.Context, in *SetArpNeighborLimit) (*SetArpNeighborLimitReply, error) {
+func (c *serviceClient) SetArpNeighborLimit(ctx context.Context, in *SetArpNeighborLimit) (*SetArpNeighborLimitReply, error) {
        out := new(SetArpNeighborLimitReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2574,7 +2680,7 @@ func (c *service) SetArpNeighborLimit(ctx context.Context, in *SetArpNeighborLim
        return out, nil
 }
 
-func (c *service) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error) {
+func (c *serviceClient) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error) {
        out := new(SetIPFlowHashReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2583,7 +2689,7 @@ func (c *service) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPF
        return out, nil
 }
 
-func (c *service) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error) {
+func (c *serviceClient) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error) {
        out := new(SwInterfaceIP6EnableDisableReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2592,7 +2698,7 @@ func (c *service) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfa
        return out, nil
 }
 
-func (c *service) SwInterfaceIP6ndRaConfig(ctx context.Context, in *SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error) {
+func (c *serviceClient) SwInterfaceIP6ndRaConfig(ctx context.Context, in *SwInterfaceIP6ndRaConfig) (*SwInterfaceIP6ndRaConfigReply, error) {
        out := new(SwInterfaceIP6ndRaConfigReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2601,7 +2707,7 @@ func (c *service) SwInterfaceIP6ndRaConfig(ctx context.Context, in *SwInterfaceI
        return out, nil
 }
 
-func (c *service) SwInterfaceIP6ndRaPrefix(ctx context.Context, in *SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error) {
+func (c *serviceClient) SwInterfaceIP6ndRaPrefix(ctx context.Context, in *SwInterfaceIP6ndRaPrefix) (*SwInterfaceIP6ndRaPrefixReply, error) {
        out := new(SwInterfaceIP6ndRaPrefixReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2610,7 +2716,7 @@ func (c *service) SwInterfaceIP6ndRaPrefix(ctx context.Context, in *SwInterfaceI
        return out, nil
 }
 
-func (c *service) WantIP4ArpEvents(ctx context.Context, in *WantIP4ArpEvents) (*WantIP4ArpEventsReply, error) {
+func (c *serviceClient) WantIP4ArpEvents(ctx context.Context, in *WantIP4ArpEvents) (*WantIP4ArpEventsReply, error) {
        out := new(WantIP4ArpEventsReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2619,7 +2725,7 @@ func (c *service) WantIP4ArpEvents(ctx context.Context, in *WantIP4ArpEvents) (*
        return out, nil
 }
 
-func (c *service) WantIP6NdEvents(ctx context.Context, in *WantIP6NdEvents) (*WantIP6NdEventsReply, error) {
+func (c *serviceClient) WantIP6NdEvents(ctx context.Context, in *WantIP6NdEvents) (*WantIP6NdEventsReply, error) {
        out := new(WantIP6NdEventsReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2628,7 +2734,7 @@ func (c *service) WantIP6NdEvents(ctx context.Context, in *WantIP6NdEvents) (*Wa
        return out, nil
 }
 
-func (c *service) WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*WantIP6RaEventsReply, error) {
+func (c *serviceClient) WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*WantIP6RaEventsReply, error) {
        out := new(WantIP6RaEventsReply)
        err := c.ch.SendRequest(in).ReceiveReply(out)
        if err != nil {
@@ -2636,3 +2742,17 @@ func (c *service) WantIP6RaEvents(ctx context.Context, in *WantIP6RaEvents) (*Wa
        }
        return out, nil
 }
+
+// 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
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = api.RegisterMessage
+var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = io.Copy
+var _ = strconv.Itoa
+var _ = struc.Pack