aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2014-03-17 17:14:39 +0100
committerEvan Huus <eapache@gmail.com>2014-03-17 17:25:43 +0000
commitd416783bc647fc3fb4bdc8515e53e7faf144f19a (patch)
tree492516e3bd5c0efde1bc6a606fbdc34828f5b443
parent1db0fc5c982e7d4c2fc4ff2397744bbc7a06778e (diff)
downloadwireshark-d416783bc647fc3fb4bdc8515e53e7faf144f19a.tar.gz
wireshark-d416783bc647fc3fb4bdc8515e53e7faf144f19a.tar.bz2
wireshark-d416783bc647fc3fb4bdc8515e53e7faf144f19a.zip
ULP: upgrade dissector to approved version 2.0.1
Change-Id: I9d7b16c450cb99aa1d66b0a180241c36f8869637 Reviewed-on: https://code.wireshark.org/review/716 Reviewed-by: Evan Huus <eapache@gmail.com>
-rw-r--r--asn1/ulp/SUPL.asn31
-rw-r--r--asn1/ulp/ULP-Components.asn28
-rw-r--r--asn1/ulp/ULP.asn2
-rw-r--r--asn1/ulp/packet-ulp-template.c2
-rw-r--r--epan/dissectors/packet-ulp.c14
5 files changed, 42 insertions, 35 deletions
diff --git a/asn1/ulp/SUPL.asn b/asn1/ulp/SUPL.asn
index 66713983c4..b4a12d03b0 100644
--- a/asn1/ulp/SUPL.asn
+++ b/asn1/ulp/SUPL.asn
@@ -1,6 +1,6 @@
-- SUPL.asn
--- From OMA UserPlane Location Protocol Candidate Version 2.0 06 Aug 2010
--- OMA-TS-ULP-V2_0-20100806-D
+-- From OMA UserPlane Location Protocol Approved Version 2.0.1 - 05 Dec 2012
+-- OMA-TS-ULP-V2_0_1-20121205-A.zip
--
-- 11.2 Message Specific Part
--
@@ -483,11 +483,8 @@ GSMAreaId ::= SEQUENCE {
refCI INTEGER(0..65535) OPTIONAL, -- Cell Id
...}
--- if only CI is present, MCC, MNC and LAC are assumed to be identical to the current serving or camped on network values
--- if only CI + LAC are present, MCC and MNC are assumed to be identical to the current serving or camped on network values
--- if only CI + LAC + MNC are present, MCC is assumed to be identical to the current serving or camped on network values
--- if only LAC is present, MCC and MNC are assumed to be identical to the current serving or camped on network values
--- if only MNC is present, MCC is assumed to be identical to the current serving or camped on network value
+-- only one of the following four combinations are allowed: (1) refMCC, (2)
+-- refMCC+refMNC, (3) refMCC+refMNC+refLAC or (4) refMCC+refMNC+refLAC+refCI
WCDMAAreaId ::= SEQUENCE {
refMCC INTEGER(0..999) OPTIONAL, -- Mobile Country Code
@@ -496,9 +493,8 @@ refMNC INTEGER(0..999) OPTIONAL, -- Mobile Network Code
refUC INTEGER(0..268435455) OPTIONAL, -- Cell identity
...}
--- if only UC is present, MCC and MNC are assumed to be identical to the current serving or camped on network values
--- if only LAC is present, MCC and MNC are assumed to be identical to the current serving or camped on network values
--- if only MNC is present, MCC is assumed to be identical to the current serving or camped on network value
+-- only one of the following four combinations are allowed: (1) refMCC, (2)
+-- refMCC+refMNC, (3) refMCC+refMNC+refLAC, or (4) refMCC+refMNC+refLAC+refUC
CDMAAreaId::= SEQUENCE {
refSID INTEGER(0..65535) OPTIONAL, -- System Id
@@ -506,8 +502,8 @@ CDMAAreaId::= SEQUENCE {
refBASEID INTEGER(0..65535) OPTIONAL, -- Base Station Id
...}
--- if only BASEID is present, SID and NID are assumed to be identical to the current serving or camped on network values
--- if only NID is present, SID is assumed to be identical to the current serving or camped on network value
+-- only one of the following three combinations are allowed: (1) refSID, (2)
+-- refSID+refNID, or (3) refSID+refNID+refBASEID
HRPDAreaId::= SEQUENCE {
refSECTORID BIT STRING(SIZE (128)), -- HRPD Sector Id
@@ -519,19 +515,16 @@ UMBAreaId::= SEQUENCE {
refSECTORID BIT STRING(SIZE (128)) OPTIONAL, -- UMB Sector Id
...}
--- if only SECTORID is present, MCC and MNC are assumed to be identical to the current serving or camped on network values
--- if only SECTORID + MNC are present, MCC is assumed to be identical to the current serving or camped on network values
--- if only MNC is present, MCC is assumed to be identical to the current serving or camped on network value
LTEAreaId::= SEQUENCE {
refMCC INTEGER(0..999) OPTIONAL, -- Mobile Country Code
refMNC INTEGER(0..999) OPTIONAL, -- Mobile Network Code
-refCI BIT STRING(SIZE (29)) OPTIONAL, -- LTE Cell-Id including CSG bit
+refCI BIT STRING(SIZE (29)) OPTIONAL, -- LTE Cell-Id
...}
--- if only CI is present, MCC and MNC are assumed to be identical to the current serving or camped on network values
--- if only CI + MNC are present, MCC is assumed to be identical to the current serving or camped on network values
--- if only MNC is present, MCC is assumed to be identical to the current serving or camped on network value
+-- only one of the following three combinations are allowed: (1) refMCC, (2) refMCC+refMNC, or (3) refMCC+refMNC+refCI
+-- The LTE Cell-Id is encoded in the 28 Least Significant Bits of refCI -
+-- The Most Significant Bit of refCI shall be ignored -
WLANAreaId::= SEQUENCE {
diff --git a/asn1/ulp/ULP-Components.asn b/asn1/ulp/ULP-Components.asn
index 9532c457d6..b47a9c5e5a 100644
--- a/asn1/ulp/ULP-Components.asn
+++ b/asn1/ulp/ULP-Components.asn
@@ -1,6 +1,6 @@
-- ULP-Components.asn
--- From OMA UserPlane Location Protocol Candidate Version 2.0 06 Aug 2010
--- OMA-TS-ULP-V2_0-20100806-D
+-- From UserPlane Location Protocol Approved Version 2.0.1 - 05 Dec 2012
+-- OMA-TS-ULP-V2_0_1-20121205-A
--
-- 11.5 Common elements (SUPL Version 1)
--
@@ -223,7 +223,7 @@ CPICH-Ec-N0 ::= INTEGER(0..63)
-- cpich-RSCP = 127 -117 = CPICH RSCP < -116 dBm
-- cpich-RSCP = 0 -116 = CPICH RSCP < -115 dBm
-- cpich-RSCP = 1 -115 = CPICH RSCP < -114 dBm
--- ? ? ?
+-- ... ... ...
-- cpich-RSCP = 89 -27 = CPICH RSCP < -26 dBm
-- cpich-RSCP = 90 -26 = CPICH RSCP < -25 dBm
-- cpich-RSCP = 91 -25 = CPICH RSCP dBm
@@ -246,7 +246,10 @@ StatusCode ::= ENUMERATED {
posMethodMismatch(7), posProtocolMismatch(8), targetSETnotReachable(9),
versionNotSupported(10), resourceShortage(11), invalidSessionId(12),
nonProxyModeNotSupported(13), proxyModeNotSupported(14),
- positioningNotPermitted(15), authNetFailure(16), authSuplinitFailure(17), consentDeniedByUser(100), consentGrantedByUser(101), ..., ver2-incompatibleProtectionLevel(18), ver2-serviceNotSupported(19), ver2-insufficientInterval(20), ver2-noSUPLCoverage(21), ver2-sessionStopped(102)}
+ positioningNotPermitted(15), authNetFailure(16), authSuplinitFailure(17),
+ consentDeniedByUser(100), consentGrantedByUser(101), ..., ver2-incompatibleProtectionLevel(18),
+ ver2-serviceNotSupported(19), ver2-insufficientInterval(20), ver2-noSUPLCoverage(21), ver2-sessionStopped(102),
+ ver2-appIdDenied(103)}
QoP ::= SEQUENCE {
horacc INTEGER(0..127),
@@ -312,10 +315,10 @@ MultipleLocationIds ::= SEQUENCE SIZE (1..maxLidSize) OF LocationIdData
LocationIdData ::= SEQUENCE {
locationId LocationId,
relativetimestamp RelativeTime OPTIONAL, -- if relativetimestamp is present, then data represents historical measurement, if absent, data represents current measurements
-servingFlag BOOLEAN, -- if "true?measurements represent serving cell
+servingFlag BOOLEAN, -- if "true" measurements represent serving cell
...}
-RelativeTime ::= INTEGER (0..65535) -- relative time to "current?Location Id in multiples of 0.01sec
+RelativeTime ::= INTEGER (0..65535) -- relative time to "current" Location Id in multiples of 0.01sec
maxLidSize INTEGER ::= 64
@@ -441,9 +444,11 @@ LteCellInformation ::= SEQUENCE {
trackingAreaCode TrackingAreaCode,
rsrpResult RSRP-Range OPTIONAL,
rsrqResult RSRQ-Range OPTIONAL,
- tA INTEGER(0..1282) OPTIONAL, -- Timing Advance as per 3GPP TS 36.321
+ tA INTEGER(0..1282) OPTIONAL, -- Currently used Timing Advance value (N /16 as per [3GPP 36.213]) TA
measResultListEUTRA MeasResultListEUTRA OPTIONAL, --Neighbour measurements
- ...}
+ ...,
+ earfcn INTEGER(0..65535) OPTIONAL
+ }
-- Measured results of neighbours cells per 3GPP TS 36.331 --
@@ -458,7 +463,8 @@ MeasResultEUTRA ::= SEQUENCE {
measResult SEQUENCE {
rsrpResult RSRP-Range OPTIONAL, -- Mapping to measured values
rsrqResult RSRQ-Range OPTIONAL, -- in 3GPP TS 36.133
- ...
+ ...,
+ earfcn INTEGER(0..65535) OPTIONAL
}
}
@@ -687,7 +693,7 @@ ThirdPartyID ::= CHOICE {
emailaddr IA5String(SIZE (1..1000)),
-- sip-uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~%#@?")) (SIZE (1..255)),
-- ims-public-identity VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~%#@?")) (SIZE (1..255)),
--- # asn2wrs does not handle '%' in the resticted string
+-- # asn2wrs does not handle '%' in the restricted string
sip-uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~#@?")) (SIZE (1..255)),
ims-public-identity VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~#@?")) (SIZE (1..255)),
min BIT STRING(SIZE (34)), -- coded according to TIA-553
@@ -741,7 +747,7 @@ EllipticalArea ::= SEQUENCE {
semiMinor INTEGER(1..1000000), -- units in meters
semiMinor-min INTEGER(1..1000000) OPTIONAL, -- hysteresis minimum semiMinor
semiMinor-max INTEGER(1..1500000) OPTIONAL, -- hysteresis maximum semiMinor
- angle INTEGER(0.. 179)} -- units in degrees "the angle is defined as the angle between the semi-major axis and North, increasing in a clockwise direction. An angle of 0 represents an ellipse with the semi-major axis pointing North/South while an angle of 90 represents an ellipse with the semi-major axis pointing East/West.
+ angle INTEGER(0.. 179)} -- units in degrees the angle is defined as the angle between the semi-major axis and North, increasing in a clockwise direction. An angle of 0 represents an ellipse with the semi-major axis pointing North/South while an angle of 90 represents an ellipse with the semi-major axis pointing East/West.
PolygonArea ::= SEQUENCE {
polygonDescription PolygonDescription,
diff --git a/asn1/ulp/ULP.asn b/asn1/ulp/ULP.asn
index 2482d7a0eb..155fe4de14 100644
--- a/asn1/ulp/ULP.asn
+++ b/asn1/ulp/ULP.asn
@@ -1,7 +1,7 @@
-- ULP.asn
--
-- Taken from OMA UserPlane Location Protocol
--- http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-TS-ULP-V2_0-20100816-C.zip
+-- http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-TS-ULP-V2_0_1-20121205-A.zip
--
-- 11.1 Common Part
--
diff --git a/asn1/ulp/packet-ulp-template.c b/asn1/ulp/packet-ulp-template.c
index 56fb0b930a..9260faae73 100644
--- a/asn1/ulp/packet-ulp-template.c
+++ b/asn1/ulp/packet-ulp-template.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * ref OMA-TS-ULP-V2_0-20100806-D
+ * ref OMA-TS-ULP-V2_0_1-20121205-A
* http://www.openmobilealliance.org
*/
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index 4ef45623ac..78fbde00dc 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -28,7 +28,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * ref OMA-TS-ULP-V2_0-20100806-D
+ * ref OMA-TS-ULP-V2_0_1-20121205-A
* http://www.openmobilealliance.org
*/
@@ -538,6 +538,7 @@ static int hf_ulp_rsrpResult = -1; /* RSRP_Range */
static int hf_ulp_rsrqResult = -1; /* RSRQ_Range */
static int hf_ulp_tA_02 = -1; /* INTEGER_0_1282 */
static int hf_ulp_measResultListEUTRA = -1; /* MeasResultListEUTRA */
+static int hf_ulp_earfcn = -1; /* INTEGER_0_65535 */
static int hf_ulp_MeasResultListEUTRA_item = -1; /* MeasResultEUTRA */
static int hf_ulp_cgi_Info = -1; /* T_cgi_Info */
static int hf_ulp_cellGlobalId = -1; /* CellGlobalIdEUTRA */
@@ -3021,6 +3022,7 @@ dissect_ulp_T_cgi_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static const per_sequence_t T_measResult_sequence[] = {
{ &hf_ulp_rsrpResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_RSRP_Range },
{ &hf_ulp_rsrqResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_RSRQ_Range },
+ { &hf_ulp_earfcn , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ulp_INTEGER_0_65535 },
{ NULL, 0, 0, NULL }
};
@@ -3071,6 +3073,7 @@ static const per_sequence_t LteCellInformation_sequence[] = {
{ &hf_ulp_rsrqResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_RSRQ_Range },
{ &hf_ulp_tA_02 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_1282 },
{ &hf_ulp_measResultListEUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_MeasResultListEUTRA },
+ { &hf_ulp_earfcn , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ulp_INTEGER_0_65535 },
{ NULL, 0, 0, NULL }
};
@@ -5142,15 +5145,16 @@ static const value_string ulp_StatusCode_vals[] = {
{ 20, "ver2-insufficientInterval" },
{ 21, "ver2-noSUPLCoverage" },
{ 102, "ver2-sessionStopped" },
+ { 103, "ver2-appIdDenied" },
{ 0, NULL }
};
-static guint32 StatusCode_value_map[20+5] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 100, 101, 18, 19, 20, 21, 102};
+static guint32 StatusCode_value_map[20+6] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 100, 101, 18, 19, 20, 21, 102, 103};
static int
dissect_ulp_StatusCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 20, NULL, TRUE, 5, StatusCode_value_map);
+ 20, NULL, TRUE, 6, StatusCode_value_map);
return offset;
}
@@ -8179,6 +8183,10 @@ void proto_register_ulp(void) {
{ "measResultListEUTRA", "ulp.measResultListEUTRA",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_ulp_earfcn,
+ { "earfcn", "ulp.earfcn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_0_65535", HFILL }},
{ &hf_ulp_MeasResultListEUTRA_item,
{ "MeasResultEUTRA", "ulp.MeasResultEUTRA_element",
FT_NONE, BASE_NONE, NULL, 0,