You need a working Go environment (1.11 or newer).
$ go get -u github.com/golang/dep/cmd/dep
$ go get github.com/osrg/gobgp
$ cd $GOPATH/src/github.com/osrg/gobgp && dep ensure
Now ready to modify the code and build two binaries, cmd/gobgp
and cmd/gobgpd
.
The GoBGP project adopts Standard Go Project Layout.
If you change the gRPC API, generate api/gobgp.pb.go
in the following way:
$ protoc -I ~/protobuf/src -I ${GOBGP}/api --go_out=plugins=grpc:${GOBGP}/api \
${GOBGP}/api/gobgp.proto ${GOBGP}/api/attribute.proto ${GOBGP}/api/capability.proto