Initial version of the Python simulator
[sim/o1-ofhmp-interfaces.git] / base / docker / yang / ieee802-dot1q-types.yang
1 module ieee802-dot1q-types {
2   namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-types;
3   prefix dot1q-types;
4   import ietf-yang-types {
5     prefix yang;
6   }
7   organization
8     "IEEE 802.1 Working Group";
9   contact
10     "WG-URL: http://ieee802.org/1/
11     WG-EMail: stds-802-1-l@ieee.org
12     
13     Contact: IEEE 802.1 Working Group Chair
14     Postal: C/O IEEE 802.1 Working Group
15             IEEE Standards Association
16             445 Hoes Lane
17             Piscataway, NJ 08854
18             USA
19    
20     E-mail: stds-802-1-chairs@ieee.org";
21   description
22     "Common types used within dot1Q-bridge modules.";
23   revision 2020-06-04 {
24     description
25       "Published as part of IEEE Std 802.1Qcx-2020.
26       Second version.";
27     reference
28       "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks -
29       YANG Data Model for Connectivity Fault Management.";
30   }
31   revision 2018-03-07 {
32     description
33       "Published as part of IEEE Std 802.1Q-2018.
34       Initial version.";
35     reference
36       "IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";
37   }
38   
39   identity dot1q-vlan-type {
40     description
41       "Base identity from which all 802.1Q VLAN tag types are derived
42       from.";
43   }
44   identity c-vlan {
45     base dot1q-vlan-type;
46     description
47       "An 802.1Q Customer VLAN, using the 81-00 EtherType";
48     reference
49       "5.5 of IEEE Std 802.1Q-2018";
50   }
51   identity s-vlan {
52     base dot1q-vlan-type;
53     description
54       "An 802.1Q Service VLAN, using the 88-A8 EtherType originally
55       introduced in 802.1ad, and incorporated into 802.1Q (2011)";
56     reference
57       "5.6 of IEEE Std 802.1Q-2018";
58   }
59   typedef name-type {
60     type string {
61       length "0..32";
62     }
63     description
64       "A text string of up to 32 characters, of locally determined
65       significance.";
66   }
67   typedef port-number-type {
68     type uint32 {
69       range "1..65535";
70     }
71     description
72       "The port number of the Bridge port for which this entry
73       contains Bridge management information.";
74   }
75   typedef priority-type {
76     type uint8 {
77       range "0..7";
78     }
79     description
80       "A range of priorities from 0 to 7 (inclusive). The Priority
81       Code Point (PCP) is a 3-bit field that refers to the class of
82       service associated with an 802.1Q VLAN tagged frame. The field
83       specifies a priority value between 0 and 7, these values can be
84       used by quality of service (QoS) to prioritize different classes
85       of traffic.";
86   }
87   typedef vid-range-type {
88     type string {
89       pattern
90         "([1-9]"+
91         "[0-9]{0,3}"+
92         "(-[1-9][0-9]{0,3})?"+
93         "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)";
94     }
95     description
96       "A list of VLAN Ids, or non overlapping VLAN ranges, in
97       ascending order, between 1 and 4094.
98       
99       This type is used to match an ordered list of VLAN Ids, or
100       contiguous ranges of VLAN Ids. Valid VLAN Ids must be in the
101       range 1 to 4094, and included in the list in non overlapping
102       ascending order.
103       
104       For example: 1,10-100,250,500-1000";
105   }
106   typedef vlanid {
107     type uint16 {
108       range "1..4094";
109     }
110     description
111       "The vlanid type uniquely identifies a VLAN. This is the 12-bit
112       VLAN-ID used in the VLAN Tag header. The range is defined by the
113       referenced specification. This type is in the value set and its
114       semantics equivalent to the VlanId textual convention of the
115       SMIv2.";
116   }
117   typedef vlan-index-type {
118     type uint32 {
119       range "1..4094 | 4096..4294967295";
120     }
121     description
122       "A value used to index per-VLAN tables. Values of 0 and 4095 are
123       not permitted. The range of valid VLAN indices. If the value is
124       greater than 4095, then it represents a VLAN with scope local to
125       the particular agent, i.e., one without a global VLAN-ID
126       assigned to it. Such VLANs are outside the scope of IEEE 802.1Q,
127       but it is convenient to be able to manage them in the same way
128       using this YANG module.";
129     reference
130       "9.6 of IEEE Std 802.1Q-2018";
131   }
132   typedef mstid-type {
133     type uint32 {
134       range "1..4094";
135     }
136     description
137       "In an MSTP Bridge, an MSTID, i.e., a value used to identify a
138       spanning tree (or MST) instance";
139     reference
140       "13.8 of IEEE Std 802.1Q-2018";
141   }
142   typedef pcp-selection-type {
143     type enumeration {
144       enum 8P0D {
145         description
146           "8 priorities, 0 drop eligible";
147       }
148       enum 7P1D {
149         description
150           "7 priorities, 1 drop eligible";
151       }
152       enum 6P2D {
153         description
154           "6 priorities, 2 drop eligible";
155       }
156       enum 5P3D {
157         description
158           "5 priorities, 3 drop eligible";
159       }
160     }
161     description
162       "Priority Code Point selection types.";
163     reference
164       "12.6.2.5.3 of IEEE Std 802.1Q-2018
165       6.9.3 of IEEE Std 802.1Q-2018";
166   }
167   typedef protocol-frame-format-type {
168     type enumeration {
169       enum Ethernet {
170         description
171           "Ethernet frame format";
172       }
173       enum rfc1042 {
174         description
175           "RFC 1042 frame format";
176       }
177       enum snap8021H {
178         description
179           "SNAP 802.1H frame format";
180       }
181       enum snapOther {
182         description
183           "Other SNAP frame format";
184       }
185       enum llcOther {
186         description
187           "Other LLC frame format";
188       }
189     }
190     description
191       "A value representing the frame format to be matched.";
192     reference
193       "12.10.1.7.1 of IEEE Std 802.1Q-2018";
194   }
195   typedef ethertype-type {
196     type string {
197       pattern "[0-9a-fA-F]{2}-[0-9a-fA-F]{2}";
198     }
199     description
200       "The EtherType value represented in the canonical order defined
201       by IEEE 802. The canonical representation uses uppercase
202       characters.";
203     reference
204       "9.2 of IEEE Std 802-2014";
205   }
206   typedef dot1q-tag-type {
207     type identityref {
208       base dot1q-vlan-type;
209     }
210     description
211       "Identifies a specific 802.1Q tag type";
212     reference
213       "IEEE Std 802.1Q-2018";
214   }
215   typedef traffic-class-type {
216     type uint8 {
217       range "0..7";
218     }
219     description
220       "This is the numerical value associated with a traffic class in
221       a Bridge. Larger values are associated with higher priority
222       traffic classes.";
223     reference
224       "3.239 of IEEE Std 802.1Q-2018";
225   }
226   grouping dot1q-tag-classifier-grouping {
227     description
228       "A grouping which represents an 802.1Q VLAN, matching both the
229       EtherType and a single VLAN Id.";
230     leaf tag-type {
231       type dot1q-tag-type;
232       mandatory true;
233       description
234         "VLAN type";
235     }
236     leaf vlan-id {
237       type vlanid;
238       mandatory true;
239       description
240         "VLAN Id";
241     }
242   }
243   grouping dot1q-tag-or-any-classifier-grouping {
244     description
245       "A grouping which represents an 802.1Q VLAN, matching both the
246       EtherType and a single VLAN Id or 'any' to match on any VLAN Id.";
247     leaf tag-type {
248       type dot1q-tag-type;
249       mandatory true;
250       description
251         "VLAN type";
252     }
253     leaf vlan-id {
254       type union {
255         type vlanid;
256         type enumeration {
257           enum any {
258             value 4095;
259             description
260               "Matches 'any' VLAN in the range 1 to 4094 that is not
261               matched by a more specific VLAN Id match";
262           }
263         }
264       }
265       mandatory true;
266       description
267         "VLAN Id or any";
268     }
269   }
270   grouping dot1q-tag-ranges-classifier-grouping {
271     description
272       "A grouping which represents an 802.1Q VLAN that matches a range
273       of VLAN Ids.";
274     leaf tag-type {
275       type dot1q-tag-type;
276       mandatory true;
277       description
278         "VLAN type";
279     }
280     leaf vlan-ids {
281       type vid-range-type;
282       mandatory true;
283       description
284         "VLAN Ids";
285     }
286   }
287   grouping dot1q-tag-ranges-or-any-classifier-grouping {
288     description
289       "A grouping which represents an 802.1Q VLAN, matching both the
290       EtherType and a single VLAN Id, ordered list of ranges, or 'any'
291       to match on any VLAN Id.";
292     leaf tag-type {
293       type dot1q-tag-type;
294       mandatory true;
295       description
296         "VLAN type";
297     }
298     leaf vlan-id {
299       type union {
300         type vid-range-type;
301         type enumeration {
302           enum any {
303             value 4095;
304             description
305               "Matches 'any' VLAN in the range 1 to 4094.";
306           }
307         }
308       }
309       mandatory true;
310       description
311         "VLAN Ids or any";
312     }
313   }
314   grouping priority-regeneration-table-grouping {
315     description
316       "The priority regeneration table provides the ability to map
317       incoming priority values on a per-Port basis, under management
318       control.";
319     reference
320       "6.9.4 of IEEE Std 802.1Q-2018";
321     leaf priority0 {
322       type priority-type;
323       default "0";
324       description
325         "Priority 0";
326       reference
327         "12.6.2.3 of IEEE Std 802.1Q-2018
328         6.9.4 of IEEE Std 802.1Q-2018";
329     }
330     leaf priority1 {
331       type priority-type;
332       default "1";
333       description
334         "Priority 1";
335       reference
336         "12.6.2.3 of IEEE Std 802.1Q-2018
337         6.9.4 of IEEE Std 802.1Q-2018";
338     }
339     leaf priority2 {
340       type priority-type;
341       default "2";
342       description
343         "Priority 2";
344       reference
345         "12.6.2.3 of IEEE Std 802.1Q-2018
346         6.9.4 of IEEE Std 802.1Q-2018";
347     }
348     leaf priority3 {
349       type priority-type;
350       default "3";
351       description
352         "Priority 3";
353       reference
354         "12.6.2.3 of IEEE Std 802.1Q-2018
355         6.9.4 of IEEE Std 802.1Q-2018";
356     }
357     leaf priority4 {
358       type priority-type;
359       default "4";
360       description
361         "Priority 4";
362       reference
363         "12.6.2.3 of IEEE Std 802.1Q-2018
364         6.9.4 of IEEE Std 802.1Q-2018";
365     }
366     leaf priority5 {
367       type priority-type;
368       default "5";
369       description
370         "Priority 5";
371       reference
372         "12.6.2.3 of IEEE Std 802.1Q-2018
373         6.9.4 of IEEE Std 802.1Q-2018";
374     }
375     leaf priority6 {
376       type priority-type;
377       default "6";
378       description
379         "Priority 6";
380       reference
381         "12.6.2.3 of IEEE Std 802.1Q-2018
382         6.9.4 of IEEE Std 802.1Q-2018";
383     }
384     leaf priority7 {
385       type priority-type;
386       default "7";
387       description
388         "Priority 7";
389       reference
390         "12.6.2.3 of IEEE Std 802.1Q-2018
391         6.9.4 of IEEE Std 802.1Q-2018";
392     }
393   }
394   grouping pcp-decoding-table-grouping {
395     description
396       "The Priority Code Point decoding table enables the decoding of
397       the priority and drop-eligible parameters from the PCP.";
398     reference
399       "6.9.3 of IEEE Std 802.1Q-2018";
400     list pcp-decoding-map {
401       key "pcp";
402       description
403         "This map associates the priority code point field found in
404         the VLAN to a priority and drop eligible value based upon the
405         priority code point selection type.";
406       leaf pcp {
407         type pcp-selection-type;
408         description
409           "The priority code point selection type.";
410         reference
411           "12.6.2.7 of IEEE Std 802.1Q-2018
412           6.9.3 of IEEE Std 802.1Q-2018";
413       }
414       list priority-map {
415         key "priority-code-point";
416         description
417           "This map associated a priority code point value to priority
418           and drop eligible parameters.";
419         leaf priority-code-point {
420           type priority-type;
421           description
422             "Priority associated with the pcp.";
423           reference
424             "12.6.2.7 of IEEE Std 802.1Q-2018
425             6.9.3 of IEEE Std 802.1Q-2018";
426         }
427         leaf priority {
428           type priority-type;
429           description
430             "Priority associated with the pcp.";
431           reference
432             "12.6.2.7 of IEEE Std 802.1Q-2018
433             6.9.3 of IEEE Std 802.1Q-2018";
434         }
435         leaf drop-eligible {
436           type boolean;
437           description
438             "Drop eligible value for pcp";
439           reference
440             "12.6.2.7 of IEEE Std 802.1Q-2018
441             6.9.3 of IEEE Std 802.1Q-2018";
442         }
443       }
444     }
445   }
446   grouping pcp-encoding-table-grouping {
447     description
448       "The Priority Code Point encoding table encodes the priority and
449       drop-eligible parameters in the PCP field of the VLAN tag.";
450     reference
451       "12.6.2.9 of IEEE Std 802.1Q-2018
452       6.9.3 of IEEE Std 802.1Q-2018";
453     list pcp-encoding-map {
454       key "pcp";
455       description
456         "This map associated the priority and drop-eligible parameters
457         to the priority used to encode the PCP of the VLAN based upon
458         the priority code point selection type.";
459       leaf pcp {
460         type pcp-selection-type;
461         description
462           "The priority code point selection type.";
463         reference
464           "12.6.2.7 of IEEE Std 802.1Q-2018
465           6.9.3 of IEEE Std 802.1Q-2018";
466       }
467       list priority-map {
468         key "priority dei";
469         description
470           "This map associated the priority and drop-eligible
471           parameters to the priority code point field of the VLAN tag.";
472         leaf priority {
473           type priority-type;
474           description
475             "Priority associated with the pcp.";
476           reference
477             "12.6.2.7 of IEEE Std 802.1Q-2018
478             6.9.3 of IEEE Std 802.1Q-2018";
479         }
480         leaf dei {
481           type boolean;
482           description
483             "The drop eligible value.";
484           reference
485             "12.6.2 of IEEE Std 802.1Q-2018
486             8.6.6 of IEEE Std 802.1Q-2018";
487         }
488         leaf priority-code-point {
489           type priority-type;
490           description
491             "PCP value for priority when DEI value";
492           reference
493             "12.6.2.9 of IEEE Std 802.1Q-2018
494             6.9.3 of IEEE Std 802.1Q-2018";
495         }
496       }
497     }
498   }
499   grouping service-access-priority-table-grouping {
500     description
501       "The Service Access Priority Table associates a received
502       priority with a serice access priority.";
503     reference
504       "12.6.2.17 of IEEE Std 802.1Q-2018
505       6.13.1 of IEEE Std 802.1Q-2018";
506     leaf priority0 {
507       type priority-type;
508       default "0";
509       description
510         "Service access priority value for priority 0";
511       reference
512         "12.6.2.17 of IEEE Std 802.1Q-2018
513         6.13.1 of IEEE Std 802.1Q-2018";
514     }
515     leaf priority1 {
516       type priority-type;
517       default "1";
518       description
519         "Service access priority value for priority 1";
520       reference
521         "12.6.2.17 of IEEE Std 802.1Q-2018
522         6.13.1 of IEEE Std 802.1Q-2018";
523     }
524     leaf priority2 {
525       type priority-type;
526       default "2";
527       description
528         "Service access priority value for priority 2";
529       reference
530         "12.6.2.17 of IEEE Std 802.1Q-2018
531         6.13.1 of IEEE Std 802.1Q-2018";
532     }
533     leaf priority3 {
534       type priority-type;
535       default "3";
536       description
537         "Service access priority value for priority 3";
538       reference
539         "12.6.2.17 of IEEE Std 802.1Q-2018
540         6.13.1 of IEEE Std 802.1Q-2018";
541     }
542     leaf priority4 {
543       type priority-type;
544       default "4";
545       description
546         "Service access priority value for priority 4";
547       reference
548         "12.6.2.17 of IEEE Std 802.1Q-2018
549         6.13.1 of IEEE Std 802.1Q-2018";
550     }
551     leaf priority5 {
552       type priority-type;
553       default "5";
554       description
555         "Service access priority value for priority 5";
556       reference
557         "12.6.2.17 of IEEE Std 802.1Q-2018
558         6.13.1 of IEEE Std 802.1Q-2018";
559     }
560     leaf priority6 {
561       type priority-type;
562       default "6";
563       description
564         "Service access priority value for priority 6";
565       reference
566         "12.6.2.17 of IEEE Std 802.1Q-2018
567         6.13.1 of IEEE Std 802.1Q-2018";
568     }
569     leaf priority7 {
570       type priority-type;
571       default "7";
572       description
573         "Service access priority value for priority 7";
574       reference
575         "12.6.2.17 of IEEE Std 802.1Q-2018
576         6.13.1 of IEEE Std 802.1Q-2018";
577     }
578   }
579   grouping traffic-class-table-grouping {
580     description
581       "The Traffic Class Table models the operations that can be
582       performed on, or inquire about, the current contents of the
583       Traffic Class Table (8.6.6) for a given Port.";
584     reference
585       "12.6.3 of IEEE Std 802.1Q-2018
586       8.6.6 of IEEE Std 802.1Q-2018";
587     list traffic-class-map {
588       key "priority";
589       description
590         "The priority index into the traffic class table.";
591       leaf priority {
592         type priority-type;
593         description
594           "The priority of the traffic class entry.";
595         reference
596           "8.6.6 of IEEE Std 802.1Q-2018";
597       }
598       list available-traffic-class {
599         key "num-traffic-class";
600         description
601           "The traffic class index associated with a given priority
602           within the traffic class table.";
603         reference
604           "8.6.6 of IEEE Std 802.1Q-2018";
605         leaf num-traffic-class {
606           type uint8 {
607             range "1..8";
608           }
609           description
610             "The available number of traffic classes.";
611           reference
612             "8.6.6 of IEEE Std 802.1Q-2018";
613         }
614         leaf traffic-class {
615           type traffic-class-type;
616           description
617             "The traffic class index associated with a given traffic
618             class entry.";
619           reference
620             "8.6.6 of IEEE Std 802.1Q-2018";
621         }
622       }
623     }
624   }
625   grouping port-map-grouping {
626     description
627       "A set of control indicators, one for each Port. A Port Map,
628       containing a control element for each outbound Port";
629     reference
630       "8.8.1 of IEEE Std 802.1Q-2018
631       8.8.2 of IEEE Std 802.1Q-2018";
632     list port-map {
633       key "port-ref";
634       description
635         "The list of entries composing the port map.";
636       leaf port-ref {
637         type port-number-type;
638         description
639           "The interface port reference associated with this map.";
640         reference
641           "8.8.1 of IEEE Std 802.1Q-2018";
642       }
643       choice map-type {
644         description
645           "Type of port map";
646         container static-filtering-entries {
647           description
648             "Static filtering entries attributes.";
649           leaf control-element {
650             type enumeration {
651               enum forward {
652                 description
653                   "Forwarded, independently of any dynamic filtering
654                   information held by the FDB.";
655               }
656               enum filter {
657                 description
658                   "Filtered, independently of any dynamic filtering
659                   information.";
660               }
661               enum forward-filter {
662                 description
663                   "Forwarded or filtered on the basis of dynamic
664                   filtering information, or on the basis of the
665                   default Group filtering behavior for the outbound
666                   Port (8.8.6) if no dynamic filtering information is
667                   present specifically for the MAC address.";
668               }
669             }
670             description
671               "containing a control element for each outbound Port,
672               specifying that a frame with a destination MAC address,
673               and in the case of VLAN Bridge components, VID that
674               meets this specification.";
675             reference
676               "8.8.1 of IEEE Std 802.1Q-2018";
677           }
678           leaf connection-identifier {
679             type port-number-type;
680             description
681               "A Port MAP may contain a connection identifier (8.8.12)
682               for each outbound port. The connection identifier may be
683               associated with the Bridge Port value maintained in a
684               Dynamic Filtering Entry of the FDB for Bridge Ports.";
685             reference
686               "8.8.1 of IEEE Std 802.1Q-2018
687               8.8.12 of IEEE Std 802.1Q-2018";
688           }
689         }
690         container static-vlan-registration-entries {
691           description
692             "Static VLAN registration entries.";
693           leaf registrar-admin-control {
694             type enumeration {
695               enum fixed-new-ignored {
696                 description
697                   "Registration Fixed (New ignored).";
698               }
699               enum fixed-new-propagated {
700                 description
701                   "Registration Fixed (New propagated.";
702               }
703               enum forbidden {
704                 description
705                   "Registration Forbidden.";
706               }
707               enum normal {
708                 description
709                   "Normal Registration.";
710               }
711             }
712             description
713               "The Registrar Administrative Control values for MVRP
714               and MIRP for the VID.";
715             reference
716               "8.8.2 of IEEE Std 802.1Q-2018";
717           }
718           leaf vlan-transmitted {
719             type enumeration {
720               enum tagged {
721                 description
722                   "VLAN-tagged";
723               }
724               enum untagged {
725                 description
726                   "VLAN-untagged";
727               }
728             }
729             description
730               "Whether frames are to be VLAN-tagged or untagged when
731               transmitted.";
732             reference
733               "8.8.2 of IEEE Std 802.1Q-2018";
734           }
735         }
736         container mac-address-registration-entries {
737           description
738             "MAC address registration entries attributes.";
739           leaf control-element {
740             type enumeration {
741               enum registered {
742                 description
743                   "Forwarded, independently of any dynamic filtering
744                   information held by the FDB.";
745               }
746               enum not-registered {
747                 description
748                   "Filtered, independently of any dynamic filtering
749                   information.";
750               }
751             }
752             description
753               "containing a control element for each outbound Port,
754               specifying that a frame with a destination MAC address,
755               and in the case of VLAN Bridge components, VID that
756               meets this specification.";
757             reference
758               "8.8.4 of IEEE Std 802.1Q-2018";
759           }
760         }
761         container dynamic-vlan-registration-entries {
762           description
763             "Dynamic VLAN registration entries attributes.";
764           leaf control-element {
765             type enumeration {
766               enum registered {
767                 description
768                   "Forwarded, independently of any dynamic filtering
769                   information held by the FDB.";
770               }
771             }
772             description
773               "containing a control element for each outbound Port,
774               specifying that a frame with a destination MAC address,
775               and in the case of VLAN Bridge components, VID that
776               meets this specification.";
777             reference
778               "8.8.5 of IEEE Std 802.1Q-2018";
779           }
780         }
781         container dynamic-reservation-entries {
782           description
783             "Dynamic reservation entries attributes.";
784           leaf control-element {
785             type enumeration {
786               enum forward {
787                 description
788                   "Forwarded, independently of any dynamic filtering
789                   information held by the FDB.";
790               }
791               enum filter {
792                 description
793                   "Filtered, independently of any dynamic filtering
794                   information.";
795               }
796             }
797             description
798               "Containing a control element for each outbound Port,
799               specifying that a frame with a destination MAC address,
800               and in the case of VLAN Bridge components, VID that
801               meets this specification.";
802             reference
803               "8.8.7 of IEEE Std 802.1Q-2018";
804           }
805         }
806         container dynamic-filtering-entries {
807           description
808             "Dynamic filtering entries attributes.";
809           leaf control-element {
810             type enumeration {
811               enum forward {
812                 description
813                   "Forwarded, independently of any dynamic filtering
814                   information held by the FDB.";
815               }
816             }
817             description
818               "Containing a control element for each outbound Port,
819               specifying that a frame with a destination MAC address,
820               and in the case of VLAN Bridge components, VID that
821               meets this specification.";
822             reference
823               "8.8.3 of IEEE Std 802.1Q-2018";
824           }
825         }
826       }
827     }
828   }
829   grouping bridge-port-statistics-grouping {
830     description
831       "Grouping of bridge port statistics.";
832     reference
833       "12.6.1.1.3 of IEEE Std 802.1Q-2018";
834     leaf delay-exceeded-discards {
835       type yang:counter64;
836       description
837         "The number of frames discarded by this port due to excessive
838         transit delay through the Bridge. It is incremented by both
839         transparent and source route Bridges.";
840       reference
841         "12.6.1.1.3 of IEEE Std 802.1Q-2018
842         8.6.6 of IEEE Std 802.1Q-2018";
843     }
844     leaf mtu-exceeded-discards {
845       type yang:counter64;
846       description
847         "The number of frames discarded by this port due to an
848         excessive size. It is incremented by both transparent and
849         source route Bridges.";
850       reference
851         "12.6.1.1.3, item g) of IEEE Std 802.1Q-2018";
852     }
853     leaf frame-rx {
854       type yang:counter64;
855       description
856         "The number of frames that have been received by this port
857         from its segment. Note that a frame received on the interface
858         corresponding to this port is only counted by this object if
859         and only if it is for a protocol being processed by the local
860         bridging function, including Bridge management frames.";
861       reference
862         "12.6.1.1.3 of IEEE Std 802.1Q-2018";
863     }
864     leaf octets-rx {
865       type yang:counter64;
866       description
867         "The total number of octets in all valid frames received
868         (including BPDUs, frames addressed to the Bridge as an end
869         station, and frames that were submitted to the Forwarding
870         Process).";
871       reference
872         "12.6.1.1.3 of IEEE Std 802.1Q-2018";
873     }
874     leaf frame-tx {
875       type yang:counter64;
876       description
877         "The number of frames that have been transmitted by this port
878         to its segment. Note that a frame transmitted on the interface
879         corresponding to this port is only counted by this object if
880         and only if it is for a protocol being processed by the local
881         bridging function, including Bridge management frames.";
882     }
883     leaf octets-tx {
884       type yang:counter64;
885       description
886         "The total number of octets that have been transmitted by this
887         port to its segment.";
888     }
889     leaf discard-inbound {
890       type yang:counter64;
891       description
892         "Count of received valid frames that were discarded (i.e.,
893         filtered) by the Forwarding Process.";
894       reference
895         "12.6.1.1.3 of IEEE Std 802.1Q-2018";
896     }
897     leaf forward-outbound {
898       type yang:counter64;
899       description
900         "The number of frames forwarded to the associated MAC Entity
901         (8.5).";
902       reference
903         "12.6.1.1.3 of IEEE Std 802.1Q-2018";
904     }
905     leaf discard-lack-of-buffers {
906       type yang:counter64;
907       description
908         "The count of frames that were to be transmitted through the
909         associated Port but were discarded due to lack of buffers.";
910       reference
911         "12.6.1.1.3 of IEEE Std 802.1Q-2018";
912     }
913     leaf discard-transit-delay-exceeded {
914       type yang:counter64;
915       description
916         "The number of frames discarded by this port due to excessive
917         transit delay through the Bridge. It is incremented by both
918         transparent and source route Bridges.";
919       reference
920         "12.6.1.1.3 of IEEE Std 802.1Q-2018";
921     }
922     leaf discard-on-error {
923       type yang:counter64;
924       description
925         "The number of frames that were to be forwarded on the
926         associated MAC but could not be transmitted (e.g., frame would
927         be too large, 6.5.8).";
928       reference
929         "12.6.1.1.3 of IEEE Std 802.1Q-2018";
930     }
931   }
932 }