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

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  * tcpConn data access header
  3.  *
  4.  * $Id: tcpConn.h,v 1.1 2004/09/16 15:31:48 rstory Exp $
  5.  */
  6. #ifndef NETSNMP_ACCESS_TCPCONN_H
  7. #define NETSNMP_ACCESS_TCPCONN_H
  8. # ifdef __cplusplus
  9. extern          "C" {
  10. #endif
  11. /**---------------------------------------------------------------------*/
  12. /*
  13.  * structure definitions
  14.  */
  15.     /*
  16.      * tcpconnLocalAddress(2)/IPADDR/ASN_IPADDRESS/u_long(u_long)//l/A/w/e/r/d/h
  17.      * tcpconnLocalPort(3)/INTEGER/ASN_INTEGER/long(long)//l/A/w/e/R/d/h
  18.      * tcpconnRemAddress(4)/IPADDR/ASN_IPADDRESS/u_long(u_long)//l/A/w/e/r/d/h
  19.      * tcpconnRemPort(5)/INTEGER/ASN_INTEGER/long(long)//l/A/w/e/R/d/h
  20.      */
  21. #define NETSNMP_TCPCONN_IDX_LOCAL_ADDR       0
  22. #define NETSNMP_TCPCONN_IDX_LOCAL_PORT       1
  23. #define NETSNMP_TCPCONN_IDX_REMOTE_ADDR      2
  24. #define NETSNMP_TCPCONN_IDX_REMOTE_PORT      3
  25. /*
  26.  * netsnmp_tcpconn_entry
  27.  *   - primary tcpconn structure for both ipv4 & ipv6
  28.  */
  29. typedef struct netsnmp_tcpconn_s {
  30.    netsnmp_index oid_index;   /* MUST BE FIRST!! for container use */
  31.    oid           indexes[4];
  32.    int       flags; /* for net-snmp use */
  33.    /*
  34.     * mib related data (considered for
  35.     *  netsnmp_access_tcpconn_entry_update)
  36.     */
  37.    
  38.    /*
  39.     * tcpconnState(1)/INTEGER/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
  40.     */
  41.    u_long          tcpConnState;
  42.    
  43.    netsnmp_data_list *arch_data;      /* arch specific data */
  44.    
  45. } netsnmp_tcpconn_entry;
  46. /**---------------------------------------------------------------------*/
  47. /*
  48.  * ACCESS function prototypes
  49.  */
  50. /*
  51.  * ifcontainer init
  52.  */
  53. netsnmp_container * netsnmp_access_tcpconn_container_init(u_int init_flags);
  54. #define NETSNMP_ACCESS_TCPCONN_INIT_NOFLAGS               0x0000
  55. #define NETSNMP_ACCESS_TCPCONN_INIT_ADDL_IDX_BY_ADDR      0x0001
  56. /*
  57.  * ifcontainer load and free
  58.  */
  59. netsnmp_container*
  60. netsnmp_access_tcpconn_container_load(netsnmp_container* container,
  61.                                       u_int load_flags);
  62. #define NETSNMP_ACCESS_TCPCONN_LOAD_NOFLAGS               0x0000
  63. void netsnmp_access_tcpconn_container_free(netsnmp_container *container,
  64.                                            u_int free_flags);
  65. #define NETSNMP_ACCESS_TCPCONN_FREE_NOFLAGS               0x0000
  66. #define NETSNMP_ACCESS_TCPCONN_FREE_DONT_CLEAR            0x0001
  67. #define NETSNMP_ACCESS_TCPCONN_FREE_KEEP_CONTAINER        0x0002
  68. /*
  69.  * create/free a tcpconn entry
  70.  */
  71. netsnmp_tcpconn_entry *
  72. netsnmp_access_tcpconn_entry_create(void);
  73. void netsnmp_access_tcpconn_entry_free(netsnmp_tcpconn_entry * entry);
  74. /*
  75.  * update/compare
  76.  */
  77. int
  78. netsnmp_access_tcpconn_entry_update(netsnmp_tcpconn_entry *old, 
  79.                                       netsnmp_tcpconn_entry *new);
  80. /*
  81.  * find entry in container
  82.  */
  83. /** not yet */
  84. /*
  85.  * create/change/delete
  86.  */
  87. int
  88. netsnmp_access_tcpconn_entry_set(netsnmp_tcpconn_entry * entry);
  89. /*
  90.  * tcpconn flags
  91.  *   upper bits for internal use
  92.  *   lower bits indicate changed fields. see FLAG_TCPCONN* definitions in
  93.  *         tcpConnTable_constants.h
  94.  */
  95. #define NETSNMP_ACCESS_TCPCONN_CREATE     0x80000000
  96. #define NETSNMP_ACCESS_TCPCONN_DELETE     0x40000000
  97. #define NETSNMP_ACCESS_TCPCONN_CHANGE     0x20000000
  98. /**---------------------------------------------------------------------*/
  99. # ifdef __cplusplus
  100. }
  101. #endif
  102. #endif /* NETSNMP_ACCESS_TCPCONN_H */