As per Relevance of the word processing, we have this rfc below:











Network Working Group M.
Request for Comments: 2257 Digital Equipment
Category: Standards Track B.
T.J. Watson Research Center, IBM Corp
D. Francisco, Ed
Cisco Systems, Inc
January 1998

Agent Extensibility (AgentX)
Version 1


Status of this

This document specifies an Internet standards track protocol for
Internet community, and requests discussion and suggestions
improvements. Please refer to the current edition of the "
Official Protocol Standards" (STD 1) for the standardization
and status of this protocol. Distribution of this memo is unlimited

Copyright

Copyright (C) The Internet Society (1998). All Rights Reserved

Table of

1 Introduction......................................................4

2 The SNMP Framework................................................4
2.1 A Note on Terminology.........................................4

3 Extending the MIB.................................................5
3.1 Motivation for AgentX.........................................5

4 AgentX Framework..................................................6
4.1 AgentX Roles..................................................7
4.2 Applicability.................................................8
4.3 Design Features of AgentX.....................................9
4.4 Non-Goals....................................................10

5 AgentX Encodings.................................................10
5.1 Object Identifier............................................11
5.2 SearchRange..................................................13
5.3 Octet String.................................................14
5.4 Value Representation.........................................14

6 Protocol Definitions.............................................16
6.1 AgentX PDU Header............................................16



Daniele, et. al. Standards Track [Page 1]

RFC 2257 AgentX January 1998


6.1.1 Context..................................................19
6.2 AgentX PDUs..................................................20
6.2.1 The agentx-Open-PDU......................................20
6.2.2 The agentx-Close-PDU.....................................21
6.2.3 The agentx-Register-PDU..................................22
6.2.4 The agentx-Unregister-PDU................................25
6.2.5 The agentx-Get-PDU.......................................27
6.2.6 The agentx-GetNext-PDU...................................29
6.2.7 The agentx-GetBulk-PDU...................................30
6.2.8 The agentx-TestSet-PDU...................................31
6.2.9 The agentx-CommitSet, -UndoSet, -
PDUs.....................................................33
6.2.10 The agentx-Notify-PDU...................................33
6.2.11 The agentx-Ping-PDU.....................................34
6.2.12 The agentx-IndexAllocate-PDU............................35
6.2.13 The agentx-IndexDeallocate-PDU..........................36
6.2.14 The agentx-AddAgentCaps-PDU.............................37
6.2.15 The agentx-RemoveAgentCaps-PDU..........................38
6.2.16 The agentx-Response-PDU.................................39

7 Elements of Procedure............................................41
7.1 Processing AgentX Administrative Messages....................42
7.1.1 Processing the agentx-Open-PDU...........................42
7.1.2 Processing the agentx-IndexAllocate-PDU..................43
7.1.3 Using the agentx-IndexAllocate-PDU.......................45
7.1.4 Processing the agentx-IndexDeallocate-PDU................47
7.1.5 Processing the agentx-Register-PDU.......................48
7.1.5.1 Handling Duplicate OID Ranges........................50
7.1.6 Processing the agentx-Unregister-PDU.....................51
7.1.7 Processing the agentx-AddAgentCaps-PDU...................51
7.1.8 Processing the agentx-RemoveAgentCaps-PDU................52
7.1.9 Processing the agentx-Close-PDU..........................52
7.1.10 Detecting Connection Loss...............................53
7.1.11 Processing the agentx-Notify-PDU........................53
7.1.12 Processing the agentx-Ping-PDU..........................54
7.2 Processing Received SNMP Protocol Messages...................54
7.2.1 Dispatching AgentX PDUs..................................55
7.2.1.1 agentx-Get-PDU.......................................57
7.2.1.2 agentx-GetNext-PDU...................................58
7.2.1.3 agentx-GetBulk-PDU...................................59
7.2.1.4 agentx-TestSet-PDU...................................60
7.2.1.5 Dispatch.............................................60
7.2.2 Subagent Processing of agentx-Get, GetNext
GetBulk-PDUs.............................................61
7.2.2.1 Subagent Processing of the agentx-Get-PDU............61
7.2.2.2 Subagent Processing of
agentx-GetNext-PDU...................................62




Daniele, et. al. Standards Track [Page 2]

RFC 2257 AgentX January 1998


7.2.2.3 Subagent Processing of
agentx-GetBulk-PDU...................................62
7.2.3 Subagent Processing of agentx-TestSet
-CommitSet, -UndoSet, -CleanupSet-PDUs...................63
7.2.3.1 Subagent Processing of
agentx-TestSet-PDU...................................64
7.2.3.2 Subagent Processing of
agentx-CommitSet-PDU.................................65
7.2.3.3 Subagent Processing of
agentx-UndoSet-PDU...................................65
7.2.3.4 Subagent Processing of
agentx-CleanupSet-PDU................................65
7.2.4 Master Agent Processing of AgentX Responses..............66
7.2.4.1 Common Processing of All AgentX
PDUs.................................................66
7.2.4.2 Processing of Responses to agentx-Get-PDUs...........66
7.2.4.3 Processing of Responses
agentx-GetNext-PDU and agentx-GetBulk-PDU............67
7.2.4.4 Processing of Responses
agentx-TestSet-PDUs..................................68
7.2.4.5 Processing of Responses
agentx-CommitSet-PDUs................................68
7.2.4.6 Processing of Responses
agentx-UndoSet-PDUs..................................69
7.2.5 Sending the SNMP Response-PDU............................69
7.2.6 MIB Views................................................69
7.3 State Transitions............................................70
7.3.1 Set Transaction States...................................70
7.3.2 Transport Connection States..............................71
7.3.3 Session States...........................................73

8 Transport Mappings...............................................74
8.1 AgentX over TCP..............................................74
8.1.1 Well-known Values........................................74
8.1.2 Operation................................................74
8.2 AgentX over UNIX-domain Sockets..............................75
8.2.1 Well-known Values........................................75
8.2.2 Operation................................................75

9 Security Considerations..........................................76

10 Acknowledgements................................................77

11 Authors' and Editor's Addresses.................................77

12 References......................................................78

13 Full Copyright Statement........................................80



Daniele, et. al. Standards Track [Page 3]

RFC 2257 AgentX January 1998


1.

This memo defines a standardized framework for extensible
agents. It defines processing entities called master agents
subagents, a protocol (AgentX) used to communicate between them,
the elements of procedure by which the extensible agent
SNMP protocol messages

2. The SNMP

A management system contains: several (potentially many) nodes,
with a processing entity, termed an agent, which has access
management instrumentation; at least one management station; and,
management protocol, used to convey management information
the agents and management stations. Operations of the protocol
carried out under an administrative framework which
authentication, authorization, access control, and privacy policies

Management stations execute management applications which monitor
control managed elements. Managed elements are devices such
hosts, routers, terminal servers, etc., which are monitored
controlled via access to their management information

Management information is viewed as a collection of managed objects
residing in a virtual information store, termed the
Information Base (MIB). Collections of related objects are
in MIB modules. These modules are written using a subset of OSI'
Abstract Syntax Notation One (ASN.1) [1], termed the Structure
Management Information (SMI) (see RFC 1902 [2]).

2.1. A Note on

The term "variable" refers to an instance of a non-aggregate
type defined according to the conventions set forth in the SMI (
1902, [2]) or the textual conventions based on the SMI (RFC 1903
[3]). The term "variable binding" normally refers to the pairing
the name of a variable and its associated value. However, if
kinds of exceptional conditions occur during processing of
retrieval request, a variable binding will pair a name and
indication of that exception

A variable-binding list is a simple list of variable bindings

The name of a variable is an OBJECT IDENTIFIER, which is
concatenation of the OBJECT IDENTIFIER of the corresponding
type together with an OBJECT IDENTIFIER fragment identifying





Daniele, et. al. Standards Track [Page 4]

RFC 2257 AgentX January 1998


instance. The OBJECT IDENTIFIER of the corresponding object-type
called the OBJECT IDENTIFIER prefix of the variable. For the
of exposition, the original Internet-

Network Management Framework, as described in RFCs 1155 (STD 16),
1157 (STD 15), and 1212 (STD 16), is termed the SNMP version 1
framework (SNMPv1). The current framework, as described in
1902-1908, is termed the SNMP version 2 framework (SNMPv2).

3. Extending the

New MIB modules that extend the Internet-standard MIB
continuously being defined by various IETF working groups. It
also common for enterprises or individuals to create or
enterprise-specific or experimental MIBs

As a result, managed devices are frequently complex collections
manageable components that have been independently installed on
managed node. Each component provides instrumentation for
managed objects defined in the MIB module(s) it implements

Neither the SNMP version 1 nor version 2 framework describes how
set of managed objects supported by a particular agent may be
dynamically

3.1. Motivation for

This very real need to dynamically extend the management
within a node has given rise to a variety of "extensible agents",
which typically

- a "master" agent that is available on the standard
address and that accepts SNMP protocol

- a set of "subagents" that each contain


- a protocol that operates between the master agent and subagents
permitting subagents to "connect" to the master agent, and
master agent to multiplex received SNMP protocol
amongst the subagents

- a set of tools to aid subagent development, and a runtime (API
environment that hides much of the protocol operation between
subagent and the master agent






Daniele, et. al. Standards Track [Page 5]

RFC 2257 AgentX January 1998


The wide deployment of extensible SNMP agents, coupled with the
of Internet standards in this area, makes it difficult to
SNMP-manageable applications. A vendor may have to support
different subagent environments (APIs) in order to support
target platforms

It can also become quite cumbersome to configure subagents
(possibly multiple) master agents on a particular managed node

Specifying a standard protocol for agent extensibility (AgentX
provides the technical foundation required to solve both of
problems. Independently developed AgentX-capable master agents
subagents will be able to interoperate at the protocol level
Vendors can continue to differentiate their products in all
respects

4. AgentX

Within the SNMP framework, a managed node contains a
entity, called an agent, which has access to management information

Within the AgentX framework, an agent is further defined to


- a single processing entity called the master agent, which
and receives SNMP protocol messages in an agent role (
specified by the SNMP version 1 and version 2
documents) but typically has little or no direct access
management information

- 0 or more processing entities called subagents, which
"shielded" from the SNMP protocol messages processed by
master agent, but which have access to management information

The master and subagent entities communicate via AgentX
messages, as specified in this memo. Other interfaces (if any)
these entities, and their associated protocols, are outside the
of this document. While some of the AgentX protocol messages
similar in syntax and semantics to the SNMP, bear in mind that
is not SNMP

The internal operations of AgentX are invisible to an SNMP
operating in a manager role. From a manager's point of view,
extensible agent behaves exactly as would a non-
(monolithic) agent that has access to the same
instrumentation





Daniele, et. al. Standards Track [Page 6]

RFC 2257 AgentX January 1998


This transparency to managers is a fundamental requirement of AgentX
and is what differentiates AgentX subagents from SNMP proxy agents

4.1. AgentX

An entity acting in a master agent role performs the
functions

- Accepts AgentX session establishment requests from subagents

- Accepts registration of MIB regions by subagents

- Sends and accepts SNMP protocol messages on the agent'
specified transport addresses

- Implements the agent role Elements of Procedure
for the administrative framework applicable to the SNMP
message, except where they specify performing
operations. (The application of MIB views, and the
control policy for the managed node, are implemented by
master agent.)

- Provides instrumentation for the MIB objects defined in
1907 [5], and for any MIB objects relevant to any
framework it supports

- Sends and receives AgentX protocol messages to
management information, based on the current registry of
regions

- Forwards notifications on behalf of subagents

An entity acting in a subagent role performs the following functions

- Initiates an AgentX session with the master agent

- Registers MIB regions with the master agent

- Instantiates managed objects

- Binds OIDs within its registered MIB regions to
variables

- Performs management operations on variables

- Initiates notifications





Daniele, et. al. Standards Track [Page 7]

RFC 2257 AgentX January 1998


4.2

It is intended that this memo specify the smallest amount of
behavior necessary to achieve the largest benefit, that is, to
a very large number of possible MIB implementations
configurations with minimum complexity and low "cost of entry".

This section discusses several typical usage scenarios

1) Subagents implement separate MIB modules--for example
subagent A implements "mib-2", subagent b implements "host
resources".

It is anticipated that this will be the most common
configuration

2) Subagents implement rows in a "simple table". A simple
is one in which row creation is not specified, and for which
MIB does not define an object that counts entries in the table
Examples of simple tables are rdbmsDbTable, udpTable,
hrSWRunTable

This is the most commonly defined type of MIB table, and
represents the next most typical configuration that AgentX
support

3) Subagents share MIBs along non-row partitions.
register "chunks" of the MIB that represent multiple rows, due
the nature of the MIB's index structure. Examples
registering ipNetToMediaEntry.n, where n represents the
value for an interface implemented by the subagent,
tcpConnEntry.a.b.c.d, where a.b.c.d represents an IP address on
interface implemented by the subagent

AgentX supports these three common configurations, and
permutations of them, completely. The consensus is that
comprise a very large majority of current and likely future uses
multi-vendor extensible agent configurations

4) Subagents implement rows in "complex tables". Complex
here are defined as tables permitting row creation, or whose
also defines an object that counts entries in the table.
include the MIB-2 ifTable (due to ifNumber), and the
historyControlTable







Daniele, et. al. Standards Track [Page 8]

RFC 2257 AgentX January 1998


The subagent that implements such a counter object (like ifNumber
must go beyond AgentX to correctly implement it. This is
implementation issue (and most new MIB designs no longer include
objects).

To implement row creation in such tables, at least one
subagent must register at a point "higher" in the OID tree than
individual row (per AgentX's dispatching procedure). Again, this
an implementation issue

Scenarios in this category were thought to occur somewhat rarely
configurations where subagents are independently implemented
different vendors. The focus of a standard protocol, however,
be in just those areas where multi- vendor interoperability must
assured

Note that it would be inefficient (due to AgentX
overhead) to share a table among AgentX subagents if the
contains very dynamic instances, and each subagent registers
qualified instances. ipRouteTable could be an example of such
table in some environments

4.3. Design Features of

The primary features of the design described in this memo are

1) A general architectural division of labor between master
and subagent: The master agent is MIB ignorant and
omniscient, while the subagent is SNMP ignorant and MIB
(for the MIB variables it instantiates). That is, master agents
exclusively, are concerned with SNMP protocol operations and
translations to and from AgentX protocol operations needed
carry them out; subagents are exclusively concerned
management instrumentation; and neither should intrude on
other's territory

2) A standard protocol and "rules of engagement" to
interoperability between management instrumentation and
agents

3) Mechanisms for independently developed subagents
integrate into the extensible agent on a particular managed
in such a way that they need not be aware of any other
subagents







Daniele, et. al. Standards Track [Page 9]

RFC 2257 AgentX January 1998


4) A simple, deterministic registry and dispatching algorithm
For a given extensible agent configuration, there is a
subagent who is "authoritative" for any particular region of
MIB (where "region" may extend from an entire MIB down to a
object-instance).

5) Performance considerations. It is likely that the
agent and all subagents will reside on the same host, and in
cases AgentX is more a form of inter-process communication than
traditional communications protocol

Some of the design decisions made with this in mind include

- 32-bit alignment of data within

- Native byte-order encoding by

- Large AgentX PDU payload sizes

4.4 Non-

1) Subagent-to-subagent communication. This is out of scope
due to the security ramifications and complexity involved

2) Subagent access (via the master agent) to MIB variables
This is not addressed, since various other mechanisms
available and it was not a fundamental requirement

3) The ability to accommodate every conceivable
agent configuration option. This was the most contentious
in the development of this protocol. In essence, certain
currently available in some commercial extensible agent
are not included in AgentX. Although useful or even vital in
implementation strategies, the rough consensus was that
features were not appropriate for an Internet Standard, or
typically required for independently developed subagents
coexist. The set of supported extensible agent configurations
described above, in Section 4.2.

Some possible future version of the AgentX protocol may
coverage for one or more of these "non-goals" or for new goals
might be identified after greater deployment experience

5. AgentX

AgentX PDUs consist of a common header, followed by PDU-specific
of variable length. Unlike SNMP PDUs, AgentX PDUs are not
using the BER (as specified in ISO 8824 [1]), but are transmitted



Daniele, et. al. Standards Track [Page 10]

RFC 2257 AgentX January 1998


a contiguous byte stream. The data within this stream is
to provide natural alignment with respect to the start of the PDU
permitting direct (integer) access by the processing entities

The first four fields in the header are single-byte values. A
(NETWORK_BYTE_ORDER) in the third field (h.flags) is used to
the byte ordering of all multi-byte integer values in the PDU
including those which follow in the header itself. This is
in more detail in Section 6.1, "AgentX PDU Header", below

PDUs are depicted in this memo using the following convention (
byte 1 is the first transmitted byte):

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| byte 1 | byte 2 | byte 3 | byte 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| byte 5 | byte 6 | byte 7 | byte 8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Fields marked "<reserved>" are reserved for future use and must
zero-filled

5.1. Object

An object identifier is encoded as a 4-byte header, followed by
variable number of contiguous 4-byte fields representing sub
identifiers. This representation (termed Object Identifier) is
follows

Object

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | include | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Object Identifier header fields

n_

The number (0-128) of sub-identifiers in the object identifier
An ordered list of "n_subid" 4-byte sub-identifiers follows
4-byte header




Daniele, et. al. Standards Track [Page 11]

RFC 2257 AgentX January 1998




An unsigned value used to reduce the length of
identifier encodings. A non-zero value "x" is interpreted
the first sub-identifier after "internet" (1.3.6.1),
indicates an implicit prefix "internet.x" to the actual sub
identifiers encoded in the Object Identifier. For example,
prefix field value 2 indicates an implicit prefix "1.3.6.1.2".
A value of 0 in the prefix field indicates there is no
to the sub-identifiers



Used only when the Object Identifier is the start of
SearchRange, as described in section 5.2.

A null Object Identifier consists of the 4-byte header with all
set to 0.

Examples

sysDescr.0 (1.3.6.1.2.1.1.1.0)

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4 | 2 | 0 | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

1.2.3.4

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4 | 0 | 0 | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 3 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Daniele, et. al. Standards Track [Page 12]

RFC 2257 AgentX January 1998


5.2.

A SearchRange consists of two Object Identifiers. In
communication with a subagent, the master agent uses a SearchRange
identify a requested variable binding, and, in GetNext and
operations, to set an upper bound on the names of managed
instances the subagent may send in reply

The first Object Identifier in a SearchRange (called the
OID) indicates the beginning of the range. It is frequently (but
necessarily) the name of a requested variable binding

The "include" field in this OID's header is a boolean value (0 or 1)
indicating whether or not the starting OID is included in the range

The second object identifier indicates the non-inclusive end of
range, and its "include" field is always 0.

Example: To indicate a search range from 1.3.6.1.2.1.25.2
(inclusive) to 1.3.6.1.2.1.25.2.1 (exclusive), the SearchRange


(start
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 3 | 2 | 1 | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 25 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(end
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4 | 2 | 0 | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 25 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

A SearchRangeList is a contiguous list of SearchRanges




Daniele, et. al. Standards Track [Page 13]

RFC 2257 AgentX January 1998


5.3. Octet

An octet string is represented by a contiguous series of bytes
beginning with a 4-byte integer whose value is the number of
in the octet string, followed by the octets themselves.
representation is termed an Octet String. If the last octet does
end on a 4-byte offset from the start of the Octet String,
bytes are appended to achieve alignment of following data.
padding must be added even if the Octet String is the last item
the PDU. Padding bytes must be zero filled

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

A null Octet String consists of a 4-byte length field set to 0.

5.4. Value

Variable bindings may be encoded within the variable-length
of some PDUs. The representation of a variable binding (termed
VarBind) consists of a 2-byte type field, a name (Object Identifier),
and the actual value data



+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| v.type | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(v.name
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+







Daniele, et. al. Standards Track [Page 14]

RFC 2257 AgentX January 1998


(v.data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

VarBind fields

v.

Indicates the variable binding's syntax, and must be one
the following values

Integer (2),
Octet String (4),
Null (5),
Object Identifier (6),
IpAddress (64),
Counter32 (65),
Gauge32 (66),
TimeTicks (67),
Opaque (68),
Counter64 (70),
noSuchObject (128),
noSuchInstance (129),
endOfMibView (130)

v.

The Object Identifier which names the variable

v.

The actual value, encoded as follows

- Integer, Counter32, Gauge32, and TimeTicks are encoded
4 contiguous bytes. If the NETWORK_BYTE_ORDER bit is
in h.flags, the bytes are ordered most significant to
significant, otherwise they are ordered least
to most significant

- Counter64 is encoded as 8 contiguous bytes. If
NETWORK_BYTE_ORDER bit is set in h.flags, the bytes
ordered most significant to least significant,
they are ordered least significant to most significant




Daniele, et. al. Standards Track [Page 15]

RFC 2257 AgentX January 1998


- Object Identifiers are encoded as described in
5.1, Object Identifier

- IpAddress, Opaque, and Octet String are all octet
and are encoded as described in section 5.3, Octet String

Value data always follows v.name whenever v.type is
of the above types. These data bytes are present even
they will not be used (as, for example, in certain
of index allocation).

- Null, noSuchObject, noSuchInstance, and endOfMibView do
contain any encoded value. Value data never
v.name in these cases

Note that the VarBind itself does not contain the value size
That information is implied for the fixed-length types,
explicitly contained in the encodings of variable-length
(Object Identifier and Octet String).

A VarBindList is a contiguous list of VarBinds. Within
VarBindList, a particular VarBind is identified by an index value
The first VarBind in a VarBindList has index value 1, the
has index value 2, and so on

6. Protocol

6.1. AgentX PDU

The AgentX PDU header is a fixed-format, 20-octet structure

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version | h.type | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

An AgentX PDU header contains the following fields

h.

The version of the AgentX protocol (1 for this memo).



Daniele, et. al. Standards Track [Page 16]

RFC 2257 AgentX January 1998


h.

The PDU type; one of the following values

agentx-Open-PDU (1),
agentx-Close-PDU (2),
agentx-Register-PDU (3),
agentx-Unregister-PDU (4),
agentx-Get-PDU (5),
agentx-GetNext-PDU (6),
agentx-GetBulk-PDU (7),
agentx-TestSet-PDU (8),
agentx-CommitSet-PDU (9),
agentx-UndoSet-PDU (10),
agentx-CleanupSet-PDU (11),
agentx-Notify-PDU (12),
agentx-Ping-PDU (13),
agentx-IndexAllocate-PDU (14),
agentx-IndexDeallocate-PDU (15),
agentx-AddAgentCaps-PDU (16),
agentx-RemoveAgentCaps-PDU (17),
agentx-Response-PDU (18)

h.

A bitmask, with bit 0 the least significant bit. The
definitions are as follows

Bit
--- ----------
0 INSTANCE_
1 NEW_
2 ANY_
3 NON_DEFAULT_
4 NETWORK_BYTE_
5-7 (reserved

The NETWORK_BYTE_ORDER bit applies to all multi-byte
values in the entire AgentX packet, including the
header fields. If set, then network byte order (
significant byte first; "big endian") is used. If not set
then least significant byte first ("little endian") is used

The NETWORK_BYTE_ORDER bit applies to all AgentX PDUs

The NON_DEFAULT_CONTEXT bit is used only in the AgentX
described in section 6.1.1.




Daniele, et. al. Standards Track [Page 17]

RFC 2257 AgentX January 1998


The NEW_INDEX and ANY_INDEX bits are used only within
agentx-IndexAllocate-, and -IndexDeallocate-PDUs

The INSTANCE_REGISTRATION bit is used only within the agentx
Register-PDU

h.

The session ID uniquely identifies a session over which
PDUs are exchanged between a subagent and the master agent
The session ID has no significance and no defined value in
agentx-Open-PDU sent by a subagent to open a session with
master agent; in this case, the master agent will assign
unique sessionID that it will pass back in the
agentx-Response-PDU. From that point on, that same
will appear in every AgentX PDU exchanged over that
between the master and the subagent. A subagent may
multiple AgentX sessions by sending multiple agentx-Open-
to the master agent

In master agents that support multiple transport protocols,
sessionID should be globally unique rather than unique just
a particular transport

h.

The transaction ID uniquely identifies, for a given session
the single SNMP management request (and single SNMP PDU)
which an AgentX PDU is associated. If a single SNMP
request results in multiple AgentX PDUs being sent by
master agent with the same sessionID, each of these AgentX
must contain the same transaction ID; conversely, AgentX
sent during a particular session, that result from
SNMP management requests, must have distinct transaction
within the limits of the 32-bit field).

Note that the transaction ID is not the same as the SNMP PDU'
request-id (as described in section 4.1 of RFC 1905 [4]),
can it be, since a master agent might receive SNMP
with the same request-ids from different managers

The transaction ID has no significance and no defined value
AgentX administrative PDUs, i.e., AgentX PDUs that are
associated with an SNMP management request







Daniele, et. al. Standards Track [Page 18]

RFC 2257 AgentX January 1998


h.

A packet ID generated by the sender for all AgentX PDUs
the agentx-Response-PDU. In an agentx-Response-PDU, the
ID must be the same as that in the received AgentX PDU to
it is a response. A master agent might use this field
associate subagent response PDUs with their
request PDUs. A subagent might use this field to
responses to multiple (batched) registrations

h.payload_

The size in octets of the PDU contents, excluding the 20-
header. As a result of the encoding schemes and PDU layouts
this value will always be either 0, or a multiple of 4.

6.1.1.

In the SNMPv1 or v2c frameworks, the community string may be used
an index into a local repository of configuration information
may include community profiles or more complex context information
Future versions of the SNMP will likely formalize this notion
"context".

AgentX provides a mechanism for transmitting a context
within relevant PDUs, but does not place any constraints on
content of that specification

An optional context field may be present in the agentx-Register-,
UnRegister-, AddAgentCaps-, RemoveAgentCaps-, Get-, GetNext-,
GetBulk-, IndexAllocate-, IndexDeallocate-, Notify-, TestSet-,
Ping- PDUs

If the NON_DEFAULT_CONTEXT bit in the AgentX header field h.flags
clear, then there is no context field in the PDU, and the
refers to the default context

If the NON_DEFAULT_CONTEXT bit is set, then a context
immediately follows the AgentX header, and the operation refers
that specific context. The context is represented as an
String. There are no constraints on its length or contents

Thus, all of these AgentX PDUs (that is, those listed
above) refer to, or "indicate" a context, which is either the
context, or a non-default context explicitly named in the PDU






Daniele, et. al. Standards Track [Page 19]

RFC 2257 AgentX January 1998


6.2. AgentX

6.2.1. The agentx-Open-

An agentx-Open-PDU is generated by a subagent to
establishment of an AgentX session with the master agent

(AgentX header

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (1) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| o.timeout | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(o.id
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| subidentifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| subidentifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(o.descr
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

An agentx-Open-PDU contains the following fields



Daniele, et. al. Standards Track [Page 20]

RFC 2257 AgentX January 1998


o.

The length of time, in seconds, that a master agent
allow to elapse after dispatching a message to a
before it regards the subagent as not responding. This is
subagent-wide default value that may be overridden by
associated with specific registered MIB regions. The
value of 0 indicates that no subagent-wide value is requested

o.

An Object Identifier that identifies the subagent.
that do not support such an notion may send a null
Identifier

o.

An Octet String containing a DisplayString describing
subagent

6.2.2. The agentx-Close-

An agentx-Close-PDU issued by either a subagent or the master
terminates an AgentX session

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (2) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| c.reason | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

An agentx-Close-PDU contains the following field








Daniele, et. al. Standards Track [Page 21]

RFC 2257 AgentX January 1998


c.

An enumerated value that gives the reason that the master
or subagent closed the AgentX session. This field may take
of the following values

reasonOther(1)
None of the following

reasonParseError(2)
Too many AgentX parse errors from

reasonProtocolError(3)
Too many AgentX protocol errors from

reasonTimeouts(4)
Too many timeouts waiting for

reasonShutdown(5)
Sending entity is shutting

reasonByManager(6)
Due to Set operation; this reason code can be used
by the master agent, in response to an SNMP
request

6.2.3. The agentx-Register-

An agentx-Register-PDU is generated by a subagent for each region
the MIB variable naming tree (within one or more contexts) that
wishes to support

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (3) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+







Daniele, et. al. Standards Track [Page 22]

RFC 2257 AgentX January 1998


(r.context) (OPTIONAL
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| r.timeout | r.priority | r.range_subid | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(r.region
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(r.upper_bound
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| optional upper-bound sub-identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

An agentx-Register-PDU contains the following fields

r.

An optional non-default context

r.

The length of time, in seconds, that a master agent
allow to elapse after dispatching a message to a
before it regards the subagent as not responding. r.
applies only to messages that concern MIB objects
r.region. It overrides both the subagent-wide value (if any
indicated when the AgentX session with the master agent
established, and the master agent's default timeout.
default value for r.timeout is 0 (no override).




Daniele, et. al. Standards Track [Page 23]

RFC 2257 AgentX January 1998


r.

A value between 1 and 255, used to achieve a
configuration when different subagents register identical
overlapping regions. Subagents with no particular knowledge
priority should register with the default value of 255 (
priority).

In the master agent's dispatching algorithm, smaller values
r.priority take precedence over larger values, as described
section 7.1.5.1.

r.

An Object Identifier that, in conjunction with r.range_subid
indicates a region of the MIB that a subagent wishes
support. It may be a fully-qualified instance name, a
instance name, a MIB table, an entire MIB, or ranges of any
these

The choice of what to register is implementation-specific;
memo does not specify permissible values. Standard
however is for a subagent to register at the highest level
the naming tree that makes sense. Registration of fully
qualified instances is typically done only when a subagent
perform management operations only on particular rows of
conceptual table

If r.region is in fact a fully qualified instance name,
INSTANCE_REGISTRATION bit in h.flags must be set, otherwise
must be cleared. The master agent may save this information
optimize subsequent operational dispatching

r.range_

Permits specifying a range in place of one of r.region's sub
identifiers. If this value is 0, no range is specified
Otherwise the "r.range_subid"-th sub-identifier in r.region
a range lower bound, and the range upper bound sub-
(r.upper_bound) immediately follows r.region

This permits registering a conceptual row with a single PDU
For example, the following PDU would register row 7 of the
1573 ifTable (1.3.6.1.2.1.2.2.1.1-22.7):







Daniele, et. al. Standards Track [Page 24]

RFC 2257 AgentX January 1998


(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (3) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| r.timeout | r.priority | 5 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(r.region
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 6 | 2 | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 7 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(r.upper_bound
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 22 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

6.2.4. The agentx-Unregister-

The agentx-Unregister-PDU is sent by a subagent to remove
previously registered MIB region from the master agent's OID space








Daniele, et. al. Standards Track [Page 25]

RFC 2257 AgentX January 1998


(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (4) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(u.context)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| <reserved> | u.priority | u.range_subid | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(u.region
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(u.upper_bound
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| optional upper-bound sub-identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

An agentx-Unregister-PDU contains the following fields






Daniele, et. al. Standards Track [Page 26]

RFC 2257 AgentX January 1998


u.

An optional non-default context

u.

The priority at which this region was originally registered

u.

Indicates a previously-registered region of the MIB that
subagent no longer wishes to support

6.2.5. The agentx-Get-

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (5) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(g.context)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(g.sr

(start 1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | include | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




Daniele, et. al. Standards Track [Page 27]

RFC 2257 AgentX January 1998


...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(end 1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 | 0 | 0 | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
(start n
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | include | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...


+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(end n
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 | 0 | 0 | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


An agentx-Get-PDU contains the following fields

g.

An optional non-default context

g.

A SearchRangeList containing the requested variables for
subagent












Daniele, et. al. Standards Track [Page 28]

RFC 2257 AgentX January 1998


6.2.6. The agentx-GetNext-

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (6) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(g.context)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(g.sr


(start 1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | include | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(end 1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+





Daniele, et. al. Standards Track [Page 29]

RFC 2257 AgentX January 1998


...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...

(start n
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | include | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(end n
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...

6.2.7. The agentx-GetBulk-

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (7) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+








Daniele, et. al. Standards Track [Page 30]

RFC 2257 AgentX January 1998


(g.context)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| g.non_repeaters | g.max_repetitions |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(g.sr) as in agentx-GetNext-PDU
...

6.2.8. The agentx-TestSet-

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (8) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(t.context)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(t.vb






Daniele, et. al. Standards Track [Page 31]

RFC 2257 AgentX January 1998


(VarBind 1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| v.type | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...


(VarBind n
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| v.type | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| n_subid | prefix | 0 | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-identifier #n_subid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

An agentx-TestSet-PDU contains the following fields

t.

An optional non-default context






Daniele, et. al. Standards Track [Page 32]

RFC 2257 AgentX January 1998


t.

A VarBindList containing the requested VarBinds for
subagent

6.2.9. The agentx-CommitSet, -UndoSet, -CleanupSet

These PDUs consist of the AgentX header only

The agentx-CommitSet-, -UndoSet-, and -Cleanup-PDUs are used
processing an SNMP SetRequest operation

6.2.10. The agentx-Notify-

An agentx-Notify-PDU is sent by a subagent to cause the master
to forward a notification

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (12) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(n.context)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(n.vb
...


An agentx-Notify-PDU contains the following fields





Daniele, et. al. Standards Track [Page 33]

RFC 2257 AgentX January 1998


n.

An optional non-default context

n.

A VarBindList whose contents define the actual PDU to be sent
This memo places the following restrictions on its contents

- If the subagent supplies sysUpTime.0, it must
present as the first varbind

- snmpTrapOID.0 must be present, as the
varbind if sysUpTime.0 was supplied, as the first if
was not

6.2.11 The agentx-Ping-

The agentx-Ping-PDU is sent by a subagent to the master agent
monitor the master agent's ability to receive and send AgentX
over their AgentX session

(AgentX header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.version (1) | h.type (13) | h.flags | <reserved> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.sessionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.transactionID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.packetID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| h.payload_length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(p.context)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet String Length (L) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet 1 | Octet 2 | Octet 3 | Octet 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Octet L - 1 | Octet L | Padding (as required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

An agentx-Ping-PDU may contain the following field




Daniele, et. al. Standards Track [Page 34]

RFC 2257 AgentX January 1998


p.

An optional non-default context

Using p.context a