From 89ff7b8cc3a5cdb8a6cd8504aa470d633f3067c4 Mon Sep 17 00:00:00 2001 From: kpoulakakis Date: Fri, 20 Jun 2025 15:10:35 +0300 Subject: [PATCH 1/2] feat: add constraint exclusions for serializing/deserializing Constraints object --- .../java/org/etsi/tfs/policy/Serializer.java | 75 +++--- .../context/model/ConstraintExclusions.java | 68 +++++ .../model/ConstraintTypeExclusions.java | 35 +++ .../tfs/policy/context/model/DeviceId.java | 35 +++ .../etsi/tfs/policy/context/model/LinkId.java | 35 +++ .../policy/CommonPolicyServiceImpl.java | 22 ++ .../policy/policy/kafka/AlarmListener.java | 2 +- .../service/PolicyRuleConditionValidator.java | 15 +- .../grpc/context/ContextOuterClass.java | 73 +++++- .../grpc/kpi_sample_types/KpiSampleTypes.java | 241 +++++++++++++++++- 10 files changed, 544 insertions(+), 57 deletions(-) create mode 100644 src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintExclusions.java create mode 100644 src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintTypeExclusions.java create mode 100644 src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceId.java create mode 100644 src/policy/src/main/java/org/etsi/tfs/policy/context/model/LinkId.java diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java index f9eefd5d2..bf7055e14 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java @@ -41,49 +41,7 @@ import org.etsi.tfs.policy.acl.AclLogActionEnum; import org.etsi.tfs.policy.acl.AclMatch; import org.etsi.tfs.policy.acl.AclRuleSet; import org.etsi.tfs.policy.acl.AclRuleTypeEnum; -import org.etsi.tfs.policy.context.model.ConfigActionEnum; -import org.etsi.tfs.policy.context.model.ConfigRule; -import org.etsi.tfs.policy.context.model.ConfigRuleAcl; -import org.etsi.tfs.policy.context.model.ConfigRuleCustom; -import org.etsi.tfs.policy.context.model.ConfigRuleTypeAcl; -import org.etsi.tfs.policy.context.model.ConfigRuleTypeCustom; -import org.etsi.tfs.policy.context.model.Constraint; -import org.etsi.tfs.policy.context.model.ConstraintCustom; -import org.etsi.tfs.policy.context.model.ConstraintEndPointLocation; -import org.etsi.tfs.policy.context.model.ConstraintSchedule; -import org.etsi.tfs.policy.context.model.ConstraintSlaAvailability; -import org.etsi.tfs.policy.context.model.ConstraintSlaCapacity; -import org.etsi.tfs.policy.context.model.ConstraintSlaIsolationLevel; -import org.etsi.tfs.policy.context.model.ConstraintSlaLatency; -import org.etsi.tfs.policy.context.model.ConstraintTypeCustom; -import org.etsi.tfs.policy.context.model.ConstraintTypeEndPointLocation; -import org.etsi.tfs.policy.context.model.ConstraintTypeSchedule; -import org.etsi.tfs.policy.context.model.ConstraintTypeSlaAvailability; -import org.etsi.tfs.policy.context.model.ConstraintTypeSlaCapacity; -import org.etsi.tfs.policy.context.model.ConstraintTypeSlaIsolationLevel; -import org.etsi.tfs.policy.context.model.ConstraintTypeSlaLatency; -import org.etsi.tfs.policy.context.model.Device; -import org.etsi.tfs.policy.context.model.DeviceConfig; -import org.etsi.tfs.policy.context.model.DeviceDriverEnum; -import org.etsi.tfs.policy.context.model.DeviceOperationalStatus; -import org.etsi.tfs.policy.context.model.Empty; -import org.etsi.tfs.policy.context.model.EndPoint; -import org.etsi.tfs.policy.context.model.EndPointId; -import org.etsi.tfs.policy.context.model.Event; -import org.etsi.tfs.policy.context.model.EventTypeEnum; -import org.etsi.tfs.policy.context.model.GpsPosition; -import org.etsi.tfs.policy.context.model.IsolationLevelEnum; -import org.etsi.tfs.policy.context.model.Location; -import org.etsi.tfs.policy.context.model.LocationTypeGpsPosition; -import org.etsi.tfs.policy.context.model.LocationTypeRegion; -import org.etsi.tfs.policy.context.model.Service; -import org.etsi.tfs.policy.context.model.ServiceConfig; -import org.etsi.tfs.policy.context.model.ServiceId; -import org.etsi.tfs.policy.context.model.ServiceStatus; -import org.etsi.tfs.policy.context.model.ServiceStatusEnum; -import org.etsi.tfs.policy.context.model.ServiceTypeEnum; -import org.etsi.tfs.policy.context.model.SliceId; -import org.etsi.tfs.policy.context.model.TopologyId; +import org.etsi.tfs.policy.context.model.*; import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType; import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor; import org.etsi.tfs.policy.monitoring.model.AlarmResponse; @@ -904,6 +862,22 @@ public class Serializer { builder.setSlaLatency(serializedConstraintSlaLatency); } + if (constraintTypeSpecificType instanceof ConstraintExclusions) { + final var isPermanent = ((ConstraintExclusions) constraintTypeSpecificType).isPermanent(); + final var deviceIds = ((ConstraintExclusions) constraintTypeSpecificType).getDeviceIds(); + + final var serializedDeviceIds = + deviceIds.stream().map(this::serializeDeviceId).collect(Collectors.toList()); + + final var serializedConstraintExclusions = + ContextOuterClass.Constraint_Exclusions.newBuilder() + .setIsPermanent(isPermanent) + .addAllDeviceIds(serializedDeviceIds) + .build(); + + builder.setExclusions(serializedConstraintExclusions); + } + return builder.build(); } @@ -982,6 +956,21 @@ public class Serializer { new ConstraintTypeSlaIsolationLevel(constraintSlaIsolation); return new Constraint(constraintTypeSlaIsolation); + case EXCLUSIONS: + final var exclusions = serializedConstraint.getExclusions(); + + final var isPermanent = exclusions.getIsPermanent(); + final var serializedDevices = exclusions.getDeviceIdsList(); + + final var deviceIds = + serializedDevices.stream().map(this::deserialize).collect(Collectors.toList()); + + final var constraintExclusions = + new org.etsi.tfs.policy.context.model.ConstraintExclusions( + isPermanent, deviceIds, new ArrayList<>(), new ArrayList<>()); + final var constraintTypeExclusions = + new org.etsi.tfs.policy.context.model.ConstraintTypeExclusions(constraintExclusions); + return new Constraint(constraintTypeExclusions); default: case CONSTRAINT_NOT_SET: diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintExclusions.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintExclusions.java new file mode 100644 index 000000000..383e14fee --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintExclusions.java @@ -0,0 +1,68 @@ +/* + * Copyright 2022-2024 ETSI 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. + */ + +package org.etsi.tfs.policy.context.model; + +import java.util.List; + +public class ConstraintExclusions { + + private final boolean isPermanent; + private final List deviceIds; + private final List endpointIds; + private final List linkIds; + + public ConstraintExclusions( + boolean isPermanent, + List deviceIds, + List endpointIds, + List linkIds) { + this.isPermanent = isPermanent; + this.deviceIds = deviceIds; + this.endpointIds = endpointIds; + this.linkIds = linkIds; + } + + public boolean isPermanent() { + return isPermanent; + } + + public List getDeviceIds() { + return deviceIds; + } + + public List getEndpointIds() { + return endpointIds; + } + + public List getLinkIds() { + return linkIds; + } + + @Override + public String toString() { + return "ConstraintExclusions{" + + "permanent=" + + isPermanent + + ", deviceIds=" + + deviceIds + + ", endpointIds=" + + endpointIds + + ", linkIds=" + + linkIds + + '}'; + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintTypeExclusions.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintTypeExclusions.java new file mode 100644 index 000000000..4436b2b62 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintTypeExclusions.java @@ -0,0 +1,35 @@ +/* + * Copyright 2022-2024 ETSI 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. + */ + +package org.etsi.tfs.policy.context.model; + +public class ConstraintTypeExclusions implements ConstraintType { + private final ConstraintExclusions constraintExclusions; + + public ConstraintTypeExclusions(ConstraintExclusions constraintExclusions) { + this.constraintExclusions = constraintExclusions; + } + + @Override + public ConstraintExclusions getConstraintType() { + return this.constraintExclusions; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintExclusions); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceId.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceId.java new file mode 100644 index 000000000..fd1352819 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceId.java @@ -0,0 +1,35 @@ +/* + * Copyright 2022-2024 ETSI 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. + */ + +package org.etsi.tfs.policy.context.model; + +public class DeviceId { + + private final String id; + + public DeviceId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return "DeviceId{" + "id='" + id + '\'' + '}'; + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/LinkId.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/LinkId.java new file mode 100644 index 000000000..fe7fcff2a --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/LinkId.java @@ -0,0 +1,35 @@ +/* + * Copyright 2022-2024 ETSI 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. + */ + +package org.etsi.tfs.policy.context.model; + +public class LinkId { + + private final String id; + + public LinkId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return "LinkId{" + "id='" + id + '\'' + '}'; + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java index fa8537d7f..c5afff68e 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java @@ -135,6 +135,8 @@ public class CommonPolicyServiceImpl { addServiceConfigRule(policyRuleService, policyRuleAction); case POLICY_RULE_ACTION_RECALCULATE_PATH: callRecalculatePathRPC(policyRuleService, policyRuleAction); + case POLICY_RULE_ACTION_CALL_SERVICE_RPC: + callUpdateServiceRpc(policyRuleService, policyRuleAction); default: LOGGER.errorf(INVALID_MESSAGE, policyRuleAction.getPolicyRuleActionEnum()); return; @@ -509,6 +511,26 @@ public class CommonPolicyServiceImpl { }); } + private void callUpdateServiceRpc( + PolicyRuleService policyRuleService, PolicyRuleAction policyRuleAction) { + + final var deserializedServiceUni = contextService.getService(policyRuleService.getServiceId()); + + deserializedServiceUni + .subscribe() + .with( + deserializedService -> { + serviceService + .updateService(deserializedService) + .subscribe() + .with( + x -> { + LOGGER.info(deserializedService); + setPolicyRuleServiceToContext(policyRuleService, ENFORCED_POLICYRULE_STATE); + }); + }); + } + private void callRecalculatePathRPC( PolicyRuleService policyRuleService, PolicyRuleAction policyRuleAction) { diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java index 91813003e..a576bdfea 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java @@ -40,7 +40,7 @@ public class AlarmListener { @Blocking public void receiveAlarm(AlarmTopicDTO alarmTopicDto) { logger.infof("Received message for analytic service backend :\n %s", alarmTopicDto.toString()); - if (alarmTopicDto.isThresholdRaise() || alarmTopicDto.isThresholdFall()) { + if (alarmTopicDto.isThresholdRaise()) { logger.infof("**************************Received Alarm!**************************"); logger.infof( "Received Alarm for analytic service backend with kpiId: %s", alarmTopicDto.getKpiId()); diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java index e2f158dc5..8c8501eda 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java @@ -65,19 +65,28 @@ public class PolicyRuleConditionValidator { return contextService .getService(serviceId) .onFailure() - .recoverWithItem((Service) null) + .invoke( + throwable -> + LOGGER.error( + "Failed to get service: " + serviceId + "Message " + throwable.getMessage(), + throwable)) + // .recoverWithItem((Service) null) .onItem() .transform(service -> checkIfServiceIsValid(service, serviceId, deviceIds)); } private boolean checkIfServiceIsValid( Service service, ServiceId serviceId, List deviceIds) { - return (checkIfServiceIdExists(service, serviceId) - && checkIfServicesDeviceIdsExist(service, deviceIds)); + boolean checkIfServiceIdExists = checkIfServiceIdExists(service, serviceId); + boolean checkIfServicesDeviceIdsExist = checkIfServicesDeviceIdsExist(service, deviceIds); + LOGGER.info("checkIfServiceIdExists " + checkIfServiceIdExists); + LOGGER.info("checkIfServicesDeviceIdsExist " + checkIfServicesDeviceIdsExist); + return (checkIfServiceIdExists && checkIfServicesDeviceIdsExist); } private boolean checkIfServiceIdExists(Service service, ServiceId serviceId) { if (service == null) { + LOGGER.info("service " + service); return false; } diff --git a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java index d85f89f6f..126133075 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java +++ b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java @@ -215,6 +215,10 @@ public final class ContextOuterClass { * DEVICEDRIVER_SMARTNIC = 16; */ DEVICEDRIVER_SMARTNIC(16), + /** + * DEVICEDRIVER_MORPHEUS = 17; + */ + DEVICEDRIVER_MORPHEUS(17), UNRECOGNIZED(-1); /** @@ -306,6 +310,11 @@ public final class ContextOuterClass { */ public static final int DEVICEDRIVER_SMARTNIC_VALUE = 16; + /** + * DEVICEDRIVER_MORPHEUS = 17; + */ + public static final int DEVICEDRIVER_MORPHEUS_VALUE = 17; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -363,6 +372,8 @@ public final class ContextOuterClass { return DEVICEDRIVER_NCE; case 16: return DEVICEDRIVER_SMARTNIC; + case 17: + return DEVICEDRIVER_MORPHEUS; default: return null; } @@ -551,6 +562,10 @@ public final class ContextOuterClass { * LINKTYPE_VIRTUAL = 4; */ LINKTYPE_VIRTUAL(4), + /** + * LINKTYPE_MANAGEMENT = 5; + */ + LINKTYPE_MANAGEMENT(5), UNRECOGNIZED(-1); /** @@ -578,6 +593,11 @@ public final class ContextOuterClass { */ public static final int LINKTYPE_VIRTUAL_VALUE = 4; + /** + * LINKTYPE_MANAGEMENT = 5; + */ + public static final int LINKTYPE_MANAGEMENT_VALUE = 5; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -611,6 +631,8 @@ public final class ContextOuterClass { return LINKTYPE_RADIO; case 4: return LINKTYPE_VIRTUAL; + case 5: + return LINKTYPE_MANAGEMENT; default: return null; } @@ -698,6 +720,18 @@ public final class ContextOuterClass { * SERVICETYPE_QKD = 7; */ SERVICETYPE_QKD(7), + /** + * SERVICETYPE_L1NM = 8; + */ + SERVICETYPE_L1NM(8), + /** + * SERVICETYPE_INT = 9; + */ + SERVICETYPE_INT(9), + /** + * SERVICETYPE_ACL = 10; + */ + SERVICETYPE_ACL(10), UNRECOGNIZED(-1); /** @@ -740,6 +774,21 @@ public final class ContextOuterClass { */ public static final int SERVICETYPE_QKD_VALUE = 7; + /** + * SERVICETYPE_L1NM = 8; + */ + public static final int SERVICETYPE_L1NM_VALUE = 8; + + /** + * SERVICETYPE_INT = 9; + */ + public static final int SERVICETYPE_INT_VALUE = 9; + + /** + * SERVICETYPE_ACL = 10; + */ + public static final int SERVICETYPE_ACL_VALUE = 10; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -779,6 +828,12 @@ public final class ContextOuterClass { return SERVICETYPE_OPTICAL_CONNECTIVITY; case 7: return SERVICETYPE_QKD; + case 8: + return SERVICETYPE_L1NM; + case 9: + return SERVICETYPE_INT; + case 10: + return SERVICETYPE_ACL; default: return null; } @@ -17947,11 +18002,11 @@ public final class ContextOuterClass { } /** - *
-     * Defined previously to this section - Tested OK
-     *  
+ *
+     * Defined previously in this section
+     * 
* - * Protobuf type {@code context.Component} + * Protobuf type {@code context.Component} */ public static final class Component extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Component) ComponentOrBuilder { @@ -18418,11 +18473,11 @@ public final class ContextOuterClass { } /** - *
-         * Defined previously to this section - Tested OK
-         *  
+ *
+         * Defined previously in this section
+         * 
* - * Protobuf type {@code context.Component} + * Protobuf type {@code context.Component} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Component) context.ContextOuterClass.ComponentOrBuilder { @@ -81140,7 +81195,7 @@ public final class ContextOuterClass { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\031google/protobu" + "f/any.proto\032\tacl.proto\032\026kpi_sample_types" + ".proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004uuid\030\001 \001(\t\"\036\n" + "\tTimestamp\022\021\n\ttimestamp\030\001 \001(\001\"Z\n\005Event\022%" + "\n\ttimestamp\030\001 \001(\0132\022.context.Timestamp\022*\n" + "\nevent_type\030\002 \001(\0162\026.context.EventTypeEnu" + "m\"0\n\tContextId\022#\n\014context_uuid\030\001 \001(\0132\r.c" + "ontext.Uuid\"\351\001\n\007Context\022&\n\ncontext_id\030\001 " + "\001(\0132\022.context.ContextId\022\014\n\004name\030\002 \001(\t\022)\n" + "\014topology_ids\030\003 \003(\0132\023.context.TopologyId" + "\022\'\n\013service_ids\030\004 \003(\0132\022.context.ServiceI" + "d\022#\n\tslice_ids\030\005 \003(\0132\020.context.SliceId\022/" + "\n\ncontroller\030\006 \001(\0132\033.context.TeraFlowCon" + "troller\"8\n\rContextIdList\022\'\n\013context_ids\030" + "\001 \003(\0132\022.context.ContextId\"1\n\013ContextList" + "\022\"\n\010contexts\030\001 \003(\0132\020.context.Context\"U\n\014" + "ContextEvent\022\035\n\005event\030\001 \001(\0132\016.context.Ev" + "ent\022&\n\ncontext_id\030\002 \001(\0132\022.context.Contex" + "tId\"Z\n\nTopologyId\022&\n\ncontext_id\030\001 \001(\0132\022." + "context.ContextId\022$\n\rtopology_uuid\030\002 \001(\013" + "2\r.context.Uuid\"\267\001\n\010Topology\022(\n\013topology" + "_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004name\030\002" + " \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021.context.Devic" + "eId\022!\n\010link_ids\030\004 \003(\0132\017.context.LinkId\022)" + "\n\020optical_link_ids\030\005 \003(\0132\017.context.LinkI" + "d\"\266\001\n\017TopologyDetails\022(\n\013topology_id\030\001 \001" + "(\0132\023.context.TopologyId\022\014\n\004name\030\002 \001(\t\022 \n" + "\007devices\030\003 \003(\0132\017.context.Device\022\034\n\005links" + "\030\004 \003(\0132\r.context.Link\022+\n\roptical_links\030\005" + " \003(\0132\024.context.OpticalLink\";\n\016TopologyId" + "List\022)\n\014topology_ids\030\001 \003(\0132\023.context.Top" + "ologyId\"5\n\014TopologyList\022%\n\ntopologies\030\001 " + "\003(\0132\021.context.Topology\"X\n\rTopologyEvent\022" + "\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013topolo" + "gy_id\030\002 \001(\0132\023.context.TopologyId\".\n\010Devi" + "ceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context.Uuid" + "\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.context" + ".DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_type\030\003" + " \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.context.De" + "viceConfig\022G\n\031device_operational_status\030" + "\005 \001(\0162$.context.DeviceOperationalStatusE" + "num\0221\n\016device_drivers\030\006 \003(\0162\031.context.De" + "viceDriverEnum\022+\n\020device_endpoints\030\007 \003(\013" + "2\021.context.EndPoint\022&\n\ncomponents\030\010 \003(\0132" + "\022.context.Component\022(\n\rcontroller_id\030\t \001" + "(\0132\021.context.DeviceId\"\311\001\n\tComponent\022%\n\016c" + "omponent_uuid\030\001 \001(\0132\r.context.Uuid\022\014\n\004na" + "me\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattributes\030\004 \003" + "(\0132\".context.Component.AttributesEntry\022\016" + "\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013\n\003key" + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014DeviceConfi" + "g\022)\n\014config_rules\030\001 \003(\0132\023.context.Config" + "Rule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030\001 \003(\013" + "2\021.context.DeviceId\".\n\nDeviceList\022 \n\007dev" + "ices\030\001 \003(\0132\017.context.Device\"\216\001\n\014DeviceFi" + "lter\022)\n\ndevice_ids\030\001 \001(\0132\025.context.Devic" + "eIdList\022\031\n\021include_endpoints\030\002 \001(\010\022\034\n\024in" + "clude_config_rules\030\003 \001(\010\022\032\n\022include_comp" + "onents\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005event\030\001 " + "\001(\0132\016.context.Event\022$\n\tdevice_id\030\002 \001(\0132\021" + ".context.DeviceId\022,\n\rdevice_config\030\003 \001(\013" + "2\025.context.DeviceConfig\"*\n\006LinkId\022 \n\tlin" + "k_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016LinkAttri" + "butes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022\032\n\022us" + "ed_capacity_gbps\030\002 \001(\002\"\275\001\n\004Link\022 \n\007link_" + "id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002 \001(\t\022" + "(\n\tlink_type\030\003 \001(\0162\025.context.LinkTypeEnu" + "m\022.\n\021link_endpoint_ids\030\004 \003(\0132\023.context.E" + "ndPointId\022+\n\nattributes\030\005 \001(\0132\027.context." + "LinkAttributes\"/\n\nLinkIdList\022!\n\010link_ids" + "\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034\n\005l" + "inks\030\001 \003(\0132\r.context.Link\"L\n\tLinkEvent\022\035" + "\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link_id" + "\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022#\n\014" + "service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n\007Se" + "rvice\022&\n\nservice_id\030\001 \001(\0132\022.context.Serv" + "iceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003 \001(" + "\0162\030.context.ServiceTypeEnum\0221\n\024service_e" + "ndpoint_ids\030\004 \003(\0132\023.context.EndPointId\0220" + "\n\023service_constraints\030\005 \003(\0132\023.context.Co" + "nstraint\022.\n\016service_status\030\006 \001(\0132\026.conte" + "xt.ServiceStatus\022.\n\016service_config\030\007 \001(\013" + "2\026.context.ServiceConfig\022%\n\ttimestamp\030\010 " + "\001(\0132\022.context.Timestamp\"C\n\rServiceStatus" + "\0222\n\016service_status\030\001 \001(\0162\032.context.Servi" + "ceStatusEnum\":\n\rServiceConfig\022)\n\014config_" + "rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rServ" + "iceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.context" + ".ServiceId\"1\n\013ServiceList\022\"\n\010services\030\001 " + "\003(\0132\020.context.Service\"\225\001\n\rServiceFilter\022" + "+\n\013service_ids\030\001 \001(\0132\026.context.ServiceId" + "List\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n\023in" + "clude_constraints\030\003 \001(\010\022\034\n\024include_confi" + "g_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005event\030\001" + " \001(\0132\016.context.Event\022&\n\nservice_id\030\002 \001(\013" + "2\022.context.ServiceId\"T\n\007SliceId\022&\n\nconte" + "xt_id\030\001 \001(\0132\022.context.ContextId\022!\n\nslice" + "_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022\"\n\010" + "slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004name" + "\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023.con" + "text.EndPointId\022.\n\021slice_constraints\030\004 \003" + "(\0132\023.context.Constraint\022-\n\021slice_service" + "_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022slice_" + "subslice_ids\030\006 \003(\0132\020.context.SliceId\022*\n\014" + "slice_status\030\007 \001(\0132\024.context.SliceStatus" + "\022*\n\014slice_config\030\010 \001(\0132\024.context.SliceCo" + "nfig\022(\n\013slice_owner\030\t \001(\0132\023.context.Slic" + "eOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.Time" + "stamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001(\0132" + "\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"=\n\013" + "SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.cont" + "ext.SliceStatusEnum\"8\n\013SliceConfig\022)\n\014co" + "nfig_rules\030\001 \003(\0132\023.context.ConfigRule\"2\n" + "\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.contex" + "t.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(\0132\016" + ".context.Slice\"\312\001\n\013SliceFilter\022\'\n\tslice_" + "ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024inclu" + "de_endpoint_ids\030\002 \001(\010\022\033\n\023include_constra" + "ints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001(\010\022" + "\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024include" + "_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030\002 \001" + "(\0132\020.context.SliceId\"6\n\014ConnectionId\022&\n\017" + "connection_uuid\030\001 \001(\0132\r.context.Uuid\"2\n\025" + "ConnectionSettings_L0\022\031\n\021lsp_symbolic_na" + "me\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n\017sr" + "c_mac_address\030\001 \001(\t\022\027\n\017dst_mac_address\030\002" + " \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004 \001(" + "\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic_cl" + "ass\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n\016sr" + "c_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030\002 \001" + "(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n\003tt" + "l\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010src_" + "port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_flag" + "s\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSetti" + "ngs\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionSett" + "ings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connection" + "Settings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Connec" + "tionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context.Co" + "nnectionSettings_L4\"\363\001\n\nConnection\022,\n\rco" + "nnection_id\030\001 \001(\0132\025.context.ConnectionId" + "\022&\n\nservice_id\030\002 \001(\0132\022.context.ServiceId" + "\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.conte" + "xt.EndPointId\022+\n\017sub_service_ids\030\004 \003(\0132\022" + ".context.ServiceId\022-\n\010settings\030\005 \001(\0132\033.c" + "ontext.ConnectionSettings\"A\n\020ConnectionI" + "dList\022-\n\016connection_ids\030\001 \003(\0132\025.context." + "ConnectionId\":\n\016ConnectionList\022(\n\013connec" + "tions\030\001 \003(\0132\023.context.Connection\"^\n\017Conn" + "ectionEvent\022\035\n\005event\030\001 \001(\0132\016.context.Eve" + "nt\022,\n\rconnection_id\030\002 \001(\0132\025.context.Conn" + "ectionId\"\202\001\n\nEndPointId\022(\n\013topology_id\030\001" + " \001(\0132\023.context.TopologyId\022$\n\tdevice_id\030\002" + " \001(\0132\021.context.DeviceId\022$\n\rendpoint_uuid" + "\030\003 \001(\0132\r.context.Uuid\"\310\002\n\010EndPoint\022(\n\013en" + "dpoint_id\030\001 \001(\0132\023.context.EndPointId\022\014\n\004" + "name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020kpi" + "_sample_types\030\004 \003(\0162\037.kpi_sample_types.K" + "piSampleType\022,\n\021endpoint_location\030\005 \001(\0132" + "\021.context.Location\0229\n\014capabilities\030\006 \003(\013" + "2#.context.EndPoint.CapabilitiesEntry\032I\n" + "\021CapabilitiesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value" + "\030\002 \001(\0132\024.google.protobuf.Any:\0028\001\"{\n\014EndP" + "ointName\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022\023\n\013device_name\030\002 \001(\t\022\025\n\rendpo" + "int_name\030\003 \001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n" + "\016EndPointIdList\022)\n\014endpoint_ids\030\001 \003(\0132\023." + "context.EndPointId\"A\n\020EndPointNameList\022-" + "\n\016endpoint_names\030\001 \003(\0132\025.context.EndPoin" + "tName\"A\n\021ConfigRule_Custom\022\024\n\014resource_k" + "ey\030\001 \001(\t\022\026\n\016resource_value\030\002 \001(\t\"]\n\016Conf" + "igRule_ACL\022(\n\013endpoint_id\030\001 \001(\0132\023.contex" + "t.EndPointId\022!\n\010rule_set\030\002 \001(\0132\017.acl.Acl" + "RuleSet\"\234\001\n\nConfigRule\022)\n\006action\030\001 \001(\0162\031" + ".context.ConfigActionEnum\022,\n\006custom\030\002 \001(" + "\0132\032.context.ConfigRule_CustomH\000\022&\n\003acl\030\003" + " \001(\0132\027.context.ConfigRule_ACLH\000B\r\n\013confi" + "g_rule\"F\n\021Constraint_Custom\022\027\n\017constrain" + "t_type\030\001 \001(\t\022\030\n\020constraint_value\030\002 \001(\t\"E" + "\n\023Constraint_Schedule\022\027\n\017start_timestamp" + "\030\001 \001(\001\022\025\n\rduration_days\030\002 \001(\002\"3\n\014GPS_Pos" + "ition\022\020\n\010latitude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001" + "(\002\"\204\001\n\010Location\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps" + "_position\030\002 \001(\0132\025.context.GPS_PositionH\000" + "\022\023\n\tinterface\030\003 \001(\tH\000\022\026\n\014circuit_pack\030\004 " + "\001(\tH\000B\n\n\010location\"l\n\033Constraint_EndPoint" + "Location\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022#\n\010location\030\002 \001(\0132\021.context.L" + "ocation\"Y\n\033Constraint_EndPointPriority\022(" + "\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointId" + "\022\020\n\010priority\030\002 \001(\r\"0\n\026Constraint_SLA_Lat" + "ency\022\026\n\016e2e_latency_ms\030\001 \001(\002\"0\n\027Constrai" + "nt_SLA_Capacity\022\025\n\rcapacity_gbps\030\001 \001(\002\"c" + "\n\033Constraint_SLA_Availability\022\032\n\022num_dis" + "joint_paths\030\001 \001(\r\022\022\n\nall_active\030\002 \001(\010\022\024\n" + "\014availability\030\003 \001(\002\"V\n\036Constraint_SLA_Is" + "olation_level\0224\n\017isolation_level\030\001 \003(\0162\033" + ".context.IsolationLevelEnum\"\242\001\n\025Constrai" + "nt_Exclusions\022\024\n\014is_permanent\030\001 \001(\010\022%\n\nd" + "evice_ids\030\002 \003(\0132\021.context.DeviceId\022)\n\014en" + "dpoint_ids\030\003 \003(\0132\023.context.EndPointId\022!\n" + "\010link_ids\030\004 \003(\0132\017.context.LinkId\"5\n\014QoSP" + "rofileId\022%\n\016qos_profile_id\030\001 \001(\0132\r.conte" + "xt.Uuid\"`\n\025Constraint_QoSProfile\022-\n\016qos_" + "profile_id\030\001 \001(\0132\025.context.QoSProfileId\022" + "\030\n\020qos_profile_name\030\002 \001(\t\"\222\005\n\nConstraint" + "\022-\n\006action\030\001 \001(\0162\035.context.ConstraintAct" + "ionEnum\022,\n\006custom\030\002 \001(\0132\032.context.Constr" + "aint_CustomH\000\0220\n\010schedule\030\003 \001(\0132\034.contex" + "t.Constraint_ScheduleH\000\022A\n\021endpoint_loca" + "tion\030\004 \001(\0132$.context.Constraint_EndPoint" + "LocationH\000\022A\n\021endpoint_priority\030\005 \001(\0132$." + "context.Constraint_EndPointPriorityH\000\0228\n" + "\014sla_capacity\030\006 \001(\0132 .context.Constraint" + "_SLA_CapacityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.c" + "ontext.Constraint_SLA_LatencyH\000\022@\n\020sla_a" + "vailability\030\010 \001(\0132$.context.Constraint_S" + "LA_AvailabilityH\000\022@\n\rsla_isolation\030\t \001(\013" + "2\'.context.Constraint_SLA_Isolation_leve" + "lH\000\0224\n\nexclusions\030\n \001(\0132\036.context.Constr" + "aint_ExclusionsH\000\0225\n\013qos_profile\030\013 \001(\0132\036" + ".context.Constraint_QoSProfileH\000B\014\n\ncons" + "traint\"^\n\022TeraFlowController\022&\n\ncontext_" + "id\030\001 \001(\0132\022.context.ContextId\022\022\n\nip_addre" + "ss\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024Authentication" + "Result\022&\n\ncontext_id\030\001 \001(\0132\022.context.Con" + "textId\022\025\n\rauthenticated\030\002 \001(\010\"-\n\017Optical" + "ConfigId\022\032\n\022opticalconfig_uuid\030\001 \001(\t\"y\n\r" + "OpticalConfig\0222\n\020opticalconfig_id\030\001 \001(\0132" + "\030.context.OpticalConfigId\022\016\n\006config\030\002 \001(" + "\t\022$\n\tdevice_id\030\003 \001(\0132\021.context.DeviceId\"" + "C\n\021OpticalConfigList\022.\n\016opticalconfigs\030\001" + " \003(\0132\026.context.OpticalConfig\"g\n\022OpticalC" + "onfigEvent\022\035\n\005event\030\001 \001(\0132\016.context.Even" + "t\0222\n\020opticalconfig_id\030\002 \001(\0132\030.context.Op" + "ticalConfigId\"_\n\021OpticalEndPointId\022$\n\tde" + "vice_id\030\002 \001(\0132\021.context.DeviceId\022$\n\rendp" + "oint_uuid\030\003 \001(\0132\r.context.Uuid\">\n\017Optica" + "lLinkList\022+\n\roptical_links\030\001 \003(\0132\024.conte" + "xt.OpticalLink\"\304\003\n\022OpticalLinkDetails\022\016\n" + "\006length\030\001 \001(\002\022\020\n\010src_port\030\002 \001(\t\022\020\n\010dst_p" + "ort\030\003 \001(\t\022\027\n\017local_peer_port\030\004 \001(\t\022\030\n\020re" + "mote_peer_port\030\005 \001(\t\022\014\n\004used\030\006 \001(\010\0228\n\007c_" + "slots\030\007 \003(\0132\'.context.OpticalLinkDetails" + ".CSlotsEntry\0228\n\007l_slots\030\010 \003(\0132\'.context." + "OpticalLinkDetails.LSlotsEntry\0228\n\007s_slot" + "s\030\t \003(\0132\'.context.OpticalLinkDetails.SSl" + "otsEntry\032-\n\013CSlotsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\005:\0028\001\032-\n\013LSlotsEntry\022\013\n\003key\030\001 " + "\001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032-\n\013SSlotsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\"\243\001\n\013Optica" + "lLink\022\014\n\004name\030\001 \001(\t\0224\n\017optical_details\030\002" + " \001(\0132\033.context.OpticalLinkDetails\022 \n\007lin" + "k_id\030\003 \001(\0132\017.context.LinkId\022.\n\021link_endp" + "oint_ids\030\004 \003(\0132\023.context.EndPointId\"r\n\021S" + "erviceConfigRule\022&\n\nservice_id\030\001 \001(\0132\022.c" + "ontext.ServiceId\0225\n\021configrule_custom\030\002 " + "\001(\0132\032.context.ConfigRule_Custom*j\n\rEvent" + "TypeEnum\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EVE" + "NTTYPE_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024\n" + "\020EVENTTYPE_REMOVE\020\003*\351\003\n\020DeviceDriverEnum" + "\022\032\n\026DEVICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICEDR" + "IVER_OPENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANSP" + "ORT_API\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVICE" + "DRIVER_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVICE" + "DRIVER_ONF_TR_532\020\005\022\023\n\017DEVICEDRIVER_XR\020\006" + "\022\033\n\027DEVICEDRIVER_IETF_L2VPN\020\007\022 \n\034DEVICED" + "RIVER_GNMI_OPENCONFIG\020\010\022\034\n\030DEVICEDRIVER_" + "OPTICAL_TFS\020\t\022\032\n\026DEVICEDRIVER_IETF_ACTN\020" + "\n\022\023\n\017DEVICEDRIVER_OC\020\013\022\024\n\020DEVICEDRIVER_Q" + "KD\020\014\022\033\n\027DEVICEDRIVER_IETF_L3VPN\020\r\022\033\n\027DEV" + "ICEDRIVER_IETF_SLICE\020\016\022\024\n\020DEVICEDRIVER_N" + "CE\020\017\022\031\n\025DEVICEDRIVER_SMARTNIC\020\020*\217\001\n\033Devi" + "ceOperationalStatusEnum\022%\n!DEVICEOPERATI" + "ONALSTATUS_UNDEFINED\020\000\022$\n DEVICEOPERATIO" + "NALSTATUS_DISABLED\020\001\022#\n\037DEVICEOPERATIONA" + "LSTATUS_ENABLED\020\002*w\n\014LinkTypeEnum\022\024\n\020LIN" + "KTYPE_UNKNOWN\020\000\022\023\n\017LINKTYPE_COPPER\020\001\022\022\n\016" + "LINKTYPE_FIBER\020\002\022\022\n\016LINKTYPE_RADIO\020\003\022\024\n\020" + "LINKTYPE_VIRTUAL\020\004*\345\001\n\017ServiceTypeEnum\022\027" + "\n\023SERVICETYPE_UNKNOWN\020\000\022\024\n\020SERVICETYPE_L" + "3NM\020\001\022\024\n\020SERVICETYPE_L2NM\020\002\022)\n%SERVICETY" + "PE_TAPI_CONNECTIVITY_SERVICE\020\003\022\022\n\016SERVIC" + "ETYPE_TE\020\004\022\023\n\017SERVICETYPE_E2E\020\005\022$\n SERVI" + "CETYPE_OPTICAL_CONNECTIVITY\020\006\022\023\n\017SERVICE" + "TYPE_QKD\020\007*\304\001\n\021ServiceStatusEnum\022\033\n\027SERV" + "ICESTATUS_UNDEFINED\020\000\022\031\n\025SERVICESTATUS_P" + "LANNED\020\001\022\030\n\024SERVICESTATUS_ACTIVE\020\002\022\032\n\026SE" + "RVICESTATUS_UPDATING\020\003\022!\n\035SERVICESTATUS_" + "PENDING_REMOVAL\020\004\022\036\n\032SERVICESTATUS_SLA_V" + "IOLATED\020\005*\251\001\n\017SliceStatusEnum\022\031\n\025SLICEST" + "ATUS_UNDEFINED\020\000\022\027\n\023SLICESTATUS_PLANNED\020" + "\001\022\024\n\020SLICESTATUS_INIT\020\002\022\026\n\022SLICESTATUS_A" + "CTIVE\020\003\022\026\n\022SLICESTATUS_DEINIT\020\004\022\034\n\030SLICE" + "STATUS_SLA_VIOLATED\020\005*]\n\020ConfigActionEnu" + "m\022\032\n\026CONFIGACTION_UNDEFINED\020\000\022\024\n\020CONFIGA" + "CTION_SET\020\001\022\027\n\023CONFIGACTION_DELETE\020\002*m\n\024" + "ConstraintActionEnum\022\036\n\032CONSTRAINTACTION" + "_UNDEFINED\020\000\022\030\n\024CONSTRAINTACTION_SET\020\001\022\033" + "\n\027CONSTRAINTACTION_DELETE\020\002*\203\002\n\022Isolatio" + "nLevelEnum\022\020\n\014NO_ISOLATION\020\000\022\026\n\022PHYSICAL" + "_ISOLATION\020\001\022\025\n\021LOGICAL_ISOLATION\020\002\022\025\n\021P" + "ROCESS_ISOLATION\020\003\022\035\n\031PHYSICAL_MEMORY_IS" + "OLATION\020\004\022\036\n\032PHYSICAL_NETWORK_ISOLATION\020" + "\005\022\036\n\032VIRTUAL_RESOURCE_ISOLATION\020\006\022\037\n\033NET" + "WORK_FUNCTIONS_ISOLATION\020\007\022\025\n\021SERVICE_IS" + "OLATION\020\0102\202\034\n\016ContextService\022:\n\016ListCont" + "extIds\022\016.context.Empty\032\026.context.Context" + "IdList\"\000\0226\n\014ListContexts\022\016.context.Empty" + "\032\024.context.ContextList\"\000\0224\n\nGetContext\022\022" + ".context.ContextId\032\020.context.Context\"\000\0224" + "\n\nSetContext\022\020.context.Context\032\022.context" + ".ContextId\"\000\0225\n\rRemoveContext\022\022.context." + "ContextId\032\016.context.Empty\"\000\022=\n\020GetContex" + "tEvents\022\016.context.Empty\032\025.context.Contex" + "tEvent\"\0000\001\022@\n\017ListTopologyIds\022\022.context." + "ContextId\032\027.context.TopologyIdList\"\000\022=\n\016" + "ListTopologies\022\022.context.ContextId\032\025.con" + "text.TopologyList\"\000\0227\n\013GetTopology\022\023.con" + "text.TopologyId\032\021.context.Topology\"\000\022E\n\022" + "GetTopologyDetails\022\023.context.TopologyId\032" + "\030.context.TopologyDetails\"\000\0227\n\013SetTopolo" + "gy\022\021.context.Topology\032\023.context.Topology" + "Id\"\000\0227\n\016RemoveTopology\022\023.context.Topolog" + "yId\032\016.context.Empty\"\000\022?\n\021GetTopologyEven" + "ts\022\016.context.Empty\032\026.context.TopologyEve" + "nt\"\0000\001\0228\n\rListDeviceIds\022\016.context.Empty\032" + "\025.context.DeviceIdList\"\000\0224\n\013ListDevices\022" + "\016.context.Empty\032\023.context.DeviceList\"\000\0221" + "\n\tGetDevice\022\021.context.DeviceId\032\017.context" + ".Device\"\000\0221\n\tSetDevice\022\017.context.Device\032" + "\021.context.DeviceId\"\000\0223\n\014RemoveDevice\022\021.c" + "ontext.DeviceId\032\016.context.Empty\"\000\022;\n\017Get" + "DeviceEvents\022\016.context.Empty\032\024.context.D" + "eviceEvent\"\0000\001\022<\n\014SelectDevice\022\025.context" + ".DeviceFilter\032\023.context.DeviceList\"\000\022I\n\021" + "ListEndPointNames\022\027.context.EndPointIdLi" + "st\032\031.context.EndPointNameList\"\000\0224\n\013ListL" + "inkIds\022\016.context.Empty\032\023.context.LinkIdL" + "ist\"\000\0220\n\tListLinks\022\016.context.Empty\032\021.con" + "text.LinkList\"\000\022+\n\007GetLink\022\017.context.Lin" + "kId\032\r.context.Link\"\000\022+\n\007SetLink\022\r.contex" + "t.Link\032\017.context.LinkId\"\000\022/\n\nRemoveLink\022" + "\017.context.LinkId\032\016.context.Empty\"\000\0227\n\rGe" + "tLinkEvents\022\016.context.Empty\032\022.context.Li" + "nkEvent\"\0000\001\022>\n\016ListServiceIds\022\022.context." + "ContextId\032\026.context.ServiceIdList\"\000\022:\n\014L" + "istServices\022\022.context.ContextId\032\024.contex" + "t.ServiceList\"\000\0224\n\nGetService\022\022.context." + "ServiceId\032\020.context.Service\"\000\0224\n\nSetServ" + "ice\022\020.context.Service\032\022.context.ServiceI" + "d\"\000\0226\n\014UnsetService\022\020.context.Service\032\022." + "context.ServiceId\"\000\0225\n\rRemoveService\022\022.c" + "ontext.ServiceId\032\016.context.Empty\"\000\022=\n\020Ge" + "tServiceEvents\022\016.context.Empty\032\025.context" + ".ServiceEvent\"\0000\001\022?\n\rSelectService\022\026.con" + "text.ServiceFilter\032\024.context.ServiceList" + "\"\000\022:\n\014ListSliceIds\022\022.context.ContextId\032\024" + ".context.SliceIdList\"\000\0226\n\nListSlices\022\022.c" + "ontext.ContextId\032\022.context.SliceList\"\000\022." + "\n\010GetSlice\022\020.context.SliceId\032\016.context.S" + "lice\"\000\022.\n\010SetSlice\022\016.context.Slice\032\020.con" + "text.SliceId\"\000\0220\n\nUnsetSlice\022\016.context.S" + "lice\032\020.context.SliceId\"\000\0221\n\013RemoveSlice\022" + "\020.context.SliceId\032\016.context.Empty\"\000\0229\n\016G" + "etSliceEvents\022\016.context.Empty\032\023.context." + "SliceEvent\"\0000\001\0229\n\013SelectSlice\022\024.context." + "SliceFilter\032\022.context.SliceList\"\000\022D\n\021Lis" + "tConnectionIds\022\022.context.ServiceId\032\031.con" + "text.ConnectionIdList\"\000\022@\n\017ListConnectio" + "ns\022\022.context.ServiceId\032\027.context.Connect" + "ionList\"\000\022=\n\rGetConnection\022\025.context.Con" + "nectionId\032\023.context.Connection\"\000\022=\n\rSetC" + "onnection\022\023.context.Connection\032\025.context" + ".ConnectionId\"\000\022;\n\020RemoveConnection\022\025.co" + "ntext.ConnectionId\032\016.context.Empty\"\000\022C\n\023" + "GetConnectionEvents\022\016.context.Empty\032\030.co" + "ntext.ConnectionEvent\"\0000\001\022@\n\020GetOpticalC" + "onfig\022\016.context.Empty\032\032.context.OpticalC" + "onfigList\"\000\022F\n\020SetOpticalConfig\022\026.contex" + "t.OpticalConfig\032\030.context.OpticalConfigI" + "d\"\000\022I\n\023UpdateOpticalConfig\022\026.context.Opt" + "icalConfig\032\030.context.OpticalConfigId\"\000\022I" + "\n\023SelectOpticalConfig\022\030.context.OpticalC" + "onfigId\032\026.context.OpticalConfig\"\000\022A\n\023Del" + "eteOpticalConfig\022\030.context.OpticalConfig" + "Id\032\016.context.Empty\"\000\022@\n\024DeleteOpticalCha" + "nnel\022\026.context.OpticalConfig\032\016.context.E" + "mpty\"\000\0228\n\016SetOpticalLink\022\024.context.Optic" + "alLink\032\016.context.Empty\"\000\0229\n\016GetOpticalLi" + "nk\022\017.context.LinkId\032\024.context.OpticalLin" + "k\"\000\0226\n\021DeleteOpticalLink\022\017.context.LinkI" + "d\032\016.context.Empty\"\000\022@\n\022GetOpticalLinkLis" + "t\022\016.context.Empty\032\030.context.OpticalLinkL" + "ist\"\000\022G\n\027DeleteServiceConfigRule\022\032.conte" + "xt.ServiceConfigRule\032\016.context.Empty\"\000b\006" + "proto3" }; + java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\031google/protobu" + "f/any.proto\032\tacl.proto\032\026kpi_sample_types" + ".proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004uuid\030\001 \001(\t\"\036\n" + "\tTimestamp\022\021\n\ttimestamp\030\001 \001(\001\"Z\n\005Event\022%" + "\n\ttimestamp\030\001 \001(\0132\022.context.Timestamp\022*\n" + "\nevent_type\030\002 \001(\0162\026.context.EventTypeEnu" + "m\"0\n\tContextId\022#\n\014context_uuid\030\001 \001(\0132\r.c" + "ontext.Uuid\"\351\001\n\007Context\022&\n\ncontext_id\030\001 " + "\001(\0132\022.context.ContextId\022\014\n\004name\030\002 \001(\t\022)\n" + "\014topology_ids\030\003 \003(\0132\023.context.TopologyId" + "\022\'\n\013service_ids\030\004 \003(\0132\022.context.ServiceI" + "d\022#\n\tslice_ids\030\005 \003(\0132\020.context.SliceId\022/" + "\n\ncontroller\030\006 \001(\0132\033.context.TeraFlowCon" + "troller\"8\n\rContextIdList\022\'\n\013context_ids\030" + "\001 \003(\0132\022.context.ContextId\"1\n\013ContextList" + "\022\"\n\010contexts\030\001 \003(\0132\020.context.Context\"U\n\014" + "ContextEvent\022\035\n\005event\030\001 \001(\0132\016.context.Ev" + "ent\022&\n\ncontext_id\030\002 \001(\0132\022.context.Contex" + "tId\"Z\n\nTopologyId\022&\n\ncontext_id\030\001 \001(\0132\022." + "context.ContextId\022$\n\rtopology_uuid\030\002 \001(\013" + "2\r.context.Uuid\"\267\001\n\010Topology\022(\n\013topology" + "_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004name\030\002" + " \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021.context.Devic" + "eId\022!\n\010link_ids\030\004 \003(\0132\017.context.LinkId\022)" + "\n\020optical_link_ids\030\005 \003(\0132\017.context.LinkI" + "d\"\266\001\n\017TopologyDetails\022(\n\013topology_id\030\001 \001" + "(\0132\023.context.TopologyId\022\014\n\004name\030\002 \001(\t\022 \n" + "\007devices\030\003 \003(\0132\017.context.Device\022\034\n\005links" + "\030\004 \003(\0132\r.context.Link\022+\n\roptical_links\030\005" + " \003(\0132\024.context.OpticalLink\";\n\016TopologyId" + "List\022)\n\014topology_ids\030\001 \003(\0132\023.context.Top" + "ologyId\"5\n\014TopologyList\022%\n\ntopologies\030\001 " + "\003(\0132\021.context.Topology\"X\n\rTopologyEvent\022" + "\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013topolo" + "gy_id\030\002 \001(\0132\023.context.TopologyId\".\n\010Devi" + "ceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context.Uuid" + "\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.context" + ".DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_type\030\003" + " \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.context.De" + "viceConfig\022G\n\031device_operational_status\030" + "\005 \001(\0162$.context.DeviceOperationalStatusE" + "num\0221\n\016device_drivers\030\006 \003(\0162\031.context.De" + "viceDriverEnum\022+\n\020device_endpoints\030\007 \003(\013" + "2\021.context.EndPoint\022&\n\ncomponents\030\010 \003(\0132" + "\022.context.Component\022(\n\rcontroller_id\030\t \001" + "(\0132\021.context.DeviceId\"\311\001\n\tComponent\022%\n\016c" + "omponent_uuid\030\001 \001(\0132\r.context.Uuid\022\014\n\004na" + "me\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattributes\030\004 \003" + "(\0132\".context.Component.AttributesEntry\022\016" + "\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013\n\003key" + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014DeviceConfi" + "g\022)\n\014config_rules\030\001 \003(\0132\023.context.Config" + "Rule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030\001 \003(\013" + "2\021.context.DeviceId\".\n\nDeviceList\022 \n\007dev" + "ices\030\001 \003(\0132\017.context.Device\"\216\001\n\014DeviceFi" + "lter\022)\n\ndevice_ids\030\001 \001(\0132\025.context.Devic" + "eIdList\022\031\n\021include_endpoints\030\002 \001(\010\022\034\n\024in" + "clude_config_rules\030\003 \001(\010\022\032\n\022include_comp" + "onents\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005event\030\001 " + "\001(\0132\016.context.Event\022$\n\tdevice_id\030\002 \001(\0132\021" + ".context.DeviceId\022,\n\rdevice_config\030\003 \001(\013" + "2\025.context.DeviceConfig\"*\n\006LinkId\022 \n\tlin" + "k_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016LinkAttri" + "butes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022\032\n\022us" + "ed_capacity_gbps\030\002 \001(\002\"\275\001\n\004Link\022 \n\007link_" + "id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002 \001(\t\022" + "(\n\tlink_type\030\003 \001(\0162\025.context.LinkTypeEnu" + "m\022.\n\021link_endpoint_ids\030\004 \003(\0132\023.context.E" + "ndPointId\022+\n\nattributes\030\005 \001(\0132\027.context." + "LinkAttributes\"/\n\nLinkIdList\022!\n\010link_ids" + "\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034\n\005l" + "inks\030\001 \003(\0132\r.context.Link\"L\n\tLinkEvent\022\035" + "\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link_id" + "\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022#\n\014" + "service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n\007Se" + "rvice\022&\n\nservice_id\030\001 \001(\0132\022.context.Serv" + "iceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003 \001(" + "\0162\030.context.ServiceTypeEnum\0221\n\024service_e" + "ndpoint_ids\030\004 \003(\0132\023.context.EndPointId\0220" + "\n\023service_constraints\030\005 \003(\0132\023.context.Co" + "nstraint\022.\n\016service_status\030\006 \001(\0132\026.conte" + "xt.ServiceStatus\022.\n\016service_config\030\007 \001(\013" + "2\026.context.ServiceConfig\022%\n\ttimestamp\030\010 " + "\001(\0132\022.context.Timestamp\"C\n\rServiceStatus" + "\0222\n\016service_status\030\001 \001(\0162\032.context.Servi" + "ceStatusEnum\":\n\rServiceConfig\022)\n\014config_" + "rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rServ" + "iceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.context" + ".ServiceId\"1\n\013ServiceList\022\"\n\010services\030\001 " + "\003(\0132\020.context.Service\"\225\001\n\rServiceFilter\022" + "+\n\013service_ids\030\001 \001(\0132\026.context.ServiceId" + "List\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n\023in" + "clude_constraints\030\003 \001(\010\022\034\n\024include_confi" + "g_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005event\030\001" + " \001(\0132\016.context.Event\022&\n\nservice_id\030\002 \001(\013" + "2\022.context.ServiceId\"T\n\007SliceId\022&\n\nconte" + "xt_id\030\001 \001(\0132\022.context.ContextId\022!\n\nslice" + "_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022\"\n\010" + "slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004name" + "\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023.con" + "text.EndPointId\022.\n\021slice_constraints\030\004 \003" + "(\0132\023.context.Constraint\022-\n\021slice_service" + "_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022slice_" + "subslice_ids\030\006 \003(\0132\020.context.SliceId\022*\n\014" + "slice_status\030\007 \001(\0132\024.context.SliceStatus" + "\022*\n\014slice_config\030\010 \001(\0132\024.context.SliceCo" + "nfig\022(\n\013slice_owner\030\t \001(\0132\023.context.Slic" + "eOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.Time" + "stamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001(\0132" + "\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"=\n\013" + "SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.cont" + "ext.SliceStatusEnum\"8\n\013SliceConfig\022)\n\014co" + "nfig_rules\030\001 \003(\0132\023.context.ConfigRule\"2\n" + "\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.contex" + "t.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(\0132\016" + ".context.Slice\"\312\001\n\013SliceFilter\022\'\n\tslice_" + "ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024inclu" + "de_endpoint_ids\030\002 \001(\010\022\033\n\023include_constra" + "ints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001(\010\022" + "\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024include" + "_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030\002 \001" + "(\0132\020.context.SliceId\"6\n\014ConnectionId\022&\n\017" + "connection_uuid\030\001 \001(\0132\r.context.Uuid\"2\n\025" + "ConnectionSettings_L0\022\031\n\021lsp_symbolic_na" + "me\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n\017sr" + "c_mac_address\030\001 \001(\t\022\027\n\017dst_mac_address\030\002" + " \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004 \001(" + "\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic_cl" + "ass\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n\016sr" + "c_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030\002 \001" + "(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n\003tt" + "l\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010src_" + "port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_flag" + "s\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSetti" + "ngs\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionSett" + "ings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connection" + "Settings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Connec" + "tionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context.Co" + "nnectionSettings_L4\"\363\001\n\nConnection\022,\n\rco" + "nnection_id\030\001 \001(\0132\025.context.ConnectionId" + "\022&\n\nservice_id\030\002 \001(\0132\022.context.ServiceId" + "\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.conte" + "xt.EndPointId\022+\n\017sub_service_ids\030\004 \003(\0132\022" + ".context.ServiceId\022-\n\010settings\030\005 \001(\0132\033.c" + "ontext.ConnectionSettings\"A\n\020ConnectionI" + "dList\022-\n\016connection_ids\030\001 \003(\0132\025.context." + "ConnectionId\":\n\016ConnectionList\022(\n\013connec" + "tions\030\001 \003(\0132\023.context.Connection\"^\n\017Conn" + "ectionEvent\022\035\n\005event\030\001 \001(\0132\016.context.Eve" + "nt\022,\n\rconnection_id\030\002 \001(\0132\025.context.Conn" + "ectionId\"\202\001\n\nEndPointId\022(\n\013topology_id\030\001" + " \001(\0132\023.context.TopologyId\022$\n\tdevice_id\030\002" + " \001(\0132\021.context.DeviceId\022$\n\rendpoint_uuid" + "\030\003 \001(\0132\r.context.Uuid\"\310\002\n\010EndPoint\022(\n\013en" + "dpoint_id\030\001 \001(\0132\023.context.EndPointId\022\014\n\004" + "name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020kpi" + "_sample_types\030\004 \003(\0162\037.kpi_sample_types.K" + "piSampleType\022,\n\021endpoint_location\030\005 \001(\0132" + "\021.context.Location\0229\n\014capabilities\030\006 \003(\013" + "2#.context.EndPoint.CapabilitiesEntry\032I\n" + "\021CapabilitiesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value" + "\030\002 \001(\0132\024.google.protobuf.Any:\0028\001\"{\n\014EndP" + "ointName\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022\023\n\013device_name\030\002 \001(\t\022\025\n\rendpo" + "int_name\030\003 \001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n" + "\016EndPointIdList\022)\n\014endpoint_ids\030\001 \003(\0132\023." + "context.EndPointId\"A\n\020EndPointNameList\022-" + "\n\016endpoint_names\030\001 \003(\0132\025.context.EndPoin" + "tName\"A\n\021ConfigRule_Custom\022\024\n\014resource_k" + "ey\030\001 \001(\t\022\026\n\016resource_value\030\002 \001(\t\"]\n\016Conf" + "igRule_ACL\022(\n\013endpoint_id\030\001 \001(\0132\023.contex" + "t.EndPointId\022!\n\010rule_set\030\002 \001(\0132\017.acl.Acl" + "RuleSet\"\234\001\n\nConfigRule\022)\n\006action\030\001 \001(\0162\031" + ".context.ConfigActionEnum\022,\n\006custom\030\002 \001(" + "\0132\032.context.ConfigRule_CustomH\000\022&\n\003acl\030\003" + " \001(\0132\027.context.ConfigRule_ACLH\000B\r\n\013confi" + "g_rule\"F\n\021Constraint_Custom\022\027\n\017constrain" + "t_type\030\001 \001(\t\022\030\n\020constraint_value\030\002 \001(\t\"E" + "\n\023Constraint_Schedule\022\027\n\017start_timestamp" + "\030\001 \001(\001\022\025\n\rduration_days\030\002 \001(\002\"3\n\014GPS_Pos" + "ition\022\020\n\010latitude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001" + "(\002\"\204\001\n\010Location\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps" + "_position\030\002 \001(\0132\025.context.GPS_PositionH\000" + "\022\023\n\tinterface\030\003 \001(\tH\000\022\026\n\014circuit_pack\030\004 " + "\001(\tH\000B\n\n\010location\"l\n\033Constraint_EndPoint" + "Location\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022#\n\010location\030\002 \001(\0132\021.context.L" + "ocation\"Y\n\033Constraint_EndPointPriority\022(" + "\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointId" + "\022\020\n\010priority\030\002 \001(\r\"0\n\026Constraint_SLA_Lat" + "ency\022\026\n\016e2e_latency_ms\030\001 \001(\002\"0\n\027Constrai" + "nt_SLA_Capacity\022\025\n\rcapacity_gbps\030\001 \001(\002\"c" + "\n\033Constraint_SLA_Availability\022\032\n\022num_dis" + "joint_paths\030\001 \001(\r\022\022\n\nall_active\030\002 \001(\010\022\024\n" + "\014availability\030\003 \001(\002\"V\n\036Constraint_SLA_Is" + "olation_level\0224\n\017isolation_level\030\001 \003(\0162\033" + ".context.IsolationLevelEnum\"\242\001\n\025Constrai" + "nt_Exclusions\022\024\n\014is_permanent\030\001 \001(\010\022%\n\nd" + "evice_ids\030\002 \003(\0132\021.context.DeviceId\022)\n\014en" + "dpoint_ids\030\003 \003(\0132\023.context.EndPointId\022!\n" + "\010link_ids\030\004 \003(\0132\017.context.LinkId\"5\n\014QoSP" + "rofileId\022%\n\016qos_profile_id\030\001 \001(\0132\r.conte" + "xt.Uuid\"`\n\025Constraint_QoSProfile\022-\n\016qos_" + "profile_id\030\001 \001(\0132\025.context.QoSProfileId\022" + "\030\n\020qos_profile_name\030\002 \001(\t\"\222\005\n\nConstraint" + "\022-\n\006action\030\001 \001(\0162\035.context.ConstraintAct" + "ionEnum\022,\n\006custom\030\002 \001(\0132\032.context.Constr" + "aint_CustomH\000\0220\n\010schedule\030\003 \001(\0132\034.contex" + "t.Constraint_ScheduleH\000\022A\n\021endpoint_loca" + "tion\030\004 \001(\0132$.context.Constraint_EndPoint" + "LocationH\000\022A\n\021endpoint_priority\030\005 \001(\0132$." + "context.Constraint_EndPointPriorityH\000\0228\n" + "\014sla_capacity\030\006 \001(\0132 .context.Constraint" + "_SLA_CapacityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.c" + "ontext.Constraint_SLA_LatencyH\000\022@\n\020sla_a" + "vailability\030\010 \001(\0132$.context.Constraint_S" + "LA_AvailabilityH\000\022@\n\rsla_isolation\030\t \001(\013" + "2\'.context.Constraint_SLA_Isolation_leve" + "lH\000\0224\n\nexclusions\030\n \001(\0132\036.context.Constr" + "aint_ExclusionsH\000\0225\n\013qos_profile\030\013 \001(\0132\036" + ".context.Constraint_QoSProfileH\000B\014\n\ncons" + "traint\"^\n\022TeraFlowController\022&\n\ncontext_" + "id\030\001 \001(\0132\022.context.ContextId\022\022\n\nip_addre" + "ss\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024Authentication" + "Result\022&\n\ncontext_id\030\001 \001(\0132\022.context.Con" + "textId\022\025\n\rauthenticated\030\002 \001(\010\"-\n\017Optical" + "ConfigId\022\032\n\022opticalconfig_uuid\030\001 \001(\t\"y\n\r" + "OpticalConfig\0222\n\020opticalconfig_id\030\001 \001(\0132" + "\030.context.OpticalConfigId\022\016\n\006config\030\002 \001(" + "\t\022$\n\tdevice_id\030\003 \001(\0132\021.context.DeviceId\"" + "C\n\021OpticalConfigList\022.\n\016opticalconfigs\030\001" + " \003(\0132\026.context.OpticalConfig\"g\n\022OpticalC" + "onfigEvent\022\035\n\005event\030\001 \001(\0132\016.context.Even" + "t\0222\n\020opticalconfig_id\030\002 \001(\0132\030.context.Op" + "ticalConfigId\"_\n\021OpticalEndPointId\022$\n\tde" + "vice_id\030\002 \001(\0132\021.context.DeviceId\022$\n\rendp" + "oint_uuid\030\003 \001(\0132\r.context.Uuid\">\n\017Optica" + "lLinkList\022+\n\roptical_links\030\001 \003(\0132\024.conte" + "xt.OpticalLink\"\304\003\n\022OpticalLinkDetails\022\016\n" + "\006length\030\001 \001(\002\022\020\n\010src_port\030\002 \001(\t\022\020\n\010dst_p" + "ort\030\003 \001(\t\022\027\n\017local_peer_port\030\004 \001(\t\022\030\n\020re" + "mote_peer_port\030\005 \001(\t\022\014\n\004used\030\006 \001(\010\0228\n\007c_" + "slots\030\007 \003(\0132\'.context.OpticalLinkDetails" + ".CSlotsEntry\0228\n\007l_slots\030\010 \003(\0132\'.context." + "OpticalLinkDetails.LSlotsEntry\0228\n\007s_slot" + "s\030\t \003(\0132\'.context.OpticalLinkDetails.SSl" + "otsEntry\032-\n\013CSlotsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\005:\0028\001\032-\n\013LSlotsEntry\022\013\n\003key\030\001 " + "\001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032-\n\013SSlotsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\"\243\001\n\013Optica" + "lLink\022\014\n\004name\030\001 \001(\t\0224\n\017optical_details\030\002" + " \001(\0132\033.context.OpticalLinkDetails\022 \n\007lin" + "k_id\030\003 \001(\0132\017.context.LinkId\022.\n\021link_endp" + "oint_ids\030\004 \003(\0132\023.context.EndPointId\"r\n\021S" + "erviceConfigRule\022&\n\nservice_id\030\001 \001(\0132\022.c" + "ontext.ServiceId\0225\n\021configrule_custom\030\002 " + "\001(\0132\032.context.ConfigRule_Custom*j\n\rEvent" + "TypeEnum\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EVE" + "NTTYPE_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024\n" + "\020EVENTTYPE_REMOVE\020\003*\204\004\n\020DeviceDriverEnum" + "\022\032\n\026DEVICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICEDR" + "IVER_OPENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANSP" + "ORT_API\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVICE" + "DRIVER_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVICE" + "DRIVER_ONF_TR_532\020\005\022\023\n\017DEVICEDRIVER_XR\020\006" + "\022\033\n\027DEVICEDRIVER_IETF_L2VPN\020\007\022 \n\034DEVICED" + "RIVER_GNMI_OPENCONFIG\020\010\022\034\n\030DEVICEDRIVER_" + "OPTICAL_TFS\020\t\022\032\n\026DEVICEDRIVER_IETF_ACTN\020" + "\n\022\023\n\017DEVICEDRIVER_OC\020\013\022\024\n\020DEVICEDRIVER_Q" + "KD\020\014\022\033\n\027DEVICEDRIVER_IETF_L3VPN\020\r\022\033\n\027DEV" + "ICEDRIVER_IETF_SLICE\020\016\022\024\n\020DEVICEDRIVER_N" + "CE\020\017\022\031\n\025DEVICEDRIVER_SMARTNIC\020\020\022\031\n\025DEVIC" + "EDRIVER_MORPHEUS\020\021*\217\001\n\033DeviceOperational" + "StatusEnum\022%\n!DEVICEOPERATIONALSTATUS_UN" + "DEFINED\020\000\022$\n DEVICEOPERATIONALSTATUS_DIS" + "ABLED\020\001\022#\n\037DEVICEOPERATIONALSTATUS_ENABL" + "ED\020\002*\220\001\n\014LinkTypeEnum\022\024\n\020LINKTYPE_UNKNOW" + "N\020\000\022\023\n\017LINKTYPE_COPPER\020\001\022\022\n\016LINKTYPE_FIB" + "ER\020\002\022\022\n\016LINKTYPE_RADIO\020\003\022\024\n\020LINKTYPE_VIR" + "TUAL\020\004\022\027\n\023LINKTYPE_MANAGEMENT\020\005*\245\002\n\017Serv" + "iceTypeEnum\022\027\n\023SERVICETYPE_UNKNOWN\020\000\022\024\n\020" + "SERVICETYPE_L3NM\020\001\022\024\n\020SERVICETYPE_L2NM\020\002" + "\022)\n%SERVICETYPE_TAPI_CONNECTIVITY_SERVIC" + "E\020\003\022\022\n\016SERVICETYPE_TE\020\004\022\023\n\017SERVICETYPE_E" + "2E\020\005\022$\n SERVICETYPE_OPTICAL_CONNECTIVITY" + "\020\006\022\023\n\017SERVICETYPE_QKD\020\007\022\024\n\020SERVICETYPE_L" + "1NM\020\010\022\023\n\017SERVICETYPE_INT\020\t\022\023\n\017SERVICETYP" + "E_ACL\020\n*\304\001\n\021ServiceStatusEnum\022\033\n\027SERVICE" + "STATUS_UNDEFINED\020\000\022\031\n\025SERVICESTATUS_PLAN" + "NED\020\001\022\030\n\024SERVICESTATUS_ACTIVE\020\002\022\032\n\026SERVI" + "CESTATUS_UPDATING\020\003\022!\n\035SERVICESTATUS_PEN" + "DING_REMOVAL\020\004\022\036\n\032SERVICESTATUS_SLA_VIOL" + "ATED\020\005*\251\001\n\017SliceStatusEnum\022\031\n\025SLICESTATU" + "S_UNDEFINED\020\000\022\027\n\023SLICESTATUS_PLANNED\020\001\022\024" + "\n\020SLICESTATUS_INIT\020\002\022\026\n\022SLICESTATUS_ACTI" + "VE\020\003\022\026\n\022SLICESTATUS_DEINIT\020\004\022\034\n\030SLICESTA" + "TUS_SLA_VIOLATED\020\005*]\n\020ConfigActionEnum\022\032" + "\n\026CONFIGACTION_UNDEFINED\020\000\022\024\n\020CONFIGACTI" + "ON_SET\020\001\022\027\n\023CONFIGACTION_DELETE\020\002*m\n\024Con" + "straintActionEnum\022\036\n\032CONSTRAINTACTION_UN" + "DEFINED\020\000\022\030\n\024CONSTRAINTACTION_SET\020\001\022\033\n\027C" + "ONSTRAINTACTION_DELETE\020\002*\203\002\n\022IsolationLe" + "velEnum\022\020\n\014NO_ISOLATION\020\000\022\026\n\022PHYSICAL_IS" + "OLATION\020\001\022\025\n\021LOGICAL_ISOLATION\020\002\022\025\n\021PROC" + "ESS_ISOLATION\020\003\022\035\n\031PHYSICAL_MEMORY_ISOLA" + "TION\020\004\022\036\n\032PHYSICAL_NETWORK_ISOLATION\020\005\022\036" + "\n\032VIRTUAL_RESOURCE_ISOLATION\020\006\022\037\n\033NETWOR" + "K_FUNCTIONS_ISOLATION\020\007\022\025\n\021SERVICE_ISOLA" + "TION\020\0102\202\034\n\016ContextService\022:\n\016ListContext" + "Ids\022\016.context.Empty\032\026.context.ContextIdL" + "ist\"\000\0226\n\014ListContexts\022\016.context.Empty\032\024." + "context.ContextList\"\000\0224\n\nGetContext\022\022.co" + "ntext.ContextId\032\020.context.Context\"\000\0224\n\nS" + "etContext\022\020.context.Context\032\022.context.Co" + "ntextId\"\000\0225\n\rRemoveContext\022\022.context.Con" + "textId\032\016.context.Empty\"\000\022=\n\020GetContextEv" + "ents\022\016.context.Empty\032\025.context.ContextEv" + "ent\"\0000\001\022@\n\017ListTopologyIds\022\022.context.Con" + "textId\032\027.context.TopologyIdList\"\000\022=\n\016Lis" + "tTopologies\022\022.context.ContextId\032\025.contex" + "t.TopologyList\"\000\0227\n\013GetTopology\022\023.contex" + "t.TopologyId\032\021.context.Topology\"\000\022E\n\022Get" + "TopologyDetails\022\023.context.TopologyId\032\030.c" + "ontext.TopologyDetails\"\000\0227\n\013SetTopology\022" + "\021.context.Topology\032\023.context.TopologyId\"" + "\000\0227\n\016RemoveTopology\022\023.context.TopologyId" + "\032\016.context.Empty\"\000\022?\n\021GetTopologyEvents\022" + "\016.context.Empty\032\026.context.TopologyEvent\"" + "\0000\001\0228\n\rListDeviceIds\022\016.context.Empty\032\025.c" + "ontext.DeviceIdList\"\000\0224\n\013ListDevices\022\016.c" + "ontext.Empty\032\023.context.DeviceList\"\000\0221\n\tG" + "etDevice\022\021.context.DeviceId\032\017.context.De" + "vice\"\000\0221\n\tSetDevice\022\017.context.Device\032\021.c" + "ontext.DeviceId\"\000\0223\n\014RemoveDevice\022\021.cont" + "ext.DeviceId\032\016.context.Empty\"\000\022;\n\017GetDev" + "iceEvents\022\016.context.Empty\032\024.context.Devi" + "ceEvent\"\0000\001\022<\n\014SelectDevice\022\025.context.De" + "viceFilter\032\023.context.DeviceList\"\000\022I\n\021Lis" + "tEndPointNames\022\027.context.EndPointIdList\032" + "\031.context.EndPointNameList\"\000\0224\n\013ListLink" + "Ids\022\016.context.Empty\032\023.context.LinkIdList" + "\"\000\0220\n\tListLinks\022\016.context.Empty\032\021.contex" + "t.LinkList\"\000\022+\n\007GetLink\022\017.context.LinkId" + "\032\r.context.Link\"\000\022+\n\007SetLink\022\r.context.L" + "ink\032\017.context.LinkId\"\000\022/\n\nRemoveLink\022\017.c" + "ontext.LinkId\032\016.context.Empty\"\000\0227\n\rGetLi" + "nkEvents\022\016.context.Empty\032\022.context.LinkE" + "vent\"\0000\001\022>\n\016ListServiceIds\022\022.context.Con" + "textId\032\026.context.ServiceIdList\"\000\022:\n\014List" + "Services\022\022.context.ContextId\032\024.context.S" + "erviceList\"\000\0224\n\nGetService\022\022.context.Ser" + "viceId\032\020.context.Service\"\000\0224\n\nSetService" + "\022\020.context.Service\032\022.context.ServiceId\"\000" + "\0226\n\014UnsetService\022\020.context.Service\032\022.con" + "text.ServiceId\"\000\0225\n\rRemoveService\022\022.cont" + "ext.ServiceId\032\016.context.Empty\"\000\022=\n\020GetSe" + "rviceEvents\022\016.context.Empty\032\025.context.Se" + "rviceEvent\"\0000\001\022?\n\rSelectService\022\026.contex" + "t.ServiceFilter\032\024.context.ServiceList\"\000\022" + ":\n\014ListSliceIds\022\022.context.ContextId\032\024.co" + "ntext.SliceIdList\"\000\0226\n\nListSlices\022\022.cont" + "ext.ContextId\032\022.context.SliceList\"\000\022.\n\010G" + "etSlice\022\020.context.SliceId\032\016.context.Slic" + "e\"\000\022.\n\010SetSlice\022\016.context.Slice\032\020.contex" + "t.SliceId\"\000\0220\n\nUnsetSlice\022\016.context.Slic" + "e\032\020.context.SliceId\"\000\0221\n\013RemoveSlice\022\020.c" + "ontext.SliceId\032\016.context.Empty\"\000\0229\n\016GetS" + "liceEvents\022\016.context.Empty\032\023.context.Sli" + "ceEvent\"\0000\001\0229\n\013SelectSlice\022\024.context.Sli" + "ceFilter\032\022.context.SliceList\"\000\022D\n\021ListCo" + "nnectionIds\022\022.context.ServiceId\032\031.contex" + "t.ConnectionIdList\"\000\022@\n\017ListConnections\022" + "\022.context.ServiceId\032\027.context.Connection" + "List\"\000\022=\n\rGetConnection\022\025.context.Connec" + "tionId\032\023.context.Connection\"\000\022=\n\rSetConn" + "ection\022\023.context.Connection\032\025.context.Co" + "nnectionId\"\000\022;\n\020RemoveConnection\022\025.conte" + "xt.ConnectionId\032\016.context.Empty\"\000\022C\n\023Get" + "ConnectionEvents\022\016.context.Empty\032\030.conte" + "xt.ConnectionEvent\"\0000\001\022@\n\020GetOpticalConf" + "ig\022\016.context.Empty\032\032.context.OpticalConf" + "igList\"\000\022F\n\020SetOpticalConfig\022\026.context.O" + "pticalConfig\032\030.context.OpticalConfigId\"\000" + "\022I\n\023UpdateOpticalConfig\022\026.context.Optica" + "lConfig\032\030.context.OpticalConfigId\"\000\022I\n\023S" + "electOpticalConfig\022\030.context.OpticalConf" + "igId\032\026.context.OpticalConfig\"\000\022A\n\023Delete" + "OpticalConfig\022\030.context.OpticalConfigId\032" + "\016.context.Empty\"\000\022@\n\024DeleteOpticalChanne" + "l\022\026.context.OpticalConfig\032\016.context.Empt" + "y\"\000\0228\n\016SetOpticalLink\022\024.context.OpticalL" + "ink\032\016.context.Empty\"\000\0229\n\016GetOpticalLink\022" + "\017.context.LinkId\032\024.context.OpticalLink\"\000" + "\0226\n\021DeleteOpticalLink\022\017.context.LinkId\032\016" + ".context.Empty\"\000\022@\n\022GetOpticalLinkList\022\016" + ".context.Empty\032\030.context.OpticalLinkList" + "\"\000\022G\n\027DeleteServiceConfigRule\022\032.context." + "ServiceConfigRule\032\016.context.Empty\"\000b\006pro", "to3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.AnyProto.getDescriptor(), acl.Acl.getDescriptor(), kpi_sample_types.KpiSampleTypes.getDescriptor() }); internal_static_context_Empty_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_context_Empty_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Empty_descriptor, new java.lang.String[] {}); 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 2a8a62593..0c98ddbb4 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 @@ -127,6 +127,94 @@ public final class KpiSampleTypes { * KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT = 1701; */ KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT(1701), + /** + *
+         * INT KPIs
+         * 
+ * + * KPISAMPLETYPE_INT_SEQ_NUM = 2001; + */ + KPISAMPLETYPE_INT_SEQ_NUM(2001), + /** + * KPISAMPLETYPE_INT_TS_ING = 2002; + */ + KPISAMPLETYPE_INT_TS_ING(2002), + /** + * KPISAMPLETYPE_INT_TS_EGR = 2003; + */ + KPISAMPLETYPE_INT_TS_EGR(2003), + /** + * KPISAMPLETYPE_INT_HOP_LAT = 2004; + */ + KPISAMPLETYPE_INT_HOP_LAT(2004), + /** + * KPISAMPLETYPE_INT_PORT_ID_ING = 2005; + */ + KPISAMPLETYPE_INT_PORT_ID_ING(2005), + /** + * KPISAMPLETYPE_INT_PORT_ID_EGR = 2006; + */ + KPISAMPLETYPE_INT_PORT_ID_EGR(2006), + /** + * KPISAMPLETYPE_INT_QUEUE_OCCUP = 2007; + */ + KPISAMPLETYPE_INT_QUEUE_OCCUP(2007), + /** + * KPISAMPLETYPE_INT_QUEUE_ID = 2008; + */ + KPISAMPLETYPE_INT_QUEUE_ID(2008), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW01 = 2101; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW01(2101), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW02 = 2102; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW02(2102), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW03 = 2103; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW03(2103), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW04 = 2104; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW04(2104), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW05 = 2105; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW05(2105), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW06 = 2106; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW06(2106), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW07 = 2107; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW07(2107), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW08 = 2108; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW08(2108), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW09 = 2109; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW09(2109), + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW10 = 2110; + */ + KPISAMPLETYPE_INT_HOP_LAT_SW10(2110), + /** + * KPISAMPLETYPE_INT_LAT_ON_TOTAL = 2120; + */ + KPISAMPLETYPE_INT_LAT_ON_TOTAL(2120), + /** + * KPISAMPLETYPE_INT_IS_DROP = 2201; + */ + KPISAMPLETYPE_INT_IS_DROP(2201), + /** + * KPISAMPLETYPE_INT_DROP_REASON = 2202; + */ + KPISAMPLETYPE_INT_DROP_REASON(2202), UNRECOGNIZED(-1); /** @@ -261,6 +349,115 @@ public final class KpiSampleTypes { */ public static final int KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT_VALUE = 1701; + /** + *
+         * INT KPIs
+         * 
+ * + * KPISAMPLETYPE_INT_SEQ_NUM = 2001; + */ + public static final int KPISAMPLETYPE_INT_SEQ_NUM_VALUE = 2001; + + /** + * KPISAMPLETYPE_INT_TS_ING = 2002; + */ + public static final int KPISAMPLETYPE_INT_TS_ING_VALUE = 2002; + + /** + * KPISAMPLETYPE_INT_TS_EGR = 2003; + */ + public static final int KPISAMPLETYPE_INT_TS_EGR_VALUE = 2003; + + /** + * KPISAMPLETYPE_INT_HOP_LAT = 2004; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_VALUE = 2004; + + /** + * KPISAMPLETYPE_INT_PORT_ID_ING = 2005; + */ + public static final int KPISAMPLETYPE_INT_PORT_ID_ING_VALUE = 2005; + + /** + * KPISAMPLETYPE_INT_PORT_ID_EGR = 2006; + */ + public static final int KPISAMPLETYPE_INT_PORT_ID_EGR_VALUE = 2006; + + /** + * KPISAMPLETYPE_INT_QUEUE_OCCUP = 2007; + */ + public static final int KPISAMPLETYPE_INT_QUEUE_OCCUP_VALUE = 2007; + + /** + * KPISAMPLETYPE_INT_QUEUE_ID = 2008; + */ + public static final int KPISAMPLETYPE_INT_QUEUE_ID_VALUE = 2008; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW01 = 2101; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW01_VALUE = 2101; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW02 = 2102; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW02_VALUE = 2102; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW03 = 2103; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW03_VALUE = 2103; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW04 = 2104; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW04_VALUE = 2104; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW05 = 2105; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW05_VALUE = 2105; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW06 = 2106; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW06_VALUE = 2106; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW07 = 2107; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW07_VALUE = 2107; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW08 = 2108; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW08_VALUE = 2108; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW09 = 2109; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW09_VALUE = 2109; + + /** + * KPISAMPLETYPE_INT_HOP_LAT_SW10 = 2110; + */ + public static final int KPISAMPLETYPE_INT_HOP_LAT_SW10_VALUE = 2110; + + /** + * KPISAMPLETYPE_INT_LAT_ON_TOTAL = 2120; + */ + public static final int KPISAMPLETYPE_INT_LAT_ON_TOTAL_VALUE = 2120; + + /** + * KPISAMPLETYPE_INT_IS_DROP = 2201; + */ + public static final int KPISAMPLETYPE_INT_IS_DROP_VALUE = 2201; + + /** + * KPISAMPLETYPE_INT_DROP_REASON = 2202; + */ + public static final int KPISAMPLETYPE_INT_DROP_REASON_VALUE = 2202; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -332,6 +529,48 @@ public final class KpiSampleTypes { return KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT; case 1701: return KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT; + case 2001: + return KPISAMPLETYPE_INT_SEQ_NUM; + case 2002: + return KPISAMPLETYPE_INT_TS_ING; + case 2003: + return KPISAMPLETYPE_INT_TS_EGR; + case 2004: + return KPISAMPLETYPE_INT_HOP_LAT; + case 2005: + return KPISAMPLETYPE_INT_PORT_ID_ING; + case 2006: + return KPISAMPLETYPE_INT_PORT_ID_EGR; + case 2007: + return KPISAMPLETYPE_INT_QUEUE_OCCUP; + case 2008: + return KPISAMPLETYPE_INT_QUEUE_ID; + case 2101: + return KPISAMPLETYPE_INT_HOP_LAT_SW01; + case 2102: + return KPISAMPLETYPE_INT_HOP_LAT_SW02; + case 2103: + return KPISAMPLETYPE_INT_HOP_LAT_SW03; + case 2104: + return KPISAMPLETYPE_INT_HOP_LAT_SW04; + case 2105: + return KPISAMPLETYPE_INT_HOP_LAT_SW05; + case 2106: + return KPISAMPLETYPE_INT_HOP_LAT_SW06; + case 2107: + return KPISAMPLETYPE_INT_HOP_LAT_SW07; + case 2108: + return KPISAMPLETYPE_INT_HOP_LAT_SW08; + case 2109: + return KPISAMPLETYPE_INT_HOP_LAT_SW09; + case 2110: + return KPISAMPLETYPE_INT_HOP_LAT_SW10; + case 2120: + return KPISAMPLETYPE_INT_LAT_ON_TOTAL; + case 2201: + return KPISAMPLETYPE_INT_IS_DROP; + case 2202: + return KPISAMPLETYPE_INT_DROP_REASON; default: return null; } @@ -389,7 +628,7 @@ public final class KpiSampleTypes { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\026kpi_sample_types.proto\022\020kpi_sample_typ" + "es*\200\010\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + "KNOWN\020\000\022%\n!KPISAMPLETYPE_PACKETS_TRANSMI" + "TTED\020e\022\"\n\036KPISAMPLETYPE_PACKETS_RECEIVED" + "\020f\022!\n\035KPISAMPLETYPE_PACKETS_DROPPED\020g\022$\n" + "\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001\022!\n\034K" + "PISAMPLETYPE_BYTES_RECEIVED\020\312\001\022 \n\033KPISAM" + "PLETYPE_BYTES_DROPPED\020\313\001\022+\n&KPISAMPLETYP" + "E_LINK_TOTAL_CAPACITY_GBPS\020\255\002\022*\n%KPISAMP" + "LETYPE_LINK_USED_CAPACITY_GBPS\020\256\002\022 \n\033KPI" + "SAMPLETYPE_ML_CONFIDENCE\020\221\003\022*\n%KPISAMPLE" + "TYPE_OPTICAL_SECURITY_STATUS\020\365\003\022)\n$KPISA" + "MPLETYPE_L3_UNIQUE_ATTACK_CONNS\020\331\004\022*\n%KP" + "ISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS\020\332\004\022&" + "\n!KPISAMPLETYPE_L3_UNIQUE_ATTACKERS\020\333\004\0220" + "\n+KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CL" + "IENTS\020\334\004\022,\n\'KPISAMPLETYPE_L3_SECURITY_ST" + "ATUS_CRYPTO\020\335\004\022%\n KPISAMPLETYPE_SERVICE_" + "LATENCY_MS\020\275\005\0221\n,KPISAMPLETYPE_PACKETS_T" + "RANSMITTED_AGG_OUTPUT\020\315\010\022.\n)KPISAMPLETYP" + "E_PACKETS_RECEIVED_AGG_OUTPUT\020\316\010\022-\n(KPIS" + "AMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT\020\317\010\022" + "/\n*KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_O" + "UTPUT\020\261\t\022,\n\'KPISAMPLETYPE_BYTES_RECEIVED" + "_AGG_OUTPUT\020\262\t\022+\n&KPISAMPLETYPE_BYTES_DR" + "OPPED_AGG_OUTPUT\020\263\t\0220\n+KPISAMPLETYPE_SER" + "VICE_LATENCY_MS_AGG_OUTPUT\020\245\rb\006proto3" }; + java.lang.String[] descriptorData = { "\n\026kpi_sample_types.proto\022\020kpi_sample_typ" + "es*\346\r\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + "KNOWN\020\000\022%\n!KPISAMPLETYPE_PACKETS_TRANSMI" + "TTED\020e\022\"\n\036KPISAMPLETYPE_PACKETS_RECEIVED" + "\020f\022!\n\035KPISAMPLETYPE_PACKETS_DROPPED\020g\022$\n" + "\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001\022!\n\034K" + "PISAMPLETYPE_BYTES_RECEIVED\020\312\001\022 \n\033KPISAM" + "PLETYPE_BYTES_DROPPED\020\313\001\022+\n&KPISAMPLETYP" + "E_LINK_TOTAL_CAPACITY_GBPS\020\255\002\022*\n%KPISAMP" + "LETYPE_LINK_USED_CAPACITY_GBPS\020\256\002\022 \n\033KPI" + "SAMPLETYPE_ML_CONFIDENCE\020\221\003\022*\n%KPISAMPLE" + "TYPE_OPTICAL_SECURITY_STATUS\020\365\003\022)\n$KPISA" + "MPLETYPE_L3_UNIQUE_ATTACK_CONNS\020\331\004\022*\n%KP" + "ISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS\020\332\004\022&" + "\n!KPISAMPLETYPE_L3_UNIQUE_ATTACKERS\020\333\004\0220" + "\n+KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CL" + "IENTS\020\334\004\022,\n\'KPISAMPLETYPE_L3_SECURITY_ST" + "ATUS_CRYPTO\020\335\004\022%\n KPISAMPLETYPE_SERVICE_" + "LATENCY_MS\020\275\005\0221\n,KPISAMPLETYPE_PACKETS_T" + "RANSMITTED_AGG_OUTPUT\020\315\010\022.\n)KPISAMPLETYP" + "E_PACKETS_RECEIVED_AGG_OUTPUT\020\316\010\022-\n(KPIS" + "AMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT\020\317\010\022" + "/\n*KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_O" + "UTPUT\020\261\t\022,\n\'KPISAMPLETYPE_BYTES_RECEIVED" + "_AGG_OUTPUT\020\262\t\022+\n&KPISAMPLETYPE_BYTES_DR" + "OPPED_AGG_OUTPUT\020\263\t\0220\n+KPISAMPLETYPE_SER" + "VICE_LATENCY_MS_AGG_OUTPUT\020\245\r\022\036\n\031KPISAMP" + "LETYPE_INT_SEQ_NUM\020\321\017\022\035\n\030KPISAMPLETYPE_I" + "NT_TS_ING\020\322\017\022\035\n\030KPISAMPLETYPE_INT_TS_EGR" + "\020\323\017\022\036\n\031KPISAMPLETYPE_INT_HOP_LAT\020\324\017\022\"\n\035K" + "PISAMPLETYPE_INT_PORT_ID_ING\020\325\017\022\"\n\035KPISA" + "MPLETYPE_INT_PORT_ID_EGR\020\326\017\022\"\n\035KPISAMPLE" + "TYPE_INT_QUEUE_OCCUP\020\327\017\022\037\n\032KPISAMPLETYPE" + "_INT_QUEUE_ID\020\330\017\022#\n\036KPISAMPLETYPE_INT_HO" + "P_LAT_SW01\020\265\020\022#\n\036KPISAMPLETYPE_INT_HOP_L" + "AT_SW02\020\266\020\022#\n\036KPISAMPLETYPE_INT_HOP_LAT_" + "SW03\020\267\020\022#\n\036KPISAMPLETYPE_INT_HOP_LAT_SW0" + "4\020\270\020\022#\n\036KPISAMPLETYPE_INT_HOP_LAT_SW05\020\271" + "\020\022#\n\036KPISAMPLETYPE_INT_HOP_LAT_SW06\020\272\020\022#" + "\n\036KPISAMPLETYPE_INT_HOP_LAT_SW07\020\273\020\022#\n\036K" + "PISAMPLETYPE_INT_HOP_LAT_SW08\020\274\020\022#\n\036KPIS" + "AMPLETYPE_INT_HOP_LAT_SW09\020\275\020\022#\n\036KPISAMP" + "LETYPE_INT_HOP_LAT_SW10\020\276\020\022#\n\036KPISAMPLET" + "YPE_INT_LAT_ON_TOTAL\020\310\020\022\036\n\031KPISAMPLETYPE" + "_INT_IS_DROP\020\231\021\022\"\n\035KPISAMPLETYPE_INT_DRO" + "P_REASON\020\232\021b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); } // @@protoc_insertion_point(outer_class_scope) -- GitLab From 883a869ba6948da2503c888cfc7fef2eb8ec6d0d Mon Sep 17 00:00:00 2001 From: kpoulakakis Date: Wed, 25 Jun 2025 17:12:16 +0300 Subject: [PATCH 2/2] feat: Remove unnecessary logging. Revert alarm rule. --- .../java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java | 2 +- .../policy/policy/service/PolicyRuleConditionValidator.java | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java index a576bdfea..91813003e 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/kafka/AlarmListener.java @@ -40,7 +40,7 @@ public class AlarmListener { @Blocking public void receiveAlarm(AlarmTopicDTO alarmTopicDto) { logger.infof("Received message for analytic service backend :\n %s", alarmTopicDto.toString()); - if (alarmTopicDto.isThresholdRaise()) { + if (alarmTopicDto.isThresholdRaise() || alarmTopicDto.isThresholdFall()) { logger.infof("**************************Received Alarm!**************************"); logger.infof( "Received Alarm for analytic service backend with kpiId: %s", alarmTopicDto.getKpiId()); diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java index 8c8501eda..dd7fdd920 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java @@ -79,14 +79,11 @@ public class PolicyRuleConditionValidator { Service service, ServiceId serviceId, List deviceIds) { boolean checkIfServiceIdExists = checkIfServiceIdExists(service, serviceId); boolean checkIfServicesDeviceIdsExist = checkIfServicesDeviceIdsExist(service, deviceIds); - LOGGER.info("checkIfServiceIdExists " + checkIfServiceIdExists); - LOGGER.info("checkIfServicesDeviceIdsExist " + checkIfServicesDeviceIdsExist); return (checkIfServiceIdExists && checkIfServicesDeviceIdsExist); } private boolean checkIfServiceIdExists(Service service, ServiceId serviceId) { if (service == null) { - LOGGER.info("service " + service); return false; } -- GitLab