[VOL-2895] : Pings fail intermittently after OLT reboot and ONU disable

- There was a possible data corruption due to lock not being applied
  over the entire routine where a new FlowID was being allocated.
  There could be similar corruptions for other PON resource allocations
  as well, so the locks are applied over entire routine where PON resources
  are being managed. This comes at a slightly increased cost of end-to-end
  flow handling transaction time when there are many susbcriber, but
  guarantees sanity of data.

Change-Id: I0644aab4ffd6a636ea9eadccea13e2ed1ccb5d7b
(cherry picked from commit b77ded932e2d0e5802cb04c67203b368fb446410)
3 files changed
tree: 9639e5f841a94fe2321ecc2c88750e1c21ed63e9
  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

How to Build the Golang based OpenOLT Adapter

Working with Go Dependencies

This project uses Go Modules https://github.com/golang/go/wiki/Modules to manage dependencies. As a local best pratice this project also vendors the dependencies. If you need to update dependencies please follow the Go Modules best practices and also perform the following steps before committing a patch:

go mod tidy
go mod verify
go mod vendor

Building with a Local Copy of 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.