OpenClovis Logo

clIocUdpTransportApi.h
1 /*
2  * Copyright (C) 2002-2012 OpenClovis Solutions Inc. All Rights Reserved.
3  *
4  * This file is available under a commercial license from the
5  * copyright holder or the GNU General Public License Version 2.0.
6  *
7  * The source code for this program is not published or otherwise
8  * divested of its trade secrets, irrespective of what has been
9  * deposited with the U.S. Copyright office.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * General Public License for more details.
15  *
16  * For more information, see the file COPYING provided with this
17  * material.
18  */
19 /*******************************************************************************
20  * ModuleName : ioc
21  * File : clIocUdpTransportApi.h
22  *******************************************************************************/
23 
24 
25 #ifndef _CL_IOC_UDP_TRANSPORT_API_H_
26 # define _CL_IOC_UDP_TRANSPORT_API_H_
27 # ifdef __cplusplus
28 extern "C"
29 {
30 # endif
31 
32 # include <clIocTransportApi.h>
33 
34 # define CL_IOC_UDP_XPORT_NAME "UDP"
35 
36 #define CL_IOC_IP_ADDRESS_LENGTH 15
37 
38 #define CL_IOC_MCAST_ADDRESS_LENGTH CL_IOC_IP_ADDRESS_LENGTH
39 
40 # define CL_IOC_UDP_MTU_SIZE (32*1024)
41 
42  typedef struct ClXport
43  {
44  ClOsalMutexT mutex;
45  ClInt32T family;
46  }ClXportT;
47 
48 
49  typedef struct
50  {
51  ClIocNodeAddressT slotNum;
52  ClCharT pInterfaceAddress[CL_IOC_MAX_XPORT_ADDR_SIZE + 1];
53  } ClIocLocationInfoT;
54 
55 
56  typedef struct ClIocLinkCfg
57  {
58 
59  ClCharT pName[CL_IOC_MAX_XPORT_NAME_LENGTH + 1];
60  ClUint8T priority;
61  ClCharT pInterface[CL_IOC_MAX_XPORT_ADDR_SIZE + 1];
62  ClUint8T pMcastAddress[CL_IOC_MCAST_ADDRESS_LENGTH + 1];
63  ClUint32T mtuSize;
64  ClBoolT isCksumSupported;
65  ClBoolT isMcastSupported;
66  ClUint32T numOfNodes;
67  ClIocLocationInfoT *pNode;
68  } ClIocUserLinkCfgT;
69 
70 
71  typedef struct ClIocXportConfig
72  {
73  ClCharT pName[CL_IOC_MAX_XPORT_NAME_LENGTH + 1];
74  ClUint8T priority;
75  ClUint32T id;
76  ClUint32T numOfLinks;
77  ClIocUserLinkCfgT *pLink;
78  } ClIocUserTransportConfigT;
79 
80 
81 
82 
83  ClRcT clIocUdpXportConfigInitialize(
84  CL_IN ClIocUserTransportConfigT *pXportConfig) CL_DEPRECATED;
85 
86 
87  ClRcT clIocTcpXportConfigInitialize(
88  CL_IN ClIocUserTransportConfigT * pXportConfig
89  ) CL_DEPRECATED;
90 
91 
92  ClRcT clIocUdpXportFinalize(
93  void
94  ) CL_DEPRECATED;
95 
96  ClRcT clIocTcpXportFinalize(
97  void
98  ) CL_DEPRECATED;
99 
100 # ifdef __cplusplus
101 }
102 # endif
103 #endif /* _CL_IOC_UDP_TRANSPORT_API_H_ */
ClUint32T ClRcT
Clovis return code type.
Definition: clCommon.h:168
#define CL_IN
CL_IN macro assists in clearly defining arguments of an API, but has no actual meaning.
Definition: clCommon.h:106
ClUint32T ClIocNodeAddressT
The IOC node address.
Definition: clIocApi.h:343

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