@@ -120,6 +120,14 @@ typedef void mlme_request(const mac_api_t* api, mlme_primitive id, const void *d
120
120
*/
121
121
typedef void mcps_data_request (const mac_api_t * api , const mcps_data_req_t * data );
122
122
123
+ /**
124
+ * @brief mcps_request MCPS_DATA with IE extions request call
125
+ * @param api API to handle the request
126
+ * @param data MCPS-DATA.request specific values
127
+ * @param ie_ext Information element list to MCPS-DATA.request
128
+ */
129
+ typedef void mcps_data_request_ext (const mac_api_t * api , const mcps_data_req_t * data , const mcps_data_req_ie_list_t * ie_ext );
130
+
123
131
/**
124
132
* @brief mcps_purge_request MCPS_PURGE request call
125
133
* @param api API to handle the request
@@ -136,13 +144,29 @@ typedef void mcps_purge_request(const mac_api_t* api, const mcps_purge_t *data);
136
144
*/
137
145
typedef void mcps_data_confirm (const mac_api_t * api , const mcps_data_conf_t * data );
138
146
147
+ /**
148
+ * @brief mcps_data_confirm_ext MCPS-DATA confirm with Enhanced ACK payload is called as a response to MCPS-DATA request
149
+ * @param api The API which handled the response
150
+ * @param data MCPS-DATA.confirm specific values
151
+ * @param conf_data Possible Confirmation Data
152
+ */
153
+ typedef void mcps_data_confirm_ext (const mac_api_t * api , const mcps_data_conf_t * data , const mcps_data_conf_payload_t * conf_data );
154
+
139
155
/**
140
156
* @brief mcps_data_indication MCPS-DATA indication is called when MAC layer has received data
141
157
* @param api The API which handled the response
142
158
* @param data MCPS-DATA.indication specific values
143
159
*/
144
160
typedef void mcps_data_indication (const mac_api_t * api , const mcps_data_ind_t * data );
145
161
162
+ /**
163
+ * @brief mcps_data_indication MCPS-DATA indication is called when MAC layer has received data
164
+ * @param api The API which handled the response
165
+ * @param data MCPS-DATA.indication specific values
166
+ * @param ie_ext Information element list
167
+ */
168
+ typedef void mcps_data_indication_ext (const mac_api_t * api , const mcps_data_ind_t * data , const mcps_data_ie_list_t * ie_ext );
169
+
146
170
/**
147
171
* @brief mcps_purge_confirm MCPS-PURGE confirm is called as a response to MCPS-PURGE request
148
172
* @param api The API which handled the request
@@ -201,6 +225,17 @@ typedef int8_t mac_api_initialize(mac_api_t *api, mcps_data_confirm *data_conf_c
201
225
mcps_data_indication * data_ind_cb , mcps_purge_confirm * purge_conf_cb , mlme_confirm * mlme_conf_cb ,
202
226
mlme_indication * mlme_ind_cb , int8_t parent_id );
203
227
228
+ /**
229
+ * @brief mac_api_enable_mcps_ext Initialises MAC 2015 extension for MCPS layer into use, callbacks must be non-NULL.
230
+ * @param api mac_api_t pointer, which is created by application.
231
+ * @param data_ind_cb Upper layer function to handle MCPS indications
232
+ * @param data_cnf_cb Upper layer function to handle MCPS confirmation
233
+ * @return -1 if error, -2 if OOM, 0 otherwise
234
+ */
235
+ typedef int8_t mac_api_enable_mcps_ext (mac_api_t * api ,
236
+ mcps_data_indication_ext * data_ind_cb ,
237
+ mcps_data_confirm_ext * data_cnf_cb );
238
+
204
239
/**
205
240
* \brief Struct mac_api_s defines functions for two-way communications between external MAC and Upper layer.
206
241
* Application creates mac_api_t object by calling external MAC's creator function.
@@ -209,14 +244,18 @@ typedef int8_t mac_api_initialize(mac_api_t *api, mcps_data_confirm *data_conf_c
209
244
*/
210
245
struct mac_api_s {
211
246
mac_api_initialize * mac_initialize ; /**< MAC initialize function to use */
247
+ mac_api_enable_mcps_ext * mac_mcps_extension_enable ; /**< MAC MCPS IE extension enable function, optional feature */
212
248
//External MAC callbacks
213
249
mlme_request * mlme_req ; /**< MAC MLME request function to use */
214
250
mcps_data_request * mcps_data_req ; /**< MAC MCPS data request function to use */
251
+ mcps_data_request_ext * mcps_data_req_ext ; /**< MAC MCPS data request with Information element extension function to use */
215
252
mcps_purge_request * mcps_purge_req ; /**< MAC MCPS purge request function to use */
216
253
217
254
//Upper layer callbacksMLME_ASSOCIATE
218
255
mcps_data_confirm * data_conf_cb ; /**< MAC MCPS data confirm callback function */
256
+ mcps_data_confirm_ext * data_conf_ext_cb ; /**< MAC MCPS data confirm with payload callback function */
219
257
mcps_data_indication * data_ind_cb ; /**< MAC MCPS data indication callback function */
258
+ mcps_data_indication_ext * data_ind_ext_cb ; /**< MAC MCPS data indication with IE extension's callback function */
220
259
mcps_purge_confirm * purge_conf_cb ; /**< MAC MCPS purge confirm callback function */
221
260
mlme_confirm * mlme_conf_cb ; /**< MAC MLME confirm callback function */
222
261
mlme_indication * mlme_ind_cb ; /**< MAC MLME indication callback function */
0 commit comments