Fix binapigen decoding and minor improvements
[govpp.git] / internal / testbinapi / binapi2001 / ip / ip_rpc.ba.go
index e0580d5..88dbb6b 100644 (file)
@@ -4,370 +4,345 @@ package ip
 
 import (
        "context"
-       "io"
-
+       "fmt"
        api "git.fd.io/govpp.git/api"
+       vpe "git.fd.io/govpp.git/internal/testbinapi/binapi2001/vpe"
+       "io"
 )
 
-// RPCService represents RPC service API for ip module.
+// RPCService defines RPC service  ip.
 type RPCService interface {
-       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)
-       DumpIPMroute(ctx context.Context, in *IPMrouteDump) (RPCService_DumpIPMrouteClient, error)
-       DumpIPMtable(ctx context.Context, in *IPMtableDump) (RPCService_DumpIPMtableClient, error)
-       DumpIPPuntRedirect(ctx context.Context, in *IPPuntRedirectDump) (RPCService_DumpIPPuntRedirectClient, error)
-       DumpIPRoute(ctx context.Context, in *IPRouteDump) (RPCService_DumpIPRouteClient, error)
-       DumpIPTable(ctx context.Context, in *IPTableDump) (RPCService_DumpIPTableClient, error)
-       DumpIPUnnumbered(ctx context.Context, in *IPUnnumberedDump) (RPCService_DumpIPUnnumberedClient, error)
-       DumpMfibSignal(ctx context.Context, in *MfibSignalDump) (RPCService_DumpMfibSignalClient, error)
        IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error)
        IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error)
+       IPAddressDump(ctx context.Context, in *IPAddressDump) (RPCService_IPAddressDumpClient, error)
        IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error)
+       IPContainerProxyDump(ctx context.Context, in *IPContainerProxyDump) (RPCService_IPContainerProxyDumpClient, error)
+       IPDump(ctx context.Context, in *IPDump) (RPCService_IPDumpClient, error)
        IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error)
+       IPMrouteDump(ctx context.Context, in *IPMrouteDump) (RPCService_IPMrouteDumpClient, error)
+       IPMtableDump(ctx context.Context, in *IPMtableDump) (RPCService_IPMtableDumpClient, error)
        IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error)
        IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error)
+       IPPuntRedirectDump(ctx context.Context, in *IPPuntRedirectDump) (RPCService_IPPuntRedirectDumpClient, error)
        IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error)
        IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error)
        IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error)
        IPRouteAddDel(ctx context.Context, in *IPRouteAddDel) (*IPRouteAddDelReply, error)
+       IPRouteDump(ctx context.Context, in *IPRouteDump) (RPCService_IPRouteDumpClient, error)
        IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error)
        IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error)
        IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error)
        IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error)
+       IPTableDump(ctx context.Context, in *IPTableDump) (RPCService_IPTableDumpClient, error)
        IPTableFlush(ctx context.Context, in *IPTableFlush) (*IPTableFlushReply, error)
        IPTableReplaceBegin(ctx context.Context, in *IPTableReplaceBegin) (*IPTableReplaceBeginReply, error)
        IPTableReplaceEnd(ctx context.Context, in *IPTableReplaceEnd) (*IPTableReplaceEndReply, error)
+       IPUnnumberedDump(ctx context.Context, in *IPUnnumberedDump) (RPCService_IPUnnumberedDumpClient, error)
+       MfibSignalDump(ctx context.Context, in *MfibSignalDump) (RPCService_MfibSignalDumpClient, error)
        SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error)
        SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error)
        SwInterfaceIP6SetLinkLocalAddress(ctx context.Context, in *SwInterfaceIP6SetLinkLocalAddress) (*SwInterfaceIP6SetLinkLocalAddressReply, error)
 }
 
 type serviceClient struct {
-       ch api.Channel
+       conn api.Connection
 }
 
-func NewServiceClient(ch api.Channel) RPCService {
-       return &serviceClient{ch}
+func NewServiceClient(conn api.Connection) RPCService {
+       return &serviceClient{conn}
 }
 
-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)
+func (c *serviceClient) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) {
+       out := new(IoamDisableReply)
+       err := c.conn.Invoke(ctx, in, out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
 }
 
-type serviceClient_DumpIPAddressClient struct {
-       api.MultiRequestCtx
+func (c *serviceClient) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) {
+       out := new(IoamEnableReply)
+       err := c.conn.Invoke(ctx, in, out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
 }
 
-func (c *serviceClient_DumpIPAddressClient) Recv() (*IPAddressDetails, error) {
-       m := new(IPAddressDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient) IPAddressDump(ctx context.Context, in *IPAddressDump) (RPCService_IPAddressDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
        if err != nil {
                return nil, err
        }
-       if stop {
-               return nil, io.EOF
+       x := &serviceClient_IPAddressDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
        }
-       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 RPCService_IPAddressDumpClient interface {
+       Recv() (*IPAddressDetails, error)
+       api.Stream
 }
 
-type serviceClient_DumpIPContainerProxyClient struct {
-       api.MultiRequestCtx
+type serviceClient_IPAddressDumpClient struct {
+       api.Stream
 }
 
-func (c *serviceClient_DumpIPContainerProxyClient) Recv() (*IPContainerProxyDetails, error) {
-       m := new(IPContainerProxyDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient_IPAddressDumpClient) Recv() (*IPAddressDetails, error) {
+       msg, err := c.Stream.RecvMsg()
        if err != nil {
                return nil, err
        }
-       if stop {
+       switch m := msg.(type) {
+       case *IPAddressDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
                return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
        }
-       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) IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) {
+       out := new(IPContainerProxyAddDelReply)
+       err := c.conn.Invoke(ctx, in, out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
 }
 
-func (c *serviceClient_DumpIPClient) Recv() (*IPDetails, error) {
-       m := new(IPDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient) IPContainerProxyDump(ctx context.Context, in *IPContainerProxyDump) (RPCService_IPContainerProxyDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
        if err != nil {
                return nil, err
        }
-       if stop {
-               return nil, io.EOF
+       x := &serviceClient_IPContainerProxyDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
        }
-       return m, nil
-}
-
-func (c *serviceClient) DumpIPMroute(ctx context.Context, in *IPMrouteDump) (RPCService_DumpIPMrouteClient, error) {
-       stream := c.ch.SendMultiRequest(in)
-       x := &serviceClient_DumpIPMrouteClient{stream}
        return x, nil
 }
 
-type RPCService_DumpIPMrouteClient interface {
-       Recv() (*IPMrouteDetails, error)
+type RPCService_IPContainerProxyDumpClient interface {
+       Recv() (*IPContainerProxyDetails, error)
+       api.Stream
 }
 
-type serviceClient_DumpIPMrouteClient struct {
-       api.MultiRequestCtx
+type serviceClient_IPContainerProxyDumpClient struct {
+       api.Stream
 }
 
-func (c *serviceClient_DumpIPMrouteClient) Recv() (*IPMrouteDetails, error) {
-       m := new(IPMrouteDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient_IPContainerProxyDumpClient) Recv() (*IPContainerProxyDetails, error) {
+       msg, err := c.Stream.RecvMsg()
        if err != nil {
                return nil, err
        }
-       if stop {
+       switch m := msg.(type) {
+       case *IPContainerProxyDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
                return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
        }
-       return m, nil
-}
-
-func (c *serviceClient) DumpIPMtable(ctx context.Context, in *IPMtableDump) (RPCService_DumpIPMtableClient, error) {
-       stream := c.ch.SendMultiRequest(in)
-       x := &serviceClient_DumpIPMtableClient{stream}
-       return x, nil
-}
-
-type RPCService_DumpIPMtableClient interface {
-       Recv() (*IPMtableDetails, error)
 }
 
-type serviceClient_DumpIPMtableClient struct {
-       api.MultiRequestCtx
-}
-
-func (c *serviceClient_DumpIPMtableClient) Recv() (*IPMtableDetails, error) {
-       m := new(IPMtableDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient) IPDump(ctx context.Context, in *IPDump) (RPCService_IPDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
        if err != nil {
                return nil, err
        }
-       if stop {
-               return nil, io.EOF
+       x := &serviceClient_IPDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
        }
-       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 RPCService_IPDumpClient interface {
+       Recv() (*IPDetails, error)
+       api.Stream
 }
 
-type serviceClient_DumpIPPuntRedirectClient struct {
-       api.MultiRequestCtx
+type serviceClient_IPDumpClient struct {
+       api.Stream
 }
 
-func (c *serviceClient_DumpIPPuntRedirectClient) Recv() (*IPPuntRedirectDetails, error) {
-       m := new(IPPuntRedirectDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient_IPDumpClient) Recv() (*IPDetails, error) {
+       msg, err := c.Stream.RecvMsg()
        if err != nil {
                return nil, err
        }
-       if stop {
+       switch m := msg.(type) {
+       case *IPDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
                return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
        }
-       return m, nil
 }
 
-func (c *serviceClient) DumpIPRoute(ctx context.Context, in *IPRouteDump) (RPCService_DumpIPRouteClient, error) {
-       stream := c.ch.SendMultiRequest(in)
-       x := &serviceClient_DumpIPRouteClient{stream}
-       return x, nil
-}
-
-type RPCService_DumpIPRouteClient interface {
-       Recv() (*IPRouteDetails, error)
-}
-
-type serviceClient_DumpIPRouteClient struct {
-       api.MultiRequestCtx
+func (c *serviceClient) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) {
+       out := new(IPMrouteAddDelReply)
+       err := c.conn.Invoke(ctx, in, out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
 }
 
-func (c *serviceClient_DumpIPRouteClient) Recv() (*IPRouteDetails, error) {
-       m := new(IPRouteDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient) IPMrouteDump(ctx context.Context, in *IPMrouteDump) (RPCService_IPMrouteDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
        if err != nil {
                return nil, err
        }
-       if stop {
-               return nil, io.EOF
+       x := &serviceClient_IPMrouteDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
        }
-       return m, nil
-}
-
-func (c *serviceClient) DumpIPTable(ctx context.Context, in *IPTableDump) (RPCService_DumpIPTableClient, error) {
-       stream := c.ch.SendMultiRequest(in)
-       x := &serviceClient_DumpIPTableClient{stream}
        return x, nil
 }
 
-type RPCService_DumpIPTableClient interface {
-       Recv() (*IPTableDetails, error)
+type RPCService_IPMrouteDumpClient interface {
+       Recv() (*IPMrouteDetails, error)
+       api.Stream
 }
 
-type serviceClient_DumpIPTableClient struct {
-       api.MultiRequestCtx
+type serviceClient_IPMrouteDumpClient struct {
+       api.Stream
 }
 
-func (c *serviceClient_DumpIPTableClient) Recv() (*IPTableDetails, error) {
-       m := new(IPTableDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient_IPMrouteDumpClient) Recv() (*IPMrouteDetails, error) {
+       msg, err := c.Stream.RecvMsg()
        if err != nil {
                return nil, err
        }
-       if stop {
+       switch m := msg.(type) {
+       case *IPMrouteDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
                return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, 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)
+func (c *serviceClient) IPMtableDump(ctx context.Context, in *IPMtableDump) (RPCService_IPMtableDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
        if err != nil {
                return nil, err
        }
-       if stop {
-               return nil, io.EOF
+       x := &serviceClient_IPMtableDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
        }
-       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 RPCService_IPMtableDumpClient interface {
+       Recv() (*IPMtableDetails, error)
+       api.Stream
 }
 
-type serviceClient_DumpMfibSignalClient struct {
-       api.MultiRequestCtx
+type serviceClient_IPMtableDumpClient struct {
+       api.Stream
 }
 
-func (c *serviceClient_DumpMfibSignalClient) Recv() (*MfibSignalDetails, error) {
-       m := new(MfibSignalDetails)
-       stop, err := c.MultiRequestCtx.ReceiveReply(m)
+func (c *serviceClient_IPMtableDumpClient) Recv() (*IPMtableDetails, error) {
+       msg, err := c.Stream.RecvMsg()
        if err != nil {
                return nil, err
        }
-       if stop {
+       switch m := msg.(type) {
+       case *IPMtableDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
                return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
        }
-       return m, nil
 }
 
-func (c *serviceClient) IoamDisable(ctx context.Context, in *IoamDisable) (*IoamDisableReply, error) {
-       out := new(IoamDisableReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+func (c *serviceClient) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) {
+       out := new(IPPuntPoliceReply)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
        return out, nil
 }
 
-func (c *serviceClient) IoamEnable(ctx context.Context, in *IoamEnable) (*IoamEnableReply, error) {
-       out := new(IoamEnableReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+func (c *serviceClient) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) {
+       out := new(IPPuntRedirectReply)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
        return out, nil
 }
 
-func (c *serviceClient) IPContainerProxyAddDel(ctx context.Context, in *IPContainerProxyAddDel) (*IPContainerProxyAddDelReply, error) {
-       out := new(IPContainerProxyAddDelReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+func (c *serviceClient) IPPuntRedirectDump(ctx context.Context, in *IPPuntRedirectDump) (RPCService_IPPuntRedirectDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
        if err != nil {
                return nil, err
        }
-       return out, nil
-}
-
-func (c *serviceClient) IPMrouteAddDel(ctx context.Context, in *IPMrouteAddDel) (*IPMrouteAddDelReply, error) {
-       out := new(IPMrouteAddDelReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
-       if err != nil {
+       x := &serviceClient_IPPuntRedirectDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
                return nil, err
        }
-       return out, nil
-}
-
-func (c *serviceClient) IPPuntPolice(ctx context.Context, in *IPPuntPolice) (*IPPuntPoliceReply, error) {
-       out := new(IPPuntPoliceReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
-       if err != nil {
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
                return nil, err
        }
-       return out, nil
+       return x, nil
 }
 
-func (c *serviceClient) IPPuntRedirect(ctx context.Context, in *IPPuntRedirect) (*IPPuntRedirectReply, error) {
-       out := new(IPPuntRedirectReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+type RPCService_IPPuntRedirectDumpClient interface {
+       Recv() (*IPPuntRedirectDetails, error)
+       api.Stream
+}
+
+type serviceClient_IPPuntRedirectDumpClient struct {
+       api.Stream
+}
+
+func (c *serviceClient_IPPuntRedirectDumpClient) Recv() (*IPPuntRedirectDetails, error) {
+       msg, err := c.Stream.RecvMsg()
        if err != nil {
                return nil, err
        }
-       return out, nil
+       switch m := msg.(type) {
+       case *IPPuntRedirectDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
+               return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
+       }
 }
 
 func (c *serviceClient) IPReassemblyEnableDisable(ctx context.Context, in *IPReassemblyEnableDisable) (*IPReassemblyEnableDisableReply, error) {
        out := new(IPReassemblyEnableDisableReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -376,7 +351,7 @@ func (c *serviceClient) IPReassemblyEnableDisable(ctx context.Context, in *IPRea
 
 func (c *serviceClient) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet) (*IPReassemblyGetReply, error) {
        out := new(IPReassemblyGetReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -385,7 +360,7 @@ func (c *serviceClient) IPReassemblyGet(ctx context.Context, in *IPReassemblyGet
 
 func (c *serviceClient) IPReassemblySet(ctx context.Context, in *IPReassemblySet) (*IPReassemblySetReply, error) {
        out := new(IPReassemblySetReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -394,16 +369,55 @@ func (c *serviceClient) IPReassemblySet(ctx context.Context, in *IPReassemblySet
 
 func (c *serviceClient) IPRouteAddDel(ctx context.Context, in *IPRouteAddDel) (*IPRouteAddDelReply, error) {
        out := new(IPRouteAddDelReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
        return out, nil
 }
 
+func (c *serviceClient) IPRouteDump(ctx context.Context, in *IPRouteDump) (RPCService_IPRouteDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
+       if err != nil {
+               return nil, err
+       }
+       x := &serviceClient_IPRouteDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
+       }
+       return x, nil
+}
+
+type RPCService_IPRouteDumpClient interface {
+       Recv() (*IPRouteDetails, error)
+       api.Stream
+}
+
+type serviceClient_IPRouteDumpClient struct {
+       api.Stream
+}
+
+func (c *serviceClient_IPRouteDumpClient) Recv() (*IPRouteDetails, error) {
+       msg, err := c.Stream.RecvMsg()
+       if err != nil {
+               return nil, err
+       }
+       switch m := msg.(type) {
+       case *IPRouteDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
+               return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
+       }
+}
+
 func (c *serviceClient) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckAddDel) (*IPSourceAndPortRangeCheckAddDelReply, error) {
        out := new(IPSourceAndPortRangeCheckAddDelReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -412,7 +426,7 @@ func (c *serviceClient) IPSourceAndPortRangeCheckAddDel(ctx context.Context, in
 
 func (c *serviceClient) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Context, in *IPSourceAndPortRangeCheckInterfaceAddDel) (*IPSourceAndPortRangeCheckInterfaceAddDelReply, error) {
        out := new(IPSourceAndPortRangeCheckInterfaceAddDelReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -421,7 +435,7 @@ func (c *serviceClient) IPSourceAndPortRangeCheckInterfaceAddDel(ctx context.Con
 
 func (c *serviceClient) IPSourceCheckInterfaceAddDel(ctx context.Context, in *IPSourceCheckInterfaceAddDel) (*IPSourceCheckInterfaceAddDelReply, error) {
        out := new(IPSourceCheckInterfaceAddDelReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -430,16 +444,55 @@ func (c *serviceClient) IPSourceCheckInterfaceAddDel(ctx context.Context, in *IP
 
 func (c *serviceClient) IPTableAddDel(ctx context.Context, in *IPTableAddDel) (*IPTableAddDelReply, error) {
        out := new(IPTableAddDelReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
        return out, nil
 }
 
+func (c *serviceClient) IPTableDump(ctx context.Context, in *IPTableDump) (RPCService_IPTableDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
+       if err != nil {
+               return nil, err
+       }
+       x := &serviceClient_IPTableDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
+       }
+       return x, nil
+}
+
+type RPCService_IPTableDumpClient interface {
+       Recv() (*IPTableDetails, error)
+       api.Stream
+}
+
+type serviceClient_IPTableDumpClient struct {
+       api.Stream
+}
+
+func (c *serviceClient_IPTableDumpClient) Recv() (*IPTableDetails, error) {
+       msg, err := c.Stream.RecvMsg()
+       if err != nil {
+               return nil, err
+       }
+       switch m := msg.(type) {
+       case *IPTableDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
+               return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
+       }
+}
+
 func (c *serviceClient) IPTableFlush(ctx context.Context, in *IPTableFlush) (*IPTableFlushReply, error) {
        out := new(IPTableFlushReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -448,7 +501,7 @@ func (c *serviceClient) IPTableFlush(ctx context.Context, in *IPTableFlush) (*IP
 
 func (c *serviceClient) IPTableReplaceBegin(ctx context.Context, in *IPTableReplaceBegin) (*IPTableReplaceBeginReply, error) {
        out := new(IPTableReplaceBeginReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -457,16 +510,94 @@ func (c *serviceClient) IPTableReplaceBegin(ctx context.Context, in *IPTableRepl
 
 func (c *serviceClient) IPTableReplaceEnd(ctx context.Context, in *IPTableReplaceEnd) (*IPTableReplaceEndReply, error) {
        out := new(IPTableReplaceEndReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
        return out, nil
 }
 
+func (c *serviceClient) IPUnnumberedDump(ctx context.Context, in *IPUnnumberedDump) (RPCService_IPUnnumberedDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
+       if err != nil {
+               return nil, err
+       }
+       x := &serviceClient_IPUnnumberedDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
+       }
+       return x, nil
+}
+
+type RPCService_IPUnnumberedDumpClient interface {
+       Recv() (*IPUnnumberedDetails, error)
+       api.Stream
+}
+
+type serviceClient_IPUnnumberedDumpClient struct {
+       api.Stream
+}
+
+func (c *serviceClient_IPUnnumberedDumpClient) Recv() (*IPUnnumberedDetails, error) {
+       msg, err := c.Stream.RecvMsg()
+       if err != nil {
+               return nil, err
+       }
+       switch m := msg.(type) {
+       case *IPUnnumberedDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
+               return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
+       }
+}
+
+func (c *serviceClient) MfibSignalDump(ctx context.Context, in *MfibSignalDump) (RPCService_MfibSignalDumpClient, error) {
+       stream, err := c.conn.NewStream(ctx)
+       if err != nil {
+               return nil, err
+       }
+       x := &serviceClient_MfibSignalDumpClient{stream}
+       if err := x.Stream.SendMsg(in); err != nil {
+               return nil, err
+       }
+       if err = x.Stream.SendMsg(&vpe.ControlPing{}); err != nil {
+               return nil, err
+       }
+       return x, nil
+}
+
+type RPCService_MfibSignalDumpClient interface {
+       Recv() (*MfibSignalDetails, error)
+       api.Stream
+}
+
+type serviceClient_MfibSignalDumpClient struct {
+       api.Stream
+}
+
+func (c *serviceClient_MfibSignalDumpClient) Recv() (*MfibSignalDetails, error) {
+       msg, err := c.Stream.RecvMsg()
+       if err != nil {
+               return nil, err
+       }
+       switch m := msg.(type) {
+       case *MfibSignalDetails:
+               return m, nil
+       case *vpe.ControlPingReply:
+               return nil, io.EOF
+       default:
+               return nil, fmt.Errorf("unexpected message: %T %v", m, m)
+       }
+}
+
 func (c *serviceClient) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*SetIPFlowHashReply, error) {
        out := new(SetIPFlowHashReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -475,7 +606,7 @@ func (c *serviceClient) SetIPFlowHash(ctx context.Context, in *SetIPFlowHash) (*
 
 func (c *serviceClient) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwInterfaceIP6EnableDisable) (*SwInterfaceIP6EnableDisableReply, error) {
        out := new(SwInterfaceIP6EnableDisableReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
@@ -484,14 +615,9 @@ func (c *serviceClient) SwInterfaceIP6EnableDisable(ctx context.Context, in *SwI
 
 func (c *serviceClient) SwInterfaceIP6SetLinkLocalAddress(ctx context.Context, in *SwInterfaceIP6SetLinkLocalAddress) (*SwInterfaceIP6SetLinkLocalAddressReply, error) {
        out := new(SwInterfaceIP6SetLinkLocalAddressReply)
-       err := c.ch.SendRequest(in).ReceiveReply(out)
+       err := c.conn.Invoke(ctx, in, out)
        if err != nil {
                return nil, err
        }
        return out, nil
 }
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = api.RegisterMessage
-var _ = context.Background
-var _ = io.Copy