Skip to content
Snippets Groups Projects
Commit b6c402e1 authored by Pablo Armingol's avatar Pablo Armingol
Browse files

Merge branch 'feat/tid-pcep' of https://labs.etsi.org/rep/tfs/controller into...

Merge branch 'feat/tid-pcep' of https://labs.etsi.org/rep/tfs/controller into feat/tid-new-pcep-component
parents d7c899e9 8463e6d2
No related branches found
No related tags found
1 merge request!205Draft: Resolve "(TID) New PCEP component"
Showing
with 444 additions and 28 deletions
...@@ -55,7 +55,6 @@ spec: ...@@ -55,7 +55,6 @@ spec:
cpu: 500m cpu: 500m
memory: 512Mi memory: 512Mi
--- ---
#Internal ClusterIP service
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
...@@ -83,21 +82,3 @@ spec: ...@@ -83,21 +82,3 @@ spec:
protocol: TCP protocol: TCP
port: 6666 port: 6666
targetPort: 6666 targetPort: 6666
#NodePortService
# apiVersion: v1
# kind: Service
# metadata:
# name: pceservice-ext
# labels:
# app: pceservice
# spec:
# type: NodePort
# externalTrafficPolicy: Local
# selector:
# app: pceservice
# ports:
# - name: pcep
# protocol: TCP
# port: 4189
# targetPort: 4189
// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package pcep;
service PcepService {
rpc sendRequest ( RequestRq ) returns ( RequestRp ) {}
rpc configuratePCE ( PceIpRq ) returns ( PceIpRp ) {}
}
message RequestRq {
string command = 1;
}
message RequestRp {
string commandRp = 1;
}
message PceIpRq {
string address=1;
string port= 2;
string asNumber=3;
}
message PceIpRp{
string addressRp=1;
}
#!/bin/bash
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
########################################################################################################################
# Define your deployment settings here
########################################################################################################################
# If not already set, set the name of the Kubernetes namespace to deploy to.
export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"}
########################################################################################################################
# Automated steps start here
########################################################################################################################
kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/pcepservice -c server
...@@ -56,6 +56,7 @@ class ServiceNameEnum(Enum): ...@@ -56,6 +56,7 @@ class ServiceNameEnum(Enum):
OPTICALATTACKDETECTOR = 'opticalattackdetector' OPTICALATTACKDETECTOR = 'opticalattackdetector'
OPTICALATTACKMITIGATOR = 'opticalattackmitigator' OPTICALATTACKMITIGATOR = 'opticalattackmitigator'
CACHING = 'caching' CACHING = 'caching'
PCEP = 'pcep'
TE = 'te' TE = 'te'
FORECASTER = 'forecaster' FORECASTER = 'forecaster'
E2EORCHESTRATOR = 'e2e-orchestrator' E2EORCHESTRATOR = 'e2e-orchestrator'
...@@ -93,6 +94,7 @@ DEFAULT_SERVICE_GRPC_PORTS = { ...@@ -93,6 +94,7 @@ DEFAULT_SERVICE_GRPC_PORTS = {
ServiceNameEnum.OPTICALATTACKMANAGER .value : 10005, ServiceNameEnum.OPTICALATTACKMANAGER .value : 10005,
ServiceNameEnum.INTERDOMAIN .value : 10010, ServiceNameEnum.INTERDOMAIN .value : 10010,
ServiceNameEnum.PATHCOMP .value : 10020, ServiceNameEnum.PATHCOMP .value : 10020,
ServiceNameEnum.PCEP .value : 10050,
ServiceNameEnum.TE .value : 10030, ServiceNameEnum.TE .value : 10030,
ServiceNameEnum.FORECASTER .value : 10040, ServiceNameEnum.FORECASTER .value : 10040,
ServiceNameEnum.E2EORCHESTRATOR .value : 10050, ServiceNameEnum.E2EORCHESTRATOR .value : 10050,
......
...@@ -24,8 +24,6 @@ RESOURCE_NETWORK_INSTANCES = '__network_instances__' ...@@ -24,8 +24,6 @@ RESOURCE_NETWORK_INSTANCES = '__network_instances__'
RESOURCE_ROUTING_POLICIES = '__routing_policies__' RESOURCE_ROUTING_POLICIES = '__routing_policies__'
RESOURCE_SERVICES = '__services__' RESOURCE_SERVICES = '__services__'
RESOURCE_ACL = '__acl__' RESOURCE_ACL = '__acl__'
RESOURCE_INVENTORY = '__inventory__'
class _Driver: class _Driver:
def __init__(self, name : str, address: str, port: int, **settings) -> None: def __init__(self, name : str, address: str, port: int, **settings) -> None:
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from ast import List, Tuple
import json, logging, lxml.etree as ET, re import json, logging, lxml.etree as ET, re
import time import time
from typing import Any, Dict, Optional from typing import Any, Dict, Optional
...@@ -33,7 +32,6 @@ from .acl.acl_adapter_ipinfusion_proprietary import acl_cr_to_dict_ipinfusion_pr ...@@ -33,7 +32,6 @@ from .acl.acl_adapter_ipinfusion_proprietary import acl_cr_to_dict_ipinfusion_pr
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
ALL_RESOURCE_KEYS = [ ALL_RESOURCE_KEYS = [
RESOURCE_INVENTORY,
RESOURCE_ENDPOINTS, RESOURCE_ENDPOINTS,
RESOURCE_INTERFACES, RESOURCE_INTERFACES,
RESOURCE_ROUTING_POLICIES, # routing policies should come before network instances RESOURCE_ROUTING_POLICIES, # routing policies should come before network instances
...@@ -42,7 +40,6 @@ ALL_RESOURCE_KEYS = [ ...@@ -42,7 +40,6 @@ ALL_RESOURCE_KEYS = [
] ]
RESOURCE_KEY_MAPPINGS = { RESOURCE_KEY_MAPPINGS = {
RESOURCE_INVENTORY : 'inventory',
RESOURCE_ENDPOINTS : 'component', RESOURCE_ENDPOINTS : 'component',
RESOURCE_INTERFACES : 'interface', RESOURCE_INTERFACES : 'interface',
RESOURCE_NETWORK_INSTANCES: 'network_instance', RESOURCE_NETWORK_INSTANCES: 'network_instance',
...@@ -51,7 +48,6 @@ RESOURCE_KEY_MAPPINGS = { ...@@ -51,7 +48,6 @@ RESOURCE_KEY_MAPPINGS = {
} }
RESOURCE_PARSERS = { RESOURCE_PARSERS = {
'inventory' : parse_inventory,
'component' : parse_endpoints, 'component' : parse_endpoints,
'interface' : parse_interfaces, 'interface' : parse_interfaces,
'network_instance': parse_network_instances, 'network_instance': parse_network_instances,
......
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
anytree==2.8.0
APScheduler==3.8.1
#networkx==2.6.3
#pydot==1.4.2
#redis==4.1.2
#fastcache==1.1.0
ncclient==0.6.13
python-json-logger==2.0.2
pytz==2021.3
xmltodict==0.12.0
# pip's dependency resolver does not take into account installed packages.
# p4runtime does not specify the version of grpcio/protobuf it needs, so it tries to install latest one
# adding here again grpcio==1.47.* and protobuf==3.20.* with explicit versions to prevent collisions
grpcio==1.47.*
protobuf==3.20.*
prometheus_client==0.13.0
\ No newline at end of file
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
...@@ -46,7 +46,7 @@ def main(): ...@@ -46,7 +46,7 @@ def main():
#service_handler_factory = ServiceHandlerFactory(SERVICE_HANDLERS) #service_handler_factory = ServiceHandlerFactory(SERVICE_HANDLERS)
pcep_server = GrpcServer() #Create instance of the GRPC Server pcep_server = GrpcServer() #Create instance of the GRPC Server
# pcep_server.Connect()
ip_address = socket.gethostbyname(socket.gethostname()) ip_address = socket.gethostbyname(socket.gethostname())
LOGGER.debug("IP address of the PCEP POD: %s", ip_address) LOGGER.debug("IP address of the PCEP POD: %s", ip_address)
......
<?xml version="1.0" encoding="UTF-8"?>
<config>
<!-- TCP port where the BGP is listening for incoming bgp4 connections. Optional Parameter. Default value: 179 (BGP Port) -->
<BGP4Port>22179</BGP4Port>
<BGPIdentifier>1.1.1.1</BGPIdentifier>
<!-- TCP port to connect to manage the BGP connection. Default value: 1112 -->
<BGP4ManagementPort>1112</BGP4ManagementPort>
<!-- Peers to which this Peer is going to establish connection -->
<configPeer>
<peer>localhost</peer>
<export>false</export>
<import>true</import>
<peerPort>11179</peerPort>
</configPeer>
<!-- Ficheros log (servidor, protocolo PCEP y OSPF). Campos opcionales-->
<BGP4LogFile>BGP4Parser2.log</BGP4LogFile><!-- Default value: BGP4Parser.log -->
<BGP4LogFileClient>BGP4Client2.log</BGP4LogFileClient><!-- Default value: BGP4Client.log-->
<BGP4LogFileServer>BGP4Server2.log</BGP4LogFileServer><!-- Default value: BGP4Server.log-->
<!-- If the tcp no delay option is used or not. Optional Parameter. Default value: false. -->
<nodelay>true</nodelay>
<!-- Waiting Time to re-connect to clients. Default value: 6000 ms. -->
<delay>40000</delay>
<setTraces>true</setTraces>
<!-- OPEN Parameters -->
<!-- RFC 4271. This 2-octet unsigned integer indicates the number of seconds the sender proposes for the value of the Hold Timer.
Upon receipt of an OPEN message, a BGP speaker MUST calculate the value of the Hold Timer by using the smaller of its configured
Hold Time and the Hold Time received in the OPEN message. The Hold Time MUST be either zero or at least three seconds. An
implementation MAY reject connections on the basis of the Hold Time. The calculated value indicates the maximum number of
seconds that may elapse between the receipt of successive KEEPALIVE and/or UPDATE messages from the sender. -->
<holdTime>180</holdTime><!-- Optional Parameter. Default value: 3. -->
<!-- RFC 4271. This 1-octet unsigned integer indicates the protocol version number of the message. The current BGP version number is 4. -->
<version>4</version><!-- Optional Parameter. Default value: 4. -->
<!-- RFC 4271. This 2-octet unsigned integer indicates the Autonomous System number of the sender.-->
<myAutonomousSystem>1</myAutonomousSystem>
<!-- RFC 4271. This 4-octet unsigned integer indicates the BGP Identifier of the sender. A given BGP speaker sets the value of its BGP
Identifier to an IP address that is assigned to that BGP speaker. The value of the BGP Identifier is determined upon
startup and is the same for every local interface and BGP peer. -->
<!--<BGPIdentifier>192.168.1.200</BGPIdentifier> -->
<!-- If the peer is in charge of sending its topology (only the interdomain Links) to the other BGP peer it is connected to. Default: false -->
<sendTopology>false</sendTopology>
<!-- If the peer is in charge of sending its whole topology to the other BGP peer it is connected to. Default: false -->
<sendIntradomainLinks>true</sendIntradomainLinks>
<!-- Optional Parameter. How to learn the topology. Possibilities: fromXML, fromBGP. Default: fromBGP -->
<learnTopology>fromBGP</learnTopology>
<!-- Topology network to read. It is mandatory if and only if learnTopology parameter is fromXML. -->
<!--<topologyFile>src/test/resources/network1.xml</topologyFile>-->
<!-- Optional Parameter. Instance Identifier for node and link NLRI. See rfc 6549. Default value: 0-->
<!--<instanceID>0</instanceID>-->
<!-- Optional Parameter. Default value: localhost -->
<localBGPAddress>0.0.0.0</localBGPAddress>
</config>
File added
<!-- Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) <!-- Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
</OSPF--> </OSPF-->
<!--WSON NETWORK--> <!--WSON NETWORK-->
<!--<layer type="gmpls" default="true" encodingType="1" switchingType="150">77</layer>--> <!--<layer type="gmpls" default="true" encodingType="1" switchingType="150">77</layer>-->
<layer default="true" type="mpls"/> <layer type="mpls" default="true" ></layer>
<!--<algorithmRule of="0" svec="false" name="mpls.MPLS_MinTH_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="false"/>--> <!--<algorithmRule of="0" svec="false" name="mpls.MPLS_MinTH_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="false"/>-->
<!--<algorithmRule of="1000" svec="false" name="wson.SP_FF_RWA_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>--> <!--<algorithmRule of="1000" svec="false" name="wson.SP_FF_RWA_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
......
"/home/ubuntu/downloads/apache-maven-3.8.8/bin/mvn" clean package -P pcep assembly:single -DskipTests=True -f "/home/ubuntu/tfs-ctrl/src/pcep/service/resources/java/netphony-pce/pom.xml"
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="BGP4Peer" level="trace" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
<Root level="DEBUG">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
<?xml version="1.0" encoding="UTF-8"?>
<network>
<domain>
<layer type="mpls" ></layer>
<domain_id>0.0.0.1</domain_id>
<reachability_entry>
<ipv4_address>1.1.1.0</ipv4_address>
<prefix>12</prefix>
</reachability_entry>
<node>
<router_id>1.1.1.1</router_id>
</node>
<node>
<router_id>1.1.1.2</router_id>
</node>
<node>
<router_id>1.1.1.3</router_id>
</node>
<!-- 1 al 2 -->
<edge type="intradomain">
<source>
<router_id>1.1.1.1</router_id>
<NumIf_id>192.168.1.11</NumIf_id>
</source>
<destination>
<router_id>1.1.1.2</router_id>
<NumIf_id>192.168.1.12</NumIf_id>
</destination>
<delay>
3.13
</delay>
<maximum_bandwidth>
100
</maximum_bandwidth>
<unreserved_bandwidth priority="0">
100
</unreserved_bandwidth>
</edge>
<edge type="intradomain">
<source>
<router_id>1.1.1.1</router_id>
<NumIf_id>192.168.3.11</NumIf_id>
</source>
<destination>
<router_id>1.1.1.3</router_id>
<NumIf_id>192.168.3.13</NumIf_id>
</destination>
<delay>
3.13
</delay>
<maximum_bandwidth>
100
</maximum_bandwidth>
<unreserved_bandwidth priority="0">
100
</unreserved_bandwidth>
</edge>
<edge type="intradomain">
<source>
<router_id>1.1.1.3</router_id>
<NumIf_id>192.168.2.13</NumIf_id>
</source>
<destination>
<router_id>1.1.1.2</router_id>
<NumIf_id>192.168.2.12</NumIf_id>
</destination>
<delay>
3.13
</delay>
<maximum_bandwidth>
100
</maximum_bandwidth>
<unreserved_bandwidth priority="0">
100
</unreserved_bandwidth>
</edge>
</domain>
</network>
<?xml version="1.0" encoding="UTF-8"?>
<config>
<PCEServerPort>4189</PCEServerPort>
<PCEManagementPort>6666</PCEManagementPort>
<!--<LocalPCEAddress>192.168.1.200</LocalPCEAddress>-->
<!--<LocalPCEAddress>10.95.40.175</LocalPCEAddress>-->
<!--<LocalPCEAddress>127.0.0.1</LocalPCEAddress>-->
<LocalPCEAddress>10.95.43.150</LocalPCEAddress>
<ConnectTimer>
<!-- Connect: the timer (in seconds) started after having initialized a
TCP connection using the PCEP-registered TCP port. The value of
the Connect timer is 60 seconds. -->
60
</ConnectTimer>
<KeepAliveTimer>
30
</KeepAliveTimer>
<DeadTimer>
120
</DeadTimer>
<ConnectMaxRetry>
<!-- ConnectMaxRetry: the maximum number of times the system tries to
establish a TCP connection using the PCEP-registered TCP port
before going back to the Idle state. The value of the
ConnectMaxRetry is 5.-->
5
</ConnectMaxRetry>
<OpenWait>
<!-- OpenWait: the timer that corresponds to the amount of time a PCEP
peer will wait to receive an Open message from the PCEP peer after
the expiration of which the system releases the PCEP resource and
goes back to the Idle state. The OpenWait timer has a fixed value
of 60 seconds.-->
60
</OpenWait>
<KeepWait>
<!-- KeepWait: the timer that corresponds to the amount of time a PCEP
peer will wait to receive a Keepalive or a PCErr message from the
PCEP peer after the expiration of which the system releases the
PCEP resource and goes back to the Idle state. The KeepWait timer
has a fixed value of 60 seconds.-->
</KeepWait>
<parentPCE>
<!-- <parentPCEAddress>10.95.30.29</parentPCEAddress> -->
<!-- <parentPCEAddress>2.2.2.2</parentPCEAddress>-->
<!--<parentPCEAddress>10.95.30.29</parentPCEAddress> -->
<!--<parentPCEAddress>10.95.15.126</parentPCEAddress>-->
<!-- <parentPCEPort>4172</parentPCEPort> -->
</parentPCE>
<!-- Ficheros log (servidor, protocolo PCEP y OSPF). Campos opcionales -->
<PCEServerLogFile>PCEServer.log</PCEServerLogFile>
<PCEPParserLogFile>PCEPParserServer.log</PCEPParserLogFile>
<OSPFParserLogFile>OSPFParser.log</OSPFParserLogFile>
<isStateful>true</isStateful>
<isActive>true</isActive>
<PCCRequestsProcessors>1</PCCRequestsProcessors>
<ParentPCERequestProcessors>1</ParentPCERequestProcessors>
<!--<networkDescriptionFile>networks\Network_8_nodes.xml</networkDescriptionFile>-->
<!--<networkDescriptionFile>networks\network_NSFNet.xml</networkDescriptionFile>-->
<!--<networkDescriptionFile>/usr/local/nodeConfig/topologia.xml</networkDescriptionFile>-->
<networkDescriptionFile>topologia_ifusion.xml</networkDescriptionFile>
<actingAsBGP4Peer>false</actingAsBGP4Peer>
<BGP4File>BGP4Parameters_2.xml</BGP4File>
<initialSessionID>1000</initialSessionID>
<nodelay>true</nodelay>
<reservation>false</reservation>
<optimizedRead>false</optimizedRead>
<analyzeRequestTime>true</analyzeRequestTime>
<multilayer>false</multilayer>
<setTraces>true</setTraces>
<!--OSPF>
<OSPFSession>true</OSPFSession>
<OSPFListenerIP>192.168.1.200</OSPFListenerIP>
<OSPFMulticast>true</OSPFMulticast>
<OSPFUnicast>false</OSPFUnicast>
<OSPFTCPSession>false</OSPFTCPSession>
<OSPFTCPPort>7762</OSPFTCPPort>
</OSPF-->
<!--WSON NETWORK-->
<!--<layer type="gmpls" default="true" encodingType="1" switchingType="150">77</layer>-->
<layer type="mpls" default="true" ></layer>
<!--<algorithmRule of="0" svec="false" name="mpls.MPLS_MinTH_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="false"/>-->
<!--<algorithmRule of="1000" svec="false" name="wson.SP_FF_RWA_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<<algorithmRule of="1002" svec="false" name="sson.AURE_SSON_algorithm" isParentPCEAlgorithm="false" isSSONAlgorithm="true"/>-->
<!--<algorithmRule of="998" svec="true" name="wson.svec.SVEC_SP_FF_WSON_PathComputing" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="1100" svec="false" name="multiLayer.Multilayer_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="900" svec="false" name="wson.KSPprecomp_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="1001" svec="false" name="wson.AURE_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="901" svec="false" name="wson.AURE_PACK_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="903" svec="false" name="wson.AURE_RANDOM_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="902" svec="false" name="wson.AURE_SPREAD_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="800" svec="false" name="wson.KSP_FF_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="801" svec="false" name="wson.KSP_PACK_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="803" svec="false" name="wson.KSP_RANDOM_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="802" svec="false" name="wson.KSP_SPREAD_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="900" svec="false" name="wson.AURE_FF_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="true"/>-->
<!--<algorithmRule of="1001" svec="false" name="wson.AURE_Algorithm" isParentPCEAlgorithm="false" isWSONAlgorithm="false"/>-->
<!--<algorithmRule of="999" svec="true" name="CPLEXOptimizedPathComputing" isParentPCEAlgorithm="false" isWSONAlgorithm="false"/>-->
<!-- <layer type="mpls" default="true"/>-->
<!--<layer type="mpls" default="true"/>-->
</config>
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment