summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-system-logging.yang
blob: 14bb1c55ac5bb245783d5d1ccb74e3984238b954 (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
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
module openconfig-system-logging {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/system/logging";

  prefix "oc-log";

  // import some basic types
  import openconfig-extensions { prefix oc-ext; }
  import openconfig-inet-types { prefix oc-inet; }


  // meta
  organization "OpenConfig working group";

  contact
    "OpenConfig working group
    www.openconfig.net";

  description
    "This module defines configuration and operational state data
    for common logging facilities on network systems.";

  oc-ext:openconfig-version "0.3.0";

  revision "2017-09-18" {
    description
      "Updated to use OpenConfig types modules";
    reference "0.3.0";
  }

  revision "2017-07-06" {
    description
      "Move to oc-inet types, add IETF attribution, add RADIUS
      counters, changed password leaf names to indicate hashed";
    reference "0.2.0";
  }

  revision "2017-01-29" {
    description
      "Initial public release";
    reference "0.1.0";
  }

  // extension statements

  // feature statements

  // identity statements

  identity SYSLOG_FACILITY {
    description
      "Base identity for Syslog message facilities.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity ALL {
    base SYSLOG_FACILITY;
    description
      "All supported facilities";
  }

  identity KERNEL {
    base SYSLOG_FACILITY;
    description
      "The facility for kernel messages";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity USER {
    base SYSLOG_FACILITY;
    description
      "The facility for user-level messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity MAIL {
    base SYSLOG_FACILITY;
    description
      "The facility for the mail system.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity SYSTEM_DAEMON {
    base SYSLOG_FACILITY;
    description
      "The facility for the system daemons.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
   }

  identity AUTH {
    base SYSLOG_FACILITY;
    description
      "The facility for security/authorization messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity SYSLOG {
    base SYSLOG_FACILITY;
    description
      "The facility for messages generated internally by syslogd
       facility.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity AUTHPRIV {
    base SYSLOG_FACILITY;
    description
      "The facility for privileged security/authorization messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }


  identity NTP {
    base SYSLOG_FACILITY;
    description
      "The facility for the NTP subsystem.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity AUDIT {
    base SYSLOG_FACILITY;
    description
      "The facility for log audit messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity CONSOLE {
    base SYSLOG_FACILITY;
    description
      "The facility for log alert messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL0 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 0 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL1 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 1 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL2 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 2 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL3 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 3 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL4 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 4 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL5 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 5 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL6 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 6 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOCAL7 {
    base SYSLOG_FACILITY;
    description
      "The facility for local use 7 messages.";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  identity LOG_DESTINATION_TYPE {
    description
      "Base identity for destination for logging messages";
  }

  identity DEST_CONSOLE {
    base LOG_DESTINATION_TYPE;
    description
      "Directs log messages to the console";
  }

  identity DEST_BUFFER {
    base LOG_DESTINATION_TYPE;
    description
      "Directs log messages to and in-memory circular buffer";
  }

  identity DEST_FILE {
    base LOG_DESTINATION_TYPE;
    description
      "Directs log messages to a local file";
  }

  identity DEST_REMOTE {
    base LOG_DESTINATION_TYPE;
    description
      "Directs log messages to a remote syslog server";
  }

  // typedef statements

    typedef syslog-severity {
      type enumeration {
        enum EMERGENCY {
          description
            "Emergency: system is unusable (0)";
        }
        enum ALERT {
          description
          "Alert: action must be taken immediately (1)";
      }
      enum CRITICAL {
        description
          "Critical: critical conditions (2)";
      }
      enum ERROR {
        description
          "Error: error conditions (3)";
      }
      enum WARNING {
        description
          "Warning: warning conditions (4)";
      }
      enum NOTICE {
        description
          "Notice: normal but significant  condition(5)";
      }
      enum INFORMATIONAL {
        description
          "Informational: informational messages (6)";
      }
      enum DEBUG {
        description
          "Debug: debug-level messages (7)";
      }
    }
    description
      "Syslog message severities";
    reference
      "IETF RFC 5424 - The Syslog Protocol";
  }

  // grouping statements

  grouping logging-selectors-config {
    description
      "Configuration data for logging selectors";

    leaf facility {
      type identityref {
        base SYSLOG_FACILITY;
      }
      description
        "Specifies the facility, or class of messages to log";
    }

    leaf severity {
      type syslog-severity;
      description
        "Specifies that only messages of the given severity (or
        greater severity) for the corresonding facility are logged";
    }
  }

  grouping logging-selectors-state {
    description
      "Operational state data for logging selectors";
  }

  grouping logging-selectors-top {
    description
      "Top-level grouping for the logging selector list";

    container selectors {
      description
        "Enclosing container ";

      list selector {
        key "facility severity";
        description
          "List of selectors for log messages";

        leaf facility {
          type leafref {
            path "../config/facility";
          }
          description
            "Reference to facility list key";
        }

        leaf severity {
          type leafref {
            path "../config/severity";
          }
          description
            "Reference to severity list key";
        }

        container config {
          description
            "Configuration data ";

          uses logging-selectors-config;
        }

        container state {

          config false;

          description
            "Operational state data ";

          uses logging-selectors-config;
          uses logging-selectors-state;
        }
      }
    }
  }

  grouping logging-console-config {
    description
      "Configuration data for console logging";
  }

  grouping logging-console-state {
    description
      "Operational state data for console logging";
  }

  grouping logging-console-top {
    description
      "Top-level grouping for console logging data";

    container console {
      description
        "Top-level container for data related to console-based
        logging";

      container config {
        description
          "Configuration data for console logging";

        uses logging-console-config;
      }

      container state {

        config false;

        description
          "Operational state data for console logging";

        uses logging-console-config;
        uses logging-console-state;
      }

      uses logging-selectors-top;
    }
  }

  grouping logging-remote-config {
    description
      "Configuration data for remote log servers";

    leaf host {
      type oc-inet:host;
      description
        "IP address or hostname of the remote log server";
    }

    leaf source-address {
      type oc-inet:ip-address;
      description
        "Source IP address for packets to the log server";
    }

    leaf remote-port {
      type oc-inet:port-number;
      default 514;
      description
        "Sets the destination port number for syslog UDP messages to
        the server.  The default for syslog is 514.";
    }
  }

  grouping logging-remote-state {
    description
      "Operational state data for remote log servers";
  }

  grouping logging-remote-top {
    description
      "Top-level grouping for remote log servers";

    container remote-servers {
      description
        "Enclosing container for the list of remote log servers";

      list remote-server {
        key "host";
        description
          "List of remote log servers";

        leaf host {
          type leafref {
            path "../config/host";
          }
          description
            "Reference to the host list key";
        }

        container config {
          description
            "Configuration data for remote log servers";

          uses logging-remote-config;
        }

        container state {

          config false;

          description
            "Operational state data for remote log servers";

          uses logging-remote-config;
          uses logging-remote-state;
        }
        uses logging-selectors-top;
      }
    }
  }

  grouping logging-top {
    description
      "Top-level grouping for logging data";

    container logging {
      description
        "Top-level container for data related to logging / syslog";

      uses logging-console-top;
      uses logging-remote-top;
    }
  }
  // data definition statements

  // augment statements


}