VOL-4312: Reboot OLT test fails on Edgecore GPON ASGvOLT64 OLT
- Fixed issue where 'N*N' (where N is the number of PON ports)
  number of TP Managers were getting created for an OLT device
  instead of just 'N' TP managers.
  It was seen that after OLT reboot burst of conncurrent TP
  managers (N*N) were trying to create etcd pool connections
  and at some point the etcd stopped responding and this lead
  re-connection handling to OLT after reboot failing.

VOL-4313: Stop stale go routines on monitoring flow and group
messages for the ONUs after OLT reboot or OLT delete
- There are stale go routines for the ONU monitoring for flow
  and group messages. Although these never caused problem it
  is always recomendded to stop such routines as they consume
  memory and cpu.

Change-Id: Ie4d1ce9155dbd15e1831361d50cb959402045cc8
5 files changed
tree: 9e4cacd0873ec416834b69b30827ad6b6268343c
  1. .gitignore
  2. .gitreview
  3. .golangci.yml
  4. CODE_OF_CONDUCT.md
  5. Makefile
  6. README.md
  7. VERSION
  8. cmd/
  9. compose/
  10. docker/
  11. go.mod
  12. go.sum
  13. internal/
  14. pkg/
  15. vendor/
README.md

OpenOLT adapter

The OpenOLT adapter connects the VOLTHA core to an OLT device running the OpenOLT agent.

Development make targets

The Makefile contains many commands that are useful in development:

build                     : Alias for 'docker build'
clean                     : Removes any local filesystem artifacts generated by a build
distclean                 : Removes any local filesystem artifacts generated by a build or test run
docker-build-profile      : Build openolt adapter docker image with profiling enabled
docker-build              : Build openolt adapter docker image
docker-kind-load          : Load docker images into a KinD cluster
docker-push               : Push the docker images to an external repository
help                      : Print help for each Makefile target
lint-dockerfile           : Perform static analysis on Dockerfile
lint-mod                  : Verify the Go dependencies
lint                      : Run all lint targets
local-lib-go              : Copies a local version of the voltha-lib-go dependency into the vendor directory
local-protos              : Copies a local version of the voltha-protos dependency into the vendor directory
mod-update                : Update go mod files
sca                       : Runs static code analysis with the golangci-lint tool
test                      : Run unit tests

Some highlights:

  • It's recommended that you run the lint, sca, and test targets before submitting code changes.

  • The docker-* targets for building and pushing Docker images depend on the variables DOCKER_REGISTRY, DOCKER_REPOSITORY, and DOCKER_TAG as described in the CORD documentation

  • If you make changes the dependencies in the go.mod file, you will need to run make mod-update to update the go.sum and vendor directory.

Building with a Local Copy of voltha-protos or voltha-lib-go

If you want to build/test using a local copy of the voltha-protos or voltha-lib-go libraries 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.:

export LOCAL_PROTOS=/path/to/voltha-protos
export LOCAL_LIB_GO=/path/to/voltha-lib-go

Then run make local-protos and/or make local-lib-go as is appropriate to copy them into the vendor directory.

NOTE: That the files in the vendor directory are no longer what is in the most recent commit, and it will take manual git intervention to put the original files back.