Commit a4f07542 authored by Álvaro Ramírez Hernández's avatar Álvaro Ramírez Hernández
Browse files

[Feature] Integrated ResourceManager + BGP-LS speaker and PCEP client enhancements

- Added new ResourceManager service with gRPC implementation, in-memory resource logic, and Python client.
- Included Dockerfile, service entrypoint, and deployment manifest for ResourceManager.
- Added resource_manager.proto and log script.
- BGP-LS Speaker improvements:
  · Updated configuration files and log settings.
  · Refactored UpdateProcessorThread for context integration.
- PCEP client updates:
  · Enhanced PcepClient logic and updated README.
- Updated database models (Link, LinkModel) for extended resource tracking.
- Modified PCEP web UI templates for LSP DB and path request.
parent 41c82d60
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ spec:
            - containerPort: 9192
          env:
            - name: LOG_LEVEL
              value: "INFO"
              value: "DEBUG"
          readinessProbe:
            exec:
              command: ["/bin/grpc_health_probe", "-addr=:20030"]
+51 −0
Original line number Diff line number Diff line
apiVersion: apps/v1
kind: Deployment
metadata:
  name: resource-managerservice
spec:
  selector:
    matchLabels:
      app: resource-managerservice
  template:
    metadata:
      labels:
        app: resource-managerservice
    spec:
      containers:
        - name: resource-managerservice
          image: localhost:32000/tfs/resource_manager:dev
          imagePullPolicy: Always
          ports:
          - containerPort: 40010
          env:
          - name: LOG_LEVEL
            value: "DEBUG"
          readinessProbe:
            exec:
              command: ["/bin/grpc_health_probe", "-addr=:40010"]
          livenessProbe:
            exec:
              command: ["/bin/grpc_health_probe", "-addr=:40010"]
          resources:
            requests:
              cpu: 250m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 512Mi

---
apiVersion: v1
kind: Service
metadata:
  name: resource-managerservice
spec:
  type: NodePort
  ports:
    - name: grpc
      protocol: TCP
      port: 40010
      targetPort: 40010
      nodePort: 30010
  selector:
    app: resource-managerservice
 No newline at end of file
+5 −2
Original line number Diff line number Diff line
@@ -20,7 +20,10 @@
export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/"

# Set the list of components, separated by spaces, you want to build images for, and deploy.
export TFS_COMPONENTS="context device pathcomp service slice nbi webui pcep"
export TFS_COMPONENTS="context device pathcomp service slice nbi webui"

# Uncomment to activate Monitoring (old)
export TFS_COMPONENTS="${TFS_COMPONENTS} resource_manager"

# Uncomment to activate Monitoring (old)
#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring"
+4 −0
Original line number Diff line number Diff line
@@ -253,6 +253,10 @@ message LinkId {
message LinkAttributes {
  float total_capacity_gbps = 1;
  float used_capacity_gbps  = 2;
  float available_bw = 3;
  float link_delay = 5;
  float min_max_link_delay = 6;
  float delay_variation = 7;
}

message Link {
+52 −0
Original line number Diff line number Diff line
// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (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 resource_manager;

// Define el servicio
service ResourceManager {
  rpc VerifyAndAssignL2 (L2Request) returns (L2Response);
  rpc VerifyAndAssignL3 (L3Request) returns (L3Response);
}

// Define las solicitudes y respuestas para los servicios
message L2Request {
  string service_uuid = 1;
  string connection_uuid = 2;
  string device_uuid = 3;
  string endpoint_uuid = 4;
  string endpoint_name = 5;
  int32 vlan_id = 6;
}

message L2Response {
  bool success = 1;
  string message = 2;
}

message L3Request {
  string service_uuid = 1;
  string connection_uuid = 2;
  string device_uuid = 3;
  string endpoint_uuid = 4;
  string endpoint_name = 5;
  string ip_address = 6;
}

message L3Response {
  bool success = 1;
  string message = 2;
}
 No newline at end of file
Loading