@@ -91,6 +91,7 @@ typedef struct {
9191 uint8_t mpx_user_handle ; /**< This MPX user defined handle */
9292 ns_ie_iovec_t ie_vector_list [3 ]; /**< IE vectors: 1 for Header's, 1 for Payload and for MPX payload */
9393 mcps_data_req_ie_list_t ie_ext ;
94+ mac_data_priority_t priority ;
9495 ns_list_link_t link ; /**< List link entry */
9596 uint8_t ie_buffer []; /**< Trailing buffer data */
9697} llc_message_t ;
@@ -162,7 +163,7 @@ static llc_data_base_t *ws_llc_base_allocate(void);
162163static void ws_llc_mac_confirm_cb (const mac_api_t * api , const mcps_data_conf_t * data , const mcps_data_conf_payload_t * conf_data );
163164static void ws_llc_mac_indication_cb (const mac_api_t * api , const mcps_data_ind_t * data , const mcps_data_ie_list_t * ie_ext );
164165static uint16_t ws_mpx_header_size_get (llc_data_base_t * base , uint16_t user_id );
165- static void ws_llc_mpx_data_request (const mpx_api_t * api , const struct mcps_data_req_s * data , uint16_t user_id );
166+ static void ws_llc_mpx_data_request (const mpx_api_t * api , const struct mcps_data_req_s * data , uint16_t user_id , mac_data_priority_t priority );
166167static int8_t ws_llc_mpx_data_cb_register (const mpx_api_t * api , mpx_data_confirm * confirm_cb , mpx_data_indication * indication_cb , uint16_t user_id );
167168static uint16_t ws_llc_mpx_header_size_get (const mpx_api_t * api , uint16_t user_id );
168169static uint8_t ws_llc_mpx_data_purge_request (const mpx_api_t * api , struct mcps_purge_s * purge , uint16_t user_id );
@@ -290,6 +291,7 @@ static llc_message_t *llc_message_allocate(uint16_t ie_buffer_size, llc_data_bas
290291 }
291292 message -> ack_requested = false;
292293 message -> eapol_temporary = false;
294+ message -> priority = MAC_DATA_NORMAL_PRIORITY ;
293295 return message ;
294296}
295297
@@ -975,7 +977,7 @@ static void ws_llc_lowpan_mpx_header_set(llc_message_t *message, uint16_t user_i
975977 message -> ie_vector_list [1 ].iovLen = ptr - (uint8_t * )message -> ie_vector_list [1 ].ieBase ;
976978}
977979
978- static void ws_llc_lowpan_mpx_data_request (llc_data_base_t * base , mpx_user_t * user_cb , const struct mcps_data_req_s * data )
980+ static void ws_llc_lowpan_mpx_data_request (llc_data_base_t * base , mpx_user_t * user_cb , const struct mcps_data_req_s * data , mac_data_priority_t priority )
979981{
980982 wh_ie_sub_list_t ie_header_mask ;
981983 memset (& ie_header_mask , 0 , sizeof (wh_ie_sub_list_t ));
@@ -1026,6 +1028,7 @@ static void ws_llc_lowpan_mpx_data_request(llc_data_base_t *base, mpx_user_t *us
10261028 //Add To active list
10271029 llc_message_id_allocate (message , base , true);
10281030 base -> llc_message_list_size ++ ;
1031+ message -> priority = priority ;
10291032 random_early_detetction_aq_calc (base -> interface_ptr -> llc_random_early_detection , base -> llc_message_list_size );
10301033 ns_list_add_to_end (& base -> llc_message_list , message );
10311034
@@ -1104,7 +1107,7 @@ static void ws_llc_lowpan_mpx_data_request(llc_data_base_t *base, mpx_user_t *us
11041107 message -> ie_ext .payloadIovLength = 0 ; //Set Back 2 at response handler
11051108 }
11061109
1107- base -> interface_ptr -> mac_api -> mcps_data_req_ext (base -> interface_ptr -> mac_api , & data_req , & message -> ie_ext , NULL );
1110+ base -> interface_ptr -> mac_api -> mcps_data_req_ext (base -> interface_ptr -> mac_api , & data_req , & message -> ie_ext , NULL , message -> priority );
11081111}
11091112
11101113static bool ws_llc_eapol_temp_entry_set (llc_data_base_t * base , const uint8_t * mac64 )
@@ -1159,11 +1162,11 @@ static void ws_llc_mpx_eapol_send(llc_data_base_t *base, llc_message_t *message)
11591162 message -> eapol_temporary = ws_llc_eapol_temp_entry_set (base , message -> dst_address );
11601163 ws_llc_eapol_data_req_init (& data_req , message );
11611164 base -> temp_entries -> active_eapol_session = true;
1162- base -> interface_ptr -> mac_api -> mcps_data_req_ext (base -> interface_ptr -> mac_api , & data_req , & message -> ie_ext , NULL );
1165+ base -> interface_ptr -> mac_api -> mcps_data_req_ext (base -> interface_ptr -> mac_api , & data_req , & message -> ie_ext , NULL , message -> priority );
11631166}
11641167
11651168
1166- static void ws_llc_mpx_eapol_request (llc_data_base_t * base , mpx_user_t * user_cb , const struct mcps_data_req_s * data )
1169+ static void ws_llc_mpx_eapol_request (llc_data_base_t * base , mpx_user_t * user_cb , const struct mcps_data_req_s * data , mac_data_priority_t priority )
11671170{
11681171 wh_ie_sub_list_t ie_header_mask ;
11691172 memset (& ie_header_mask , 0 , sizeof (wh_ie_sub_list_t ));
@@ -1198,6 +1201,7 @@ static void ws_llc_mpx_eapol_request(llc_data_base_t *base, mpx_user_t *user_cb,
11981201 user_cb -> data_confirm (& base -> mpx_data_base .mpx_api , & data_conf );
11991202 return ;
12001203 }
1204+ message -> priority = priority ;
12011205 message -> mpx_user_handle = data -> msduHandle ;
12021206 message -> ack_requested = data -> TxAckReq ;
12031207
@@ -1257,7 +1261,7 @@ static void ws_llc_mpx_eapol_request(llc_data_base_t *base, mpx_user_t *user_cb,
12571261}
12581262
12591263
1260- static void ws_llc_mpx_data_request (const mpx_api_t * api , const struct mcps_data_req_s * data , uint16_t user_id )
1264+ static void ws_llc_mpx_data_request (const mpx_api_t * api , const struct mcps_data_req_s * data , uint16_t user_id , mac_data_priority_t priority )
12611265{
12621266 llc_data_base_t * base = ws_llc_discover_by_mpx (api );
12631267 if (!base ) {
@@ -1280,9 +1284,9 @@ static void ws_llc_mpx_data_request(const mpx_api_t *api, const struct mcps_data
12801284 }
12811285
12821286 if (user_id == MPX_KEY_MANAGEMENT_ENC_USER_ID ) {
1283- ws_llc_mpx_eapol_request (base , user_cb , data );
1287+ ws_llc_mpx_eapol_request (base , user_cb , data , priority );
12841288 } else if (user_id == MPX_LOWPAN_ENC_USER_ID ) {
1285- ws_llc_lowpan_mpx_data_request (base , user_cb , data );
1289+ ws_llc_lowpan_mpx_data_request (base , user_cb , data , priority );
12861290 }
12871291}
12881292
@@ -1800,7 +1804,7 @@ int8_t ws_llc_asynch_request(struct protocol_interface_info_entry *interface, as
18001804 }
18011805 }
18021806
1803- base -> interface_ptr -> mac_api -> mcps_data_req_ext (base -> interface_ptr -> mac_api , & data_req , & message -> ie_ext , & request -> channel_list );
1807+ base -> interface_ptr -> mac_api -> mcps_data_req_ext (base -> interface_ptr -> mac_api , & data_req , & message -> ie_ext , & request -> channel_list , message -> priority );
18041808
18051809 return 0 ;
18061810}
0 commit comments