2 * Copyright (c) 2002-2005 MontaVista Software, Inc.
6 * Author: Steven Dake (sdake@mvista.com)
8 * This software licensed under BSD license, the text of which follows:
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions are met:
13 * - Redistributions of source code must retain the above copyright notice,
14 * this list of conditions and the following disclaimer.
15 * - Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
17 * and/or other materials provided with the distribution.
18 * - Neither the name of the MontaVista Software, Inc. nor the names of its
19 * contributors may be used to endorse or promote products derived from this
20 * software without specific prior written permission.
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
32 * THE POSSIBILITY OF SUCH DAMAGE.
34 #ifndef AIS_IPC_AMF_H_DEFINED
35 #define AIS_IPC_AMF_H_DEFINED
37 #include <netinet/in.h>
42 enum req_lib_amf_types
{
43 MESSAGE_REQ_AMF_COMPONENTREGISTER
= 0,
44 MESSAGE_REQ_AMF_COMPONENTUNREGISTER
= 1,
45 MESSAGE_REQ_AMF_PMSTART
= 2,
46 MESSAGE_REQ_AMF_PMSTOP
= 3,
47 MESSAGE_REQ_AMF_HEALTHCHECKSTART
= 4,
48 MESSAGE_REQ_AMF_HEALTHCHECKCONFIRM
= 5,
49 MESSAGE_REQ_AMF_HEALTHCHECKSTOP
= 6,
50 MESSAGE_REQ_AMF_HASTATEGET
= 7,
51 MESSAGE_REQ_AMF_CSIQUIESCINGCOMPLETE
= 8,
52 MESSAGE_REQ_AMF_PROTECTIONGROUPTRACK
= 9,
53 MESSAGE_REQ_AMF_PROTECTIONGROUPTRACKSTOP
= 10,
54 MESSAGE_REQ_AMF_COMPONENTERRORREPORT
= 11,
55 MESSAGE_REQ_AMF_COMPONENTERRORCLEAR
= 12,
56 MESSAGE_REQ_AMF_RESPONSE
= 13
59 enum res_lib_amf_types
{
60 MESSAGE_RES_AMF_COMPONENTREGISTER
= 0,
61 MESSAGE_RES_AMF_COMPONENTUNREGISTER
= 1,
62 MESSAGE_RES_AMF_PMSTART
= 2,
63 MESSAGE_RES_AMF_PMSTOP
= 3,
64 MESSAGE_RES_AMF_HEALTHCHECKSTART
= 4,
65 MESSAGE_RES_AMF_HEALTHCHECKCONFIRM
= 5,
66 MESSAGE_RES_AMF_HEALTHCHECKSTOP
= 6,
67 MESSAGE_RES_AMF_HASTATEGET
= 7,
68 MESSAGE_RES_AMF_CSIQUIESCINGCOMPLETE
= 8,
69 MESSAGE_RES_AMF_PROTECTIONGROUPTRACK
= 9,
70 MESSAGE_RES_AMF_PROTECTIONGROUPTRACKSTOP
= 10,
71 MESSAGE_RES_AMF_COMPONENTERRORREPORT
= 11,
72 MESSAGE_RES_AMF_COMPONENTERRORCLEAR
= 12,
73 MESSAGE_RES_AMF_RESPONSE
= 13,
74 MESSAGE_RES_AMF_CSISETCALLBACK
= 14,
75 MESSAGE_RES_AMF_HEALTHCHECKCALLBACK
= 15,
76 MESSAGE_RES_AMF_CSIREMOVECALLBACK
= 16,
77 MESSAGE_RES_AMF_COMPONENTTERMINATECALLBACK
= 17,
80 struct req_lib_amf_componentregister
{
81 mar_req_header_t header
;
83 SaNameT proxyCompName
;
84 } __attribute__((packed
));
86 struct res_lib_amf_componentregister
{
87 mar_res_header_t header
;
90 struct req_lib_amf_componentunregister
{
91 mar_req_header_t header
;
93 SaNameT proxyCompName
;
96 struct res_lib_amf_componentunregister
{
97 mar_res_header_t header
;
100 struct req_lib_amf_pmstart
{
101 mar_req_header_t header
;
104 SaInt32T descendentsTreeDepth
;
105 SaAmfPmErrorsT pmErrors
;
106 SaAmfRecommendedRecoveryT recommendedRecovery
;
109 struct res_lib_amf_pmstart
{
110 mar_res_header_t header
;
113 struct req_lib_amf_pmstop
{
114 mar_req_header_t header
;
116 SaAmfPmStopQualifierT stopQualifier
;
118 SaAmfPmErrorsT pmErrors
;
121 struct res_lib_amf_pmstop
{
122 mar_res_header_t header
;
125 struct req_lib_amf_healthcheckstart
{
126 mar_req_header_t header
;
128 SaAmfHealthcheckKeyT healthcheckKey
;
129 SaAmfHealthcheckInvocationT invocationType
;
130 SaAmfRecommendedRecoveryT recommendedRecovery
;
133 struct res_lib_amf_healthcheckstart
{
134 mar_res_header_t header
;
137 struct req_lib_amf_healthcheckconfirm
{
138 mar_req_header_t header
;
140 SaAmfHealthcheckKeyT healthcheckKey
;
141 SaAisErrorT healthcheckResult
;
144 struct res_lib_amf_healthcheckconfirm
{
145 mar_res_header_t header
;
148 struct req_lib_amf_healthcheckstop
{
149 mar_req_header_t header
;
151 SaAmfHealthcheckKeyT healthcheckKey
;
154 struct res_lib_amf_healthcheckstop
{
155 mar_res_header_t header
;
158 struct req_lib_amf_hastateget
{
159 mar_req_header_t header
;
164 struct res_lib_amf_hastateget
{
165 mar_res_header_t header
;
166 SaAmfHAStateT haState
;
169 struct req_lib_amf_csiquiescingcomplete
{
170 mar_req_header_t header
;
171 SaInvocationT invocation
;
175 struct res_lib_amf_csiquiescingcomplete
{
176 mar_res_header_t header
;
179 struct req_lib_amf_protectiongrouptrack
{
180 mar_req_header_t header
;
183 SaAmfProtectionGroupNotificationBufferT
*notificationBufferAddress
;
186 struct res_lib_amf_protectiongrouptrack
{
187 mar_res_header_t header
;
191 struct req_lib_amf_protectiongrouptrackstop
{
192 mar_req_header_t header
;
196 struct res_lib_amf_protectiongrouptrackstop
{
197 mar_res_header_t header
;
200 struct req_lib_amf_componenterrorreport
{
201 mar_req_header_t header
;
202 SaNameT reportingComponent
;
203 SaNameT erroneousComponent
;
204 SaTimeT errorDetectionTime
;
205 SaAmfRecommendedRecoveryT recommendedRecovery
;
206 SaNtfIdentifierT ntfIdentifier
;
209 struct res_lib_amf_componenterrorreport
{
210 mar_res_header_t header
;
213 struct req_lib_amf_componenterrorclear
{
214 mar_req_header_t header
;
218 struct res_lib_amf_componenterrorclear
{
219 mar_res_header_t header
;
222 struct req_lib_amf_response
{
223 mar_req_header_t header
;
224 SaInvocationT invocation
;
228 struct res_lib_amf_response
{
229 mar_res_header_t header
;
231 struct res_lib_amf_healthcheckcallback
{
232 mar_res_header_t header
;
233 SaInvocationT invocation
;
235 SaAmfHealthcheckKeyT key
;
240 struct res_lib_amf_componentterminatecallback
{
241 mar_res_header_t header
;
242 SaInvocationT invocation
;
249 /* struct res_lib_amf_csisetcallback { */
250 /* mar_res_header_t header; */
251 /* SaInvocationT invocation; */
252 /* SaNameT compName; */
253 /* SaAmfHAStateT haState; */
254 /* SaAmfCSIDescriptorT csiDescriptor; */
257 struct res_lib_amf_csisetcallback
{
258 mar_res_header_t header
;
259 SaInvocationT invocation
;
261 SaAmfHAStateT haState
;
262 SaAmfCSIFlagsT csiFlags
;
264 SaAmfCSIStateDescriptorT csiStateDescriptor
;
266 char csi_attr_buf
[1]; /* Actual length will be calculated */
269 struct res_lib_amf_csiremovecallback
{
270 mar_res_header_t header
;
271 SaInvocationT invocation
;
274 SaAmfCSIFlagsT csiFlags
;
277 struct res_lib_amf_componentterminatecallback
{
278 mar_res_header_t header
;
279 SaInvocationT invocation
;
285 struct res_lib_amf_protectiongrouptrackcallback
{
286 mar_res_header_t header
;
288 SaAmfProtectionGroupNotificationT
*notificationBufferAddress
;
289 SaUint32T numberOfItems
;
290 SaUint32T numberOfMembers
;
292 SaAmfProtectionGroupNotificationT notificationBuffer
[0];
296 SA_AMF_COMPONENT_CAPABILITY_X_ACTIVE_AND_Y_STANDBY
= 1,
297 SA_AMF_COMPONENT_CAPABILITY_X_ACTIVE_OR_Y_STANDBY
= 2,
298 SA_AMF_COMPONENT_CAPABILITY_1_ACTIVE_OR_Y_STANDBY
= 3,
299 SA_AMF_COMPONENT_CAPABILITY_1_ACTIVE_OR_1_STANDBY
= 4,
300 SA_AMF_COMPONENT_CAPABILITY_X_ACTIVE
= 5,
301 SA_AMF_COMPONENT_CAPABILITY_1_ACTIVE
= 6,
302 SA_AMF_COMPONENT_CAPABILITY_NO_ACTIVE
= 7
303 } SaAmfComponentCapabilityModelT
;
307 #endif /* AIS_IPC_AMF_H_DEFINED */