ais_msg.h 25 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090
  1. /*
  2. * Copyright (c) 2002-2004 MontaVista Software, Inc.
  3. *
  4. * All rights reserved.
  5. *
  6. * Author: Steven Dake (sdake@mvista.com)
  7. *
  8. * This software licensed under BSD license, the text of which follows:
  9. *
  10. * Redistribution and use in source and binary forms, with or without
  11. * modification, are permitted provided that the following conditions are met:
  12. *
  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.
  21. *
  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.
  33. */
  34. #ifndef AIS_MSG_H_DEFINED
  35. #define AIS_MSG_H_DEFINED
  36. #include <netinet/in.h>
  37. #include "ais_types.h"
  38. #include "evs.h"
  39. enum req_amf_response_interfaces {
  40. MESSAGE_REQ_AMF_RESPONSE_SAAMFHEALTHCHECKCALLBACK = 1,
  41. MESSAGE_REQ_AMF_RESPONSE_SAAMFREADINESSSTATESETCALLBACK,
  42. MESSAGE_REQ_AMF_RESPONSE_SAAMFCOMPONENTTERMINATECALLBACK,
  43. MESSAGE_REQ_AMF_RESPONSE_SAAMFCSISETCALLBACK,
  44. MESSAGE_REQ_AMF_RESPONSE_SAAMFCSIREMOVECALLBACK,
  45. MESSAGE_REQ_AMF_RESPONSE_SAAMFEXTERNALCOMPONENTRESTARTCALLBACK,
  46. MESSAGE_REQ_AMF_RESPONSE_SAAMFEXTERNALCOMPONENTCONTROLCALLBACK,
  47. MESSAGE_REQ_AMF_RESPONSE_SAAMFPENDINGOPERATIONCONFIRMCALLBACK
  48. };
  49. enum req_init_types {
  50. MESSAGE_REQ_EVS_INIT,
  51. MESSAGE_REQ_CLM_INIT,
  52. MESSAGE_REQ_AMF_INIT,
  53. MESSAGE_REQ_CKPT_INIT,
  54. MESSAGE_REQ_CKPT_CHECKPOINT_INIT,
  55. MESSAGE_REQ_CKPT_SECTIONITERATOR_INIT,
  56. MESSAGE_REQ_EVT_INIT
  57. };
  58. enum res_init_types {
  59. MESSAGE_RES_INIT
  60. };
  61. #define MESSAGE_REQ_LIB_ACTIVATEPOLL 0
  62. #define MESSAGE_RES_LIB_ACTIVATEPOLL 50
  63. enum req_lib_evs_types {
  64. MESSAGE_REQ_EVS_JOIN = 1,
  65. MESSAGE_REQ_EVS_LEAVE,
  66. MESSAGE_REQ_EVS_MCAST_JOINED,
  67. MESSAGE_REQ_EVS_MCAST_GROUPS
  68. };
  69. enum res_lib_evs_types {
  70. MESSAGE_RES_EVS_DELIVER_CALLBACK = 1,
  71. MESSAGE_RES_EVS_CONFCHG_CALLBACK,
  72. MESSAGE_RES_EVS_JOIN,
  73. MESSAGE_RES_EVS_LEAVE,
  74. MESSAGE_RES_EVS_MCAST_JOINED,
  75. MESSAGE_RES_EVS_MCAST_GROUPS
  76. };
  77. enum req_clm_types {
  78. MESSAGE_REQ_CLM_TRACKSTART = 1,
  79. MESSAGE_REQ_CLM_TRACKSTOP,
  80. MESSAGE_REQ_CLM_NODEGET
  81. };
  82. enum res_clm_types {
  83. MESSAGE_RES_CLM_TRACKCALLBACK = 1,
  84. MESSAGE_RES_CLM_TRACKSTART,
  85. MESSAGE_RES_CLM_TRACKSTOP,
  86. MESSAGE_RES_CLM_NODEGET,
  87. MESSAGE_RES_CLM_NODEGETCALLBACK
  88. };
  89. enum req_amf_types {
  90. MESSAGE_REQ_AMF_COMPONENTREGISTER = 1,
  91. MESSAGE_REQ_AMF_COMPONENTUNREGISTER,
  92. MESSAGE_REQ_AMF_READINESSSTATEGET,
  93. MESSAGE_REQ_AMF_HASTATEGET,
  94. MESSAGE_REQ_AMF_PROTECTIONGROUPTRACKSTART,
  95. MESSAGE_REQ_AMF_PROTECTIONGROUPTRACKSTOP,
  96. MESSAGE_REQ_AMF_ERRORREPORT,
  97. MESSAGE_REQ_AMF_ERRORCANCELALL,
  98. MESSAGE_REQ_AMF_STOPPINGCOMPLETE,
  99. MESSAGE_REQ_AMF_RESPONSE,
  100. MESSAGE_REQ_AMF_COMPONENTCAPABILITYMODELGET
  101. };
  102. enum res_lib_amf_types {
  103. MESSAGE_RES_AMF_COMPONENTREGISTER = 1,
  104. MESSAGE_RES_AMF_COMPONENTUNREGISTER,
  105. MESSAGE_RES_AMF_READINESSSTATEGET,
  106. MESSAGE_RES_AMF_HASTATEGET,
  107. MESSAGE_RES_AMF_HEALTHCHECKCALLBACK,
  108. MESSAGE_RES_AMF_READINESSSTATESETCALLBACK,
  109. MESSAGE_RES_AMF_COMPONENTTERMINATECALLBACK,
  110. MESSAGE_RES_AMF_CSISETCALLBACK,
  111. MESSAGE_RES_AMF_CSIREMOVECALLBACK,
  112. MESSAGE_RES_AMF_PROTECTIONGROUPTRACKSTART,
  113. MESSAGE_RES_AMF_PROTECTIONGROUPTRACKCALLBACK,
  114. MESSAGE_RES_AMF_PROTECTIONGROUPTRACKSTOP,
  115. MESSAGE_RES_AMF_COMPONENTCAPABILITYMODELGET,
  116. MESSAGE_RES_AMF_ERRORREPORT,
  117. MESSAGE_RES_AMF_ERRORCANCELALL,
  118. MESSAGE_RES_AMF_STOPPINGCOMPLETE,
  119. MESSAGE_RES_AMF_RESPONSE
  120. };
  121. enum req_lib_ckpt_checkpoint_types {
  122. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTOPEN = 1,
  123. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTOPENASYNC,
  124. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTUNLINK,
  125. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTRETENTIONDURATIONSET,
  126. MESSAGE_REQ_CKPT_CHECKPOINT_ACTIVECHECKPOINTSET,
  127. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTSTATUSGET,
  128. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONCREATE,
  129. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONDELETE,
  130. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONEXPIRATIONTIMESET,
  131. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONWRITE,
  132. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONOVERWRITE,
  133. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONREAD,
  134. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZE,
  135. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZEASYNC
  136. };
  137. enum req_lib_ckpt_sectioniterator_types {
  138. MESSAGE_REQ_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE = 1,
  139. MESSAGE_REQ_CKPT_SECTIONITERATOR_SECTIONITERATORNEXT
  140. };
  141. enum res_lib_ckpt_types {
  142. MESSAGE_RES_CKPT_CHECKPOINTOPENASYNC = 1,
  143. MESSAGE_RES_CKPT_CHECKPOINTSYNCHRONIZEASYNC
  144. };
  145. enum res_lib_ckpt_checkpoint_types {
  146. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTOPEN = 1,
  147. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTOPENASYNC,
  148. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTUNLINK,
  149. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTRETENTIONDURATIONSET,
  150. MESSAGE_RES_CKPT_CHECKPOINT_ACTIVECHECKPOINTSET,
  151. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSTATUSGET,
  152. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONCREATE,
  153. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONDELETE,
  154. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONEXPIRATIONTIMESET,
  155. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONWRITE,
  156. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONOVERWRITE,
  157. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONREAD,
  158. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZE,
  159. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZEASYNC
  160. };
  161. enum res_lib_ckpt_sectioniterator_types {
  162. MESSAGE_RES_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE = 1,
  163. MESSAGE_RES_CKPT_SECTIONITERATOR_SECTIONITERATORNEXT
  164. };
  165. enum nodeexec_message_types {
  166. MESSAGE_REQ_EXEC_EVS_MCAST,
  167. MESSAGE_REQ_EXEC_CLM_NODEJOIN,
  168. MESSAGE_REQ_EXEC_AMF_COMPONENTREGISTER,
  169. MESSAGE_REQ_EXEC_AMF_COMPONENTUNREGISTER,
  170. MESSAGE_REQ_EXEC_AMF_ERRORREPORT,
  171. MESSAGE_REQ_EXEC_AMF_ERRORCANCELALL,
  172. MESSAGE_REQ_EXEC_AMF_READINESSSTATESET,
  173. MESSAGE_REQ_EXEC_AMF_HASTATESET,
  174. MESSAGE_REQ_EXEC_CKPT_CHECKPOINTOPEN,
  175. MESSAGE_REQ_EXEC_CKPT_CHECKPOINTCLOSE,
  176. MESSAGE_REQ_EXEC_CKPT_CHECKPOINTUNLINK,
  177. MESSAGE_REQ_EXEC_CKPT_CHECKPOINTRETENTIONDURATIONSET,
  178. MESSAGE_REQ_EXEC_CKPT_SECTIONCREATE,
  179. MESSAGE_REQ_EXEC_CKPT_SECTIONDELETE,
  180. MESSAGE_REQ_EXEC_CKPT_SECTIONEXPIRATIONTIMESET,
  181. MESSAGE_REQ_EXEC_CKPT_SECTIONWRITE,
  182. MESSAGE_REQ_EXEC_CKPT_SECTIONOVERWRITE,
  183. MESSAGE_REQ_EXEC_CKPT_SECTIONREAD,
  184. MESSAGE_REQ_EXEC_EVT_EVENTDATA,
  185. MESSAGE_REQ_EXEC_EVT_CHANCMD
  186. };
  187. enum req_evt_types {
  188. MESSAGE_REQ_EVT_OPEN_CHANNEL = 1,
  189. MESSAGE_REQ_EVT_CLOSE_CHANNEL,
  190. MESSAGE_REQ_EVT_SUBSCRIBE,
  191. MESSAGE_REQ_EVT_UNSUBSCRIBE,
  192. MESSAGE_REQ_EVT_PUBLISH,
  193. MESSAGE_REQ_EVT_CLEAR_RETENTIONTIME,
  194. MESSAGE_REQ_EVT_EVENT_DATA
  195. };
  196. enum res_evt_types {
  197. MESSAGE_RES_EVT_OPEN_CHANNEL = 1,
  198. MESSAGE_RES_EVT_CLOSE_CHANNEL,
  199. MESSAGE_RES_EVT_SUBSCRIBE,
  200. MESSAGE_RES_EVT_UNSUBSCRIBE,
  201. MESSAGE_RES_EVT_PUBLISH,
  202. MESSAGE_RES_EVT_CLEAR_RETENTIONTIME,
  203. MESSAGE_RES_EVT_CHAN_OPEN_CALLBACK,
  204. MESSAGE_RES_EVT_EVENT_DATA,
  205. MESSAGE_RES_EVT_AVAILABLE
  206. };
  207. struct req_header {
  208. int size;
  209. int id;
  210. };
  211. struct res_header {
  212. int size;
  213. int id;
  214. SaErrorT error;
  215. };
  216. struct message_source {
  217. struct conn_info *conn_info;
  218. struct in_addr in_addr;
  219. };
  220. struct req_execauth_xmit_authkey {
  221. struct req_header header;
  222. int authModule;
  223. unsigned char random[16];
  224. };
  225. struct res_execauth_xmit_signature {
  226. struct req_header header;
  227. unsigned char signature[64];
  228. unsigned int signature_length;
  229. };
  230. struct req_execauth_connection_authorized {
  231. struct req_header header;
  232. };
  233. struct req_clm_trackstart {
  234. struct req_header header;
  235. SaUint8T trackFlags;
  236. SaClmClusterNotificationT *notificationBufferAddress;
  237. SaUint32T numberOfItems;
  238. };
  239. struct res_evs_deliver_callback {
  240. struct res_header header;
  241. struct in_addr source_addr;
  242. int msglen;
  243. char msg[0];
  244. };
  245. struct res_evs_confchg_callback {
  246. struct res_header header;
  247. int member_list_entries;
  248. int left_list_entries;
  249. int joined_list_entries;
  250. struct in_addr member_list[16];
  251. struct in_addr left_list[16];
  252. struct in_addr joined_list[16];
  253. };
  254. struct req_lib_evs_join {
  255. struct res_header header;
  256. int group_entries;
  257. struct evs_group groups[0];
  258. };
  259. struct res_lib_evs_join {
  260. struct res_header header;
  261. };
  262. struct req_lib_evs_leave {
  263. struct res_header header;
  264. int group_entries;
  265. struct evs_group groups[0];
  266. };
  267. struct res_lib_evs_leave {
  268. struct res_header header;
  269. };
  270. struct req_lib_evs_mcast_joined {
  271. struct res_header header;
  272. evs_priority_t priority;
  273. evs_guarantee_t guarantee;
  274. int msg_len;
  275. char msg[0];
  276. };
  277. struct res_lib_evs_mcast_joined {
  278. struct res_header header;
  279. };
  280. struct req_lib_evs_mcast_groups {
  281. struct res_header header;
  282. evs_priority_t priority;
  283. evs_guarantee_t guarantee;
  284. int msg_len;
  285. int group_entries;
  286. struct evs_group groups[0];
  287. };
  288. struct res_lib_evs_mcast_groups {
  289. struct res_header header;
  290. };
  291. struct req_exec_evs_mcast {
  292. struct req_header header;
  293. int group_entries;
  294. int msg_len;
  295. struct evs_group groups[0];
  296. /* data goes here */
  297. };
  298. struct res_clm_trackstart {
  299. struct res_header header;
  300. };
  301. struct req_lib_init {
  302. struct req_header header;
  303. };
  304. struct res_lib_init {
  305. struct res_header header;
  306. };
  307. struct req_lib_amf_componentregister {
  308. struct req_header header;
  309. SaNameT compName;
  310. SaNameT proxyCompName;
  311. };
  312. struct req_exec_amf_componentregister {
  313. struct req_header header;
  314. struct message_source source;
  315. struct req_lib_amf_componentregister req_lib_amf_componentregister;
  316. };
  317. struct res_lib_amf_componentregister {
  318. struct res_header header;
  319. };
  320. struct req_lib_amf_componentunregister {
  321. struct req_header header;
  322. SaNameT compName;
  323. SaNameT proxyCompName;
  324. };
  325. struct req_exec_amf_componentunregister {
  326. struct req_header header;
  327. struct message_source source;
  328. struct req_lib_amf_componentunregister req_lib_amf_componentunregister;
  329. };
  330. struct res_lib_amf_componentunregister {
  331. struct res_header header;
  332. };
  333. struct req_amf_readinessstateget {
  334. struct req_header header;
  335. SaNameT compName;
  336. };
  337. struct res_lib_amf_readinessstateget {
  338. struct res_header header;
  339. SaAmfReadinessStateT readinessState;
  340. };
  341. struct res_lib_amf_healthcheckcallback {
  342. struct res_header header;
  343. int instance;
  344. SaInvocationT invocation;
  345. SaNameT compName;
  346. SaAmfHealthcheckT checkType;
  347. };
  348. struct res_lib_amf_readinessstatesetcallback {
  349. struct res_header header;
  350. SaInvocationT invocation;
  351. SaNameT compName;
  352. SaAmfReadinessStateT readinessState;
  353. };
  354. struct req_exec_amf_readinessstateset {
  355. struct req_header header;
  356. SaNameT compName;
  357. SaAmfReadinessStateT readinessState;
  358. };
  359. struct req_exec_amf_hastateset {
  360. struct req_header header;
  361. SaNameT compName;
  362. SaAmfHAStateT haState;
  363. };
  364. struct req_exec_ckpt_checkpointclose {
  365. struct req_header header;
  366. SaNameT checkpointName;
  367. };
  368. struct req_exec_ckpt_checkpointretentiondurationset {
  369. struct req_header header;
  370. SaNameT checkpointName;
  371. SaTimeT retentionDuration;
  372. };
  373. struct res_lib_amf_componentterminatecallback {
  374. struct res_header header;
  375. SaInvocationT invocation;
  376. SaNameT compName;
  377. };
  378. struct req_amf_hastateget {
  379. struct req_header header;
  380. SaNameT compName;
  381. SaNameT csiName;
  382. };
  383. struct res_lib_amf_hastateget {
  384. struct res_header header;
  385. SaAmfHAStateT haState;
  386. };
  387. struct res_lib_amf_csisetcallback {
  388. struct res_header header;
  389. SaInvocationT invocation;
  390. SaNameT compName;
  391. SaNameT csiName;
  392. SaAmfCSIFlagsT csiFlags;
  393. SaAmfHAStateT haState;
  394. SaNameT activeCompName;
  395. SaAmfCSITransitionDescriptorT transitionDescriptor;
  396. };
  397. struct res_lib_amf_csiremovecallback {
  398. struct res_header header;
  399. SaInvocationT invocation;
  400. SaNameT compName;
  401. SaNameT csiName;
  402. SaAmfCSIFlagsT csiFlags;
  403. };
  404. struct req_amf_protectiongrouptrackstart {
  405. struct req_header header;
  406. SaNameT csiName;
  407. SaUint8T trackFlags;
  408. SaAmfProtectionGroupNotificationT *notificationBufferAddress;
  409. SaUint32T numberOfItems;
  410. };
  411. struct res_lib_amf_protectiongrouptrackstart {
  412. struct res_header header;
  413. };
  414. struct req_amf_protectiongrouptrackstop {
  415. struct req_header header;
  416. SaNameT csiName;
  417. };
  418. struct res_lib_amf_protectiongrouptrackstop {
  419. struct res_header header;
  420. };
  421. struct res_lib_amf_protectiongrouptrackcallback {
  422. struct res_header header;
  423. SaNameT csiName;
  424. SaAmfProtectionGroupNotificationT *notificationBufferAddress;
  425. SaUint32T numberOfItems;
  426. SaUint32T numberOfMembers;
  427. SaUint32T error;
  428. SaAmfProtectionGroupNotificationT notificationBuffer[0];
  429. };
  430. struct req_lib_amf_errorreport {
  431. struct req_header header;
  432. SaNameT reportingComponent;
  433. SaNameT erroneousComponent;
  434. SaTimeT errorDetectionTime;
  435. SaAmfErrorDescriptorT errorDescriptor;
  436. SaAmfAdditionalDataT additionalData;
  437. };
  438. struct req_exec_amf_errorreport {
  439. struct req_header header;
  440. struct message_source source;
  441. struct req_lib_amf_errorreport req_lib_amf_errorreport;
  442. };
  443. struct res_lib_amf_errorreport {
  444. struct res_header header;
  445. };
  446. struct req_lib_amf_errorcancelall {
  447. struct req_header header;
  448. SaNameT compName;
  449. };
  450. struct req_exec_amf_errorcancelall {
  451. struct req_header header;
  452. struct message_source source;
  453. struct req_lib_amf_errorcancelall req_lib_amf_errorcancelall;
  454. };
  455. struct res_lib_amf_errorcancelall {
  456. struct res_header header;
  457. };
  458. struct req_amf_response {
  459. struct req_header header;
  460. SaInvocationT invocation;
  461. SaErrorT error;
  462. };
  463. struct res_lib_amf_response {
  464. struct res_header header;
  465. };
  466. struct req_amf_stoppingcomplete {
  467. struct req_header header;
  468. SaInvocationT invocation;
  469. SaErrorT error;
  470. };
  471. struct res_lib_amf_stoppingcomplete {
  472. struct req_header header;
  473. };
  474. struct req_amf_componentcapabilitymodelget {
  475. struct req_header header;
  476. SaNameT compName;
  477. };
  478. struct res_lib_amf_componentcapabilitymodelget {
  479. struct res_header header;
  480. SaAmfComponentCapabilityModelT componentCapabilityModel;
  481. };
  482. struct req_lib_activatepoll {
  483. struct req_header header;
  484. };
  485. struct res_lib_activatepoll {
  486. struct res_header header;
  487. };
  488. struct req_lib_ckpt_checkpointopen {
  489. struct req_header header;
  490. SaNameT checkpointName;
  491. SaCkptCheckpointCreationAttributesT checkpointCreationAttributes;
  492. SaCkptCheckpointOpenFlagsT checkpointOpenFlags;
  493. };
  494. struct res_lib_ckpt_checkpointopen {
  495. struct res_header header;
  496. };
  497. struct req_exec_ckpt_checkpointopen {
  498. struct req_header header;
  499. struct message_source source;
  500. struct req_lib_ckpt_checkpointopen req_lib_ckpt_checkpointopen;
  501. };
  502. struct req_lib_ckpt_checkpointopenasync {
  503. struct req_header header;
  504. SaNameT checkpointName;
  505. SaCkptCheckpointCreationAttributesT checkpointCreationAttributes;
  506. SaCkptCheckpointOpenFlagsT checkpointOpenFlags;
  507. SaInvocationT invocation;
  508. };
  509. struct res_lib_ckpt_checkpointopenasync {
  510. struct res_header header;
  511. SaCkptCheckpointHandleT checkpointHandle;
  512. SaInvocationT invocation;
  513. };
  514. struct req_lib_ckpt_checkpointclose {
  515. struct req_header header;
  516. };
  517. struct res_lib_ckpt_checkpointclose {
  518. struct res_header header;
  519. SaNameT checkpointName;
  520. };
  521. struct req_lib_ckpt_checkpointunlink {
  522. struct req_header header;
  523. SaNameT checkpointName;
  524. };
  525. struct res_lib_ckpt_checkpointunlink {
  526. struct res_header header;
  527. };
  528. struct req_exec_ckpt_checkpointunlink {
  529. struct req_header header;
  530. struct message_source source;
  531. struct req_lib_ckpt_checkpointunlink req_lib_ckpt_checkpointunlink;
  532. };
  533. struct req_lib_ckpt_checkpointretentiondurationset {
  534. struct req_header header;
  535. SaTimeT retentionDuration;
  536. };
  537. struct res_lib_ckpt_checkpointretentiondurationset {
  538. struct res_header header;
  539. };
  540. struct req_lib_ckpt_activecheckpointset {
  541. struct req_header header;
  542. };
  543. struct res_lib_ckpt_activecheckpointset {
  544. struct res_header header;
  545. };
  546. struct req_lib_ckpt_checkpointstatusget {
  547. struct req_header header;
  548. };
  549. struct res_lib_ckpt_checkpointstatusget {
  550. struct res_header header;
  551. SaCkptCheckpointStatusT checkpointStatus;
  552. };
  553. struct req_lib_ckpt_sectioncreate {
  554. struct req_header header;
  555. SaUint32T idLen;
  556. SaTimeT expirationTime;
  557. SaUint32T initialDataSize;
  558. };
  559. struct res_lib_ckpt_sectioncreate {
  560. struct res_header header;
  561. };
  562. struct req_exec_ckpt_sectioncreate {
  563. struct req_header header;
  564. struct message_source source;
  565. SaNameT checkpointName;
  566. struct req_lib_ckpt_sectioncreate req_lib_ckpt_sectioncreate; /* this must be last */
  567. };
  568. struct req_lib_ckpt_sectiondelete {
  569. struct req_header header;
  570. SaUint32T idLen;
  571. };
  572. struct res_lib_ckpt_sectiondelete {
  573. struct res_header header;
  574. };
  575. struct req_exec_ckpt_sectiondelete {
  576. struct req_header header;
  577. struct message_source source;
  578. SaNameT checkpointName;
  579. struct req_lib_ckpt_sectiondelete req_lib_ckpt_sectiondelete; /* this must be last */
  580. };
  581. struct req_lib_ckpt_sectionexpirationtimeset {
  582. struct req_header header;
  583. SaUint32T idLen;
  584. SaTimeT expirationTime;
  585. };
  586. struct res_lib_ckpt_sectionexpirationtimeset {
  587. struct res_header header;
  588. };
  589. struct req_exec_ckpt_sectionexpirationtimeset {
  590. struct req_header header;
  591. struct message_source source;
  592. SaNameT checkpointName;
  593. struct req_lib_ckpt_sectionexpirationtimeset req_lib_ckpt_sectionexpirationtimeset;
  594. };
  595. struct req_lib_ckpt_sectioniteratorinitialize {
  596. struct req_header header;
  597. SaNameT checkpointName;
  598. SaCkptSectionsChosenT sectionsChosen;
  599. SaTimeT expirationTime;
  600. };
  601. struct res_lib_ckpt_sectioniteratorinitialize {
  602. struct res_header header;
  603. };
  604. struct req_lib_ckpt_sectioniteratornext {
  605. struct req_header header;
  606. };
  607. struct res_lib_ckpt_sectioniteratornext {
  608. struct res_header header;
  609. SaCkptSectionDescriptorT sectionDescriptor;
  610. };
  611. struct req_lib_ckpt_sectionwrite {
  612. struct req_header header;
  613. SaUint32T idLen;
  614. SaOffsetT dataOffset;
  615. SaOffsetT dataSize;
  616. };
  617. struct res_lib_ckpt_sectionwrite {
  618. struct res_header header;
  619. };
  620. struct req_exec_ckpt_sectionwrite {
  621. struct req_header header;
  622. struct message_source source;
  623. SaNameT checkpointName;
  624. struct req_lib_ckpt_sectionwrite req_lib_ckpt_sectionwrite;
  625. };
  626. struct req_lib_ckpt_sectionoverwrite {
  627. struct req_header header;
  628. SaUint32T idLen;
  629. SaUint32T dataSize;
  630. };
  631. struct res_lib_ckpt_sectionoverwrite {
  632. struct res_header header;
  633. };
  634. struct req_exec_ckpt_sectionoverwrite {
  635. struct req_header header;
  636. struct message_source source;
  637. SaNameT checkpointName;
  638. struct req_lib_ckpt_sectionoverwrite req_lib_ckpt_sectionoverwrite;
  639. };
  640. struct req_lib_ckpt_sectionread {
  641. struct req_header header;
  642. SaUint32T idLen;
  643. SaOffsetT dataOffset;
  644. SaOffsetT dataSize;
  645. };
  646. struct res_lib_ckpt_sectionread {
  647. struct res_header header;
  648. SaSizeT dataRead;
  649. };
  650. struct req_exec_ckpt_sectionread {
  651. struct req_header header;
  652. struct message_source source;
  653. SaNameT checkpointName;
  654. struct req_lib_ckpt_sectionread req_lib_ckpt_sectionread;
  655. };
  656. struct req_lib_ckpt_checkpointsynchronize {
  657. struct req_header header;
  658. };
  659. struct res_lib_ckpt_checkpointsynchronize {
  660. struct res_header header;
  661. };
  662. struct req_lib_ckpt_checkpointsynchronizeasync {
  663. struct req_header header;
  664. SaInvocationT invocation;
  665. };
  666. struct res_lib_ckpt_checkpointsynchronizeasync {
  667. struct res_header header;
  668. };
  669. struct req_clm_trackstop {
  670. struct req_header header;
  671. SaSizeT dataRead;
  672. SaErrorT error;
  673. };
  674. struct res_clm_trackstop {
  675. struct res_header header;
  676. };
  677. struct res_clm_trackcallback {
  678. struct res_header header;
  679. SaUint64T viewNumber;
  680. SaUint32T numberOfItems;
  681. SaUint32T numberOfMembers;
  682. SaClmClusterNotificationT *notificationBufferAddress;
  683. SaClmClusterNotificationT notificationBuffer[0];
  684. };
  685. struct req_clm_nodeget {
  686. struct req_header header;
  687. SaClmClusterNodeT *clusterNodeAddress;
  688. SaInvocationT invocation;
  689. SaClmNodeIdT nodeId;
  690. };
  691. struct res_clm_nodeget {
  692. struct res_header header;
  693. SaInvocationT invocation;
  694. SaClmClusterNodeT *clusterNodeAddress;
  695. SaClmClusterNodeT clusterNode;
  696. int valid;
  697. };
  698. struct res_clm_nodegetcallback {
  699. struct res_header header;
  700. SaInvocationT invocation;
  701. SaClmClusterNodeT *clusterNodeAddress;
  702. SaClmClusterNodeT clusterNode;
  703. int valid;
  704. };
  705. struct req_exec_clm_heartbeat {
  706. struct req_header header;
  707. };
  708. struct res_exec_clm_heartbeat {
  709. struct res_header header;
  710. };
  711. struct req_exec_clm_nodejoin {
  712. struct req_header header;
  713. SaClmClusterNodeT clusterNode;
  714. };
  715. /*
  716. * MESSAGE_REQ_EVT_OPEN_CHANNEL
  717. *
  718. * ico_head Request head
  719. * ico_open_flag: Channel open flags
  720. * ico_channel_name: Name of channel to open
  721. * ico_c_handle: Local lib channel handle (used in returned event data)
  722. * ico_timeout: Used only by open
  723. * ico_invocation: Used only by async open
  724. *
  725. */
  726. struct req_evt_channel_open {
  727. struct req_header ico_head;
  728. SaUint8T ico_open_flag;
  729. SaNameT ico_channel_name;
  730. SaEvtChannelHandleT ico_c_handle; /* client chan handle */
  731. SaTimeT ico_timeout; /* open only */
  732. SaInvocationT ico_invocation; /* open async only */
  733. };
  734. /*
  735. * MESSAGE_RES_EVT_OPEN_CHANNEL
  736. *
  737. *
  738. * ico_head: Results head
  739. * ico_error: Request results
  740. * ico_channel_handle: Server side channel handle (used in channel ops)
  741. *
  742. */
  743. struct res_evt_channel_open {
  744. struct res_header ico_head;
  745. uint32_t ico_channel_handle;/* svr chan handle */
  746. };
  747. /*
  748. * MESSAGE_RES_EVT_CHAN_OPEN_CALLBACK
  749. *
  750. * TODO: Define this
  751. */
  752. struct res_evt_open_chan_async {
  753. struct res_header ico_head;
  754. };
  755. /*
  756. * MESSAGE_REQ_EVT_CLOSE_CHANNEL
  757. *
  758. * icc_head: Request head
  759. * icc_channel_handle: Server handle of channel to close
  760. *
  761. */
  762. struct req_evt_channel_close {
  763. struct req_header icc_head;
  764. uint32_t icc_channel_handle;
  765. };
  766. /*
  767. * MESSAGE_RES_EVT_CLOSE_CHANNEL
  768. *
  769. * icc_head: Results head
  770. * icc_error: Request result
  771. *
  772. */
  773. struct res_evt_channel_close {
  774. struct res_header icc_head;
  775. };
  776. /*
  777. * MESSAGE_REQ_EVT_SUBSCRIBE
  778. *
  779. * ics_head: Request head
  780. * ics_channel_handle: Server handle of channel
  781. * ics_sub_id: Subscription ID
  782. * ics_filter_size: Size of supplied filter data
  783. * ics_filter_count: Number of filters supplied
  784. * ics_filter_data: Filter data
  785. *
  786. */
  787. struct req_evt_event_subscribe {
  788. struct req_header ics_head;
  789. uint32_t ics_channel_handle;
  790. SaEvtSubscriptionIdT ics_sub_id;
  791. uint32_t ics_filter_size;
  792. uint32_t ics_filter_count;
  793. uint8_t ics_filter_data[0];
  794. };
  795. /*
  796. * MESSAGE_RES_EVT_SUBSCRIBE
  797. *
  798. * ics_head: Result head
  799. * ics_error: Request results
  800. *
  801. */
  802. struct res_evt_event_subscribe {
  803. struct res_header ics_head;
  804. };
  805. /*
  806. * MESSAGE_REQ_EVT_UNSUBSCRIBE
  807. *
  808. * icu_head: Request head
  809. * icu_channel_handle: Server handle of channel
  810. * icu_sub_id: Subscription ID
  811. *
  812. */
  813. struct req_evt_event_unsubscribe {
  814. struct req_header icu_head;
  815. uint32_t icu_channel_handle;
  816. SaEvtSubscriptionIdT icu_sub_id;
  817. };
  818. /*
  819. * MESSAGE_RES_EVT_UNSUBSCRIBE
  820. *
  821. * icu_head: Results head
  822. * icu_error: request result
  823. *
  824. */
  825. struct res_evt_event_unsubscribe {
  826. struct res_header icu_head;
  827. };
  828. /*
  829. * MESSAGE_REQ_EVT_EVENT_DATA
  830. * MESSAGE_RES_EVT_AVAILABLE
  831. *
  832. * evd_head: Request Head
  833. */
  834. struct res_evt_event_data {
  835. struct res_header evd_head;
  836. };
  837. /*
  838. * MESSAGE_REQ_EVT_PUBLISH (1)
  839. * MESSAGE_RES_EVT_EVENT_DATA (2)
  840. * MESSAGE_REQ_EXEC_EVT_EVENTDATA (3)
  841. *
  842. * led_head: Request/Results head
  843. * led_svr_channel_handle: Server channel handle (1 only)
  844. * led_lib_channel_handle: Lib channel handle (2 only)
  845. * led_chan_name: Channel name (3 only)
  846. * led_event_id: Event ID (2 and 3 only)
  847. * led_sub_id: Subscription ID (2 only)
  848. * led_publisher_node_id: Node ID of event publisher
  849. * led_publisher_name: Node name of event publisher
  850. * led_retention_time: Event retention time
  851. * led_publish_time: Publication time of the event
  852. * led_priority: Event priority
  853. * led_user_data_offset: Offset to user data
  854. * led_user_data_size: Size of user data
  855. * led_patterns_number: Number of patterns in the event
  856. * led_body: Pattern and user data
  857. */
  858. struct lib_event_data {
  859. struct res_header led_head;
  860. uint32_t led_svr_channel_handle;
  861. uint32_t led_lib_channel_handle;
  862. SaNameT led_chan_name;
  863. SaEvtEventIdT led_event_id;
  864. SaEvtSubscriptionIdT led_sub_id;
  865. SaClmNodeIdT led_publisher_node_id;
  866. SaNameT led_publisher_name;
  867. SaTimeT led_retention_time;
  868. SaTimeT led_publish_time;
  869. SaEvtEventPriorityT led_priority;
  870. uint32_t led_user_data_offset;
  871. uint32_t led_user_data_size;
  872. uint32_t led_patterns_number;
  873. uint8_t led_body[0];
  874. };
  875. /*
  876. * MESSAGE_RES_EVT_PUBLISH
  877. *
  878. * iep_head: Result head
  879. * iep_error: Request results
  880. * iep_event_id: Event ID of published message
  881. *
  882. */
  883. struct res_evt_event_publish {
  884. struct res_header iep_head;
  885. SaEvtEventIdT iep_event_id;
  886. };
  887. /*
  888. * MESSAGE_REQ_EVT_CLEAR_RETENTIONTIME
  889. *
  890. * Request message:
  891. *
  892. * iec_head: Request head
  893. * iec_event_id: ID of event to clear
  894. * iec_channel_handle: Server handle of associate channel
  895. *
  896. */
  897. struct req_evt_event_clear_retentiontime {
  898. struct req_header iec_head;
  899. uint64_t iec_event_id;
  900. uint32_t iec_channel_handle;
  901. };
  902. /*
  903. * MESSAGE_RES_EVT_CLEAR_RETENTIONTIME
  904. *
  905. * iec_head: Results head
  906. * iec_error: Request result
  907. *
  908. */
  909. struct res_evt_event_clear_retentiontime {
  910. struct res_header iec_head;
  911. };
  912. /*
  913. * MESSAGE_REQ_EXEC_EVT_CHANCMD
  914. *
  915. * chc_header: Request head
  916. * chc_chan: Channel Name
  917. * chc_op: Channel operation (open, close, clear retentiontime)
  918. */
  919. struct req_evt_chan_command {
  920. struct req_header chc_head;
  921. int chc_op;
  922. union {
  923. SaNameT chc_chan;
  924. SaEvtEventIdT chc_event_id;
  925. } u;
  926. };
  927. #endif /* AIS_MSG_H_DEFINED */