summaryrefslogtreecommitdiffhomepage
path: root/digital/zigbit/bitcloud/stack/Components/ConfigServer/include/private/csBuffers.h
blob: bb00718e643f286895f4b2bc6f95f1ba723e63fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/******************************************************************************
  \file csBuffers.h

  \brief
    BitCloud memory buffers

  \author
    Atmel Corporation: http://www.atmel.com \n
    Support email: avr@atmel.com

  Copyright (c) 2010 , Atmel Corporation. All rights reserved.
  Licensed under Atmel's Limited License Agreement (BitCloudTM).

  \internal
    History:
    21.10.10 A. Razinkov - Created.
******************************************************************************/

#ifndef _CSBUFFERS_H_
#define _CSBUFFERS_H_

/******************************************************************************
                    Includes section
******************************************************************************/
#ifndef _MAC2_
#include <apsConfigServer.h>
#include <nwkConfigServer.h>
#else
#include <configServer.h>
#endif

#ifdef _SECURITY_
#include <tcAuthentic.h>
#endif /* _SECURITY */
#ifdef _LINK_SECURITY_ 
#include <tcKeyEstablish.h>
#endif /* _LINK_SECURITY_ */

#ifdef _ZCL_
#include <zclMemoryManager.h>
  #ifdef _OTAU_
#include <zclOTAUCluster.h>
#include <zclOtauDiscovery.h>
#include <zclOtauManager.h>
  #endif /* _OTAU_ */
#endif /* _ZCL_ */

/******************************************************************************
                    Types section
******************************************************************************/

/**//**
 * \brief Stack buffers list
 */
typedef struct _CS_StackBuffers_t
{
  /* MAC buffers */
  uint8_t csMacFrameRxBuffer[CS_MAC_FRAME_RX_BUFFER_SIZE];
#ifndef _MAC2_
  MAC_PanDescriptor_t csMacPanDescriptorBuffer[CS_NEIB_TABLE_SIZE];
#ifdef _MAC_BAN_NODE_
  MAC_BanTableEntry_t csBanTable[CS_BAN_TABLE_SIZE];
#endif /* _MAC_BAN_NODE_ */

  /* NWK buffers */
  Neib_t csNeibTable[CS_NEIB_TABLE_SIZE];
  MutableNeib_t csMutableNeibTable[CS_NEIB_TABLE_SIZE];
#if CS_ROUTE_CACHE_SIZE > 0
  NwkRouteCacheRecord_t csRouteCache[CS_ROUTE_CACHE_SIZE];
#endif
#if CS_NWK_BUFFERS_AMOUNT > 0
  NwkPacket_t csNwkBuffer[CS_NWK_BUFFERS_AMOUNT];
#endif
#if CS_ROUTE_TABLE_SIZE > 0
  NwkRoutingTableEntry_t csRoutingTable[CS_ROUTE_TABLE_SIZE];
#endif
#if CS_ROUTE_DISCOVERY_TABLE_SIZE > 0
  NwkRouteDiscoveryEntry_t csRouteDiscoveryTable[CS_ROUTE_DISCOVERY_TABLE_SIZE];
#endif
#if CS_ADDRESS_MAP_TABLE_SIZE > 0
  NwkAddressMapEntry_t csAddressMapTable[CS_ADDRESS_MAP_TABLE_SIZE];
#endif
#if CS_NWK_BTT_SIZE > 0
  SYS_DuplicateTableEntry_t csBTR[CS_NWK_BTT_SIZE];
#endif
#ifdef _GROUP_TABLE_
  NWK_GroupTableEntry_t csGroupTable[CS_GROUP_TABLE_SIZE];
#endif
#ifdef _SECURITY_
  NWK_SecurityKey_t csNwkSecKeys[CS_NWK_SECURITY_KEYS_AMOUNT];
  NWK_SecurityFrameCounters_t csNwkSecCounters[CS_NWK_SECURITY_KEYS_AMOUNT];
#endif /* _SECURITY_ */

  /* APS buffers */
#if CS_APS_DATA_REQ_BUFFERS_AMOUNT > 0
  ApsDataBuffer_t csApsDataReqBuffer[CS_APS_DATA_REQ_BUFFERS_AMOUNT];
#endif
#if CS_APS_ACK_FRAME_BUFFERS_AMOUNT > 0
  ApsAckBuffer_t csApsAckFrameBuffer[CS_APS_ACK_FRAME_BUFFERS_AMOUNT];
#endif
#if CS_JOIN_IND_OBJ_AMOUNT > 0
  NwkJoinIndObj_t csJoinIndObjects[CS_JOIN_IND_OBJ_AMOUNT];
#endif
#if CS_DUPLICATE_REJECTION_TABLE_SIZE > 0
  SYS_DuplicateTableEntry_t csDuplicateRejectionTable[CS_DUPLICATE_REJECTION_TABLE_SIZE];
#endif
#if defined(_BINDING_) && (CS_APS_BINDING_TABLE_SIZE > 0)
  ApsBindingEntry_t csApsBindingTable[CS_APS_BINDING_TABLE_SIZE];
#endif /* _BINDING_ */
#if defined(_APS_FRAGMENTATION_) && (CS_APS_MAX_BLOCKS_AMOUNT > 0)
  uint8_t csFragmentationMemoryPool[CS_APS_MAX_BLOCKS_AMOUNT * CS_APS_BLOCK_SIZE + CS_APS_MAX_BLOCKS_AMOUNT];
  uint8_t csFragmentationPacketBuffer[APS_AFFIX_LENGTH + CS_APS_BLOCK_SIZE];
#endif /* _APS_FRAGMENTATION_ */

  /* Trust Center buffers */
#ifdef _SECURITY_
  #if CS_MAX_TC_AUTHENTIC_PROCESS_AMOUNT > 0
    TC_AuthenticObj_t csTcAuthenticProcessBuffer[CS_MAX_TC_AUTHENTIC_PROCESS_AMOUNT];
  #endif
  #if defined(_TC_PERMISSION_TABLE_) && (CS_MAX_TC_ALLOWED_DEVICES_AMOUNT > 0)
    ExtAddr_t csTcDevicePermissionTable[CS_MAX_TC_ALLOWED_DEVICES_AMOUNT];
  #endif
  #ifdef _LINK_SECURITY_ 
    ApsKeyPairDescriptor_t csApsKeyPairDescriptors[CS_APS_KEY_PAIR_DESCRIPTORS_AMOUNT];
    ApsKeyCounters_t csApsKeyCounters[CS_APS_KEY_PAIR_DESCRIPTORS_AMOUNT];
    #if CS_MAX_TC_ESTABLISH_KEY_AMOUNT > 0
      TC_KeyEstablishObj_t csTcEstablishKeyBuffer[CS_MAX_TC_ESTABLISH_KEY_AMOUNT];
    #endif
  #endif /* _LINK_SECURITY_ */

#endif /* _SECURITY_ */

  /* ZCL buffers */
#ifdef _ZCL_
  ZclMmBufferDescriptor_t zclMmBuffers[CS_ZCL_MEMORY_BUFFERS_AMOUNT];
  #ifdef _OTAU_
    ZclOtauDiscoveryResult_t      csOtauDiscoveryResult[CS_ZCL_OTAU_DISCOVERED_SERVER_AMOUNT];
    ZclOtauServerTransac_t        csOtauSimultaneousClientSession[CS_ZCL_OTAU_CLIENT_SESSION_AMOUNT];
    ZclOtauMissedBlockResponses_t csOtauMissedBlocksBuffer[CS_ZCL_OTAU_MISSED_BLOCKS_BUFFER_SIZE];
    uint8_t                       csOtauImagePageDataBuffer[CS_ZCL_OTAU_IMAGE_PAGE_REQUEST_PAGE_SIZE];
  #endif /* _OTAU_ */
#endif /* _ZCL_ */

#if (defined _NWK_PASSIVE_ACK_) && (CS_NWK_PASSIVE_ACK_AMOUNT > 0)
  NwkPassiveAckEntry_t csNwkPassiveAckTable[CS_NWK_PASSIVE_ACK_AMOUNT];
#endif
#endif /* _MAC2_ */
} CS_StackBuffers_t;

#endif /* _CSBUFFERS_H_ */
/* eof csBuffers.h */