commit | e20dc1bfc9ca482917f50068ef71955129b982fa | [log] [tgz] |
---|---|---|
author | Matteo Scandolo <matteo.scandolo@gmail.com> | Tue Aug 31 08:10:04 2021 -0700 |
committer | Matteo Scandolo <matteo.scandolo@gmail.com> | Mon Sep 13 11:35:51 2021 -0700 |
tree | 8a6fbe037b8666c808f270b1a8d35dc47f61aaae | |
parent | df20bf7bfec0d4b84e7a28164d97ad9b9f61c596 [diff] |
Removing nested go-routines in OfAgent message processing When an OF message is received we call "parseHeader" in a goroutine, thus there is no need to create new go-routines from within that method. That is actually harmful as it messes up with the BarrierRequest handling, avoiding nested routines guarantees that the Barrier Request are honored in ofagent Change-Id: I7ab58138b443a2a4d84748f4b100a9aa650eb7c6
Ofagent-go provides an OpenFlow management interface for Voltha. It is a rewrite in Golang of the original ofagent that was written in python / twisted. The main driver behind the work was to introduce true concurrency to the agent for performance/scalability reasons.
Outside $GOPATH
git clone https://github.com/opencord/ofagent-go.git
git clone https://gerrit.opencord.org/ofagent-go
Compile go build -mod=vendor -o ./build/ofagent-go
./build/ofagent-go -ofaddress=localhost openflowPort=6653 -volthaAddress=localhost -volthaPort=50057
./build/ofagent-go -debug -ofaddress=localhost openflowPort=6653 -volthaAddress=localhost -volthaPort=50057
voltha-protos
or voltha-lib-go
If you want to build/test using a local copy or voltha-protos
or voltha-lib-go
this can be accomplished by using the environment variables LOCAL_PROTOS
and LOCAL_LIB_GO
. These environment variables should be set to the filesystem path where the local source is located, e.g.
LOCAL\_PROTOS=$HOME/src/voltha-protos LOCAL\_LIB\_GO=$HOME/src/voltha-lib-go
When these environment variables are set the vendored versions of these packages will be removed from the vendor
directory and replaced by coping the files from the specified locations to the vendor
directory. NOTE: this means that the files in the vendor
directory are no longer what is in the git
repository and it will take manual git
intervention to put the original files back.