diff --git a/proto/context.proto b/proto/context.proto index 87f69132df022e2aa4a0766dc9f0a7a7fae36d59..d23a46a480f991dae322dc613a7190609bed4751 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -68,6 +68,12 @@ service ContextService { rpc GetSliceEvents (Empty ) returns (stream SliceEvent ) {} rpc SelectSlice (SliceFilter ) returns ( SliceList ) {} + rpc CreateQoSProfile (QoSProfile ) returns (QoSProfile ) {} + rpc UpdateQoSProfile (QoSProfile ) returns (QoSProfile ) {} + rpc DeleteQoSProfile (QoSProfileId ) returns (Empty ) {} + rpc GetQoSProfile (QoSProfileId ) returns (QoSProfile ) {} + rpc GetQoSProfiles (Empty ) returns (stream QoSProfile) {} + rpc ListConnectionIds (ServiceId ) returns ( ConnectionIdList) {} rpc ListConnections (ServiceId ) returns ( ConnectionList ) {} rpc GetConnection (ConnectionId ) returns ( Connection ) {} @@ -402,6 +408,37 @@ message SliceEvent { SliceId slice_id = 2; } + +// ----- QoSProfile ---------------------------------------------------------------------------------------------------- +message QoSProfileId { + Uuid qos_profile_id = 1; +} + +message QoSProfileValueUnitPair { + int32 value = 1; + string unit = 2; +} + +message QoSProfile { + QoSProfileId qos_profile_id = 1; + string name = 2; + string description = 3; + string status = 4; + QoSProfileValueUnitPair targetMinUpstreamRate = 5; + QoSProfileValueUnitPair maxUpstreamRate = 6; + QoSProfileValueUnitPair maxUpstreamBurstRate = 7; + QoSProfileValueUnitPair targetMinDownstreamRate = 8; + QoSProfileValueUnitPair maxDownstreamRate = 9; + QoSProfileValueUnitPair maxDownstreamBurstRate = 10; + QoSProfileValueUnitPair minDuration = 11; + QoSProfileValueUnitPair maxDuration = 12; + int32 priority = 13; + QoSProfileValueUnitPair packetDelayBudget = 14; + QoSProfileValueUnitPair jitter = 15; + int32 packetErrorLossRate = 16; +} + + // ----- Connection ---------------------------------------------------------------------------------------------------- message ConnectionId { Uuid connection_uuid = 1; diff --git a/proto/qos_profile.proto b/proto/qos_profile.proto new file mode 100644 index 0000000000000000000000000000000000000000..8e1fc80a3790adba985f39d5640681b26d33cfd3 --- /dev/null +++ b/proto/qos_profile.proto @@ -0,0 +1,26 @@ +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; +package qos_profile; + +import "context.proto"; + +service QoSProfileService { + rpc CreateQoSProfile (context.QoSProfile ) returns (context.QoSProfile ) {} + rpc UpdateQoSProfile (context.QoSProfile ) returns (context.QoSProfile ) {} + rpc DeleteQoSProfile (context.QoSProfileId) returns (context.Empty ) {} + rpc GetQoSProfile (context.QoSProfileId) returns (context.QoSProfile ) {} + rpc GetQoSProfiles (context.Empty ) returns (stream context.QoSProfile) {} +}