aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/s1ap/s1ap.cnf26
-rw-r--r--epan/dissectors/packet-s1ap.c50
2 files changed, 63 insertions, 13 deletions
diff --git a/asn1/s1ap/s1ap.cnf b/asn1/s1ap/s1ap.cnf
index 081b71be99..14899ef729 100644
--- a/asn1/s1ap/s1ap.cnf
+++ b/asn1/s1ap/s1ap.cnf
@@ -191,6 +191,32 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, FALSE);
#.END
+#.FN_BODY ENBname VAL_PTR = parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ int length;
+ int p_offset;
+ gboolean is_ascii;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ length = tvb_length(parameter_tvb);
+
+ is_ascii = TRUE;
+ for (p_offset=0; p_offset < length; p_offset++){
+ if(!isalpha(tvb_get_guint8(parameter_tvb, p_offset ))){
+ is_ascii = FALSE;
+ break;
+ }
+ }
+ if (is_ascii)
+ proto_item_append_text(actx->created_item,"(%%s)",tvb_format_text(parameter_tvb, 0, length));
+
+#.END
+
+
#.FN_BODY NAS-PDU VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c
index b2970cd1c3..bfed7c8a69 100644
--- a/epan/dissectors/packet-s1ap.c
+++ b/epan/dissectors/packet-s1ap.c
@@ -2819,9 +2819,33 @@ 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_) {
+#line 195 "s1ap.cnf"
+ tvbuff_t *parameter_tvb=NULL;
+ int length;
+ int p_offset;
+ gboolean is_ascii;
+
offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
1, 150, TRUE);
+
+ if (!parameter_tvb)
+ return offset;
+
+ length = tvb_length(parameter_tvb);
+
+ is_ascii = TRUE;
+ for (p_offset=0; p_offset < length; p_offset++){
+ if(!isalpha(tvb_get_guint8(parameter_tvb, p_offset ))){
+ is_ascii = FALSE;
+ break;
+ }
+ }
+ if (is_ascii)
+ proto_item_append_text(actx->created_item,"(%s)",tvb_format_text(parameter_tvb, 0, length));
+
+
+
return offset;
}
@@ -2829,7 +2853,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 204 "s1ap.cnf"
+#line 230 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
gint tvb_len;
@@ -3233,7 +3257,7 @@ static const value_string s1ap_HandoverType_vals[] = {
static int
dissect_s1ap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "s1ap.cnf"
+#line 265 "s1ap.cnf"
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5, &handover_type_value, TRUE, 0, NULL);
@@ -3438,7 +3462,7 @@ dissect_s1ap_MSClassmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 195 "s1ap.cnf"
+#line 221 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
@@ -3685,7 +3709,7 @@ dissect_s1ap_RepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 369 "s1ap.cnf"
+#line 395 "s1ap.cnf"
gint32 start_offset;
@@ -3918,7 +3942,7 @@ dissect_s1ap_SONConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 258 "s1ap.cnf"
+#line 284 "s1ap.cnf"
gint32 start_offset;
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -4289,7 +4313,7 @@ dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer(tvbuff_t *tvb _U_, int o
static int
dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 312 "s1ap.cnf"
+#line 338 "s1ap.cnf"
gint32 start_offset;
tvbuff_t *parameter_tvb;
@@ -4543,7 +4567,7 @@ dissect_s1ap_UEPagingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 429 "s1ap.cnf"
+#line 455 "s1ap.cnf"
gint32 start_offset;
tvbuff_t *parameter_tvb;
@@ -4659,7 +4683,7 @@ static const per_sequence_t HandoverRequired_sequence[] = {
static int
dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 244 "s1ap.cnf"
+#line 270 "s1ap.cnf"
handover_type_value = 0;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -4676,7 +4700,7 @@ static const per_sequence_t HandoverCommand_sequence[] = {
static int
dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 246 "s1ap.cnf"
+#line 272 "s1ap.cnf"
handover_type_value = 0;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -4735,7 +4759,7 @@ static const per_sequence_t HandoverRequest_sequence[] = {
static int
dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 248 "s1ap.cnf"
+#line 274 "s1ap.cnf"
handover_type_value = 0;
@@ -5483,7 +5507,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = {
static int
dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 231 "s1ap.cnf"
+#line 257 "s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -5502,7 +5526,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = {
static int
dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "s1ap.cnf"
+#line 253 "s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -5521,7 +5545,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = {
static int
dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 235 "s1ap.cnf"
+#line 261 "s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;