aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/ulp/packet-ulp-template.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1/ulp/packet-ulp-template.c')
-rw-r--r--epan/dissectors/asn1/ulp/packet-ulp-template.c123
1 files changed, 61 insertions, 62 deletions
diff --git a/epan/dissectors/asn1/ulp/packet-ulp-template.c b/epan/dissectors/asn1/ulp/packet-ulp-template.c
index 8e0355ed1f..bae4941971 100644
--- a/epan/dissectors/asn1/ulp/packet-ulp-template.c
+++ b/epan/dissectors/asn1/ulp/packet-ulp-template.c
@@ -44,7 +44,7 @@ static dissector_handle_t lpp_handle;
#define ULP_PORT 7275
/* Initialize the protocol and registered fields */
-static int proto_ulp = -1;
+static int proto_ulp;
#define ULP_HEADER_SIZE 2
@@ -52,22 +52,23 @@ static int proto_ulp = -1;
static gboolean ulp_desegment = TRUE;
#include "packet-ulp-hf.c"
-static int hf_ulp_mobile_directory_number = -1;
-static int hf_ulp_ganssTimeModels_bit0 = -1;
-static int hf_ulp_ganssTimeModels_bit1 = -1;
-static int hf_ulp_ganssTimeModels_bit2 = -1;
-static int hf_ulp_ganssTimeModels_bit3 = -1;
-static int hf_ulp_ganssTimeModels_bit4 = -1;
-static int hf_ulp_ganssTimeModels_spare = -1;
+static int hf_ulp_mobile_directory_number;
+static int hf_ulp_ganssTimeModels_bit0;
+static int hf_ulp_ganssTimeModels_bit1;
+static int hf_ulp_ganssTimeModels_bit2;
+static int hf_ulp_ganssTimeModels_bit3;
+static int hf_ulp_ganssTimeModels_bit4;
+static int hf_ulp_ganssTimeModels_spare;
/* Initialize the subtree pointers */
-static gint ett_ulp = -1;
-static gint ett_ulp_setid = -1;
-static gint ett_ulp_thirdPartyId = -1;
-static gint ett_ulp_ganssTimeModels = -1;
+static gint ett_ulp;
+static gint ett_ulp_setid;
+static gint ett_ulp_thirdPartyId;
+static gint ett_ulp_ganssTimeModels;
#include "packet-ulp-ett.c"
static dissector_handle_t ulp_tcp_handle;
+static dissector_handle_t ulp_pdu_handle;
static const value_string ulp_ganss_id_vals[] = {
{ 0, "Galileo"},
@@ -91,18 +92,18 @@ static void
ulp_ganssDataBitInterval_fmt(gchar *s, guint32 v)
{
if (v == 15) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "Time interval is not specified (15)");
+ snprintf(s, ITEM_LABEL_LENGTH, "Time interval is not specified (15)");
} else {
double interval = (0.1*pow(2, (double)v));
- g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", interval, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", interval, v);
}
}
static void
ulp_ExtendedEphemeris_validity_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%uh (%u)", 4*v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%uh (%u)", 4*v, v);
}
static void
@@ -110,7 +111,7 @@ ulp_PositionEstimate_latitude_fmt(gchar *s, guint32 v)
{
double latitude = ((double)v*90)/pow(2,23);
- g_snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", latitude, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", latitude, v);
}
static void
@@ -118,18 +119,18 @@ ulp_PositionEstimate_longitude_fmt(gchar *s, guint32 v)
{
double longitude = ((double)(gint32)v*360)/pow(2,24);
- g_snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", longitude, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", longitude, v);
}
static void
ulp_NMRelement_rxLev_fmt(gchar *s, guint32 v)
{
if (v == 0) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RxLev < -110dBm (0)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RxLev < -110dBm (0)");
} else if (v == 63) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RxLev >= -48dBm (63)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RxLev >= -48dBm (63)");
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RxLev < %ddBm (%u)", -111+v, -110+v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RxLev < %ddBm (%u)", -111+v, -110+v, v);
}
}
@@ -137,13 +138,13 @@ static void
ulp_UTRA_CarrierRSSI_fmt(gchar *s, guint32 v)
{
if (v == 0) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
} else if (v == 76) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSSI >= -25dBm (76)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSSI >= -25dBm (76)");
} else if (v > 76) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSSI < %ddBm (%u)", -101+v, -100+v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSSI < %ddBm (%u)", -101+v, -100+v, v);
}
}
@@ -151,13 +152,13 @@ static void
ulp_PrimaryCCPCH_RSCP_fmt(gchar *s, guint32 v)
{
if (v == 0) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSCP < -115dBm (0)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSCP < -115dBm (0)");
} else if (v == 91) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSCP >= -25dBm (91)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSCP >= -25dBm (91)");
} else if (v > 91) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSCP < %ddBm (%u)", -116+v, -115+v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSCP < %ddBm (%u)", -116+v, -115+v, v);
}
}
@@ -165,13 +166,13 @@ static void
ulp_CPICH_Ec_N0_fmt(gchar *s, guint32 v)
{
if (v == 0) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 < -24dB (0)");
+ snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 < -24dB (0)");
} else if (v == 49) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 >= 0dB (49)");
+ snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 >= 0dB (49)");
} else if (v > 49) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= CPICH Ec/N0 < %.1fdB (%u)", -24.5+((float)v/2), -24+((float)v/2), v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= CPICH Ec/N0 < %.1fdB (%u)", -24.5+((float)v/2), -24+((float)v/2), v);
}
}
@@ -179,15 +180,15 @@ static void
ulp_CPICH_RSCP_fmt(gchar *s, guint32 v)
{
if (v == 123) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP < -120dBm (123)");
+ snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP < -120dBm (123)");
} else if (v > 123) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= CPICH RSCP < %ddBm (%u)", -244+v, -243+v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= CPICH RSCP < %ddBm (%u)", -244+v, -243+v, v);
} else if (v == 91) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP >= -25dBm (91)");
+ snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP >= -25dBm (91)");
} else if (v < 91) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm < CPICH RSCP <= %ddBm (%u)", -116+v, -115+v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm < CPICH RSCP <= %ddBm (%u)", -116+v, -115+v, v);
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
}
}
@@ -197,9 +198,9 @@ ulp_QoP_horacc_fmt(gchar *s, guint32 v)
double uncertainty = 10*(pow(1.1, (double)v)-1);
if (uncertainty < 1000) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%fkm (%u)", uncertainty/1000, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fkm (%u)", uncertainty/1000, v);
}
}
@@ -208,13 +209,13 @@ ulp_QoP_veracc_fmt(gchar *s, guint32 v)
{
double uncertainty = 45*(pow(1.025, (double)v)-1);
- g_snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
}
static void
ulp_QoP_delay_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", pow(2, (double)v), v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", pow(2, (double)v), v);
}
static const true_false_string ulp_vertical_dir_val = {
@@ -225,18 +226,18 @@ static const true_false_string ulp_vertical_dir_val = {
static void
ulp_RelativeTime_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fs (%u)", 0.01*v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.2fs (%u)", 0.01*v, v);
}
static void
ulp_RSRP_Range_fmt(gchar *s, guint32 v)
{
if (v == 0) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)");
} else if (v == 97) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP >= -44dBm (97)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSRP >= -44dBm (97)");
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSRP < %ddBm (%u)", -141+v, -140+v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSRP < %ddBm (%u)", -141+v, -140+v, v);
}
}
@@ -244,36 +245,36 @@ static void
ulp_RSRQ_Range_fmt(gchar *s, guint32 v)
{
if (v == 0) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
} else if (v == 64) {
- g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ >= -3dB (34)");
+ snprintf(s, ITEM_LABEL_LENGTH, "RSRQ >= -3dB (34)");
} else {
- g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RSRQ < %.1fdB (%u)", -20+((float)v/2), -19.5+((float)v/2), v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RSRQ < %.1fdB (%u)", -20+((float)v/2), -19.5+((float)v/2), v);
}
}
static void
ulp_SignalDelta_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%sdB (%u)", v ? "0.5" : "0", v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%sdB (%u)", v ? "0.5" : "0", v);
}
static void
ulp_locationAccuracy_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%u)", 0.1*v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%u)", 0.1*v, v);
}
static void
ulp_WimaxRTD_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.01*v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.01*v, v);
}
static void
ulp_WimaxNMR_rssi_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fdBm (%u)", -103.75+(0.25*v), v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.2fdBm (%u)", -103.75+(0.25*v), v);
}
static void
@@ -281,7 +282,7 @@ ulp_UTRAN_gpsReferenceTimeUncertainty_fmt(gchar *s, guint32 v)
{
double uncertainty = 0.0022*(pow(1.18, (double)v)-1);
- g_snprintf(s, ITEM_LABEL_LENGTH, "%fus (%u)", uncertainty, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fus (%u)", uncertainty, v);
}
static const value_string ulp_ganss_time_id_vals[] = {
@@ -295,13 +296,13 @@ static const value_string ulp_ganss_time_id_vals[] = {
static void
ulp_utran_GANSSTimingOfCell_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.25*v, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.25*v, v);
}
static void
ulp_Coordinate_latitude_fmt(gchar *s, guint32 v)
{
- g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
+ snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
((float)v/8388607.0)*90, v);
}
@@ -310,7 +311,7 @@ ulp_Coordinate_longitude_fmt(gchar *s, guint32 v)
{
gint32 longitude = (gint32) v;
- g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
+ snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
((float)longitude/8388608.0)*180, longitude);
}
@@ -403,6 +404,7 @@ void proto_register_ulp(void) {
/* Register protocol */
proto_ulp = proto_register_protocol(PNAME, PSNAME, PFNAME);
ulp_tcp_handle = register_dissector("ulp", dissect_ulp_tcp, proto_ulp);
+ ulp_pdu_handle = register_dissector("ulp.pdu", dissect_ULP_PDU_PDU, proto_ulp);
/* Register fields and subtrees */
proto_register_field_array(proto_ulp, hf, array_length(hf));
@@ -422,15 +424,12 @@ void proto_register_ulp(void) {
void
proto_reg_handoff_ulp(void)
{
- dissector_handle_t ulp_udp_handle;
-
- dissector_add_string("media_type","application/oma-supl-ulp", ulp_tcp_handle);
- dissector_add_string("media_type","application/vnd.omaloc-supl-init", ulp_tcp_handle);
- ulp_udp_handle = create_dissector_handle(dissect_ULP_PDU_PDU, proto_ulp);
rrlp_handle = find_dissector_add_dependency("rrlp", proto_ulp);
lpp_handle = find_dissector_add_dependency("lpp", proto_ulp);
+ dissector_add_string("media_type","application/oma-supl-ulp", ulp_pdu_handle);
+ dissector_add_string("media_type","application/vnd.omaloc-supl-init", ulp_pdu_handle);
dissector_add_uint_with_preference("tcp.port", ULP_PORT, ulp_tcp_handle);
- dissector_add_uint_with_preference("udp.port", ULP_PORT, ulp_udp_handle);
+ dissector_add_uint_with_preference("udp.port", ULP_PORT, ulp_pdu_handle);
}