diff --git a/internal/imports/imports_linux.go b/internal/imports/imports_linux.go index f50de91..2be8a9a 100644 --- a/internal/imports/imports_linux.go +++ b/internal/imports/imports_linux.go @@ -18,7 +18,7 @@ import ( _ "github.com/networkservicemesh/sdk/pkg/networkservice/common/mechanisms" _ "github.com/networkservicemesh/sdk/pkg/networkservice/common/mechanisms/sendfd" _ "github.com/networkservicemesh/sdk/pkg/networkservice/core/chain" - _ "github.com/networkservicemesh/sdk/pkg/networkservice/ipam/point2pointipam" + _ "github.com/networkservicemesh/sdk/pkg/networkservice/ipam/groupipam" _ "github.com/networkservicemesh/sdk/pkg/registry/chains/client" _ "github.com/networkservicemesh/sdk/pkg/registry/common/authorize" _ "github.com/networkservicemesh/sdk/pkg/registry/common/clientinfo" @@ -39,7 +39,6 @@ import ( _ "github.com/spiffe/go-spiffe/v2/workloadapi" _ "google.golang.org/grpc" _ "google.golang.org/grpc/credentials" - _ "net" _ "net/url" _ "os" _ "os/signal" diff --git a/main.go b/main.go index 425dd4b..f99bd0c 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,8 @@ // // Copyright (c) 2023 Cisco and/or its affiliates. // +// Copyright (c) 2024 Nordix Foundation. +// // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -24,7 +26,6 @@ package main import ( "context" "crypto/tls" - "net" "net/url" "os" "os/signal" @@ -55,7 +56,7 @@ import ( "github.com/networkservicemesh/sdk/pkg/networkservice/common/mechanisms" "github.com/networkservicemesh/sdk/pkg/networkservice/common/mechanisms/sendfd" "github.com/networkservicemesh/sdk/pkg/networkservice/core/chain" - "github.com/networkservicemesh/sdk/pkg/networkservice/ipam/point2pointipam" + "github.com/networkservicemesh/sdk/pkg/networkservice/ipam/groupipam" registryclient "github.com/networkservicemesh/sdk/pkg/registry/chains/client" registryauthorize "github.com/networkservicemesh/sdk/pkg/registry/common/authorize" "github.com/networkservicemesh/sdk/pkg/registry/common/clientinfo" @@ -121,10 +122,9 @@ func main() { log.FromContext(ctx).Infof("the phases include:") log.FromContext(ctx).Infof("1: get config from environment") log.FromContext(ctx).Infof("2: retrieve spiffe svid") - log.FromContext(ctx).Infof("3: create icmp server ipam") - log.FromContext(ctx).Infof("4: create icmp server nse") - log.FromContext(ctx).Infof("5: create grpc and mount nse") - log.FromContext(ctx).Infof("6: register nse with nsm") + log.FromContext(ctx).Infof("3: create icmp server nse") + log.FromContext(ctx).Infof("4: create grpc and mount nse") + log.FromContext(ctx).Infof("5: register nse with nsm") log.FromContext(ctx).Infof("a final success message with start time duration") starttime := time.Now() @@ -179,15 +179,7 @@ func main() { tlsServerConfig.MinVersion = tls.VersionTLS12 // ******************************************************************************** - log.FromContext(ctx).Infof("executing phase 3: creating icmp server ipam") - // ******************************************************************************** - - ipamChain := getIPAMChain(config.CidrPrefix) - - log.FromContext(ctx).Infof("network prefixes parsed successfully") - - // ******************************************************************************** - log.FromContext(ctx).Infof("executing phase 4: create icmp-server network service endpoint") + log.FromContext(ctx).Infof("executing phase 3: create icmp-server network service endpoint") // ******************************************************************************** vppConn, vppErrCh := vpphelper.StartAndDialContext(ctx) exitOnErr(ctx, cancel, vppErrCh) @@ -197,7 +189,7 @@ func main() { endpoint.WithName(config.Name), endpoint.WithAuthorizeServer(authorize.NewServer()), endpoint.WithAdditionalFunctionality( - ipamChain, + groupipam.NewServer(config.CidrPrefix), mechanisms.NewServer(map[string]networkservice.NetworkServiceServer{ memif.MECHANISM: chain.NewNetworkServiceServer( sendfd.NewServer(), @@ -210,7 +202,7 @@ func main() { ), ) // ******************************************************************************** - log.FromContext(ctx).Infof("executing phase 5: create grpc server and register icmp-server") + log.FromContext(ctx).Infof("executing phase 4: create grpc server and register icmp-server") // ******************************************************************************** options := append( tracing.WithTracing(), @@ -235,7 +227,7 @@ func main() { log.FromContext(ctx).Infof("grpc server started") // ******************************************************************************** - log.FromContext(ctx).Infof("executing phase 6: register nse with nsm") + log.FromContext(ctx).Infof("executing phase 5: register nse with nsm") // ******************************************************************************** clientOptions := append( tracing.WithTracingDial(), @@ -327,11 +319,3 @@ func notifyContext() (context.Context, context.CancelFunc) { syscall.SIGQUIT, ) } - -func getIPAMChain(cIDRGroups [][]*net.IPNet) networkservice.NetworkServiceServer { - var ipamchain []networkservice.NetworkServiceServer - for _, cidrGroup := range cIDRGroups { - ipamchain = append(ipamchain, point2pointipam.NewServer(cidrGroup...)) - } - return chain.NewNetworkServiceServer(ipamchain...) -}