Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
351 changes: 351 additions & 0 deletions experimental/ieee/802/ieee802-types@2025-07-25.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,351 @@
module ieee802-types {
yang-version "1.1";
namespace urn:ieee:std:802.1Q:yang:ieee802-types;
prefix ieee;
organization
"IEEE 802.1 Working Group";
contact
"WG-URL: http://ieee802.org/1/
WG-EMail: stds-802-1-l@ieee.org

Contact: IEEE 802.1 Working Group Chair
Postal: C/O IEEE 802.1 Working Group
IEEE Standards Association
445 Hoes Lane
Piscataway, NJ 08854
USA

E-mail: stds-802-1-chairs@ieee.org";
description
"This module contains a collection of generally useful derived data
types for IEEE YANG models.

Copyright (C) IEEE (2023). All rights reserved.

This version of this YANG module is part of IEEE Std 802.1Q; see the
standard itself for full legal notices.";

revision 2025-07-25 {
description
"Published as part of IEEE Std 802.1Q-202X.

The following reference statement identifies each referenced IEEE
Standard as updated by applicable amendments.";
reference
"IEEE Std 802.1Q Bridges and Bridged Networks:
IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023.
IEEE Std 802 Overview and Architecture:
IEEE Std 802-2014.
IEEE 802.1AS Timing and Synchronization for Time-Sensitive Applications:
IEEE Std 802.1AS-2020.";
}
revision 2023-10-22 {
description
"Published as part of IEEE Std 802.1Qcw-2023.

The following reference statement identifies each referenced IEEE
Standard as updated by applicable amendments.";
reference
"IEEE Std 802.1Q Bridges and Bridged Networks:
IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023.
IEEE Std 802 Overview and Architecture:
IEEE Std 802-2014.
IEEE 802.1AS Timing and Synchronization for Time-Sensitive Applications:
IEEE Std 802.1AS-2020.";
}
revision 2022-10-29 {
description
"Published as part of IEEE Std 802.1Q-2022.";
reference
"IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
}
revision 2022-03-16 {
description
"Published as part of IEEE Std 802.1ABcu.";
reference
"IEEE Std 802.1AB-2016";
}
revision 2020-06-04 {
description
"Published as part of IEEE Std 802.1Qcx-2020. Second version.";
reference
"IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data
Model for Connectivity Fault Management.";
}
revision 2018-03-07 {
description
"Published as part of IEEE Std 802.1Q-2018. Initial version.";
reference
"IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";
}
typedef mac-address {
type string {
pattern "([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5})";
}
description
"The mac-address type represents a MAC address in the canonical format
and hexadecimal format specified by IEEE Std 802. The hexadecimal
representation uses uppercase characters.";
reference
"3.1, 8.1 of IEEE Std 802";
}
typedef chassis-id-subtype-type {
type enumeration {
enum chassis-component {
value 1;
description
"Represents a chassis identifier based on the value of the
entPhysicalAlias object (defined in IETF RFC 2737) for a chassis
component (i.e., an entPhysicalClass value of chassis(3)).";
}
enum interface-alias {
value 2;
description
"Represents a chassis identifier based on the value of the ifAlias
object (defined in IETF RFC 2863) for an interface on the
containing chassis.";
}
enum port-component {
value 3;
description
"Represents a chassis identifier based on the value of the
entPhysicalAlias object (defined in IETF RFC 2737) for a port or
backplane component (i.e., entPhysicalClass value of port(10) or
backplane(4)), within the containing chassis.";
}
enum mac-address {
value 4;
description
"Represents a chassis identifier based on the value of a unicast
source address (encoded in network byte order and IEEE 802.3
bit significance), of a port on the containing chassis as
defined in IEEE Std 802.";
}
enum network-address {
value 5;
description
"Represents a chassis identifier based on a network address,
associated with a particular chassis. The encoded address is
actually composed of two fields. The first field is a single
octet, representing the IANA AddressFamilyNumbers value for the
specific address type, and the second field is the network address
value.";
}
enum interface-name {
value 6;
description
"Represents a chassis identifier based on the value of the ifName
object (defined in IETF RFC 2863) for an interface on the
containing chassis.";
}
enum local {
value 7;
description
"Represents a chassis identifier based on a locally defined value.";
}
}
description
"The source of a chassis identifier.";
reference
"IEEE Std 802
IETF RFC 2737
IETF RFC 2863";
}
typedef chassis-id-type {
type string {
length "1..255";
}
description
"The format of a chassis identifier string. Objects of this type are
always used with an associated chassis-id-subtype object, which
identifies the format of the particular chassis-id object
instance.

If the associated chassis-id-subtype object has a value of
chassis-component, then the octet string identifies a particular
instance of the entPhysicalAlias object (defined in IETF RFC 2737) for
a chassis component (i.e., an entPhysicalClass value of chassis(3)).

If the associated chassis-id-subtype object has a value of
interface-alias, then the octet string identifies a particular
instance of the ifAlias object (defined in IETF RFC 2863) for an
interface on the containing chassis. If the particular ifAlias object
does not contain any values, another chassis identifier type should be
used.

If the associated chassis-id-subtype object has a value of
port-component, then the octet string identifies a particular instance
of the entPhysicalAlias object (defined in IETF RFC 2737) for a port
or backplane component within the containing chassis.

If the associated chassis-id-subtype object has a value of
mac-address, then this string identifies a particular unicast source
address (encoded in network byte order and IEEE 802.3 bit
significance), of a port on the containing chassis as defined in
IEEE Std 802.

If the associated chassis-id-subtype object has a value of
network-address, then this string identifies a particular network
address, encoded in network byte order, associated with one or more
ports on the containing chassis. The first octet contains the IANA
Address Family Numbers enumeration value for the specific address
type, and octets 2 through N contain the network address value in
network byte order.

If the associated chassis-id-subtype object has a value of
interface-name, then the octet string identifies a particular instance
of the ifName object (defined in IETF RFC 2863) for an interface on
the containing chassis. If the particular ifName object does not
contain any values, another chassis identifier type should be used.

If the associated chassis-id-subtype object has a value of local,
then this string identifies a locally assigned Chassis ID.";
reference
"IEEE Std 802
IETF RFC 2737
IETF RFC 2863";
}
typedef port-id-subtype-type {
type enumeration {
enum interface-alias {
value 1;
description
"Represents a port identifier based on the ifAlias MIB object,
defined in IETF RFC 2863.";
}
enum port-component {
value 2;
description
"Represents a port identifier based on the value of
entPhysicalAlias (defined in IETF RFC 2737) for a port component
(i.e., entPhysicalClass value of port(10)), within the containing
chassis.";
}
enum mac-address {
value 3;
description
"Represents a port identifier based on a unicast source address
(encoded in network byte order and IEEE 802.3 bit significance),
which has been detected by the agent and associated with a
particular port (IEEE Std 802).";
}
enum network-address {
value 4;
description
"Represents a port identifier based on a network address, detected
by the agent and associated with a particular port.";
}
enum interface-name {
value 5;
description
"Represents a port identifier based on the ifName MIB object,
defined in IETF RFC 2863.";
}
enum agent-circuit-id {
value 6;
description
"Represents a port identifier based on the agent-local identifier
of the circuit (defined in RFC 3046), detected by the agent and
associated with a particular port.";
}
enum local {
value 7;
description
"Represents a port identifier based on a value locally assigned.";
}
}
description
"The source of a particular type of port identifier.";
reference
"IEEE Std 802
IETF RFC 2737
IETF RFC 2863
IETF RFC 3046";
}
typedef port-id-type {
type string {
length "1..255";
}
description
"The format of a port identifier string. Objects of this type are
always used with an associated port-id-subtype object, which
identifies the format of the particular port-id object instance.

If the associated port-id-subtype object has a value of
interface-alias, then the octet string identifies a particular
instance of the ifAlias object (defined in IETF RFC 2863). If the
particular ifAlias object does not contain any values, another port
identifier type should be used.

If the associated port-id-subtype object has a value of
port-component, then the octet string identifies a particular instance
of the entPhysicalAlias object (defined in IETF RFC 2737) for a port
or backplane component.

If the associated port-id-subtype object has a value of
mac-address, then this string identifies a particular unicast source
address (encoded in network byte order and IEEE 802.3 bit
significance) associated with the port (IEEE Std 802).

If the associated port-id-subtype object has a value of
network-address, then this string identifies a network address
associated with the port. The first octet contains the IANA
AddressFamilyNumbers enumeration value for the specific address type,
and octets 2 through N contain the networkAddress address value in
network byte order.

If the associated port-id-subtype object has a value of
interface-name, then the octet string identifies a particular instance
of the ifName object (defined in IETF RFC 2863). If the particular
ifName object does not contain any values, another port identifier
type should be used.

If the associated port-id-subtype object has a value of
agent-circuit-id, then this string identifies a agent-local identifier
of the circuit (defined in RFC 3046).

If the associated port-id-subtype object has a value of local,
then this string identifies a locally assigned port ID.";
reference
"IEEE Std 802
IETF RFC 2737
IETF RFC 2863
IETF RFC 3046";
}
grouping rational-grouping {
description
"Definition of a non-negative rational number.";
leaf numerator {
type uint32;
description
"Numerator of the rational number.";
}
leaf denominator {
type uint32 {
range "1..4294967295";
}
description
"Denominator of the rational number.";
}
}
grouping ptp-time-grouping {
description
"This grouping specifies a PTP timestamp, represented as a 48-bit
unsigned integer number of seconds and a 32-bit unsigned integer
number of nanoseconds.";
reference
"6.4.3.4 of IEEE Std 802.1AS";
leaf seconds {
type uint64;
description
"This is the integer portion of the timestamp in units of seconds.
The upper 16 bits are always zero.";
}
leaf nanoseconds {
type uint32;
description
"This is the fractional portion of the timestamp in units of
nanoseconds. This value is always less than 10^9.";
}
}
}
5 changes: 2 additions & 3 deletions experimental/ieee/check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@ cwd=$(pwd)
ietf_dir="standard/ietf"
ieee_dir="standard/ieee"
ieee_experimental_dir="experimental/ieee"
#to_check="802.1 802.3 1588"
to_check="802.1 1588 1906.1"
to_check="802 802.1 802.3 1906.1"

# relax constraint for now
# add --ietf if you want to do strict IETF checking
ietf_dir_flag="--path $cwd/$ietf_dir/RFC/"
pyang_flags="--verbose --path $ietf_dir_flag --path $cwd/$ieee_dir/published/802 --path $cwd/$ieee_dir/published/802.1/ --path $cwd/$ieee_dir/published/802.3/ --path $cwd/$ieee_experimental_dir/1588/ --path $cwd/$ieee_experimental_dir/1588/ --path $cwd/$ieee_dir/draft/802.1/Qcw --path $cwd/$ieee_dir/draft/802.1/Qcr "
pyang_flags="--verbose $ietf_dir_flag --path $cwd/$ieee_dir/published/802 --path $cwd/$ieee_dir/published/802.1/ --path $cwd/$ieee_dir/published/802.3/ --path $cwd/$ieee_experimental_dir/1588/ --path $cwd/$ieee_experimental_dir/1588/ --path $cwd/$ieee_dir/draft/802.1/Qcw --path $cwd/$ieee_dir/draft/802.1/Qcr "

checkDir() {
local dir="$ieee_experimental_dir/$1"
Expand Down
2 changes: 1 addition & 1 deletion standard/ieee/check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ cwd=$(pwd)
ietf_dir="standard/ietf"
ieee_dir="standard/ieee"

to_check="draft/60802 draft/802.3 draft/802.1/qrev draft/802.1/ASrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AXdz draft/CB-2017-cor1 draft/802.1/DD draft/1588 draft/802 published/802 published/802.1 published/1588"
to_check="draft/60802 draft/802.3 draft/802.1/qrev draft/802.1/ASrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AXdz draft/CB-2017-cor1 draft/802.1/DD draft/1588 published/802 published/802.1 published/1588"

# relax constraint for now
# add --ietf if you want to do strict IETF checking
Expand Down
Loading