The AGENT-CAPABILITIES macro is used to convey a set of capabilities
present in a SNMPv2 entity acting in an agent role. It should be
noted that the expansion of the AGENT-CAPABILITIES macro is something
which conceptually happens during implementation and not during run-
time.
When a MIB module is written, it is divided into units of conformance
termed groups. If a SNMPv2 entity acting in an agent role claims to
implement a group, then it must implement each and every object
within that group. Of course, for whatever reason, a SNMPv2 entity
might implement only a subset of the groups within a MIB module. In
addition, the definition of some MIB objects leave some aspects of
the definition to the discretion of an implementor.
Practical experience has demonstrated a need for concisely describing
the capabilities of an agent with respect to one or more MIB modules.
The AGENT-CAPABILITIES macro allows an agent implementor to describe
the precise level of support which an agent claims in regards to a
MIB group, and to bind that description to the value of an instance
of sysORID [3]. In particular, some objects may have restricted or
augmented syntax or access-levels.
If the AGENT-CAPABILITIES invocation is given to a management-station
implementor, then that implementor can build management applications
which optimize themselves when communicating with a particular agent.
For example, the management-station can maintain a database of these
invocations. When a management-station interacts with an agent, it
retrieves from the agent the values of all instances of sysORID [3].
Based on this, it consults the database to locate each entry matching
one of the retrieved values of sysORID. Using the located entries,
the management application can now optimize its behavior accordingly.
Note that the AGENT-CAPABILITIES macro specifies refinements or
variations with respect to OBJECT-TYPE and NOTIFICATION-TYPE macros
in MIB modules, NOT with respect to MODULE-COMPLIANCE macros in
compliance statements.