aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/nbap
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-05-22 15:39:12 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-05-22 15:39:12 +0000
commite460267b82975dfb0d8f6e6fc3f3292b9c89d194 (patch)
treed5b690882aeeaceee693cd828f4616ae5a2a383e /asn1/nbap
parent913455d3b337fe4668a46509988059b1eb66e77d (diff)
Set paging indication and start fixing TFI list.
svn path=/trunk/; revision=42783
Diffstat (limited to 'asn1/nbap')
-rw-r--r--asn1/nbap/nbap.cnf69
-rw-r--r--asn1/nbap/packet-nbap-template.c5
2 files changed, 54 insertions, 20 deletions
diff --git a/asn1/nbap/nbap.cnf b/asn1/nbap/nbap.cnf
index fd9258c1c0..c306b3e09b 100644
--- a/asn1/nbap/nbap.cnf
+++ b/asn1/nbap/nbap.cnf
@@ -523,6 +523,9 @@ guint32 payload_crc_value;
#.FN_BODY CommonPhysicalChannelID VAL_PTR = &commonphysicalchannelid
%(DEFAULT_BODY)s
+#.FN_BODY CommonTransportChannelID VAL_PTR = &commontransportchannelid
+%(DEFAULT_BODY)s
+
#.FN_BODY E-DCH-MACdFlow-ID VAL_PTR = &e_dch_macdflow_id
%(DEFAULT_BODY)s
@@ -610,6 +613,26 @@ transportFormatSet_type = CPCH;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
}
+#.FN_BODY PICH-Mode VAL_PTR = &PICH_Mode
+guint32 PICH_Mode = 0;
+%(DEFAULT_BODY)s
+
+ switch(PICH_Mode){
+ case 0: /* v18 */
+ paging_indications = 18;
+ break;
+ case 1: /* v36 */
+ paging_indications = 36;
+ break;
+ case 2: /* v72 */
+ paging_indications = 72;
+ break;
+ case 3: /* v144 */
+ paging_indications = 144;
+ break;
+ }
+
+
#.FN_BODY PCH-ParametersItem-CTCH-SetupRqstFDD
@@ -622,7 +645,6 @@ int i, j, num_tf;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
-transportFormatSet_type = CPCH;
/* There can only be one item, set num_items here to collect the TransportFormatSet data */
num_items = 1;
@@ -653,33 +675,34 @@ num_items = 1;
if(actx->pinfo->link_dir==P2P_DIR_DL){
umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t);
/* Fill in the data */
- umts_fp_conversation_info->iface_type = IuB_Interface;
- umts_fp_conversation_info->division = Division_FDD;
- umts_fp_conversation_info->channel = CHANNEL_PCH;
- umts_fp_conversation_info->dl_frame_number = 0;
- umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num;
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_PCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num;
SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &dst_addr);
- umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->paging_indications = paging_indications;
/* DCH's in this flow */
umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
/* Set data for First or single channel */
- umts_fp_conversation_info->fp_dch_chanel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans;
+ umts_fp_conversation_info->fp_dch_chanel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_ul_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[j];
}
/* Traffic flows per DCH(DL) */
- umts_fp_conversation_info->fp_dch_chanel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans;
+ umts_fp_conversation_info->fp_dch_chanel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_dl_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[j];
}
/* Set data for associated DCH's if we have any */
- i = commonphysicalchannelid;
- umts_fp_conversation_info->dchs_in_flow_list[0] = commonphysicalchannelid;
+ i = commontransportchannelid;
+ umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid;
while(nbap_dch_chnl_info[i].next_dch != 0){
i = nbap_dch_chnl_info[i].next_dch;
umts_fp_conversation_info->num_dch_in_flow++;
@@ -824,9 +847,9 @@ transportFormatSet_type = CPCH;
nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
#.FN_HDR PCH-ParametersItem-CTCH-SetupRqstFDD/transportFormatSet
- transportFormatSet_type = CPCH;
- nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans = 0;
- nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans = 0;
+ transportFormatSet_type = PCH;
+ nbap_dch_chnl_info[commontransportchannelid].num_dl_chans = 0;
+ nbap_dch_chnl_info[commontransportchannelid].num_ul_chans = 0;
#.FN_HDR TransportFormatSet-DynamicPartList
@@ -857,6 +880,12 @@ guint32 NrOfTransportBlocks;
nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans++;
nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
break;
+ case PCH:
+ nbap_dch_chnl_info[commontransportchannelid].num_ul_chans++;
+ nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[commontransportchannelid].num_dl_chans++;
+ nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ break;
default:
break;
}
@@ -879,6 +908,10 @@ guint32 TransportBlockSize;
nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
break;
+ case PCH:
+ nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ break;
default:
break;
}
diff --git a/asn1/nbap/packet-nbap-template.c b/asn1/nbap/packet-nbap-template.c
index 7602e3b5a7..8e02b0c91d 100644
--- a/asn1/nbap/packet-nbap-template.c
+++ b/asn1/nbap/packet-nbap-template.c
@@ -135,7 +135,6 @@ nbap_edch_chanel_info_t nbap_edch_chanel_info[maxNrOfEDCHMACdFlows];
gint g_num_dch_in_flow;
/* maxNrOfTFs INTEGER ::= 32 */
gint g_dchs_in_flow_list[maxNrOfTFs];
-
struct _nbap_msg_info_for_fp g_nbap_msg_info_for_fp;
/* Global variables */
@@ -144,9 +143,10 @@ static guint32 ProtocolIE_ID;
static guint32 ddMode;
static const gchar *ProcedureID;
static guint32 t_dch_id, dch_id, prev_dch_id, commonphysicalchannelid, e_dch_macdflow_id, hsdsch_macdflow_id, e_dch_ddi_value;
-static guint32 MACdPDU_Size;
+static guint32 MACdPDU_Size, commontransportchannelid;
static guint num_items;
static gboolean show_conv_data_collection = TRUE;
+static gint paging_indications;
enum TransportFormatSet_type_enum
{
@@ -154,6 +154,7 @@ enum TransportFormatSet_type_enum
DCH_DL,
CPCH,
FACH,
+ PCH,
};
enum TransportFormatSet_type_enum transportFormatSet_type;