Addition of common model.
Change-Id: If5fd6bae01a59ebf9d27f8369ac3403c83f70fad
diff --git a/models/common/src/main/yang/ietf-snmp-vacm@2014-12-10.yang b/models/common/src/main/yang/ietf-snmp-vacm@2014-12-10.yang
new file mode 100644
index 0000000..c3e659c
--- /dev/null
+++ b/models/common/src/main/yang/ietf-snmp-vacm@2014-12-10.yang
@@ -0,0 +1,291 @@
+submodule ietf-snmp-vacm {
+
+ belongs-to ietf-snmp {
+ prefix snmp;
+ }
+
+ include ietf-snmp-common;
+
+ 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 the View-based Access Control Model (VACM)
+ of 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 3415: View-based Access Control Model (VACM) for the
+ Simple Network Management Protocol (SNMP)";
+
+ revision 2014-12-10 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 7407: A YANG Data Model for SNMP Configuration";
+ }
+
+ typedef view-name {
+ type snmp:identifier;
+ description
+ "The view-name type represents an SNMP VACM view name.";
+ }
+
+ typedef group-name {
+ type snmp:identifier;
+ description
+ "The group-name type represents an SNMP VACM group name.";
+ }
+
+ augment /snmp:snmp {
+
+ container vacm {
+ description
+ "Configuration of the View-based Access Control Model.";
+
+ list group {
+ key name;
+ description
+ "VACM groups.
+
+ This data model has a different structure than the MIB.
+ Groups are explicitly defined in this list, and group
+ members are defined in the 'member' list (mapped to
+ vacmSecurityToGroupTable), and access for the group is
+ defined in the 'access' list (mapped to
+ vacmAccessTable).";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for the
+ Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmSecurityToGroupTable
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessTable";
+
+ leaf name {
+ type group-name;
+ description
+ "The name of this VACM group.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for the
+ Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmGroupName";
+ }
+
+ list member {
+ key "security-name";
+ description
+ "A member of this VACM group.
+
+ A specific combination of security-name and
+ security-model MUST NOT be present in more than
+ one group.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for the
+ Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmSecurityToGroupTable";
+
+ leaf security-name {
+ type snmp:security-name;
+ description
+ "The securityName of a group member.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmSecurityName";
+ }
+
+ leaf-list security-model {
+ type snmp:security-model;
+ min-elements 1;
+ description
+ "The security models under which this security-name
+ is a member of this group.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmSecurityModel";
+ }
+ }
+
+ list access {
+ key "context security-model security-level";
+ description
+ "Definition of access right for groups.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessTable";
+
+ leaf context {
+ type snmp:context-name;
+ description
+ "The context (prefix) under which the access rights
+ apply.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessContextPrefix";
+ }
+
+ leaf context-match {
+ type enumeration {
+ enum exact { value 1; }
+ enum prefix { value 2; }
+ }
+ default exact;
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessContextMatch";
+ }
+
+ leaf security-model {
+ type snmp:security-model-or-any;
+ description
+ "The security model under which the access rights
+ apply.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessSecurityModel";
+ }
+
+ leaf security-level {
+ type snmp:security-level;
+ description
+ "The minimum security level under which the access
+ rights apply.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessSecurityLevel";
+ }
+
+ leaf read-view {
+ type view-name;
+ description
+ "The name of the MIB view of the SNMP context
+ authorizing read access. If this leaf does not
+ exist in a configuration, it maps to a zero-length
+ vacmAccessReadViewName.
+
+ Implementations MAY restrict the values of this
+ leaf to be one of the available values of
+ /snmp/vacm/view/name in a valid configuration.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessReadViewName";
+ }
+
+ leaf write-view {
+ type view-name;
+ description
+ "The name of the MIB view of the SNMP context
+ authorizing write access. If this leaf does not
+ exist in a configuration, it maps to a zero-length
+ vacmAccessWriteViewName.
+
+ Implementations MAY restrict the values of this
+ leaf to be one of the available values of
+ /snmp/vacm/view/name in a valid configuration.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessWriteViewName";
+ }
+
+ leaf notify-view {
+ type view-name;
+ description
+ "The name of the MIB view of the SNMP context
+ authorizing notify access. If this leaf does not
+ exist in a configuration, it maps to a zero-length
+ vacmAccessNotifyViewName.
+
+ Implementations MAY restrict the values of this
+ leaf to be one of the available values of
+ /snmp/vacm/view/name in a valid configuration.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmAccessNotifyViewName";
+ }
+ }
+ }
+
+ list view {
+ key name;
+ description
+ "Definition of MIB views.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilyTable";
+
+ leaf name {
+ type view-name;
+ description
+ "The name of this VACM MIB view.";
+
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilyName";
+ }
+
+ leaf-list include {
+ type snmp:wildcard-object-identifier;
+ description
+ "A family of subtrees included in this MIB view.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilySubtree
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilyMask
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilyType";
+ }
+
+ leaf-list exclude {
+ type snmp:wildcard-object-identifier;
+ description
+ "A family of subtrees excluded from this MIB view.";
+ reference
+ "RFC 3415: View-based Access Control Model (VACM) for
+ the Simple Network Management Protocol (SNMP).
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilySubtree
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilyMask
+ SNMP-VIEW-BASED-ACM-MIB.vacmViewTreeFamilyType";
+ }
+ }
+ }
+ }
+}