LTE RRC: upgrade dissector to v13.0.0

Change-Id: Ie41471f79191097c491d58949c4e90b314cade04
Reviewed-on: https://code.wireshark.org/review/13300
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Pascal Quantin 2016-01-14 22:50:46 +01:00 committed by Anders Broman
parent 7bde1d70f2
commit 1ca29e5794
8 changed files with 14195 additions and 1804 deletions

View File

@ -1,4 +1,4 @@
-- 3GPP TS 36.331 V12.7.0 (2015-09)
-- 3GPP TS 36.331 V13.0.0 (2015-12)
--
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
@ -6,6 +6,7 @@ BEGIN
IMPORTS
AntennaInfoCommon,
AntennaInfoDedicated-v10i0,
ARFCN-ValueEUTRA,
ARFCN-ValueEUTRA-v9e0,
ARFCN-ValueEUTRA-r9,
@ -14,12 +15,18 @@ IMPORTS
DL-DCCH-Message,
DRB-Identity,
DRB-ToReleaseList,
FreqBandIndicator-r11,
InDeviceCoexIndication-r11,
MasterInformationBlock,
maxBands,
maxFreq,
maxDRB,
maxSCell-r10,
maxSCell-r13,
maxSCell-Plus1,
maxServCell-r10,
maxServCell-Plus1,
maxServCell-r13,
MBMSInterestIndication-r11,
MeasConfig,
MeasGapConfig,
@ -34,13 +41,19 @@ IMPORTS
RSRP-Range,
RSRQ-Range,
RSRQ-Range-v1250,
RS-SINR-Range-r13,
SCellToAddModList-r10,
SCellToAddModListExt-r13,
SCG-ConfigPartSCG-r12,
SecurityAlgorithmConfig,
SCellIndex-r10,
SCellIndex-r13,
SCellToReleaseList-r10,
SCellToReleaseListExt-r13,
ServCellIndex-r10,
ServCellIndexFull-r13,
ShortMAC-I,
MeasResultSSTD-r13,
SystemInformationBlockType1,
SystemInformationBlockType1-v890-IEs,
SystemInformationBlockType2,
@ -92,16 +105,30 @@ HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
ue-ConfigRelease-r9 ENUMERATED {
rel9, rel10, rel11, rel12, spare4, spare3,
spare2, spare1, ...} OPTIONAL, -- Cond HO2
rel9, rel10, rel11, rel12, v10j0, v11e0,
v1280, spare1, ...} OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL
}
HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE {
lateNonCriticalExtension OCTET STRING OPTIONAL,
lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL,
nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL
}
-- Late non-critical extensions:
HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE {
-- Following field is only for pre REL-10 late non-critical extensions
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL
}
HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE {
as-Config-v10j0 AS-Config-v10j0 OPTIONAL,
-- Following field is only for late non-critical extensions from REL-10
nonCriticalExtension SEQUENCE {} OPTIONAL
}
-- Regular non-critical extensions:
HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE {
as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL
@ -165,6 +192,14 @@ SCG-ConfigInfo-r12-IEs ::= SEQUENCE {
sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL,
sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL,
p-Max-r12 P-Max OPTIONAL,
nonCriticalExtension SCG-ConfigInfo-v13x0-IEs OPTIONAL
}
SCG-ConfigInfo-v13x0-IEs ::= SEQUENCE {
measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL,
measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL,
sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL,
sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@ -179,6 +214,8 @@ DRB-InfoSCG-r12 ::= SEQUENCE {
SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12
SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (maxSCell-Plus1..maxSCell-r13)) OF Cell-ToAddMod-r12
Cell-ToAddMod-r12 ::= SEQUENCE {
sCellIndex-r12 SCellIndex-r10,
cellIdentification-r12 SEQUENCE {
@ -189,18 +226,30 @@ Cell-ToAddMod-r12 ::= SEQUENCE {
rsrpResult-r12 RSRP-Range,
rsrqResult-r12 RSRQ-Range
} OPTIONAL, -- Cond SCellAdd2
...
...,
[[ sCellIndex-r13 SCellIndex-r13 OPTIONAL,
measResultCellToAdd-v13xy SEQUENCE {
rs-sinrResult-r13 RS-SINR-Range-r13
} OPTIONAL -- Cond SCellAdd2
]]
}
MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12
MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (maxServCell-Plus1..maxServCell-r13)) OF MeasResultServCellSCG-r12
MeasResultServCellSCG-r12 ::= SEQUENCE {
servCellId-r12 ServCellIndex-r10,
measResultSCell-r12 SEQUENCE {
rsrpResultSCell-r12 RSRP-Range,
rsrqResultSCell-r12 RSRQ-Range
},
...
...,
[[ servCellId-r13 ServCellIndexFull-r13 OPTIONAL,
measResultSCell-v13xy SEQUENCE {
rs-sinrResultSCell-r13 RS-SINR-Range-r13
} OPTIONAL
]]
}
SCG-ConfigRestrictInfo-r12 ::= SEQUENCE {
@ -242,7 +291,13 @@ UERadioPagingInformation ::= SEQUENCE {
UERadioPagingInformation-r12-IEs ::= SEQUENCE {
ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12),
nonCriticalExtension SEQUENCE {} OPTIONAL
nonCriticalExtension UERadioPagingInformation-v13xy-IEs OPTIONAL
}
UERadioPagingInformation-v13xy-IEs ::= SEQUENCE {
supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@ -275,6 +330,10 @@ AS-Config-v9e0 ::= SEQUENCE {
sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
}
AS-Config-v10j0 ::= SEQUENCE {
antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL
}
AS-Config-v1250 ::= SEQUENCE {
sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL,
sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL,
@ -347,6 +406,8 @@ CandidateCellInfo-r10 ::= SEQUENCE {
[[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
]],
[[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL
]],
[[ rs-sinrResult-v13xy RS-SINR-Range-r13 OPTIONAL
]]
}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
-- 3GPP TS 36.331 V12.7.0 (2015-09)
-- 3GPP TS 36.331 V13.0.0 (2015-12)
--
EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=
@ -9,12 +9,18 @@ IMPORTS
ARFCN-ValueEUTRA-r9,
FilterCoefficient,
maxSL-TxPool-r12,
maxSL-CommRxPoolPreconf-v13x0,
maxSL-CommTxPoolPreconf-v13x0,
maxSL-DiscRxPoolPreconf-r13,
maxSL-DiscTxPoolPreconf-r13,
P-Max,
ReselectionInfoRelay-r13,
SL-CP-Len-r12,
SL-HoppingConfigComm-r12,
SL-OffsetIndicatorSync-r12,
SL-PeriodComm-r12,
RSRP-RangeSL3-r12,
SL-PriorityList-r13,
SL-TF-ResourceConfig-r12,
SL-TRPT-Subset-r12,
P0-SL-r12,
@ -26,7 +32,18 @@ SL-Preconfiguration-r12 ::= SEQUENCE {
preconfigGeneral-r12 SL-PreconfigGeneral-r12,
preconfigSync-r12 SL-PreconfigSync-r12,
preconfigComm-r12 SL-PreconfigCommPoolList4-r12,
...
...,
[[ preconfigComm-v13x0 SEQUENCE {
commRxPoolListExt-r13 SL-PreconfigCommRxPoolListExt-r13,
commTxPoolListExt-r13 SL-PreconfigCommTxPoolListExt-r13 OPTIONAL
} OPTIONAL,
preconfigDisc-r13 SEQUENCE {
discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13,
discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL
} OPTIONAL,
preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL
]]
}
SL-PreconfigGeneral-r12 ::= SEQUENCE {
@ -59,11 +76,17 @@ SL-PreconfigSync-r12 ::= SEQUENCE {
filterCoefficient-r12 FilterCoefficient,
syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12},
syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf},
...
...,
[[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR
]]
}
SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12
SL-PreconfigCommRxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v13x0)) OF SL-PreconfigCommPool-r12
SL-PreconfigCommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v13x0)) OF SL-PreconfigCommPool-r12
SL-PreconfigCommPool-r12 ::= SEQUENCE {
-- This IE is same as SL-CommResourcePool with rxParametersNCell absent
sc-CP-Len-r12 SL-CP-Len-r12,
@ -75,7 +98,33 @@ SL-PreconfigCommPool-r12 ::= SEQUENCE {
dataHoppingConfig-r12 SL-HoppingConfigComm-r12,
dataTxParameters-r12 P0-SL-r12,
trpt-Subset-r12 SL-TRPT-Subset-r12,
...,
[[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx
]]
}
SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13
SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13
SL-PreconfigDiscPool-r13 ::= SEQUENCE {
-- This IE is same as SL-DiscResourcePool with rxParameters absent
cp-Len-r13 SL-CP-Len-r12,
discPeriod-r13 ENUMERATED {rf4, rf7, rf8, rf14, rf16, rf28, rf32, rf64,
rf128, rf256, rf512, rf1024, spare4, spare3,
spare2, spare},
numRetx-r13 INTEGER (0..3),
numRepetition-r13 INTEGER (1..50),
tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12,
txParameters-r13 SEQUENCE {
txParametersGeneral-r13 P0-SL-r12,
txProbability-r13 ENUMERATED {p25, p50, p75, p100}
} OPTIONAL,
...
}
SL-PreconfigRelay-r13 ::= SEQUENCE {
reselectionInfoRemoteUE-OoC-r13 ReselectionInfoRelay-r13
}
END

View File

@ -1,4 +1,4 @@
-- 3GPP TS 36.331 V12.7.0 (2015-09)
-- 3GPP TS 36.331 V13.0.0 (2015-12)
--
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
@ -42,7 +42,8 @@ IMPORTS
maxCellMeas,
maxCSI-RS-Meas-r12,
maxMeasId,
maxMeasId-r12
maxMeasId-r12,
UL-DelayConfig-r13
FROM EUTRA-RRC-Definitions;

View File

@ -1,4 +1,4 @@
-- 3GPP TS 36.331 V12.7.0 (2015-09)
-- 3GPP TS 36.331 V13.0.0 (2015-12)
--
PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=

View File

@ -1,6 +1,6 @@
# lte-rrc.cnf
# lte-rrc conformation file
# Copyright 2008 Vincent Helfre, 2009-2015 Pascal Quantin
# Copyright 2008 Vincent Helfre, 2009-2016 Pascal Quantin
#.OPT
PER
@ -44,6 +44,7 @@ DL-CCCH-Message @dl.ccch
DL-DCCH-Message @dl.dcch
UL-CCCH-Message @ul.ccch
UL-DCCH-Message @ul.dcch
SC-MCCH-Message @sc.mcch
UECapabilityInformation @ue_cap_info
UE-EUTRA-Capability @ue_eutra_cap
SBCCH-SL-BCH-Message @sbcch.sl.bch
@ -53,24 +54,38 @@ SBCCH-SL-BCH-Message @sbcch.sl.bch
# Get rid of unused code warnings
Cell-ToAddMod-r12
CellsTriggeredList
CQI-ReportConfigSCell-v13x0
CSI-RS-TriggeredList-r12
DRB-InfoListSCG-r12
DRB-InfoSCG-r12
LogMeasInfoList2-r10
MeasResultServCellListSCG-r12
MeasResultServCellListSCG-Ext-r13
MeasResultServCellSCG-r12
RSRP-RangeSL3-r12
SCellToAddModListSCG-r12
SCellToAddModListSCG-Ext-r13
SCG-ConfigInfo-r12
SCG-ConfigInfo-r12-IEs
SCG-ConfigInfo-v13x0-IEs
SCG-ConfigRestrictInfo-r12
ServCellIndex-v13xy
SL-CommTxPoolIdentity-r13
SL-PreconfigCommPool-r12
SL-PreconfigCommPoolList4-r12
SL-PreconfigCommRxPoolListExt-r13
SL-PreconfigCommTxPoolListExt-r13
SL-PreconfigDiscPool-r13
SL-PreconfigDiscRxPoolList-r13
SL-PreconfigDiscTxPoolList-r13
SL-PreconfigGeneral-r12
SL-PreconfigRelay-r13
SL-PreconfigSync-r12
SL-Preconfiguration-r12
UERadioPagingInformation
UERadioPagingInformation-r12-IEs
UERadioPagingInformation-v13xy-IEs
UplinkPowerControlCommonPSCell-v13xy
VarConnEstFailReport-r11
VarLogMeasConfig-r10
VarLogMeasConfig-r11
@ -271,6 +286,16 @@ if(ue_cap_tvb){
proto_tree_add_bits_item(subtree, hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2, pcellduplex_tvb, 1, 1, ENC_BIG_ENDIAN);
}
#.FN_BODY PhyLayerParameters-v13x0/codebook-HARQ-ACK-r13 VAL_PTR = &codebook_tvb
tvbuff_t *codebook_tvb=NULL;
proto_tree *subtree;
%(DEFAULT_BODY)s
if (codebook_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_codebook_HARQ_ACK_r13);
proto_tree_add_bits_item(subtree, hf_lte_rrc_codebook_HARQ_ACK_r13_bit1, codebook_tvb, 0, 1, ENC_BIG_ENDIAN);
proto_tree_add_bits_item(subtree, hf_lte_rrc_codebook_HARQ_ACK_r13_bit2, codebook_tvb, 1, 1, ENC_BIG_ENDIAN);
}
#.FN_BODY RF-Parameters-v10f0/modifiedMPR-Behavior-r10 VAL_PTR = &modifiedMPR_Behavior_r10_tvb
tvbuff_t *modifiedMPR_Behavior_r10_tvb=NULL;
proto_tree *subtree;
@ -828,6 +853,9 @@ WLAN-Identifiers-r12/bssid-r12 TYPE=FT_ETHER
#.TYPE_ATTR
WLAN-Identifiers-r12/hessid-r12 TYPE=FT_ETHER
#.TYPE_ATTR
CellSelectionInfoNFreq-r13/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
#.FN_BODY RRCConnectionReject-r8-IEs/waitTime
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "s");
@ -933,6 +961,18 @@ CQI-ReportConfig-r10/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EP
#.TYPE_ATTR
CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
#.FN_BODY P-C-AndCBSR-r11/p-C-r11
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY P-C-AndCBSR-r13/legacySet/p-C-r11
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY CSI-RS-Config-r10/csi-RS-r10/setup/p-C-r10
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY MAC-MainConfig
/* Accumulate values in drx_config while dissecting DRX config.
Do this here rather than down in DRX-Config so that we will see
@ -1141,9 +1181,28 @@ RSRQ-Range DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRQ_Range_vals_ext
#.TYPE_ATTR
RSRQ-Range-v1250 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRQ_Range_vals_ext
#.TYPE_ATTR
RSRQ-Range-v13xx DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRQ_Range_vals_ext
#.TYPE_ATTR
RS-SINR-Range-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_RS_SINR_Range_r13_fmt)
#.TYPE_ATTR
RSSI-Range-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_RSSI_Range_r13_fmt)
#.TYPE_ATTR
MeasResultForECID-r9/ue-RxTxTimeDiffResult-r9 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_ue_RxTxTimeDiffResult_fmt)
#.FN_BODY MeasResultForRSSI-r13/channelOccupancy-r13
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, " percents");
#.TYPE_ATTR
UL-PDCP-DelayResult-r13/excessDelay-r13 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_excessDelay_r13_vals_ext
#.TYPE_ATTR
MeasResultSSTD-r13/subframeBoundaryOffsetResult-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_subframeBoundaryOffsetResult_r13_fmt)
#.FN_BODY SoundingRS-UL-ConfigDedicated/setup/duration
actx->created_item = proto_tree_add_bits_item(tree, hf_index, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
@ -1240,6 +1299,10 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB19 ");
#.FN_HDR SystemInformationBlockType20-r13
col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB20 ");
#.FN_HDR MBSFNAreaConfiguration-r9
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBSFNAreaConfiguration-r9");
@ -1632,6 +1695,9 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, private_data_get_simult_pucch_pusch_cell_type(actx), TRUE, actx->pinfo);
}
#.TYPE_ATTR
PUCCH-ConfigDedicated-v13xy/codebooksizeDetermination-r13 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_codebooksizeDetermination_r13_vals)
#.FN_BODY RACH-ConfigCommon/preambleInfo
%(DEFAULT_BODY)s
/* Initialise to invalid value */
@ -1966,6 +2032,17 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, " Kbps");
#.FN_BODY SL-DiscResourcePool-r12/eag_1/txParamsAddNeighFreq-r13/referenceSignalPower
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.TYPE_ATTR
SL-SysInfoReport-r13/cellSelectionInfo-r13/q-RxLevMinOffset-r13 STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
#.FN_BODY SL-SysInfoReport-r13/referenceSignalPower-r13
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY P0-SL-r12
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");

View File

@ -1,9 +1,9 @@
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
* (3GPP TS 36.331 V12.7.0 Release 12) packet dissection
* (3GPP TS 36.331 V13.0.0 Release 13) packet dissection
* Copyright 2008, Vincent Helfre
* Copyright 2009-2015, Pascal Quantin
* Copyright 2009-2016, Pascal Quantin
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@ -192,6 +192,8 @@ 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_codebook_HARQ_ACK_r13_bit1 = -1;
static int hf_lte_rrc_codebook_HARQ_ACK_r13_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;
@ -281,6 +283,7 @@ 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_codebook_HARQ_ACK_r13 = -1;
static gint ett_lte_rrc_sr_ConfigIndex = -1;
static gint ett_lte_rrc_transmissionModeList_r12 = -1;
static gint ett_lte_rrc_modifiedMPR_Behavior_r10 = -1;
@ -2145,11 +2148,100 @@ static const true_false_string lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2_val = {
"FDD PCell - Not supported"
};
static const true_false_string hf_lte_rrc_codebook_HARQ_ACK_r13_bit1_val = {
"DAI-based codebook size determination - Supported",
"DAI-based codebook size determination - Not supported"
};
static const true_false_string hf_lte_rrc_codebook_HARQ_ACK_r13_bit2_val = {
"Number of configured CCs based codebook size determination - Supported",
"Number of configured CCs based codebook size determination - Not supported"
};
static const true_false_string lte_rrc_transmissionModeList_r12_val = {
"NeighCellsInfo applies",
"NeighCellsInfo does not apply"
};
static const value_string lte_rrc_codebooksizeDetermination_r13_vals[] = {
{ 0, "HARQ codebook size is determined with downlink assignment indicator"},
{ 1, "HARQ codebook size is determined with number of configured CCs"},
{ 0, NULL},
};
static const value_string lte_rrc_excessDelay_r13_vals[] = {
{ 0, "ratio < 0.079%"},
{ 1, "0.079% < ratio < 0.100%"},
{ 2, "0.100% < ratio < 0.126%"},
{ 3, "0.126% < ratio < 0.158%"},
{ 4, "0.158% < ratio < 0.199%"},
{ 5, "0.199% < ratio < 0.251%"},
{ 6, "0.251% < ratio < 0.316%"},
{ 7, "0.316% < ratio < 0.398%"},
{ 8, "0.398% < ratio < 0.501%"},
{ 9, "0.501% < ratio < 0.631%"},
{ 10, "0.631% < ratio < 0.794%"},
{ 11, "0.794% < ratio < 1.000%"},
{ 12, "1.000% < ratio < 1.259%"},
{ 13, "1.259% < ratio < 1.585%"},
{ 14, "1.585% < ratio < 1.995%"},
{ 15, "1.995% < ratio < 2.511%"},
{ 16, "2.511% < ratio < 3.161%"},
{ 17, "3.161% < ratio < 3.980%"},
{ 18, "3.980% < ratio < 5.011%"},
{ 19, "5.011% < ratio < 6.309%"},
{ 20, "6.309% < ratio < 7.943%"},
{ 21, "7.943% < ratio < 10.00%"},
{ 22, "10.00% < ratio < 12.589%"},
{ 23, "12.589% < ratio < 15.849%"},
{ 24, "15.849% < ratio < 19.953%"},
{ 25, "19.953% < ratio < 25.119%"},
{ 26, "25.119% < ratio < 31.623%"},
{ 27, "31.623% < ratio < 39.811%"},
{ 28, "39.811% < ratio < 50.119%"},
{ 29, "50.119% < ratio < 63.096%"},
{ 30, "63.096% < ratio < 79.433%"},
{ 31, "79.433% < ratio < 100%"},
{ 0, NULL}
};
static value_string_ext lte_rrc_excessDelay_r13_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_excessDelay_r13_vals);
static void
lte_rrc_subframeBoundaryOffsetResult_r13_fmt(gchar *s, guint32 v)
{
if (v == 0) {
g_snprintf(s, ITEM_LABEL_LENGTH, "abs(deltaZ) < 700Ts (0)");
} else if (v == 63) {
g_snprintf(s, ITEM_LABEL_LENGTH, "1320Ts < abs(deltaZ) (63)");
} else {
g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs < abs(deltaZ) <= %uTs (%u)", 700+(v-1)*10, 700+v*10, v);
}
}
static void
lte_rrc_RS_SINR_Range_r13_fmt(gchar *s, guint32 v)
{
if (v == 0) {
g_snprintf(s, ITEM_LABEL_LENGTH, "RS-SINR < -23dB (0)");
} else if (v == 127) {
g_snprintf(s, ITEM_LABEL_LENGTH, "40dB <= RS-SINR (127)");
} else {
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RS-SINR < %.1fdB (%u)", (((float)v-1)/2)-23, ((float)v/2)-23, v);
}
}
static void
lte_rrc_RSSI_Range_r13_fmt(gchar *s, guint32 v)
{
if (v == 0) {
g_snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
} else if (v == 76) {
g_snprintf(s, ITEM_LABEL_LENGTH, "-25dBm <= RSSI (76)");
} else {
g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSSI < %ddBm (%u)", -100+(v-1), -100+v, v);
}
}
static void
lte_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
@ -2826,6 +2918,21 @@ dissect_lte_rrc_SBCCH_SL_BCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
return tvb_captured_length(tvb);
}
static int
dissect_lte_rrc_SC_MCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti;
proto_tree *lte_rrc_tree;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC SC MCCH");
col_clear(pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
dissect_SC_MCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
return tvb_captured_length(tvb);
}
static void
lte_rrc_init_protocol(void)
{
@ -3286,6 +3393,14 @@ void proto_register_lte_rrc(void) {
{ "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_codebook_HARQ_ACK_r13_bit1,
{ "Bit 1", "lte-rrc.codebook_HARQ_ACK_r13.bit1",
FT_BOOLEAN, BASE_NONE, TFS(&hf_lte_rrc_codebook_HARQ_ACK_r13_bit1_val), 0,
NULL, HFILL }},
{ &hf_lte_rrc_codebook_HARQ_ACK_r13_bit2,
{ "Bit 2", "lte-rrc.codebook_HARQ_ACK_r13.bit2",
FT_BOOLEAN, BASE_NONE, TFS(&hf_lte_rrc_codebook_HARQ_ACK_r13_bit2_val), 0,
NULL, HFILL }},
{ &hf_lte_rrc_sr_config_periodicity,
{ "Periodicity", "lte-rrc.sr_Periodicity",
FT_UINT16, BASE_DEC, NULL, 0x0,
@ -3580,6 +3695,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_warningMessageSegment,
&ett_lte_rrc_interBandTDD_CA_WithDifferentConfig,
&ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12,
&ett_lte_rrc_codebook_HARQ_ACK_r13,
&ett_lte_rrc_sr_ConfigIndex,
&ett_lte_rrc_transmissionModeList_r12,
&ett_lte_rrc_modifiedMPR_Behavior_r10,
@ -3617,6 +3733,7 @@ void proto_register_lte_rrc(void) {
register_dissector("lte_rrc.mcch", dissect_lte_rrc_MCCH, proto_lte_rrc);
register_dissector("lte_rrc.handover_prep_info", dissect_lte_rrc_Handover_Preparation_Info, proto_lte_rrc);
register_dissector("lte_rrc.sbcch_sl_bch", dissect_lte_rrc_SBCCH_SL_BCH, proto_lte_rrc);
register_dissector("lte_rrc.sc_mcch", dissect_lte_rrc_SC_MCCH, proto_lte_rrc);
/* Register fields and subtrees */
proto_register_field_array(proto_lte_rrc, hf, array_length(hf));

File diff suppressed because it is too large Load Diff