Update YANG models for OpenFronthaul M-Plane.
[sim/o1-interface.git] / ntsimulator / deploy / o-ran-ru-fh / yang / ieee802-dot1x.yang
1 module ieee802-dot1x {\r
2 \r
3   namespace "urn:ieee:std:802.1X:yang:ieee802-dot1x";\r
4   prefix "dot1x";\r
5 \r
6   import ieee802-types { prefix "ieee"; }\r
7   import ietf-yang-types { prefix "yang"; }\r
8   import ietf-interfaces { prefix "if"; }\r
9   import ietf-system { prefix "sys"; }\r
10   import iana-if-type { prefix "ianaift"; }\r
11   import ieee802-dot1x-types { prefix "dot1x-types"; }\r
12 \r
13   organization\r
14     "Institute of Electrical and Electronics Engineers";\r
15 \r
16   contact\r
17     "WG-URL: http://www.ieee802.org/1\r
18     WG-EMail: stds-802-1-L@ieee.org\r
19 \r
20     Contact: IEEE 802.1 Working Group Chair\r
21     Postal: C/O IEEE 802.1 Working Group\r
22             IEEE Standards Association\r
23             445 Hoes Lane\r
24             Piscataway\r
25             NJ 08854\r
26             USA\r
27 \r
28     E-mail: STDS-802-1-L@LISTSERV.IEEE.ORG";\r
29 \r
30   description\r
31     "Port-based network access control allows a network administrator\r
32     to restrict the use of IEEE 802 LAN service access points (ports)\r
33     to secure communication between authenticated and authorized\r
34     devices. IEEE Std 802.1X specifies an architecture, functional\r
35     elements, and protocols that support mutual authentication\r
36     between the clients of ports attached to the same LAN and secure\r
37     communication between the ports. The following control allows a\r
38     port to be reinitialized, terminating (and potentially\r
39     restarting) authentication exchanges and MKA operation, based on\r
40     a data model described in a set of YANG modules.";\r
41 \r
42   revision 2020-02-18 {\r
43     description\r
44       "Updated Contact information.";\r
45   }\r
46 \r
47   revision 2019-06-12 {\r
48     description\r
49       "Updates based on comment resolution of the WG ballot of\r
50       P802.1X-Rev/D1.0.";\r
51     reference\r
52       "IEEE Std 802.1X-2020, Port-Based Network Access Control.";\r
53   }\r
54 \r
55   grouping nid-group {\r
56     description\r
57       "The PAE NID Group configuration and operational information.";\r
58     list pae-nid-group {\r
59       key "nid";\r
60       description\r
61         "A list that contains the configuration and operational\r
62         nodes for the network announcement information for the\r
63         Logon Process.";\r
64       leaf nid {\r
65         type dot1x-types:pae-nid;\r
66         description\r
67           "Identification of the network or network service.";\r
68         reference\r
69           "IEEE 802.1X-2020 Clause 12.5";\r
70       }\r
71       leaf use-eap {\r
72         type enumeration {\r
73           enum never {\r
74             description\r
75               "Never.";\r
76           }\r
77           enum immediate {\r
78             description\r
79               "Immediately, concurrently with the use of MKA with any\r
80               cached CAK(s).";\r
81           }\r
82           enum mka-fail {\r
83             description\r
84               "Not until MKA has failed, if a prior CAK has been\r
85               cached.";\r
86           }\r
87         }\r
88         default "immediate";\r
89         description\r
90           "Determines when the Logon Process will initiate EAP, if\r
91           the Supplicant and or Authenticator are enabled, and takes\r
92           one of the above values.";\r
93         reference\r
94           "IEEE 802.1X-2020 Clause 12.5";\r
95       }\r
96       leaf unauth-allowed {\r
97         type enumeration {\r
98           enum never {\r
99             description\r
100               "Never.";\r
101           }\r
102           enum immediate {\r
103             description\r
104               "Immediately, independently of any current or future\r
105               attempts to authenticate using the PAE or MKA.";\r
106           }\r
107           enum auth-fail {\r
108             description\r
109               "Not until an attempt has been made to authenticate\r
110               using EAP, unless neither the supplicant nor the\r
111               authenticator is enabled, and MKA has attempted to use\r
112               any cached CAK (unless the KaY is not enabled).";\r
113           }\r
114         }\r
115         default "immediate";\r
116         description\r
117           "Determines when the Logon Process will tell the CP state\r
118           machine to provide unauthenticated connectivity, and takes\r
119           one of the above values.";\r
120         reference\r
121           "IEEE 802.1X-2020 Clause 12.5";\r
122       }\r
123       leaf unsecure-allowed {\r
124         type enumeration {\r
125           enum never {\r
126             description\r
127               "Never.";\r
128           }\r
129           enum immediate {\r
130             description\r
131               "Immediately, to provide connectivity concurrently with\r
132               the use of MKA with any CAK acquired through EAP.";\r
133           }\r
134           enum mka-fail {\r
135             description\r
136               "Not until MKA has failed, or is not enabled.";\r
137           }\r
138           enum mka-server {\r
139             description\r
140               "Only if directed by the MKA server.";\r
141           }\r
142         }\r
143         default "immediate";\r
144         description\r
145           "Determines when the Logon Process will tell the CP state\r
146           machine to provide authenticated but unsecured\r
147           connectivity, takes one of the above values.";\r
148         reference\r
149           "IEEE 802.1X-2020 Clause 12.5";\r
150       }\r
151       leaf unauthenticated-access {\r
152         type enumeration {\r
153           enum no-access {\r
154             description\r
155               "Other than to authentication services.";\r
156           }\r
157           enum fallback-access {\r
158             description\r
159               "Limited access can be provided after authentication\r
160               failure.";\r
161           }\r
162           enum limited-access {\r
163             description\r
164               "Immediate limited access is available without\r
165               authentication.";\r
166           }\r
167           enum open-access {\r
168             description\r
169               "Immediate access is available without\r
170               authentication.";\r
171           }\r
172         }\r
173         default "no-access";\r
174         description\r
175           "Unauthenticated access capabilities provided by the NID.";\r
176         reference\r
177           "IEEE 802.1X-2020 Clause 10.1";\r
178       }\r
179       leaf access-capabilities {\r
180         type dot1x-types:pae-nid-capabilities;\r
181         description\r
182           "Authentication and protection capabilities supported for\r
183           the NID.";\r
184         reference\r
185           "IEEE 802.1X-2020 Clause 10.1";\r
186       }\r
187 \r
188       leaf kmd {\r
189         type dot1x-types:pae-kmd;\r
190         config false;\r
191         description\r
192           "The Key Management Domain for the NID.";\r
193         reference\r
194           "IEEE 802.1X-2020 Clause 10.4";\r
195       }\r
196     }\r
197   }\r
198 \r
199   grouping port-capabilities {\r
200     description\r
201       "Per port PAE feature capabilities.";\r
202     leaf supp {\r
203       type boolean;\r
204       description\r
205         "Indicates if PACP EAP Supplicant is supported.";\r
206       reference\r
207         "IEEE 802.1X-2020 Clause 12.9.2";\r
208     }\r
209     leaf auth {\r
210       type boolean;\r
211       description\r
212         "Indicates if PACP EAP Authenticator is supported.";\r
213       reference\r
214         "IEEE 802.1X-2020 Clause 12.9.2";\r
215     }\r
216     leaf mka {\r
217       type boolean;\r
218       description\r
219         "Indicates if MKA is supported.";\r
220       reference\r
221         "IEEE 802.1X-2020 Clause 12.9.2";\r
222     }\r
223     leaf macsec {\r
224       type boolean;\r
225       description\r
226         "Indicates if MACsec on the Controlled port is supported.";\r
227       reference\r
228         "IEEE 802.1X-2020 Clause 12.9.2";\r
229     }\r
230     leaf announcements {\r
231       type boolean;\r
232       description\r
233         "Indicates if the ability to send EAPOL announcements is\r
234         supported.";\r
235       reference\r
236         "IEEE 802.1X-2020 Clause 12.9.2";\r
237     }\r
238     leaf listener {\r
239       type boolean;\r
240       description\r
241         "Indicates if the ability to use received EAPOL\r
242         announcements is supported.";\r
243       reference\r
244         "IEEE 802.1X-2020 Clause 12.9.2";\r
245     }\r
246     leaf virtual-ports {\r
247       type boolean;\r
248       description\r
249         "Indicates if virtual ports for a real port is supported.";\r
250       reference\r
251         "IEEE 802.1X-2020 Clause 12.9.2";\r
252     }\r
253     leaf in-service-upgrades {\r
254       type boolean;\r
255       description\r
256         "Indicates if MKA in-service upgrades is supported.";\r
257       reference\r
258         "IEEE 802.1X-2020 Clause 12.9.2";\r
259     }\r
260   }\r
261 \r
262   /* ---------------------------------------------------\r
263    * Configuration objects used by 802.1X YANG module\r
264    * ---------------------------------------------------\r
265    */\r
266   augment "/sys:system" {\r
267     description\r
268       "Augment system with 802.1X PAE System specific configuration\r
269       nodes.";\r
270     container pae-system {\r
271       description\r
272         "Contains all 802.1X PAE System specific related\r
273         configuration and operational data.";\r
274       leaf name {\r
275         type string {\r
276           length "1..255";\r
277         }\r
278         description\r
279           "The name which uniquely identifies the PAE System.";\r
280       }\r
281       leaf system-access-control {\r
282         type enumeration {\r
283           enum disabled {\r
284             description\r
285               "Deletes any virtual ports previously instantiated, and\r
286               terminates authentication exchanges and MKA\r
287               operation.";\r
288           }\r
289           enum enabled {\r
290             description\r
291               "Enables PAE system access control.";\r
292           }\r
293         }\r
294         description\r
295           "Setting this control to disabled deletes any virtual ports\r
296           previously instantiated, and terminates authentication\r
297           exchanges and MKA operation. Each real port PAE behaves as\r
298           if enabledVirtualPorts was clear, the PAEs Supplicant,\r
299           Authenticator, and KaY as if their enabled controls were\r
300           clear, and Logon Process(es) as if unauthAllowed was\r
301           Immediate. Announcements can be transmitted (subject to\r
302           other controls), both periodically and in response to\r
303           announcement requests (conveyed by EAPOL-Starts or\r
304           EAPOL-Announcement-Reqs) but are sent with a single NID\r
305           Set, with a null NID, and the Access Information TLV (and\r
306           no other) with an pae-access-status of No Access,\r
307           accessRequested false, OpenAccess, and no\r
308           accessCapabilities. The control variable settings for each\r
309           real port PAE are unaffected, and will be used once\r
310           systemAccessControl is set to enabled.";\r
311         reference\r
312           "IEEE 802.1X-2020 Clause 12.9.1";\r
313       }\r
314       leaf system-announcements {\r
315         type enumeration {\r
316           enum disabled {\r
317             description\r
318               "Causes each PAE to behave as if enabled were clear\r
319               for the PAE's Announcement functionality.";\r
320           }\r
321           enum enabled {\r
322             description\r
323               "Enables PAE system announcements.";\r
324           }\r
325         }\r
326         description\r
327           "Setting this control to Disabled causes each PAE to behave\r
328           as if enabled were clear for the PAE's Announcement\r
329           functionality. The independent controls for each PAE apply\r
330           if systemAnnouncements is Enabled.";\r
331         reference\r
332           "IEEE 802.1X-2020 Clause 12.9.1";\r
333       }\r
334       leaf eapol-protocol-version {\r
335         type uint8;\r
336         config false;\r
337         description\r
338           "The EAPOL protocol version for this system.";\r
339         reference\r
340           "IEEE 802.1X-2020 Clause 12.9.1, Clause 11.3";\r
341       }\r
342       leaf mka-version {\r
343         type uint8;\r
344         config false;\r
345         description\r
346           "The MKA protocol version for this system.";\r
347         reference\r
348           "IEEE 802.1X-2020 Clause 12.9.1, Clause 11.3";\r
349       }\r
350       leaf-list pae {\r
351         type if:interface-ref;\r
352         config false;\r
353         description\r
354           "List of PAE references.";\r
355       }\r
356     }\r
357   }\r
358 \r
359   /*\r
360    *  Port Authentication Entity (PAE) Nodes\r
361    */\r
362   augment "/if:interfaces/if:interface" {\r
363     when "if:type = 'ianaift:ethernetCsmacd' or\r
364           if:type = 'ianaift:ilan' or\r
365           if:type = 'ianaift:macSecControlledIF' or\r
366           if:type = 'ianaift:ptm' or\r
367           if:type = 'ianaift:bridge'" {\r
368       description\r
369         "Applies to the Controlled Port of SecY or PAC shim or\r
370         Ethernet related Interface.";\r
371     }\r
372     description\r
373       "Augment interface model with PAE configuration and\r
374         operational nodes.";\r
375     reference\r
376       "IEEE 802.1AE Clause 11.7 and IEEE 802.1X-2020 Clause 6.5 and\r
377       Clause 13.3.2";\r
378     container pae {\r
379       description\r
380         "Contains PAE configuration and operational related nodes.";\r
381       leaf pae-system {\r
382         type leafref {\r
383           path "/sys:system/dot1x:pae-system/dot1x:name";\r
384         }\r
385         description\r
386           "The PAE system that this PAE is a member of.";\r
387       }\r
388       leaf vp-enable {\r
389         when "../port-type = 'real-port' and\r
390               ../port-capabilities/virtual-ports = 'true'" {\r
391           description\r
392             "Applies when port is Real Port and virtual port\r
393             capabilities are supported.";\r
394         }\r
395         type boolean;\r
396         default "false";\r
397         description\r
398           "A real port's PAE may be configured to create virtual\r
399           ports to support multi-access LANs provided that MKA and\r
400           MACsec operation is enabled for that port.";\r
401         reference\r
402           "IEEE 802.1X-2020 Clause 12.7";\r
403       }\r
404       container port-capabilities {\r
405         description\r
406           "Per port PAE feature capabilities.";\r
407         uses port-capabilities;\r
408       }\r
409 \r
410       leaf port-name {\r
411         type if:interface-ref;\r
412         config false;\r
413         description\r
414           "Each PAE is uniquely identified by a port name.";\r
415         }\r
416       leaf port-number {\r
417         type dot1x-types:pae-if-index;\r
418         config false;\r
419         description\r
420           "Each PAE is uniquely identified by a port number. The\r
421           port number used is unique amongst all port names for the\r
422           system, and directly or indirectly identifies the\r
423           Uncontrolled Port that supports the PAE. If the PAE has\r
424           been dynamically instantiated to support an existing or\r
425           potential virtual port, this portNumber, the\r
426           uncontrolledPortNumber and the controlledPortNumber are\r
427           allocated by the real ports PAE, and this portNumber is the\r
428           uncontrolledPortNumber. If the PAE supports a real port,\r
429           this portNumber is the commonPortNumber for the associated\r
430           PAC or SecY.";\r
431         reference\r
432           "IEEE 802.1X-2020 Clause 12.9.2";\r
433         }\r
434       leaf controlled-port-name {\r
435         type if:interface-ref;\r
436         config false;\r
437         description\r
438           "Each PAE is uniquely identified by a port name.";\r
439       }\r
440       leaf controlled-port-number {\r
441         type dot1x-types:pae-if-index;\r
442         config false;\r
443         description\r
444           "The port for the associated PAC or SecYs Controlled\r
445           Port.";\r
446         reference\r
447           "IEEE 802.1X-2020 Clause 12.9.2";\r
448       }\r
449       leaf uncontrolled-port-name {\r
450         type if:interface-ref;\r
451         config false;\r
452         description\r
453           "The uncontrolled port name reference.";\r
454       }\r
455       leaf uncontrolled-port-number {\r
456         type dot1x-types:pae-if-index;\r
457         config false;\r
458         description\r
459           "The port for the associated PAC or SecYs Uncontrolled\r
460           Port.";\r
461         reference\r
462           "IEEE 802.1X-2020 Clause 12.9.2";\r
463       }\r
464       leaf common-port-name {\r
465         type if:interface-ref;\r
466         config false;\r
467         description\r
468           "The common port name reference.";\r
469       }\r
470       leaf common-port-number {\r
471         type dot1x-types:pae-if-index;\r
472         config false;\r
473         description\r
474           "The port for the associated PAC or SecYs Common Port. All\r
475           the virtual ports created for a given real port share the\r
476           same Common Port and commonPortNumber.";\r
477         reference\r
478           "IEEE 802.1X-2020 Clause 12.9.2";\r
479       }\r
480       leaf port-type {\r
481         type enumeration {\r
482           enum real-port {\r
483             description\r
484               "Real Port type.";\r
485           }\r
486           enum virtual-port {\r
487             description\r
488               "Virtual Port type.";\r
489           }\r
490         }\r
491         //config false;\r
492         description\r
493           "The port type of the PAE.";\r
494         reference\r
495           "IEEE 802.1X-2020 Clause 12.9.2";\r
496       }\r
497       container virtual-port {\r
498         when "../port-capabilities/virtual-ports = 'true'" {\r
499           description\r
500             "Applies when the virtual ports port capability is\r
501             supported.";\r
502         }\r
503         config false;\r
504         description\r
505           "Contains Virtual Port operational state information.";\r
506         leaf max {\r
507           when "../../port-type = 'real-port'" {\r
508             description\r
509               "Applies when Port is a Real Port.";\r
510           }\r
511           type uint32;\r
512           description\r
513             "The guaranteed maximum number of virtual ports.";\r
514           reference\r
515             "IEEE 802.1X-2020 Clause 12.9.2";\r
516         }\r
517         leaf current {\r
518           when "../../port-type = 'real-port'" {\r
519             description\r
520               "Applies when Port is a Real Port.";\r
521           }\r
522           type yang:gauge32;\r
523           description\r
524             "The current number of virtual ports.";\r
525           reference\r
526             "IEEE 802.1X-2020 Clause 12.9.2";\r
527         }\r
528         leaf start {\r
529           when "../../port-type = 'virtual-port'" {\r
530             description\r
531               "Applies when Port is a Virtual Port.";\r
532           }\r
533           type boolean;\r
534           description\r
535             "Set if the virtual port was created by receipt of an\r
536             EAPOL-Start frame.";\r
537           reference\r
538             "IEEE 802.1X-2020 Clause 12.9.7";\r
539         }\r
540         leaf peer-address {\r
541           when "../../port-type = 'virtual-port'" {\r
542             description\r
543               "Applies when Port is a Virtual Port.";\r
544           }\r
545           type ieee:mac-address;\r
546           description\r
547             "The source MAC Address of the EAPOL-Start (if vpStart is\r
548             set).";\r
549           reference\r
550             "IEEE 802.1X-2020 Clause 12.9.7";\r
551         }\r
552       }\r
553 \r
554       container supplicant {\r
555         when "../port-type = 'real-port' and\r
556               ../port-capabilities/supp = 'true'" {\r
557           description\r
558             "Applies to Real Port when supplicant port capabilities\r
559             are supported.";\r
560         }\r
561         description\r
562           "Contains the configuration nodes for the Supplicant PAE\r
563           associated with each port.";\r
564         leaf held-period {\r
565           type uint16;\r
566           units seconds;\r
567           default "60";\r
568           description\r
569             "The initial value of the timer used to impose a wait\r
570             period after a failed authentication attempt, before\r
571             another attempt is permitted.";\r
572           reference\r
573             "IEEE 802.1X-2020 Clause 8.6";\r
574         }\r
575         leaf retry-max {\r
576           type uint32;\r
577           default "2";\r
578           description\r
579             "Specifies the maximum number of re-authentication\r
580             attempts on an authenticator port before port is\r
581             unauthorized.";\r
582           reference\r
583             "IEEE 802.1X-2020 Clause 8.7";\r
584         }\r
585 \r
586         leaf enabled {\r
587           type boolean;\r
588           config false;\r
589           description\r
590             "Set by PACP if the PAE can provide authentication. Will\r
591             be FALSE if the Port is not enabled, if the functionality\r
592             provided by the PAE is not available, or not implemented,\r
593             or the control variable enable has been cleared by\r
594             management, e.g. because the application scenario\r
595             authenticates a user and there is no user logged on.";\r
596           reference\r
597             "IEEE 802.1X-2020 Clause 8.4";\r
598         }\r
599         leaf authenticate {\r
600           type boolean;\r
601           config false;\r
602           description\r
603             "Set by the PAE client to request authentication, and\r
604             allows reauthentication while set. Cleared by the client\r
605             to revoke authentication. To enable authentication the\r
606             client also needs to clear failed (if set).";\r
607           reference\r
608             "IEEE 802.1X-2020 Clause 8.4";\r
609         }\r
610         leaf authenticated {\r
611           type boolean;\r
612           config false;\r
613           description\r
614             "Set by PACP if the PAE is currently authenticated, and\r
615             cleared if the authentication fails or is revoked.";\r
616           reference\r
617             "IEEE 802.1X-2020 Clause 8.4";\r
618         }\r
619         leaf failed {\r
620           type boolean;\r
621           config false;\r
622           description\r
623             "Set by PACP if the authentication has failed or has been\r
624             terminated. The cause could be a Fail returned by EAP,\r
625             either immediately or following a reauthentication, an\r
626             excessive number of attempts to authenticate (either\r
627             immediately or upon reauthentication), or the client\r
628             deasserting authenticate. The PACP will clear\r
629             authenticated as well as setting failed. Any ongoing\r
630             authentication exchange will be terminated (by the state\r
631             machines) if enable becomes FALSE and enabled will be\r
632             cleared, but failed will not be set.";\r
633           reference\r
634             "IEEE 802.1X-2020 Clause 8.4";\r
635         }\r
636       }\r
637 \r
638       container authenticator {\r
639         when "../port-capabilities/auth = 'true'" {\r
640           description\r
641             "Applies when the Authenticator is supported.";\r
642         }\r
643         description\r
644           "Contains configuration nodes for the Authenticator PAE\r
645           associated with each port.";\r
646         leaf quiet-period {\r
647           type uint16;\r
648           units seconds;\r
649           default "60";\r
650           description\r
651             "Number of seconds that the authenticator remains in the quiet\r
652             state following a failed authentication exchange with the\r
653             supplicant.";\r
654           reference\r
655             "IEEE 802.1X-2020 Clause 8.6, Figure 12-3";\r
656         }\r
657         leaf reauth-period {\r
658           type uint32;\r
659           units seconds;\r
660           default "3600";\r
661           description\r
662             "This object indicates the time period of the\r
663             reauthentication to the supplicant.";\r
664           reference\r
665             "IEEE 802.1X-2020 Clause 8.6, Figure 12-3";\r
666         }\r
667         leaf reauth-enable {\r
668           type boolean;\r
669           default "false";\r
670           description\r
671             "Re-authentication is enabled or not.";\r
672           reference\r
673             "IEEE 802.1X-2020 Clause 5.8 and 8.9";\r
674         }\r
675         leaf retry-max {\r
676           type uint32;\r
677           default "2";\r
678           description\r
679             "Specifies the maximum number of re-authentication\r
680             attempts on an authenticator port before port is\r
681             unauthorized.";\r
682           reference\r
683             "IEEE 802.1X-2020 Clause 8.9";\r
684         }\r
685 \r
686         leaf enabled {\r
687           type boolean;\r
688           config false;\r
689           description\r
690             "Set by PACP if the PAE can provide authentication. Will\r
691             be FALSE if the Port is not enabled, if the functionality\r
692             provided by the PAE is not available, or not implemented,\r
693             or the control variable enable has been cleared by\r
694             management, e.g. because the application scenario\r
695             authenticates a user and there is no user logged on.";\r
696           reference\r
697             "IEEE 802.1X-2020 Clause 8.4";\r
698         }\r
699         leaf authenticate {\r
700           type boolean;\r
701           config false;\r
702           description\r
703             "Set by the PAE client to request authentication, and\r
704             allows reauthentication while set. Cleared by the client\r
705             to revoke authentication. To enable authentication the\r
706             client also needs to clear failed (if set).";\r
707           reference\r
708             "IEEE 802.1X-2020 Clause 8.4";\r
709         }\r
710         leaf authenticated {\r
711           type boolean;\r
712           config false;\r
713           description\r
714             "Set by PACP if the PAE is currently authenticated, and\r
715             cleared if the authentication fails or is revoked.";\r
716           reference\r
717             "IEEE 802.1X-2020 Clause 8.4";\r
718         }\r
719         leaf failed {\r
720           type boolean;\r
721           config false;\r
722           description\r
723             "Set by PACP if the authentication has failed or has been\r
724             terminated. The cause could be a Fail returned by EAP,\r
725             either immediately or following a reauthentication, an\r
726             excessive number of attempts to authenticate (either\r
727             immediately or upon reauthentication), or the client\r
728             deasserting authenticate. The PACP will clear\r
729             authenticated as well as setting failed. Any ongoing\r
730             authentication exchange will be terminated (by the state\r
731             machines) if enable becomes FALSE and enabled will be\r
732             cleared, but failed will not be set.";\r
733           reference\r
734             "IEEE 802.1X-2020 Clause 8.4";\r
735         }\r
736       }\r
737 \r
738       container kay {\r
739         when "../port-capabilities/mka = 'true'" {\r
740           description\r
741             "Applies when the MKA port capability is supported.";\r
742         }\r
743         description\r
744           "Contains configuration system level information for each\r
745           Interface supported by the KaY (Key Aggreement Entity).";\r
746         leaf enable {\r
747           type boolean;\r
748           default "false";\r
749           description\r
750             "Set by management to enable (clear to disable) the use\r
751             of MKA.";\r
752           reference\r
753             "IEEE 802.1X-2020 Clause 9.16";\r
754         }\r
755         container actor {\r
756           description\r
757             "Contains configuration and operational nodes\r
758             associated with the actor";\r
759           leaf priority {\r
760             type uint8;\r
761             description\r
762               "The Key Server Priority for all the ports actors.";\r
763             reference\r
764               "IEEE 802.1X-2020 Clause 9.16";\r
765           }\r
766           leaf sci {\r
767             type dot1x-types:sci-list-entry;\r
768             config false;\r
769             description\r
770               "The SCI assigned by the system to the port (applies\r
771               to all the ports actors).";\r
772             reference\r
773               "IEEE 802.1X-2020 Clause 9.16";\r
774           }\r
775         }\r
776         container key-server {\r
777           description\r
778             "Contains configuration and operational nodes\r
779             associated with the key\r
780             server.";\r
781           leaf priority {\r
782             type uint8;\r
783             description\r
784               "The Key Server Priority for the Key Server for the\r
785               principal actor. Matches the actorPriority if the\r
786               actor is the Key Server";\r
787             reference\r
788               "IEEE 802.1X-2020 Clause 9.16";\r
789           }\r
790           leaf sci {\r
791             type dot1x-types:sci-list-entry;\r
792             config false;\r
793             description\r
794               "The SCI for Key Server for the principal actor. Null\r
795               if there is no principal actor, or that actor has no\r
796               live peers. Matches the actorSCI if the actor is the\r
797               Key Server.";\r
798             reference\r
799               "IEEE 802.1X-2020 Clause 9.16";\r
800           }\r
801         }\r
802         container group {\r
803           description\r
804             "Contains configuration nodes associated with the\r
805             group.";\r
806           leaf join {\r
807             type boolean;\r
808             default "true";\r
809             description\r
810               "Set if the KaY will accept Group CAKs distributed by\r
811               MKA.";\r
812             reference\r
813               "IEEE 802.1X-2020 Clause 9.16";\r
814           }\r
815           leaf form {\r
816             type boolean;\r
817             default "false";\r
818             description\r
819               "Set if the KaY will attempt to use point-to-point CAs\r
820               to distribute a Group CAK, if its principal actor is\r
821               the Key Server for all the point-to-point CAs.";\r
822             reference\r
823               "IEEE 802.1X-2020 Clause 9.16";\r
824           }\r
825           leaf new {\r
826             type boolean;\r
827             default "false";\r
828             description\r
829               "Set by management if a new Group CAK is to be\r
830               distributed, if the principal actor is the Key Server\r
831               for all point-to-point CAs. Cleared by the KaY when\r
832               distribution is complete.";\r
833             reference\r
834               "IEEE 802.1X-2020 Clause 9.16";\r
835           }\r
836         }\r
837 \r
838         container macsec {\r
839           when "../../port-capabilities/macsec = 'true'" {\r
840             description\r
841               "Applies when the MACsec port capability is\r
842               supported.";\r
843           }\r
844           description\r
845             "Contains configuration and operational nodes\r
846             associated with macsec.";\r
847           leaf capable {\r
848             type boolean;\r
849             description\r
850               "Set if MACsec is implemented.";\r
851             reference\r
852               "IEEE 802.1X-2020 Clause 9.16";\r
853           }\r
854           leaf desired {\r
855             type boolean;\r
856             default "true";\r
857             description\r
858               "Set if the participant desires MACsec frame protection.";\r
859             reference\r
860               "IEEE 802.1X-2020 Clause 9.16";\r
861           }\r
862 \r
863           leaf protect {\r
864             type boolean;\r
865             config false;\r
866             description\r
867               "As used by the CP state machine, see 12.4.";\r
868             reference\r
869               "IEEE 802.1X-2020 Clause 9.16";\r
870           }\r
871           leaf validate {\r
872             type boolean;\r
873             config false;\r
874             description\r
875               "As used by the CP state machine, see 12.4.";\r
876             reference\r
877               "IEEE 802.1X-2020 Clause 9.16";\r
878           }\r
879           leaf replay-protect {\r
880             type boolean;\r
881             config false;\r
882             description\r
883               "As used by the CP state machine, see 12.4.";\r
884             reference\r
885               "IEEE 802.1X-2020 Clause 9.16";\r
886           }\r
887         }\r
888         leaf suspend-on-request {\r
889           type boolean;\r
890           default "true";\r
891           description\r
892             "Set by management to allow the KaYs principal actor to\r
893             initiate a suspension if it is the Key Server and another\r
894             participant has requested a suspension.";\r
895         }\r
896         leaf suspend-for {\r
897           type uint8;\r
898           default "0";\r
899           description\r
900             "Set by management to a non-zero number of seconds\r
901             between 1 and MKA Suspension Limit to initiate a\r
902             suspension (9.18) of that duration (if the KaYs principal\r
903             actor is the Key Server) or to request a suspension\r
904             (otherwise).";\r
905           reference\r
906             "IEEE 802.1X-2020 Clause 9.18";\r
907         }\r
908 \r
909         leaf suspended-while {\r
910           type uint8;\r
911           config false;\r
912           description\r
913             "Read by management to determine if a suspension is in\r
914             progress and (when available) to discover the remaining\r
915             duration of that suspension";\r
916           reference\r
917             "IEEE 802.1X-2020 Clause 9.18";\r
918         }\r
919         leaf active {\r
920           type boolean;\r
921           config false;\r
922           description\r
923             "Set if there is at least one active actor, transmitting\r
924             MKPDUs.";\r
925           reference\r
926             "IEEE 802.1X-2020 Clause 9.16";\r
927         }\r
928         leaf authenticated {\r
929           type boolean;\r
930           config false;\r
931           description\r
932             "Set if the principal actor, i.e. the participant that\r
933             has the highest priority Key Server and one or more live\r
934             peers, has determined that Controlled Port communication\r
935             should proceed without MACsec.";\r
936           reference\r
937             "IEEE 802.1X-2020 Clause 9.16";\r
938         }\r
939         leaf secured {\r
940           type boolean;\r
941           config false;\r
942           description\r
943             "Set if the principal actor has determined that\r
944             communication should use MACsec.";\r
945           reference\r
946             "IEEE 802.1X-2020 Clause 9.16";\r
947         }\r
948         leaf failed {\r
949           type boolean;\r
950           config false;\r
951           description\r
952             "Cleared when authenticated or secured are set, set if\r
953             the latter are clear and MKA Life Time has elapsed since\r
954             an MKA participant was last created.";\r
955           reference\r
956             "IEEE 802.1X-2020 Clause 9.16";\r
957         }\r
958         container key-number {\r
959             config false;\r
960           description\r
961             "Contains operation state nodes for Key Numbers.";\r
962           leaf tx {\r
963             type dot1x-types:mka-kn;\r
964             description\r
965               "The Key Number assigned by the Key Server to the SAK\r
966               currently being used for transmission. Null if MACsec\r
967               is not being used.";\r
968             reference\r
969               "IEEE 802.1X-2020 Clause 9.16";\r
970           }\r
971           leaf rx {\r
972             type dot1x-types:mka-kn;\r
973             description\r
974               "The Key Number assigned by the Key Server to the\r
975               oldest SAK currently being used for reception. The same\r
976               as txKN if a single SAK is currently in use (as will\r
977               most often be the case). Null if MACsec is not being\r
978               used.";\r
979             reference\r
980               "IEEE 802.1X-2020 Clause 9.16";\r
981           }\r
982         }\r
983         container association-number {\r
984             config false;\r
985           description\r
986             "Contains operation state nodes for Association\r
987             Numbers.";\r
988           leaf tx {\r
989             type dot1x-types:mka-an;\r
990             description\r
991               "The Association Number assigned by the Key Server for\r
992               use with txKN. Zero if MACsec is not in use.";\r
993             reference\r
994               "IEEE 802.1X-2020 Clause 9.16";\r
995           }\r
996           leaf rx {\r
997             type dot1x-types:mka-an;\r
998             description\r
999               "The Association Number assigned by the Key Server for\r
1000               use with rxKN. The same as txAN if a single SAK is\r
1001               currently in use. Zero if MACsec is not in use.";\r
1002             reference\r
1003               "IEEE 802.1X-2020 Clause 9.16";\r
1004           }\r
1005         }\r
1006 \r
1007         list participants {\r
1008           key "participant";\r
1009           description\r
1010             "Contains list of configuration and operational nodes\r
1011             for each MKA participant supported by the KaY MKA\r
1012             entity.";\r
1013           leaf participant {\r
1014             type uint32;\r
1015             description\r
1016               "Key into Participants list.";\r
1017           }\r
1018           leaf cached {\r
1019             type boolean;\r
1020             description\r
1021               "Set by the KaY if the participants parameters are\r
1022               cached. If set, cached can be cleared by management to\r
1023               remove the participant from the cache.";\r
1024           }\r
1025           leaf active {\r
1026             type boolean;\r
1027             default "false";\r
1028             description\r
1029               "Set if the participant is active, i.e., is currently\r
1030               transmitting periodic MKPDUs.";\r
1031             reference\r
1032               "IEEE 802.1X-2020 Clause 9.16";\r
1033           }\r
1034           leaf retain {\r
1035             type boolean;\r
1036             default "false";\r
1037             description\r
1038               "Set by management to retain the participant in the\r
1039               cache, even if the KaY would normally remove it (due to\r
1040               lack of use for example).";\r
1041             reference\r
1042               "IEEE 802.1X-2020 Clause 9.16";\r
1043           }\r
1044           leaf activate {\r
1045             type enumeration {\r
1046               enum default {\r
1047                 description\r
1048                   "The participant is from cached entries created by\r
1049                   the KaY as part of normal operation, without\r
1050                   explicit management, and is activated according to\r
1051                   the implementation dependent policies of the KaY.";\r
1052               }\r
1053               enum disabled {\r
1054                 description\r
1055                   "The participant allows the cache information to be\r
1056                   retained, but disabled for indefinite period.";\r
1057                   }\r
1058               enum on-oper-up {\r
1059                 description\r
1060                   "Causing the participant to be activated when the\r
1061                   PAEs part is activated, and therefore when the SecY\r
1062                   or PACs Common Port becomes operational.";\r
1063               }\r
1064               enum always {\r
1065                 description\r
1066                   "Causing the participant to remain active all the\r
1067                   time, even in the continued absence of partners.";\r
1068               }\r
1069             }\r
1070             default "default";\r
1071             description\r
1072               "Controls when the participant is activated. Cached\r
1073               entries created by the KaY as part of normal operation,\r
1074               without explicit management, have the value Default,\r
1075               and are activated according to the implementation\r
1076               dependent policies of the KaY. This variable can be\r
1077               set to any of its values by management. Disabled allows\r
1078               the cache entry to be retained, but disabled for an\r
1079               indefinite period. OnOperUp causes the participant to\r
1080               be activated when the PAEs port (and therefore when the\r
1081               SecY or PACs Common Port becomes MAC_Operational).\r
1082               Always causes the participant to remain active all the\r
1083               time, even in the continued absence of partners. If the\r
1084               value is changed to Disabled or OnOperUp, the\r
1085               participant ceases operation immediately and receipt of\r
1086               MKPDUs with a matching CKN during a subsequent period\r
1087               of twice MKA Life Time will not cause the participant\r
1088               to become active once more.";\r
1089             reference\r
1090               "IEEE 802.1X-2020 Clause 9.16";\r
1091           }\r
1092 \r
1093           container peers {\r
1094             config false;\r
1095             description\r
1096               "Contains operational state nodes associated with the\r
1097               Peers.";\r
1098             leaf-list live {\r
1099               type dot1x-types:sci-list-entry;\r
1100                 description\r
1101                   "A list of the SCIs of the participants live\r
1102                   peers.";\r
1103                 reference\r
1104                   "IEEE 802.1X-2020 Clause 9.16";\r
1105             }\r
1106             leaf-list potential {\r
1107               type dot1x-types:sci-list-entry;\r
1108               description\r
1109                 "A list of the SCIs of the participants potential\r
1110                 peers.";\r
1111               reference\r
1112                 "IEEE 802.1X-2020 Clause 9.16";\r
1113             }\r
1114           }\r
1115           leaf ckn {\r
1116             type dot1x-types:pae-ckn;\r
1117             config false;\r
1118             description\r
1119               "The secure Connectivity Association Key Name for the\r
1120               participant.";\r
1121             reference\r
1122               "IEEE 802.1X-2020 Clause 9.16";\r
1123           }\r
1124           leaf kmd {\r
1125             type dot1x-types:pae-kmd;\r
1126             config false;\r
1127             description\r
1128               "The Key Management Domain for the participant.";\r
1129             reference\r
1130               "IEEE 802.1X-2020 Clause 9.16";\r
1131           }\r
1132           leaf nid {\r
1133             type dot1x-types:pae-nid;\r
1134             config false;\r
1135             description\r
1136               "The NID for the participant.";\r
1137             reference\r
1138               "IEEE 802.1X-2020 Clause 9.16";\r
1139           }\r
1140           leaf auth-data {\r
1141             type dot1x-types:pae-auth-data;\r
1142             config false;\r
1143             description\r
1144               "Authorization data associated with the secure\r
1145               Connectivity Association Key.";\r
1146             reference\r
1147               "IEEE 802.1X-2020 Clause 9.16";\r
1148           }\r
1149           leaf principal {\r
1150             type boolean;\r
1151             config false;\r
1152             description\r
1153               "Set if the participant is currently the principal\r
1154               actor.";\r
1155             reference\r
1156               "IEEE 802.1X-2020 Clause 9.16";\r
1157           }\r
1158           leaf dist-ckn {\r
1159             type dot1x-types:pae-ckn;\r
1160             config false;\r
1161             description\r
1162               "The CKN for the last CAK distributed (either by the\r
1163               actor or one of its partners). Null if this participant\r
1164               has not been used to distribute a CAK.";\r
1165             reference\r
1166               "IEEE 802.1X-2020 Clause 9.16";\r
1167           }\r
1168         }\r
1169       }\r
1170 \r
1171       container logon-nid {\r
1172         description\r
1173           "Contains the configuration and operational related NID\r
1174             information for the Logon Process. The Logon Process may\r
1175             use Network Identifiers (NIDs) to manage its use of\r
1176             authentication credentials, cached CAKs, and\r
1177             announcements.";\r
1178         leaf selected {\r
1179           type dot1x-types:pae-nid;\r
1180           description\r
1181             "The NID currently configured for use by an access\r
1182             controlled port when transmitting EAPOL-Start frames.\r
1183             Defaults to the null NID.";\r
1184           reference\r
1185             "IEEE 802.1X-2020 Clause 12.5";\r
1186         }\r
1187         uses nid-group;\r
1188 \r
1189         leaf connected {\r
1190           type dot1x-types:pae-nid;\r
1191           config false;\r
1192           description\r
1193             "The NID associated with the current connectivity\r
1194             (possibly unauthenticated) provided by the operation of\r
1195             the CP state machine.";\r
1196           reference\r
1197             "IEEE 802.1X-2020 Clause 12.5";\r
1198         }\r
1199         leaf requested {\r
1200           type dot1x-types:pae-nid;\r
1201           config false;\r
1202           description\r
1203             "The NID marked as Access requested in announcements, as\r
1204             determined from EAPOL-Start frames. Defaults to the\r
1205             selectedNID.";\r
1206           reference\r
1207             "IEEE 802.1X-2020 Clause 12.5";\r
1208         }\r
1209       }\r
1210 \r
1211       container announcer {\r
1212         when "../port-capabilities/announcements = 'true'" {\r
1213           description\r
1214             "Applies when the Announcements port capabilities are\r
1215             supported.";\r
1216         }\r
1217         description\r
1218           "Contains the configuration related Announcer\r
1219           information.";\r
1220         leaf enable {\r
1221           type boolean;\r
1222           default "false";\r
1223           description\r
1224             "A boolean indicating if the announcer is enabled or\r
1225             not.";\r
1226           reference\r
1227             "IEEE 802.1X-2020 Clause 10.4";\r
1228         }\r
1229         list announce {\r
1230           key "announces";\r
1231           description\r
1232             "Contains the configuration related status information\r
1233             that the Announcers announce in the network announcement\r
1234             of the PAE system.";\r
1235           leaf announces {\r
1236             type uint32;\r
1237             description\r
1238               "Key into Announce list.";\r
1239           }\r
1240           uses nid-group;\r
1241 \r
1242           leaf nid {\r
1243             type dot1x-types:pae-nid;\r
1244             config false;\r
1245             description\r
1246               "The NID information to identify a received network\r
1247               announcement for the PAE.";\r
1248             reference\r
1249               "IEEE 802.1X-2020 Clause 10.4";\r
1250           }\r
1251           leaf access-status {\r
1252             type dot1x-types:pae-access-status;\r
1253             config false;\r
1254             description\r
1255               "Access Status reflects connectivity as a result of\r
1256               authentication attempts, and might be set directly by\r
1257               the system or configured by AAA protocols.";\r
1258             reference\r
1259               "IEEE 802.1X-2020 Clause 10.4, Clause 12.5";\r
1260           }\r
1261         }\r
1262       }\r
1263 \r
1264       container listener {\r
1265         when "../port-capabilities/listener = 'true'" {\r
1266           description\r
1267             "Applies when the Listener port capability is\r
1268             supported.";\r
1269         }\r
1270         description\r
1271           "Contains the configuration and operational Listener\r
1272             node related information.";\r
1273         leaf enable {\r
1274           type boolean;\r
1275           default "false";\r
1276           description\r
1277             "A boolean indicating if the listener is enabled or\r
1278             not.";\r
1279           reference\r
1280             "IEEE 802.1X-2020 Clause 10.4";\r
1281         }\r
1282 \r
1283         list announcement {\r
1284           key "announcements";\r
1285           config false;\r
1286           description\r
1287             "A list containing the operational status information\r
1288             that the Listeners receive in the network announcement of\r
1289             the PAE system.";\r
1290           leaf announcements {\r
1291             type uint32;\r
1292             description\r
1293               "The key into the list of Announce nodes.";\r
1294           }\r
1295           leaf nid {\r
1296             type dot1x-types:pae-nid;\r
1297             description\r
1298               "The NID information to identify a received network\r
1299               announcement for the PAE.";\r
1300             reference\r
1301               "IEEE 802.1X-2020 Clause 10.4";\r
1302           }\r
1303           leaf kmd {\r
1304             type dot1x-types:pae-kmd;\r
1305             description\r
1306               "The KMD information for this received network\r
1307               announcement of the PAE.";\r
1308             reference\r
1309               "IEEE 802.1X-2020 Clause 10.4";\r
1310           }\r
1311           leaf specific {\r
1312             type boolean;\r
1313             description\r
1314               "This object indicates the received announcement\r
1315               information was specific to the receiving PAE, not\r
1316               generic for all systems attached to the LAN.";\r
1317             reference\r
1318               "IEEE 802.1X-2020 Clause 10.4";\r
1319           }\r
1320           leaf access-status {\r
1321             type dot1x-types:pae-access-status;\r
1322             description\r
1323               "The object information reflects connectivity as a\r
1324               result of authentication attempts for this received\r
1325               network announcement of the PAE.";\r
1326             reference\r
1327               "IEEE 802.1X-2020 Clause 10.4";\r
1328           }\r
1329           leaf requested-nid {\r
1330             type boolean;\r
1331             description\r
1332               "The authenticated access has been requested for this\r
1333               particular NID or not.";\r
1334             reference\r
1335               "IEEE 802.1X-2020 Clause 10.4";\r
1336           }\r
1337           leaf unauthenticated-access {\r
1338             type dot1x-types:pae-access-status;\r
1339             description\r
1340               "The access capability of the ports clients without\r
1341               authentication in this received network announcement of\r
1342               the PAE";\r
1343             reference\r
1344               "IEEE 802.1X-2020 Clause 10.4";\r
1345           }\r
1346           leaf access-capabilities {\r
1347             type dot1x-types:pae-nid-capabilities;\r
1348             description\r
1349               "The authentication and protection capabilities\r
1350               supported for the NID.";\r
1351             reference\r
1352               "IEEE 802.1X-2020 Clause 10.4";\r
1353           }\r
1354           list cipher-suites {\r
1355             key "index";\r
1356             description\r
1357               "A table contains the Cipher Suites information that\r
1358               the Listeners receive in the network announcement of\r
1359               the PAE system.";\r
1360             reference\r
1361               "IEEE 802.1X-2020 Clause 10.4";\r
1362             leaf index {\r
1363               type uint16;\r
1364               description\r
1365                 "Key into cipher suite entry.";\r
1366             }\r
1367             leaf cipherSuite {\r
1368               type string;\r
1369               description\r
1370                 "cipher Suite identifier.";\r
1371             }\r
1372             leaf cipherSuiteCapability {\r
1373               type uint32;\r
1374               description\r
1375                 "Cipher Suite capability.";\r
1376             }\r
1377           }\r
1378         }\r
1379       }\r
1380 \r
1381       container eapol-statistics {\r
1382         config false;\r
1383         description\r
1384           "Contains operational EAPOL statistics.";\r
1385         leaf invalid-eapol-frame-rx {\r
1386           when "../../port-type = 'real-port'" {\r
1387             description\r
1388               "Applies when port is Real Port.";\r
1389           }\r
1390           type yang:counter32;\r
1391           description\r
1392             "The number of invalid EAPOL frames of any type that\r
1393             have been received by this PAE.";\r
1394           reference\r
1395             "IEEE 802.1X-2020 Clause 12.8.1";\r
1396         }\r
1397         leaf eap-length-error-frames-rx {\r
1398           when "../../port-type = 'real-port'" {\r
1399             description\r
1400               "Applies when port is Real Port.";\r
1401           }\r
1402           type yang:counter32;\r
1403           description\r
1404             "The number of EAPOL frames that the Packet Body Length\r
1405             does not match a Packet Body that is contained within the\r
1406             octets of the received EAPOL MPDU in this PAE.";\r
1407           reference\r
1408             "IEEE 802.1X-2020 Clause 12.8.1";\r
1409         }\r
1410         leaf eapol-announcements-rx {\r
1411           when "../../port-type = 'real-port'" {\r
1412             description\r
1413               "Applies when port is Real Port.";\r
1414           }\r
1415           type yang:counter32;\r
1416           description\r
1417             "The number of EAPOL-Announcement frames that have been\r
1418             received by this PAE";\r
1419           reference\r
1420             "IEEE 802.1X-2020 Clause 12.8.1";\r
1421         }\r
1422         leaf eapol-announce-reqs-rx {\r
1423           when "../../port-type = 'real-port'" {\r
1424             description\r
1425               "Applies when port is Real Port.";\r
1426           }\r
1427           type yang:counter32;\r
1428           description\r
1429             "The number of EAPOL-Announcement-Req frames that have\r
1430             been received by this PAE.";\r
1431           reference\r
1432             "IEEE 802.1X-2020 Clause 12.8.1";\r
1433         }\r
1434         leaf eapol-port-unavailable {\r
1435           when "../../port-type = 'real-port' and\r
1436                 ../../port-capabilities/virtual-ports = 'true'" {\r
1437             description\r
1438               "Applies when port is Real Port and when the virtual\r
1439               ports capability is supported.";\r
1440           }\r
1441           type yang:counter32;\r
1442           description\r
1443             "The number of EAPOL frames that are discarded because\r
1444             their processing would require the creation of a virtual\r
1445             port, for which there are inadequate or constrained\r
1446             resources, or an existing virtual port and no such port\r
1447             currently exists. If virtual port is not supported, this\r
1448             object should be always 0.";\r
1449           reference\r
1450             "IEEE 802.1X-2020 Clause 12.8.1";\r
1451         }\r
1452         leaf eapol-start-frames-rx {\r
1453           type yang:counter32;\r
1454           description\r
1455             "The number of EAPOL-Start frames that have been received\r
1456             by this PAE";\r
1457           reference\r
1458             "IEEE 802.1X-2020 Clause 12.8.1";\r
1459         }\r
1460         leaf eapol-eap-frames-rx {\r
1461           type yang:counter32;\r
1462           description\r
1463             "The number of EAPOL-EAP frames that have been received\r
1464             by this PAE.";\r
1465           reference\r
1466             "IEEE 802.1X-2020 Clause 12.8.1";\r
1467         }\r
1468         leaf eapol-logoff-frames-rx {\r
1469           type yang:counter32;\r
1470           description\r
1471             "The number of EAPOL-Logoff frames that have been\r
1472             received by this PAE.";\r
1473           reference\r
1474             "IEEE 802.1X-2020 Clause 12.8.1";\r
1475         }\r
1476         leaf eapol-mk-no-cfn {\r
1477           type yang:counter32;\r
1478           description\r
1479             "The number of MKPDUs received with MKA not enabled or\r
1480             CKN not recognized in this PAE.";\r
1481           reference\r
1482             "IEEE 802.1X-2020 Clause 12.8.1";\r
1483         }\r
1484         leaf eapol-mk-invalid-frames-rx {\r
1485           type yang:counter32;\r
1486           description\r
1487             "The number of MKPDUs failing in message authentication\r
1488             on receipt process in this PAE.";\r
1489           reference\r
1490             "IEEE 802.1X-2020 Clause 12.8.1";\r
1491         }\r
1492         leaf last-eapol-frame-source {\r
1493           when "../../port-type = 'real-port'" {\r
1494             description\r
1495               "Applies when port is Real Port.";\r
1496           }\r
1497           type ieee:mac-address;\r
1498           description\r
1499             "The source MAC address of last received EAPOL frame by\r
1500             this PAE.";\r
1501           reference\r
1502             "IEEE 802.1X-2020 Clause 12.8.2";\r
1503         }\r
1504         leaf last-eapol-frame-version {\r
1505           type uint8;\r
1506           description\r
1507             "The version of last received EAPOL frame by this PAE.";\r
1508           reference\r
1509             "IEEE 802.1X-2020 Clause 12.8.2";\r
1510         }\r
1511         leaf eapol-supp-eap-frames-tx {\r
1512           when "../../port-type = 'real-port'" {\r
1513             description\r
1514               "Applies when port is Real Port.";\r
1515           }\r
1516           type yang:counter32;\r
1517           description\r
1518             "The number of EAPOL-EAP frames that have been\r
1519             transmitted by the supplicant of this PAE.";\r
1520           reference\r
1521             "IEEE 802.1X-2020 Clause 12.8.3";\r
1522         }\r
1523         leaf eapol-logoff-frames-tx {\r
1524           when "../../port-type = 'real-port'" {\r
1525             description\r
1526               "Applies when port is Real Port.";\r
1527           }\r
1528           type yang:counter32;\r
1529           description\r
1530             "The number of EAPOL-Logoff frames that have been\r
1531             transmitted by this PAE.";\r
1532           reference\r
1533             "IEEE 802.1X-2020 Clause 12.8.3";\r
1534         }\r
1535         leaf eapol-announcements-tx {\r
1536           when "../../port-type = 'real-port'" {\r
1537             description\r
1538               "Applies when port is Real Port.";\r
1539           }\r
1540           type yang:counter32;\r
1541           description\r
1542             "The number of EAPOL-Announcement frames that have been\r
1543             transmitted by this PAE.";\r
1544           reference\r
1545             "IEEE 802.1X-2020 Clause 12.8.3";\r
1546         }\r
1547         leaf eapol-announce-reqs-tx {\r
1548           when "../../port-type = 'real-port'" {\r
1549             description\r
1550               "Applies when port is Real Port.";\r
1551           }\r
1552           type yang:counter32;\r
1553           description\r
1554             "The number of EAPOL-Announcement-Req frames that have\r
1555             been transmitted by this PAE.";\r
1556           reference\r
1557             "IEEE 802.1X-2020 Clause 12.8.3";\r
1558         }\r
1559         leaf eapol-start-frames-tx {\r
1560           type yang:counter32;\r
1561           description\r
1562             "The number of EAPOL-Start frames that have been\r
1563             transmitted by this PAE.";\r
1564           reference\r
1565             "IEEE 802.1X-2020 Clause 12.8.3";\r
1566         }\r
1567         leaf eapol-auth-eap-frames-tx {\r
1568           type yang:counter32;\r
1569           description\r
1570             "The number of EAPOL-EAP frames that have been\r
1571             transmitted by the authenticator of this PAE.";\r
1572           reference\r
1573             "IEEE 802.1X-2020 Clause 12.8.3";\r
1574         }\r
1575         leaf eapol-mka-frames-tx {\r
1576           type yang:counter32;\r
1577           description\r
1578             "The number of EAPOL-MKA frames with no CKN information\r
1579             that have been transmitted by this PAE.";\r
1580           reference\r
1581             "IEEE 802.1X-2020 Clause 12.8.3";\r
1582         }\r
1583       }\r
1584 \r
1585       container logon-process {\r
1586         description\r
1587           "Contains configuration and operational system level\r
1588             information for each port to support the Logon Process(es)\r
1589             status information.";\r
1590         leaf logon {\r
1591           type boolean;\r
1592           default "false";\r
1593           description\r
1594             "A boolean indicating if the logon-process is enabled or\r
1595             not.";\r
1596           reference\r
1597             "IEEE 802.1X-2020 Clause 12.5";\r
1598         }\r
1599 \r
1600         leaf connect {\r
1601           type enumeration {\r
1602             enum pending {\r
1603               description\r
1604                 "Prevent connectivity by clearing the\r
1605                 controlledPortEnabled parameter.";\r
1606             }\r
1607             enum unauthenticated {\r
1608               description\r
1609                 "Provide unsecured connectivity, setting\r
1610                 controlledPortEnabled.";\r
1611             }\r
1612             enum authenticated {\r
1613               description\r
1614                 "Provide unsecured connectivity with authorization\r
1615                 data, setting controlledPortEnabled.";\r
1616             }\r
1617             enum secure {\r
1618               description\r
1619                 "Provide secure connectivity, using SAKs provided by\r
1620                 the KaY (when available) and setting\r
1621                 controlledPortEnabled when those keys are installed\r
1622                 and in use, as specified in detail by the CP state\r
1623                 machine.";\r
1624             }\r
1625           }\r
1626           config false;\r
1627           description\r
1628             "The Logon Process sets this variable to one of the\r
1629             above values.";\r
1630           reference\r
1631             "IEEE 802.1X-2020 Clause 12.3";\r
1632         }\r
1633         leaf port-valid {\r
1634           type boolean;\r
1635           config false;\r
1636           description\r
1637             "Set if Controlled Port communication is secured as\r
1638             specified by the MACsec control macsecProtect.";\r
1639           reference\r
1640             "IEEE 802.1X-2020 Clause 12.3";\r
1641         }\r
1642         list session-statistics {\r
1643           key "session-id";\r
1644           config false;\r
1645           description\r
1646             "Contains operational state nodes associated with the\r
1647             session statistics.";\r
1648           leaf session-id {\r
1649             type dot1x-types:pae-session-id;\r
1650             description\r
1651               "Key into list of session statistics.";\r
1652             reference\r
1653               "IEEE 802.1X-2020 Clause 12.5.1";\r
1654           }\r
1655           leaf user-name {\r
1656             type dot1x-types:pae-session-user-name;\r
1657             description\r
1658               "User name of the session.";\r
1659             reference\r
1660               "IEEE 802.1X-2020 Clause 12.5.1";\r
1661           }\r
1662           leaf octets-rx {\r
1663             type yang:counter64;\r
1664             description\r
1665               "The number of octets received in this session of this\r
1666               PAE.";\r
1667             reference\r
1668               "IEEE 802.1X-2020 Clause 12.5.1";\r
1669           }\r
1670           leaf octets-tx {\r
1671             type yang:counter64;\r
1672             description\r
1673               "The number of octets transmitted in this session of\r
1674               this PAE.";\r
1675             reference\r
1676               "IEEE 802.1X-2020 Clause 12.5.1";\r
1677           }\r
1678           leaf frames-rx {\r
1679             type yang:counter64;\r
1680             description\r
1681               "The number of packets received in this session of\r
1682               this PAE.";\r
1683             reference\r
1684               "IEEE 802.1X-2020 Clause 12.5.1";\r
1685           }\r
1686           leaf frames-tx {\r
1687             type yang:counter64;\r
1688             description\r
1689               "The number of packets transmitted in this session of\r
1690               this PAE.";\r
1691             reference\r
1692               "IEEE 802.1X-2020 Clause 12.5.1";\r
1693           }\r
1694           leaf time {\r
1695             type uint32;\r
1696             units "seconds";\r
1697             description\r
1698               "Session Time. The duration of the session in\r
1699               seconds.";\r
1700             reference\r
1701               "IEEE 802.1X-2020 Clause 12.5.1";\r
1702           }\r
1703           leaf terminate-cause {\r
1704             type enumeration {\r
1705               enum common_port_MAC_operational_false {\r
1706                 description\r
1707                   "Common Port for this PAE is not operational.";\r
1708               }\r
1709               enum system_access_control_disabled {\r
1710                 description\r
1711                   "The system-access-control node of the pae-system\r
1712                   is disabled or initialization process of this PAE\r
1713                   is invoked.";\r
1714               }\r
1715               enum eapol_logoff_rx {\r
1716                 description\r
1717                   "The PAE has received EAPOL-Logoff frame.";\r
1718               }\r
1719               enum eap_reauthentication_failure {\r
1720                 description\r
1721                   "EAP reauthentication has failed.";\r
1722               }\r
1723               enum mka-failure_termination {\r
1724                 description\r
1725                   "MKA failure or other MKA termination.";\r
1726               }\r
1727               enum new_session-beginning {\r
1728                 description\r
1729                   "New session beginning.";\r
1730               }\r
1731               enum not_terminated_yet {\r
1732                 description\r
1733                   "Not Terminated Yet.";\r
1734               }\r
1735             }\r
1736             description\r
1737               "The reason for the session termination.";\r
1738             reference\r
1739               "IEEE 802.1X-2020 Clause 12.5.1";\r
1740           }\r
1741         }\r
1742       }\r
1743     }\r
1744   }\r
1745 \r
1746   container nid-group {\r
1747     description\r
1748       "Contains both configuration and operational state nodes\r
1749       associated with the PAE NID group.";\r
1750     uses nid-group;\r
1751   }\r
1752 \r
1753 }\r