NBAP: Add UEID to HS-DSCH flows added from RadioLinkReconfiguration

A few HS-DSCH conversations are created when calling add_hsdsch_bind,
such as when a RadioLinkReconfigurationPrepare procedure has
a id-HSDSCH-MACdFlows-to-Add element. This method should add
the CommunicationContextID to the conversation just like the
other ways of creating the conversation. This provides a UEID
for a unique key for RLC reassembly.
This commit is contained in:
John Thacker 2022-12-14 21:01:52 -05:00 committed by AndersBroman
parent 7fef921875
commit 4672e73900
2 changed files with 24 additions and 2 deletions

View File

@ -471,13 +471,15 @@ static void add_hsdsch_bind(packet_info *pinfo){
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
nbap_private_data_t* nbap_private_data;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
if (PINFO_FD_VISITED(pinfo)){
return;
}
nbap_hsdsch_channel_info = nbap_get_private_data(pinfo)->nbap_hsdsch_channel_info;
nbap_private_data = nbap_get_private_data(pinfo);
nbap_hsdsch_channel_info = nbap_private_data->nbap_hsdsch_channel_info;
/* Set port to zero use that as an indication of whether we have data or not */
clear_address(&null_addr);
for (i = 0; i < maxNrOfMACdFlows; i++) {
@ -509,6 +511,15 @@ static void add_hsdsch_bind(packet_info *pinfo){
/*Added june 3, normally just the iterator variable*/
fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
if (nbap_private_data->crnc_context_present) {
umts_fp_conversation_info->com_context_id = nbap_private_data->com_context_id;
} else {
/* XXX: This expert info doesn't get added in subsequent passes,
* but probably should.
*/
expert_add_info(pinfo, NULL, &ei_nbap_no_set_comm_context_id);
}
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;

View File

@ -55479,13 +55479,15 @@ static void add_hsdsch_bind(packet_info *pinfo){
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
nbap_private_data_t* nbap_private_data;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
if (PINFO_FD_VISITED(pinfo)){
return;
}
nbap_hsdsch_channel_info = nbap_get_private_data(pinfo)->nbap_hsdsch_channel_info;
nbap_private_data = nbap_get_private_data(pinfo);
nbap_hsdsch_channel_info = nbap_private_data->nbap_hsdsch_channel_info;
/* Set port to zero use that as an indication of whether we have data or not */
clear_address(&null_addr);
for (i = 0; i < maxNrOfMACdFlows; i++) {
@ -55517,6 +55519,15 @@ static void add_hsdsch_bind(packet_info *pinfo){
/*Added june 3, normally just the iterator variable*/
fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
if (nbap_private_data->crnc_context_present) {
umts_fp_conversation_info->com_context_id = nbap_private_data->com_context_id;
} else {
/* XXX: This expert info doesn't get added in subsequent passes,
* but probably should.
*/
expert_add_info(pinfo, NULL, &ei_nbap_no_set_comm_context_id);
}
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;