# -*- perl -*- use strict; package CHIRP::Cisco::Catalyst; use lib "/usr/local/cricket/lib"; use snmpUtils; sub GenConfig { my($hostname, $snmp_community, $snmp_port, $options) = @_; $snmp_community = 'public' unless defined($snmp_community); $snmp_port = '161' unless defined($snmp_port); my($snmp) = "$snmp_community\@$hostname:$snmp_port"; my($config) = {}; my $value_hwPortType = {}; $value_hwPortType->{1}->{Descr} = "other"; $value_hwPortType->{2}->{Descr} = "cddi"; $value_hwPortType->{3}->{Descr} = "fddi"; $value_hwPortType->{4}->{Descr} = "tppmd"; $value_hwPortType->{5}->{Descr} = "mlt3"; $value_hwPortType->{6}->{Descr} = "sddi"; $value_hwPortType->{7}->{Descr} = "smf"; $value_hwPortType->{8}->{Descr} = "e10BaseT"; $value_hwPortType->{9}->{Descr} = "e10BaseF"; $value_hwPortType->{10}->{Descr} = "scf"; $value_hwPortType->{11}->{Descr} = "e100BaseTX"; $value_hwPortType->{12}->{Descr} = "e100BaseT4"; $value_hwPortType->{13}->{Descr} = "e100BaseF"; $value_hwPortType->{14}->{Descr} = "atm0c3mmf"; $value_hwPortType->{15}->{Descr} = "atm0c3smf"; $value_hwPortType->{16}->{Descr} = "atm0c3utp"; $value_hwPortType->{17}->{Descr} = "e100BaseFsm"; $value_hwPortType->{18}->{Descr} = "e10a100BaseTX"; $value_hwPortType->{19}->{Descr} = "mii"; $value_hwPortType->{20}->{Descr} = "vlanRouter"; $value_hwPortType->{21}->{Descr} = "unknown"; $value_hwPortType->{22}->{Descr} = "tokenring"; $value_hwPortType->{23}->{Descr} = "unknown"; $value_hwPortType->{24}->{Descr} = "unknown"; $value_hwPortType->{25}->{Descr} = "atmDs3"; $value_hwPortType->{26}->{Descr} = "tokenringMmf"; my $value_modType = {}; $value_modType->{"WS-X5006"}->{Descr} = "100BaseFX MM Supervisor"; $value_modType->{"WS-X5009"}->{Descr} = "100BaseTX Supervisor"; $value_modType->{"WS-X5010"}->{Descr} = "24 port - 10BaseT Ethernet"; $value_modType->{"WS-X5011"}->{Descr} = "12 port - 10BaseFL Ethernet"; $value_modType->{"WS-X5012"}->{Descr} = "48 port - 10BaseT Ethernet"; $value_modType->{"WS-X5157"}->{Descr} = "SM OC-3 Dual-Phy ATM"; $value_modType->{"WS-X5158"}->{Descr} = "MM OC-3 Dual-Phy ATM"; $value_modType->{"WS-X5201"}->{Descr} = "12 port - 100BaseFX MM Ethernet"; $value_modType->{"WS-X5213A"}->{Descr} = "12 port - 10/100BaseTX Ethernet"; $value_modType->{"WS-X5224"}->{Descr} = "24 port - 10/100BaseTX Ethernet"; $value_modType->{"WS-X5506"}->{Descr} = "100BaseFX MM Supervisor II"; ############################################################################### ### MIB OID definitions. ############################################################################### # OIDs used in config creation my%OID=( #from mib-2.system. 'sysName'=>'1.3.6.1.2.1.1.5.0', 'sysLocation'=>'1.3.6.1.2.1.1.6.0', #from mib-2.interfaces.ifTable.ifEntry 'ifDescr'=>'1.3.6.1.2.1.2.2.1.2', 'ifAdminStatus'=>'1.3.6.1.2.1.2.2.1.7', #from mib-2.ifMIB.ifMIBObjects.ifXTable.ifXEntry 'ifName'=>'1.3.6.1.2.1.31.1.1.1.1', 'ifConnector'=>'1.3.6.1.2.1.31.1.1.1.17', #from mib-2.entityMIB.entityMIBObjects.entityPhysical. #entPhysicalTable.entPhysicalEntry 'entPhysicalDescr'=>'1.3.6.1.2.1.47.1.1.1.1.2', 'entPhysicalVendorType'=>'1.3.6.1.2.1.47.1.1.1.1.3', 'entPhysicalContainedIn'=>'1.3.6.1.2.1.47.1.1.1.1.4', 'entPhysicalName'=>'1.3.6.1.2.1.47.1.1.1.1.7', #from cisco.workgroup.ciscoStackMIB.systemGrp 'sysTraffic'=>'1.3.6.1.4.1.9.5.1.1.8.0', #from cisco.workgroup.ciscoStackMIB.chassisGrp 'chassisModel'=>'1.3.6.1.4.1.9.5.1.2.16.0', #from cisco.workgroup.ciscoStackMIB.moduleGrp.moduleTable 'moduleIndex'=>'1.3.6.1.4.1.9.5.1.3.1.1.1', 'moduleType'=>'1.3.6.1.4.1.9.5.1.3.1.1.2', 'moduleStatus'=>'1.3.6.1.4.1.9.5.1.3.1.1.10', 'moduleName'=>'1.3.6.1.4.1.9.5.1.3.1.1.13', 'moduleModel'=>'1.3.6.1.4.1.9.5.1.3.1.1.17', 'moduleStandbyStatus'=>'1.3.6.1.4.1.9.5.1.3.1.1.21', 'moduleSlotNum'=>'1.3.6.1.4.1.9.5.1.3.1.1.25', #from cisco.workgroup.ciscoStackMIB.portGrp.portTable 'portModIndex'=>'1.3.6.1.4.1.9.5.1.4.1.1.1', 'portIndex'=>'1.3.6.1.4.1.9.5.1.4.1.1.2', 'portCrossIndex'=>'1.3.6.1.4.1.9.5.1.4.1.1.3', 'portName'=>'1.3.6.1.4.1.9.5.1.4.1.1.4', 'portType'=>'1.3.6.1.4.1.9.5.1.4.1.1.5', 'portIfIndex'=>'1.3.6.1.4.1.9.5.1.4.1.1.11', #from cisco.workgroup.ciscoStackMIB.vlanGrp.vlanPortTable 'vlanPortVlan'=>'1.3.6.1.4.1.9.5.1.9.3.1.3', 'vlanPortIslVlansAllowed'=>'1.3.6.1.4.1.9.5.1.9.3.1.5', 'vlanPortIslOperStatus'=>'1.3.6.1.4.1.9.5.1.9.3.1.8', #from cisco.ciscoMgmt.ciscoSwitchEngineMIB. #cseMIBObjects.cseL2Objects.cseL2StatsTable 'cseL2ForwardedTotalPkts'=>'1.3.6.1.4.1.9.9.97.1.1.1.1.3', 'cseL2NewAddressLearns'=>'1.3.6.1.4.1.9.9.97.1.1.1.1.4', 'cseL2AddrLearnFailures'=>'1.3.6.1.4.1.9.9.97.1.1.1.1.5', 'cseL2DstAddrLookupMisses'=>'1.3.6.1.4.1.9.9.97.1.1.1.1.6', ); ############################################################################### # OIDs used in targets file $config->{oid}->{"ifInOctets"} = ".1.3.6.1.2.1.2.2.1.10"; $config->{oid}->{"ifOutOctets"} = ".1.3.6.1.2.1.2.2.1.16"; $config->{oid}->{"AlignmentErrors"} = ".1.3.6.1.2.1.10.7.2.1.2"; $config->{oid}->{"FCSErrors"} = ".1.3.6.1.2.1.10.7.2.1.3"; $config->{oid}->{"CISCOcpu1min"} = "1.3.6.1.4.1.9.2.1.57.0"; $config->{oid}->{"CISCOcpu5min"} = "1.3.6.1.4.1.9.2.1.58.0"; $config->{oid}->{"CISCOmem5minUsed"} = "1.3.6.1.4.1.9.9.48.1.1.1.5.1"; $config->{oid}->{"CISCOmem5minFree"} = "1.3.6.1.4.1.9.9.48.1.1.1.6.1"; $config->{oid}->{"CISCOc1900Bandwidth"} = "1.3.6.1.4.1.437.1.1.3.7.1.0"; $config->{oid}->{"CISCOc1900BandwidthMax"} = "1.3.6.1.4.1.437.1.1.3.7.5.0"; $config->{oid}->{"CISCOc5000Bandwidth"} = "1.3.6.1.4.1.9.5.1.1.8.0"; $config->{oid}->{"CISCOc5000BandwidthMax"} = "1.3.6.1.4.1.9.5.1.1.19.0"; # Discover Device ################################################# my $interfaces_ref = {}; my $modules_ref = {}; my($ifPort); my($ifMod); ############################ #Get Maping of Inst, Mod, Port, Name # # .cisco.workgroup.stack.portGrp.portTable.portEntry.portModuleIndex foreach my $row (snmpUtils::walk($snmp, ".1.3.6.1.4.1.9.5.1.4.1.1.11")){ my($oid, $value) = split(/:/, $row, 2); my ($mod, $port) = split(/\./, $oid); $ifPort->{$oid}->{Inst} = $value; $ifPort->{$oid}->{Mod} = $mod; $ifPort->{$oid}->{Port} = $port; $ifPort->{$oid}->{Name} = $mod . "_" . $port; $ifPort->{$oid}->{InterfaceName} = $mod . "/" . $port; ############################## #Get PortList Names - used for modual printing # $ifMod->{$mod}->{portList} = "" unless defined($ifMod->{$mod}->{portList}); $ifMod->{$mod}->{portList} .= "; " unless ($ifMod->{$mod}->{portList} =~ /^$/); $ifMod->{$mod}->{portList} .= lc($ifPort->{$oid}->{Name}); $ifMod->{0}->{Descr} = "All Ports on this switch."; $ifMod->{0}->{Name} = "All-Ports"; $ifMod->{0}->{portList} = "" unless defined($ifMod->{0}->{portList}); $ifMod->{0}->{portList} .= "; " unless ($ifMod->{0}->{portList} =~ /^$/); $ifMod->{0}->{portList} .= lc($ifPort->{$oid}->{Name}); } ########################################## #Get Port Descr # # .cisco.workgroup.stack.portGrp.portTable.portEntry.portType foreach my $row (snmpUtils::walk($snmp, ".1.3.6.1.4.1.9.5.1.4.1.1.5")){ my($oid, $value) = split(/:/, $row, 2); $ifPort->{$oid}->{Descr} = $value_hwPortType->{$value}->{Descr}; } #Check for set description #.iso.org.dod.internet.private.enterprises.cisco.workgroup.stack.portGrp.portTable.portEntry.portName foreach my $row (snmpUtils::walk($snmp, ".1.3.6.1.4.1.9.5.1.4.1.1.4")){ my($oid, $value) = split(/:/, $row, 2); if ($value !~ /^$/){ $ifPort->{$oid}->{Descr} = $ifPort->{$oid}->{Descr} . " -> ". $value; } } ########################################## #Get Mod Descr # .cisco.workgroup.stack.moduleGrp.moduleTable.moduleEntry.moduleModel foreach my $row (snmpUtils::walk($snmp, ".1.3.6.1.4.1.9.5.1.3.1.1.17")){ my($oid, $value) = split(/:/, $row, 2); $ifMod->{$oid}->{Name} = "Module_" . $oid; $ifMod->{$oid}->{Descr} = $value; } # .entityMIB.entityMIBObjects.entityPhysical # .entPhysicalTable.entPhysicalEntry.entPhysicalName # .1.3.6.1.2.1.47.1.1.1.1.7 # .entityMIB.entityMIBObjects.entityPhysical # .entPhysicalTable.entPhysicalEntry.entPhysicalDescr # .1.3.6.1.2.1.47.1.1.1.1.2 my $ModEntPhysicalDescr = {}; foreach my $row (snmpUtils::walk($snmp, ".1.3.6.1.2.1.47.1.1.1.1.2")){ my($oid, $value) = split(/:/, $row, 2); $ModEntPhysicalDescr->{$oid} = $value; } foreach my $row (snmpUtils::walk($snmp, ".1.3.6.1.2.1.47.1.1.1.1.7")){ my($oid, $value) = split(/:/, $row, 2); if(defined($ifMod->{$value})) { $ifMod->{$value}->{Descr} .= " - " . $ModEntPhysicalDescr->{$oid}; } } ########################################## #Get Chassis Info # .cisco.workgroup.stack.chassisGrp.chassisModel my ($ChassisModel) = snmpUtils::get($snmp, ".1.3.6.1.4.1.9.5.1.2.16.0"); my($DirectoryName) = "Cisco Catalyst, " . $ChassisModel; my($DefaultType) = "Catalyst-Switch-Port"; ########################################## #Device creation # $config->{target}->{"--default--"}->{"snmp-host"} = '"' . $hostname . '"'; $config->{target}->{"--default--"}->{"snmp-community"} = "$snmp_community"; $config->{target}->{"--default--"}->{"snmp-port"} = "$snmp_port"; $config->{target}->{"--default--"}->{"snmp"} = "%snmp-community%@%snmp-host%:%snmp-port%"; $config->{target}->{"--default--"}->{"Display-name"} = '%interface-name%'; $config->{target}->{"--default--"}->{"directory-desc"} = '"' . $DirectoryName . '"'; $config->{target}->{"--default--"}->{"target-type"} = '"' . $DefaultType . '"'; my(@tmp) = (keys % $ifPort); my($portCount) = $#tmp; @tmp = (keys % $ifMod); my($modCount) = $#tmp; my($ifCount) = ($modCount + $portCount + 2); sub CmpModPort { my($left, $right) = @_; if(($left->{Mod} <=> $right->{Mod}) == 0) { return $left->{Port} <=> $right->{Port}; } return $left->{Mod} <=> $right->{Mod}; } ####################################### #Create Modules foreach my $oid (sort {$a <=> $b}(keys % $ifMod)){ $config->{target}->{$ifMod->{$oid}->{Name}}->{"short-desc"} = '"' . $ifMod->{$oid}->{Descr} . '"'; $config->{target}->{$ifMod->{$oid}->{Name}}->{"interface-name"} = '"' . $ifMod->{$oid}->{Name} . '"'; $config->{target}->{$ifMod->{$oid}->{Name}}->{"targets"} = '"' . $ifMod->{$oid}->{portList} . '"'; $config->{target}->{$ifMod->{$oid}->{Name}}->{"order"} = $ifCount; $ifCount--; } ####################################### #Create Ports foreach my $oid (sort {CmpModPort($ifPort->{$a}, $ifPort->{$b})}(keys % $ifPort)){ $config->{target}->{lc($ifPort->{$oid}->{Name})}->{"short-desc"} = '"' . $ifPort->{$oid}->{Descr} . '"'; $config->{target}->{lc($ifPort->{$oid}->{Name})}->{"interface-name"} = '"' . $ifPort->{$oid}->{InterfaceName} . '"'; $config->{target}->{lc($ifPort->{$oid}->{Name})}->{"order"} = $ifCount; $config->{target}->{lc($ifPort->{$oid}->{Name})}->{"inst"} = $ifPort->{$oid}->{Inst}; $ifCount--; } ####################################### #Create DataSource Definitions $config->{datasource}->{"--default--"}->{"rrd-ds-type"} = "COUNTER"; $config->{datasource}->{"ifInOctets"}->{"ds-source"} = "snmp://%snmp%/ifInOctets.%inst%"; $config->{datasource}->{"ifOutOctets"}->{"ds-source"} = "snmp://%snmp%/ifOutOctets.%inst%"; $config->{datasource}->{"AlignmentErrors"}->{"ds-source"} = "snmp://%snmp%/AlignmentErrors.%inst%"; $config->{datasource}->{"AlignmentErrors"}->{"desc"} = '"A count of frames received on a particular interface that are not an integral number of octets in length and do not pass the FCS check."'; $config->{datasource}->{"FCSErrors"}->{"ds-source"} = "snmp://%snmp%/FCSErrors.%inst%"; $config->{datasource}->{"CISCOc1900-bandwidth"}->{"ds-source"} = "snmp://%snmp%/CISCOc1900Bandwidth"; $config->{datasource}->{"CISCOc1900-bandwidth"}->{"desc"} = '"The amount of bandwidth used across the backplane."'; $config->{datasource}->{"CISCOc1900-bandwidth-max"}->{"ds-source"} = "snmp://%snmp%/CISCOc1900BandwidthMax"; $config->{datasource}->{"CISCOc1900-bandwidth-max"}->{"desc"} = '"The maximum amount of bandwidth used across the backplane."'; $config->{datasource}->{"CISCOc5000-bandwidth"}->{"ds-source"} = "snmp://%snmp%/CISCOc5000Bandwidth"; $config->{datasource}->{"CISCOc5000-bandwidth"}->{"desc"} = '"The amount of bandwidth used across the backplane."'; $config->{datasource}->{"CISCOc5000-bandwidth-max"}->{"ds-source"} = "snmp://%snmp%/CISCOc5000BandwidthMax"; $config->{datasource}->{"CISCOc5000-bandwidth-max"}->{"desc"} = '"The maximum amount of bandwidth used across the backplane."'; $config->{datasource}->{"CISCOcpu1min"}->{"ds-source"} = "snmp://%snmp%/CISCOcpu1min"; $config->{datasource}->{"CISCOcpu1min"}->{"desc"} = '"The average usage of the CPU over the last 1 minute."'; $config->{datasource}->{"CISCOcpu1min"}->{"rrd-ds-type"} = "GAUGE"; $config->{datasource}->{"CISCOcpu5min"}->{"ds-source"} = "snmp://%snmp%/CISCOcpu5min"; $config->{datasource}->{"CISCOcpu5min"}->{"desc"} = '"The average usage of the CPU over the last 5 minutes."'; $config->{datasource}->{"CISCOcpu5min"}->{"rrd-ds-type"} = "GAUGE"; $config->{datasource}->{"CISCOmem5minUsed"}->{"ds-source"} = "snmp://%snmp%/CISCOmem5minUsed"; $config->{datasource}->{"CISCOmem5minUsed"}->{"desc"} = '"The amount of used memory."'; $config->{datasource}->{"CISCOmem5minUsed"}->{"rrd-ds-type"} = "GAUGE"; $config->{datasource}->{"CISCOmem5minFree"}->{"ds-source"} = "snmp://%snmp%/CISCOmem5minFree"; $config->{datasource}->{"CISCOmem5minFree"}->{"desc"} = '"The amount of free memory."'; $config->{datasource}->{"CISCOmem5minFree"}->{"rrd-ds-type"} = "GAUGE"; ####################################### #Create TargetType Definitions $config->{targettype}->{"Cat5000-Chassis"}->{"ds"} = '"CISCOc5000-bandwidth, CISCOc5000-bandwidth-max, CISCOcpu1min, CISCOcpu5min, CISCOmem5minUsed, CISCOmem5minFree"'; $config->{targettype}->{"Cat5000-Chassis"}->{"view"} = '"Bandwidth: CISCOc5000-bandwidth CISCOc5000-bandwidth-max, CPU: CISCOcpu1min CISCOcpu5min, Memory: CISCOmem5minUsed CISCOmem5minFree"'; $config->{targettype}->{"Catalyst-Switch-Port"}->{"ds"} = '"ifInOctets, ifOutOctets, AlignmentErrors, FCSErrors"'; $config->{targettype}->{"Catalyst-Switch-Port"}->{"view"} = '"Traffic: ifInOctets ifOutOctets, Errors: AlignmentErrors FCSErrors"'; # FIX THESE LATER #targetType Cisco-2900xl # ds = "CISCOcpu1min, CISCOcpu5min, CISCOmem5minUsed, CISCOmem5minFree" # view = "cpu: CISCOcpu1min CISCOcpu5min, # memory: CISCOmem5minUsed CISCOmem5minFree" # #targetType Cisco-1900 # ds = "CISCOc1900-bandwidth, CISCOc1900-bandwidth-max" # view = "backplane: CISCOc1900-bandwidth CISCOc1900-bandwidth-max" # #targetType Cisco-5000 # ds = "CISCOc5000-bandwidth, CISCOc5000-bandwidth-max" # view = "backplane: CISCOc5000-bandwidth CISCOc5000-bandwidth-max" ####################################### #Create Graph Definitions $config->{graph}->{"ifInOctets"}->{"legend"} = '"Average bits in"'; $config->{graph}->{"ifInOctets"}->{"y-axis"} = '"Bits per second"'; $config->{graph}->{"ifInOctets"}->{"units"} = '"bits/sec"'; $config->{graph}->{"ifInOctets"}->{"draw-as"} = "AREA"; $config->{graph}->{"ifInOctets"}->{"scale"} = '"8,*"'; $config->{graph}->{"ifOutOctets"}->{"legend"} = '"Average bits out"'; $config->{graph}->{"ifOutOctets"}->{"y-axis"} = '"Bits per second"'; $config->{graph}->{"ifOutOctets"}->{"units"} = '"bits/sec"'; $config->{graph}->{"ifOutOctets"}->{"draw-as"} = "LINE3"; $config->{graph}->{"ifOutOctets"}->{"scale"} = '"8,*"'; $config->{graph}->{"AlignmentErrors"}->{"legend"} = '"Errors"'; $config->{graph}->{"AlignmentErrors"}->{"y-axis"} = '"Errors"'; $config->{graph}->{"AlignmentErrors"}->{"units"} = '"Errors"'; $config->{graph}->{"AlignmentErrors"}->{"draw-as"} = "AREA"; $config->{graph}->{"AlignmentErrors"}->{"scale"} = '"%rrd-poll-interval%,*"'; $config->{graph}->{"FCSErrors"}->{"legend"} = '"Errors"'; $config->{graph}->{"FCSErrors"}->{"y-axis"} = '"Errors"'; $config->{graph}->{"FCSErrors"}->{"units"} = '"Errors"'; $config->{graph}->{"FCSErrors"}->{"draw-as"} = "LINE3"; $config->{graph}->{"FCSErrors"}->{"scale"} = '"%rrd-poll-interval%,*"'; $config->{graph}->{"CISCOc5000-bandwidth"}->{"units"} = '"b/s"'; $config->{graph}->{"CISCOc5000-bandwidth"}->{"color"} = '"dark-green"'; $config->{graph}->{"CISCOc5000-bandwidth"}->{"draw-as"} = '"AREA"'; $config->{graph}->{"CISCOc5000-bandwidth"}->{"y-axis"} = '"Percent backplane utilization"'; $config->{graph}->{"CISCOc5000-bandwidth"}->{"legend"} = '"Percent backplane utilization"'; $config->{graph}->{"CISCOc5000-bandwidth-max"}->{"units"} = '"b/s"'; $config->{graph}->{"CISCOc5000-bandwidth-max"}->{"color"} = '"blue"'; $config->{graph}->{"CISCOc5000-bandwidth-max"}->{"draw-as"} = '"AREA"'; $config->{graph}->{"CISCOc5000-bandwidth-max"}->{"y-axis"} = '"Max percentage backplane utilization"'; $config->{graph}->{"CISCOc5000-bandwidth-max"}->{"legend"} = '"Max percentage backplane utilization"'; $config->{graph}->{"CISCOcpu1min"}->{"units"} = '"%"'; $config->{graph}->{"CISCOcpu1min"}->{"color"} = '"dark-green"'; $config->{graph}->{"CISCOcpu1min"}->{"draw-as"} = '"AREA"'; $config->{graph}->{"CISCOcpu1min"}->{"legend"} = '"1 minute CPU utilization"'; $config->{graph}->{"CISCOcpu1min"}->{"precision"} = '"0"'; $config->{graph}->{"CISCOcpu1min"}->{"y-axis"} = '"Percent CPU utilization"'; $config->{graph}->{"CISCOcpu1min"}->{"y-min"} = '"0"'; $config->{graph}->{"CISCOcpu1min"}->{"y-max"} = '"100"'; $config->{graph}->{"CISCOcpu5min"}->{"units"} = '"%"'; $config->{graph}->{"CISCOcpu5min"}->{"color"} = '"blue"'; $config->{graph}->{"CISCOcpu5min"}->{"draw-as"} = '"AREA"'; $config->{graph}->{"CISCOcpu5min"}->{"legend"} = '"5 minute CPU utilization"'; $config->{graph}->{"CISCOcpu5min"}->{"precision"} = '"0"'; $config->{graph}->{"CISCOcpu5min"}->{"y-axis"} = '"Percent CPU utilization"'; $config->{graph}->{"CISCOcpu5min"}->{"y-min"} = '"0"'; $config->{graph}->{"CISCOcpu5min"}->{"y-max"} = '"100"'; $config->{graph}->{"CISCOmem5minUsed"}->{"units"} = '"B"'; $config->{graph}->{"CISCOmem5minUsed"}->{"color"} = '"dark-green"'; $config->{graph}->{"CISCOmem5minUsed"}->{"draw-as"} = '"AREA"'; $config->{graph}->{"CISCOmem5minUsed"}->{"y-axis"} = '"Bytes"'; $config->{graph}->{"CISCOmem5minUsed"}->{"legend"} = '"Memory Used"'; $config->{graph}->{"CISCOmem5minUsed"}->{"precision"} = '"0"'; $config->{graph}->{"CISCOmem5minFree"}->{"units"} = '"B"'; $config->{graph}->{"CISCOmem5minFree"}->{"color"} = '"blue"'; $config->{graph}->{"CISCOmem5minFree"}->{"draw-as"} = '"AREA"'; $config->{graph}->{"CISCOmem5minFree"}->{"y-axis"} = '"Bytes"'; $config->{graph}->{"CISCOmem5minFree"}->{"legend"} = '"Memory Free"'; $config->{graph}->{"CISCOmem5minFree"}->{"precision"} = '"0"'; #graph CISCOc1900-bandwidth # units = b/s # color = dark-green # draw-as = AREA # y-axis = "Bits" # legend = "Bits/s across backplane" # #graph CISCOc1900-bandwidth-max # units = b/s # color = blue # y-axis = "Bits" # legend = "Max bits/s across backplane during interval" return $config; } 1;