Global Configuration.
Version: 2020-02-18
module huawei-flexe { yang-version 1; namespace "urn:huawei:yang:huawei-flexe"; prefix flexe; import huawei-devm { prefix devm; } import huawei-extension { prefix ext; } organization "Huawei Technologies Co., Ltd."; contact "Huawei Industrial Base Bantian, Longgang Shenzhen 518129 People's Republic of China Website: http://www.huawei.com Email: support@huawei.com"; description "Global Configuration."; revision "2020-02-18" { description "Initial revision."; reference "Huawei private."; } ext:task-name "device-mgr"; typedef flexe-sub-ts-granula-type { type enumeration { enum "1G" { value 1; description "Sub-timeslot granularity 1G."; } enum "1.25G" { value 2; description "Sub-timeslot granularity 1.25G."; } enum "5G" { value 0; description "Sub-timeslot granularity 5G."; } } description "Sub-timeslot granularity."; } container flexe { description "Specify FlexE configuration information."; container card-attributes { description "List of FlexE system configs."; list card-attribute { ext:generated-by "system"; ext:operation-exclude "create"; key "card-position"; description "Configure FlexE system config."; leaf card-position { type string { length "1..16"; } description "Card position. The position is expressed in the format of slotID/cardID. For example, 1/0. Here 1/0 is an example. The value may vary with devices."; } leaf config-mode { type enumeration { enum "bandwidth" { value 0; description "Bandwidth mode."; } enum "timeslot" { value 1; description "Timeslot mode."; } } default "bandwidth"; description "Config mode."; } leaf sub-timeslot-granula { type flexe-sub-ts-granula-type; default "5G"; description "Setting sub-timeslot granularity."; } } // list card-attribute } // container card-attributes container groups { description "List of FlexE groups."; list group { key "index"; description "Configure FlexE group."; leaf index { type uint32 { range "1..2147483647"; } description "FlexE group index."; } leaf number { type uint32 { range "1..1048574"; } description "FlexE group communication ID."; } leaf padding-enable { type boolean; default "false"; status deprecated; description "Enable/disable automatic overhead frame padding. You are advised to use the leaf '/flexe:flexe/flexe:groups/flexe:group/flexe:padding'."; } leaf timeslot-negotiation-enable { type boolean; default "true"; description "Enable/disable timeslot negotiation mode."; } leaf total-bandwidth { type string { length "1..9"; } config false; description "FlexE group total bandwidth."; } leaf left-bandwidth { type string { length "1..9"; } config false; description "FlexE group left bandwidth."; } leaf padding { ext:dynamic-default; type enumeration { enum "disable" { value 0; description "Disable."; } enum "enable" { value 1; description "Enable."; } enum "auto" { value 2; description "Auto."; } } description "Automatically supplements overhead frames."; } container physical-ports { description "List of physical port information in group."; list physical-port { key "port-position"; description "Configure physical port information."; leaf port-position { type string { length "1..50"; } description "Physical port location. The position is expressed in the format of slotID/cardID/portID. For example, 1/0/1. Here 1/0/1 is an example. The value may vary with devices."; } } // list physical-port } // container physical-ports } // list group } // container groups container physical-ports { description "List of physical port information."; list physical-port { ext:generated-by "system"; ext:operation-exclude "create"; key "position"; description "Configure physical port information."; leaf position { type leafref { path "/devm:devm/devm:ports/devm:port/devm:position"; } description "Port position. The position is expressed in the format of slotID/cardID/portID. For example, 1/0/1. Here 1/0/1 is an example. The value may vary with devices."; } leaf mode-enable { type boolean; default "false"; description "Enable/disable FlexE mode."; } container physical-attribute { ext:operation-exclude "create"; when "../mode-enable='true'"; description "Configure FlexE physical interface information."; leaf number { type uint32 { range "1..254"; } description "Number of a FlexE physical port. The phynumber of a 100G port is an integer ranging from 1 to 254. The phynumber of a 50G port is an integer ranging from 1 to 126. The phynumber of a 400G port is an integer ranging from 1 to 62. The phynumber of a 10G port is an integer ranging from 1 to 14."; } leaf dcn-auto-nego-enable { ext:dynamic-default; type boolean; description "Enable/disable DCN auto-negotiation mode."; } leaf mng-channel-mode { type enumeration { enum "union" { value 0; description "Union mode."; } enum "section" { value 1; description "Section mode."; } enum "shim2shim" { value 2; description "Shim to shim mode."; } enum "shim2shimop2" { value 3; description "Shim to shim option2 mode."; } } default "union"; description "Management channel mode."; } leaf number-to-receive { type uint32 { range "1..254"; } config false; description "Number received by a FlexE physical port."; } leaf padding-enable { type boolean; config false; description "Enable/disable automatic overhead frame padding."; } leaf idle-timeslot { type string { length "1..199"; } config false; description "Idle timeslot."; } leaf idle-sub-timeslot { type string { length "1..499"; } config false; description "Idle sub-timeslot."; } leaf used-timeslot { type string { length "1..199"; } config false; description "Big timeslots that have been used up."; } leaf used-sub-timeslot { type string { length "1..499"; } config false; description "Sub-timeslots have been used."; } leaf sub-timeslot-scope { type string { length "1..9"; } config false; description "Configurable sub-timeslot range."; } leaf physical-mode { type enumeration { enum "flexe" { value 0; description "Flexe mode."; } enum "ethernet" { value 1; description "Ethernet mode."; } } config false; description "Bottom layer working mode of a FlexE physical port."; } leaf card-position { type string { length "1..16"; } config false; description "Indicates the subcard where the FlexE clients created based on the FlexE physical interface reside."; } } // container physical-attribute container flexe-relations { config false; description "List of timeslot information of FlexE port."; list flexe-relation { key "port-name"; config false; description "Statistics of timeslot information of a FlexE port."; leaf port-name { type string { length "1..32"; } description "FlexE port name."; } leaf binding-timeslot { type string { length "1..199"; } description "Timeslot information bound to a FlexE port."; } } // list flexe-relation } // container flexe-relations } // list physical-port } // container physical-ports container clients { description "List of FlexE client information."; list client { key "index group-index business-type port-id"; description "Configure FlexE client information."; leaf index { type uint32 { range "1..2147483647"; } description "FlexE client index."; } leaf group-index { type leafref { path "/flexe:flexe/flexe:groups/flexe:group/flexe:index"; } description "FlexE group index configured for a client."; } leaf business-type { type enumeration { enum "cross" { value 0; description "Only the fragmented Ethernet cross-connect service is supported."; } enum "full-function" { value 1; description "The packet transmission and fragmented Ethernet cross-connect services are supported."; } } description "Type of services carried on a client."; } leaf port-id { type uint32 { range "0..65535"; } description "FlexE port ID."; } leaf id { type uint32 { range "1..65534"; } description "Client ID."; } leaf min-avail-bandwidth { type uint32 { range "1..100"; } units "%"; description "Percentage of the minimum available bandwidth of a FlexE client against the configured bandwidth."; } leaf port-name { type string { length "1..50"; } config false; description "Interface name of a FlexE client."; } leaf bandwidth-value { type string { length "1..10"; } config false; description "Actual bandwidth value."; } choice binding-type { description "Binding bandwidth or relation."; case bandwidth { description "Binding bandwidth."; container binding-bandwidth { description "Configure bandwith configuration."; leaf bandwidth { type string { length "1..10"; } description "Bandwidth."; } } // container binding-bandwidth } // case bandwidth case timeslots { description "Binding timeslots."; container binding-timeslots { description "List of binding timeslots."; list binding-timeslot { key "physical-port-name"; description "Configure binding timeslots."; leaf physical-port-name { type string { length "1..50"; } description "FlexE physical port name. The name is expressed in the format of slotID/cardID/portID. For example, 1/0/1. Here 1/0/1 is an example. The value may vary with devices."; } choice binding-timeslot { mandatory true; description "Binding big time slot or sub time slot."; case big-timeslot { description "Binding big-timeslot."; leaf timeslot { type string { length "1..199"; } description "Set timeslot. The value is one or more numbers separated by commas (,) or hyphens (-). If the values are separated by '-', they must be in ascending order. For example, correct range values are (0-1) and incorrect range values are (1-0)."; } } // case big-timeslot case sub-timeslot { description "Binding sub-timeslot."; leaf big-timeslot { type uint32 { range "0..199"; } mandatory true; description "Set big timeslot."; } leaf sub-timeslot { type string { length "1..9"; } mandatory true; description "Set sub-timeslot. The value is one or more numbers separated by commas (,) or hyphens (-). If the values are separated by '-', they must be in ascending order. For example, correct range values are (0-1) and incorrect range values are (1-0)."; } leaf sub-timeslot-scope { type string { length "1..9"; } config false; description "Configurable sub-timeslot range."; } } // case sub-timeslot } // choice binding-timeslot } // list binding-timeslot } // container binding-timeslots } // case timeslots } // choice binding-type } // list client } // container clients } // container flexe rpc phy-mode-switch { ext:node-ref "/flexe/physical-ports/physical-port"; description "Physical Mode Switchover."; input { leaf position { type string { length "1..32"; } mandatory true; description "Port position. The position is expressed in the format of slotID/cardID/portID. For example, 1/0/1. Here 1/0/1 is an example. The value may vary with devices."; } leaf phy-mode { type enumeration { enum "flexe" { value 0; description "Flexe mode."; } enum "ethernet" { value 1; description "Ethernet mode."; } } must "((../phy-mode='ethernet') and (not(/flexe:flexe/flexe:physical-ports/flexe:physical-port/flexe:physical-attribute/flexe:dcn-auto-nego-enable))) or (../phy-mode='flexe')"; description "Bottom layer working mode of a FlexE physical port."; } } } // rpc phy-mode-switch } // module huawei-flexe
© 2023 YumaWorks, Inc. All rights reserved.