aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/ulp/ulp.cnf
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1/ulp/ulp.cnf')
-rw-r--r--epan/dissectors/asn1/ulp/ulp.cnf794
1 files changed, 794 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/ulp/ulp.cnf b/epan/dissectors/asn1/ulp/ulp.cnf
new file mode 100644
index 0000000000..05d8550c14
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/ulp.cnf
@@ -0,0 +1,794 @@
+# upl.cnf
+# upl conformation file
+# Copyright 2006-2010 Anders Broman
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.PDU
+ULP-PDU
+#.END
+
+#.TYPE_RENAME
+FrequencyInfo/modeSpecificInfo FrequencySpecificInfo
+#.END
+
+#.FIELD_RENAME
+FrequencyInfo/modeSpecificInfo modeSpecificFrequencyInfo
+FrequencyInfo/modeSpecificInfo/fdd fdd_fr
+FrequencyInfo/modeSpecificInfo/tdd tdd_fr
+SlpSessionID/sessionID sessionSlpID
+SETId/min minsi
+Coordinate/latitude CoordinateLatitude
+Coordinate/longitude CoordinateLongitude
+#.END
+
+#.FN_HDR ULP-PDU
+ proto_item *it;
+ proto_tree *ulp_tree;
+
+ it = proto_tree_add_item(tree, proto_ulp, tvb, 0, -1, ENC_NA);
+ ulp_tree = proto_item_add_subtree(it, ett_ulp);
+
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
+ col_clear(actx->pinfo->cinfo, COL_INFO);
+#.END
+
+#.FN_BODY ULP-PDU TREE=ulp_tree
+%(DEFAULT_BODY)s
+#.END
+
+#.FN_BODY UlpMessage VAL_PTR = &UlpMessage
+
+guint32 UlpMessage;
+
+ %(DEFAULT_BODY)s
+
+ col_prepend_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "%%s ", val_to_str(UlpMessage,ulp_UlpMessage_vals,"Unknown"));
+
+#.END
+
+#.FN_BODY Notification
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+ ulp_priv->notif_enc_type = -1;
+%(DEFAULT_BODY)s
+
+#.FN_BODY EncodingType VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+ ulp_priv->notif_enc_type = (guint8) val;
+
+#.FN_BODY Notification/requestorId VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+ switch(ulp_priv->notif_enc_type) {
+ case 0: /* UCS-2 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ ENC_UCS_2|ENC_BIG_ENDIAN);
+ break;
+ case 1: /* GSM 7bits */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_3GPP_TS_23_038_7BITS|ENC_NA);
+ break;
+ case 2: /* UTF-8 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_UTF_8|ENC_NA);
+ break;
+ default:
+ actx->created_item = proto_tree_add_string(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ tvb_bytes_to_str(wmem_packet_scope(), val_tvb, 0,
+ tvb_reported_length(val_tvb)));
+ break;
+ }
+ }
+
+#.TYPE_ATTR
+Notification/requestorId TYPE=FT_STRING DISPLAY=STR_UNICODE
+
+#.FN_BODY Notification/clientName VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+ switch(ulp_priv->notif_enc_type) {
+ case 0: /* UCS-2 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ ENC_UCS_2|ENC_BIG_ENDIAN);
+ break;
+ case 1: /* GSM 7bits */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_3GPP_TS_23_038_7BITS|ENC_NA);
+ break;
+ case 2: /* UTF-8 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_UTF_8|ENC_NA);
+ break;
+ default:
+ actx->created_item = proto_tree_add_string(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ tvb_bytes_to_str(wmem_packet_scope(), val_tvb, 0,
+ tvb_reported_length(val_tvb)));
+ break;
+ }
+ }
+
+#.TYPE_ATTR
+Notification/clientName TYPE=FT_STRING DISPLAY=STR_UNICODE
+
+#.FN_BODY NavigationModel/gpsToe
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " hr");
+
+#.FN_BODY NavigationModel/toeLimit
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " hr");
+
+#.FN_BODY PosPayLoad/rrlpPayload VAL_PTR = &rrlp_tvb
+ tvbuff_t *rrlp_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (rrlp_tvb && rrlp_handle) {
+ call_dissector(rrlp_handle, rrlp_tvb, %(ACTX)s->pinfo, tree);
+ }
+
+#.FN_BODY PeriodicParams/intervalBetweenFixes
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY PeriodicParams/startTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY AreaEventParams/startTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY AreaEventParams/stopTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY RepeatedReportingParams/minimumIntervalTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY WLANAreaId/apMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+WLANAreaId/apMACAddress TYPE=FT_ETHER
+
+#.TYPE_ATTR
+GANSSSignalsDescription/ganssId STRINGS=VALS(ulp_ganss_id_vals)
+
+#.FN_BODY TimeStamp/relativeTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY ReportingCriteria/minTimeInterval
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY TimeWindow/startTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " min");
+
+#.FN_BODY TimeWindow/stopTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " min");
+
+#.TYPE_ATTR
+GANSSPositionMethod/ganssId STRINGS=VALS(ulp_ganss_id_vals)
+
+#.FN_BODY GANSSPositionMethod/ganssSBASid VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 3, ENC_NA);
+ }
+
+#.TYPE_ATTR
+GANSSPositionMethod/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_ganss_sbas_id_vals)
+
+#.FN_BODY GanssReqGenericData/ganssId VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+ ulp_priv->ganss_req_gen_data_ganss_id = (guint8) val;
+
+#.TYPE_ATTR
+GanssReqGenericData/ganssId STRINGS=VALS(ulp_ganss_id_vals)
+
+#.FN_BODY GanssReqGenericData/ganssSBASid VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 3, ENC_NA);
+ }
+
+#.TYPE_ATTR
+GanssReqGenericData/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_ganss_sbas_id_vals)
+
+#.FN_BODY GanssReqGenericData/ganssTimeModels VAL_PTR=&val_tvb
+ tvbuff_t *val_tvb;
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ulp_ganssTimeModels);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit0, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit1, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit2, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit3, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit4, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_spare, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY GanssNavigationModelData/ganssWeek
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+ if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
+ /* Not GLONASS */
+ proto_item_append_text(actx->created_item, " wk");
+ } else {
+ proto_item_append_text(actx->created_item, " d");
+ }
+
+#.FN_BODY GanssNavigationModelData/ganssToe VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+
+#.FN_FTR GanssNavigationModelData/ganssToe
+ if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
+ /* Not GLONASS */
+ proto_item_append_text(actx->created_item, " h");
+ } else {
+ proto_item_set_text(actx->created_item, "%u min (%u)", 15*val, val);
+ }
+
+#.FN_BODY GanssNavigationModelData/t-toeLimit VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+
+#.FN_FTR GanssNavigationModelData/t-toeLimit
+ if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
+ /* Not GLONASS */
+ proto_item_append_text(actx->created_item, " h");
+ } else {
+ proto_item_set_text(actx->created_item, "%u min (%u)", 30*val, val);
+ }
+
+#.FN_BODY GanssDataBits/ganssTODmin
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+ReqDataBitAssistanceList/ganssDataBitInterval DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_ganssDataBitInterval_fmt)
+
+#.TYPE_ATTR
+ExtendedEphemeris/validity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_ExtendedEphemeris_validity_fmt)
+
+#.FN_BODY Ver2-PosPayLoad-extension/lPPPayload/_item VAL_PTR = &lpp_tvb
+ tvbuff_t *lpp_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (lpp_tvb && lpp_handle) {
+ call_dissector(lpp_handle, lpp_tvb, %(ACTX)s->pinfo, tree);
+ }
+
+#.FN_BODY SETId/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+#.FN_BODY SETId/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+#.FN_BODY SETId/imsi VAL_PTR=&imsi_tvb
+ tvbuff_t *imsi_tvb;
+%(DEFAULT_BODY)s
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE);
+ }
+
+#.TYPE_ATTR
+IPAddress/ipv4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+IPAddress/ipv6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+
+#.TYPE_ATTR
+PositionEstimate/latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_PositionEstimate_latitude_fmt)
+
+#.TYPE_ATTR
+PositionEstimate/longitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_PositionEstimate_longitude_fmt)
+
+#.TYPE_ATTR
+PositionEstimate/uncertainty/uncertaintySemiMajor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
+
+#.TYPE_ATTR
+PositionEstimate/uncertainty/uncertaintySemiMinor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
+
+#.FN_BODY PositionEstimate/uncertainty/orientationMajorAxis
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " degrees");
+
+#.FN_FTR PositionEstimate/confidence
+ proto_item_append_text(actx->created_item, "%%");
+
+#.FN_BODY AltitudeInfo/altitude
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.TYPE_ATTR
+AltitudeInfo/altUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_veracc_fmt)
+
+#.TYPE_ATTR
+NMRelement/rxLev DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_NMRelement_rxLev_fmt)
+
+#.TYPE_ATTR
+UTRA-CarrierRSSI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRA_CarrierRSSI_fmt)
+
+#.TYPE_ATTR
+PrimaryCCPCH-RSCP DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_PrimaryCCPCH_RSCP_fmt)
+
+#.TYPE_ATTR
+CPICH-Ec-N0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_CPICH_Ec_N0_fmt)
+
+#.TYPE_ATTR
+CPICH-RSCP DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_CPICH_RSCP_fmt)
+
+#.TYPE_ATTR
+QoP/horacc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
+
+#.TYPE_ATTR
+QoP/veracc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_veracc_fmt)
+
+#.FN_BODY QoP/maxLocAge
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+QoP/delay DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_delay_fmt)
+
+#.FN_BODY Horvel/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horvel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horvel/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horvel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandvervel/verdirect VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 1, ENC_NA);
+ }
+
+#.TYPE_ATTR
+Horandvervel/verdirect TYPE=FT_BOOLEAN STRINGS=TFS(&ulp_vertical_dir_val)
+
+#.FN_BODY Horandvervel/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horandvervel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandvervel/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandvervel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandvervel/verspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandvervel/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horveluncert/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horveluncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horveluncert/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horveluncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horveluncert/uncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horveluncert/uncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/verdirect VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 1, ENC_NA);
+ }
+
+#.TYPE_ATTR
+Horandveruncert/verdirect TYPE=FT_BOOLEAN STRINGS=TFS(&ulp_vertical_dir_val)
+
+#.FN_BODY Horandveruncert/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/verspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/horuncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/horuncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/veruncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/veruncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.TYPE_ATTR
+RelativeTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RelativeTime_fmt)
+
+#.FN_BODY SupportedWLANApData/apMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+SupportedWLANApData/apMACAddress TYPE=FT_ETHER
+
+#.TYPE_ATTR
+RSRP-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RSRP_Range_fmt)
+
+#.TYPE_ATTR
+RSRQ-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RSRQ_Range_fmt)
+
+#.FN_BODY WlanAPInformation/apMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+WlanAPInformation/apMACAddress TYPE=FT_ETHER
+
+#.FN_BODY WlanAPInformation/apTransmitPower
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.FN_BODY WlanAPInformation/apAntennaGain
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBi");
+
+#.FN_BODY WlanAPInformation/apSignaltoNoise
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.FN_BODY WlanAPInformation/apSignalStrength
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.FN_BODY WlanAPInformation/setTransmitPower
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.FN_BODY WlanAPInformation/setAntennaGain
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBi");
+
+#.FN_BODY WlanAPInformation/setSignaltoNoise
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.FN_BODY WlanAPInformation/setSignalStrength
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.TYPE_ATTR
+WlanAPInformation/apSignalStrengthDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.TYPE_ATTR
+WlanAPInformation/apSignaltoNoiseDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.TYPE_ATTR
+WlanAPInformation/setSignalStrengthDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.TYPE_ATTR
+WlanAPInformation/setSignaltoNoiseDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.FN_BODY WlanAPInformation/apSSID VAL_PTR=&ssid_tvb HF_INDEX=-1
+ tvbuff_t *ssid_tvb;
+
+%(DEFAULT_BODY)s
+ if (ssid_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA);
+ }
+
+#.TYPE_ATTR
+WlanAPInformation/apSSID TYPE=FT_STRING DISPLAY=STR_ASCII
+
+#.FN_BODY WlanAPInformation/setMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+WlanAPInformation/setMACAddress TYPE=FT_ETHER
+
+#.TYPE_ATTR
+LocationData/locationAccuracy DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_locationAccuracy_fmt)
+
+#.TYPE_ATTR
+WimaxRTD/rtd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxRTD/rTDstd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxNMR/relDelay DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxNMR/relDelaystd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxNMR/rssi DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxNMR_rssi_fmt)
+
+#.FN_BODY WimaxNMR/rSSIstd
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.TYPE_ATTR
+WimaxNMR/bSTxPower DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxNMR_rssi_fmt)
+
+#.FN_BODY WimaxNMR/cinr
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.FN_BODY WimaxNMR/cINRstd
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.TYPE_ATTR
+UTRAN-GPSReferenceTimeAssistance/gpsReferenceTimeUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.TYPE_ATTR
+UTRAN-GPSReferenceTimeResult/gpsReferenceTimeUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTimeAssistance/ganssTimeID STRINGS=VALS(ulp_ganss_time_id_vals)
+
+#.FN_BODY UTRAN-GANSSReferenceTime/ganssTOD
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTime/utran-GANSSTimingOfCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_utran_GANSSTimingOfCell_fmt)
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTime/ganss-TODUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTimeResult/ganssTimeID STRINGS=VALS(ulp_ganss_time_id_vals)
+
+#.TYPE_ATTR
+SET-GANSSReferenceTime/ganss-TODUncertainty ulp_UTRAN_gpsReferenceTimeUncertainty_fmtulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.FN_BODY ThirdPartyID/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+#.FN_BODY ThirdPartyID/sip-uri
+# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
+ 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%%#@?", 72,
+ NULL);
+#.FN_BODY ThirdPartyID/ims-public-identity
+# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
+ 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%%#@?", 72,
+ NULL);
+#.FN_BODY ThirdPartyID/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+#.FN_BODY ThirdPartyID/uri
+# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
+ 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%%#", 69,
+ NULL);
+
+#.FN_BODY ReportingCap/minInt
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY ReportingCap/maxInt
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " min");
+
+#.TYPE_ATTR
+Coordinate/latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_Coordinate_latitude_fmt)
+
+#.TYPE_ATTR
+Coordinate/longitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_Coordinate_longitude_fmt)
+
+#.FN_BODY CircularArea/radius
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.FN_BODY EllipticalArea/semiMajor
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.FN_BODY EllipticalArea/semiMinor
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.FN_BODY EllipticalArea/angle
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " degrees");
+
+#.FN_BODY PolygonArea/polygonHysteresis
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.END