Addition of common model.
Change-Id: If5fd6bae01a59ebf9d27f8369ac3403c83f70fad
diff --git a/models/common/src/main/yang/ietf-snmp-community@2014-12-10.yang b/models/common/src/main/yang/ietf-snmp-community@2014-12-10.yang
new file mode 100644
index 0000000..6bddf1a
--- /dev/null
+++ b/models/common/src/main/yang/ietf-snmp-community@2014-12-10.yang
@@ -0,0 +1,241 @@
+submodule ietf-snmp-community {
+
+ 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 snmp: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.";
+ }
+ }
+ leaf security-name {
+ type snmp:security-name;
+ mandatory true;
+ nacm:default-deny-all;
+ 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 snmp: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 snmp: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 snmp: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";
+ }
+ }
+ }
+
+ grouping v1-target-params {
+ container v1 {
+ description
+ "SNMPv1 parameters type.
+ Represents snmpTargetParamsMPModel '0',
+ snmpTargetParamsSecurityModel '1', and
+ snmpTargetParamsSecurityLevel 'noAuthNoPriv'.";
+ leaf security-name {
+ type snmp: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";
+ }
+ }
+ }
+
+ grouping v2c-target-params {
+ container v2c {
+ description
+ "SNMPv2 community parameters type.
+ Represents snmpTargetParamsMPModel '1',
+ snmpTargetParamsSecurityModel '2', and
+ snmpTargetParamsSecurityLevel 'noAuthNoPriv'.";
+ leaf security-name {
+ type snmp: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";
+ }
+ }
+ }
+
+ augment /snmp:snmp/snmp:target-params/snmp:params {
+ case v1 {
+ uses v1-target-params;
+ }
+ case v2c {
+ uses v2c-target-params;
+ }
+ }
+
+ 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";
+ }
+ }
+
+}