1 #ifndef AGENTX_PROTOCOL_H 2 #define AGENTX_PROTOCOL_H 3 config_belongs_in(agent_module)4config_belongs_in(agent_module) 5 6 #ifdef __cplusplus 7 extern "C" { 8 #endif 9 /* 10 * Definitions for Agent Extensibility Protocol (RFC 2257) 11 * 12 */ 13 14 #define AGENTX_PORT 705 15 #ifndef NETSNMP_AGENTX_SOCKET 16 #define NETSNMP_AGENTX_SOCKET "/var/agentx/master" 17 #endif 18 19 /* 20 * AgentX versions 21 */ 22 /* 23 * Use values distinct from those used to represent SNMP versions 24 */ 25 26 #define AGENTX_VERSION_BASE 192 /* Binary: 11xxxxxx */ 27 #define AGENTX_VERSION_1 (AGENTX_VERSION_BASE | 0x1) 28 29 #define IS_AGENTX_VERSION(v) (((v)&AGENTX_VERSION_BASE) == AGENTX_VERSION_BASE) 30 31 32 /* 33 * PDU types in AgentX 34 */ 35 #define AGENTX_MSG_OPEN ((u_char)1) 36 #define AGENTX_MSG_CLOSE ((u_char)2) 37 #define AGENTX_MSG_REGISTER ((u_char)3) 38 #define AGENTX_MSG_UNREGISTER ((u_char)4) 39 #define AGENTX_MSG_GET ((u_char)5) 40 #define AGENTX_MSG_GETNEXT ((u_char)6) 41 #define AGENTX_MSG_GETBULK ((u_char)7) 42 #define AGENTX_MSG_TESTSET ((u_char)8) 43 #define AGENTX_MSG_COMMITSET ((u_char)9) 44 #define AGENTX_MSG_UNDOSET ((u_char)10) 45 #define AGENTX_MSG_CLEANUPSET ((u_char)11) 46 #define AGENTX_MSG_NOTIFY ((u_char)12) 47 #define AGENTX_MSG_PING ((u_char)13) 48 #define AGENTX_MSG_INDEX_ALLOCATE ((u_char)14) 49 #define AGENTX_MSG_INDEX_DEALLOCATE ((u_char)15) 50 #define AGENTX_MSG_ADD_AGENT_CAPS ((u_char)16) 51 #define AGENTX_MSG_REMOVE_AGENT_CAPS ((u_char)17) 52 #define AGENTX_MSG_RESPONSE ((u_char)18) 53 54 55 /* 56 * Error codes from RFC 2257 57 */ 58 #define AGENTX_ERR_OPEN_FAILED (256) 59 #define AGENTX_ERR_NOT_OPEN (257) 60 #define AGENTX_ERR_INDEX_WRONG_TYPE (258) 61 #define AGENTX_ERR_INDEX_ALREADY_ALLOCATED (259) 62 #define AGENTX_ERR_INDEX_NONE_AVAILABLE (260) 63 #define AGENTX_ERR_INDEX_NOT_ALLOCATED (261) 64 #define AGENTX_ERR_UNSUPPORTED_CONTEXT (262) 65 #define AGENTX_ERR_DUPLICATE_REGISTRATION (263) 66 #define AGENTX_ERR_UNKNOWN_REGISTRATION (264) 67 #define AGENTX_ERR_UNKNOWN_AGENTCAPS (265) 68 69 /* 70 * added in 1999 revision 71 */ 72 #define AGENTX_ERR_NOERROR SNMP_ERR_NOERROR 73 #define AGENTX_ERR_PARSE_FAILED (266) 74 #define AGENTX_ERR_REQUEST_DENIED (267) 75 #define AGENTX_ERR_PROCESSING_ERROR (268) 76 77 /* 78 * Message processing models 79 */ 80 #define AGENTX_MP_MODEL_AGENTXv1 (257) 81 82 83 /* 84 * PDU Flags - see also 'UCD_MSG_FLAG_xxx' in snmp.h 85 */ 86 #define AGENTX_MSG_FLAG_INSTANCE_REGISTER 0x01 87 #define AGENTX_MSG_FLAG_NEW_INSTANCE 0x02 88 #define AGENTX_MSG_FLAG_ANY_INSTANCE 0x04 89 #define AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT 0x08 90 #define AGENTX_MSG_FLAG_NETWORK_BYTE_ORDER 0x10 91 92 #define AGENTX_MSG_FLAGS_MASK 0xff 93 94 /* 95 * Session Flags - see also 'UCD_FLAGS_xxx' in snmp.h 96 */ 97 #define AGENTX_FLAGS_NETWORK_BYTE_ORDER AGENTX_MSG_FLAG_NETWORK_BYTE_ORDER 98 99 100 101 int agentx_realloc_build(netsnmp_session * session, 102 netsnmp_pdu *pdu, u_char ** buf, 103 size_t * buf_len, 104 size_t * out_len); 105 int agentx_parse(netsnmp_session *, netsnmp_pdu *, 106 u_char *, size_t); 107 int agentx_check_packet(u_char *, size_t); 108 109 #ifdef __cplusplus 110 } 111 #endif 112 #endif /* AGENTX_PROTOCOL_H */ 113