[VOL-1349] EPON OLT adapter (package A)

Change-Id: Id110f270b0acfb7fbda0ff79ff85bb8182af4b92
diff --git a/Makefile b/Makefile
index bef775a..97af1eb 100644
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@
 DOCKER_REGISTRY          ?=
 DOCKER_REPOSITORY        ?=
 DOCKER_TAG               ?= ${VERSION}
-ADAPTER_IMAGENAME        := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-eponolt-adapter:1.0.0
+ADAPTER_IMAGENAME        := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-eponolt-adapter:1.1.0
 TYPE                     ?= minimal
 
 ## Docker labels. Only set ref and commit date if committed
@@ -117,7 +117,7 @@
 
 test: ## Run unit tests
 	@mkdir -p ./tests/results
-	@${GO} test -mod=vendor -v -coverprofile ./tests/results/go-test-coverage.out -covermode count ./... 2>&1 | tee ./tests/results/go-test-results.out ;\
+	@${GO} test -mod=vendor -timeout 60m -v -coverprofile ./tests/results/go-test-coverage.out -covermode count ./... 2>&1 | tee ./tests/results/go-test-results.out ;\
 	RETURN=$$? ;\
 	${GO_JUNIT_REPORT} < ./tests/results/go-test-results.out > ./tests/results/go-test-results.xml ;\
 	${GOCOVER_COBERTURA} < ./tests/results/go-test-coverage.out > ./tests/results/go-test-coverage.xml ;\
diff --git a/README.md b/README.md
index e434115..e53a41d 100644
--- a/README.md
+++ b/README.md
@@ -1,67 +1,66 @@
-# EPON OLT adapter
-
-The EPON OLT adapter connects the VOLTHA
-core to an OLT device
-running the OLT hardware to support IEEE standard PON (SIEPON* package B). 
-
-*IEEE P1904.1 Service Interoperability in Ethernet Passive Optical Network
-> NOTE: This adapter has been verified with the following combinations:
-> * [VOLTHA 2.5](https://docs.voltha.org/voltha-2.5/release_notes/voltha_2.5.html) 
-> * Tibit MicroPlug OLT (Firmware R1.3.0)
-> * [Technology profile for EPON](https://github.com/opencord/voltha-lib-go/blob/master/pkg/techprofile/SingleQueueEponProfile.json)
-> * MD5 is implemented as IEEE802.1X authentication. 
-
-## 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 eponolt adapter docker image with profiling enabled
-docker-build              : Build eponolt 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](https://guide.opencord.org/developer/test_release_software.html#publish-docker-container-images-to-public-dockerhub-job-docker-publish)
-
-- 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.:
-
-```bash
-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.
+# EPON OLT adapter

+

+The EPON OLT adapter connects the VOLTHA

+core to an OLT device

+running the OLT hardware to support IEEE standard PON (SIEPON* package A and B). 

+

+*IEEE P1904.1 Service Interoperability in Ethernet Passive Optical Network

+> NOTE: This adapter has been verified with the following combinations:

+> * [VOLTHA 2.5](https://docs.voltha.org/voltha-2.5/release_notes/voltha_2.5.html) 

+> * Tibit MicroPlug OLT (Firmware R1.3.X-XXX)

+> * [Technology profile for EPON](https://github.com/opencord/voltha-lib-go/blob/master/pkg/techprofile/SingleQueueEponProfile.json)

+

+## 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 eponolt adapter docker image with profiling enabled

+docker-build              : Build eponolt 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](https://guide.opencord.org/developer/test_release_software.html#publish-docker-container-images-to-public-dockerhub-job-docker-publish)

+

+- 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.:

+

+```bash

+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.
\ No newline at end of file
diff --git a/VERSION b/VERSION
index 3eefcb9..9084fa2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.0
+1.1.0
diff --git a/internal/pkg/core/l2oam/msg_after_keep_alive.go b/internal/pkg/core/l2oam/msg_after_keep_alive.go
index 4772e11..f93ee5c 100644
--- a/internal/pkg/core/l2oam/msg_after_keep_alive.go
+++ b/internal/pkg/core/l2oam/msg_after_keep_alive.go
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
+
 package l2oam
 
 import (
diff --git a/internal/pkg/core/l2oam/msg_generic_action_create_req.go b/internal/pkg/core/l2oam/msg_generic_action_create_req.go
index 766d1a1..8e99a75 100644
--- a/internal/pkg/core/l2oam/msg_generic_action_create_req.go
+++ b/internal/pkg/core/l2oam/msg_generic_action_create_req.go
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
+
 package l2oam
 
 import (
diff --git a/internal/pkg/core/l2oam/msg_pcscompu_tibitcom.go b/internal/pkg/core/l2oam/msg_pcscompu_tibitcom.go
index 80e7d18..5c1b212 100644
--- a/internal/pkg/core/l2oam/msg_pcscompu_tibitcom.go
+++ b/internal/pkg/core/l2oam/msg_pcscompu_tibitcom.go
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
+
 package l2oam
 
 import (
diff --git a/internal/pkg/core/l2oam/msg_set_request_saved.go b/internal/pkg/core/l2oam/msg_set_request_saved.go
index 6869a79..5c4f190 100644
--- a/internal/pkg/core/l2oam/msg_set_request_saved.go
+++ b/internal/pkg/core/l2oam/msg_set_request_saved.go
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
+
 package l2oam
 
 import (
diff --git a/internal/pkg/core/l2oam_device.go b/internal/pkg/core/l2oam_device.go
index 76b548f..6e1455b 100644
--- a/internal/pkg/core/l2oam_device.go
+++ b/internal/pkg/core/l2oam_device.go
@@ -3314,9 +3314,10 @@
 	if (l2oam.OnuPkgType == l2oam.OnuPkgTypeA) && (packet.IsOnuPkgA()) {
 		logger.Info(context.Background(), fmt.Sprintf("[%s] recieveKeepAlive() Pkg type A.", d.getDeviceName()))
 		if d.keepAliveResponse != nil {
-			d.keepAliveResponse <- "PkgTypeError"
+			//d.keepAliveResponse <- "PkgTypeError"
+			d.keepAliveResponse <- "success"
 		}
-		// d.Base.recieveKeepAlive(etherPacket)
+		d.Base.recieveKeepAlive(etherPacket)
 		d.PkgType = l2oam.OnuPkgTypeA
 	} else if (l2oam.OnuPkgType == l2oam.OnuPkgTypeB) && (packet.IsOnuPkgB()) {
 		logger.Info(context.Background(), fmt.Sprintf("[%s] recieveKeepAlive() Pkg type B.", d.getDeviceName()))
diff --git a/internal/pkg/core/l2oam_oltctl.go b/internal/pkg/core/l2oam_oltctl.go
index 10f9f76..4126ee2 100644
--- a/internal/pkg/core/l2oam_oltctl.go
+++ b/internal/pkg/core/l2oam_oltctl.go
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package core
 
 import (