From Rene Pilz,

In the bssgp an IE was decoded as mobile identity and should be decoded as (p)tmsi only.

The patch is attached to this email. It also consists the new atm patch which was send yesterday.


svn path=/trunk/; revision=16146
This commit is contained in:
Anders Broman 2005-10-06 20:01:25 +00:00
parent f7b0c35663
commit 5ddbeb2cb8
2 changed files with 45 additions and 1 deletions

View File

@ -123,6 +123,7 @@ static gint ett_bssgp_msrac_multislot_capability = -1;
static gint ett_bssgp_feature_bitmap = -1;
static gint ett_bssgp_positioning_data = -1;
static gint ett_bssgp_tlli = -1;
static gint ett_bssgp_tmsi_ptmsi = -1;
/* PDU type coding, v6.5.0, table 11.3.26, p 80 */
#define BSSGP_PDU_DL_UNITDATA 0x00
@ -2814,6 +2815,33 @@ decode_iei_tlli(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) {
decode_nri(bi->bssgp_tree, bi, tlli);
}
static void
decode_iei_tmsi(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) {
proto_item *ti;
proto_tree *tf;
guint32 tmsi;
tmsi = tvb_get_ntohl(bi->tvb, bi->offset);
if (bi->bssgp_tree) {
ti = bssgp_proto_tree_add_ie(ie, bi, ie_start_offset);
proto_item_append_text(ti, ": %#04x", tmsi);
ti = bssgp_proto_tree_add_ie(ie, bi, bi->offset);
tf = proto_item_add_subtree(ti, ett_bssgp_tmsi_ptmsi);
proto_tree_add_item(tf, hf_bssgp_tmsi_ptmsi,
bi->tvb, bi->offset, 4, BSSGP_LITTLE_ENDIAN);
}
bi->offset += 4;
if (check_col(bi->pinfo->cinfo, COL_INFO)) {
col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP,
"(P)TMSI %#4x", tmsi);
}
decode_nri(bi->bssgp_tree, bi, tmsi);
}
static void
decode_iei_trigger_id(bssgp_ie_t *ie, build_info_t *bi, int ie_start_offset) {
/* XXX: value is 20 octets long! How add/show? */
@ -4227,7 +4255,7 @@ decode_ie(bssgp_ie_t *ie, build_info_t *bi) {
decode_iei_tlli(ie, bi, org_offset);
break;
case BSSGP_IEI_TMSI:
decode_mobile_identity(ie, bi, org_offset);
decode_iei_tmsi(ie, bi, org_offset);
break;
case BSSGP_IEI_TRACE_REFERENCE:
decode_simple_ie(ie, bi, org_offset, "", "", TRUE);
@ -5792,6 +5820,7 @@ proto_register_bssgp(void)
&ett_bssgp_msrac_a5_bits,
&ett_bssgp_msrac_multislot_capability,
&ett_bssgp_tlli,
&ett_bssgp_tmsi_ptmsi,
};
/* Register the protocol name and description */

View File

@ -81,6 +81,21 @@ atm_guess_traffic_type(const guint8 *pd, guint32 len,
* multiplexed RFC 1483 traffic.
*/
pseudo_header->atm.type = TRAF_LLCMX;
} else if (pseudo_header->atm.aal5t_len < 14) {
/*
* As this cannot be an ethernet frame
* (less than 14 bytes) we can try it
* as a SSCOP frame
*/
pseudo_header->atm.aal = AAL_SIGNALLING;
} else if (pd[0] == 0x83 || pd[0] == 0x81) {
/*
* MTP3b headers often encapsulate
* a SCCP or MTN in the 3G network.
* This should cause 0x83 or 0x81
* in the first byte.
*/
pseudo_header->atm.aal = AAL_SIGNALLING;
} else {
/*
* Assume it's LANE.