summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wred-profile-1-0.yang
blob: 2b9dd853639f38687cbe8af7d378cf26ee6302a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
module wred-profile-1-0 {
  yang-version 1.1;
  namespace "urn:onf:yang:wred-profile-1-0";
  prefix wred-profile;

  import ietf-yang-types {
    prefix yang;
  }
  import core-model-1-4 {
    prefix core-model;
  }

  organization
    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
  contact
    "WG Web : https://github.com/openBackhaul/Overview
     WG List: WredProfile@openBackhaul.com
     Editor : Thorsten Heinze
     Email  : Thorsten.Heinze@openBackhaul.com";
  description
    "Technology specific definition for WRED (Weighted Random Early Detection) profiles that can be referenced by multiple interface instances.

     Copyright 2019 openBackhaul.com

     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.";

  revision 2020-01-24 {
    description
      "Model for the Transport SDN Pilot at Telefonica Germany.
       Please view https://github.com/openBackhaul/wredProfile/issues for changes.";
    reference
      "https://github.com/openBackhaul/wredProfile/tree/tsp: Model definition
       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
  }
  revision 2019-07-12 {
    description
      "Model for the Transport SDN Pilot at Telefonica Germany.
       Please view https://github.com/openBackhaul/wredProfile/issues for changes.";
    reference
      "https://github.com/openBackhaul/wredProfile/tree/tsp: Model definition
       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
  }

  identity PROFILE_NAME_TYPE_WRED_PROFILE {
    base core-model:PROFILE_NAME_TYPE;
    description
      "none";
  }

  augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
    when "derived-from-or-self(./core-model:profile-name, 'wred-profile:PROFILE_NAME_TYPE_WRED_PROFILE')";
    uses wred-profile-spec;
    description
      "none";
  }

  /****************************************
   * package notifications
   **************************************/ 

  notification object-creation-notification {
    uses object-creation-notification;
    description
      "none";
  }

  grouping object-creation-notification {
    leaf counter {
      type int32;
      default "-1";
      config false;
      description
        "Counts object creation notifications.";
    }
    leaf timestamp {
      type yang:date-and-time;
      default "2010-11-20T14:00:00+01:00";
      config false;
      description
        "none";
    }
    leaf object-id-ref {
      type leafref {
        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
        require-instance false;
      }
      config false;
      description
        "none";
    }
    leaf object-type {
      type string;
      default "Type of created object not specified.";
      config false;
      description
        "none";
    }
    description
      "none";
  }

  notification object-deletion-notification {
    uses object-deletion-notification;
    description
      "none";
  }

  grouping object-deletion-notification {
    leaf counter {
      type int32;
      default "-1";
      config false;
      description
        "Counts object deletion notifications.";
    }
    leaf timestamp {
      type yang:date-and-time;
      default "2010-11-20T14:00:00+01:00";
      config false;
      description
        "none";
    }
    leaf object-id-ref {
      type leafref {
        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
        require-instance false;
      }
      config false;
      description
        "none";
    }
    description
      "none";
  }

  /****************************************
   * grouping statements for object classes
   **************************************/ 

  grouping wred-profile-spec {
    container wred-profile-pac {
      uses wred-profile-pac;
      description
        "none";
    }
    description
      "none";
  }

  grouping wred-profile-pac {
    container wred-profile-capability {
      config false;
      uses wred-profile-capability;
      description
        "none";
    }
    container wred-profile-configuration {
      uses wred-profile-configuration;
      description
        "none";
    }
    description
      "none";
  }

  grouping wred-profile-capability {
    leaf available-buffer-size {
      type int32;
      units "Byte";
      default "-1";
      config false;
      description
        "Maximum value that could be configured as thresholdHigh in Byte.";
    }
    leaf drop-probability-at-threshold-low-is-avail {
      type boolean;
      default "false";
      config false;
      description
        "1 = It is possible to set a drop probability at the lower threshold.";
    }
    leaf gentle-wred-is-avail {
      type boolean;
      default "false";
      config false;
      description
        "1 = The device allows activating a linear increase of drop probability between dropProbabilityAtThresholdHigh and 100% at thresholdGentle (usually drop probability jumps to 100% at thresholdHigh).";
    }
    leaf sensitivity-setting-is-avail {
      type boolean;
      default "false";
      config false;
      description
        "1 = It is possible to set the sensitivity for the burst size.";
    }
    leaf coloring-is-avail {
      type boolean;
      default "false";
      config false;
      description
        "1 = The device allows marking exceeding packets yellow instead of immediately discarding them.";
    }
    description
      "none";
  }

  grouping wred-profile-configuration {
    leaf profile-name {
      type string;
      default "Name of profile not yet defined.";
      description
        "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
    }
    leaf threshold-low {
      type int32;
      units "Byte";
      default "-1";
      description
        "Defines the lower threshold in Byte. When average queue content is exceeding this value, packets start getting dropped. Probability of dropping is linear increasing until it reaches the value configured in dropProbabilityAtThresholdHigh when average queue content reaches thresholdHigh.";
    }
    leaf drop-probability-at-threshold-low {
      type int8;
      units "%";
      default "-1";
      description
        "Only relevant if (dropProbabilityAtLowThresholdIsAvail==1). Defines the probability (as a percentage) of an incoming packet getting dropped when the content of the queue reaches the low threshold.";
    }
    leaf threshold-high {
      type int32;
      units "Byte";
      default "-1";
      description
        "Defines the upper threshold in Byte.  When average queue content is reaching this value, incoming packets are dropped with the probability configured in dropProbabilityAtThresholdHigh. When average queue content is exceeding this value, all incoming packets get dropped.";
    }
    leaf drop-probability-at-threshold-high {
      type int8;
      units "%";
      default "-1";
      description
        "Defines the probability (as a percentage) of an incoming packet getting dropped when the content of the queue reaches the upper threshold.";
    }
    leaf gentle-wred-is-on {
      type boolean;
      default "false";
      description
        "Only relevant if (gentleWredIsAvail==1). 1 = The drop probability is linear increasing between dropProbabilityAtThresholdHigh and 100% at thresholdGentle (otherwise drop probability jumps to 100% at thresholdHigh).";
    }
    leaf threshold-gentle {
      type int32;
      units "Byte";
      default "-1";
      description
        "Only relevant if (gentleWredIsAvail==1) AND (gentleWredIsOn==1). Defines the 100% dropping threshold for gentle WRED in Byte.  When average queue content reaches or exceeds this value, incoming packets get dropped with 100% probability.";
    }
    leaf sensitivity {
      type int8;
      units "%";
      default "-1";
      description
        "Only relevant if (sensitivitySettingIsAvail==1). Defines how sensitive WRED reacts on traffic burst. low values = WRED reacts quickly and is sensitive to short bursts. high values = WRED reacts slowly on short bursts, which could result in buffer overflow and tail drop. Values between 0 and 15.";
    }
    leaf coloring-is-on {
      type boolean;
      default "false";
      description
        "Only relevant if (colloringIsAvail==1). 1 = Exceeding packets are marked yellow instead of being immediately discarded.";
    }
    description
      "none";
  }
}