huawei-flexe

Global Configuration.

  • Version: 2020-02-18

    huawei-flexe@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.