Change module name to go.fd.io/govpp
[govpp.git] / cmd / vpp-proxy / main.go
index 7aea885..639f6cc 100644 (file)
 package main
 
 import (
-       "context"
        "encoding/gob"
        "flag"
-       "io"
        "log"
 
-       "git.fd.io/govpp.git/adapter/socketclient"
-       "git.fd.io/govpp.git/adapter/statsclient"
-       "git.fd.io/govpp.git/api"
-       "git.fd.io/govpp.git/examples/binapi/interfaces"
-       "git.fd.io/govpp.git/examples/binapi/vpe"
-       "git.fd.io/govpp.git/proxy"
+       "go.fd.io/govpp/adapter/socketclient"
+       "go.fd.io/govpp/adapter/statsclient"
+       "go.fd.io/govpp/api"
+       interfaces "go.fd.io/govpp/binapi/interface"
+       "go.fd.io/govpp/binapi/vlib"
+       "go.fd.io/govpp/binapi/vpe"
+       _ "go.fd.io/govpp/core"
+       "go.fd.io/govpp/proxy"
 )
 
 var (
@@ -36,8 +36,10 @@ var (
 )
 
 func init() {
-       for _, msg := range api.GetRegisteredMessages() {
-               gob.Register(msg)
+       for _, msgList := range api.GetRegisteredMessages() {
+               for _, msg := range msgList {
+                       gob.Register(msg)
+               }
        }
 }
 
@@ -84,35 +86,27 @@ func runClient() {
        if err != nil {
                log.Fatalln(err)
        }
+       log.Println("checking compatibility")
+       var msgs []api.Message
+       msgs = append(msgs, interfaces.AllMessages()...)
+       msgs = append(msgs, vpe.AllMessages()...)
+       if err := binapiChannel.CheckCompatiblity(msgs...); err != nil {
+               panic(err)
+       }
 
-       // - using binapi message directly
-       req := &vpe.CliInband{Cmd: "show version"}
-       reply := new(vpe.CliInbandReply)
+       req := &vlib.CliInband{Cmd: "show version"}
+       reply := new(vlib.CliInbandReply)
        if err := binapiChannel.SendRequest(req).ReceiveReply(reply); err != nil {
                log.Fatalln("binapi request failed:", err)
        }
        log.Printf("VPP version: %+v", reply.Reply)
-
-       // - or using generated rpc service
-       svc := interfaces.NewServiceClient(binapiChannel)
-       stream, err := svc.DumpSwInterface(context.Background(), &interfaces.SwInterfaceDump{})
-       if err != nil {
-               log.Fatalln("binapi request failed:", err)
-       }
-       for {
-               iface, err := stream.Recv()
-               if err == io.EOF {
-                       break
-               }
-               if err != nil {
-                       log.Fatalln(err)
-               }
-               log.Printf("- interface: %+v", iface)
-       }
 }
 
 func runServer() {
-       p := proxy.NewServer()
+       p, err := proxy.NewServer()
+       if err != nil {
+               log.Fatalln(err)
+       }
 
        statsAdapter := statsclient.NewStatsClient(*statsSocket)
        binapiAdapter := socketclient.NewVppClient(*binapiSocket)
@@ -127,5 +121,7 @@ func runServer() {
        }
        defer p.DisconnectBinapi()
 
-       p.ListenAndServe(*proxyAddr)
+       if err := p.ListenAndServe(*proxyAddr); err != nil {
+               log.Fatalln(err)
+       }
 }