netconfcentral logo

ietf-snmp-community@2014-12-10



  submodule ietf-snmp-community {

    yang-version 1;

    belongs-to ietf-snmp {
        prefix snmp;
    }

    import ietf-netconf-acm {
      prefix nacm;
    }

    include ietf-snmp-common;
    include ietf-snmp-target;
    include ietf-snmp-proxy;

    organization
      "IETF NETMOD (NETCONF Data Modeling Language) Working Group";

    contact
      "WG Web:   <http://tools.ietf.org/wg/netmod/>
     WG List:  <mailto:netmod@ietf.org>

     WG Chair: Thomas Nadeau
               <mailto:tnadeau@lucidvision.com>

     WG Chair: Juergen Schoenwaelder
               <mailto:j.schoenwaelder@jacobs-university.de>
     Editor:   Martin Bjorklund
               <mailto:mbj@tail-f.com>

     Editor:   Juergen Schoenwaelder
               <mailto:j.schoenwaelder@jacobs-university.de>";

    description
      "This submodule contains a collection of YANG definitions
     for configuring community-based SNMP.

     Copyright (c) 2014 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).

     This version of this YANG module is part of RFC 7407; see
     the RFC itself for full legal notices.";

    reference
      "RFC 3584: Coexistence between Version 1, Version 2, and
        Version 3 of the Internet-standard Network
        Management Framework";


    revision "2014-12-10" {
      description "Initial revision.";
      reference
        "RFC 7407: A YANG Data Model for SNMP Configuration";

    }


    augment /snmp:snmp {
      list community {
        key "index";
        description "List of communities.";
        reference
          "RFC 3584: Coexistence between Version 1, Version 2,
            and Version 3 of the Internet-standard
            Network Management Framework.
            SNMP-COMMUNITY-MIB.snmpCommunityTable";

        leaf index {
          type identifier;
          description
            "Index into the community list.";
          reference
            "RFC 3584: Coexistence between Version 1, Version 2,
              and Version 3 of the Internet-standard
              Network Management Framework.
              SNMP-COMMUNITY-MIB.snmpCommunityIndex";

        }

        choice name {
          nacm:default-deny-all;
          description
            "The community name, specified as either a string or
           a binary value.  The binary name is used when the
           community name contains characters that are not legal
           in a string.

           If not set, the value of 'security-name' is operationally
           used as the snmpCommunityName.";
          reference
            "RFC 3584: Coexistence between Version 1, Version 2,
              and Version 3 of the Internet-standard
              Network Management Framework.
              SNMP-COMMUNITY-MIB.snmpCommunityName";

          leaf text-name {
            type string;
            description
              "A community name that can be represented as a
             YANG string.";
          }
          leaf binary-name {
            type binary;
            description
              "A community name represented as a binary value.";
          }
        }  // choice name

        leaf security-name {
          nacm:default-deny-all;
          type security-name;
          mandatory true;
          description
            "The snmpCommunitySecurityName of this entry.";
          reference
            "RFC 3584: Coexistence between Version 1, Version 2,
              and Version 3 of the Internet-standard
              Network Management Framework.
              SNMP-COMMUNITY-MIB.snmpCommunitySecurityName";

        }

        leaf engine-id {
          if-feature snmp:proxy;
          type engine-id;
          description
            "If not set, the value of the local SNMP engine is
           operationally used by the device.";
          reference
            "RFC 3584: Coexistence between Version 1, Version 2,
              and Version 3 of the Internet-standard
              Network Management Framework.
              SNMP-COMMUNITY-MIB.snmpCommunityContextEngineID";

        }

        leaf context {
          type context-name;
          default "";
          description
            "The context in which management information is accessed
           when using the community string specified by this entry.";
          reference
            "RFC 3584: Coexistence between Version 1, Version 2,
              and Version 3 of the Internet-standard
              Network Management Framework.
              SNMP-COMMUNITY-MIB.snmpCommunityContextName";

        }

        leaf target-tag {
          type tag-value;
          description
            "Used to limit access for this community to the specified
           targets.

           Implementations MAY restrict the values of this leaf
           to be one of the available values of /snmp/target/tag in
           a valid configuration.";
          reference
            "RFC 3584: Coexistence between Version 1, Version 2,
              and Version 3 of the Internet-standard
              Network Management Framework.
              SNMP-COMMUNITY-MIB.snmpCommunityTransportTag";

        }
      }  // list community
    }

    grouping v1-target-params {
      container v1 {
        description
          "SNMPv1 parameters type.
         Represents snmpTargetParamsMPModel '0',
         snmpTargetParamsSecurityModel '1', and
         snmpTargetParamsSecurityLevel 'noAuthNoPriv'.";
        leaf security-name {
          type security-name;
          mandatory true;
          description
            "Implementations MAY restrict the values of this leaf
           to be one of the available values of
           /snmp/community/security-name in a valid configuration.";
          reference
            "RFC 3413: Simple Network Management Protocol (SNMP).
              Applications.
              SNMP-TARGET-MIB.snmpTargetParamsSecurityName";

        }
      }  // container v1
    }  // grouping v1-target-params

    grouping v2c-target-params {
      container v2c {
        description
          "SNMPv2 community parameters type.
         Represents snmpTargetParamsMPModel '1',
         snmpTargetParamsSecurityModel '2', and
         snmpTargetParamsSecurityLevel 'noAuthNoPriv'.";
        leaf security-name {
          type security-name;
          mandatory true;
          description
            "Implementations MAY restrict the values of this leaf
           to be one of the available values of
           /snmp/community/security-name in a valid configuration.";
          reference
            "RFC 3413: Simple Network Management Protocol (SNMP).
              Applications.
              SNMP-TARGET-MIB.snmpTargetParamsSecurityName";

        }
      }  // container v2c
    }  // grouping v2c-target-params

    augment /snmp:snmp/snmp:target-params/snmp:params {
      case v1 {
        uses v1-target-params;
      }  // case v1

      case v2c {
        uses v2c-target-params;
      }  // case v2c
    }

    augment /snmp:snmp/snmp:target {
      when "snmp:v1 or snmp:v2c";
      leaf mms {
        type union {
          type enumeration {
            enum "unknown" {
              value 0;
            }
          }
          type int32 {
            range "484..max";
          }
        }
        default "484";
        description
          "The maximum message size.";
        reference
          "RFC 3584: Coexistence between Version 1, Version 2,
            and Version 3 of the Internet-standard
            Network Management Framework.
            SNMP-COMMUNITY-MIB.snmpTargetAddrMMS";

      }
    }
  }  // submodule ietf-snmp-community