diff --git a/proto/kpi_sample_types.proto b/proto/kpi_sample_types.proto
index 1ade4d69bf5a6c23d993cd37ed731eee10d7374e..5b234a4e35197557f41770984f7c8f6603672411 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 3d5c93b2c60da6872bca019936eba5524191ad12..5113aa009ee76f1e97a8037936d6723f196af49a 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 7351d16a90db438bad4535fd3d413c5c48e91b17..7540bbf29bafaaf0b94a45d326ed1bd31bc48e23 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 217672b2e8de2d7c840833a937b0fb04c38a221b..98bdbbd2c364953df27694a839eff3e8f0e1c114 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 42ea864f3c0c1150c3806f97e67ff3969542ab70..286ae179d325b6e70d6ebf509de92e354ba42bc8 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 5cef9ac199a0cc3389092e4ea375940e27554066..a229b5698ecc393afced41f885bf4c88ede4543f 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 e7fb00029f15d82dbe80c8fff13d098ca5b29f30..4f0c600923b6004d3e4e260d9dad973d1396830c 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 fb60ef8d1a82417f858fe63845b76b27099f488e..b57bdf10af1bbbfda187e89d7cb3d7951b200db6 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 217672b2e8de2d7c840833a937b0fb04c38a221b..98bdbbd2c364953df27694a839eff3e8f0e1c114 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;