func WithClientConnection(parent context.Context, connection *connection.Connection) context.Context {
	if parent == nil {
		parent = context.Background()
	}
	return context.WithValue(parent, clientConnectionKey, connection)
}
WithClientConnection -
Wraps 'parent' in a new Context that has the ClientConnection
provided in:
connection *connection.Connection
using Context.Value(...) and returns the result.
Note: any previously existing ClientConnection will be overwritten.

Recommended use: in any Request or Close call that creates a ClientConnection, call:
ctx = WithClientConnection(ctx)
to ensure that the ctx has a ClientConnection
In any Request or Close call that consumes a ClientConnection, call:
connectionMap := ClientConnection(ctx)
to retrieve the ClientConnection from the context.Context
package common
import (
	"context"
	"github.com/networkservicemesh/networkservicemesh/pkg/tools/spanhelper"
	"github.com/networkservicemesh/networkservicemesh/sdk/monitor/connectionmonitor"
	"github.com/sirupsen/logrus"
	"github.com/networkservicemesh/networkservicemesh/controlplane/api/registry"
	"github.com/networkservicemesh/networkservicemesh/controlplane/pkg/model"
	"github.com/networkservicemesh/networkservicemesh/controlplane/api/connection"
)
type ContextKeyType string
const (
	clientConnectionKey   ContextKeyType = "ClientConnection"
	modelConnectionKey    ContextKeyType = "ModelConnection"
	monitorServerKey      ContextKeyType = "ConnectionMonitor"
	logKey                ContextKeyType = "Log"
	forwarderKey          ContextKeyType = "Forwarder"
	endpointKey           ContextKeyType = "Endpoint"
	endpointConnectionKey ContextKeyType = "EndpointConnection"
	originalSpan          ContextKeyType = "OriginalSpan"
	ignoredEndpoints      ContextKeyType = "IgnoredEndpoints"
	workspaceName         ContextKeyType = "WorkspaceName"
	remoteMechanisms      ContextKeyType = "RemoteMechanisms"
)