aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/rrc/rrc.cnf2
-rw-r--r--epan/dissectors/packet-h225.c32
-rw-r--r--epan/dissectors/packet-h235.c6
-rw-r--r--epan/dissectors/packet-h245.c14
-rw-r--r--epan/dissectors/packet-h282.c2
-rw-r--r--epan/dissectors/packet-h450.c12
-rw-r--r--epan/dissectors/packet-h460.c6
-rw-r--r--epan/dissectors/packet-h501.c10
-rw-r--r--epan/dissectors/packet-lte-rrc.c58
-rw-r--r--epan/dissectors/packet-per.c43
-rw-r--r--epan/dissectors/packet-per.h12
-rw-r--r--epan/dissectors/packet-rrc.c10
-rw-r--r--epan/dissectors/packet-rrc.h1
-rw-r--r--epan/dissectors/packet-s1ap.c4
-rw-r--r--epan/dissectors/packet-ulp.c6
15 files changed, 119 insertions, 99 deletions
diff --git a/asn1/rrc/rrc.cnf b/asn1/rrc/rrc.cnf
index 33a0993f26..33a4f04445 100644
--- a/asn1/rrc/rrc.cnf
+++ b/asn1/rrc/rrc.cnf
@@ -12,7 +12,7 @@ UNALIGNED
InterRATHandoverInfo
InterRATHandoverInfo_PDU
ToTargetRNC-Container_PDU
-
+TargetRNC-ToSourceRNC-Container_PDU
#.OMIT_ASSIGNMENT
#.END
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index 717babe7d3..0567e9a1d5 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -1581,7 +1581,7 @@ dissect_h225_DialedDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
guint len = 0;
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 1, 128, "0123456789#*,", 13,
+ 1, 128, FALSE, "0123456789#*,", 13,
&value_tvb);
if (h225_pi && h225_pi->is_destinationInfo == TRUE) {
@@ -1605,7 +1605,7 @@ dissect_h225_DialedDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h225_BMPString_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 256);
+ 1, 256, FALSE);
return offset;
}
@@ -1615,7 +1615,7 @@ dissect_h225_BMPString_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_IA5String_SIZE_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 512);
+ 1, 512, FALSE);
return offset;
}
@@ -1795,7 +1795,7 @@ dissect_h225_PublicTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h225_NumberDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 1, 128, "0123456789#*,", 13,
+ 1, 128, FALSE, "0123456789#*,", 13,
NULL);
return offset;
@@ -1900,7 +1900,7 @@ dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- min_len, max_len, "0123456789#*abc", 15,
+ min_len, max_len, has_extension, "0123456789#*abc", 15,
NULL);
return offset;
@@ -2093,7 +2093,7 @@ dissect_h225_NatureOfAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h225_IsupDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 1, 128, "0123456789ABCDE", 15,
+ 1, 128, FALSE, "0123456789ABCDE", 15,
NULL);
return offset;
@@ -2641,7 +2641,7 @@ dissect_h225_T_tunnelledProtocolObjectID(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_h225_IA5String_SIZE_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 64);
+ 1, 64, FALSE);
return offset;
}
@@ -3018,7 +3018,7 @@ dissect_h225_T_cryptoEPPwdHash(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
int
dissect_h225_GatekeeperIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -3129,7 +3129,7 @@ dissect_h225_FastStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h225_EndpointIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -3217,7 +3217,7 @@ dissect_h225_T_connectionParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_h225_IA5String_SIZE_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 32);
+ 1, 32, FALSE);
return offset;
}
@@ -3292,7 +3292,7 @@ dissect_h225_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_h225_IA5String_SIZE_0_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 0, 512);
+ 0, 512, FALSE);
return offset;
}
@@ -3312,7 +3312,7 @@ dissect_h225_H248SignalsDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_BMPString_SIZE_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 512);
+ 1, 512, FALSE);
return offset;
}
@@ -3483,7 +3483,7 @@ dissect_h225_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_IA5String_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -3762,7 +3762,7 @@ dissect_h225_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h225_IA5String(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND);
+ NO_BOUND, NO_BOUND, FALSE);
return offset;
}
@@ -3772,7 +3772,7 @@ dissect_h225_IA5String(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h225_BMPString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND);
+ NO_BOUND, NO_BOUND, FALSE);
return offset;
}
@@ -5493,7 +5493,7 @@ dissect_h225_CallCreditCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_PrintableString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND);
+ NO_BOUND, NO_BOUND, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-h235.c b/epan/dissectors/packet-h235.c
index 13b79560f2..b3e1fe9324 100644
--- a/epan/dissectors/packet-h235.c
+++ b/epan/dissectors/packet-h235.c
@@ -253,7 +253,7 @@ dissect_h235_RandomVal(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h235_Password(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -263,7 +263,7 @@ dissect_h235_Password(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_h235_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -666,7 +666,7 @@ dissect_h235_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_h235_BMPString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND);
+ NO_BOUND, NO_BOUND, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index 78c22a9cc2..bd5ea564aa 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -2791,7 +2791,7 @@ dissect_h245_T_availableBitRates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h245_NumericString_SIZE_1_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
- 1, 16);
+ 1, 16, FALSE);
return offset;
}
@@ -3566,7 +3566,7 @@ dissect_h245_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_IA5String_SIZE_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 64);
+ 1, 64, FALSE);
return offset;
}
@@ -8491,7 +8491,7 @@ dissect_h245_T_distribution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h245_T_e164Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 1, 128, "0123456789#*,", 13,
+ 1, 128, FALSE, "0123456789#*,", 13,
NULL);
return offset;
@@ -10356,7 +10356,7 @@ dissect_h245_CallInformationReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h245_NumericString_SIZE_0_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
- 0, 40);
+ 0, 40, FALSE);
return offset;
}
@@ -10366,7 +10366,7 @@ dissect_h245_NumericString_SIZE_0_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_h245_IA5String_SIZE_1_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 40);
+ 1, 40, FALSE);
return offset;
}
@@ -11567,7 +11567,7 @@ dissect_h245_MaintenanceLoopReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -13846,7 +13846,7 @@ dissect_h245_T_userInputSupportIndication(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_h245_T_signalType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 1, 1, "0123456789#*ABCD!", 17,
+ 1, 1, FALSE, "0123456789#*ABCD!", 17,
NULL);
return offset;
diff --git a/epan/dissectors/packet-h282.c b/epan/dissectors/packet-h282.c
index 77b2a91b26..0cab86f64b 100644
--- a/epan/dissectors/packet-h282.c
+++ b/epan/dissectors/packet-h282.c
@@ -753,7 +753,7 @@ dissect_h282_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h282_TextString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 0, 255);
+ 0, 255, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c
index 9873a03b8d..65b14490af 100644
--- a/epan/dissectors/packet-h450.c
+++ b/epan/dissectors/packet-h450.c
@@ -1209,7 +1209,7 @@ dissect_h450_2_DummyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h450_2_CallIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
- 0, 4);
+ 0, 4, FALSE);
return offset;
}
@@ -1333,7 +1333,7 @@ dissect_h450_2_CTIdentifyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h450_2_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -1955,7 +1955,7 @@ dissect_h450_3_SubscriptionOption(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h450_3_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -3231,7 +3231,7 @@ dissect_h450_7_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_h450_7_NumericString_SIZE_1_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
- 1, 10);
+ 1, 10, FALSE);
return offset;
}
@@ -3275,7 +3275,7 @@ dissect_h450_7_NbOfMessages(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h450_7_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
- 12, 19);
+ 12, 19, FALSE);
return offset;
}
@@ -3501,7 +3501,7 @@ dissect_h450_8_SimpleName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h450_8_ExtendedName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 256);
+ 1, 256, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-h460.c b/epan/dissectors/packet-h460.c
index c4bf075663..0abcee200e 100644
--- a/epan/dissectors/packet-h460.c
+++ b/epan/dissectors/packet-h460.c
@@ -789,7 +789,7 @@ dissect_h460_4_CallPriorityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h460_4_X121CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 3, 3, "0123456789", 10,
+ 3, 3, FALSE, "0123456789", 10,
NULL);
return offset;
@@ -814,7 +814,7 @@ dissect_h460_4_T_x121(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_h460_4_E164CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 3, 3, "0123456789", 10,
+ 3, 3, FALSE, "0123456789", 10,
NULL);
return offset;
@@ -825,7 +825,7 @@ dissect_h460_4_E164CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_h460_4_T_identificationCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 1, 4, "0123456789", 10,
+ 1, 4, FALSE, "0123456789", 10,
NULL);
return offset;
diff --git a/epan/dissectors/packet-h501.c b/epan/dissectors/packet-h501.c
index 6860591958..dee5876191 100644
--- a/epan/dissectors/packet-h501.c
+++ b/epan/dissectors/packet-h501.c
@@ -438,7 +438,7 @@ void proto_reg_handoff_h501(void);
static int
dissect_h501_ElementIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
- 1, 128);
+ 1, 128, FALSE);
return offset;
}
@@ -822,7 +822,7 @@ dissect_h501_DescriptorRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_h501_GlobalTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 14, 14);
+ 14, 14, FALSE);
return offset;
}
@@ -923,7 +923,7 @@ dissect_h501_T_messageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_h501_IA5String_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 3, 3);
+ 3, 3, FALSE);
return offset;
}
@@ -943,7 +943,7 @@ dissect_h501_INTEGER_M127_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h501_IA5String_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 6, 6);
+ 6, 6, FALSE);
return offset;
}
@@ -1022,7 +1022,7 @@ dissect_h501_SEQUENCE_OF_PriceElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_h501_IA5String_SIZE_1_2048(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 2048);
+ 1, 2048, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c
index b2509ebb28..d3c87f5306 100644
--- a/epan/dissectors/packet-lte-rrc.c
+++ b/epan/dissectors/packet-lte-rrc.c
@@ -1768,7 +1768,7 @@ static const per_sequence_t MasterInformationBlock_sequence[] = {
static int
dissect_lte_rrc_MasterInformationBlock(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_MasterInformationBlock, MasterInformationBlock_sequence);
@@ -4842,7 +4842,7 @@ static const per_sequence_t SystemInformation_sequence[] = {
static int
dissect_lte_rrc_SystemInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_SystemInformation, SystemInformation_sequence);
@@ -5259,7 +5259,7 @@ static const per_sequence_t SystemInformationBlockType1_sequence[] = {
static int
dissect_lte_rrc_SystemInformationBlockType1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationBlockType1");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationBlockType1 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_SystemInformationBlockType1, SystemInformationBlockType1_sequence);
@@ -5519,7 +5519,7 @@ static const per_sequence_t Paging_sequence[] = {
static int
dissect_lte_rrc_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "Paging");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "Paging ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_Paging, Paging_sequence);
@@ -8173,7 +8173,7 @@ static const per_sequence_t RRCConnectionReestablishment_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionReestablishment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishment");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishment ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionReestablishment, RRCConnectionReestablishment_sequence);
@@ -8252,7 +8252,7 @@ static const per_sequence_t RRCConnectionReestablishmentReject_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionReestablishmentReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentReject");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentReject ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionReestablishmentReject, RRCConnectionReestablishmentReject_sequence);
@@ -8358,7 +8358,7 @@ static const per_sequence_t RRCConnectionReject_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionReject, RRCConnectionReject_sequence);
@@ -8473,7 +8473,7 @@ static const per_sequence_t RRCConnectionSetup_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionSetup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionSetup, RRCConnectionSetup_sequence);
@@ -8650,7 +8650,7 @@ static const per_sequence_t CSFBParametersResponseCDMA2000_sequence[] = {
static int
dissect_lte_rrc_CSFBParametersResponseCDMA2000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersResponseCDMA2000");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersResponseCDMA2000 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_CSFBParametersResponseCDMA2000, CSFBParametersResponseCDMA2000_sequence);
@@ -8808,7 +8808,7 @@ static const per_sequence_t DLInformationTransfer_sequence[] = {
static int
dissect_lte_rrc_DLInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "DLInformationTransfer");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "DLInformationTransfer ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_DLInformationTransfer, DLInformationTransfer_sequence);
@@ -8933,7 +8933,7 @@ static const per_sequence_t HandoverFromEUTRAPreparationRequest_sequence[] = {
static int
dissect_lte_rrc_HandoverFromEUTRAPreparationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromEUTRAPreparationRequest");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromEUTRAPreparationRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_HandoverFromEUTRAPreparationRequest, HandoverFromEUTRAPreparationRequest_sequence);
@@ -9252,7 +9252,7 @@ static const per_sequence_t MobilityFromEUTRACommand_sequence[] = {
static int
dissect_lte_rrc_MobilityFromEUTRACommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "MobilityFromEUTRACommand");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "MobilityFromEUTRACommand ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_MobilityFromEUTRACommand, MobilityFromEUTRACommand_sequence);
@@ -11196,7 +11196,7 @@ static const per_sequence_t RRCConnectionReconfiguration_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfiguration");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfiguration ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionReconfiguration, RRCConnectionReconfiguration_sequence);
@@ -11569,7 +11569,7 @@ static const per_sequence_t RRCConnectionRelease_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionRelease, RRCConnectionRelease_sequence);
@@ -11690,7 +11690,7 @@ static const per_sequence_t SecurityModeCommand_sequence[] = {
static int
dissect_lte_rrc_SecurityModeCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_SecurityModeCommand, SecurityModeCommand_sequence);
@@ -11833,7 +11833,7 @@ static const per_sequence_t UECapabilityEnquiry_sequence[] = {
static int
dissect_lte_rrc_UECapabilityEnquiry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_UECapabilityEnquiry, UECapabilityEnquiry_sequence);
@@ -12188,7 +12188,7 @@ static const per_sequence_t RRCConnectionReestablishmentRequest_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionReestablishmentRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentRequest");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionReestablishmentRequest, RRCConnectionReestablishmentRequest_sequence);
@@ -12320,7 +12320,7 @@ static const per_sequence_t RRCConnectionRequest_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionRequest, RRCConnectionRequest_sequence);
@@ -12470,7 +12470,7 @@ static const per_sequence_t CSFBParametersRequestCDMA2000_sequence[] = {
static int
dissect_lte_rrc_CSFBParametersRequestCDMA2000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersRequestCDMA2000");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersRequestCDMA2000 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_CSFBParametersRequestCDMA2000, CSFBParametersRequestCDMA2000_sequence);
@@ -13028,7 +13028,7 @@ static const per_sequence_t MeasurementReport_sequence[] = {
static int
dissect_lte_rrc_MeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_MeasurementReport, MeasurementReport_sequence);
@@ -13108,7 +13108,7 @@ static const per_sequence_t RRCConnectionReconfigurationComplete_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfigurationComplete");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfigurationComplete ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionReconfigurationComplete, RRCConnectionReconfigurationComplete_sequence);
@@ -13188,7 +13188,7 @@ static const per_sequence_t RRCConnectionReestablishmentComplete_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionReestablishmentComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentComplete");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentComplete ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionReestablishmentComplete, RRCConnectionReestablishmentComplete_sequence);
@@ -13323,7 +13323,7 @@ static const per_sequence_t RRCConnectionSetupComplete_sequence[] = {
static int
dissect_lte_rrc_RRCConnectionSetupComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_RRCConnectionSetupComplete, RRCConnectionSetupComplete_sequence);
@@ -13403,7 +13403,7 @@ static const per_sequence_t SecurityModeComplete_sequence[] = {
static int
dissect_lte_rrc_SecurityModeComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_SecurityModeComplete, SecurityModeComplete_sequence);
@@ -13483,7 +13483,7 @@ static const per_sequence_t SecurityModeFailure_sequence[] = {
static int
dissect_lte_rrc_SecurityModeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_SecurityModeFailure, SecurityModeFailure_sequence);
@@ -13627,7 +13627,7 @@ static const per_sequence_t UECapabilityInformation_sequence[] = {
static int
dissect_lte_rrc_UECapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_UECapabilityInformation, UECapabilityInformation_sequence);
@@ -13745,7 +13745,7 @@ static const per_sequence_t ULHandoverPreparationTransfer_sequence[] = {
static int
dissect_lte_rrc_ULHandoverPreparationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "ULHandoverPreparationTransfer");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "ULHandoverPreparationTransfer ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_ULHandoverPreparationTransfer, ULHandoverPreparationTransfer_sequence);
@@ -13875,7 +13875,7 @@ static const per_sequence_t ULInformationTransfer_sequence[] = {
static int
dissect_lte_rrc_ULInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "ULInformationTransfer");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "ULInformationTransfer ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_ULInformationTransfer, ULInformationTransfer_sequence);
@@ -13996,7 +13996,7 @@ static const per_sequence_t CounterCheckResponse_sequence[] = {
static int
dissect_lte_rrc_CounterCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse");
+col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_CounterCheckResponse, CounterCheckResponse_sequence);
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index a292bc532f..5cf93dd26c 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -619,16 +619,16 @@ DEBUG_ENTRY("dissect_per_sequence_of");
i.e. no FROM stuff limiting the alphabet
*/
guint32
-dissect_per_IA5String(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len)
+dissect_per_IA5String(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension)
{
- offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, FALSE, NULL);
+ offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, has_extension, NULL);
return offset;
}
/* XXX we dont do >64k length strings yet */
static guint32
-dissect_per_restricted_character_string_sorted(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, const char *alphabet, int alphabet_length, tvbuff_t **value_tvb)
+dissect_per_restricted_character_string_sorted(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension _U_,const char *alphabet, int alphabet_length, tvbuff_t **value_tvb)
{
guint32 length;
gboolean byte_aligned;
@@ -686,6 +686,25 @@ DEBUG_ENTRY("dissect_per_restricted_character_string");
bits_per_char=8;
}
}
+ /* 27.4 If the type is extensible for PER encodings (see 9.3.16),
+ * then a bit-field consisting of a single bit shall be added to the field-list.
+ * The single bit shall be set to zero if the value is within the range of the extension root,
+ * and to one otherwise. If the value is outside the range of the extension root,
+ * then the following encoding shall be as if there was no effective size constraint,
+ * and shall have an effective permitted-alphabet constraint that consists of the set of characters
+ * of the unconstrained type.
+ * NOTE – Only the known-multiplier character string types can be extensible for PER encodings.
+ * Extensibility markers on other character string types do not affect the PER encoding.
+ */
+
+ if (has_extension) {
+ gboolean extension_present;
+ offset = dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_present_bit, &extension_present);
+ if(extension_present){
+ min_len = NO_BOUND;
+ max_len = NO_BOUND;
+ }
+ }
byte_aligned=TRUE;
if((min_len==max_len)&&(max_len<=2)){
@@ -778,7 +797,7 @@ sort_alphabet(char *sorted_alphabet, const char *alphabet, int alphabet_length)
}
guint32
-dissect_per_restricted_character_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, const char *alphabet, int alphabet_length, tvbuff_t **value_tvb)
+dissect_per_restricted_character_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, const char *alphabet, int alphabet_length, tvbuff_t **value_tvb)
{
const char *alphabet_ptr;
char sorted_alphabet[128];
@@ -788,33 +807,33 @@ dissect_per_restricted_character_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_
} else {
alphabet_ptr = sort_alphabet(sorted_alphabet, alphabet, alphabet_length);
}
- return dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len, alphabet_ptr, alphabet_length, value_tvb);
+ return dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len, has_extension, alphabet_ptr, alphabet_length, value_tvb);
}
guint32
-dissect_per_NumericString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len)
+dissect_per_NumericString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension)
{
- offset=dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len,
+ offset=dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len, has_extension,
" 0123456789", 11, NULL);
return offset;
}
guint32
-dissect_per_PrintableString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len)
+dissect_per_PrintableString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension)
{
- offset=dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len,
+ offset=dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len, has_extension,
" '()+,-.*0123456789:=?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 74, NULL);
return offset;
}
guint32
-dissect_per_VisibleString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len)
+dissect_per_VisibleString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension)
{
- offset=dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len,
+ offset=dissect_per_restricted_character_string_sorted(tvb, offset, actx, tree, hf_index, min_len, max_len, has_extension,
" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", 95, NULL);
return offset;
}
guint32
-dissect_per_BMPString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len)
+dissect_per_BMPString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension _U_)
{
guint32 length;
static char *str;
diff --git a/epan/dissectors/packet-per.h b/epan/dissectors/packet-per.h
index 3a4d5525c6..557f261a65 100644
--- a/epan/dissectors/packet-per.h
+++ b/epan/dissectors/packet-per.h
@@ -73,15 +73,15 @@ extern guint32 dissect_per_GeneralString(tvbuff_t *tvb, guint32 offset, asn1_ctx
extern guint32 dissect_per_sequence_of(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *parent_tree, int hf_index, gint ett_index, const per_sequence_t *seq);
-extern guint32 dissect_per_IA5String(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len);
+extern guint32 dissect_per_IA5String(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension);
-extern guint32 dissect_per_NumericString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len);
+extern guint32 dissect_per_NumericString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension);
-extern guint32 dissect_per_PrintableString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len);
+extern guint32 dissect_per_PrintableString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension);
-extern guint32 dissect_per_VisibleString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len);
+extern guint32 dissect_per_VisibleString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension);
-extern guint32 dissect_per_BMPString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len);
+extern guint32 dissect_per_BMPString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension);
extern guint32 dissect_per_object_descriptor(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, tvbuff_t **value_tvb);
@@ -116,7 +116,7 @@ extern guint32 dissect_per_bit_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t
extern guint32 dissect_per_bit_string_containing_pdu(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, dissector_t type_cb);
extern guint32 dissect_per_bit_string_containing_pdu_new(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, new_dissector_t type_cb);
-extern guint32 dissect_per_restricted_character_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, const char *alphabet, int alphabet_length, tvbuff_t **value_tvb);
+extern guint32 dissect_per_restricted_character_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, const char *alphabet, int alphabet_length, tvbuff_t **value_tvb);
extern guint32 dissect_per_enumerated(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, guint32 root_num, guint32 *value, gboolean has_extension, guint32 ext_num, guint32 *value_map);
diff --git a/epan/dissectors/packet-rrc.c b/epan/dissectors/packet-rrc.c
index 98e3faffd1..4c3af2c65b 100644
--- a/epan/dissectors/packet-rrc.c
+++ b/epan/dissectors/packet-rrc.c
@@ -282,7 +282,7 @@ static int hf_rrc_SysInfoType18_PDU = -1; /* SysInfoType18 */
static int hf_rrc_SysInfoTypeSB1_PDU = -1; /* SysInfoTypeSB1 */
static int hf_rrc_SysInfoTypeSB2_PDU = -1; /* SysInfoTypeSB2 */
static int hf_rrc_rrc_ToTargetRNC_Container_PDU = -1; /* ToTargetRNC_Container */
-static int hf_rrc_TargetRNC_ToSourceRNC_Container_PDU = -1; /* TargetRNC_ToSourceRNC_Container */
+static int hf_rrc_rrc_TargetRNC_ToSourceRNC_Container_PDU = -1; /* TargetRNC_ToSourceRNC_Container */
static int hf_rrc_CellUpdate_r3_add_ext_IEs_PDU = -1; /* CellUpdate_r3_add_ext_IEs */
static int hf_rrc_CellUpdateConfirm_r7_add_ext_IEs_PDU = -1; /* CellUpdateConfirm_r7_add_ext_IEs */
static int hf_rrc_InterRATHandoverInfo_r3_add_ext_IEs_PDU = -1; /* InterRATHandoverInfo_r3_add_ext_IEs */
@@ -111994,10 +111994,10 @@ void dissect_rrc_ToTargetRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
dissect_rrc_ToTargetRNC_Container(tvb, 0, &asn1_ctx, tree, hf_rrc_rrc_ToTargetRNC_Container_PDU);
}
-static void dissect_TargetRNC_ToSourceRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+void dissect_rrc_TargetRNC_ToSourceRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_rrc_TargetRNC_ToSourceRNC_Container(tvb, 0, &asn1_ctx, tree, hf_rrc_TargetRNC_ToSourceRNC_Container_PDU);
+ dissect_rrc_TargetRNC_ToSourceRNC_Container(tvb, 0, &asn1_ctx, tree, hf_rrc_rrc_TargetRNC_ToSourceRNC_Container_PDU);
}
static int dissect_CellUpdate_r3_add_ext_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
@@ -112397,7 +112397,7 @@ void proto_register_rrc(void) {
{ "ToTargetRNC-Container", "rrc.ToTargetRNC_Container",
FT_UINT32, BASE_DEC, VALS(rrc_ToTargetRNC_Container_vals), 0,
"rrc.ToTargetRNC_Container", HFILL }},
- { &hf_rrc_TargetRNC_ToSourceRNC_Container_PDU,
+ { &hf_rrc_rrc_TargetRNC_ToSourceRNC_Container_PDU,
{ "TargetRNC-ToSourceRNC-Container", "rrc.TargetRNC_ToSourceRNC_Container",
FT_UINT32, BASE_DEC, VALS(rrc_TargetRNC_ToSourceRNC_Container_vals), 0,
"rrc.TargetRNC_ToSourceRNC_Container", HFILL }},
@@ -148203,7 +148203,7 @@ void proto_register_rrc(void) {
register_dissector("rrc.si.sb1", dissect_SysInfoTypeSB1_PDU, proto_rrc);
register_dissector("rrc.si.sb2", dissect_SysInfoTypeSB2_PDU, proto_rrc);
register_dissector("rrc.s_to_trnc_cont", dissect_rrc_ToTargetRNC_Container_PDU, proto_rrc);
- register_dissector("rrc.t_to_srnc_cont", dissect_TargetRNC_ToSourceRNC_Container_PDU, proto_rrc);
+ register_dissector("rrc.t_to_srnc_cont", dissect_rrc_TargetRNC_ToSourceRNC_Container_PDU, proto_rrc);
/*--- End of included file: packet-rrc-dis-reg.c ---*/
diff --git a/epan/dissectors/packet-rrc.h b/epan/dissectors/packet-rrc.h
index eadcefff7c..1f3e9f6121 100644
--- a/epan/dissectors/packet-rrc.h
+++ b/epan/dissectors/packet-rrc.h
@@ -40,6 +40,7 @@ extern int proto_rrc;
int dissect_rrc_InterRATHandoverInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
void dissect_rrc_InterRATHandoverInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
void dissect_rrc_ToTargetRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
+void dissect_rrc_TargetRNC_ToSourceRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
/*--- End of included file: packet-rrc-exp.h ---*/
#line 30 "packet-rrc-template.h"
diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c
index b2db510370..5508e5ed2c 100644
--- a/epan/dissectors/packet-s1ap.c
+++ b/epan/dissectors/packet-s1ap.c
@@ -2690,7 +2690,7 @@ dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
- 1, 150);
+ 1, 150, TRUE);
return offset;
}
@@ -3237,7 +3237,7 @@ dissect_s1ap_MessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_s1ap_MMEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
- 1, 150);
+ 1, 150, TRUE);
return offset;
}
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index b507043885..a735ec7cc6 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -445,7 +445,7 @@ if(!parameter_tvb)
static int
dissect_ulp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
- 1, 1000);
+ 1, 1000, FALSE);
return offset;
}
@@ -542,7 +542,7 @@ dissect_ulp_SetSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_FQDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- 1, 255, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-", 64,
+ 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-", 64,
NULL);
return offset;
@@ -1606,7 +1606,7 @@ dissect_ulp_RequestedAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_ulp_UTCTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND);
+ NO_BOUND, NO_BOUND, FALSE);
return offset;
}