aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2015-02-02 16:02:59 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2015-02-02 16:32:41 +0000
commit9f4bf6abf34f51d29ec563421998081a8305c78b (patch)
treea9f02b253d454b95ed34ec62a9a7cfee43759ca4 /asn1
parente102c34cf04f5966aad884be39f01ab9416e66f4 (diff)
LTE RRC: only display band mapping for the initial supportedBandListEUTRA IE
Handling bands > 64 would require to store the mapping in file scope and current code is broken for the Carrier Aggregation band combination list Change-Id: I9f10022a50520ca9bc16a33f2c16361729f1b01b Reviewed-on: https://code.wireshark.org/review/6917 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'asn1')
-rw-r--r--asn1/lte-rrc/lte-rrc.cnf21
-rw-r--r--asn1/lte-rrc/packet-lte-rrc-template.c7
2 files changed, 17 insertions, 11 deletions
diff --git a/asn1/lte-rrc/lte-rrc.cnf b/asn1/lte-rrc/lte-rrc.cnf
index 97ec1bcc06..86a52f9f92 100644
--- a/asn1/lte-rrc/lte-rrc.cnf
+++ b/asn1/lte-rrc/lte-rrc.cnf
@@ -1815,23 +1815,15 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
%(DEFAULT_BODY)s
set_freq_band_indicator(value, actx);
-#.FN_BODY FreqBandIndicator-v9e0 VAL_PTR=&value
- guint32 value;
-%(DEFAULT_BODY)s
- set_freq_band_indicator(value, actx);
-
-#.FN_BODY FreqBandIndicator-r11 VAL_PTR=&value
- guint32 value;
-%(DEFAULT_BODY)s
- set_freq_band_indicator(value, actx);
-
+#.FN_FTR BandParameters-r10/bandEUTRA-r10
+ remove_last_freq_band_indicator(actx);
#.FN_BODY InterFreqBandInfo
meas_capabilities_item_band_mappings_t *mappings;
proto_item *it;
%(DEFAULT_BODY)s
mappings = private_data_meas_capabilities_item_band_mappings(actx);
- if (mappings->number_of_interfreq_serving_read <= mappings->number_of_bands_set) {
+ if (mappings->number_of_interfreq_serving_read < mappings->number_of_bands_set) {
guint16 serving_band = mappings->band_by_item[mappings->number_of_interfreq_serving_read];
guint16 target_band = mappings->band_by_item[mappings->number_of_interfreq_target_read++];
if (mappings->number_of_interfreq_target_read == mappings->number_of_bands_set) {
@@ -1845,6 +1837,13 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
PROTO_ITEM_SET_GENERATED(it);
}
+#.FN_BODY UE-EUTRA-Capability/measParameters
+ meas_capabilities_item_band_mappings_t *mappings;
+%(DEFAULT_BODY)s
+ /* Clear band mapping once measParameters IE has been decoded */
+ mappings = private_data_meas_capabilities_item_band_mappings(actx);
+ mappings->number_of_bands_set = 0;
+
#.FN_BODY ReleaseCause VAL_PTR=&value
guint32 value;
%(DEFAULT_BODY)s
diff --git a/asn1/lte-rrc/packet-lte-rrc-template.c b/asn1/lte-rrc/packet-lte-rrc-template.c
index 150b03be38..1751200c6e 100644
--- a/asn1/lte-rrc/packet-lte-rrc-template.c
+++ b/asn1/lte-rrc/packet-lte-rrc-template.c
@@ -2159,6 +2159,13 @@ static void set_freq_band_indicator(guint32 value, asn1_ctx_t *actx)
}
}
+static void remove_last_freq_band_indicator(asn1_ctx_t *actx)
+{
+ meas_capabilities_item_band_mappings_t *mappings = private_data_meas_capabilities_item_band_mappings(actx);
+ if ((mappings->number_of_bands_set > 0) && (mappings->number_of_bands_set < 256)) {
+ mappings->number_of_bands_set--;
+ }
+}
/* Cell type for simultaneousPUCCH-PUSCH-r10 */
static simult_pucch_pusch_cell_type private_data_get_simult_pucch_pusch_cell_type(asn1_ctx_t *actx)