| #ifndef AGENTX_PROTOCOL_H |
| #define AGENTX_PROTOCOL_H |
| |
| config_belongs_in(agent_module) |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| /* |
| * Definitions for Agent Extensibility Protocol (RFC 2257) |
| * |
| */ |
| |
| #define AGENTX_PORT 705 |
| #ifndef NETSNMP_AGENTX_SOCKET |
| #define NETSNMP_AGENTX_SOCKET "/var/agentx/master" |
| #endif |
| |
| /* |
| * AgentX versions |
| */ |
| /* |
| * Use values distinct from those used to represent SNMP versions |
| */ |
| |
| #define AGENTX_VERSION_BASE 192 /* Binary: 11xxxxxx */ |
| #define AGENTX_VERSION_1 (AGENTX_VERSION_BASE | 0x1) |
| |
| #define IS_AGENTX_VERSION(v) (((v)&AGENTX_VERSION_BASE) == AGENTX_VERSION_BASE) |
| |
| |
| /* |
| * PDU types in AgentX |
| */ |
| #define AGENTX_MSG_OPEN ((u_char)1) |
| #define AGENTX_MSG_CLOSE ((u_char)2) |
| #define AGENTX_MSG_REGISTER ((u_char)3) |
| #define AGENTX_MSG_UNREGISTER ((u_char)4) |
| #define AGENTX_MSG_GET ((u_char)5) |
| #define AGENTX_MSG_GETNEXT ((u_char)6) |
| #define AGENTX_MSG_GETBULK ((u_char)7) |
| #define AGENTX_MSG_TESTSET ((u_char)8) |
| #define AGENTX_MSG_COMMITSET ((u_char)9) |
| #define AGENTX_MSG_UNDOSET ((u_char)10) |
| #define AGENTX_MSG_CLEANUPSET ((u_char)11) |
| #define AGENTX_MSG_NOTIFY ((u_char)12) |
| #define AGENTX_MSG_PING ((u_char)13) |
| #define AGENTX_MSG_INDEX_ALLOCATE ((u_char)14) |
| #define AGENTX_MSG_INDEX_DEALLOCATE ((u_char)15) |
| #define AGENTX_MSG_ADD_AGENT_CAPS ((u_char)16) |
| #define AGENTX_MSG_REMOVE_AGENT_CAPS ((u_char)17) |
| #define AGENTX_MSG_RESPONSE ((u_char)18) |
| |
| |
| /* |
| * Error codes from RFC 2257 |
| */ |
| #define AGENTX_ERR_OPEN_FAILED (256) |
| #define AGENTX_ERR_NOT_OPEN (257) |
| #define AGENTX_ERR_INDEX_WRONG_TYPE (258) |
| #define AGENTX_ERR_INDEX_ALREADY_ALLOCATED (259) |
| #define AGENTX_ERR_INDEX_NONE_AVAILABLE (260) |
| #define AGENTX_ERR_INDEX_NOT_ALLOCATED (261) |
| #define AGENTX_ERR_UNSUPPORTED_CONTEXT (262) |
| #define AGENTX_ERR_DUPLICATE_REGISTRATION (263) |
| #define AGENTX_ERR_UNKNOWN_REGISTRATION (264) |
| #define AGENTX_ERR_UNKNOWN_AGENTCAPS (265) |
| |
| /* |
| * added in 1999 revision |
| */ |
| #define AGENTX_ERR_NOERROR SNMP_ERR_NOERROR |
| #define AGENTX_ERR_PARSE_FAILED (266) |
| #define AGENTX_ERR_REQUEST_DENIED (267) |
| #define AGENTX_ERR_PROCESSING_ERROR (268) |
| |
| /* |
| * Message processing models |
| */ |
| #define AGENTX_MP_MODEL_AGENTXv1 (257) |
| |
| |
| /* |
| * PDU Flags - see also 'UCD_MSG_FLAG_xxx' in snmp.h |
| */ |
| #define AGENTX_MSG_FLAG_INSTANCE_REGISTER 0x01 |
| #define AGENTX_MSG_FLAG_NEW_INSTANCE 0x02 |
| #define AGENTX_MSG_FLAG_ANY_INSTANCE 0x04 |
| #define AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT 0x08 |
| #define AGENTX_MSG_FLAG_NETWORK_BYTE_ORDER 0x10 |
| |
| #define AGENTX_MSG_FLAGS_MASK 0xff |
| |
| /* |
| * Session Flags - see also 'UCD_FLAGS_xxx' in snmp.h |
| */ |
| #define AGENTX_FLAGS_NETWORK_BYTE_ORDER AGENTX_MSG_FLAG_NETWORK_BYTE_ORDER |
| |
| |
| |
| int agentx_realloc_build(netsnmp_session * session, |
| netsnmp_pdu *pdu, u_char ** buf, |
| size_t * buf_len, |
| size_t * out_len); |
| int agentx_parse(netsnmp_session *, netsnmp_pdu *, |
| u_char *, size_t); |
| int agentx_check_packet(u_char *, size_t); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif /* AGENTX_PROTOCOL_H */ |