diff --git a/PON Management/East to West Traffic/an-l2-forwarding-policies.yang b/PON Management/East to West Traffic/an-l2-forwarding-policies.yang new file mode 100644 index 0000000000000000000000000000000000000000..b08aee937bc80f4128df61ad68bb2cc3a57c2c06 --- /dev/null +++ b/PON Management/East to West Traffic/an-l2-forwarding-policies.yang @@ -0,0 +1,122 @@ +module an-l2-forwarding-policies { + yang-version 1.1; + namespace "urn:an:yang:an-l2-forwarding-policies"; + prefix "an-l2-fwd-pol"; + + import bbf-l2-forwarding { + prefix "bbf-l2-fwd"; + } + import bbf-dot1q-types { + prefix bbf-dot1qt; + } + + organization + "ETSI"; + contact + "Editor: Liang Zhenming, China Telecom + + + Editor: Yang Ziyao, China Telecom + + + Editor: Wang Kaiyue, China Telecom + + + Editor: Lin Kangwen, Huawei + + + Editor: Zhang Jianping, Huawei + + + Editor: Liang Fan, CICT + + + Editor: Li Rui, CICT + + + Editor: Xie Yu, ZTE + + + Editor: Wan Qigen, ZTE + + + Leader: Zhang Dezhi, China Telecom + "; + + revision 2024-10-18; + + feature forwarding-policy-profiles { + description + "Indicates support for forwarding policy profiles."; + } + feature forwarding-horizon { + description + "Indicates support for east west traffic."; + } + + augment "/bbf-l2-fwd:forwarding" { + if-feature "forwarding-policy-profiles"; + description + "Augment the configuration nodes associated with layer 2 + forwarding with forwarding policy profile objects."; + + container forwarding-policy-profiles { + description + "Contains a set of forwarding-policy-profiles."; + + list forwarding-policy-profile { + key "name"; + description + "The configuration of a forwarding policy profile."; + + leaf name { + type string { + length "0..32"; + } + description + "The name of a forwarding policy profile."; + } + container forwarding-horizon { + if-feature "forwarding-horizon"; + leaf forwarding-horizon-switch { + type boolean; + default "false"; + description + "Enable / disable the east-west-traffic."; + } + } + } + } + } + + augment "/bbf-l2-fwd:forwarding/bbf-l2-fwd:forwarders/bbf-l2-fwd:forwarder" { + if-feature "forwarding-policy-profiles"; + description + "Augment the forwarder configuration to add a reference to a + forwarding policies profile."; + + list forwarding-policy { + key "name"; + leaf name { + type string { + length "0..32"; + } + description + "The name of a forwarding policy."; + } + leaf vlan-id { + type bbf-dot1qt:vlan-id-range; + description + "The vlan id of the associated profile."; + } + leaf forwarding-policy-profile { + type leafref { + path '/bbf-l2-fwd:forwarding/an-l2-fwd-pol:forwarding-policy-profiles' + + '/an-l2-fwd-pol:forwarding-policy-profile/an-l2-fwd-pol:name'; + } + description + "A reference to a forwarding policies profile."; + } + } + } +} \ No newline at end of file diff --git a/PON Management/Protection Management/an-pon-protection-group.yang b/PON Management/Protection Management/an-pon-protection-group.yang new file mode 100644 index 0000000000000000000000000000000000000000..9cf5bd2dba3d5c604da353e049e35946455c24fc --- /dev/null +++ b/PON Management/Protection Management/an-pon-protection-group.yang @@ -0,0 +1,386 @@ +module an-pon-protection-group { + yang-version 1.1; + namespace "urn:an:yang:an-pon-protection-group"; + prefix an-pon-pg; + + import ietf-interfaces { + prefix if; + } + import ietf-inet-types { + prefix inet; + } + import an-protection-group { + prefix an-pg; + } + import iana-if-type { + prefix ianaift; + } + import iana-crypt-hash { + prefix ianach; + } + + organization + "ETSI"; + + contact + "Editor: Liang Zhenming, China Telecom + + + Editor: Yang Ziyao, China Telecom + + + Editor: Wang Kaiyue, China Telecom + + + Editor: Tang Jian, China Telecom + + + Editor: Yao Xinwen, Huawei + + + Editor: Zhang Jianping, Huawei + + + Editor: Liang Fan, CICT + + + Editor: Li Rui, CICT + + + Editor: Xie Yu, ZTE + + + Editor: Wan Qigen, ZTE + + + Leader: Zhang Dezhi, China Telecom + "; + + + revision 2024-10-18 { + description + "Initial Version."; + reference + "A YANG Data Model for protect Management"; + } + + typedef suppress-flapping-type { + type enumeration { + enum enable { + description + "Enables flapping suppression for standby ports in a type B protection group. + If this function is enabled, the traditional switching mechanism is used + for type B protection group switching."; + } + enum disable { + description + "Disables flapping suppression for standby ports in a type B protection group. + If this function is disabled, the fast switching mechanism is used for type B + protection group switching."; + } + } + default "disable"; + description + "Type B protection group flapping suppression for standby ports."; + } + + typedef session-status { + type enumeration { + enum normal { + description + "Session status is normal."; + } + enum failed { + description + "Session status is failed. + Check whether the peer-node IP address, port, + key, and member configured on a device are the same as local-node IP address, + port, key, and member configured on the other device in the protection group + if the handshake status is failed"; + } + } + description + "Indicates the handshake status of two members in a protection group."; + } + + augment "/an-pg:protection-groups/an-pg:protection-group" { + description + "PON protection group extend data"; + container uplink-monitor { + description + "Configure uplink monitor data."; + choice uplink-monitor-cfg { + description + "Bind or unbind a Type B dual parenting protect group to an uplink port."; + case bfd { + description + "Indicates index of objects managed by BFD session."; + leaf session-name { + type string { + length "0..15"; + } + description + "Indicates the name of the BFD session which will be bound/unbound. + Empty string indicates unbind operation."; + } + } + case eth-port { + description + "Indicates indexe of objects managed by an ethernetCsmacd interface."; + leaf name { + type if:interface-ref; + must "/if:interfaces/if:interface[if:name = current()] + /if:type = 'ianaift:ethernetCsmacd' or /if:interfaces/if:interface[if:name = current()] + /if:type = 'ianaift:ieee8023adLag'" { + error-message "must reference an ethernetCsmacd interface or reference an ieee8023adLag interface."; + } + description + "Indicates the name of Ethernet port which will be bound/unbound. + Empty string indicates unbind operation."; + } + } + case mep { + description + "Indicates indexes of objects managed by an MEP, + md-index, ma-index, mep-index must be issued together. + When they're both 0 indicates unbind operation."; + leaf md-index { + type uint32 { + range "0..7"; + } + description + "Indicates the MD index which will be bound/unbound."; + } + leaf ma-index { + type uint32 { + range "0..4095"; + } + description + "Indicates the MA index which will be bound/unbound."; + } + leaf mep-index { + type uint32 { + range "0..8191"; + } + description + "Indicates the MEP index which will be bound/unbound."; + } + } + } + leaf uplink-monitor-state { + type enumeration { + enum bind-down { + value 1; + description + "Uplink status is down."; + } + enum bind-up { + value 2; + description + "Uplink status is up."; + } + enum unbind { + value 3; + description + "Unbound uplink monitor."; + } + } + config false; + description + "Uplink monitor status."; + } + } + } + + augment "/an-pg:protection-groups/an-pg:protection-group" { + description + "PON protection group extend data"; + container typeb { + when "(../an-pg:protect-object = 'an-pg:gpon-uni-port') or (../an-pg:protect-object = 'an-pg:epon-uni-port')"; + description + "PON typeb protection group config data"; + leaf stand-typeb { + when "../../an-pg:protect-object = 'an-pg:gpon-uni-port'"; + type boolean; + default "false"; + description + "Indicates whether a type B protection network is a standard type B network. + If only one N:2 optical splitter is deployed on a + type B protection network (no limit on the number of N:1 optical splitters) + and the distance difference between all ONUs and two OLT ports is the same, + the type B protection network is a standard type B network"; + } + leaf standby-port-suppress-flapping { + type suppress-flapping-type; + description + "Indicates whether to enable flapping suppression for standby ports + in a type B protection group. If this function is disabled, + the fast switching mechanism is used for type B protection group switching; + if this function is enabled, the traditional switching mechanism is used + for type B protection group switching"; + } + } + } + + augment "/an-pg:protection-groups/an-pg:protection-group" { + description + "Augment PON protection dual-parenting group data"; + container dual-parenting { + when "../an-pg:dual-parenting-flag = 'true'"; + description + "PON protection dual-parenting group data"; + leaf peer-node-name { + type leafref { + path "/an-pg:protection-groups" + + "/an-pon-pg:dual-parenting-peer-node/an-pon-pg:name"; + } + description + "The peer node name of dual parenting protect group. + The empty string indicates that the peer node name is deleted"; + } + leaf peer-member { + type string; + description + "Indicates the peer member of dual parenting protect group."; + } + leaf handshake-status { + type session-status; + config false; + description + "Indicates the handshake status between the local + member and peer member of dual parenting protect group"; + } + } + } + + augment "/an-pg:protection-groups" { + description + "Configure the PS dual parenting protection group sync data."; + container dual-parenting-sync { + description + "PON dual-parenting protection group local data"; + leaf-list local-node-ports { + type uint32; + description + "Port number of the local node."; + } + leaf local-node-ip-addr { + type inet:ipv4-address-no-zone; + description + "The local-node IP address must be consistent with the IP address + of the Layer 3 interface of the current device, and it cannot + be the multicast IP address or broadcast IP address."; + } + leaf local-node-communication-key { + type ianach:crypt-hash; + description + "Indicates the communication key of the local node."; + } + leaf syn-switch { + type enumeration { + enum enable { + value 0; + description + "Enable the data synchronization switch."; + } + enum disable { + value 1; + description + "Disable the switch."; + } + } + default "disable"; + description + "The synchronization switch between 2 members + in a dual-parenting protection group. + Data synchronization can be enabled only when the + local-node-ip-addr, local-node-ports and local-node-communication-key is set"; + } + } + } + + augment "/an-pg:protection-groups" { + description + "PON dual parenting protection group extend data."; + list dual-parenting-peer-node { + key "name"; + description + "Indicates the peer-node name, IP address, port ID, key, and status in a dual parenting protection group."; + leaf name { + type string { + length "1..15"; + } + description + "The dual parenting peer node name."; + } + leaf ip-addr { + type inet:ipv4-address-no-zone; + description + "The ip address of the peer node."; + } + leaf port { + type uint32; + description + "The port number of the peer node."; + } + leaf communication-key { + type ianach:crypt-hash; + description + "Indicates the communication key of the peer node."; + } + leaf connect-status { + type session-status; + config false; + description + "The connect status between the dual parenting local node and peer node."; + } + } + } + + augment "/an-pg:protection-groups/an-pg:protection-group" { + description + "Augment onu forward mode in upstream direction for type-d + protection type and load-balance mode."; + leaf onu-forward-mode { + when "((/an-pg:protection-groups/an-pg:protection-group" + + "/an-pg:protect-object = 'an-pg:gpon-uni-ont')" + + "or" + + "(/an-pg:protection-groups/an-pg:protection-group" + + "/an-pg:protect-object = 'an-pg:epon-uni-ont'))" + + "and" + + "(/an-pg:protection-groups/an-pg:protection-group" + + "/an-pg:work-mode = 'an-pg:load-balance')"; + type enumeration { + enum ingress { + description + "Indicates that the onu distribute packets based on + the source MAC address."; + } + enum egress-ingress { + description + "Indicates that the aggregator distribute packets based on + the source MAC address and destination MAC address."; + } + enum mpls-label { + description + "Indicates that the aggregator distribute packets based on + the MPLS label."; + } + enum src-dst-ip { + description + "Indicates that the aggregator distribute packets based on + the source IP address and destination IP address."; + } + enum ip-enhance { + description + "Indicates that the aggregator distribute packets based on + the IP address and protocol number."; + } + } + default "ingress"; + description + "Indicates packet distribution mode of the onu for type-d + protection and load-balance mode."; + } + } +} \ No newline at end of file diff --git a/PON Management/Protection Management/an-protection-group.yang b/PON Management/Protection Management/an-protection-group.yang new file mode 100644 index 0000000000000000000000000000000000000000..00b2145ce52a2675400446257ad85e3855db0308 --- /dev/null +++ b/PON Management/Protection Management/an-protection-group.yang @@ -0,0 +1,626 @@ +module an-protection-group { + yang-version 1.1; + namespace "urn:bbf:yang:an-protection-group"; + prefix an-pg; + + import ietf-interfaces { + prefix if; + } + import bbf-xpon-if-type { + prefix bbf-xponift; + } + import iana-if-type { + prefix ianaift; + } + import bbf-yang-types { + prefix bbf-yang; + } + + organization + "ETSI"; + contact + "Editor: Liang Zhenming, China Telecom + + + Editor: Yang Ziyao, China Telecom + + + Editor: Wang Kaiyue, China Telecom + + + Editor: Tang Jian, China Telecom + + + Editor: Yao Xinwen, Huawei + + + Editor: Zhang Jianping, Huawei + + + Editor: Liang Fan, CICT + + + Editor: Li Rui, CICT + + + Editor: Xie Yu, ZTE + + + Editor: Wan Qigen, ZTE + + + Leader: Zhang Dezhi, China Telecom + "; + + + revision 2024-10-18 { + description + "Initial Version."; + reference + "A YANG Data Model for protect Management"; + } + + + identity protect-object-type-base { + description + "Protect group object type."; + } + + identity eth-nni-port { + base protect-object-type-base; + description + "Indicates protection between upstream Ethernet ports."; + } + + identity eth-nni-lag { + base protect-object-type-base; + description + "Indicates protection between two ports in an aggregation + group."; + } + + identity epon-uni-port { + base protect-object-type-base; + description + "Indicates protection between EPON service ports.."; + } + + identity gpon-uni-port { + base protect-object-type-base; + description + "Indicates protection between GPON service ports."; + } + + identity epon-uni-ont { + base protect-object-type-base; + description + "Indicates protection between EPON ONUs."; + } + + identity gpon-uni-ont { + base protect-object-type-base; + description + "Indicates protection between GPON ONUs."; + } + + identity protect-group-work-mode-base { + description + "Indicates the working mode of the Protect group."; + } + + identity time-delay { + base protect-group-work-mode-base; + description + "Indicates the delay detection mode. + In this mode, the active member is enabled and the standby + member is disabled. When the active member fails, the standby + member is enabled. + In a PON protection network, this mode indicates a 1:1 + protection architecture, and the protect object should be + xpon-uni-port or xpon-uni-ont(ont contains one pon MAC and two + transceivers)."; + } + + identity port-state { + base protect-group-work-mode-base; + description + "Indicates the port status detection mode. + In this mode, both members in the PG are enabled, + but only the active member forwards data. + In a PON protection network, this mode indicates a 1:1 + protection architecture, and the protect object should be + xpon-uni-ont(ont contains two pon MACs and two transceivers)."; + } + + identity load-balance { + base protect-group-work-mode-base; + description + "Indicates the load-balance mode. + Both the active and standby MACs of the ONT carry services. + In a PON protection network, this mode indicates a 1+1 + protection architecture, and the protect object should be + xpon-uni-ont(ont contains two pon MACs and two transceivers)."; + } + + typedef member-role-type { + type enumeration { + enum work { + description + "Indicates the working member. + The working member is in the active state and the + protection member is in the standby state. When the + working member is faulty, the service is switched to + the protection member."; + } + enum protect { + description + "Indicates the protection member."; + } + } + description + "Indicates the type of the protection group member."; + } + + typedef running-status { + description + "Protect group member running status."; + type enumeration { + enum active { + description + "The transport entity from which the protection selector + selects the normal traffic signal."; + reference + "ITU-T G.808 clause 3.2.2.1"; + } + enum standby { + description + "The transport entity from which the protection selector + does not select the normal traffic signal."; + reference + "ITU-T G.808 clause 3.2.2.3"; + } + enum adding { + description + "The protection group member is adding."; + } + enum deleting { + description + "The protection group member is deleting."; + } + enum switching { + description + "The protection group member is switching."; + } + } + } + + typedef oper-status { + description + "Protection group operation status."; + type enumeration { + enum no-request-null { + description + "No near-end nor far-end protection switching requests are + active. + In this state, members' running-status are working/active + and protection/standby."; + reference + "ITU-T G.8031 Annex A1 and A2, state A."; + } + enum no-request-normal { + description + "No near-end but only far-end protection switching requests + are active. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A1 and A2, state B."; + } + enum lockout { + description + "A near-end lockout command is in effect. + In this state, members' running-status are working/active + and protection/standby."; + reference + "ITU-T G.8031 Annex A1 and A2, state C."; + } + enum forced-switch { + description + "A near-end forced switch command is in effect. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A1 and A2, state D."; + } + enum signal-fail-w { + description + "Near-end signal fail on working transport entity. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A1 and A2, state E."; + } + enum signal-fail-p { + description + "Near-end signal fail on protection transport entity. + In this state, members' running-status are working/active + and protection/standby."; + reference + "ITU-T G.8031 Annex A1 and A2, state F."; + } + enum manual-switch-to-p { + description + "A near-end manual switch to protection command is in + effect. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A1 and A2, state G."; + } + enum manual-switch-to-w { + description + "A near-end manual switch to working command is in effect. + In this state, members' running-status are working/active + and protection/standby."; + reference + "ITU-T G.8031 Annex A1 and A2, state H."; + } + enum wait-to-restore { + description + "In revertive mode of operation, when the protection is no + longer requested, i.e., the failed working transport + entity is no longer in SF (or SD (W) if applicable) + condition (and assuming no other requesting transport + entities), a local wait-to-restore state will be activated. + Normal traffic signal is restored to working transport + after the expiry of a WTR timer. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A1, state I."; + } + enum do-not-revert { + description + "In non-revertive operation, normal traffic signal is remain + on the protection transport entity even after a switch + reason has cleared. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A2, state J."; + } + enum exercise-null { + description + "A near-end exercise request is in effect, and replaces the + no-request-null or reverse-request-null state. + In this state, members' running-status are working/active + and protection/standby."; + reference + "ITU-T G.8031 Annex A1 and A2, state K."; + } + enum exercise-normal { + description + "A near-end exercise request is in effect, and replaces the + do-not-revert state. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A2, state L."; + } + enum reverse-request-null { + description + "A far-end exercise request is in effect, and replaces the + no-request-null state. + In this state, members' running-status are working/active + and protection/standby."; + reference + "ITU-T G.8031 Annex A1 and A2, state M."; + } + enum reverse-request-normal { + description + "A far-end exercise request is in effect, and replaces the + do-not-revert state. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A2, state N."; + } + enum signal-degrade-w { + description + "Near-end signal degrade on working transport entity. + In this state, members' running-status are working/standby + and protection/active."; + reference + "ITU-T G.8031 Annex A1 and A2, state P."; + } + enum signal-degrade-p { + description + "Near-end signal degrade on protection transport entity. + In this state, members' running-status are working/active + and protection/standby."; + reference + "ITU-T G.8031 Annex A1 and A2, state Q."; + } + } + } + + container protection-groups { + description + "protection group"; + list protection-group { + key "group-id"; + description + "The objects are used for performing operations associated + with the protection group. + The operations include creating and deleting a protection + group, setting the protection group switchover + function, setting the switchover recovery waiting time, + setting the description information about a protection + group, freezing and unfreezing a protection group, + enabling and disabling a protection group, and querying the + settings of a protection group"; + leaf group-id { + type uint32 { + range "0 .. 2047"; + } + description + "Protection group ID"; + } + leaf description { + type bbf-yang:string-ascii64-or-empty; + description + "Indicates the description of a protection group."; + } + leaf protect-object { + type identityref { + base protect-object-type-base; + } + mandatory true; + description + "Protection group object."; + } + leaf work-mode { + type identityref { + base protect-group-work-mode-base; + } + mandatory true; + description + "Protection group workmode."; + } + leaf dual-parenting-flag { + type boolean; + default "false"; + description + "Indicates the protection group is dual-parenting. + The protected objects belong to different NEs."; + } + leaf revertive { + type boolean; + default "false"; + reference + "ITU-T G.8031 clause 10.3"; + description + "Used to enable/disable revertive mode for the protection + group. + In revertive operation, normal traffic signal is restored + to the working transport entity after the condition(s) + causing a switch has cleared. In the case of clearing a + command (e.g., Forced switch), this happens immediately. + In the case of clearing of a defect, this generally + happens after the expiry of a WTR timer, which is used to + avoid chattering of selectors in the case of intermittent + defects. + In non-revertive operation, normal traffic signal is + allowed to remain on the protection transport entity even + after a switch reason has cleared."; + } + leaf wtr-time { + type uint32 { + range "1 .. 1440"; + } + default "720"; + units "second"; + reference + "ITU-T G.8031 clause 11.13"; + description + "In revertive mode of operation, to prevent frequent + operation of the protection switch due to an intermittent + defect, a failed working transport entity must become + fault free. After the failed working transport entity + meets this criterion, a fixed period of time shall elapse + before a normal traffic signal uses it again. "; + } + leaf lockout-on-startup { + type boolean; + default "false"; + description + "If true, the protection group will be lockout on system + startup."; + } + leaf frozen { + type boolean; + config false; + description + "Indicates whether the protection group is frozen."; + } + leaf oper-status { + type oper-status; + config false; + description + "Indicates the operation status of the protection group."; + } + list member { + key "if-name"; + max-elements 2; + description + "The objects are used for performing operations associated + with the protection group member"; + leaf if-name { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + must "derived-from-or-self(/if:interfaces" + + "/if:interface[if:name=current()]/if:type," + + "'bbf-xponift:channel-partition') or " + + "derived-from-or-self(/if:interfaces" + + "/if:interface[if:name=current()]/if:type," + + "'bbf-xponift:ani') or " + + "derived-from-or-self(/if:interfaces" + + "/if:interface[if:name=current()]/if:type," + + "'ianaift:ethernetCsmacd') or " + + "derived-from-or-self(/if:interfaces" + + "/if:interface[if:name=current()]/if:type," + + "'ianaift:ieee8023adLag')" { + error-message "Reference interface type is error."; + } + description + "The protection group member."; + } + leaf role { + type member-role-type; + mandatory true; + description + "Member role."; + } + leaf running-status { + type running-status; + config false; + description + "Indicates the running status of the member in a + protection group."; + } + leaf oper-status { + type enumeration { + enum up { + description + "Ready to transport normal traffic over this + member."; + } + enum down { + description + "Can not transport normal traffic over this member."; + } + } + config false; + description + "Indicates the operation status of the member in a + protection group."; + } + } + action freeze { + description + "Freezes the state of the protection group. Until the + freeze is cleared, additional near-end commands are + rejected. Condition changes and received APS information + are ignored. When the Freeze command is cleared, the state + of the protection group is recomputed based on the + condition and received APS information."; + reference + "ITU-T G.8031 clause 9.2"; + output { + leaf result { + type string; + description + "The result of freeze operation."; + } + } + } + action clear-freeze { + description + "Clears the active near-end Freeze command."; + reference + "ITU-T G.8031 clause 9.2"; + output { + leaf result { + type string; + description + "The result of clear-freeze operation."; + } + } + } + action lockout { + description + "Prevents a working signal from being selected from the + protection transport entity. This effectively disables + the protection group."; + reference + "ITU-T G.8031 clause 9.1, Annex A.1 and Annex A.2"; + output { + leaf result { + type string; + description + "The result of the lockout operation."; + } + } + } + action forced-switch { + description + "Forces normal traffic signal to be selected from + the protection transport entity."; + reference + "ITU-T G.8031 clause 9.1, Annex A.1 and Annex A.2"; + output { + leaf result { + type string; + description + "The result of the forced-switch operation."; + } + } + } + action manual-switch { + description + "In the absence of a failure of a working or + protection transport entity, forces normal traffic signal + to be selected from the specified transport entity. "; + reference + "ITU-T G.8031 clause 9.1, Annex A.1 and Annex A.2"; + input { + leaf target { + type member-role-type; + mandatory true; + description + "Specifies the target transport entity to switch to."; + } + } + output { + leaf result { + type string; + description + "The result of the manual-switch operation."; + } + } + } + action exercise { + description + "Exercise is a command to test if the APS communication is + operating correctly. It is lower priority than any real + switch request. It is only valid in bidirectional + switching, since this is the only place where you can get + a meaningful test by looking for a response. "; + reference + "ITU-T G.8031 clause 11.14, Annex A.1 and A.2"; + output { + leaf result { + type string; + description + "The result of the exercise operation."; + } + } + } + action clear { + description + "Clears the active near-end LO, FS, MS, wait-to-restore + (WTR) state, or Exercise command."; + reference + "ITU-T G.8031 clause 9.1, Annex A.1 and Annex A.2"; + output { + leaf result { + type string; + description + "The result of the clear operation."; + } + } + } + } + } +}