/*
	This is the main configuration file; it defines module behavior such as which policy-statments to
	apply to the module and other module specific parameters.

	Note to VIM users: this file should have syntax highlighting; enable with (:syntax on).

	Full configuration options and comments are available within sella_nms-complete.conf.
*/

#include "@resolved_sysconfdir@/policy-statements.conf"
#include "@resolved_sysconfdir@/policy.d"

discovery {
	icmp {
		prefix {
			10.0.0.0/8; /* Replace '10.0.0.0/8' with your routers loopback range. */
		}
	}
	snmp {
		community	[ public ]; /* Replace 'public' with your community(s). */
		oid {
			system;
			interfaces.ifTable.ifEntry.ifIndex;
			interfaces.ifTable.ifEntry.ifDescr;
			interfaces.ifTable.ifEntry.ifMtu;
			interfaces.ifTable.ifEntry.ifAdminStatus;
			interfaces.ifTable.ifEntry.ifOperStatus;
			interfaces.ifTable.ifEntry.ifType;
			interfaces.ifTable.ifEntry.ifSpeed;
			ip.ipAddrTable.ipAddrEntry.ipAdEntAddr;
			ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex;
			ip.ipAddrTable.ipAddrEntry.ipAdEntNetMask;
			ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifAlias;
			bgp.bgpLocalAs;
			bgp.bgpPeerTable.bgpPeerEntry.bgpPeerState;
			bgp.bgpPeerTable.bgpPeerEntry.bgpPeerAdminStatus;
			bgp.bgpPeerTable.bgpPeerEntry.bgpPeerRemoteAs;
			bgp.bgpPeerTable.bgpPeerEntry.bgpPeerNegotiatedVersion;
		}
	}
	topology {
		policy {
			input		[ IGNORE_LOOPBACK /* IGNORE_RFC_1918 */ ];
		}
	}
}
monitor {
	icmp {
		policy {
			input		[ IGNORE_LOOPBACK /* IGNORE_RFC_1918 */ ];
			output	[ PACKET_LOSS ];
		}
	}
	snmptrap {
		policy {
			input		[ IGNORE_AUTH_FAILURE_TRAP /* AUTHORIZE_TRAP */ ];
			output	[ LINK_TRAP BGP_TRAP OSPF_TRAP JUNIPER_MPLS_TRAP JUNIPER_CHASSIS_TRAP NETSCREEN_TRAP NETSNMP_TRAP RMON_TRAP EXTREME_HARDWARE_TRAP EXTREME_SOFTWARE_TRAP ARBOR_SP_TRAP ARBOR_DOS_TRAP TRANSLATE_BGP_ERROR LOOKUP_OSPF_NEIGHBOR_DATA ];
		}
	}
	syslog {
		policy {
			input		[ IGNORE_GENERIC_SYSLOG IGNORE_GENERIC_JUNIPER_SYSLOG IGNORE_GENERIC_CISCO_SYSLOG IGNORE_GENERIC_EXTREME_SYSLOG IGNORE_GENERIC_NETSCREEN_SYSLOG ];
			output	[ JUNIPER_BGP_SYSLOG JUNIPER_VPN_SYSLOG JUNIPER_HEALTH_SYSLOG CISCO_BGP_SYSLOG CISCO_GENERIC_SYSLOG CISCO_7500_HEALTH_SYSLOG CISCO_7200_HEALTH_SYSLOG ];
		}
	}
	bgp {
		local-as 65500;
		peer-as 65500;

		policy {
			input [ NO_ROUTES ];
			output [ NO_ROUTES ];
		}

		allow [ 0.0.0.0/0 ];
	}
	state {
		policy {
			output 	[ UPDATE_STATE EXPIRE_STATE ];
		}
	}
}
output {
	gui {
		policy {
			output 	[ UPDATE_GUI_EVENT EXPIRE_GUI_STORAGE ];
		}
	}
	email {
		default {
			server 	localhost;	/* Replace with your SMTP server. */
			from		"sellanms@your-domain.com";
			to			"support@your-domain.com"; /* Replace with your address. */
		}

		policy {
			input 	[ IGNORE_ALL ]; /* Remove IGNORE_ALL to recieve email. */
			output 	[ EMAIL_NOTIFICATION ];
		}
	}
	syslog {
	}
}
internal {
	tidy {
	}
}

/*
	This portion of the configuration defines variables related to the daemon and
	dynamic library modules that are to be loaded by the daemon.  It also defines
	scheduling information.  This section should remain fairly static on a system
	after initial configuration.
*/

system {
	storage {
		primary {
			driver 	mysql;
			server 	@sella_nms_server@;
			port		@sella_nms_port@;
			database @sella_nms_database@;
			username @sella_nms_username@;
			password @sella_nms_password@;
		}
	}
	snmp-mib {
		@resolved_datadir@/mibs;
		@resolved_datadir@/mibs/rfc;
		@resolved_datadir@/mibs/juniper;
		@resolved_datadir@/mibs/cisco;
		@resolved_datadir@/mibs/extreme;
		@resolved_datadir@/mibs/netscreen;
		@resolved_datadir@/mibs/arbor;
	}
	library {
		@resolved_libexecdir@/libcommon.so;
		@resolved_libexecdir@/libstorage.so;
		@resolved_libexecdir@/libpolicy.so;
		@resolved_libexecdir@/libstate.so;
	}
	module {
		default {
			nice 5;
			restart;
			user nobody;
			config "@resolved_sysconfdir@/sella_nms.conf";
			directory "@resolved_sbindir@";
			facility	local0;
		}
		discovery {
			nice 15;
			no-restart;
			schedule {
				startup;
				hour 4;
				minute 0;
				second 0;
			}
			icmp {
				executable "discovery/icmpd";
				description "icmpd <dsc>";
				order 10;
			}
			snmp {
				executable "discovery/snmpd";
				description "snmpd <dsc>";
				order 20;
			}
			topology {
				executable "discovery/topologyd";
				description "topologyd <dsc>";
				order 100;
			}
		}
		monitor {
			icmp {
				executable "monitor/icmpd";
				description "icmpd <mon>";
			}
			snmptrap {
				executable "monitor/snmptrapd";
				description "snmptrapd <mon>";
			}
			syslog {
				executable "monitor/syslogd";
				description "syslogd <mon>";
			}
			bgp {
				executable "monitor/bgpd";
				description "bgpd <mon>";
			}
			state {
				executable "monitor/stated";
				description "stated <mon>";
			}
		}
		output {
			gui {
				executable "output/guid";
				description "guid <out>";
			}
			email {
				executable "output/emaild";
				description "emaild <out>";
			}
			syslog {
				executable "output/syslogd";
				description "syslogd <out>";
			}
		}
		internal {
			tidy {
				executable "internal/tidyd";
				description "tidyd <int>";
			}
		}
	}
}

/*
** Local Variables:
** c-basic-offset: 3
** tab-width: 3
** End:
** vim600: fdm=marker
** vim: noet ts=3 sw=3
** vim: syntax=sella_nms
*/
