#.END
-#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
#.FN_PARS Payload-Type VAL_PTR=&PayloadType
+# LCSAP connectionless-transfer
+# procedures, which according to 3GPP TS 29.171 LCS-AP, can only contain an LPPa
+# payload within the APDU IE of the procedure.
+
+#.FN_HDR Connectionless-Information
+
+ PayloadType = 1; /* LPPa */
+
#.FN_BODY APDU VAL_PTR = ¶meter_tvb
tvbuff_t *parameter_tvb=NULL;
-
+
%(DEFAULT_BODY)s
if (parameter_tvb) {
if (check_col(actx->pinfo->cinfo, COL_INFO))
{
guint8 tmp = tvb_get_guint8(tvb, 0);
-
+
if(tmp == 0)
-
+
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%sReq",
val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
"unknown message"));
"unknown message"));
else
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
- val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
+ val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
"unknown message"));
-
+
}
- if (ProcedureCode != 0)
+ if (ProcedureCode != 0)
{
-
+
_pro_code.code = ProcedureCode;
-
+
actx->pinfo->private_data = &_pro_code;
-
+
}
#.END
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3, 3, FALSE, ¶meter_tvb);
- if(tvb_length(tvb)==0)
+ if(tvb_length(tvb)==0)
return offset;
-
+
if (!parameter_tvb)
return offset;
dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, FALSE);
-Location-Request N lcsap.proc.imsg id-Location-Service-Request
-Location-Response N lcsap.proc.sout id-Location-Service-Request
-Location-Response N lcsap.proc.uout id-Location-Service-Request
+Location-Request N lcsap.proc.imsg id-Location-Service-Request
+Location-Response N lcsap.proc.sout id-Location-Service-Request
+Location-Response N lcsap.proc.uout id-Location-Service-Request
Connection-Oriented-Information N lcsap.proc.imsg id-Connection-Oriented-Information-Transfer
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lcsap.c */
-/* ../../tools/asn2wrs.py -p lcsap -c ./lcsap.cnf -s ./packet-lcsap-template -D . -O ../../epan/dissectors LCS-AP-CommonDataTypes.asn LCS-AP-Constants.asn LCS-AP-Containers.asn LCS-AP-IEs.asn LCS-AP-PDU-Contents.asn LCS-AP-PDU-Descriptions.asn */
+/* ../../../tools/asn2wrs.py -p lcsap -c ../../../asn1/lcsap/lcsap.cnf -s ../../../asn1/lcsap/packet-lcsap-template -D ../../../asn1/lcsap -O ../../../epan/dissectors LCS-AP-CommonDataTypes.asn LCS-AP-Constants.asn LCS-AP-Containers.asn LCS-AP-IEs.asn LCS-AP-PDU-Contents.asn LCS-AP-PDU-Descriptions.asn */
/* Input file: packet-lcsap-template.c */
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 93 "../../asn1/lcsap/lcsap.cnf"
+#line 101 "../../asn1/lcsap/lcsap.cnf"
if (check_col(actx->pinfo->cinfo, COL_INFO))
{
guint8 tmp = tvb_get_guint8(tvb, 0);
-
+
if(tmp == 0)
-
+
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%sReq",
val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
"unknown message"));
"unknown message"));
else
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
- val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
+ val_to_str(ProcedureCode, lcsap_ProcedureCode_vals,
"unknown message"));
-
+
}
- if (ProcedureCode != 0)
+ if (ProcedureCode != 0)
{
-
+
_pro_code.code = ProcedureCode;
-
+
actx->pinfo->private_data = &_pro_code;
-
+
}
return offset;
static int
dissect_lcsap_APDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 66 "../../asn1/lcsap/lcsap.cnf"
+#line 74 "../../asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
-
+
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb);
static int
dissect_lcsap_PLMN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 164 "../../asn1/lcsap/lcsap.cnf"
+#line 172 "../../asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3, 3, FALSE, ¶meter_tvb);
- if(tvb_length(tvb)==0)
+ if(tvb_length(tvb)==0)
return offset;
-
+
if (!parameter_tvb)
return offset;
dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, FALSE);
static int
dissect_lcsap_Connectionless_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 70 "../../asn1/lcsap/lcsap.cnf"
+
+ PayloadType = 1; /* LPPa */
+
+
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lcsap_Connectionless_Information, Connectionless_Information_sequence);