org-openroadm-key-chain

This model defines the Yang model for key chain. This model reuses data items defined in the IETF YANG model for key-chain as d...

  • Version: 2019-11-29

    org-openroadm-key-chain@2019-11-29


    
      module org-openroadm-key-chain {
    
        yang-version 1;
    
        namespace
          "http://org/openroadm/key-chain";
    
        prefix org-openroadm-key-chain;
    
        import ietf-yang-types {
          prefix yang;
          revision-date "2013-07-15";
        }
    
        organization "Open ROADM MSA";
    
        contact "OpenROADM.org";
    
        description
          "This model defines the Yang model for key chain.
    
    This model reuses data items defined in the IETF YANG model for
    key-chain as described by RFC 8177.
    
    Some attributes which are not required in Open ROADM MSA are removed.
    Yang file included are changed to fit into Open ROADM MSA yang structure.
    
    IETF code is subject to the following copyright and license:
    Copyright (c) IETF Trust and the persons identified as authors of
    the code.
    All rights reserved.
    
    Redistribution and use in source and binary forms, with or without
    modification, is permitted pursuant to, and subject to the license
    terms contained in, the Simplified BSD License set forth in
    Section 4.c of the IETF Trust's Legal Provisions Relating
    to IETF Documents (http://trustee.ietf.org/license-info).";
    
        revision "2019-11-29" {
          description "Version 6.1.0";
        }
    
        revision "2019-03-29" {
          description "Version 5.0.0";
        }
    
        revision "2018-03-30" {
          description "Initial revision.";
        }
    
    
        feature hex-key-string {
          description
            "Support hexadecimal key string.";
        }
    
        feature independent-send-accept-lifetime {
          description
            "Support for independent send and accept key lifetimes.";
        }
    
        feature crypto-hmac-sha-1-12 {
          description
            "Support for TCP HMAC-SHA-1 12 byte digest hack.";
        }
    
        typedef key-chain-ref {
          type leafref {
            path "/org-openroadm-key-chain:key-chains/key-chain-list/org-openroadm-key-chain:name";
          }
          description
            "This type is used by data models that need to reference
    configured key-chains.";
        }
    
        grouping lifetime {
          description
            "Key lifetime specification.";
          choice lifetime {
            default "always";
            description
              "Options for specifying key accept or send lifetimes";
            leaf always {
              type empty;
              description
                "Indicates key lifetime is always valid.";
            }
    
            case start-end-time {
              leaf start-date-time {
                type yang:date-and-time;
                description "Start time.";
              }
    
              choice end-time {
                default "infinite";
                description "End-time setting.";
                leaf no-end-time {
                  type empty;
                  description
                    "Indicates key lifetime end-time in infinite.";
                }
                leaf duration {
                  type uint32 {
                    range "1..2147483646";
                  }
                  units "seconds";
                  description
                    "Key lifetime duration, in seconds";
                }
                leaf end-date-time {
                  type yang:date-and-time;
                  description "End time.";
                }
              }  // choice end-time
            }  // case start-end-time
          }  // choice lifetime
        }  // grouping lifetime
    
        grouping crypto-algorithm-types {
          description
            "Cryptographic algorithm types.";
          choice algorithm {
            description
              "Options for crytographic algorithm specification.";
            leaf md5 {
              type empty;
              description "The MD5 algorithm.";
            }
          }  // choice algorithm
        }  // grouping crypto-algorithm-types
    
        grouping key-chain {
          description
            "key-chain specification grouping.";
          leaf name {
            type string;
            description "Name of the key-chain.";
          }
    
          list key-chain-entry {
            key "key-id";
            description "One key.";
            leaf key-id {
              type uint64 {
                range "1..255" {
                  error-message
                    "Configured value is out of range";
                }
              }
              description "Key id.";
            }
    
            container key-string {
              description "The key string.";
              choice key-string-style {
                description "Key string styles";
                leaf keystring {
                  type string {
                    length "1..16" {
                      error-message
                        "Configured string exceeds the maximum length";
                    }
                  }
                  description
                    "Key string in ASCII format.";
                }
    
                case hexadecimal {
                  if-feature hex-key-string;
                }  // case hexadecimal
              }  // choice key-string-style
            }  // container key-string
    
            container crypto-algorithm {
              description
                "Cryptographic algorithm associated with key.";
              uses crypto-algorithm-types;
            }  // container crypto-algorithm
          }  // list key-chain-entry
        }  // grouping key-chain
    
        container key-chains {
          description
            "All configured key-chains for the device.";
          list key-chain-list {
            key "name";
            description "List of key-chains.";
            uses key-chain;
          }  // list key-chain-list
        }  // container key-chains
    
        container key-chains-state {
          config false;
          description
            "All configured key-chains state.";
          list key-chain-list-state {
            description "One key-chain state.";
            leaf name-state {
              type string;
              description
                "Configured name of the key-chain.";
            }
    
            list key-chain-entry {
              key "key-id";
              description "One key.";
              leaf key-id {
                type uint64;
                description "Configurd key id.";
              }
    
              container crypto-algorithm-state {
                description
                  "Configured cryptographic algorithm.";
                uses crypto-algorithm-types;
              }  // container crypto-algorithm-state
            }  // list key-chain-entry
          }  // list key-chain-list-state
        }  // container key-chains-state
      }  // module org-openroadm-key-chain
    

© 2023 YumaWorks, Inc. All rights reserved.