Performance Evaluation Framework + Helper Tools

Common - Manifests:

  • Updated manifests to expose metrics endpoint (context, device, DLT, interdomain, monitoring, pathcomp, service, slice)
  • Defined service monitors (context, device, DLT, interdomain, monitoring, pathcomp, service, slice)
  • Updated default replicas for pathcomp and service components to 5

Common - Proto:

  • DLT connector: added flag to delete records

Common - Method Wrappers:

  • Defined README.md file with commands and relevant references
  • Added performance evaluation preliminary results as a reference for future improvements
  • Unified RPC method wrapper with performance evaluation
  • Defined testing deploy specs script
  • Defined Grafana dashboards to report performnace of RPC methods of components, Device Drivers, and Service Handlers
  • Updated unitary tests of former RPC method wrapper

Common - Load Descriptor:

  • Removed incorrect instruction in descriptor loader

Common - Object Factory:

  • Added object factory methods for L2NM services
  • Improved object-factry slice-related methods

Common - Constants:

  • Increased default gRPC workers from 10 to 200

Common - Deploy script:

  • Removed scaledown+scaleup during deploy (useless)
  • Updated deploy.sh script to handle service monitor CRDs

Compute component:

  • Updated gRPC Servicer to new Method Wrapper API

Context component:

  • Updated gRPC Servicer to new Method Wrapper API

DBScan component:

  • Updated gRPC Servicer to new Method Wrapper API

Device component:

  • Updated gRPC Servicer to new Method Wrapper API
  • Updated Device Drivers with Method Wrapper API for performance evaluation

Device component - Transport API driver:

  • Improved endpoint type definition

Device component - MicroWave driver:

  • Added support for user/pass basic authentication
  • Added HTTP schema settings
  • added field to filter desired underlying devices under management
  • Corrected endpoint uuid composition
  • Improved error handling
  • Improved retrieval of existing services

DLT component - Connector:

  • Updated gRPC Servicer to new Method Wrapper API
  • Factorized Record* methods
  • Implemented RecordService method
  • Implemented delete of records

Interdomain component:

  • Updated gRPC Servicer to new Method Wrapper API

OpticalAttackMitigator component:

  • Updated gRPC Servicer to new Method Wrapper API

OpticalCentralizedAttackDetector component:

  • Updated gRPC Servicer to new Method Wrapper API

PathComp component - Backend:

  • Increased number of allowed edges from 10 to 20

PathComp component - Frontend:

  • Updated gRPC Servicer to new Method Wrapper API
  • Reduced log levels for messages raised by _Algorithm class
  • Added mutex to prevent issuing multiple calls to the backend at the same time

Service component:

  • Updated gRPC Servicer to new Method Wrapper API
  • Added close to pathcomp compute request to enforce load balancing of requests
  • Updated Service Handlers with Method Wrapper API for performance evaluation

Service component - MicroWave service handler:

  • Corrected service resource keys
  • Corrected endpoint count in set/delete endpoint methods

Slice component:

  • Updated gRPC Servicer to new Method Wrapper API

Tools - Load Generator:

  • Created new parametrizable load generator tool to stress TeraFlowSDN
  • Added README.md file
  • Added support for L2NM/L3NM/TAPI/MicroWave services
  • Added support for slices
  • Added support to stress DLT component with operations triggered by the load generator for performance evaluation (disabled by default)
  • Added example deploy specs script for the load generator tool
  • Added helper script to run the tool
  • Added example descriptor file to populate the scenario

Tools - Load Scenario:

  • Created new tool to load scenarios from descriptor files from command line
  • Added README.md file
  • Added helper script to run the tool
  • Added example descriptor file
Edited by Lluis Gifre Renom

Merge request reports

Loading
+7 −0
Changes for manifests/contextservice.yaml: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ spec:
        ports:
        - containerPort: 1010
        - containerPort: 8080
        - containerPort: 9192
        env:
        - name: DB_BACKEND
          value: "redis"
@@ -74,6 +75,8 @@ apiVersion: v1
kind: Service
metadata:
  name: contextservice
  labels:
    app: contextservice
spec:
  type: ClusterIP
  selector:
@@ -87,3 +90,7 @@ spec:
    protocol: TCP
    port: 8080
    targetPort: 8080
  - name: metrics
    protocol: TCP
    port: 9192
    targetPort: 9192
+8 −0
Changes for manifests/deviceservice.yaml: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ spec:
  selector:
    matchLabels:
      app: deviceservice
  replicas: 1
  template:
    metadata:
      labels:
@@ -32,6 +33,7 @@ spec:
        imagePullPolicy: Always
        ports:
        - containerPort: 2020
        - containerPort: 9192
        env:
        - name: LOG_LEVEL
          value: "INFO"
@@ -53,6 +55,8 @@ apiVersion: v1
kind: Service
metadata:
  name: deviceservice
  labels:
    app: deviceservice
spec:
  type: ClusterIP
  selector:
@@ -62,3 +66,7 @@ spec:
    protocol: TCP
    port: 2020
    targetPort: 2020
  - name: metrics
    protocol: TCP
    port: 9192
    targetPort: 9192
+7 −0
Changes for manifests/dltservice.yaml: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ spec:
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
        - containerPort: 9192
        env:
        - name: LOG_LEVEL
          value: "INFO"
@@ -82,6 +83,8 @@ apiVersion: v1
kind: Service
metadata:
  name: dltservice
  labels:
    app: dltservice
spec:
  type: ClusterIP
  selector:
@@ -91,3 +94,7 @@ spec:
    protocol: TCP
    port: 8080
    targetPort: 8080
  - name: metrics
    protocol: TCP
    port: 9192
    targetPort: 9192
+7 −0
Changes for manifests/interdomainservice.yaml: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ spec:
        imagePullPolicy: Always
        ports:
        - containerPort: 10010
        - containerPort: 9192
        env:
        - name: LOG_LEVEL
          value: "INFO"
@@ -53,6 +54,8 @@ apiVersion: v1
kind: Service
metadata:
  name: interdomainservice
  labels:
    app: interdomainservice
spec:
  type: ClusterIP
  selector:
@@ -62,3 +65,7 @@ spec:
    protocol: TCP
    port: 10010
    targetPort: 10010
  - name: metrics
    protocol: TCP
    port: 9192
    targetPort: 9192
+9 −0
Changes for manifests/monitoringservice.yaml: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -72,6 +72,9 @@ spec:
        - name: grpc
          containerPort: 7070
          protocol: TCP
        - name: metrics
          containerPort: 9192
          protocol: TCP
        env:
        - name: LOG_LEVEL
          value: "INFO"
@@ -101,6 +104,8 @@ apiVersion: v1
kind: Service
metadata:
  name: monitoringservice
  labels:
    app: monitoringservice
spec:
  type: ClusterIP
  selector:
@@ -122,6 +127,10 @@ spec:
    protocol: TCP
    port: 8812
    targetPort: 8812
  - name: metrics
    protocol: TCP
    port: 9192
    targetPort: 9192

---
apiVersion: networking.k8s.io/v1
Loading
Loading