diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-07-26 08:15:20 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-07-26 08:15:20 +0000 |
commit | aed65b0c7b2bf94aaf60805b26c84d9c511249dc (patch) | |
tree | 411e000b270d409943a480c9a60996c9790c7968 /asn1/rrc/rrc.cnf | |
parent | 65ebfc9db449b0ef759a295bd94dca17f3eb43ae (diff) | |
download | wireshark-aed65b0c7b2bf94aaf60805b26c84d9c511249dc.tar.gz wireshark-aed65b0c7b2bf94aaf60805b26c84d9c511249dc.tar.bz2 wireshark-aed65b0c7b2bf94aaf60805b26c84d9c511249dc.zip |
From Jacob Nordgren and Rishie Sharma:
- RRC now configures logical channels in HS-DSCH hs, and some HSDSCH common support added
- RLC: modifed memory management, MAC: dch would set the incorrect logical channel for RLC
svn path=/trunk/; revision=44027
Diffstat (limited to 'asn1/rrc/rrc.cnf')
-rw-r--r-- | asn1/rrc/rrc.cnf | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/asn1/rrc/rrc.cnf b/asn1/rrc/rrc.cnf index 4ab1f1111a..a5925a67a0 100644 --- a/asn1/rrc/rrc.cnf +++ b/asn1/rrc/rrc.cnf @@ -656,5 +656,70 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE } rrc_nas_sys_info_gsm_map_type = RRC_NAS_SYS_INFO_CN_COMMON; +/*Here we try to figure out which HS-DSCH channels are multiplexed*/ +/*TODO: Should this also be made under r7?*/ +#.FN_BODY DL-TransportChannelType-r5 VAL_PTR = &type + + gint *flowd_p; + gint *cur_val=NULL; + guint16 hr=0; + + %(DEFAULT_BODY)s + + /*TODO: This should probably be done better*/ + if(type == 4){ /*If this is type HS-DSCH*/ + num_chans_per_flow[flowd]++; + + + if(num_chans_per_flow[flowd] > 1 ){ + + if(hrnti == NULL){ + expert_add_info_format(actx->pinfo, NULL, PI_MALFORMED, PI_WARN, "Did not detect any H-RNTI "); + } + else{ + /*Read the H-RNTI value*/ + hr = tvb_get_bits16(hrnti,0,16,FALSE); + } + /*If it doesnt exists, insert it*/ + if( (cur_val=g_tree_lookup(hsdsch_muxed_flows, GINT_TO_POINTER((gint)hr))) == NULL ){ + + flowd_p = (guint*)g_malloc0(sizeof(gint*)); + *flowd_p = (1<<flowd); /*Set the bit to mark it as true*/ + g_tree_insert(hsdsch_muxed_flows, GINT_TO_POINTER((gint)hr), flowd_p); + + }else{ + *cur_val = (1<<flowd) | *cur_val; + + } + + } + + } + + +#.FN_BODY DL-LogicalChannelMapping-r5 + + %(DEFAULT_BODY)s + +#.FN_BODY DL-LogicalChannelMapping-r7 + + %(DEFAULT_BODY)s +#.FN_BODY LogicalChannelIdentity + + %(DEFAULT_BODY)s + +#.FN_BODY MAC-d-FlowIdentity VAL_PTR = &flowd + %(DEFAULT_BODY)s + +#.FN_BODY SRB_InformationSetupList2_r6 + + %(DEFAULT_BODY)s + /*Clear memory*/ + memset(num_chans_per_flow,0,sizeof(guint8)); + +#.FN_BODY H_RNTI VAL_PTR = &hrnti + + + #.END |