diff --git a/pkg/networkservice/chains/xconnectns/doc.go b/pkg/networkservice/chains/forwarder/doc.go similarity index 81% rename from pkg/networkservice/chains/xconnectns/doc.go rename to pkg/networkservice/chains/forwarder/doc.go index 08ae74a6..3da874f4 100644 --- a/pkg/networkservice/chains/xconnectns/doc.go +++ b/pkg/networkservice/chains/forwarder/doc.go @@ -1,4 +1,4 @@ -// Copyright (c) 2020 Cisco and/or its affiliates. +// Copyright (c) 2020-2021 Cisco and/or its affiliates. // // SPDX-License-Identifier: Apache-2.0 // @@ -14,5 +14,5 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Package xconnectns provides an endpoint implementing xconnectns -package xconnectns +// Package forwarder provides an endpoint implementing xconnectns +package forwarder diff --git a/pkg/networkservice/chains/xconnectns/server.go b/pkg/networkservice/chains/forwarder/server.go similarity index 85% rename from pkg/networkservice/chains/xconnectns/server.go rename to pkg/networkservice/chains/forwarder/server.go index b147fd7a..7893c649 100644 --- a/pkg/networkservice/chains/xconnectns/server.go +++ b/pkg/networkservice/chains/forwarder/server.go @@ -18,7 +18,7 @@ // +build linux -package xconnectns +package forwarder import ( "context" @@ -41,6 +41,11 @@ import ( "github.com/networkservicemesh/sdk-kernel/pkg/kernel/networkservice/connectioncontextkernel" + "github.com/networkservicemesh/sdk/pkg/networkservice/common/discover" + "github.com/networkservicemesh/sdk/pkg/networkservice/common/roundrobin" + registryclient "github.com/networkservicemesh/sdk/pkg/registry/chains/client" + registryrecvfd "github.com/networkservicemesh/sdk/pkg/registry/common/recvfd" + "github.com/networkservicemesh/sdk-vpp/pkg/networkservice/connectioncontext/mtu" "github.com/networkservicemesh/sdk-vpp/pkg/networkservice/mechanisms/kernel" "github.com/networkservicemesh/sdk-vpp/pkg/networkservice/mechanisms/memif" @@ -65,10 +70,18 @@ type xconnectNSServer struct { // NewServer - returns an implementation of the xconnectns network service func NewServer(ctx context.Context, name string, authzServer networkservice.NetworkServiceServer, tokenGenerator token.GeneratorFunc, clientURL *url.URL, vppConn Connection, tunnelIP net.IP, tunnelPort uint16, clientDialOptions ...grpc.DialOption) endpoint.Endpoint { + nseClient := registryclient.NewNetworkServiceEndpointRegistryClient(ctx, clientURL, + registryclient.WithNSEAdditionalFunctionality(registryrecvfd.NewNetworkServiceEndpointRegistryClient()), + registryclient.WithDialOptions(clientDialOptions...), + ) + nsClient := registryclient.NewNetworkServiceRegistryClient(ctx, clientURL, registryclient.WithDialOptions(clientDialOptions...)) + rv := &xconnectNSServer{} additionalFunctionality := []networkservice.NetworkServiceServer{ recvfd.NewServer(), sendfd.NewServer(), + discover.NewServer(nsClient, nseClient), + roundrobin.NewServer(), stats.NewServer(ctx), // Statically set the url we use to the unix file socket for the NSMgr clienturl.NewServer(clientURL),