From 9204eee79df228ece1231e135cf4d1e3deade2a0 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 31 Oct 2023 16:49:57 +0000 Subject: [PATCH] Add Link Capacity KPIs: - Added entries in proto - Added entries in common/type_checkers - Updated Context, Automation, and Policy components --- proto/kpi_sample_types.proto | 8 ++++++++ .../eu/teraflow/automation/Serializer.java | 8 ++++++++ .../eu/teraflow/automation/SerializerTest.java | 6 ++++++ .../grpc/kpi_sample_types/KpiSampleTypes.java | 18 ++++++++++++++++++ src/common/type_checkers/Assertions.py | 2 ++ .../database/models/enums/KpiSampleType.py | 12 +++++++----- .../java/eu/teraflow/policy/Serializer.java | 8 ++++++++ .../eu/teraflow/policy/SerializerTest.java | 6 ++++++ .../grpc/kpi_sample_types/KpiSampleTypes.java | 18 ++++++++++++++++++ 9 files changed, 81 insertions(+), 5 deletions(-) diff --git a/proto/kpi_sample_types.proto b/proto/kpi_sample_types.proto index 1ade4d69b..5b234a4e3 100644 --- a/proto/kpi_sample_types.proto +++ b/proto/kpi_sample_types.proto @@ -17,18 +17,26 @@ package kpi_sample_types; enum KpiSampleType { KPISAMPLETYPE_UNKNOWN = 0; + KPISAMPLETYPE_PACKETS_TRANSMITTED = 101; KPISAMPLETYPE_PACKETS_RECEIVED = 102; KPISAMPLETYPE_PACKETS_DROPPED = 103; KPISAMPLETYPE_BYTES_TRANSMITTED = 201; KPISAMPLETYPE_BYTES_RECEIVED = 202; KPISAMPLETYPE_BYTES_DROPPED = 203; + + KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301; + KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302; + KPISAMPLETYPE_ML_CONFIDENCE = 401; //. can be used by both optical and L3 without any issue + KPISAMPLETYPE_OPTICAL_SECURITY_STATUS = 501; //. can be used by both optical and L3 without any issue + KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS = 601; KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS = 602; KPISAMPLETYPE_L3_UNIQUE_ATTACKERS = 603; KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS = 604; KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO = 605; + KPISAMPLETYPE_SERVICE_LATENCY_MS = 701; } diff --git a/src/automation/src/main/java/eu/teraflow/automation/Serializer.java b/src/automation/src/main/java/eu/teraflow/automation/Serializer.java index 3d5c93b2c..5113aa009 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/Serializer.java +++ b/src/automation/src/main/java/eu/teraflow/automation/Serializer.java @@ -764,6 +764,10 @@ public class Serializer { return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED; case BYTES_RECEIVED: return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED; + case LINK_TOTAL_CAPACITY_GBPS: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS; + case LINK_USED_CAPACITY_GBPS: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS; case UNKNOWN: return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN; default: @@ -781,6 +785,10 @@ public class Serializer { return KpiSampleType.BYTES_TRANSMITTED; case KPISAMPLETYPE_BYTES_RECEIVED: return KpiSampleType.BYTES_RECEIVED; + case KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS: + return KpiSampleType.LINK_TOTAL_CAPACITY_GBPS; + case KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS: + return KpiSampleType.LINK_USED_CAPACITY_GBPS; case KPISAMPLETYPE_UNKNOWN: default: return KpiSampleType.UNKNOWN; diff --git a/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java b/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java index 7351d16a9..7540bbf29 100644 --- a/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java +++ b/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java @@ -1178,6 +1178,12 @@ class SerializerTest { Arguments.of( KpiSampleType.BYTES_RECEIVED, KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED), + Arguments.of( + KpiSampleType.LINK_TOTAL_CAPACITY_GBPS, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS), + Arguments.of( + KpiSampleType.LINK_USED_CAPACITY_GBPS, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS), Arguments.of(KpiSampleType.UNKNOWN, KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN)); } diff --git a/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java b/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java index 217672b2e..98bdbbd2c 100644 --- a/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java +++ b/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java @@ -47,6 +47,14 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_BYTES_DROPPED = 203;</code> */ KPISAMPLETYPE_BYTES_DROPPED(203), + /** + * <code>KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301;</code> + */ + KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS(301), + /** + * <code>KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302;</code> + */ + KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS(302), /** * <pre> *. can be used by both optical and L3 without any issue @@ -118,6 +126,14 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_BYTES_DROPPED = 203;</code> */ public static final int KPISAMPLETYPE_BYTES_DROPPED_VALUE = 203; + /** + * <code>KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301;</code> + */ + public static final int KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS_VALUE = 301; + /** + * <code>KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302;</code> + */ + public static final int KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS_VALUE = 302; /** * <pre> *. can be used by both optical and L3 without any issue @@ -191,6 +207,8 @@ public final class KpiSampleTypes { case 201: return KPISAMPLETYPE_BYTES_TRANSMITTED; case 202: return KPISAMPLETYPE_BYTES_RECEIVED; case 203: return KPISAMPLETYPE_BYTES_DROPPED; + case 301: return KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS; + case 302: return KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS; case 401: return KPISAMPLETYPE_ML_CONFIDENCE; case 501: return KPISAMPLETYPE_OPTICAL_SECURITY_STATUS; case 601: return KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS; diff --git a/src/common/type_checkers/Assertions.py b/src/common/type_checkers/Assertions.py index 42ea864f3..286ae179d 100644 --- a/src/common/type_checkers/Assertions.py +++ b/src/common/type_checkers/Assertions.py @@ -53,6 +53,8 @@ def validate_kpi_sample_types_enum(message): 'KPISAMPLETYPE_PACKETS_RECEIVED', 'KPISAMPLETYPE_BYTES_TRANSMITTED', 'KPISAMPLETYPE_BYTES_RECEIVED', + 'KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS', + 'KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS', ] def validate_service_type_enum(message): diff --git a/src/context/service/database/models/enums/KpiSampleType.py b/src/context/service/database/models/enums/KpiSampleType.py index 5cef9ac19..a229b5698 100644 --- a/src/context/service/database/models/enums/KpiSampleType.py +++ b/src/context/service/database/models/enums/KpiSampleType.py @@ -22,11 +22,13 @@ from ._GrpcToEnum import grpc_to_enum # BYTES_RECEIVED. If item name does not match, automatic mapping of # proto enums to database enums will fail. class ORM_KpiSampleTypeEnum(enum.Enum): - UNKNOWN = KpiSampleType.KPISAMPLETYPE_UNKNOWN - PACKETS_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED - PACKETS_RECEIVED = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED - BYTES_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED - BYTES_RECEIVED = KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED + UNKNOWN = KpiSampleType.KPISAMPLETYPE_UNKNOWN + PACKETS_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED + PACKETS_RECEIVED = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED + BYTES_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED + BYTES_RECEIVED = KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED + LINK_TOTAL_CAPACITY_GBPS = KpiSampleType.KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS + LINK_USED_CAPACITY_GBPS = KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS grpc_to_enum__kpi_sample_type = functools.partial( grpc_to_enum, KpiSampleType, ORM_KpiSampleTypeEnum) diff --git a/src/policy/src/main/java/eu/teraflow/policy/Serializer.java b/src/policy/src/main/java/eu/teraflow/policy/Serializer.java index e7fb00029..4f0c60092 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/Serializer.java +++ b/src/policy/src/main/java/eu/teraflow/policy/Serializer.java @@ -1295,6 +1295,10 @@ public class Serializer { return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED; case BYTES_RECEIVED: return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED; + case LINK_TOTAL_CAPACITY_GBPS: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS; + case LINK_USED_CAPACITY_GBPS: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS; case UNKNOWN: return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN; default: @@ -1312,6 +1316,10 @@ public class Serializer { return KpiSampleType.BYTES_TRANSMITTED; case KPISAMPLETYPE_BYTES_RECEIVED: return KpiSampleType.BYTES_RECEIVED; + case KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS: + return KpiSampleType.LINK_TOTAL_CAPACITY_GBPS; + case KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS: + return KpiSampleType.LINK_USED_CAPACITY_GBPS; case KPISAMPLETYPE_UNKNOWN: default: return KpiSampleType.UNKNOWN; diff --git a/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java b/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java index fb60ef8d1..b57bdf10a 100644 --- a/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java +++ b/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java @@ -2218,6 +2218,12 @@ class SerializerTest { Arguments.of( KpiSampleType.BYTES_RECEIVED, KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED), + Arguments.of( + KpiSampleType.LINK_TOTAL_CAPACITY_GBPS, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS), + Arguments.of( + KpiSampleType.LINK_USED_CAPACITY_GBPS, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS), Arguments.of(KpiSampleType.UNKNOWN, KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN)); } diff --git a/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java b/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java index 217672b2e..98bdbbd2c 100644 --- a/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java +++ b/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java @@ -47,6 +47,14 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_BYTES_DROPPED = 203;</code> */ KPISAMPLETYPE_BYTES_DROPPED(203), + /** + * <code>KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301;</code> + */ + KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS(301), + /** + * <code>KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302;</code> + */ + KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS(302), /** * <pre> *. can be used by both optical and L3 without any issue @@ -118,6 +126,14 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_BYTES_DROPPED = 203;</code> */ public static final int KPISAMPLETYPE_BYTES_DROPPED_VALUE = 203; + /** + * <code>KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301;</code> + */ + public static final int KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS_VALUE = 301; + /** + * <code>KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302;</code> + */ + public static final int KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS_VALUE = 302; /** * <pre> *. can be used by both optical and L3 without any issue @@ -191,6 +207,8 @@ public final class KpiSampleTypes { case 201: return KPISAMPLETYPE_BYTES_TRANSMITTED; case 202: return KPISAMPLETYPE_BYTES_RECEIVED; case 203: return KPISAMPLETYPE_BYTES_DROPPED; + case 301: return KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS; + case 302: return KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS; case 401: return KPISAMPLETYPE_ML_CONFIDENCE; case 501: return KPISAMPLETYPE_OPTICAL_SECURITY_STATUS; case 601: return KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS; -- GitLab