aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/ulp/ULP-Components.asn
blob: 2f18603fa6c9a218ab7b88bb4e3292722a121262 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
-- UPL-Components.asn
--
-- Taken from OMA UserPlane Location Protocol Candidate Version 1.0 – 22 Jan 2007
-- http://www.openmobilealliance.org/release_program/docs/SUPL/V1_0-20070122-C/OMA-TS-ULP-V1_0-20070122-C.pdf
--
-- 8.3 Common elements 
--

ULP-Components DEFINITIONS AUTOMATIC TAGS ::= 
BEGIN 
 
EXPORTS 
  Version, SessionID, IPAddress, SLPAddress, LocationId, Position, StatusCode, 
  Velocity, QoP, PosMethod, Ver; 
 
-- protocol version expressed as x.y.z (e.g., 5.1.0) 
Version ::= SEQUENCE { 
  maj      INTEGER(0..255), 
  min      INTEGER(0..255), 
  servind  INTEGER(0..255)} 
 
SessionID ::= SEQUENCE { 
  setSessionID  SetSessionID OPTIONAL, -- the semantics of OPTIONAL applies to the encoding only. The parameter itself is MANDATORY. This is introduced only to minimize bandwidth for the SUPL INIT message. Since the setSessionID is allocated by the SET, there is no setSessionID to be transmitted in the SUPL INIT message. 
  slpSessionID  SlpSessionID OPTIONAL -- the semantics of OPTIONAL applies to the encoding only. The parameter itself is MANDATORY. This is introduced only to minimize bandwidth for the SUPL START message. Since the slpSessionID is allocated by the SLP, there is no slpSessionID to be transmitted in the SUPL START message.--} 
 
SetSessionID ::= SEQUENCE {sessionId  INTEGER(0..65535), 
  setId      SETId} 
 
SETId ::= CHOICE { 
  msisdn     OCTET STRING(SIZE (8)), 
  mdn        OCTET STRING(SIZE (8)), 
  min        BIT STRING(SIZE (34)), -- coded according to TIA-553 
  imsi       OCTET STRING(SIZE (8)), 
  nai        IA5String(SIZE (1..1000)), 
  iPAddress  IPAddress, 
  ...} 
 
-- msisdn, mdn and imsi are a BCD (Binary Coded Decimal) string  
-- represent digits from 0 through 9,  
-- two digits per octet, each digit encoded 0000 to 1001 (0 to 9) 
-- bits 8765 of octet n encoding digit 2n 
-- bits 4321 of octet n encoding digit 2(n-1) +1 
-- not used digits in the string shall be filled with 1111  
SlpSessionID ::= SEQUENCE { 
  sessionID  OCTET STRING(SIZE (4)), 
  slpId      SLPAddress} 
 
IPAddress ::= CHOICE { 
  ipv4Address  OCTET STRING(SIZE (4)), 
  ipv6Address  OCTET STRING(SIZE (16))} 
 
SLPAddress ::= CHOICE {iPAddress  IPAddress, 
  fQDN       FQDN, 
  ...} 
 
FQDN ::= 
  VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ".-"))(SIZE (1..255)) 
 
Ver ::= BIT STRING(SIZE (64)) 
 
LocationId ::= SEQUENCE {cellInfo  CellInfo, 
  status    Status, 
  ...} 
 
Status ::= ENUMERATED {stale(0), current(1), unknown(2), ... 
  }
CellInfo ::= CHOICE { 
  gsmCell    GsmCellInformation, 
  wcdmaCell  WcdmaCellInformation, 
  cdmaCell   CdmaCellInformation, 
  ...} 
 
Position ::= SEQUENCE { 
  timestamp         UTCTime, -- shall include seconds and shall use UTC time.  
  positionEstimate  PositionEstimate, 
  velocity          Velocity OPTIONAL, 
  ...} 
 
PositionEstimate ::= SEQUENCE { 
  latitudeSign  ENUMERATED {north, south}, 
  latitude      INTEGER(0..8388607), 
  longitude     INTEGER(-8388608..8388607), 
  uncertainty 
  SEQUENCE {uncertaintySemiMajor  INTEGER(0..127), 
  uncertaintySemiMinor  INTEGER(0..127), 
  orientationMajorAxis  INTEGER(0..180)} OPTIONAL, 
  -- angle in degree between major axis and North 
  confidence    INTEGER(0..100) OPTIONAL, 
  altitudeInfo  AltitudeInfo OPTIONAL, 
  ...} 
 
AltitudeInfo ::= SEQUENCE { 
  altitudeDirection  ENUMERATED {height, depth}, 
  altitude           INTEGER(0..32767), 
  altUncertainty     INTEGER(0..127), 
  ...} -- based on 3GPP TS 23.032 
 
CdmaCellInformation ::= SEQUENCE { 
  refNID         INTEGER(0..65535), -- Network Id 
  refSID         INTEGER(0..32767), -- System Id 
  refBASEID      INTEGER(0..65535), -- Base Station Id 
  refBASELAT     INTEGER(0..4194303), -- Base Station Latitude 
  reBASELONG     INTEGER(0..8388607), -- Base Station Longitude 
  refREFPN       INTEGER(0..511), -- Base Station PN Code 
  refWeekNumber  INTEGER(0..65535), -- GPS Week Number 
  refSeconds     INTEGER(0..4194303)-- GPS Seconds -- , 
  ...} 
 
GsmCellInformation ::= SEQUENCE { 
  refMCC  INTEGER(0..999), -- Mobile Country Code 
  refMNC  INTEGER(0..999), -- Mobile Network Code 
  refLAC  INTEGER(0..65535), -- Location area code 
  refCI   INTEGER(0..65535), -- Cell identity 
  nMR     NMR OPTIONAL, 
  tA      INTEGER(0..255) OPTIONAL, --Timing Advance 
  ...} 
 
WcdmaCellInformation ::= SEQUENCE { 
  refMCC                 INTEGER(0..999), -- Mobile Country Code 
  refMNC                 INTEGER(0..999), -- Mobile Network Code 
  refUC                  INTEGER(0..268435455), -- Cell identity 
  frequencyInfo          FrequencyInfo OPTIONAL, 
  primaryScramblingCode  INTEGER(0..511) OPTIONAL, 
  measuredResultsList    MeasuredResultsList OPTIONAL, 
  ...} 
 
FrequencyInfo ::= SEQUENCE { 
  modeSpecificInfo  CHOICE {fdd  FrequencyInfoFDD, 
  tdd  FrequencyInfoTDD, 
  ...}, 
  ...} 
 
FrequencyInfoFDD ::= SEQUENCE { 
  uarfcn-UL  UARFCN OPTIONAL, 
  uarfcn-DL  UARFCN, 
  ...} 
 
FrequencyInfoTDD ::= SEQUENCE {uarfcn-Nt  UARFCN,
  ...} 
 
UARFCN ::= INTEGER(0..16383) 
 
NMR ::= SEQUENCE (SIZE (1..15)) OF NMRelement 
 
NMRelement ::= SEQUENCE { 
  aRFCN  INTEGER(0..1023), 
  bSIC   INTEGER(0..63), 
  rxLev  INTEGER(0..63), 
  ...} 
 
MeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasuredResults 
 
MeasuredResults ::= SEQUENCE { 
  frequencyInfo            FrequencyInfo OPTIONAL, 
  utra-CarrierRSSI         UTRA-CarrierRSSI OPTIONAL, 
  cellMeasuredResultsList  CellMeasuredResultsList OPTIONAL} 
 
CellMeasuredResultsList ::= 
  SEQUENCE (SIZE (1..maxCellMeas)) OF CellMeasuredResults 
 
-- SPARE: UTRA-CarrierRSSI, Max = 76 
-- Values above Max are spare 
UTRA-CarrierRSSI ::= INTEGER(0..127) 
 
CellMeasuredResults ::= SEQUENCE { 
  cellIdentity      INTEGER(0..268435455) OPTIONAL, 
  modeSpecificInfo 
  CHOICE {fdd 
  SEQUENCE {primaryCPICH-Info  PrimaryCPICH-Info, 
  cpich-Ec-N0        CPICH-Ec-N0 OPTIONAL, 
  cpich-RSCP         CPICH-RSCP OPTIONAL, 
  pathloss           Pathloss OPTIONAL}, 
  tdd 
  SEQUENCE {cellParametersID   CellParametersID, 
  proposedTGSN       TGSN OPTIONAL, 
  primaryCCPCH-RSCP  PrimaryCCPCH-RSCP OPTIONAL, 
  pathloss           Pathloss OPTIONAL, 
  timeslotISCP-List  TimeslotISCP-List OPTIONAL}}} 
 
CellParametersID ::= INTEGER(0..127) 
 
TGSN ::= INTEGER(0..14) 
 
PrimaryCCPCH-RSCP ::= INTEGER(0..127) 
 
-- SPARE: TimeslotISCP, Max = 91 
-- Values above Max are spare 
TimeslotISCP ::= INTEGER(0..127) 
 
TimeslotISCP-List ::= SEQUENCE (SIZE (1..maxTS)) OF TimeslotISCP 
 
PrimaryCPICH-Info ::= SEQUENCE {primaryScramblingCode  INTEGER(0..511)} 
 
-- SPARE: CPICH-Ec-No, Max = 49 
-- Values above Max are spare 
CPICH-Ec-N0 ::= INTEGER(0..63) 
 
-- SPARE: CPICH- RSCP, Max = 91 
-- Values above Max are spare 
CPICH-RSCP ::= INTEGER(0..127) 
 
-- SPARE: Pathloss, Max = 158 
-- Values above Max are spare 
Pathloss ::= INTEGER(46..173) 
 
maxCellMeas INTEGER ::= 32 
 
maxFreq INTEGER ::= 8

maxTS INTEGER ::= 14 
 
StatusCode ::= ENUMERATED { 
  unspecified(0), systemFailure(1), unexpectedMessage(2), protocolError(3), 
  dataMissing(4), unexpectedDataValue(5), posMethodFailure(6), 
  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), ... 
  }
QoP ::= SEQUENCE { 
  horacc     INTEGER(0..127), 
  veracc     INTEGER(0..127) OPTIONAL, -- as defined in 3GPP TS 23.032 “uncertainty altitude”— 
  maxLocAge  INTEGER(0..65535) OPTIONAL, 
  delay      INTEGER(0..7) OPTIONAL, -- as defined in 3GPP TS 44.031 
  ...} 
 
Velocity ::= CHOICE { -- velocity definition as per 23.032 
  horvel           Horvel, 
  horandvervel     Horandvervel, 
  horveluncert     Horveluncert, 
  horandveruncert  Horandveruncert, 
  ...} 
 
Horvel ::= SEQUENCE { 
  bearing   BIT STRING(SIZE (9)), 
  horspeed  BIT STRING(SIZE (16)), 
  ...} 
 
Horandvervel ::= SEQUENCE { 
  verdirect  BIT STRING(SIZE (1)), 
  bearing    BIT STRING(SIZE (9)), 
  horspeed   BIT STRING(SIZE (16)), 
  verspeed   BIT STRING(SIZE (8)), 
  ...} 
 
Horveluncert ::= SEQUENCE { 
  bearing      BIT STRING(SIZE (9)), 
  horspeed     BIT STRING(SIZE (16)), 
  uncertspeed  BIT STRING(SIZE (8)), 
  ...} 
 
Horandveruncert ::= SEQUENCE { 
  verdirect       BIT STRING(SIZE (1)), 
  bearing         BIT STRING(SIZE (9)), 
  horspeed        BIT STRING(SIZE (16)), 
  verspeed        BIT STRING(SIZE (8)), 
  horuncertspeed  BIT STRING(SIZE (8)), 
  veruncertspeed  BIT STRING(SIZE (8)), 
  ...} 
 
PosMethod ::= ENUMERATED { 
  agpsSETassisted(0), agpsSETbased(1), agpsSETassistedpref(2), 
  agpsSETbasedpref(3), autonomousGPS(4), aFLT(5), eCID(6), eOTD(7), oTDOA(8), 
  noPosition(9), ... 
  }
END