adding backoff so that there is enough wait bw each retires

Change-Id: Ia6f698677a5ab85b923bbd7180b80747685dd1b8
diff --git a/VERSION b/VERSION
index eda862a..bbdf097 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.3.4
+4.3.5
\ No newline at end of file
diff --git a/cmd/openolt-adapter/main.go b/cmd/openolt-adapter/main.go
index 9e8e9e5..336d36c 100644
--- a/cmd/openolt-adapter/main.go
+++ b/cmd/openolt-adapter/main.go
@@ -143,7 +143,9 @@
 		codes.Unavailable,      // server is currently unavailable
 		codes.DeadlineExceeded, // deadline for the operation was exceeded
 	}
-	grpcRetryOptions := grpc_retry.UnaryClientInterceptor(grpc_retry.WithMax(a.config.MaxRetries), grpc_retry.WithPerRetryTimeout(a.config.PerRPCRetryTimeout), grpc_retry.WithCodes(retryCodes...))
+	// the backoff function sets the wait time bw each grpc retries, if not set it will take the deafault value of 50ms which is too low, the jitter sets the rpc retry wait time to be in a range of[PerRPCRetryTimeout-0.2, PerRPCRetryTimeout+0.2]
+	backoffCtxOption := grpc_retry.WithBackoff(grpc_retry.BackoffLinearWithJitter(a.config.PerRPCRetryTimeout, 0.2))
+	grpcRetryOptions := grpc_retry.UnaryClientInterceptor(grpc_retry.WithMax(a.config.MaxRetries), grpc_retry.WithPerRetryTimeout(a.config.PerRPCRetryTimeout), grpc_retry.WithCodes(retryCodes...), backoffCtxOption)
 	logger.Debug(ctx, "Configuration values", log.Fields{"RETRY": a.config.MaxRetries, "TIMEOUT": a.config.PerRPCRetryTimeout})
 	go a.coreClient.Start(ctx, getCoreServiceClientHandler, grpcRetryOptions)