# # # Sample # # dn: cn=Public,ou=West,dc=example,dc=com # cn: Prod # objectClass: monitorGroup # monitorTemplate: ping_check # monitorTemplate: ssh_check # # dn: cn=Prod,ou=West,dc=example,dc=com # cn: Prod # objectClass: monitorGroup # monitorTemplate: ping_check # # dn: cn=ProdDLR,ou=West,dc=example,dc=com # cn: ProdDLR # objectClass: monitorGroup # monitorTemplate: ping_check # monitorTemplate: dns_check # monitorTemplate: ldap_check # monitorTemplate: ntp_check # monitorTemplate: radius_check # # dn: cn=ProdNagios,ou=West,dc=example,dc=com # cn: ProdNagios # objectClass: monitorGroup # monitorTemplate: ping_check # monitorTemplate: nagios_check # # # dn: cn=www,ou=West,dc=example,dc=com # cn: www # objectClass: monitorObject # monitorMemberOf: cn=Prod,ou=West,dc=example,dc=com # monitorTemplate: http_check;80 # #monitorTemplate: ping_check # # dn: cn=admin1,ou=West,dc=example,dc=com # cn: admin11 # objectClass: monitorObject # monitorMemberOf: cn=ProdDLR,ou=West,dc=example,dc=com # # dn: cn=admin2,ou=West,dc=example,dc=com # cn: admin2 # objectClass: monitorObject # monitorMemberOf: cn=ProdDLR,ou=West,dc=example,dc=com # # dn: cn=bast1,ou=West,dc=example,dc=com # cn: bast1 # objectClass: monitorObject # monitorMemberOf: cn=Prod,ou=West,dc=example,dc=com # monitorMemberOf: cn=Public,ou=West,dc=example,dc=com # #monitorTemplate: ping_check # # dn: cn=nagios1,ou=West,dc=example,dc=com # cn: nagios1 # objectClass: monitorObject # objectClass: monitorHost # monitorFQDN: nagios1.west.example.com. # monitorGroup: cn=Prod,ou=West,dc=example,dc=com # monitorMemberOf: cn=ProdNagios,ou=West,dc=example,dc=com # #monitorTemplate: ping_check # # dn: cn=nagios2,ou=West,dc=example,dc=com # cn: nagios2 # objectClass: monitorObject # objectClass: monitorHost # monitorFQDN: nagios2.west.example.com. # monitorGroup: cn=Prod,ou=West,dc=example,dc=com # monitorMemberOf: cn=ProdNagios,ou=West,dc=example,dc=com # #monitorTemplate: ping_check #these OIDs are IANA-assigned to the author objectIdentifier CNPRoot 1.3.6.1.4.1.31890 objectIdentifier MonitorRoot CNPRoot:1 # Nagios is rooted at 1.3.6.1.4.1.31890.1.2 objectIdentifier NagiosRoot MonitorRoot:2 objectIdentifier NagiosClass NagiosRoot:1 objectIdentifier NagiosMonAttr NagiosRoot:2 objectIdentifier NagiosXObAttr NagiosRoot:3 # NLR is rooted at 1.3.6.1.4.1.31890.1.3 # This schema file was somewhat hijacked, it started in the Nagios-Launched Reporter, which took # information including CDPv2 organization information and if it differed from the LDAP object, it # would post an update. The Server would accept updates to an object with an IP matching the # object's IP, but that required a secondary LDAP that would accept-and-forward permitted updates # (which would be from the affected system) to a Primary (using it's authentication). The end # result is that a system maintains all its data for you, so that when you have to go looking, the # information is on every LDAP server, which is local to any satellite office trying to track down # an asset. Then it's a case of collecting more and more, automatically, and filing it away. This # was starting to work in the most basic sense when I was canned from Phorm. Yeah, that Phorm. # Hate me now, I got the idea while working on SantaSack while I worked at SCO. Yeah, that SCO. # But I digress. objectIdentifier NLRRoot MonitorRoot:3 objectIdentifier NLRClass NLRRoot:1 objectIdentifier NLRAttr NLRRoot:2 attributetype ( NagiosXObAttr:1 NAME 'monitorTemplate' EQUALITY caseIgnoreIA5Match DESC 'in Nagios, a Template is a macro for a specific test, such as "http_check;8080" (which checks HTTP on port 8080) or "ping_check".' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( NagiosMonAttr:2 NAME 'monitorFQDN' EQUALITY caseIgnoreIA5Match DESC 'This is the FQDN of a host in the monitor system. When a host identifies itself, the gethostbyname() call should match this host (or prepend uname to domain); when specifying monitored objects, a DNS A-record for this FQDN is used to connect to the remote host.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) # Because a '_' is not acceptible in the world of LDAP, I'm hiding it as a harmless little '-'. # In the config.c, the "variable" char-string is silently changed back to allow re-use of the # parsing logic that's already there. Sure, I'd like to change that part, but I worry about the # 80/20 rule: changig too much at once incurs push-back, it become too much to accept and process # in a single shot. ...so the "-" and "_" do a dance for a while. attributetype ( NagiosMonAttr:3 NAME 'nagios-user' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) attributetype ( NagiosMonAttr:4 NAME 'nagios-group' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) attributetype ( NagiosMonAttr:5 NAME 'check-external-commands' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:6 NAME 'command-check-interval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:7 NAME 'external-command-buffer-slots' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:8 NAME 'event-broker-options' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:9 NAME 'log-rotation-method' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1} SINGLE-VALUE ) attributetype ( NagiosMonAttr:10 NAME 'log-archive-path' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( NagiosMonAttr:11 NAME 'use-syslog' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:12 NAME 'log-notifications' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:13 NAME 'log-service-retries' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:14 NAME 'illegal-object-name-chars' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( NagiosMonAttr:15 NAME 'illegal-macro-output-chars' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( NagiosMonAttr:16 NAME 'use-regexp-matching' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:17 NAME 'use-true-regexp-matching' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:18 NAME 'admin-email' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( NagiosMonAttr:19 NAME 'admin-pager' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( NagiosMonAttr:20 NAME 'daemon-dumps-core' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:21 NAME 'log-host-retries' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:22 NAME 'log-event-handlers' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:23 NAME 'log-initial-states' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:24 NAME 'log-external-commands' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:25 NAME 'log-passive-checks' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:26 NAME 'service-inter-check-delay-method' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1} SINGLE-VALUE ) attributetype ( NagiosMonAttr:27 NAME 'max-service-check-spread' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:28 NAME 'service-interleave-factor' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1} SINGLE-VALUE ) attributetype ( NagiosMonAttr:29 NAME 'host-inter-check-delay-method' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1} SINGLE-VALUE ) attributetype ( NagiosMonAttr:30 NAME 'max-host-check-spread' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:31 NAME 'max-concurrent-checks' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:32 NAME 'service-reaper-frequency' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:33 NAME 'check-result-buffer-slots' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:34 NAME 'check-result-path' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( NagiosMonAttr:35 NAME 'auto-reschedule-checks' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:36 NAME 'auto-rescheduling-interval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:37 NAME 'auto-rescheduling-window' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:38 NAME 'sleep-time' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) # there is no float/real encoding in LDAP attributetype ( NagiosMonAttr:39 NAME 'service-check-timeout' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:40 NAME 'host-check-timeout' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:41 NAME 'event-handler-timeout' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:42 NAME 'notification-timeout' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:43 NAME 'ocsp-timeout' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:44 NAME 'perfdata-timeout' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:45 NAME 'retain-state-information' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:46 NAME 'retention-update-interval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:47 NAME 'use-retained-program-state' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:48 NAME 'use-retained-scheduling-info' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:49 NAME 'interval-length' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:50 NAME 'use-aggressive-host-checking' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:51 NAME 'execute-service-checks' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:52 NAME 'accept-passive-service-checks' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:53 NAME 'execute-host-checks' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:54 NAME 'accept-passive-host-checks' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:55 NAME 'enable-notifications' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:56 NAME 'enable-event-handlers' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:57 NAME 'process-performance-data' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:58 NAME 'obsess-over-services' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:59 NAME 'check-for-orphaned-services' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:60 NAME 'check-service-freshness' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:61 NAME 'service-freshness-check-interval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:62 NAME 'check-host-freshness' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:63 NAME 'host-freshness-check-interval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:64 NAME 'aggregate-status-updates' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:65 NAME 'status-update-interval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( NagiosMonAttr:66 NAME 'enable-flap-detection' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( NagiosMonAttr:67 NAME 'low-service-flap-threshold' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) # there is no float/real encoding in LDAP attributetype ( NagiosMonAttr:68 NAME 'high-service-flap-threshold' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) # there is no float/real encoding in LDAP attributetype ( NagiosMonAttr:69 NAME 'low-host-flap-threshold' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) # there is no float/real encoding in LDAP attributetype ( NagiosMonAttr:70 NAME 'high-host-flap-threshold' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) # there is no float/real encoding in LDAP attributetype ( NagiosMonAttr:71 NAME 'date-format' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) # we truly only need enough space to write "ISO-8601" :) # This class replicates the behavior of the Main Config File. It's a staggering 70 or so attributes, # plus the pathnames to come. The items here might be logically required, but because they are # intended as augmentation to the main file, they are all optional # # there's just a lot of them! # # All "Main Config File" attributes objectclass ( NagiosClass:1 NAME 'monitorGroup' DESC 'This is a logical collection of services that is used to select a bunch of hosts to monitor at once, and may define group-wide monitored services via templates.' SUP top STRUCTURAL MUST ( cn ) MAY ( monitorFQDN $ nagios-user $ nagios-group $ check-external-commands $ command-check-interval $ external-command-buffer-slots $ event-broker-options $ log-rotation-method $ log-archive-path $ use-syslog $ log-notifications $ log-service-retries $ illegal-object-name-chars $ illegal-macro-output-chars $ use-regexp-matching $ use-true-regexp-matching $ admin-email $ admin-pager $ daemon-dumps-core $ log-host-retries $ log-event-handlers $ log-initial-states $ log-external-commands $ log-passive-checks $ service-inter-check-delay-method $ max-service-check-spread $ service-interleave-factor $ host-inter-check-delay-method $ max-host-check-spread $ max-concurrent-checks $ service-reaper-frequency $ check-result-buffer-slots $ check-result-path $ auto-reschedule-checks $ auto-rescheduling-interval $ auto-rescheduling-window $ sleep-time $ service-check-timeout $ host-check-timeout $ event-handler-timeout $ notification-timeout $ ocsp-timeout $ perfdata-timeout $ retain-state-information $ retention-update-interval $ use-retained-program-state $ use-retained-scheduling-info $ interval-length $ use-aggressive-host-checking $ execute-service-checks $ accept-passive-service-checks $ execute-host-checks $ accept-passive-host-checks $ enable-notifications $ enable-event-handlers $ process-performance-data $ obsess-over-services $ check-for-orphaned-services $ check-service-freshness $ service-freshness-check-interval $ check-host-freshness $ host-freshness-check-interval $ aggregate-status-updates $ status-update-interval $ enable-flap-detection $ low-service-flap-threshold $ high-service-flap-threshold $ low-host-flap-threshold $ high-host-flap-threshold $ date-format ) X-NDS-CONTAINMENT ('o' 'ou' 'dc') ) attributetype ( NagiosXObAttr:2 NAME ( 'monitorGroup' 'monitorMemberOf' ) EQUALITY distinguishedNameMatch DESC 'monitorGroup that monitors this ipHost' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( NagiosXObAttr:3 NAME 'check-command' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) attributetype ( NagiosXObAttr:4 NAME 'nagios-use' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE ) objectclass ( NagiosClass:2 NAME 'monitoredHost' DESC 'This is a logical host -- an ipHost with an ipHostNumber -- that needs to be monitored by the monitorGroup given. Manager may be a person or may be a Machine-type if multiple interfaces are listed as multiple instances of monitoredHost differing by ipHostNumber' SUP top AUXILIARY MUST ( cn $ ipHostNumber $ monitorGroup ) MAY ( manager $ description $ check-command $ nagios-use $ relativeDomainName ) X-NDS-CONTAINMENT ('o' 'ou' 'dc') ) objectclass ( NagiosClass:4 NAME 'monitoredDhcpHost' DESC 'This is a logical host -- an dhcpHost with an address -- that needs to be monitored by the monitorGroup given. Manager may be a person or may be a Machine-type if multiple interfaces are listed as multiple instances of monitoredHost differing by IP' SUP dhcpHost MUST ( cn $ monitorGroup ) MAY ( manager $ description $ check-command $ nagios-use $ relativeDomainName ) X-NDS-CONTAINMENT ('o' 'ou' 'dc') ) # FIXME need to use a sub-dn as a dn trimmed of searchbase and "," converted to "-" or similar tr() # needs to coord with host-name attributetype ( NagiosXObAttr:5 NAME 'host-name' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} ) objectclass ( NagiosClass:3 NAME 'monitoredService' DESC 'This is a logical service that needs to be monitored by the monitorGroup given. Manager may be a person or may be a Machine-type if multiple services are listed as multiple instances of some unique canonical' SUP top STRUCTURAL MUST ( cn $ host-name $ monitorGroup ) MAY ( manager $ description $ check-command $ nagios-use ) X-NDS-CONTAINMENT ('o' 'ou' 'dc') ) attributetype ( NLRAttr:1 NAME 'deviceID' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE) attributetype ( NLRAttr:2 NAME ( 'deviceMAC' 'sourceMAC' ) SUP macAddress) attributetype ( NLRAttr:3 NAME ( 'peerPortID' 'portID' ) EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE) attributetype ( NLRAttr:4 NAME 'peerMAC' SUP macAddress) attributetype ( NLRAttr:5 NAME 'localPortID' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE) # should be SUP ipHost objectclass ( NLRClass:3 NAME 'CDPInterface' DESC 'The interface has CDPv2 data sampled by NLR cached in LDAP' SUP top STRUCTURAL MUST ( cn $ ipHostNumber ) MAY ( deviceID $ deviceMAC $ peerPortID $ peerMAC $ macAddress $ ipHostNumber ) X-NDS-CONTAINMENT ('o' 'ou' 'dc') ) objectclass ( NLRClass:4 NAME 'CDPDHCPInterface' DESC 'The interface has CDPv2 data comingled with DHCP Statements sampled by NLR cached in LDAP' SUP dhcpHost STRUCTURAL MUST ( cn ) MAY ( deviceID $ deviceMAC $ peerPortID $ peerMAC ) X-NDS-CONTAINMENT ('o' 'ou' 'dc') )