blob: 1b98e2d421f5f8ea7257096c1c396496b509fc39 [file] [log] [blame]
Girish Gowdruc8ed2ef2019-02-13 08:18:44 -08001// Copyright (c) 2018 Open Networking Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at:
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16package tech_profile;
17import "google/api/annotations.proto";
18
19enum Direction {
20 UPSTREAM = 0;
21 DOWNSTREAM = 1;
22 BIDIRECTIONAL = 2;
23}
24
25enum SchedulingPolicy {
26 WRR = 0;
27 StrictPriority = 1;
28 Hybrid = 2;
29}
30
31enum AdditionalBW {
32 AdditionalBW_None = 0;
33 AdditionalBW_NA = 1;
34 AdditionalBW_BestEffort = 2;
35 AdditionalBW_Auto = 3;
36}
37
38enum DiscardPolicy {
39 TailDrop = 0;
40 WTailDrop = 1;
41 Red = 2;
42 WRed = 3;
43}
44
45enum InferredAdditionBWIndication {
46 InferredAdditionBWIndication_None = 0;
47 InferredAdditionBWIndication_Assured = 1;
48 InferredAdditionBWIndication_BestEffort = 2;
49}
50
51message SchedulerConfig {
52 Direction direction = 1;
53 AdditionalBW additional_bw = 2; // Valid on for “direction == Upstream”.
54 fixed32 priority = 3;
55 fixed32 weight = 4;
56 SchedulingPolicy sched_policy = 5;
57}
58
59message TrafficShapingInfo {
60 fixed32 cir = 1;
61 fixed32 cbs = 2;
62 fixed32 pir = 3;
63 fixed32 pbs = 4;
64 fixed32 gir = 5; // only if “direction == Upstream ”
65 InferredAdditionBWIndication add_bw_ind = 6; // only if “direction == Upstream”
66}
67
68message TrafficScheduler {
69 Direction direction = 1;
70 fixed32 alloc_id = 2; // valid only if “direction == Upstream ”
71 SchedulerConfig scheduler = 3;
72 TrafficShapingInfo traffic_shaping_info = 4;
73}
74
75message TrafficSchedulers {
76 fixed32 intf_id = 1;
77 fixed32 onu_id = 2;
78 fixed32 uni_id = 4;
79 fixed32 port_no = 5;
80 repeated TrafficScheduler traffic_scheds = 3;
81}
82
83message TailDropDiscardConfig {
84 fixed32 queue_size = 1;
85}
86
87message RedDiscardConfig {
88 fixed32 min_threshold = 1;
89 fixed32 max_threshold = 2;
90 fixed32 max_probability = 3;
91}
92
93message WRedDiscardConfig {
94 RedDiscardConfig green = 1;
95 RedDiscardConfig yellow = 2;
96 RedDiscardConfig red = 3;
97}
98
99message DiscardConfig {
100 DiscardPolicy discard_policy = 1;
101 oneof discard_config {
102 TailDropDiscardConfig tail_drop_discard_config = 2;
103 RedDiscardConfig red_discard_config = 3;
104 WRedDiscardConfig wred_discard_config = 4;
105 }
106}
107
108message TrafficQueue {
109 Direction direction = 1;
110 fixed32 gemport_id = 2;
111 string pbit_map = 3;
112 bool aes_encryption = 4;
113 SchedulingPolicy sched_policy = 5;
114 fixed32 priority = 6;
115 fixed32 weight = 7;
116 DiscardPolicy discard_policy = 8;
117 DiscardConfig discard_config = 9;
118}
119
120message TrafficQueues {
121 fixed32 intf_id = 1;
122 fixed32 onu_id = 2;
123 fixed32 uni_id = 4;
124 fixed32 port_no = 5;
125 repeated TrafficQueue traffic_queues = 6;
126}