LTE RRC: upgrade dissector to v12.3.0

Change-Id: Iac974bf505bed270fc1f9409a7d61c80ebca17a5
Reviewed-on: https://code.wireshark.org/review/5691
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
Pascal Quantin 2014-12-09 23:46:05 +01:00
parent 4921e55990
commit 34cd063ae8
6 changed files with 5032 additions and 809 deletions

View File

@ -1,4 +1,4 @@
-- 3GPP TS 36.331 V11.8.0 (2014-06)
-- 3GPP TS 36.331 V12.3.0 (2014-09)
--
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
@ -8,6 +8,7 @@ IMPORTS
AntennaInfoCommon,
ARFCN-ValueEUTRA,
ARFCN-ValueEUTRA-v9e0,
ARFCN-ValueEUTRA-r9,
CellIdentity,
C-RNTI,
DL-DCCH-Message,
@ -29,7 +30,9 @@ IMPORTS
SystemInformationBlockType2,
UEAssistanceInformation-r11,
UECapabilityInformation,
UE-CapabilityRAT-ContainerList
UE-CapabilityRAT-ContainerList,
UE-RadioPagingInfo-r12,
WLAN-OffloadConfig-r12
FROM EUTRA-RRC-Definitions;
@ -90,6 +93,12 @@ HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE {
HandoverPreparationInformation-v1130-IEs ::= SEQUENCE {
as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v12xy-IEs OPTIONAL
}
HandoverPreparationInformation-v12xy-IEs ::= SEQUENCE {
ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3
as-Config-v12xy AS-Config-v12xy OPTIONAL, -- Cond HO2
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@ -113,6 +122,24 @@ UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
}
UERadioPagingInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioPagingInformation-r12-IEs ::= SEQUENCE {
ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
@ -140,6 +167,10 @@ AS-Config-v9e0 ::= SEQUENCE {
sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
}
AS-Config-v12xy ::= SEQUENCE {
sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
-- 3GPP TS 36.331 V11.8.0 (2014-06)
-- 3GPP TS 36.331 V12.3.0 (2014-09)
--
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
@ -33,7 +33,9 @@ IMPORTS
ReportConfigToAddModList,
RLF-Report-r9,
RSRP-Range,
TargetMBSFN-AreaList-r12,
TraceReference-r10,
VisitedCellInfoList-r12,
maxCellMeas,
maxMeasId
FROM EUTRA-RRC-Definitions;
@ -58,6 +60,14 @@ VarLogMeasConfig-r11 ::= SEQUENCE {
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasConfig-r12 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10,
targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL
}
VarLogMeasReport-r10 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
@ -122,6 +132,8 @@ CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
},
physCellIdCDMA2000 PhysCellIdCDMA2000
}
VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
VarRLF-Report-r10 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,

View File

@ -16,6 +16,7 @@ SupportedBandUTRA-FDD
T-PollRetransmit
T-Reordering
T-StatusProhibit
WLAN-backhaulRate
#.EXPORTS
HandoverCommand
@ -59,6 +60,10 @@ VarRLF-Report-r10
VarLogMeasConfig-r11
VarLogMeasReport-r11
VarRLF-Report-r11
VarLogMeasConfig-r12
VarMobilityHistoryReport-r12
UERadioPagingInformation
UERadioPagingInformation-r12-IEs
#.MAKE_ENUM
RAT-Type TYPE_PREFIX
@ -232,6 +237,16 @@ if(ue_cap_tvb){
proto_tree_add_bits_item(subtree, hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2, inter_band_tdd_ca_tvb, 1, 1, ENC_BIG_ENDIAN);
}
#.FN_BODY PhyLayerParameters-v12xy/tdd-FDD-CA-PCellDuplex-r12 VAL_PTR = &pcellduplex_tvb
tvbuff_t *pcellduplex_tvb=NULL;
proto_tree *subtree;
%(DEFAULT_BODY)s
if (pcellduplex_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12);
proto_tree_add_bits_item(subtree, hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1, pcellduplex_tvb, 0, 1, ENC_BIG_ENDIAN);
proto_tree_add_bits_item(subtree, hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2, pcellduplex_tvb, 1, 1, ENC_BIG_ENDIAN);
}
#.FN_BODY Handover
/* Initialise to invalid value */
private_data_set_rat_target_type(actx, 0xFF);
@ -691,6 +706,21 @@ SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11 TYPE = FT_UINT64
proto_tree_add_time(subtree, hf_lte_rrc_utc_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts);
proto_tree_add_time(subtree, hf_lte_rrc_local_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts);
#.TYPE_ATTR
WLAN-Id-r12/wlan-Identifiers/ssid TYPE=FT_STRING DISPLAY=STR_ASCII
#.FN_BODY WLAN-Id-r12/wlan-Identifiers/ssid VAL_PTR=&ssid_tvb HF_INDEX=-1
tvbuff_t *ssid_tvb = NULL;
%(DEFAULT_BODY)s
actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA);
#.TYPE_ATTR
WLAN-Id-r12/wlan-Identifiers/bssid TYPE=FT_ETHER
#.TYPE_ATTR
WLAN-Id-r12/wlan-Identifiers/hessid TYPE=FT_ETHER
#.FN_BODY RRCConnectionReject-r8-IEs/waitTime
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "s");
@ -813,6 +843,14 @@ CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPD
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY SPS-ConfigUL/setup/eag_1/p0-Persistent-SubframeSet2-r12/p0-NominalPUSCH-Persistent-SubframeSet2-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY SPS-ConfigUL/setup/eag_1/p0-Persistent-SubframeSet2-r12/p0-UE-PUSCH-Persistent-SubframeSet2-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.TYPE_ATTR
UplinkPowerControlCommon/deltaPreambleMsg3 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals)
@ -839,6 +877,14 @@ UplinkPowerControlCommonSCell-v11x0/deltaPreambleMsg3-r11 STRINGS=VALS(lte_rrc_d
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY UplinkPowerControlDedicated-v12x0/set2PowerControlParameter/setup/p0-NominalPUSCH-SubframeSet2-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY UplinkPowerControlDedicated-v12x0/set2PowerControlParameter/setup/p0-UE-PUSCH-SubframeSet2-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
@ -1009,6 +1055,10 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB16 ");
#.FN_HDR SystemInformationBlockType17-r12
col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17 ");
#.FN_HDR MBSFNAreaConfiguration-r9
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBSFNAreaConfiguration-r9");
@ -1250,15 +1300,22 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
set_mac_lte_channel_mapping(drb_mapping);
}
/* Also tell RLC how many PDCP sequence number bits */
if (drb_mapping->pdcp_sn_size_present) {
p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0);
if (p_rlc_lte_info) {
/* Also tell RLC how many PDCP sequence number bits and wether it should use extended LI */
p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0);
if (p_rlc_lte_info) {
if (drb_mapping->pdcp_sn_size_present) {
set_rlc_lte_drb_pdcp_seqnum_length(actx->pinfo,
p_rlc_lte_info->ueid,
drb_mapping->drbid,
drb_mapping->pdcp_sn_size);
}
if (drb_mapping->rlcMode_present) {
set_rlc_lte_drb_li_field(actx->pinfo,
p_rlc_lte_info->ueid,
drb_mapping->drbid,
drb_mapping->rlc_ul_ext_li_field,
drb_mapping->rlc_dl_ext_li_field);
}
}
/* Clear out the struct again */
@ -1287,6 +1344,22 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
}
}
#.FN_BODY UL-AM-RLC-r12/extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field
gboolean ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->rlc_ul_ext_li_field = ext_li_field;
}
#.FN_BODY DL-AM-RLC-r12/extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field
gboolean ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->rlc_dl_ext_li_field = ext_li_field;
}
#.FN_BODY DRB-ToAddMod/logicalChannelIdentity VAL_PTR=&value
guint32 value;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
@ -1361,6 +1434,9 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
/* Reset again */
private_data_set_ra_preambles(actx, 0);
#.FN_BODY RACH-ConfigCommon-v12xy/txFailParams-r12/connEstFailOffset-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY DRX-Config/setup/onDurationTimer VAL_PTR=&value
guint32 value;
@ -1645,3 +1721,18 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]",
val_to_str(value, lte_rrc_ReleaseCause_vals, "Unknown"));
#.FN_BODY VisitedCellInfo-r12/timeSpent-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "s");
#.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationLow-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, " (BSS load)");
#.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationHigh-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, " (BSS load)");
#.FN_BODY WLAN-backhaulRate
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, " Kbps");

View File

@ -1,7 +1,7 @@
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
* (3GPP TS 36.331 V11.8.0 Release 11) packet dissection
* (3GPP TS 36.331 V12.3.0 Release 12) packet dissection
* Copyright 2008, Vincent Helfre
* Copyright 2009-2014, Pascal Quantin
*
@ -188,6 +188,8 @@ static int hf_lte_rrc_warningMessageSegment_nb_pages = -1;
static int hf_lte_rrc_warningMessageSegment_decoded_page = -1;
static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1 = -1;
static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2 = -1;
static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1 = -1;
static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2 = -1;
static int hf_lte_rrc_sr_config_periodicity = -1;
static int hf_lte_rrc_sr_config_subframe_offset = -1;
static int hf_lte_rrc_cdma_time = -1;
@ -214,6 +216,7 @@ static gint ett_lte_rrc_warningType = -1;
static gint ett_lte_rrc_dataCodingScheme = -1;
static gint ett_lte_rrc_warningMessageSegment = -1;
static gint ett_lte_rrc_interBandTDD_CA_WithDifferentConfig = -1;
static gint ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12 = -1;
static gint ett_lte_rrc_sr_ConfigIndex = -1;
static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT;
@ -1828,6 +1831,16 @@ static const true_false_string lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2_
"SCell DL subframes are neither superset nor subset of PCell by SIB1 configuration - Not supported",
};
static const true_false_string lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1_val = {
"TDD PCell - Supported",
"TDD PCell - Not supported"
};
static const true_false_string lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2_val = {
"FDD PCell - Supported",
"FDD PCell - Not supported"
};
/*****************************************************************************/
/* Packet private data */
/* For this dissector, all access to actx->private_data should be made */
@ -2876,6 +2889,14 @@ void proto_register_lte_rrc(void) {
{ "Bit 2", "lte-rrc.interBandTDD_CA_WithDifferentConfig.bit2",
FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2_val), 0,
NULL, HFILL }},
{ &hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1,
{ "Bit 1", "lte-rrc.tdd_FDD_CA_PCellDuplex_r12.bit1",
FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1_val), 0,
NULL, HFILL }},
{ &hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2,
{ "Bit 2", "lte-rrc.tdd_FDD_CA_PCellDuplex_r12.bit2",
FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2_val), 0,
NULL, HFILL }},
{ &hf_lte_rrc_sr_config_periodicity,
{ "Periodicity", "lte-rrc.sr_Periodicity",
FT_UINT16, BASE_DEC, NULL, 0x0,
@ -2921,6 +2942,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_dataCodingScheme,
&ett_lte_rrc_warningMessageSegment,
&ett_lte_rrc_interBandTDD_CA_WithDifferentConfig,
&ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12,
&ett_lte_rrc_sr_ConfigIndex
};

File diff suppressed because it is too large Load Diff