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:
parent
f7b0c35663
commit
5ddbeb2cb8
|
@ -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 */
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue