forked from osmocom/wireshark
Update towards 48.008 8.4.0
svn path=/trunk/; revision=26558
This commit is contained in:
parent
e6eaa7c82e
commit
799b8635f3
|
@ -314,6 +314,7 @@ static int hf_gsm_a_bssmap_ch_mode = -1;
|
|||
static int hf_gsm_a_bssmap_be_rnc_id = -1;
|
||||
static int hf_gsm_a_bssmap_apdu_protocol_id = -1;
|
||||
static int hf_gsm_a_bssmap_periodicity = -1;
|
||||
static int hf_gsm_a_bssmap_lcs_pri = -1;
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_bssmap_msg = -1;
|
||||
|
@ -409,7 +410,7 @@ typedef enum
|
|||
BE_LCS_CLIENT, /. LCS Client Type ./
|
||||
BE_APDU, /. APDU ./
|
||||
BE_NE_ID, /. Network Element Identity ./
|
||||
BE_GSP_ASSIST_DATA, /. GPS Assistance Data ./
|
||||
BE_GPS_ASSIST_DATA, /. GPS Assistance Data ./
|
||||
BE_DECIPH_KEYS, /. Deciphering Keys ./
|
||||
BE_RET_ERR_REQ, /. Return Error Request ./
|
||||
BE_RET_ERR_CAUSE, /. Return Error Cause ./
|
||||
|
@ -2130,12 +2131,67 @@ be_speech_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
|
|||
* 3.2.2.60 LCS QoS
|
||||
* (The QoS octets 3 to n are coded in the same way as the equivalent octets
|
||||
* in the LCS QoS element of 3GPP TS 49.031.)
|
||||
*/
|
||||
static guint8
|
||||
be_lcs_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
/*
|
||||
proto_tree_add_item(tree, hf_gsm_a_rr_chnl_needed_ch1, tvb, curr_offset, 1, FALSE);
|
||||
*/
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* 3.2.2.61 LSA Access Control Suppression
|
||||
*/
|
||||
/*
|
||||
* 3.2.2.62 LCS Priority
|
||||
* The Priority octets 3 to n are coded in the same way as the equivalent octets
|
||||
* in the LCS Priority element of 3GPP TS 49.031.
|
||||
*/
|
||||
/* Location Information definitions */
|
||||
static const value_string lcs_priority_vals[] = {
|
||||
{ 0, "highest" },
|
||||
{ 1, "normal" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static guint8
|
||||
be_lcs_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
/* This octet is coded as the LCS-Priority octet in 3GPP TS 29.002 */
|
||||
proto_tree_add_item(tree, hf_gsm_a_bssmap_lcs_pri, tvb, curr_offset, 1, FALSE);
|
||||
|
||||
return(len);
|
||||
}
|
||||
|
||||
/*
|
||||
* 3.2.2.63 Location Type (Location Type element of 3GPP TS 49.031 BSSAP-LE.)
|
||||
*/
|
||||
static guint8
|
||||
be_loc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
/*
|
||||
proto_tree_add_item(tree, hf_gsm_a_rr_chnl_needed_ch1, tvb, curr_offset, 1, FALSE);
|
||||
*/
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
|
||||
return(len);
|
||||
}
|
||||
|
||||
/*
|
||||
* 3.2.2.64 Location Estimate
|
||||
* The Location Estimate field is composed of 1 or more octets with an internal structure
|
||||
|
@ -2177,10 +2233,34 @@ be_pos_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
|
|||
* 3.2.2.66 LCS Cause
|
||||
* LCS Cause element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*/
|
||||
static guint8
|
||||
be_lcs_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* 3.2.2.67 LCS Client Type
|
||||
* LCS Client Type element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*/
|
||||
static guint8
|
||||
be_lcs_client(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* 3.2.2.68 3GPP TS 48.008 version 6.9.0 Release 6
|
||||
*/
|
||||
|
@ -2254,14 +2334,29 @@ be_apdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
|
|||
/*
|
||||
* 3.2.2.69 Network Element Identity
|
||||
* Network Element Identity element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*/
|
||||
/*
|
||||
* 3.2.2.70 GPS Assistance Data
|
||||
* Requested GPS Data element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*
|
||||
*/
|
||||
static guint8
|
||||
be_gps_assist_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* 3.2.2.71 Deciphering Keys
|
||||
* Deciphering Key element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
|
||||
static guint8
|
||||
be_decihp_keys(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
|
@ -2276,14 +2371,67 @@ be_decihp_keys(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
|
|||
|
||||
return(len);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 3.2.2.72 Return Error Request
|
||||
* Return Error Request element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*/
|
||||
static guint8
|
||||
be_ret_err_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* 3.2.2.73 Return Error Cause
|
||||
* Return Error Cause element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*/
|
||||
static guint8
|
||||
be_ret_err_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* 3.2.2.74 Segmentation
|
||||
* Segmentation element of 3GPP TS 49.031 BSSAP-LE.
|
||||
*/
|
||||
static guint8
|
||||
be_seg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* 3.2.2.75 Service Handover
|
||||
*/
|
||||
static guint8
|
||||
be_serv_ho(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset+1, len -1, "Not decoded yet");
|
||||
|
||||
return(len);
|
||||
}
|
||||
|
||||
/*
|
||||
* 3.2.2.76 Source RNC to target RNC transparent information (UMTS)
|
||||
* 3.2.2.77 Source RNC to target RNC transparent information (cdma2000)
|
||||
* 3.2.2.78 GERAN Classmark
|
||||
|
@ -2337,7 +2485,7 @@ guint8 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
|
|||
NULL, /* Reserved */
|
||||
NULL, /* Reserved */
|
||||
de_ms_cm_2, /* Classmark Information Type 2 */
|
||||
NULL, /* Classmark Information Type 3 */
|
||||
de_ms_cm_3, /* Classmark Information Type 3 */
|
||||
NULL, /* Interference Band To Be Used */
|
||||
de_rr_cause, /* RR Cause */
|
||||
NULL, /* Reserved */
|
||||
|
@ -2380,21 +2528,59 @@ guint8 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
|
|||
NULL, /* LSA Identifier */
|
||||
NULL, /* LSA Identifier List */
|
||||
NULL, /* LSA Information */
|
||||
NULL, /* LCS QoS */
|
||||
be_lcs_qos, /* LCS QoS */
|
||||
NULL, /* LSA access control suppression */
|
||||
NULL, /* LCS Priority */
|
||||
NULL, /* Location Type */
|
||||
be_lcs_prio, /* LCS Priority */
|
||||
be_loc_type, /* Location Type */
|
||||
be_loc_est, /* Location Estimate */
|
||||
be_pos_data, /* Positioning Data */
|
||||
NULL, /* LCS Cause */
|
||||
NULL, /* LCS Client Type */
|
||||
be_lcs_cause, /* LCS Cause */
|
||||
be_lcs_client, /* LCS Client Type */
|
||||
be_apdu, /* APDU */
|
||||
NULL, /* Network Element Identity */
|
||||
NULL, /* GPS Assistance Data */
|
||||
NULL, /* Deciphering Keys */
|
||||
NULL, /* Return Error Request */
|
||||
NULL, /* Return Error Cause */
|
||||
NULL, /* Segmentation */
|
||||
be_gps_assist_data, /* GPS Assistance Data */
|
||||
be_decihp_keys, /* Deciphering Keys */
|
||||
be_ret_err_req, /* Return Error Request */
|
||||
be_ret_err_cause, /* Return Error Cause */
|
||||
be_seg, /* Segmentation */
|
||||
be_serv_ho, /* Service Handover */
|
||||
NULL, /* Source RNC to target RNC transparent information (UMTS) */
|
||||
NULL, /* Source RNC to target RNC transparent information (cdma2000) */
|
||||
NULL, /* GERAN Classmark */
|
||||
NULL, /* GERAN BSC Container */
|
||||
NULL, /* New BSS to Old BSS Information */
|
||||
NULL, /* Inter-System Information */
|
||||
NULL, /* SNA Access Information */
|
||||
NULL, /* VSTK_RAND Information */
|
||||
NULL, /* VSTK Information */
|
||||
NULL, /* Paging Information */
|
||||
NULL, /* IMEI */
|
||||
NULL, /* Velocity Estimate */
|
||||
NULL, /* VGCS Feature Flags */
|
||||
NULL, /* Talker Priority */
|
||||
NULL, /* Emergency Set Indication */
|
||||
NULL, /* Talker Identity */
|
||||
NULL, /* Cell Identifier List Segment */
|
||||
NULL, /* SMS to VGCS */
|
||||
NULL, /* VGCS Talker Mode */
|
||||
NULL, /* VGCS/VBS Cell Status */
|
||||
NULL, /* Cell Identifier List Segment for established cells */
|
||||
NULL, /* Cell Identifier List Segment for cells to be established */
|
||||
NULL, /* Cell Identifier List Segment for released cells - no user present */
|
||||
NULL, /* Cell Identifier List Segment for not established cells - no establishment possible */
|
||||
NULL, /* GANSS Assistance Data */
|
||||
NULL, /* GANSS Positioning Data */
|
||||
NULL, /* GANSS Location Type */
|
||||
NULL, /* Application Data */
|
||||
NULL, /* Data Identity */
|
||||
NULL, /* Application Data Information */
|
||||
NULL, /* MSISDN */
|
||||
NULL, /* AoIP Transport Layer Address */
|
||||
NULL, /* Speech Codec List */
|
||||
NULL, /* Speech Codec */
|
||||
NULL, /* Call Identifier */
|
||||
NULL, /* Call Identifier List */
|
||||
|
||||
NULL, /* NONE */
|
||||
};
|
||||
|
||||
|
@ -3264,7 +3450,7 @@ bssmap_cl3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
/* LSA Identifier List 3.2.2.16 BSS-MSC O (note 2) 3+3n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_LSA_ID_LIST].value, BSSAP_PDU_TYPE_BSSMAP, BE_LSA_ID_LIST, "");
|
||||
|
||||
/* PADU 3.2.2.68 BSS-MSC O (note 3) 3-n */
|
||||
/* APDU 3.2.2.68 BSS-MSC O (note 3) 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_APDU].value, BSSAP_PDU_TYPE_BSSMAP, BE_APDU, "");
|
||||
|
||||
/* Codec List (BSS Supported) 3.2.2.103 BSS-MSC O (note 4) 3-n */
|
||||
|
@ -3617,8 +3803,10 @@ Cell Identifier List Segment
|
|||
*
|
||||
Channel Type 3.2.2.11 BSS-MSC M (note 3, 4) 5
|
||||
Cell Identifier 3.2.2.17 BSS-MSC M 3-10
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
Chosen Channel 3.2.2.33 BSS-MSC O (note 2) 2
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_CHOSEN_CHAN].value, BSSAP_PDU_TYPE_BSSMAP, BE_CHOSEN_CHAN, "");
|
||||
|
||||
Circuit Identity Code 3.2.2.2 BSS-MSC O (note 5) 3
|
||||
Circuit Pool 3.2.2.45 BSS-MSC O (note 1) 2
|
||||
*
|
||||
|
@ -3793,22 +3981,42 @@ bssmap_conn_oriented(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
/*
|
||||
* 3.2.1.71 PERFORM LOCATION REQUEST
|
||||
*/
|
||||
/*
|
||||
Location Type 3.2.2.63 M 3-n
|
||||
Cell Identifier 3.2.2.17 O 5-10
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
Classmark Information Type 3 3.2.2.20 O 3-14
|
||||
LCS Client Type 3.2.2.67 C (note 3) 3-n
|
||||
Chosen Channel 3.2.2.33 O 2
|
||||
LCS Priority 3.2.2.62 O 3-n
|
||||
LCS QoS 3.2.2.60 C (note 1) 3-n
|
||||
GPS Assistance Data 3.2.2.70 C (note 2) 3-n
|
||||
APDU 3.2.2.68 O 3-n
|
||||
IMSI 3.2.2.6 O (note 4) 5-10
|
||||
IMEI 3.2.2.86 O (note 4) 10
|
||||
GANSS Location Type 3.2.2.97 C 3
|
||||
GANSS Assistance Data 3.2.2.95 C (note 5) 3-n
|
||||
*/
|
||||
static void
|
||||
bssmap_perf_loc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
guint32 consumed;
|
||||
guint curr_len;
|
||||
|
||||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
/* Location Type 3.2.2.63 M 3-n */
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_LOC_TYPE].value, BSSAP_PDU_TYPE_BSSMAP, BE_LOC_TYPE , "");
|
||||
/* Cell Identifier 3.2.2.17 O 5-10 */
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
/* Classmark Information Type 3 3.2.2.20 O 3-14 */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_CM_INFO_3].value, BSSAP_PDU_TYPE_BSSMAP, BE_CM_INFO_3, "");
|
||||
/* LCS Client Type 3.2.2.67 C (note 3) 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_LCS_CLIENT].value, BSSAP_PDU_TYPE_BSSMAP, BE_LCS_CLIENT, "");
|
||||
/* Chosen Channel 3.2.2.33 O 2 */
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_CHOSEN_CHAN].value, BSSAP_PDU_TYPE_BSSMAP, BE_CHOSEN_CHAN, "");
|
||||
/* LCS Priority 3.2.2.62 O 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_LCS_PRIO].value, BSSAP_PDU_TYPE_BSSMAP, BE_LCS_PRIO, "");
|
||||
/* LCS QoS 3.2.2.60 C (note 1) 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_LCS_QOS].value, BSSAP_PDU_TYPE_BSSMAP, BE_LCS_QOS, "");
|
||||
/* GPS Assistance Data 3.2.2.70 C (note 2) 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_GPS_ASSIST_DATA].value, BSSAP_PDU_TYPE_BSSMAP, BE_GPS_ASSIST_DATA, "");
|
||||
/* APDU 3.2.2.68 O 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_APDU].value, BSSAP_PDU_TYPE_BSSMAP, BE_APDU, "");
|
||||
/* IMSI 3.2.2.6 O (note 4) 5-10 */
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_IMSI].value, BSSAP_PDU_TYPE_BSSMAP, BE_IMSI, "");
|
||||
/* IMEI 3.2.2.86 O (note 4) 10 */
|
||||
/* GANSS Location Type 3.2.2.97 C 3 */
|
||||
/* GANSS Assistance Data 3.2.2.95 C (note 5) 3-n */
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
/*
|
||||
* 3.2.1.72 PERFORM LOCATION RESPONSE
|
||||
*/
|
||||
|
@ -3829,6 +4037,7 @@ bssmap_perf_loc_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
/* Deciphering Keys 3.2.2.71 C (note 2) 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_DECIPH_KEYS].value, BSSAP_PDU_TYPE_BSSMAP, BE_DECIPH_KEYS, "");
|
||||
/* LCS Cause 3.2.2.66 C (note 3) 3-n */
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_LCS_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_LCS_CAUSE, "");
|
||||
/* Velocity Estimate 3.2.2.87 O 3-n */
|
||||
/* GANSS Positioning Data 3.2.2.96 O 3-n */
|
||||
|
||||
|
@ -3837,9 +4046,22 @@ bssmap_perf_loc_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
/*
|
||||
* 3.2.1.73 PERFORM LOCATION ABORT
|
||||
*/
|
||||
/*
|
||||
LCS Cause 3.2.2.66 M 3-n
|
||||
*/
|
||||
static void
|
||||
bssmap_perf_loc_abort(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
guint32 consumed;
|
||||
guint curr_len;
|
||||
|
||||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
/* LCS Cause 3.2.2.66 M 3-n */
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_LCS_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_LCS_CAUSE, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* 3.2.1.74 CONNECTIONLESS INFORMATION
|
||||
*/
|
||||
|
@ -3977,10 +4199,10 @@ static void (*bssmap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
|
|||
NULL, /* Suspend */
|
||||
NULL, /* Resume */
|
||||
bssmap_conn_oriented, /* Connection Oriented Information */
|
||||
NULL, /* Perform Location Request */
|
||||
bssmap_perf_loc_req, /* Perform Location Request */
|
||||
bssmap_lsa_info, /* LSA Information */
|
||||
bssmap_perf_loc_res, /* Perform Location Response */
|
||||
NULL, /* Perform Location Abort */
|
||||
bssmap_perf_loc_abort, /* Perform Location Abort */
|
||||
bssmap_common_id, /* Common Id */
|
||||
bssmap_reset, /* Reset */
|
||||
NULL /* no associated data */, /* Reset Acknowledge */
|
||||
|
@ -4226,6 +4448,11 @@ proto_register_gsm_a_bssmap(void)
|
|||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Periodicity", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_bssmap_lcs_pri,
|
||||
{ "Periodicity", "gsm_a_bssmap.lcs_pri",
|
||||
FT_UINT8, BASE_DEC, VALS(lcs_priority_vals), 0x0,
|
||||
"Periodicity", HFILL }
|
||||
},
|
||||
};
|
||||
|
||||
/* Setup protocol subtree array */
|
||||
|
|
|
@ -169,6 +169,31 @@ static const value_string CMSP_vals[] = {
|
|||
{ 1, "Network initiated MO CM connection request supported for at least one CM protocol"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* A5/4 algorithm supported */
|
||||
static const value_string A5_7_algorithm_sup_vals[] = {
|
||||
{ 0, "encryption algorithm A5/7 not available"},
|
||||
{ 1, "encryption algorithm A5/7 available"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* A5/4 algorithm supported */
|
||||
static const value_string A5_6_algorithm_sup_vals[] = {
|
||||
{ 0, "encryption algorithm A5/6 not available"},
|
||||
{ 1, "encryption algorithm A5/6 available"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* A5/5 algorithm supported */
|
||||
static const value_string A5_5_algorithm_sup_vals[] = {
|
||||
{ 0, "encryption algorithm A5/5 not available"},
|
||||
{ 1, "encryption algorithm A5/5 available"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* A5/4 algorithm supported */
|
||||
static const value_string A5_4_algorithm_sup_vals[] = {
|
||||
{ 0, "encryption algorithm A5/4 not available"},
|
||||
{ 1, "encryption algorithm A5/4 available"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* A5/3 algorithm supported (octet 5, bit 2) */
|
||||
static const value_string A5_3_algorithm_sup_vals[] = {
|
||||
{ 0, "encryption algorithm A5/3 not available"},
|
||||
|
@ -199,6 +224,32 @@ static const value_string oddevenind_vals[] = {
|
|||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string true_false_vals[] = {
|
||||
{ 0, "false" },
|
||||
{ 1, "true" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static const value_string gsm_a_sms_vals[] = {
|
||||
{0, "1/4 timeslot (~144 microseconds)" },
|
||||
{1, "2/4 timeslot (~288 microseconds)" },
|
||||
{2, "3/4 timeslot (~433 microseconds)" },
|
||||
{3, "4/4 timeslot (~577 microseconds)" },
|
||||
{4, "5/4 timeslot (~721 microseconds)" },
|
||||
{5, "6/4 timeslot (~865 microseconds)" },
|
||||
{6, "7/4 timeslot (~1009 microseconds)" },
|
||||
{7, "8/4 timeslot (~1154 microseconds)" },
|
||||
{8, "9/4 timeslot (~1298 microseconds)" },
|
||||
{9, "10/4 timeslot (~1442 microseconds)" },
|
||||
{10, "11/4 timeslot (~1586 microseconds)" },
|
||||
{11, "12/4 timeslot (~1730 microseconds)" },
|
||||
{12, "13/4 timeslot (~1874 microseconds)" },
|
||||
{13, "14/4 timeslot (~2019 microseconds)" },
|
||||
{14, "15/4 timeslot (~2163 microseconds)" },
|
||||
{15, "16/4 timeslot (~2307 microseconds)" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_a_common = -1;
|
||||
|
||||
|
@ -225,6 +276,10 @@ static int hf_gsm_a_LCS_VA_cap = -1;
|
|||
static int hf_gsm_a_UCS2_treatment = -1;
|
||||
static int hf_gsm_a_SoLSA = -1;
|
||||
static int hf_gsm_a_CMSP = -1;
|
||||
static int hf_gsm_a_A5_7_algorithm_sup= -1;
|
||||
static int hf_gsm_a_A5_6_algorithm_sup= -1;
|
||||
static int hf_gsm_a_A5_5_algorithm_sup= -1;
|
||||
static int hf_gsm_a_A5_4_algorithm_sup= -1;
|
||||
static int hf_gsm_a_A5_3_algorithm_sup= -1;
|
||||
static int hf_gsm_a_A5_2_algorithm_sup = -1;
|
||||
|
||||
|
@ -239,6 +294,22 @@ int hf_gsm_a_skip_ind = -1;
|
|||
|
||||
static int hf_gsm_a_b7spare = -1;
|
||||
int hf_gsm_a_b8spare = -1;
|
||||
static int hf_gsm_a_spare_bits = -1;
|
||||
static int hf_gsm_a_multi_bnd_sup_fields = -1;
|
||||
static int hf_gsm_a_pgsm_supported = -1;
|
||||
static int hf_gsm_a_egsm_supported = -1;
|
||||
static int hf_gsm_a_gsm1800_supported = -1;
|
||||
static int hf_gsm_a_ass_radio_cap1 = -1;
|
||||
static int hf_gsm_a_ass_radio_cap2 = -1;
|
||||
static int hf_gsm_a_rsupport = -1;
|
||||
static int hf_gsm_a_r_capabilities = -1;
|
||||
static int hf_gsm_a_multislot_capabilities = -1;
|
||||
static int hf_gsm_a_multislot_class = -1;
|
||||
static int hf_gsm_a_ucs2_treatment = -1;
|
||||
static int hf_gsm_a_extended_measurement_cap = -1;
|
||||
static int hf_gsm_a_ms_measurement_capability = -1;
|
||||
static int hf_gsm_a_sms_value =-1;
|
||||
static int hf_gsm_a_sm_value =-1;
|
||||
|
||||
static char a_bigbuf[1024];
|
||||
|
||||
|
@ -1199,7 +1270,8 @@ de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
|
|||
}
|
||||
|
||||
/*
|
||||
* [3] 10.5.1.6
|
||||
* [3] 10.5.1.6 Mobile Station Classmark 2
|
||||
* 3GPP TS 24.008 version 7.8.0 Release 7
|
||||
*/
|
||||
guint8
|
||||
de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
|
@ -1263,6 +1335,191 @@ de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
|
|||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/*
|
||||
* [3] 10.5.1.7 Mobile Station Classmark 3
|
||||
* 3GPP TS 24.008 version 7.8.0 Release 7
|
||||
*/
|
||||
guint8
|
||||
de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
guint32 bit_offset; /* Offset in bits */
|
||||
proto_tree *subtree;
|
||||
proto_item *item;
|
||||
guint64 multi_bnd_sup_fields,rsupport, multislotCapability, msMeasurementCapability;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
bit_offset = curr_offset << 3;
|
||||
|
||||
/* Spare bit */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
|
||||
/* Multiband supported field
|
||||
* { < Multiband supported : { 000 } >
|
||||
* < A5 bits >
|
||||
* | < Multiband supported : { 101 | 110 } >
|
||||
* < A5 bits >
|
||||
* < Associated Radio Capability 2 : bit(4) >
|
||||
* < Associated Radio Capability 1 : bit(4) >
|
||||
* | < Multiband supported : { 001 | 010 | 100 } >
|
||||
* < A5 bits >
|
||||
* < spare bit >(4)
|
||||
* < Associated Radio Capability 1 : bit(4) > }
|
||||
*/
|
||||
item = proto_tree_add_bits_ret_val(tree, hf_gsm_a_multi_bnd_sup_fields, tvb, bit_offset, 3, &multi_bnd_sup_fields, FALSE);
|
||||
subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_MS_CM_3]);
|
||||
|
||||
proto_tree_add_bits_item(subtree, hf_gsm_a_gsm1800_supported, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
|
||||
proto_tree_add_bits_item(subtree, hf_gsm_a_egsm_supported, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
|
||||
proto_tree_add_bits_item(subtree, hf_gsm_a_pgsm_supported, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
|
||||
/* < A5 bits > */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_A5_4_algorithm_sup, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_A5_5_algorithm_sup, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_A5_6_algorithm_sup, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
proto_tree_add_bits_item(subtree, hf_gsm_a_A5_7_algorithm_sup, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset++;
|
||||
|
||||
switch(multi_bnd_sup_fields){
|
||||
case 0:
|
||||
/* A5 bits dissected so done */
|
||||
break;
|
||||
/*
|
||||
* | < Multiband supported : { 001 | 010 | 100 } >
|
||||
*/
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
/* < spare bit >(4) */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, bit_offset, 4, FALSE);
|
||||
bit_offset+=4;
|
||||
/* < Associated Radio Capability 1 : bit(4) > */
|
||||
proto_tree_add_bits_item(subtree, hf_gsm_a_ass_radio_cap1, tvb, bit_offset, 4, FALSE);
|
||||
bit_offset+=4;
|
||||
break;
|
||||
/* < Multiband supported : { 101 | 110 } > */
|
||||
case 5:
|
||||
/* fall trough */
|
||||
case 6:
|
||||
/* < Associated Radio Capability 2 : bit(4) > */
|
||||
proto_tree_add_bits_item(subtree, hf_gsm_a_ass_radio_cap2, tvb, bit_offset, 4, FALSE);
|
||||
bit_offset+=4;
|
||||
/* < Associated Radio Capability 1 : bit(4) > */
|
||||
proto_tree_add_bits_item(subtree, hf_gsm_a_ass_radio_cap1, tvb, bit_offset, 4, FALSE);
|
||||
bit_offset+=4;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
/* Extract R Support */
|
||||
proto_tree_add_bits_ret_val(tree, hf_gsm_a_rsupport, tvb, bit_offset, 1, &rsupport, FALSE);
|
||||
bit_offset++;
|
||||
|
||||
if(rsupport == 1)
|
||||
{
|
||||
/*
|
||||
* { 0 | 1 < R Support > }
|
||||
* Extract R Capabilities
|
||||
*/
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_r_capabilities, tvb, bit_offset, 3, FALSE);
|
||||
bit_offset = bit_offset + 3;
|
||||
}
|
||||
|
||||
/*
|
||||
* { 0 | 1 < HSCSD Multi Slot Capability > }
|
||||
* Extract Multislot capability
|
||||
*/
|
||||
proto_tree_add_bits_ret_val(tree, hf_gsm_a_multislot_capabilities, tvb, bit_offset, 1, &multislotCapability, FALSE);
|
||||
bit_offset++;
|
||||
|
||||
if(multislotCapability == 1)
|
||||
{
|
||||
/* Extract Multislot Class */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_multislot_class, tvb, bit_offset, 5, FALSE);
|
||||
bit_offset = bit_offset + 5;
|
||||
}
|
||||
|
||||
/* < UCS2 treatment: bit > */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_ucs2_treatment, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
/* < Extended Measurement Capability : bit > */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_extended_measurement_cap, tvb, bit_offset, 1, FALSE);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
/* { 0 | 1 < MS measurement capability > }
|
||||
* Extract MS Measurement capability
|
||||
*/
|
||||
proto_tree_add_bits_ret_val(tree, hf_gsm_a_ms_measurement_capability, tvb, bit_offset, 1, &msMeasurementCapability, FALSE);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
if(msMeasurementCapability == 1)
|
||||
{
|
||||
/* Extract SMS Value n/4 */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_sms_value, tvb, bit_offset, 4, FALSE);
|
||||
bit_offset = bit_offset + 4;
|
||||
|
||||
/* Extract SM Value n/4 */
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_sm_value, tvb, bit_offset, 4, FALSE);
|
||||
bit_offset = bit_offset + 4;
|
||||
}
|
||||
|
||||
/*
|
||||
{ 0 | 1 < MS Positioning Method Capability > }
|
||||
{ 0 | 1 < ECSD Multi Slot Capability > }
|
||||
{ 0 | 1 < 8-PSK Struct > }
|
||||
{ 0 | 1 < GSM 400 Bands Supported : { 01 | 10 | 11 } >
|
||||
< GSM 400 Associated Radio Capability: bit(4) > }
|
||||
{ 0 | 1 <GSM 850 Associated Radio Capability : bit(4) > }
|
||||
{ 0 | 1 <GSM 1900 Associated Radio Capability : bit(4) > }
|
||||
< UMTS FDD Radio Access Technology Capability : bit >
|
||||
< UMTS 3.84 Mcps TDD Radio Access Technology Capability : bit >
|
||||
< CDMA 2000 Radio Access Technology Capability : bit >
|
||||
{ 0 | 1 < DTM GPRS Multi Slot Class : bit(2) >
|
||||
< Single Slot DTM : bit >
|
||||
{0 | 1< DTM EGPRS Multi Slot Class : bit(2) > } }
|
||||
{ 0 | 1 < Single Band Support > } -- Release 4 starts here:
|
||||
{ 0 | 1 <GSM 750 Associated Radio Capability : bit(4)>}
|
||||
< UMTS 1.28 Mcps TDD Radio Access Technology Capability : bit >
|
||||
< GERAN Feature Package 1 : bit >
|
||||
{ 0 | 1 < Extended DTM GPRS Multi Slot Class : bit(2) >
|
||||
< Extended DTM EGPRS Multi Slot Class : bit(2) > }
|
||||
{ 0 | 1 < High Multislot Capability : bit(2) > } ---Release 5 starts here.
|
||||
{ 0 | 1 < GERAN Iu Mode Capabilities > } -- "1" also means support of GERAN Iu mode
|
||||
< GERAN Feature Package 2 : bit >
|
||||
< GMSK Multislot Power Profile : bit (2) >
|
||||
< 8-PSK Multislot Power Profile : bit (2) >
|
||||
{ 0 | 1 < T-GSM 400 Bands Supported : { 01 | 10 | 11 } > -- Release 6 starts here.
|
||||
< T-GSM 400 Associated Radio Capability: bit(4) > }
|
||||
{ 0 | 1 < T-GSM 900 Associated Radio Capability: bit(4) > }
|
||||
< Downlink Advanced Receiver Performance : bit (2)>
|
||||
< DTM Enhancements Capability : bit >
|
||||
{ 0 | 1 < DTM GPRS High Multi Slot Class : bit(3) >
|
||||
< Offset required : bit>
|
||||
{ 0 | 1 < DTM EGPRS High Multi Slot Class : bit(3) > } }
|
||||
< Repeated ACCH Capability : bit >
|
||||
{ 0 | 1 <GSM 710 Associated Radio Capability : bit(4)>} -- Release 7 starts here.
|
||||
{ 0 | 1 <T-GSM 810 Associated Radio Capability : bit(4)>}
|
||||
< Ciphering Mode Setting Capability : bit >
|
||||
0 | 1 < Multislot Capability Reduction for Downlink Dual Carrier : bit (3) > } -- "1" also means that
|
||||
the mobile station supports dual carrier in the downlink during DTM
|
||||
< spare bits > ;
|
||||
*/
|
||||
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
|
||||
|
||||
return(len);
|
||||
}
|
||||
/*
|
||||
* [3] 10.5.1.8
|
||||
*/
|
||||
|
@ -1495,7 +1752,7 @@ guint8 (*common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
|
|||
de_mid, /* Mobile Identity */
|
||||
de_ms_cm_1, /* Mobile Station Classmark 1 */
|
||||
de_ms_cm_2, /* Mobile Station Classmark 2 */
|
||||
NULL, /* Mobile Station Classmark 3 */
|
||||
de_ms_cm_3, /* Mobile Station Classmark 3 */
|
||||
de_spare_nibble, /* Spare Half Octet */
|
||||
de_d_gb_call_ref, /* Descriptive group or broadcast call reference */
|
||||
NULL /* handled inline */, /* Group Cipher Key Number */
|
||||
|
@ -1616,6 +1873,26 @@ proto_register_gsm_a_common(void)
|
|||
FT_UINT8,BASE_DEC, VALS(CMSP_vals), 0x04,
|
||||
"CMSP: CM Service Prompt", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_A5_7_algorithm_sup,
|
||||
{ "A5/7 algorithm supported","gsm_a.A5_7_algorithm_sup",
|
||||
FT_UINT8,BASE_DEC, VALS(A5_7_algorithm_sup_vals), 0x0,
|
||||
"A5/7 algorithm supported", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_A5_6_algorithm_sup,
|
||||
{ "A5/6 algorithm supported","gsm_a.A5_6_algorithm_sup",
|
||||
FT_UINT8,BASE_DEC, VALS(A5_6_algorithm_sup_vals), 0x0,
|
||||
"A5/6 algorithm supported", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_A5_5_algorithm_sup,
|
||||
{ "A5/5 algorithm supported","gsm_a.A5_5_algorithm_sup",
|
||||
FT_UINT8,BASE_DEC, VALS(A5_5_algorithm_sup_vals), 0x0,
|
||||
"A5/5 algorithm supported", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_A5_4_algorithm_sup,
|
||||
{ "A5/4 algorithm supported","gsm_a.A5_4_algorithm_sup",
|
||||
FT_UINT8,BASE_DEC, VALS(A5_4_algorithm_sup_vals), 0x0,
|
||||
"A5/4 algorithm supported", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_A5_3_algorithm_sup,
|
||||
{ "A5/3 algorithm supported","gsm_a.A5_3_algorithm_sup",
|
||||
FT_UINT8,BASE_DEC, VALS(A5_3_algorithm_sup_vals), 0x02,
|
||||
|
@ -1676,6 +1953,74 @@ proto_register_gsm_a_common(void)
|
|||
FT_UINT8,BASE_DEC, NULL, 0x80,
|
||||
"Spare", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_spare_bits,
|
||||
{ "Spare bit(s)","gsm_a.spare_bits",
|
||||
FT_UINT8,BASE_DEC, NULL, 0x0,
|
||||
"Spare bit(s)", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_multi_bnd_sup_fields,
|
||||
{ "Multiband supported field","gsm_a.multi_bnd_sup_fields",
|
||||
FT_UINT8,BASE_DEC, NULL, 0x0,
|
||||
"Multiband supported field", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_pgsm_supported,
|
||||
{ "P-GSM Supported", "gsm_a.classmark3.pgsmSupported",
|
||||
FT_UINT8, BASE_DEC, VALS(true_false_vals), 0x0,"P-GSM Supported", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_egsm_supported,
|
||||
{ "E-GSM or R-GSM Supported", "gsm_a.classmark3.egsmSupported",
|
||||
FT_UINT8, BASE_DEC, VALS(true_false_vals), 0x0,"E-GSM or R-GSM Supported", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_gsm1800_supported,
|
||||
{ "GSM 1800 Supported", "gsm_a.classmark3.gsm1800Supported",
|
||||
FT_UINT8, BASE_DEC, VALS(true_false_vals), 0x0,"GSM 1800 Supported", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_ass_radio_cap1,
|
||||
{ "Associated Radio Capability 1", "gsm_a.classmark3.ass_radio_cap1",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,"Associated Radio Capability 1", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_ass_radio_cap2,
|
||||
{ "Associated Radio Capability 1", "gsm_a.classmark3.ass_radio_cap2",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,"Associated Radio Capability 1", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_rsupport,
|
||||
{ "R Support", "gsm_a.classmark3.rsupport",
|
||||
FT_UINT8, BASE_DEC, VALS(true_false_vals), 0x0,"R Support", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_r_capabilities,
|
||||
{ "R-GSM band Associated Radio Capability", "gsm_a.classmark3.r_capabilities",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,"R-GSM band Associated Radio Capability", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_multislot_capabilities,
|
||||
{ "HSCSD Multi Slot Capability", "gsm_a.classmark3.multislot_capabilities",
|
||||
FT_UINT8, BASE_DEC, VALS(true_false_vals), 0x0,"HSCSD Multi Slot Capability", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_multislot_class,
|
||||
{ "HSCSD Multi Slot Class", "gsm_a.classmark3.multislot_cap",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,"HSCSD Multi Slot Class", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_ucs2_treatment,
|
||||
{ "UCS2 treatment ","gsm_a.UCS2_treatment",
|
||||
FT_UINT8,BASE_DEC, VALS(UCS2_treatment_vals), 0x0,
|
||||
"UCS2 treatment ", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_extended_measurement_cap,
|
||||
{ "Extended Measurement Capability", "gsm_a.classmark3.ext_meas_cap",
|
||||
FT_UINT8, BASE_DEC, VALS(true_false_vals), 0x0,"Extended Measurement Capability", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_ms_measurement_capability,
|
||||
{ "MS measurement capability", "gsm_a.classmark3.ms_measurement_capability",
|
||||
FT_UINT8, BASE_DEC, VALS(true_false_vals), 0x0,"MS measurement capability", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_sms_value,
|
||||
{ "SMS_VALUE (Switch-Measure-Switch)", "gsm_a.classmark3.sms_value",
|
||||
FT_UINT8, BASE_DEC, VALS(gsm_a_sms_vals), 0x0,"SMS_VALUE (Switch-Measure-Switch)", HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_sm_value,
|
||||
{ "SM_VALUE (Switch-Measure", "gsm_a.classmark3.sm_value",
|
||||
FT_UINT8, BASE_DEC, VALS(gsm_a_sms_vals), 0x0,"SM_VALUE (Switch-Measure", HFILL}
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
/* Setup protocol subtree array */
|
||||
|
|
|
@ -465,6 +465,7 @@ guint8 de_bearer_cap_uplink(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
|
|||
|
||||
guint8 de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
|
||||
guint8 de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
|
||||
guint8 de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
|
||||
|
||||
guint8 de_sm_apn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
|
||||
guint8 de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
|
||||
|
@ -611,7 +612,7 @@ typedef enum
|
|||
BE_LCS_CLIENT, /* LCS Client Type */
|
||||
BE_APDU, /* APDU */
|
||||
BE_NE_ID, /* Network Element Identity */
|
||||
BE_GSP_ASSIST_DATA, /* GPS Assistance Data */
|
||||
BE_GPS_ASSIST_DATA, /* GPS Assistance Data */
|
||||
BE_DECIPH_KEYS, /* Deciphering Keys */
|
||||
BE_RET_ERR_REQ, /* Return Error Request */
|
||||
BE_RET_ERR_CAUSE, /* Return Error Cause */
|
||||
|
|
Loading…
Reference in New Issue