Releasing 2.1.0 with the proto and lib-go-changes

Change-Id: I585fe460e92fe0a778573a52e37f2b821333fc81
diff --git a/VERSION b/VERSION
index 9bcb6cf..7ec1d6d 100755
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.0.3-dev246
+2.1.0
diff --git a/go.mod b/go.mod
index 2d572c6..e66b850 100644
--- a/go.mod
+++ b/go.mod
@@ -16,7 +16,7 @@
 	github.com/google/gopacket v1.1.17
 	github.com/looplab/fsm v0.2.0
 	github.com/opencord/omci-lib-go/v2 v2.1.2
-	github.com/opencord/voltha-lib-go/v7 v7.1.0
+	github.com/opencord/voltha-lib-go/v7 v7.1.1
 	github.com/opencord/voltha-protos/v5 v5.1.0
 	github.com/stretchr/testify v1.7.0
 	google.golang.org/grpc v1.41.0
diff --git a/go.sum b/go.sum
index efef462..9ae0d04 100644
--- a/go.sum
+++ b/go.sum
@@ -192,8 +192,8 @@
 github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
 github.com/opencord/omci-lib-go/v2 v2.1.2 h1:IgwSGEtM8zf/o8wrDLdY+q0WshDYwRwMGYeL35gMqVQ=
 github.com/opencord/omci-lib-go/v2 v2.1.2/go.mod h1:o1S/jhDLHNikFU7uG2TR5UOM5KmKlqwLlVncXi0FBYQ=
-github.com/opencord/voltha-lib-go/v7 v7.1.0 h1:XTJGvaJ2oditHWguQe8iC17PlY7yr1w7acdM8urwNu0=
-github.com/opencord/voltha-lib-go/v7 v7.1.0/go.mod h1:LjoFfwqdf/OHKUmzMqzBDGmoxfjmq9l/Y47yeBsK1xI=
+github.com/opencord/voltha-lib-go/v7 v7.1.1 h1:GWh0Ix7A1gr3b9L7GNy5pSDkLaPyZzJk/4ZNsj/B3eg=
+github.com/opencord/voltha-lib-go/v7 v7.1.1/go.mod h1:LjoFfwqdf/OHKUmzMqzBDGmoxfjmq9l/Y47yeBsK1xI=
 github.com/opencord/voltha-protos/v5 v5.1.0 h1:pGClPJIVhuLiM0d01e3MdhGeSQwA6o6+XLAxv3f/Frk=
 github.com/opencord/voltha-protos/v5 v5.1.0/go.mod h1:Ff7eoWsL0K7oNtOBB4UcuWDZdv1zBQ9lLHvpJr02erE=
 github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
diff --git a/vendor/github.com/opencord/voltha-lib-go/v7/pkg/grpc/client.go b/vendor/github.com/opencord/voltha-lib-go/v7/pkg/grpc/client.go
index bbec5a3..add2b28 100644
--- a/vendor/github.com/opencord/voltha-lib-go/v7/pkg/grpc/client.go
+++ b/vendor/github.com/opencord/voltha-lib-go/v7/pkg/grpc/client.go
@@ -378,9 +378,17 @@
 		select {
 		case <-ctx.Done():
 			logger.Debugw(ctx, "context-closing", log.Fields{"endpoint": c.apiEndPoint})
-			return
+			break loop
 		case event := <-c.events:
 			logger.Debugw(ctx, "received-event", log.Fields{"event": event, "endpoint": c.apiEndPoint})
+			c.connectionLock.RLock()
+			// On a client stopped, just allow the stop event to go through
+			if c.done && event != eventStopped {
+				c.connectionLock.RUnlock()
+				logger.Debugw(ctx, "ignoring-event-on-client-stop", log.Fields{"event": event, "endpoint": c.apiEndPoint})
+				continue
+			}
+			c.connectionLock.RUnlock()
 			switch event {
 			case eventConnecting:
 				c.stateLock.Lock()
@@ -404,7 +412,11 @@
 								return
 							}
 							attempt += 1
-							c.events <- eventConnecting
+							c.connectionLock.RLock()
+							if !c.done {
+								c.events <- eventConnecting
+							}
+							c.connectionLock.RUnlock()
 						} else {
 							backoff.Reset()
 						}
@@ -544,11 +556,14 @@
 }
 
 func (c *Client) Stop(ctx context.Context) {
+	c.connectionLock.Lock()
+	defer c.connectionLock.Unlock()
 	if !c.done {
+		c.done = true
 		c.events <- eventStopped
 		close(c.events)
-		c.done = true
 	}
+	logger.Infow(ctx, "client-stopped", log.Fields{"endpoint": c.apiEndPoint})
 }
 
 // SetService is used for testing only
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 7c225ce..d8288c7 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -126,7 +126,7 @@
 github.com/opencord/omci-lib-go/v2
 github.com/opencord/omci-lib-go/v2/generated
 github.com/opencord/omci-lib-go/v2/meframe
-# github.com/opencord/voltha-lib-go/v7 v7.1.0
+# github.com/opencord/voltha-lib-go/v7 v7.1.1
 ## explicit
 github.com/opencord/voltha-lib-go/v7/pkg/config
 github.com/opencord/voltha-lib-go/v7/pkg/db