⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agentx.h

📁 wm PNE 3.3 source code, running at more than vxworks6.x version.
💻 H
📖 第 1 页 / 共 2 页
字号:
#define ENVOY_AX_BAD_SIZE           4#define ENVOY_AX_WRONG_VERSION      5#define ENVOY_AX_PARSE_ERROR        6#define ENVOY_AX_BAD_OPERATION      7#define ENVOY_AX_SESS_LOSS          8#define ENVOY_AX_TOO_BIG            9/* AgentX packet access macros */#define ax_pkt_get_context(PKTP) (&(PKTP)->context)/* AgentX version stamps */#define ENVOY_AX_VERSION_1 1#define ENVOY_AX_VERSION_MAXIMUM 1/* AgentX session admin status codes */#define ENVOY_AX_SESSION_UP   1#define ENVOY_AX_SESSION_DOWN 2/* globals variables for subagents */#ifndef ENVOY_AX_SA_TIMEOUT#define ENVOY_AX_SA_TIMEOUT 1000#endifextern bits32_t envoy_ax_sa_timeout;extern void envoy_ax_sa_init   (void);extern void            envoy_ax_pkt_init     (ENVOY_AX_PKT_T *);extern ENVOY_AX_PKT_T *envoy_ax_pkt_allocate (void);extern ALENGTH_T       envoy_ax_pkt_size     (ENVOY_AX_PKT_T *, VB_T *);extern void            envoy_ax_pkt_clean    (ENVOY_AX_PKT_T *);extern void            envoy_ax_pkt_free     (ENVOY_AX_PKT_T *);extern int	       envoy_ax_pkt_encode  (ENVOY_AX_PKT_T *, VB_T *,					     EBUFFER_T *, ALENGTH_T);extern ENVOY_AX_PKT_T *envoy_ax_pkt_decode  (bits8_t *, ALENGTH_T, int *);extern ENVOY_AX_PKT_T *envoy_ax_pkt_create_all(int *,    bits8_t,    bits8_t,					       bits8_t,  bits32_t,   bits32_t,					       bits8_t,  bits32_t,   bits8_t *,					       int,      OBJ_ID_T *, bits8_t,					       bits8_t,  bits8_t,    OIDC_T,					       bits32_t, bits8_t *,  int,					       bits8_t);extern int envoy_ax_pkt_create_open  (EBUFFER_T *, bits8_t,    bits8_t,				      bits32_t,    bits8_t,    bits32_t,				      bits8_t *,   OBJ_ID_T *);extern int envoy_ax_pkt_create_close (EBUFFER_T *, bits8_t,  bits8_t,				      bits32_t,    bits32_t, bits8_t);extern int envoy_ax_pkt_create_registrations(EBUFFER_T *, bits8_t,  bits8_t,					     bits8_t,     bits32_t, bits32_t,					     bits8_t,     bits8_t,  bits8_t,					     OBJ_ID_T *,  OIDC_T,   bits32_t,					     bits8_t *);extern int envoy_ax_pkt_create_ping  (EBUFFER_T *, bits8_t,  bits8_t,				      bits32_t,    bits32_t, bits32_t,				      bits8_t *);extern int envoy_ax_pkt_create_agent_caps(EBUFFER_T *, bits8_t,    bits8_t,					  bits8_t,     bits32_t,   bits32_t,					  bits32_t,    bits8_t *,  bits32_t,					  bits8_t *,   OBJ_ID_T *);extern ENVOY_AX_PKT_T *envoy_ax_pkt_create_variables(int *,    bits8_t,						     bits8_t,  bits8_t,						     bits32_t, bits32_t,						     bits32_t, bits8_t *,						     int,      int);extern int envoy_ax_bind_integer   (ENVOY_AX_PKT_T *, int, int, OIDC_T *,				    sbits32_t);extern int envoy_ax_bind_ip_address(ENVOY_AX_PKT_T *, int, int, OIDC_T *,				    bits8_t *);extern int envoy_ax_bind_null      (ENVOY_AX_PKT_T *, int, int, OIDC_T *);extern int envoy_ax_bind_object_id (ENVOY_AX_PKT_T *, int, int, OIDC_T *,				    int, OIDC_T *);extern int envoy_ax_bind_string    (ENVOY_AX_PKT_T *, int, int, OIDC_T *,				    bits8_t, int, bits8_t *, int);extern int envoy_ax_bind_uint_64   (ENVOY_AX_PKT_T *, int, int, OIDC_T *,				    bits8_t, bits32_t, bits32_t);extern int envoy_ax_bind_uint      (ENVOY_AX_PKT_T *, int, int, OIDC_T *,				    bits8_t, bits32_t);extern void envoy_ax_sa_handler(bits8_t *, ALENGTH_T, ENVOY_AX_SA_SB_T *,				ENVOY_AX_ADMIN_T *, ENVOY_AX_SEND_T *,				ENVOY_AX_ERROR_T *, ptr_t);extern int _snmp_find_next_helper_ax(MIBNODE_T *, int,                                      OIDC_T*, OBJ_ID_T *, int, VB_T *,                                      SNMP_PKT_T *, int);extern int _snmp_find_next_bound(MIBNODE_T *, VB_T *);#if INSTALL_COMMON_DYNAMIC_COMP_CONFIGextern void ax_dyncfg_init(void);#endifextern ENVOY_AX_SA_SB_T *envoy_ax_sa_state_create(void);extern void              envoy_ax_sa_state_init  (ENVOY_AX_SA_SB_T *);extern int               envoy_ax_sa_session_loss(ENVOY_AX_SA_SB_T *, ptr_t,						  int, bits32_t);typedef struct ENVOY_AX_SESSION_S	{	struct ENVOY_AX_SESSION_S *next;/* next session in the list */	bits32_t	session_id;	/* id for this session */	bits32_t	connection_id;  /* id for this connection */	bits8_t		version;  	/* protocol version for this session */	bits8_t         timeout;        /* default timeout period */	bits8_t         flags;		/* flags, currently byte order */	ENVOY_AX_SEND_T  *send;         /* routine to send to sub agent */	ENVOY_AX_ERROR_T *error;        /* routine to free the cookie */	ptr_t             cookie;       /* cookie for use with send rtn */	OBJ_ID_T	sub_id;         /* tag for sub agent */	EBUFFER_T       descr;          /* string for sub agent */	bits32_t        timestamp;      /* when this session started */        bits32_t        timeout_count;  /* number of consecutive timeouts */        } ENVOY_AX_SESSION_T;typedef struct ENVOY_AX_MA_REG_S	{	bits32_t	reg_index;	/* index for use in agentx mib */	bits32_t	context_id;     /* index of context for this object */	bits8_t         priority;       /* priority for this object */	MIBLEAF_T      *leaf;           /* leaf for use in the mib tree					   also contains session, priority					   and timeout information */	struct ENVOY_AX_MA_REG_S *next;	struct ENVOY_AX_MA_REG_S *mib_next;	} ENVOY_AX_MA_REG_T;typedef struct ENVOY_AX_MA_REGLIST_S	{	struct ENVOY_AX_MA_REGLIST_S *next; /* next registration in the list */	bits32_t	reg_index;	   /* index for use in agentx mib */	bits32_t	session_id;	   /* id for this session */	bits32_t	connection_id;     /* id for this connection */	bits8_t		range_id;	   /* subid which has range, if any */	OIDC_T 		bound;		   /* upper bound of range, if any */	bits8_t		flags;	   	   /* non-zero if this is an instance */	MIBLEAF_T      *mibleaf;           /* MIB leaf that has more info on this reg. */	struct ENVOY_AX_MA_REGLIST_S *match; /* For list of registrations w/same OID */	bits32_t        context_id;        /* id for this context */ 	bits8_t         priority;          /* priority of this registration */	OBJ_ID_T        start_oid;         /* registered subtree, or start if range */	} ENVOY_AX_MA_REGLIST_T;typedef struct ENVOY_AX_CONTEXT_S	{	bits32_t	id;	        /* this context's index in the list */	struct ENVOY_AX_CONTEXT_S *next; /* ptr to next element in list */	EBUFFER_T       context;	/* string for the context */	MIBNODE_T       *mibroot;	/* mib root node the user gave us */	TREENODE_T      *indexroot;     /* root for possible indexes */        } ENVOY_AX_CONTEXT_T;/* control structure for outstanding agentx requests */typedef struct AX_CB_S        {        struct AX_CB_S *next;	bits32_t        reqid;        SNMP_PKT_T     *pktp;        VB_T           *vbp;	int             count;        } AX_CB_T;/* global variables used by an agentx master to keep state */#ifndef ENVOY_AX_DEFAULT_TIMEOUT#define ENVOY_AX_DEFAULT_TIMEOUT 1#endif#ifndef SNMP_AX_TIMEOUT_COUNT#define SNMP_AX_TIMEOUT_COUNT 3#endif    /* General sub-agent response packet pre-processing. */#ifndef AX_RESPONSE_PREPROCESS#define AX_RESPONSE_PREPROCESS(PKT)#endifextern bits32_t agentxDefaultTimeout;extern AX_CB_T    *first_axcb;extern bits32_t    ax_reqid;extern bits32_t    ax_registration_id;extern TREENODE_T *registration_root;extern bits32_t    agentxRegisterDuplicate;extern bits32_t            envoy_ax_session_id;extern ENVOY_AX_SESSION_T *envoy_ax_session_list;extern ENVOY_AX_MA_REGLIST_T *envoy_ax_registration_list;extern bits32_t            context_list_id;extern ENVOY_AX_CONTEXT_T *context_list;extern sbits32_t   agentxMasterAgentXVer;extern void envoy_ax_ma_init   (void);extern void envoy_ax_ma_handler(bits8_t *, ALENGTH_T, ENVOY_AX_SA_SB_T *,				ENVOY_AX_ADMIN_T *, ENVOY_AX_SEND_T *,				ENVOY_AX_ERROR_T *, ptr_t);extern int  envoy_ax_ma_cleanup_sessions(ptr_t, bits8_t);typedef void ENVOY_AX_HANDLER_T (bits8_t *, ALENGTH_T, ENVOY_AX_SA_SB_T *,				 ENVOY_AX_ADMIN_T *, ENVOY_AX_SEND_T *,				 ENVOY_AX_ERROR_T *, ptr_t);extern void envoy_ax_chunk_init   (ENVOY_AX_CHUNK_T *);extern int  envoy_ax_chunk_clean  (ENVOY_AX_CHUNK_T *);extern int  envoy_ax_chunk_handler(bits8_t *, ALENGTH_T, ENVOY_AX_HANDLER_T *,				   ENVOY_AX_CHUNK_T *, ENVOY_AX_SA_SB_T *,				   ENVOY_AX_ADMIN_T *, ENVOY_AX_SEND_T *,				   ENVOY_AX_ERROR_T *, ENVOY_AX_ADD_T *,				   ptr_t);#if (!defined(ENVOY_AX_COOKIE_CMP))#define ENVOY_AX_COOKIE_CMP(HAND, COOKIE) (HAND == COOKIE)#endiftypedef struct ENVOY_AX_INDEX_STR_S	{	ALENGTH_T  length;	bits8_t   *buffer;        } ENVOY_AX_INDEX_STR_T;typedef struct ENVOY_AX_INDEX_DATA_S	{	struct ENVOY_AX_INDEX_DATA_S *next;	bits32_t                      session_id; /* 0 for no session */	union {		OBJ_ID_T              objid;		bits32_t              bits32;		ENVOY_AX_INDEX_STR_T  string;		bits8_t               ipaddr[4];	      } data;	} ENVOY_AX_INDEX_DATA_T;typedef struct ENVOY_AX_INDEX_HDR_S	{	bits8_t                type;	ENVOY_AX_INDEX_DATA_T *data;	} ENVOY_AX_INDEX_HDR_T;#ifdef WINDNET_STRUCT_ALIGN#pragma align 0#endifextern ENVOY_AX_SESSION_T *ax_session_find_index(bits32_t, int *);extern void                ax_session_release   (ENVOY_AX_SESSION_T *);extern ENVOY_AX_SESSION_T *ax_session_next      (bits32_t, int *);extern int                 envoy_ax_ma_cleanup_session_mth(bits32_t, bits8_t);extern ENVOY_AX_CONTEXT_T *ax_context_index(bits32_t);extern ENVOY_AX_CONTEXT_T *ax_context_next (ENVOY_AX_CONTEXT_T *);extern ENVOY_AX_MA_REG_T  *find_reg_leaf(OBJ_ID_T *, bits8_t, bits32_t);extern sbits32_t Find_Leaf_From_Root(MIBNODE_T *, OBJ_ID_T *, MIBLEAF_T **);extern int  AX_Add_Leaf_From_Root(MIBNODE_T *, OBJ_ID_T *, MIBLEAF_T *,				  MIBLEAF_T **);extern MIBLEAF_T * AX_Remove_Leaf_From_Root(MIBNODE_T *, OBJ_ID_T *);#define ENVOY_AX_TRANSPORT_TYPE_UNIX  1#define ENVOY_AX_TRANSPORT_TYPE_TCP   2#define ENVOY_AX_TRANSPORT_TYPE_UDP   3#define ENVOY_AX_TRANSPORT_TYPE_MEM   4#define ENVOY_AX_TRANSPORT_TYPE_OTHER 5extern void  ax_ma_index_allocate  (ENVOY_AX_PKT_T *, ENVOY_AX_PKT_T *,				    ENVOY_AX_CONTEXT_T *);extern void  ax_ma_index_deallocate(ENVOY_AX_PKT_T *, ENVOY_AX_PKT_T *,				    ENVOY_AX_CONTEXT_T *);extern void  ax_ma_cleanup_indexes (bits32_t);#if INSTALL_ENVOY_AGENTX_INDEX#define AX_MA_RTN_IND_ALLOC(AX, RP, CON)   ax_ma_index_allocate(AX, RP, CON)#define AX_MA_RTN_IND_DEALLOC(AX, RP, CON) ax_ma_index_deallocate(AX, RP, CON)#else#define AX_MA_RTN_IND_ALLOC(AX, RP, CON)   ((RP)->error_stat = GEN_ERR)#define AX_MA_RTN_IND_DEALLOC(AX, RP, CON) ((RP)->error_stat = GEN_ERR)#endif#ifdef __cplusplus}#endif#endif /* envoy_agentx_inc */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -