On this page...
YANG schema
module snmp-configuration {
yang-version 1.1;
namespace "http://metaswitch.com/yang/tas-vm-build/snmp-configuration";
prefix "snmp";
import ietf-inet-types {
prefix "ietf-inet";
}
organization "Metaswitch Networks";
contact "rvt-schemas@metaswitch.com";
description "SNMP configuration schema.";
revision 2019-11-29 {
description
"Initial revision";
reference
"Metaswitch Deployment Definition Guide";
}
grouping snmp-configuration-grouping {
// Support for SNMPv1 is deprecated. Use v2c instead.
// Use of v1 is limited to Rhino only (not other processes) and may cause
// some Rhino statistics to fail to appear correctly or at all.
leaf v1-enabled {
type boolean;
default false;
description "Enables the use of SNMPv1 if set to 'true'. Note that support for SNMPv1"
+ " is deprecated and SNMP v2c should be used instead. Use of v1 is limited"
+ " to Rhino only and may cause some Rhino statistics to fail to appear"
+ " correctly or not at all. Set to 'false' to disable SNMPv1."
+ "\n"
+ "\nThe default value is 'false'";
}
leaf v2c-enabled {
type boolean;
default true;
description "Enables the use of SNMPv2c if set to 'true'."
+ " Set to 'false' to disable SNMPv2c."
+ "\n"
+ "\nThe default value is 'true'.";
}
leaf v3-enabled {
type boolean;
default false;
description "Enables the use of SNMPv3 if set to 'true'."
+ " Set to 'false' to disable SNMPv3."
+ "\n"
+ "\nThe default value is 'false'.";
}
leaf trap_type {
when "../v2c-enabled = 'true'";
type enumeration {
enum trap {
description "Generate TRAP type notifications.";
}
enum inform {
description "Generate INFORM type notifications.";
}
}
default trap;
description "Configure the notification type to use when SNMPv2c is enabled.";
}
leaf community {
when "../v2c-enabled = 'true'";
type string;
default "clearwater";
description "The SNMPv2c community name.";
}
container v3-authentication {
when "../v3-enabled = 'true'";
leaf username {
type string;
mandatory true;
description "The SNMPv3 user name.";
}
leaf authentication-protocol {
type enumeration {
enum SHA {
description "SHA";
}
enum MD5 {
description "MD5 message digest.";
}
}
default SHA;
description "The authentication mechanism to use.";
}
leaf authentication-key {
type string {
length "8 .. max";
}
description "The authentication key.";
}
leaf privacy-protocol {
type enumeration {
enum DES {
description "Data Encryption Standard (DES)";
}
enum 3DES {
description "Triple Data Encryption Standard (3DES).";
}
enum AES128 {
description "128 bit Advanced Encryption Standard (AES).";
}
enum AES192 {
description "192 bit Advanced Encryption Standard (AES).";
}
enum AES256 {
description "256 bit Advanced Encryption Standard (AES).";
}
}
default AES128;
description "The privacy mechanism to use.";
}
leaf privacy-key {
type string {
length "8 .. max";
}
description "The privacy key.";
}
description "SNMPv3 authentication configuration. Only used when 'v3-enabled' is set"
+ " to 'true'.";
}
container agent-details {
when "../v2c-enabled = 'true' or ../v3-enabled= 'true'";
// agent name is the VM ID
// description is the human-readable node description from the metadata
leaf location {
type string;
mandatory true;
description "The physical location of the SNMP agent.";
}
leaf contact {
type string;
mandatory true;
description "The contact email address for this SNMP agent.";
}
description "The SNMP agent details.";
}
container notifications {
leaf enabled {
when "../../v2c-enabled = 'true' or ../../v3-enabled = 'true'";
type boolean;
default false;
description "SNMPv2c and SNMPv3 only."
+ "\n"
+ "\nSet to 'true' to enable SNMP v2c/3 notifications."
+ " Set to 'false' to disable SNMP v2c/3 notifications."
+ "\n"
+ "\nThe default value is 'false'.";
}
list targets {
when "../enabled = 'true'";
key "version host port";
leaf version {
type enumeration {
enum v1 {
description "SNMPv1";
}
enum v2c {
description "SNMPv2c";
}
enum v3 {
description "SNMPv3";
}
}
mandatory true;
description "The SNMP notification version to use for this target.";
}
leaf host {
type ietf-inet:host;
mandatory true;
description "The target host.";
}
leaf port {
type ietf-inet:port-number;
// 'port' is a key and YANG ignores the default value of any keys, hence we
// cannot set a default '162' here.
description "The target port.";
}
description "The list of SNMP notification targets.";
}
list categories {
when "../enabled = 'true'";
key "category";
leaf category {
type enumeration {
enum alarm-notification {
description "Alarm related notifications.";
}
enum log-notification {
description "Log related notifications.";
}
enum log-rollover-notification {
description "Log rollover notifications.";
}
enum resource-adaptor-entity-state-change-notification {
description "Resource adaptor entity state change notifications.";
}
enum service-state-change-notification {
description "Service state change notifications.";
}
enum slee-state-change-notification {
description "SLEE state change notifications.";
}
enum trace-notification {
description "Trace notifications.";
}
enum usage-notification {
description "Usage notifications.";
}
}
description "Notification category.";
}
leaf enabled {
type boolean;
mandatory true;
description "Set to 'true' to enable this category. Set to 'false' to disable."
+ "\n"
+ "\nThe default value is 'true'";
}
description "Notification categories to enable or disable.";
}
description "Notification configuration.";
}
description "SNMP configuration.";
}
}