OpenClovis Logo

Files | Classes | Macros | Typedefs | Enumerations | Functions
API Reference Pages
Intelligent Object Communication

Defines, Structures, Typedefs, Functions. More...

Files

file  clIocApi.h
 Header file of Ioc Data Structures and APIs.
file  clIocApiExt.h
 Header file of extended APIs supported by IOC.
file  clIocConfig.h
 Header file of Ioc Data Structures and APIs.
file  clIocErrors.h
 Header file of Ioc Error Codes.
file  clIocLogicalAddresses.h
 Header file for defining the logical addresses.
file  clIocProtocols.h
 Header file of Ioc Protocols.
file  clIocServices.h
 Header file of Reserved Communication Ports.

Classes

union  ClIocAddress
 IOC address. More...
struct  ClIocPhysicalAddress
 The IOC Physical address of an application's communication end point. More...
struct  ClIocRecvOption
 IOC receive options. More...
struct  ClIocRecvParam
 The IOC receive returns this structure along with the message. More...
struct  ClIocSendOption
 Send related options. More...
struct  ClIocTlInfo
 Transparency layer parameters. More...
struct  ClIocTLMappingT
 Data-type for holding the physical address and its state. More...

Macros

#define CL_IOC_ADDRESS_TYPE_GET(param)   ((ClUint32T)((*((ClUint64T*)(param))) >> CL_IOC_ADDRESS_TYPE_SHIFT_DWORD))
 Macro to determine Type of address.
#define CL_IOC_ALARM_APP_PORT   0x0015
 Alarm application manager.
#define CL_IOC_ALARM_PORT   0x0011
 Alarm communication port.
#define CL_IOC_AMF_LOGICAL_ADDRESS   (CL_IOC_LOGICAL_ADDRESS_START+CL_IOC_CPM_PORT)
 Logical Address used by AMF.
#define CL_IOC_AMS_PORT   0x0016
 Availability Management Service.
#define CL_IOC_ASP_PORTS_END   (CL_IOC_RESERVED_PORTS - 1)
 The ASP reserved ports end here.
#define CL_IOC_BROADCAST_ADDRESS   0xffffffff
 This address can be used to broadcast a message.
#define CL_IOC_BROADCAST_ADDRESS_TYPE   0xff
 Broadcast address.
#define CL_IOC_CKPT_LOGICAL_ADDRESS   (CL_IOC_LOGICAL_ADDRESS_START+CL_IOC_CKPT_PORT)
 Logical Address used by Checkpoint service.
#define CL_IOC_CKPT_PORT   0x000c
 Checkpointing service communication port.
#define CL_IOC_CM_PORT   0x000e
 Chassis Manager communication port.
#define CL_IOC_COR_PORT   0x000d
 COR communication port.
#define CL_IOC_CPM_PORT   0x0001
 Component Manager communication port.
#define CL_IOC_DEBUG_PORT   0x0012
 Debug communication port.
#define CL_IOC_DEFAULT_COMMPORT   0x0000
 Start of valid communication port.
#define CL_IOC_DIAG_PORT   0x0007
 Diagnostic Service communication port.
#define CL_IOC_DLOCK_PORT   0x000a
 Distributed lock service communication port.
#define CL_IOC_DM_PORT   0x0014
 Diagnostics Manager.
#define CL_IOC_DSHM_PORT   0x0006
 Distributed shared memory service communication port.
#define CL_IOC_DYNAMIC_LOGICAL_ADDRESS_END   (CL_IOC_LOGICAL_ADDRESS_START + CL_IOC_TOTAL_LOGICAL_ADDRESSES)
 End of Dynamic logical addresses.
#define CL_IOC_DYNAMIC_LOGICAL_ADDRESS_START   (CL_IOC_STATIC_LOGICAL_ADDRESS_END+1)
 Start of Dynamic Logical addresses.
#define CL_IOC_EPHEMERAL_PORTS   (CL_IOC_MAX_COMPONENTS_PER_NODE - CL_IOC_RESERVED_PORTS - CL_IOC_USER_RESERVED_PORTS)
 This valude represents the maximum number of EPHIMERAL communication ports that can be present on a ASP node.
#define CL_IOC_EPHEMERAL_PORTS_START   (CL_IOC_RESERVED_PORTS + CL_IOC_USER_RESERVED_PORTS + 0x00)
 Client communication port range.
#define CL_IOC_ERR_COMMPORT_BLOCKED   0x10e /* 0x5010e */
 The communications is blocked, performing the requested operation.
#define CL_IOC_ERR_COMMPORT_INVALID_MODE   0x103 /* 0x50103 */
 Invalid mode of communication port.
#define CL_IOC_ERR_COMMPORT_REG_FAIL   0x101 /* 0x50101 */
 Registering the communication port with IOC has failed.
#define CL_IOC_ERR_COMP_UNREACHABLE   0x108 /* 0x50108 */
 The requested component/commport is not reachable.
#define CL_IOC_ERR_FLOW_XOFF_STATE   0x111 /* 0x50111 */
 Flow control is in XOFF state.
#define CL_IOC_ERR_HOST_UNREACHABLE   0x10d /* 0x5010d */
 The requested host is not reachable.
#define CL_IOC_ERR_INIT_FAILED   0x100 /* 0x50100 */
 IOC or Transport is not initialized.
#define CL_IOC_ERR_INVALID_MSG_OPTION   0x113 /* 0x50113 */
 Invalid type of message passed.
#define CL_IOC_ERR_INVALID_SESSION   0x107 /* 0x50107 */
 Not a valid session.
#define CL_IOC_ERR_MAX   0x116 /* 0x50116 */
 IOC maximum of error code.
#define CL_IOC_ERR_NODE_EXISTS   0x115 /* 0x50115 */
 Node is already registered.
#define CL_IOC_ERR_PROTO_IN_USE_WITH_IOC   0x110 /* 0x50110 */
 The passed protocol type is IOC internal protocol.
#define CL_IOC_ERR_RECV_UNBLOCKED   0x112 /* 0x50112 */
 Receive call did not succeed, blocked receive call is unblocked.
#define CL_IOC_ERR_ROUTE_NOT_EXIST   0x10f /* 0x5010f */
 Route entry does not exist.
#define CL_IOC_ERR_TL_ACTIVE_INST_NOT_PRESENT   0x106 /* 0x50106 */
 No active instance present.
#define CL_IOC_ERR_TL_DUPLICATE_ENTRY   0x105 /* 0x50105 */
 Entry already exists.
#define CL_IOC_ERR_TL_LIMIT_EXCEEDED   0x104 /* 0x50104 */
 No more entries can be added to TL.
#define CL_IOC_ERR_TRY_AGAIN   0x102 /* 0x50102 */
 The operation could not succeed.
#define CL_IOC_ERR_XPORT_ALREADY_REGISTERED   0x10a /* 0x5010a */
 Transport is already registered.
#define CL_IOC_ERR_XPORT_LINK_LIMIT_EXCEEDED   0x114 /* 0x50114 */
 Maximum number of links allowed per transport has already reached.
#define CL_IOC_ERR_XPORT_LINK_NOT_DELETED   0x10c /* 0x5010c */
 Link couldnot be deleted.
#define CL_IOC_ERR_XPORT_LINK_NOT_REGISTERED   0x10b /* 0x5010b */
 Link is not registered.
#define CL_IOC_ERR_XPORT_NOT_REGISTERED   0x109 /* 0x50109 */
 Transport is not registered.
#define CL_IOC_EVENT_PORT   0x0002
 Event Manager communication port.
#define CL_IOC_FAULT_PORT   0x0008
 Fault service communication port.
#define CL_IOC_GEO_ADDR_MAX_LENGTH   128
 The maximum size of the geographical address.
#define CL_IOC_GMS_MCAST_PORT   0x0019
 Communication Module reserved port.
#define CL_IOC_GMS_PORT   0x0009
 Group Membersip Service communication port.
#define CL_IOC_GMS_UCAST_PORT   0x0018
 Communication Module reserved port.
#define CL_IOC_HEADER_VERSION   1
 The version of IOC.
#define CL_IOC_HPI_PORT   0x000f
 HPI service communication port.
#define CL_IOC_LINK_DOWN   3
 The link is down.
#define CL_IOC_LINK_UP   2
 The link is up.
#define CL_IOC_LOG_LOGICAL_ADDRESS   (CL_IOC_LOGICAL_ADDRESS_START+CL_IOC_LOG_PORT)
 Logical Address used by Log Service.
#define CL_IOC_LOG_PORT   0x0004
 Log Service communication port.
#define CL_IOC_LOGICAL_ADDRESS_FORM(compId)   CL_IOC_ADDRESS_FORM(CL_IOC_LOGICAL_ADDRESS_TYPE, 0 , compId)
 Macro is used to form logical IOC address.
#define CL_IOC_LOGICAL_ADDRESS_START   CL_IOC_LOGICAL_ADDRESS_FORM(0)
 Start of valid Logical Addresses.
#define CL_IOC_LOGICAL_ADDRESS_TYPE   1
 Logical address type.
#define CL_IOC_MAX_COMP_PORT   (CL_IOC_MAX_COMPONENTS_PER_NODE - 1)
 This is the highest communication port address that can be present on a ASP node.
#define CL_IOC_MAX_COMPONENTS_PER_NODE   (1024)
 This represents the maximum number of communication ports, which can be opened on a ASP node.
#define CL_IOC_MAX_NODE_ADDRESS   (CL_IOC_MAX_NODES-1)
 This is the highest ASP node address, which can be assigned to any ASP node.
#define CL_IOC_MAX_NODES   (1024)
 This value represents the total number of ASP nodes present in a System.
#define CL_IOC_MIN_COMP_PORT   (1)
 This is the lowest communication port address that can be present on a ASP node.
#define CL_IOC_MIN_NODE_ADDRESS   (1)
 This is the lowest ASP node address, which can be assigned to any ASP node.
#define CL_IOC_MSG_PORT   0x0003
 Trace Service communication port.
#define CL_IOC_MULTICAST_ADDRESS_FORM(addr, compId)   CL_IOC_ADDRESS_FORM(CL_IOC_MULTICAST_ADDRESS_TYPE, addr, compId)
 Macro is used to form multicast IOC address.
#define CL_IOC_MULTICAST_ADDRESS_TYPE   2
 Multicast address type.
#define CL_IOC_NAME_PORT   0x0005
 Name Service communication port.
#define CL_IOC_NO_SESSION   0
 No session is maintained if the flag is set to 0 (zero).
#define CL_IOC_NODE_DOWN   0
 Node is down.
#define CL_IOC_NODE_UP   1
 Node is up.
#define CL_IOC_PHYSICAL_ADDRESS_TYPE   0
 Physical address type.
#define CL_IOC_RC(ERROR_CODE)   CL_RC(CL_CID_IOC, (ERROR_CODE))
 Error macro definitions for IOC.
#define CL_IOC_REASSEMBLY_TIMEOUT   (5000) /* milliseconds */
 ASP provides a feature of sending any sized data to another ASP object.
#define CL_IOC_RELIABLE_MESSAGING   (1<<0)
 Communication port creation related flags .
#define CL_IOC_RESERVED_ADDRESS   0
 This address can be used in place of local IOC address.
#define CL_IOC_RESERVED_LOGICAL_ADDRESS_END   (CL_IOC_LOGICAL_ADDRESS_START+CL_IOC_RESERVED_LOGICAL_ADDRESSES-1)
 End of Reserved Logical addresses.
#define CL_IOC_RESERVED_LOGICAL_ADDRESSES   CL_IOC_RESERVED_PORTS
 Total number of Logcaical Addresses reserved by ASP components.
#define CL_IOC_RESERVED_PORTS   (64)
 This value represents the maximum number of ASP communication ports that can be present on a ASP node.
#define CL_IOC_SESSION_BASED   (1<<0)
 Flag must be set to enable session based send.
#define CL_IOC_SNMP_PORT   0x0010
 SNMP communication port.
#define CL_IOC_STATIC_LOGICAL_ADDRESS_END   (CL_IOC_RESERVED_LOGICAL_ADDRESS_END+CL_IOC_STATIC_LOGICAL_ADDRESSES)
 End of Static Logical Addressess for ASP Applications.
#define CL_IOC_STATIC_LOGICAL_ADDRESS_START   (CL_IOC_RESERVED_LOGICAL_ADDRESS_END+1)
 Start of Static Logical Addressess for ASP Applications.
#define CL_IOC_STATIC_LOGICAL_ADDRESSES   (1024)
 Total number of Static Logical Addresses reserved for ASP Applications.
#define CL_IOC_TIMEOUT_FOREVER   ~0U
 Infinite timeout.
#define CL_IOC_TL_ACTIVE   0
 HA state for Registration with Transparency Layer.
#define CL_IOC_TL_STDBY   1
 HA state for Registration with Transparency Layer.
#define CL_IOC_TOTAL_LOGICAL_ADDRESSES   (~0U)
 Total number of Logical addresses in an ASP System.
#define CL_IOC_TXN_PORT   0x000b
 Transaction service communication port.
#define CL_IOC_UM_PORT   0x0013
 Upgrade Manager.
#define CL_IOC_UNRELIABLE_MESSAGING   0
 Communication port creation related flags.
#define CL_IOC_USER_APP_WELLKNOWN_PORTS_START   (CL_IOC_RESERVED_PORTS + 0x00)
 The ASP applications should add their wellknow server ports here.
#define CL_IOC_USER_RESERVED_PORTS   (64)
 This value represents the maximum number of USER communication ports that can be present on a ASP node.
#define CL_IOC_XPORT_PORT   0x0017
 Communication Module reserved port.

Typedefs

typedef union ClIocAddress ClIocAddressT
 IOC address.
typedef ClUint32T ClIocCommPortFlagsT
 Port Type.
typedef ClWordT ClIocCommPortHandleT
 The Communication port handle.
typedef ClUint64T ClIocLogicalAddressT
 IOC Logical address.
typedef enum ClIocMessageOption ClIocMessageOptionT
 The send message option.
typedef ClUint64T ClIocMulticastAddressT
 IOC Multicast address.
typedef ClUint32T ClIocNodeAddressT
 The IOC node address.
typedef enum ClIocNotificationId ClIocNotificationIdT
 The port close notification payload.
typedef struct ClIocPhysicalAddress ClIocPhysicalAddressT
 The IOC Physical address of an application's communication end point.
typedef ClUint32T ClIocPortT
 The IOC communication port.
typedef struct ClIocRecvOption ClIocRecvOptionT
 IOC receive options.
typedef struct ClIocRecvParam ClIocRecvParamT
 The IOC receive returns this structure along with the message.
typedef struct ClIocSendOption ClIocSendOptionT
 Send related options.
typedef enum ClIocTLContext ClIocTLContextT
 Transparency layer context.
typedef struct ClIocTlInfo ClIocTLInfoT
 Transparency layer parameters.
typedef ClHandleT ClIocToBindHandleT
 The Transport handle.

Enumerations

enum  ClIocMessageOption {
  CL_IOC_PERSISTENT_MSG = 0,
  CL_IOC_NON_PERSISTENT_MSG
}
 The send message option. More...
enum  ClIocNotificationActionT {
  CL_IOC_NOTIFICATION_DISABLE = 0,
  CL_IOC_NOTIFICATION_ENABLE
}
 This defines all notification related actions that can be performed on a port. More...
enum  ClIocNotificationId
 The port close notification payload. More...
enum  ClIocPriorityT {
  CL_IOC_DEFAULT_PRIORITY = 0,
  CL_IOC_HIGH_PRIORITY = 1,
  CL_IOC_LOW_PRIORITY = 2 ,
  CL_IOC_RESERVED_PRIORITY = 5 ,
  CL_IOC_MAX_PRIORITIES = CL_IOC_RESERVED_PRIORITY_USER_END + 1
}
 This defines all the priorities that can be used with IOC. More...
enum  ClIocProtocols {
  CL_IOC_PROTO_ARP = 0x1,
  CL_IOC_PROTO_FLOWCONTROL = 0x2,
  CL_IOC_PROTO_HB = 0x3,
  CL_IOC_PROTO_CTL = 0x4,
  CL_IOC_PROTO_TL = 0x5,
  CL_IOC_PROTO_MSG = 0x6,
  CL_IOC_PROTO_ICMP = 0x7,
  CL_IOC_INTERNAL_PROTO_END = 0xf,
  CL_IOC_RMD_SYNC_REQUEST_PROTO = 0x10,
  CL_IOC_RMD_SYNC_REPLY_PROTO = 0x11,
  CL_IOC_RMD_ASYNC_REQUEST_PROTO = 0x12,
  CL_IOC_RMD_ASYNC_REPLY_PROTO = 0x13,
  CL_IOC_PORT_NOTIFICATION_PROTO = 0x14,
  CL_IOC_SYSLOG_PROTO = 0x15 ,
  CL_IOC_SAF_MSG_REQUEST_PROTO = 0x18 ,
  CL_IOC_ASP_RESERVERD_PROTO_END = 0x7f,
  CL_IOC_USER_PROTO_START = 0x80,
  CL_IOC_PROTO_END = 0xfe,
  CL_IOC_INVALID_PROTO = 0xff
}
 Reserved Protocol Type. More...
enum  ClIocTLContext {
  CL_IOC_TL_GLOBAL_SCOPE,
  CL_IOC_TL_LOCAL_SCOPE
}
 Transparency layer context. More...

Functions

ClRcT clIocCommPortCreate (CL_IN ClIocPortT portId, CL_IN ClIocCommPortFlagsT portType, CL_OUT ClIocCommPortHandleT *pIocCommPortHdl)
 Creates a communication port.
ClRcT clIocCommPortDelete (CL_IN ClIocCommPortHandleT iocCommPortHdl)
 Deletes the communication port.
ClRcT clIocCommPortFdGet (CL_IN ClIocCommPortHandleT portHandle, CL_INOUT ClInt32T *pSd)
 Gets the socket descriptor used by communication of a CommPort.
ClRcT clIocCommPortGet (CL_IN ClIocCommPortHandleT pIocCommPort, CL_OUT ClIocPortT *pPortId)
 Returns the port Id.
ClRcT clIocCommPortReceiverUnblock (CL_IN ClIocCommPortHandleT commPortHdl)
 Unblocks all receive calls.
ClRcT clIocLibFinalize (void)
 Cleans up the IOC.
ClRcT clIocLibInitialize (ClPtrT pConfig)
 Configures and initializes the IOC.
ClIocNodeAddressT clIocLocalAddressGet (void)
 Returns the local IOC node addrress.
ClRcT clIocMaxPayloadSizeGet (CL_OUT ClUint32T *pSize)
 Returns the maximum payload size.
ClRcT clIocMulticastDeregister (CL_IN ClIocMcastUserInfoT *pMcastInfo)
 De-registers the application against a multicast address with the IOC Multicast Layer.
ClRcT clIocMulticastDeregisterAll (CL_IN ClIocMulticastAddressT *pMcastAddress)
 De-registers the application against a multicast address with the IOC Multicast Layer.
ClRcT clIocMulticastRegister (CL_IN ClIocMcastUserInfoT *pMcastInfo)
 Registers an application against a multicast address with IOC Multicast Layer.
ClRcT clIocNeighborListGet (CL_INOUT ClUint32T *pNumberOfEntries, CL_OUT ClIocNodeAddressT *pAddrList)
 Returns the list of neighbours IOC nodes.
ClRcT clIocPortNotification (CL_IN ClIocPortT port, CL_IN ClIocNotificationActionT action)
 Enables/Disables the notifications form IOC on the port.
ClRcT clIocReceive (CL_IN ClIocCommPortHandleT commPortHdl, CL_IN ClIocRecvOptionT *pRecvOption, CL_OUT ClBufferHandleT userMsg, CL_OUT ClIocRecvParamT *pRecvParam)
 Receives message on communication port.
ClRcT clIocSend (CL_IN ClIocCommPortHandleT commPortHandle, CL_IN ClBufferHandleT message, CL_IN ClUint8T protoType, CL_IN ClIocAddressT *pDestAddr, CL_IN ClIocSendOptionT *pSendOption)
 Sends message on a communication port.
ClRcT clIocTotalNeighborEntryGet (CL_OUT ClUint32T *pNumberOfEntries)
 Returns the total number of neighbour nodes.
ClRcT clIocTransparencyDeregister (CL_IN ClUint32T compId)
 De-registers the application with Transparency Layer.
ClRcT clIocTransparencyRegister (CL_IN ClIocTLInfoT *pTLInfo)
 Registers an application's logical address with Transparency Layer.
ClRcT clIocVersionCheck (CL_IN ClVersionT *pVersion)
 Checks for appropriate version of application.

Detailed Description

Defines, Structures, Typedefs, Functions.

Macro Definition Documentation

#define CL_IOC_ADDRESS_TYPE_GET (   param)    ((ClUint32T)((*((ClUint64T*)(param))) >> CL_IOC_ADDRESS_TYPE_SHIFT_DWORD))

Macro to determine Type of address.

Pass the address of IOC address as parameter and type is returned.

#define CL_IOC_DEFAULT_COMMPORT   0x0000

Start of valid communication port.

Default communication port.

#define CL_IOC_DYNAMIC_LOGICAL_ADDRESS_START   (CL_IOC_STATIC_LOGICAL_ADDRESS_END+1)

Start of Dynamic Logical addresses.

This range of addresses is used only by Name Service to allocate Logical Addresses to applications dynamically.

This valude represents the maximum number of EPHIMERAL communication ports that can be present on a ASP node.

These communication ports cannot be directly used by user application. These are in ASP control and will be assigned to an application, which requests of it.

#define CL_IOC_EPHEMERAL_PORTS_START   (CL_IOC_RESERVED_PORTS + CL_IOC_USER_RESERVED_PORTS + 0x00)

Client communication port range.

Of these ports, IOC assigns the ports to the application if it passes 0, in the communication port create API.

#define CL_IOC_ERR_TRY_AGAIN   0x102 /* 0x50102 */

The operation could not succeed.

Can be tried again.

#define CL_IOC_REASSEMBLY_TIMEOUT   (5000) /* milliseconds */

ASP provides a feature of sending any sized data to another ASP object.

This feature internally does the fragmentation and reassembly of the data. So this timeout mentions the reassembly timeout, within wich the IOC should reassemble the packet and give to the application.

#define CL_IOC_RELIABLE_MESSAGING   (1<<0)

Communication port creation related flags .

If the flag value is set(0th bit should be set), it is reliable messaging.

#define CL_IOC_RESERVED_PORTS   (64)

This value represents the maximum number of ASP communication ports that can be present on a ASP node.

No user application should choose a communication port, which falls into this group. It might get used be ASP in later releases.

#define CL_IOC_TL_ACTIVE   0

HA state for Registration with Transparency Layer.

State is Active.

#define CL_IOC_TL_STDBY   1

HA state for Registration with Transparency Layer.

State is Standby.

#define CL_IOC_UNRELIABLE_MESSAGING   0

Communication port creation related flags.

If the flag value is 0, it is unreliable messaging.

#define CL_IOC_USER_APP_WELLKNOWN_PORTS_START   (CL_IOC_RESERVED_PORTS + 0x00)

The ASP applications should add their wellknow server ports here.

The range for this class of ports is CL_IOC_USER_APP_WELLKNOWN_PORT_START to CL_IOC_USER_APP_WELLKNOWN_PORT_END, both inclusive.

#define CL_IOC_USER_RESERVED_PORTS   (64)

This value represents the maximum number of USER communication ports that can be present on a ASP node.

If the user wants to assign a well know address to his application then the communication port number has to be from this group.

Typedef Documentation

typedef ClUint32T ClIocCommPortFlagsT

Port Type.

It can be have the following values:

  • CL_IOC_UNRELIABLE_MESSAGING: for unreliable messaging
  • CL_IOC_RELIABLE_MESSAGING: for reliable messaging

The port close notification payload.

Enumeration Type Documentation

The send message option.

Enumerator:
CL_IOC_PERSISTENT_MSG 

The message is persistent in nature and is not consumed by IOC on send.

CL_IOC_NON_PERSISTENT_MSG 

The message is non persistent in nature and is consumed by IOC on send.

This message cannot be reused.

This defines all notification related actions that can be performed on a port.

Enumerator:
CL_IOC_NOTIFICATION_DISABLE 

Disables component/node arrival/departure notifications.

CL_IOC_NOTIFICATION_ENABLE 

Enable scomponent/node arrival/departure notifications.

The port close notification payload.

This defines all the priorities that can be used with IOC.

Enumerator:
CL_IOC_DEFAULT_PRIORITY 

This is the default priority.

This tells the IOC to use the lowest priority for sending the packet.

CL_IOC_HIGH_PRIORITY 

This is the higest priority with which a packet can be sent.

CL_IOC_LOW_PRIORITY 

This is the lowest priority.

The packets sent with this priority might get rejected if there is congestion on the transports.

CL_IOC_RESERVED_PRIORITY 

This is reserved by IOC for future use.

CL_IOC_MAX_PRIORITIES 

This limits the use of the number of priorities that can be used with IOC.

Reserved Protocol Type.

Enumerator:
CL_IOC_PROTO_ARP 

ARP protocol.

CL_IOC_PROTO_FLOWCONTROL 

Flow control Protocol.

CL_IOC_PROTO_HB 

IOC Heartbeat protocol.

CL_IOC_PROTO_CTL 

IOC Control Protocol (for discovery and capability negotiation).

CL_IOC_PROTO_TL 

Transparency Layer protocol.

CL_IOC_PROTO_MSG 

Messaging service protocol.

CL_IOC_PROTO_ICMP 

Group communication related message.

CL_IOC_INTERNAL_PROTO_END 

IOC internal reserved protocols end.

CL_IOC_RMD_SYNC_REQUEST_PROTO 

RMD synchronous request.

CL_IOC_RMD_SYNC_REPLY_PROTO 

RMD synchronous reply.

CL_IOC_RMD_ASYNC_REQUEST_PROTO 

RMD asynchronous request.

CL_IOC_RMD_ASYNC_REPLY_PROTO 

RMD asynchronous reply.

CL_IOC_PORT_NOTIFICATION_PROTO 

Port close notification for CPM.

CL_IOC_SYSLOG_PROTO 

Sys log protocol.

CL_IOC_SAF_MSG_REQUEST_PROTO 

SAF Messaging Protocol.

CL_IOC_ASP_RESERVERD_PROTO_END 

Here the reserved protocols for ASP end.

CL_IOC_USER_PROTO_START 

If the application wants to specify its own protocols it can start from here, For example CL_IOC_USER_PROTO_START+1.

CL_IOC_PROTO_END 

The application should specify its protocol number less than this value, if they plan to use some.

CL_IOC_INVALID_PROTO 

Last protocol Id for EO.

Transparency layer context.

Enumerator:
CL_IOC_TL_GLOBAL_SCOPE 

The context for Global scope entries.

CL_IOC_TL_LOCAL_SCOPE 

The context for local scope entries.

Function Documentation

ClRcT clIocCommPortCreate ( CL_IN ClIocPortT  portId,
CL_IN ClIocCommPortFlagsT  portType,
CL_OUT ClIocCommPortHandleT pIocCommPortHdl 
)

Creates a communication port.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
portIdId of the communication port to be created. If portId is 0, then a communication port id is generated by IOC.
portTypeThis parameter refers to the type of communication that can be reliable or unreliable. This parameter can have the following two values:
  • CL_IOC_UNRELIABLE_MESSAGING, for unreliable messaging.
  • CL_IOC_RELIABLE_MESSAGING, for reliable messaging.
pIocCommPortHdlHandle to the communication port used by applications to send and receive the messages.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf the IOC is not initialized
CL_ERR_NULL_POINTERIf the pIocCommPortHdl is passed as NULL.
CL_ERR_NOT_IMPLEMENTEDIf portType is not CL_IOC_UNRELIABLE_MESSAGING.
CL_ERR_INVALID_PARAMETERIf the portId is more than CL_IOC_COMMPORT_END.
CL_ERR_NOT_EXISTIf 0 is passed as portId and no ephemeral communication port is free.
CL_IOC_ERR_COMMPORT_REG_FAILIf communication port registration failed.
CL_ERR_NO_MEMORYIf the memory allocation or any other resource allocation fails.
CL_ERR_UNSPECIFIEDIn case of other failures.
Description:
This API is used to create a communication port. A communication port is compulsary for an ASP application which wants to communicate with another ASP application. The mode of communication can be reliable or unreliable, which should be specified through /e portType parameter. The communication port created will be in the blocking mode.
See Also
clIocSend(), clIocReceive(), clIocCommPortDelete().
ClRcT clIocCommPortDelete ( CL_IN ClIocCommPortHandleT  iocCommPortHdl)

Deletes the communication port.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
iocCommPortHdlHandle to communication port to be deleted.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf the IOC is not initialized
CL_ERR_INVALID_HANDLEIf Invalid communication port handle is passed.
CL_IOC_ERR_COMMPORT_BLOCKEDIf The communication port is blocked.
Description:
This API is used to delete the already existing communication port, which was created by calling clIocCommPortCreate() API. Before deleting the communication port, it should made sure that no thread is using the communication port and no one is blocked on receive.
See Also
clIocCommPortCreate(), clIocSend(), clIocReceive().
ClRcT clIocCommPortFdGet ( CL_IN ClIocCommPortHandleT  portHandle,
CL_INOUT ClInt32T *  pSd 
)

Gets the socket descriptor used by communication of a CommPort.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
portHandleThis is the communication port handle, which was returned on creating the commport through clIocCommPortCreate() API.
pSdThis is pointer to a variable of type ClInt32T in which the socket descriptor for the CommPort will be returned.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf the IOC is not initialized
CL_ERR_INVALID_HANDLEIf Invalid communication port handle is passed.
CL_ERR_NULL_POINTERIf the address for holding the socket descriptor is NULL.
Description:
This API is used to get the socket descriptor of a communication port, created by clIocCommPortCreate() API. This API is useful when select() or poll() on few IOC communication ports is to performed. On calling this API with communication port returns with socket descriptor and then this socket descriptor can be used in select() or poll(). Now the applications which are interested in communicating with each other have to use either the socket descriptor or the communication port handle but the mixed usage, Mixed usage results into dataloss.
See Also
clIocCommPortCreate(), clIocSend(), clIocReceive().
ClRcT clIocCommPortGet ( CL_IN ClIocCommPortHandleT  pIocCommPort,
CL_OUT ClIocPortT pPortId 
)

Returns the port Id.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
pIocCommPortHandle to the communication port.
pPortIdA pointer to the port Id, on successful execution.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf the IOC is not initialized
CL_ERR_NULL_POINTERIf the pPortId is passed as NULL.
Description:
This API returns the port Id for a given communication port handle. It needs to be called when the communication port related parameters are required to be set. This can be called only if the communication port is created through clIocCommPortCreate().
See Also
clIocCommPortCreate(), clIocSend(), clIocReceive(), clIocCommPortDelete(), clIocLastErrorGet().
ClRcT clIocCommPortReceiverUnblock ( CL_IN ClIocCommPortHandleT  commPortHdl)

Unblocks all receive calls.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
commPortHdlHandle of the communication port to be unblocked.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf the IOC is not initialized.
CL_ERR_INVALID_HANDLEIf the communication port handle is invalid.
Description:
This API is used to unblock the receive call which is blocked inside IOC on the given communication port. The blocked receive call is unblocked and returns CL_IOC_RECV_UNBLOCKED after this call. The receive on this communication port stops after this call. To start the receive again on the communication port you must call API clIocCommPortBlockRecvSet.
See Also
clIocCommPortCreate(), clIocCommPortDelete(), clIocCommPortModeSet(), clIocCommPortModeGet(), clIocCommPortBlockRecvSet(), clIocCommPortDebug().
ClRcT clIocLibFinalize ( void  )

Cleans up the IOC.

Header File:
clIocApiExt.h
Library Files:
libClIoc
Parameters:
None
Return values
CL_OKThe API is successfully executed.
Description:
This API is used to perform IOC clean up. This deregists all the trnasport and cleans up all the data held by it. After this call no IOC call should be made.
See Also
clIocLibInitialize().
ClRcT clIocLibInitialize ( ClPtrT  pConfig)

Configures and initializes the IOC.

Header File:
clIocApiExt.h
Library Files:
libClIoc
Parameters:
None
Return values
CL_OKThe API is successfully executed.
CL_IOC_ERR_INIT_FAILEDIf IOC initialization fails.
Description:
This API is configures and initialize the IOC. This API needs to be called before any other function of IOC. This function also initiates the transport configuration and initialization.
See Also
clIocLibFinalize(), clIocLibConfigGet().
ClIocNodeAddressT clIocLocalAddressGet ( void  )

Returns the local IOC node addrress.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters:
None
Return values:
On successful execution this API returns the local IOC node address. In case of error, the API returns 0.
Description:
This API returns the IOC node address of the current node.
ClRcT clIocMaxPayloadSizeGet ( CL_OUT ClUint32T *  pSize)

Returns the maximum payload size.

Header File:
clIocApiExt.h
Library Files:
libClIoc
Parameters
pSizeThe maximum supported payload size is returned in this.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
CL_ERR_NULL_POINTERIf pSize is NULL.
Description:
This API returns the maximum payload size that can be sent over the IOC. This doesnot include the IOC header size.
Note
In this release there is no limit over the payload size in IOC, so this API may not be very useful.
ClRcT clIocMulticastDeregister ( CL_IN ClIocMcastUserInfoT *  pMcastInfo)

De-registers the application against a multicast address with the IOC Multicast Layer.

Header File:
clIocIpi.h
Library Files:
libClIoc
Parameters
pMcastInfoThis parameter contains the multicast deregistration information which includes physical address to be de-registered and the multicast address against which the deregistration should happen.
Return values
CL_OKThe function has successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
CL_ERR_NULL_POINTERIf pMcastInfo is NULL
CL_ERR_INVALID_PARAMETERIf any of the fields in pMcastInfo is ascertained to be invalid.
CL_ERR_NOT_EXISTThis physical address was not registered against this multicast address through a previous invocation of clIocMulticastRegister.
Description:
This API is called to deregister the application from the multicast group identifed by multicastAddress. The physical address is deregistered from the multicast address' list. The multicast address is also removed from the multicast table if the deregistred address was the only left physical address with that multicast address group.
See Also
clIocMulticastRegister(), clIocMulticastDeregisterAll().
ClRcT clIocMulticastDeregisterAll ( CL_IN ClIocMulticastAddressT pMcastAddress)

De-registers the application against a multicast address with the IOC Multicast Layer.

Header File:
clIocIpi.h
Library Files:
libClIoc
Parameters
pMcastAddressThis parameter contains the multicast deregistration information which includes the multicast address against which the deregistration should happen.All the physical addresses for the given multicast address are deregistered along with the multicast address.
Return values
CL_OKThe function has successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
CL_ERR_NULL_POINTERIf pMcastInfo is NULL
CL_ERR_INVALID_PARAMETERIf any of the fields in pMcastInfo is ascertained to be invalid.
CL_ERR_NOT_EXISTThis multicast address was not registered through a previous invocation of clIocMulticastRegister.
Description:
This API is called to deregister all the applications from the multicast group identifed by multicastAddress. The physical addresses for the multicast address are deregistered. The multicast address is also removed from the multicast table. This should be called only when a node is shutting down. This is good if called only from ASP AMF component, since only this component know when the node is going down.
See Also
clIocMulticastRegister(), clIocMulticastDeregister().
ClRcT clIocMulticastRegister ( CL_IN ClIocMcastUserInfoT *  pMcastInfo)

Registers an application against a multicast address with IOC Multicast Layer.

Header File:
clIocIpi.h
Library Files:
libClIoc
Parameters
pMcastInfoThis parameter contains the registration related information, which includes the multicast address and IOC physical address.
Return values
CL_OKThe function has successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
CL_ERR_NULL_POINTERIf pMcastInfo is NULL
CL_ERR_INVALID_PARAMETERIf any field of pMcastInfo is not a valid type.
CL_ERR_NO_MEMORYIOC could not get enough memory to complete the requested operation.
CL_ERR_ALREADY_EXISTThe specified mapping already exist.
Description:
This API is used to register an application against a multicast address with the Multicast Layer. The IOC physical address of an application is used to register to a multicast group, in which the application is interested, using the groups multicast address. Any message sent to the multicast group by any application in the system will reach all the applications, who have registered for that multicast address.
See Also
clIocMulticastDeregister(),
ClRcT clIocNeighborListGet ( CL_INOUT ClUint32T *  pNumberOfEntries,
CL_OUT ClIocNodeAddressT pAddrList 
)

Returns the list of neighbours IOC nodes.

Header File:
clIocApiExt.h
Library Files:
libClIoc
Parameters
pNumberOfEntries(in/out) The number of entries the array can hold is passed by you. IOC will modify this number if it fills less number of entries in the pAddrList ayrray.
pAddrList(out) The Array of IOC node address passed by you. The number of entries an array can hold is passed in the other parameter pNumberOfEntries.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
CL_ERR_NULL_POINTERIf either pNumberOfEntries or pAddrList is NULL.
CL_ERR_NO_MEMORYIf the memory allocation or any other resource allocation fails.
Description:
This API returns the list of neighbor-IOC nodes including the local node. It takes an Array of ClIocNodeAddressT and the number of entries the array can hold. IOC will pass the list of neighbors in the array.

If the number of entries is less than the passed array size then pNumberOfEntries is used to inform the exact number of entries.

You must call the API clIocTotalNeighborEntryGet() to get the total number of neighbors and accordingly the space to get the addresses can be allocated.
See Also
clIocTotalNeighborEntryGet().
ClRcT clIocPortNotification ( CL_IN ClIocPortT  port,
CL_IN ClIocNotificationActionT  action 
)

Enables/Disables the notifications form IOC on the port.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
portPort number for who the notification configuration needs to be modified.
actionThe notification action that needs to performed on the port. execution.
Return values
CL_OKThe API is successfully executed.
CL_ERR_DOESNT_EXISTIf an invalid port is passed or if the port is not yet created.
Description:
This API enables/disables the port to receive notifications genereted by IOC. The IOC generated notifications like component/node arrival/departure. And these notifications are sent to all the components on the node. But the notifications will reach the applications only if the application enables notification for that port. And if port disables the notification then no notification received by port will reach the application. It will be dropped by IOC. By default the ports will be disabled for receiving notifications.
See Also
clIocCommPortCreate(), clIocCommPortGet(), clIocCommPortDelete().
ClRcT clIocReceive ( CL_IN ClIocCommPortHandleT  commPortHdl,
CL_IN ClIocRecvOptionT pRecvOption,
CL_OUT ClBufferHandleT  userMsg,
CL_OUT ClIocRecvParamT pRecvParam 
)

Receives message on communication port.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
commPortHdlHandle of the given communication port.
pRecvOptionThis structure is used for options like timeout. If NULL, the structure makes use of all the default values.
userMsg(out) Handle to the message. This must be created and freed by you once the call returns. After the successfully receving the data, the received data is passed to the message.
pRecvParam(out) The parameter related to the message priority, origin of the message, length of the message and protocol is returned here on successful receive. It can not be NULL.
  • priority The priority of the message with which the sender sent the message.
  • protoType The protocol of the message with which sender sent, so that the receiver can analyse the packet using that prottocol.
  • length Length of the message just received.
  • srcAddr The physical address of the sender of the message.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf the IOC is not initialized.
CL_ERR_INVALID_HANDLEIf Invalid communication port handle is passed.
CL_ERR_NULL_POINTERIf the pRecvParam is passed as NULL.
CL_ERR_INVALID_BUFFERIf the message is invalid.
CL_IOC_ERR_TRY_AGAINOn failing to receive any message on non-blocking communication port.
CL_ERR_TIMEOUTIf nothing is received within specified timeout interval.
CL_IOC_ERR_RECV_UNBLOCKEDIf receiver is unblocked.
CL_ERR_UNSPECIFIEDOther errors.
Description:
This API is used to receive a message on the communication port. The messages are received as per the priority, and the same priority order is maintained through out. The behavior of this call depends on the current mode of the port, i.e., blocking or non-blocking mode. If the mode is set to blocking and there is no data in commport receive queue, the receiver thread gets blocked. If the mode is non-blocking and there is no data attached in the commport receive queue then CL_IOC_ERR_TRY_AGAIN error code is returned. To receive data in non-blocking mode, the application has to poll on the communication port checking for data availability.
See Also
clIocCommPortCreate(), clIocSend(), clIocCommPortDelete().
ClRcT clIocSend ( CL_IN ClIocCommPortHandleT  commPortHandle,
CL_IN ClBufferHandleT  message,
CL_IN ClUint8T  protoType,
CL_IN ClIocAddressT pDestAddr,
CL_IN ClIocSendOptionT pSendOption 
)

Sends message on a communication port.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
commPortHandleHandle to a communication port on which message is to be sent.
messageThe message to be sent across the communication port. The message must be created by you and the data to be sent across is be passed in this message. If the message is persistent, it must be freed by you.
protoTypeThe protocol ID must be specified by you.
pDestAddrA pointer to the destination address where message need to be sent.
pSendOptionThe options available to send a message. If pSendOption is NULL, the default values are used.
The structure ClIocSendOptionT has the following fields:
  • priority: The priority to send across a message. If the message priority is more than the maximum supported value then the message will be sent with 0 (default value) priority.
  • sendType: This is used in case of sending a message to a logical address. The values for this parameters are CL_IOC_SESSION_BASED A session will be established on sending a message with this parameter set to a logical address. Every subsequent send to the same logical address will end up going to the same physcial address without doing any lookup for physical address of that logical address. In case if the destination component changes its physical location then the send will return with an error and the session will be lost. CL_IOC_NO_SESSION (default value) Every time the logical address to physical address conversion is done and sent to the physical address.
  • msgOption: This parameters is used to define the message as peristent or non-persistent and can have any of the following two values:
    1. CL_IOC_PERSISTENT_MSG: For persistant message. These buffer messages will not be deleted on error or in case of successful sending of the message. here the sening application has to delete the buffer message.
    2. CL_IOC_NON_PERSISTENT_MSG: Default value, for non-persistant message. In this case the message will be deleted by IOC.
  • timeout: It is the timeout value in miliseconds. Default is 0. If 0 is passed, the first error encountered is returned. If it is non zero then this API on seeing the Flow control related messages will try to resend the message until the timeout expires and if the timeout expires in between it will return the error. If a big message is sent then fragmentation and reassembly will kickin, if the finite timeout is specified then it may return the timeout error, if the total time required to send all the fragments out is more than the 'timeout' period.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf the IOC is not initialized.
CL_ERR_INVALID_HANDLEIf Invalid communication port handle is passed.
CL_ERR_NULL_POINTERIf the pDestAddr is passed as NULL.
CL_ERR_INVALID_BUFFERIf the message is invalid.
CL_IOC_ERR_PROTO_IN_USE_WITH_IOCIf the protocol id passed is in use by IOC.
CL_IOC_ERR_INVALID_MSG_OPTIONIf the message option passed in the pSendOption is invalid.
CL_ERR_INVALID_PARAMETERIf the sendType passed in the pSendOption is invalid or the destination address is not of supported type, or the message size is 0.
CL_ERR_NO_MEMORYOn memory allocation failure.
CL_ERR_NOT_EXISTIf the logical address is passed and there is no mapping for it in the Transparency Layer.
CL_IOC_ERR_INVALID_SESSIONIf session based communication is requested and the destination is moved to a different location.
CL_IOC_ERR_FLOW_XOFF_STATEIf the destination has send an XOFF message.
CL_IOC_ERR_HOST_UNREACHABLEIf the host can not be reached.
CL_ERR_BUFFER_OVERRUNIf the priority queue has no space left for this message.
CL_ERR_TIMEOUTIf send operation can not be completed within the specified timeout interval.
CL_ERR_UNSPECIFIEDOther errors.
Description:
This API is used to send a message to an ASP application. The message passed can be persistent or non persistent as specified in the messageType field of the sendoption structure. The persistant messages are required to be deleted by the sending application and non-persistant messages will be deleted by IOC on completing the send operation. Since IOC supports fragmentation and reassembly of the messages any big data can be sent. The thing that needs to be considered at the time of sending big messages is the timeout value. If the send operation cannot completely send the data within that time it will return with CL_ERR_TIMEOUT error.
See Also
clIocCommPortCreate(), clIocReceive(), clIocCommPortDelete().
ClRcT clIocTotalNeighborEntryGet ( CL_OUT ClUint32T *  pNumberOfEntries)

Returns the total number of neighbour nodes.

Header File:
clIocApiExt.h
Library Files:
libClIoc
Parameters
pNumberOfEntries(out) Number of neighbor nodes.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
CL_ERR_NULL_POINTERIf pNumberOfEntries is NULL.
Description:
This API returns the total number of neighbor nodes(including duplicates and local) of the current node. This should be called before the clIocNeighborListGet() is called.
See Also
clIocNeighborListGet().
ClRcT clIocTransparencyDeregister ( CL_IN ClUint32T  compId)

De-registers the application with Transparency Layer.

Header File:
clIocApi.h
Library Files:
ClIoc
Parameters
compIdId of the component which wants to deregister all its registration with Transparency Layer.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
Description:
This API is used to deregister the application with Transparency layer. The application cannot be reached with the logical address after this API is called for the comp id. But it can be reached through the physical address if it is known.
See Also
clIocTransparencyRegister().
ClRcT clIocTransparencyRegister ( CL_IN ClIocTLInfoT pTLInfo)

Registers an application's logical address with Transparency Layer.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters
pTLInfo(in/out) This parameter contains the logical address registration related information.
  • logicalAddr This is the logical address of the application which is being registered with the Transparency layer.
  • compId This is component Id of the application, on which the IOC receive will be blocked for receiving the data.
  • contextType This registers the logical address either in GLOBAL or in LOCAL context. the GLOBAL context registrations will be updated on all the nodes immediately.
  • haState The indicates the state of the application, whether it is active or standby.
Return values
CL_OKThe API is successfully executed.
CL_ERR_NOT_INITIALIZEDIf IOC is not initialized.
CL_ERR_NULL_POINTERIf pTLInfo is NULL
CL_IOC_ERR_TL_LIMIT_EXCEEDEDIf there is no space left in registration database.
CL_ERR_INVALID_PARAMETERIf context passed in pTLInfo is not a valid type.
CL_ERR_NO_MEMORYOn memory allocation failure.
CL_IOC_ERR_TL_DUPLICATE_ENTRYIf the entry already exists.
Description:
This API is used to register an application's logical address with the Transparency Layer. Once the registration is done the application can be reached on its logical address.
See Also
clIocTransparencyDeregister(), clIocTransparencyLogicalToPhysicalAddrGet().
ClRcT clIocVersionCheck ( CL_IN ClVersionT pVersion)

Checks for appropriate version of application.

Header File:
clIocApi.h
Library Files:
libClIoc
Parameters:
None
Return values
CL_OKThe API is successfully executed.
Description:
This API checks whether the application version matches with any of the supported versions of the IOC client library and server module. If it doesnot then returns error.

Generated on Tue Jan 10 10:29:15 PST 2012 for OpenClovis SDK using Doxygen