protocol.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Unix_Linux

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