From Lei Chen:

patch to support "Additional MS Radio Access Capability" and "Packet Pause" in packet-gsm_rlcmac.c
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6133

svn path=/trunk/; revision=38136
This commit is contained in:
Anders Broman 2011-07-20 22:07:31 +00:00
parent 0a65432f96
commit 4b692c92c8
2 changed files with 124 additions and 2 deletions

View File

@ -994,6 +994,17 @@ static int hf_packet_physicalinformation_pagemode;
static int hf_packet_physicalinformation_timingadvance;
/*< End Packet Physical Information > */
/* < Additinal MS Radio Access Capability */
static int hf_additionalmsradcap_tlli;
/* < End Additinal MS Radio Access Capability */
/* < Packet Pause > */
static int hf_packet_pause_message_type;
static int hf_packet_pause_tlli;
/* < End Packet Pause > */
static int hf_si1_restoctet_nch_position;
static int hf_si1_restoctet_bandindicator;
static int hf_selection_parameters_cbq;
@ -1020,6 +1031,7 @@ static int hf_si6_restoctet_rac;
static int hf_si6_restoctet_max_lapdm;
static int hf_si6_restoctet_bandindicator;
/* Payload type as defined in TS 44.060 / 10.4.7 */
#define PAYLOAD_TYPE_DATA 0
#define PAYLOAD_TYPE_CTRL_NO_OPT_OCTET 1
@ -4572,6 +4584,51 @@ CSN_DESCR_END (Packet_PhysicalInformation_t)
/*< End Packet Physical Information > */
/*< ADDITIONAL MS RADIO ACCESS CAPABILITIES content > */
static const
CSN_ChoiceElement_t AdditionalMsRadAccessCapID[] =
{
{1, 0, M_TYPE(AdditionalMsRadAccessCapID_t, u.Global_TFI, Global_TFI_t)},
{1, 0x01, M_UINT(AdditionalMsRadAccessCapID_t, u.TLLI, 32, &hf_additionalmsradcap_tlli)},
};
static const
CSN_DESCR_BEGIN(AdditionalMsRadAccessCapID_t)
M_CHOICE (AdditionalMsRadAccessCapID_t, UnionType, AdditionalMsRadAccessCapID, ElementsOf(AdditionalMsRadAccessCapID)),
CSN_DESCR_END (AdditionalMsRadAccessCapID_t)
static const
CSN_DESCR_BEGIN (Additional_MS_Rad_Access_Cap_t)
/* Mac header */
M_UINT (Additional_MS_Rad_Access_Cap_t, PayloadType, 2, &hf_packet_resource_request_payloadtype),
M_UINT (Additional_MS_Rad_Access_Cap_t, spare, 5, &hf_packet_resource_request_spare),
M_UINT (Additional_MS_Rad_Access_Cap_t, R, 1, &hf_packet_resource_request_r),
M_UINT (Additional_MS_Rad_Access_Cap_t, MESSAGE_TYPE, 6, &hf_packet_resource_request_message_type),
/* Mac header */
M_TYPE (Additional_MS_Rad_Access_Cap_t, ID, AdditionalMsRadAccessCapID_t),
M_TYPE (Additional_MS_Rad_Access_Cap_t, MS_Radio_Access_capability, MS_Radio_Access_capability_t),
CSN_DESCR_END (Additional_MS_Rad_Access_Cap_t)
/*< End ADDITIONAL MS RADIO ACCESS CAPABILITIES > */
/*< Packet Pause content > */
static const
CSN_DESCR_BEGIN (Packet_Pause_t)
M_UINT (Packet_Pause_t, MESSAGE_TYPE, 2, &hf_packet_pause_message_type),
M_UINT (Packet_Pause_t, TLLI, 32, &hf_packet_pause_tlli),
M_BITMAP (Packet_Pause_t, RAI, 48),
CSN_DESCR_END (Packet_Pause_t)
/*< End Packet Pause > */
typedef char* MT_Strings_t;
static const MT_Strings_t szMT_Downlink[] = {
@ -4858,7 +4915,7 @@ dissect_gsm_rlcmac_uplink(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
}
case MT_PACKET_PAUSE:
{
ret = -1;
ret = csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Pause_t), tvb, &data->u.Packet_Pause, ett_gsm_rlcmac);
break;
}
case MT_PACKET_ENHANCED_MEASUREMENT_REPORT:
@ -4868,7 +4925,7 @@ dissect_gsm_rlcmac_uplink(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
}
case MT_ADDITIONAL_MS_RAC:
{
ret = -1;
ret = csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Additional_MS_Rad_Access_Cap_t), tvb, &data->u.Additional_MS_Rad_Access_Cap, ett_gsm_rlcmac);
break;
}
case MT_PACKET_CELL_CHANGE_NOTIFICATION:
@ -10480,6 +10537,29 @@ proto_register_gsm_rlcmac(void)
NULL, HFILL
}
},
/*< Additional MS Radio Access Capability message content > */
{ &hf_additionalmsradcap_tlli,
{ "TLLI", "gsm_rlcmac_ul.arac_tlli",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL
}
},
/*< End Additional MS Radio Access Capability> */
/*< Packet Pause message content > */
{ &hf_packet_pause_message_type,
{ "MessageType", "gsm_rlcmac_dl.packet_pause_messagetype",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL
}
},
{ &hf_packet_pause_tlli,
{ "TLLI", "gsm_rlcmac_ul.packet_pause_tlli",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL
}
},
/*< End Packet Pause> */
};

View File

@ -4100,6 +4100,46 @@ typedef struct
/* End Packet Physical Information */
/* ADDITIONAL MS RADIO ACCESS CAPABILITIES -----------------*/
typedef struct
{
guint8 UnionType;
union
{
Global_TFI_t Global_TFI;
guint32 TLLI;
} u;
} AdditionalMsRadAccessCapID_t;
typedef struct
{
guint8 MESSAGE_TYPE;
guint8 PayloadType;
guint8 spare;
guint8 R;
AdditionalMsRadAccessCapID_t ID;
MS_Radio_Access_capability_t MS_Radio_Access_capability;
} Additional_MS_Rad_Access_Cap_t;
/* End ADDITIONAL MS RADIO ACCESS CAPABILITIES */
/* Packet Pause -----------------*/
typedef struct
{
guint8 MESSAGE_TYPE;
guint32 TLLI;
guint8 RAI[48/8];
} Packet_Pause_t;
/* End Packet Pause */
/*
< NC Measurement Parameters struct > ::=
< NETWORK_CONTROL_ORDER : bit (2) >
@ -4246,6 +4286,8 @@ typedef struct
Packet_Enh_Measurement_Report_t Packet_Enh_Measurement_Report;
Packet_Cell_Change_Notification_t Packet_Cell_Change_Notification;
Packet_SI_Status_t Packet_SI_Status;
Additional_MS_Rad_Access_Cap_t Additional_MS_Rad_Access_Cap;
Packet_Pause_t Packet_Pause;
} u;
gint16 NrOfBits;
} RlcMacUplink_t;