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