Harald Welte | a814f26 | 2017-07-24 13:21:35 +0200 | [diff] [blame] | 1 | /////////////////////////////////////////////////////////////////////////////// |
| 2 | // // |
| 3 | // Copyright Test Competence Center (TCC) ETH 2016 // |
| 4 | // // |
| 5 | // The copyright to the computer program(s) herein is the property of TCC. // |
| 6 | // The program(s) may be used and/or copied only with the written permission // |
| 7 | // of TCC or in accordance with the terms and conditions stipulated in the // |
| 8 | // agreement/contract under which the program(s) has been supplied. // |
| 9 | // // |
| 10 | /////////////////////////////////////////////////////////////////////////////// |
| 11 | // |
| 12 | // File: GTPC_Types.ttcn |
| 13 | // Rev: R1B |
| 14 | // Prodnr: CNL 113 843 |
| 15 | // Contact: http://ttcn.ericsson.se |
| 16 | // Reference: 3GPP TS 29.060 v13.5.0 |
| 17 | |
| 18 | module GTPC_Types { |
| 19 | |
| 20 | import from General_Types all; |
| 21 | |
| 22 | // external encoding/decoding functions |
| 23 | external function enc_PDU_GTPC(in PDU_GTPC gtpc_pdu) return octetstring |
| 24 | with { extension "prototype(convert)" |
| 25 | extension "encode(RAW)" |
| 26 | } |
| 27 | |
| 28 | external function dec_PDU_GTPC(in octetstring udp_pdu, SystemUnderTest pl_SystemUnderTest := SGSN) return PDU_GTPC |
| 29 | // for SGSN testing pl_SystemUnderTest is SGSN (default value) |
| 30 | // for GGSN testing pl_SystemUnderTest is GGSN |
| 31 | // for CGW testing pl_SystemUnderTest is CGW |
| 32 | // for MME testing pl_SystemUnderTest is MME |
| 33 | // in current implementation the decoder behavior is identical for |
| 34 | // SGSN and MME |
| 35 | |
| 36 | // determines SUT, needed for decoding updatePDPContextRequest |
| 37 | // and updatePDPContextResponse messages |
| 38 | type enumerated SystemUnderTest{SGSN(0),GGSN(1),CGW(2),MME(3)}; |
| 39 | ///////////////////////////// |
| 40 | // Information Elements |
| 41 | ///////////////////////////// |
| 42 | //Information Element with an IE Type Extension field - 7.7.0A |
| 43 | //for future use |
| 44 | type record IE_Type_Extension { |
| 45 | OCT1 type_gtpc, |
| 46 | LIN2_BO_LAST lengthf, //16 bits |
| 47 | IE_Extension_UnionType iE_Type_Extension |
| 48 | |
| 49 | } with { |
| 50 | variant (lengthf) "LENGTHTO(iE_Type_Extension)"; |
| 51 | variant "PRESENCE( type_gtpc = 'EE'O)"; |
| 52 | }; |
| 53 | |
| 54 | type union IE_Extension_UnionType |
| 55 | { |
| 56 | IE_Extension_Type iE_Type_Extension |
| 57 | } |
| 58 | |
| 59 | type record IE_Extension_Type |
| 60 | { |
| 61 | OCT2 elementIdentifier, |
| 62 | octetstring valueField |
| 63 | } |
| 64 | |
| 65 | |
| 66 | //Cause - 7.7.1 |
| 67 | type record Cause_gtpc { |
| 68 | OCT1 type_gtpc, |
| 69 | OCT1 causevalue |
| 70 | } with { variant "PRESENCE( type_gtpc = '01'O)"; }; |
| 71 | |
| 72 | //IMSI - 7.7.2 |
| 73 | type record IMSI_gtpc { |
| 74 | OCT1 type_gtpc, |
| 75 | hexstring digits length(15), |
| 76 | HEX1 padding |
| 77 | } with { variant "PRESENCE( type_gtpc = '02'O)"; }; |
| 78 | |
| 79 | //Routing Area ID - 7.7.3 |
| 80 | // Note : the order of MNC digits is |
| 81 | // MNC digit 3, MNC digit 1, MNC digit 2 |
| 82 | type record RoutingAreaIdentity { |
| 83 | OCT1 type_gtpc, |
| 84 | hexstring mcc_digits length(3), |
| 85 | hexstring mnc_digits length(3), |
| 86 | OCT2 lac, |
| 87 | OCT1 rac |
| 88 | } with { variant "PRESENCE( type_gtpc = '03'O)"; }; |
| 89 | |
| 90 | //TLLI - 7.7.4 |
| 91 | type record TLLI { |
| 92 | OCT1 type_gtpc, |
| 93 | OCT4 tlli_element |
| 94 | } with { variant "PRESENCE( type_gtpc = '04'O)"; }; |
| 95 | |
| 96 | //Packet TMSI - 7.7.5 |
| 97 | type record PacketTMSI { |
| 98 | OCT1 type_gtpc, |
| 99 | OCT4 p_tmsi |
| 100 | } with { variant "PRESENCE( type_gtpc = '05'O)"; }; |
| 101 | |
| 102 | //Reordering Required - 7.7.6 |
| 103 | type record ReorderingRequired { |
| 104 | OCT1 type_gtpc, |
| 105 | BIT1 reordreq, |
| 106 | BIT7 spare |
| 107 | } with { variant "PRESENCE( type_gtpc = '08'O)"; }; |
| 108 | |
| 109 | //Authentication Triplet - 7.7.7 |
| 110 | type record AuthenticationTriplet_GTPC { |
| 111 | OCT1 type_gtpc, |
| 112 | OCT16 rand, |
| 113 | OCT4 sres, |
| 114 | OCT8 kc |
| 115 | } with { variant "PRESENCE( type_gtpc = '09'O)"; }; |
| 116 | |
| 117 | type set of AuthenticationTriplet_GTPC AuthenticationTriplet_GTPC_SetOf; |
| 118 | |
| 119 | //MAP Cause - 7.7.8 |
| 120 | type record MAP_Cause { |
| 121 | OCT1 type_gtpc, |
| 122 | OCT1 mapCauseValue |
| 123 | } with { variant "PRESENCE( type_gtpc = '0B'O)"; }; |
| 124 | |
| 125 | //PTMSI Signature - 7.7.9 |
| 126 | type record PTMSI_Signature { |
| 127 | OCT1 type_gtpc, |
| 128 | OCT3 ptmsi_Signature |
| 129 | } with { variant "PRESENCE( type_gtpc = '0C'O)"; }; |
| 130 | |
| 131 | //MS Validated - 7.7.10 |
| 132 | type record MS_Validated { |
| 133 | OCT1 type_gtpc, |
| 134 | BIT1 msValidated, |
| 135 | BIT7 spare |
| 136 | } with { variant "PRESENCE( type_gtpc = '0D'O)"; }; |
| 137 | |
| 138 | //Recovery - 7.7.11 |
| 139 | type record Recovery_gtpc { |
| 140 | OCT1 type_gtpc, |
| 141 | OCT1 restartCounter |
| 142 | } with { variant "PRESENCE(type_gtpc = '0E'O)";}; |
| 143 | |
| 144 | //Selection Mode - 7.7.12 |
| 145 | type record SelectionMode { |
| 146 | OCT1 type_gtpc, |
| 147 | BIT2 selectModeValue, |
| 148 | BIT6 spare |
| 149 | } with { variant "PRESENCE(type_gtpc = '0F'O)"; }; |
| 150 | |
| 151 | //TEI Data I - 7.7.13 |
| 152 | type record TeidDataI { |
| 153 | OCT1 type_gtpc, |
| 154 | OCT4 teidDataI |
| 155 | } with { variant "PRESENCE(type_gtpc = '10'O)"; }; |
| 156 | |
| 157 | //TEI Control Plane - 7.7.14 |
| 158 | type record TeidControlPlane { |
| 159 | OCT1 type_gtpc, |
| 160 | OCT4 teidControlPlane |
| 161 | } with { variant "PRESENCE(type_gtpc = '11'O)"; }; |
| 162 | |
| 163 | //TEI Data II - 7.7.15 |
| 164 | type record of TeidDataII TeidDataII_List |
| 165 | |
| 166 | type record TeidDataII { |
| 167 | OCT1 type_gtpc, |
| 168 | BIT4 nsapi, |
| 169 | BIT4 unused, |
| 170 | OCT4 teidDataII |
| 171 | } with { variant "PRESENCE(type_gtpc = '12'O)"; }; |
| 172 | |
| 173 | //Teardown Ind -7.7.16 |
| 174 | type record TearDownInd { |
| 175 | OCT1 type_gtpc, |
| 176 | BIT1 tdInd, |
| 177 | BIT7 spare |
| 178 | } with { variant "PRESENCE(type_gtpc = '13'O)"; }; |
| 179 | |
| 180 | //NSAPI - 7.7.17 |
| 181 | type record NSAPI_GTPC { |
| 182 | OCT1 type_gtpc, |
| 183 | BIT4 nsapi, |
| 184 | BIT4 unused |
| 185 | } with { variant "PRESENCE(type_gtpc = '14'O)"; }; |
| 186 | |
| 187 | //RANAP Cause - 7.7.18 |
| 188 | type record RANAPCause { |
| 189 | OCT1 type_gtpc, |
| 190 | OCT1 ranapCause |
| 191 | } with { variant "PRESENCE(type_gtpc = '15'O)"; }; |
| 192 | |
| 193 | //RAB Context - 7.7.19 |
| 194 | type record of RABContext RABContext_List; |
| 195 | |
| 196 | type record RABContext { |
| 197 | OCT1 type_gtpc, |
| 198 | BIT4 nsapi, |
| 199 | BIT4 spare, |
| 200 | OCT2 dlgtp_u, |
| 201 | OCT2 ulgtp_u, |
| 202 | OCT2 dl_pdcp, |
| 203 | OCT2 ul_pdcp |
| 204 | } with {variant "PRESENCE( type_gtpc = '16'O)";}; |
| 205 | |
| 206 | //Radio Priority SMS - 7.7.20 |
| 207 | type record RadioPrioritySMS { |
| 208 | OCT1 type_gtpc, |
| 209 | BIT3 radioprioritySMS, |
| 210 | BIT5 reserved |
| 211 | } with {variant "PRESENCE( type_gtpc = '17'O)";}; |
| 212 | |
| 213 | //RadioPriority - 7.7.21 |
| 214 | |
| 215 | type record of RadioPriority RadioPriority_List; |
| 216 | |
| 217 | type record RadioPriority { |
| 218 | OCT1 type_gtpc, |
| 219 | BIT3 radiopriority, |
| 220 | BIT1 reserved, |
| 221 | BIT4 nsapi |
| 222 | } with {variant "PRESENCE( type_gtpc = '18'O)";}; |
| 223 | |
| 224 | //Packet Flow Id - 7.7.22 |
| 225 | type record of PacketFlowID PacketFlowID_List |
| 226 | |
| 227 | type record PacketFlowID { |
| 228 | OCT1 type_gtpc, |
| 229 | BIT4 nsapi, |
| 230 | BIT4 reserved, |
| 231 | OCT1 packflowID |
| 232 | } with {variant "PRESENCE( type_gtpc = '19'O)";}; |
| 233 | |
| 234 | //Charging Characteristics - 7.7.23 |
| 235 | type record of ChargingCharacteristics_GTPC |
| 236 | ChargingCharacteristics_List_GTPC; |
| 237 | |
| 238 | type record ChargingCharacteristics_GTPC { |
| 239 | OCT1 type_gtpc, |
| 240 | OCT2 chargingChar |
| 241 | } with {variant "PRESENCE( type_gtpc = '1A'O)";}; |
| 242 | |
| 243 | //Trace Reference - 7.7.24 |
| 244 | type record TraceRef { |
| 245 | OCT1 type_gtpc, |
| 246 | OCT2 trace_ref |
| 247 | } with {variant "PRESENCE( type_gtpc = '1B'O)";}; |
| 248 | |
| 249 | //Trace Type - 7.7.25 |
| 250 | type record GTP_TraceType { |
| 251 | OCT1 type_gtpc, |
| 252 | OCT2 trace_type |
| 253 | } with {variant "PRESENCE( type_gtpc = '1C'O)";}; |
| 254 | |
| 255 | //MS Not Reachable Reason - 7.7.25A |
| 256 | type record MSNotReachableReason { |
| 257 | OCT1 type_gtpc, |
| 258 | OCT1 reason_for_absence |
| 259 | } with {variant "PRESENCE( type_gtpc = '1D'O)";}; |
| 260 | |
| 261 | //Radio Priority LCS - 7.7.25B |
| 262 | type record RadioPriorityLCS{ |
| 263 | OCT1 type_gtpc, |
| 264 | LIN2_BO_LAST lengthf, //16 bits |
| 265 | BIT3 radioPriorityLCS, |
| 266 | BIT5 reserved |
| 267 | } with { variant "PRESENCE( type_gtpc = '96'O)"; |
| 268 | variant (lengthf) "LENGTHTO(radioPriorityLCS,reserved)"; }; |
| 269 | |
| 270 | //Charging ID - 7.7.26 |
| 271 | type record ChargingID { |
| 272 | OCT1 type_gtpc, |
| 273 | OCT4 chargingID |
| 274 | } with { variant "PRESENCE( type_gtpc = '7F'O)";}; |
| 275 | |
| 276 | //End User Address ID - 7.7.27 |
| 277 | type record EndUserAddress{ |
| 278 | OCT1 type_gtpc, |
| 279 | EndUserAddress_types endUserAddress |
| 280 | } with { variant "PRESENCE( type_gtpc = '80'O)";}; |
| 281 | |
| 282 | type union EndUserAddress_types { |
| 283 | EndUserAddressIPv4 endUserAddressIPv4, |
| 284 | EndUserAddressIPv6 endUserAddressIPv6, |
| 285 | EndUserAddressPPP endUserAddressPPP, |
| 286 | EndUserAddressIPv4andIPv6 endUserAddressIPv4andIPv6, |
| 287 | EndUserAddressOSPIHOS endUserAddressOSPIHOS |
| 288 | } with { variant "TAG(endUserAddressIPv4, pdp_typenum = '21'O; |
| 289 | endUserAddressIPv6, pdp_typenum = '57'O; |
| 290 | endUserAddressPPP, pdp_typenum = '01'O; |
| 291 | endUserAddressIPv4andIPv6, pdp_typenum = '8D'O; |
| 292 | endUserAddressOSPIHOS, OTHERWISE;)" }; |
| 293 | |
| 294 | type record EndUserAddressIPv4 { |
| 295 | LIN2_BO_LAST lengthf, //16 bits |
| 296 | BIT4 pdp_typeorg, |
| 297 | BIT4 spare, |
| 298 | OCT1 pdp_typenum, |
| 299 | OCT4 ipv4_address optional |
| 300 | } with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum, |
| 301 | ipv4_address)"; }; |
| 302 | |
| 303 | type record EndUserAddressIPv6 { |
| 304 | LIN2_BO_LAST lengthf, //16 bits |
| 305 | BIT4 pdp_typeorg, |
| 306 | BIT4 spare, |
| 307 | OCT1 pdp_typenum, |
| 308 | OCT16 ipv6_address optional |
| 309 | } with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum, |
| 310 | ipv6_address)"; }; |
| 311 | |
| 312 | type record EndUserAddressPPP { |
| 313 | LIN2_BO_LAST lengthf, //16 bits |
| 314 | BIT4 pdp_typeorg, |
| 315 | BIT4 spare, |
| 316 | OCT1 pdp_typenum |
| 317 | } with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum)"; }; |
| 318 | |
| 319 | type record EndUserAddressIPv4andIPv6 { |
| 320 | LIN2_BO_LAST lengthf, //16 bits |
| 321 | BIT4 pdp_typeorg, |
| 322 | BIT4 spare, |
| 323 | OCT1 pdp_typenum, |
| 324 | OCT4 ipv4_address optional, |
| 325 | OCT16 ipv6_address optional |
| 326 | } with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum,ipv4_address, |
| 327 | ipv6_address)"; |
| 328 | variant(ipv4_address) "PRESENCE(lengthf = 6,lengthf = 22)" |
| 329 | variant(ipv6_address) "PRESENCE(lengthf = 18,lengthf = 22)" |
| 330 | }; |
| 331 | |
| 332 | // ETHECS: specification not found in Technical Specification |
| 333 | type record EndUserAddressOSPIHOS { |
| 334 | LIN2_BO_LAST lengthf, //16 bits |
| 335 | BIT4 pdp_typeorg, |
| 336 | BIT4 spare, |
| 337 | OCT1 pdp_typenum |
| 338 | } with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum)"; }; |
| 339 | |
| 340 | //MM Context - 7.7.28 |
| 341 | type record MM_Context { |
| 342 | OCT1 type_gtpc, |
| 343 | MM_ContextU context |
| 344 | } with { variant "PRESENCE( type_gtpc = '81'O)";}; |
| 345 | |
| 346 | type union MM_ContextU { |
| 347 | MM_ContextGSM mmcontGSM, |
| 348 | MM_ContextUMTS mmcontUMTS, |
| 349 | MM_ContextGSMUMTS mmcontGSMUMTS, |
| 350 | MM_ContextUMTSReceive mmcontUMTSReceive |
| 351 | } with { variant "TAG(mmcontGSM, security = '01'B; |
| 352 | mmcontUMTS, security = '10'B; |
| 353 | mmcontGSMUMTS, security = '11'B; |
| 354 | mmcontUMTSReceive, security = '00'B;)"; }; |
| 355 | |
| 356 | |
| 357 | type record MM_ContextGSM { |
| 358 | LIN2_BO_LAST lengthf,//16 bits |
| 359 | BIT3 cksn, |
| 360 | BIT5 spare, |
| 361 | BIT3 usedCipher, |
| 362 | integer noofVectors, |
| 363 | BIT2 security, |
| 364 | OCT8 kc, |
| 365 | octetstring triplet, |
| 366 | OCT2 drx_par, |
| 367 | integer msNetW_cap_length, |
| 368 | octetstring msNetw_cap optional, |
| 369 | LIN2_BO_LAST containerLength, |
| 370 | octetstring container optional |
| 371 | } with { variant (lengthf) "LENGTHTO(cksn, spare, usedCipher, noofVectors, |
| 372 | security, kc, triplet, drx_par, |
| 373 | msNetW_cap_length, msNetw_cap, |
| 374 | containerLength, container |
| 375 | )"; |
| 376 | variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)"; |
| 377 | variant (containerLength) "LENGTHTO(container)"; |
| 378 | variant (noofVectors) "FIELDLENGTH(3)"; |
| 379 | variant (noofVectors) "LENGTHTO(triplet)"; |
| 380 | variant (noofVectors) "UNIT(224)"; |
| 381 | }; |
| 382 | |
| 383 | type record MM_ContextUMTS { |
| 384 | LIN2_BO_LAST lengthf, |
| 385 | BIT3 ksi, |
| 386 | BIT3 usedGPRSIntegrityAlgorithm, |
| 387 | BIT1 ugipai, |
| 388 | BIT1 gupii, |
| 389 | BIT3 spare1, |
| 390 | integer noofVectors , |
| 391 | BIT2 security, |
| 392 | OCT16 ck, |
| 393 | OCT16 ik, |
| 394 | LIN2_BO_LAST quintupletlength, |
| 395 | octetstring quintuplet, |
| 396 | OCT2 drx_par, |
| 397 | integer msNetW_cap_length, |
| 398 | octetstring msNetw_cap optional, |
| 399 | LIN2_BO_LAST containerLength, |
| 400 | octetstring container optional |
| 401 | } with { variant (lengthf) "LENGTHTO(ksi, usedGPRSIntegrityAlgorithm, ugipai, gupii, spare1, noofVectors, security, |
| 402 | ck, ik, quintupletlength, quintuplet, |
| 403 | drx_par, msNetW_cap_length, msNetw_cap, |
| 404 | containerLength, container |
| 405 | )"; |
| 406 | variant (quintupletlength) "LENGTHTO(quintuplet)"; |
| 407 | variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)"; |
| 408 | variant (containerLength) "LENGTHTO(container)"; |
| 409 | variant (noofVectors) "FIELDLENGTH(3)"; |
| 410 | }; |
| 411 | |
| 412 | type record MM_ContextGSMUMTS { |
| 413 | LIN2_BO_LAST lengthf, |
| 414 | BIT3 cksn, |
| 415 | BIT5 spare, |
| 416 | BIT3 usedCipher, |
| 417 | integer noofVectors, |
| 418 | BIT2 security, |
| 419 | OCT8 kc, |
| 420 | LIN2_BO_LAST quintupletlength, |
| 421 | octetstring quintuplet, |
| 422 | OCT2 drx_par, |
| 423 | integer msNetW_cap_length, |
| 424 | octetstring msNetw_cap optional, |
| 425 | LIN2_BO_LAST containerLength, |
| 426 | octetstring container optional |
| 427 | } with { variant (lengthf) "LENGTHTO(cksn, spare, usedCipher, noofVectors, |
| 428 | security, kc, quintupletlength, quintuplet, |
| 429 | drx_par, msNetW_cap_length, msNetw_cap, |
| 430 | containerLength, container |
| 431 | )"; |
| 432 | variant (quintupletlength) "LENGTHTO(quintuplet)"; |
| 433 | variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)"; |
| 434 | variant (containerLength) "LENGTHTO(container)"; |
| 435 | variant (noofVectors) "FIELDLENGTH(3)"; |
| 436 | }; |
| 437 | |
| 438 | type record MM_ContextUMTSReceive { |
| 439 | LIN2_BO_LAST lengthf, |
| 440 | BIT3 ksi, |
| 441 | BIT3 usedGPRSIntegrityAlgorithm, |
| 442 | BIT1 ugipai, |
| 443 | BIT1 gupii, |
| 444 | BIT3 usedCipher, |
| 445 | integer noofVectors, |
| 446 | BIT2 security, |
| 447 | OCT16 ck, |
| 448 | OCT16 ik, |
| 449 | LIN2_BO_LAST quintupletlength, |
| 450 | octetstring quintuplet, |
| 451 | OCT2 drx_par, |
| 452 | integer msNetW_cap_length, |
| 453 | octetstring msNetw_cap optional, |
| 454 | LIN2_BO_LAST containerLength, |
| 455 | octetstring container optional |
| 456 | } with { variant (lengthf) "LENGTHTO(ksi, usedGPRSIntegrityAlgorithm, ugipai, gupii, |
| 457 | usedCipher, noofVectors, |
| 458 | security, ck, ik, quintupletlength, |
| 459 | quintuplet, drx_par,msNetW_cap_length, |
| 460 | msNetw_cap, containerLength, container |
| 461 | )"; |
| 462 | variant (quintupletlength) "LENGTHTO(quintuplet)"; |
| 463 | variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)"; |
| 464 | variant (containerLength) "LENGTHTO(container)"; |
| 465 | variant (noofVectors) "FIELDLENGTH(3)"; |
| 466 | }; |
| 467 | |
| 468 | //From 9.9.3.34 of 3GPP 24.301 according to Req. Spec. 4/1056-LPA 107 579/1 Rev D |
| 469 | type record GTPC_UENetworkCapabilityV |
| 470 | { |
| 471 | BIT8 eEA, |
| 472 | BIT7 eIA, |
| 473 | BIT1 spare, |
| 474 | BIT8 uEA optional, |
| 475 | BIT7 uIA optional, |
| 476 | BIT1 uCS2 optional, |
| 477 | BIT1 spare2 optional, |
| 478 | BIT1 vCC optional, |
| 479 | BIT6 spare3 optional, |
| 480 | octetstring spare4 length (0..8) optional |
| 481 | } |
| 482 | |
| 483 | //PDP context - 7.7.29 |
| 484 | type record of PDP_Context_GTPC PDP_Context_GTPC_List; |
| 485 | |
| 486 | type record PDP_Context_GTPC { |
| 487 | OCT1 type_gtpc, |
| 488 | LIN2_BO_LAST lengthf, |
| 489 | BIT4 nsapi, |
| 490 | BIT1 order, |
| 491 | BIT1 asi, |
| 492 | BIT1 vaa, |
| 493 | BIT1 ea, |
| 494 | BIT4 sapi, |
| 495 | BIT4 spare1, |
| 496 | integer qos_subLength, |
| 497 | QualityOfServiceProfile_Value qos_sub, |
| 498 | integer qos_reqLength, |
| 499 | QualityOfServiceProfile_Value qos_req, |
| 500 | integer qos_negLength, |
| 501 | QualityOfServiceProfile_Value qos_neg, |
| 502 | OCT2 snd, |
| 503 | OCT2 snu, |
| 504 | OCT1 sendNPDUnum, |
| 505 | OCT1 receiveNPDUnum, |
| 506 | OCT4 uteidControlPlane, |
| 507 | OCT4 uteidData1, |
| 508 | OCT1 pdpcontext, |
| 509 | BIT4 pdp_typeorg, |
| 510 | BIT4 spare2, |
| 511 | OCT1 pdp_typenum, |
| 512 | integer pdp_addressLength, |
| 513 | octetstring pdp_address length (0..63), |
| 514 | integer ggsn_addressControlPlaneLength, |
| 515 | octetstring ggsn_addressControlPlane length (4..16), |
| 516 | integer ggsn_addressUserPlaneLength, |
| 517 | octetstring ggsn_addressUserPlane length (4..16), |
| 518 | integer apnLength, |
| 519 | octetstring apn, |
| 520 | BIT4 transactionId , |
| 521 | BIT4 spare3, |
| 522 | OCT1 transactionID_cont, |
| 523 | OCT1 pdp_typenum2 optional, |
| 524 | LIN1 pdp_addresslength2 optional, |
| 525 | octetstring pdp_Address2 length (0..63) optional |
| 526 | } with {variant "PRESENCE( type_gtpc = '82'O)"; |
| 527 | variant (lengthf) "LENGTHTO(nsapi, order, asi, vaa, ea, |
| 528 | sapi, spare1, qos_subLength, qos_sub, qos_reqLength, qos_req, |
| 529 | qos_negLength, qos_neg, snd, snu, sendNPDUnum, receiveNPDUnum, |
| 530 | uteidControlPlane, uteidData1,pdpcontext, pdp_typeorg, spare2, |
| 531 | pdp_typenum, pdp_addressLength, pdp_address, |
| 532 | ggsn_addressControlPlaneLength, ggsn_addressControlPlane, |
| 533 | ggsn_addressUserPlaneLength, ggsn_addressUserPlane, apnLength, apn, |
| 534 | transactionId, spare3, transactionID_cont, pdp_typenum2,pdp_addresslength2,pdp_Address2)"; |
| 535 | variant (qos_subLength) "LENGTHTO(qos_sub)"; |
| 536 | variant (qos_reqLength) "LENGTHTO(qos_req)"; |
| 537 | variant (qos_negLength) "LENGTHTO(qos_neg)"; |
| 538 | variant (pdp_addressLength) "LENGTHTO(pdp_address)"; |
| 539 | variant (ggsn_addressControlPlaneLength) |
| 540 | "LENGTHTO(ggsn_addressControlPlane)"; |
| 541 | variant (ggsn_addressUserPlaneLength) "LENGTHTO(ggsn_addressUserPlane)"; |
| 542 | variant (apnLength) "LENGTHTO(apn)"; |
| 543 | variant (pdp_typenum2,pdp_addresslength2,pdp_Address2) "PRESENCE( ea = '1'B)"; |
| 544 | variant (pdp_addresslength2) "LENGTHTO(pdp_Address2)"; |
| 545 | }; |
| 546 | |
| 547 | //Access Point Name - 7.7.30 |
| 548 | type record AccessPointName { |
| 549 | OCT1 type_gtpc, |
| 550 | LIN2_BO_LAST lengthf, |
| 551 | octetstring apn_value |
| 552 | }with { variant "PRESENCE( type_gtpc = '83'O)"; |
| 553 | variant (lengthf) "LENGTHTO(apn_value)"; }; |
| 554 | |
| 555 | //Protocol Configuration Options - 7.7.31 |
| 556 | // 24.008 10.5.6.3 |
| 557 | type record ProtConfigOptions { |
| 558 | OCT1 type_gtpc, |
| 559 | LIN2_BO_LAST lengthf, |
| 560 | BIT3 configProtocol, |
| 561 | BIT4 spare, |
| 562 | BIT1 extension0, |
| 563 | ProtocolIDList protocols |
| 564 | } with { variant "PRESENCE( type_gtpc = '84'O)"; |
| 565 | variant (lengthf) "LENGTHTO(configProtocol, spare, extension0, |
| 566 | protocols)"; }; |
| 567 | |
| 568 | type set of ProtocolElement ProtocolIDList; |
| 569 | |
| 570 | type record ProtocolElement { |
| 571 | OCT2 protocolID, |
| 572 | integer lengthProtoID, |
| 573 | octetstring protoIDContents |
| 574 | } with { variant (lengthProtoID) "LENGTHTO(protoIDContents)" }; |
| 575 | |
| 576 | //GSN Address - 7.7.32 |
| 577 | type record GSN_Address_GTPC { |
| 578 | OCT1 type_gtpc, |
| 579 | LIN2_BO_LAST lengthf, |
| 580 | octetstring addressf |
| 581 | } with { variant "PRESENCE( type_gtpc = '85'O)"; |
| 582 | variant (lengthf) "LENGTHTO(addressf)"; }; |
| 583 | |
| 584 | //MS International PSTN/ISDN Num.(MSISDN) - 7.7.33 |
| 585 | type record MSISDN { |
| 586 | OCT1 type_gtpc, |
| 587 | LIN2_BO_LAST lengthf, |
| 588 | octetstring msisdn |
| 589 | } with { variant "PRESENCE( type_gtpc = '86'O)"; |
| 590 | variant (lengthf) "LENGTHTO(msisdn)"; }; |
| 591 | |
| 592 | type record QoSV_GTPC |
| 593 | { |
| 594 | BIT3 reliabilityClass, |
| 595 | BIT3 delayClass, |
| 596 | BIT2 spare1, // '00'B |
| 597 | BIT3 precedenceClass, |
| 598 | BIT1 spare2, //'0'B |
| 599 | BIT4 peakThroughput, |
| 600 | BIT5 meanThroughput, |
| 601 | BIT3 spare3, //'000'B |
| 602 | BIT3 deliverErroneusSDU optional, //opt because of V97 |
| 603 | BIT2 deliveryOrder optional, //opt because of V97 |
| 604 | BIT3 trafficClass optional, //opt because of V97 |
| 605 | OCT1 maxSDUSize optional, //opt because of V97 |
| 606 | OCT1 maxBitrateUplink optional, //opt because of V97 |
| 607 | OCT1 maxBitrateDownlink optional, //opt because of V97 |
| 608 | BIT4 sduErrorRatio optional, //opt because of V97 |
| 609 | BIT4 residualBER optional, //opt because of V97 |
| 610 | BIT2 trafficHandlingPriority optional, //opt because of V97 |
| 611 | BIT6 transferDelay optional, //opt because of V97 |
| 612 | OCT1 guaranteedBitRateUplink optional, //opt because of V97 |
| 613 | OCT1 guaranteedBitRateDownlink optional, //opt because of V97 |
| 614 | BIT4 sourceStatisticsDescriptor optional, //opt because of V97 |
| 615 | BIT1 signallingIndication optional, //opt because of V97 |
| 616 | BIT3 spare4 optional, //opt because of V97 |
| 617 | // '000'B |
| 618 | OCT1 maxBitrateDownlinkExt optional, //opt because of V97 |
| 619 | OCT1 guaranteedBitRateDownlinkExt optional, //opt because of V97 |
| 620 | OCT1 maxBitrateUplinkExt optional, //opt because of V97 |
| 621 | OCT1 guaranteedBitRateUplinkExt optional //opt because of V97 |
| 622 | }; |
| 623 | |
| 624 | //Quality Of Service Profile - 7.7.34 |
| 625 | type record QualityOfServiceProfile { |
| 626 | OCT1 type_gtpc, |
| 627 | LIN2_BO_LAST lengthf, |
| 628 | OCT1 allocRetensionPrio, |
| 629 | QoSV_GTPC qos_ProfileValue |
| 630 | } with { variant "PRESENCE( type_gtpc = '87'O)"; |
| 631 | variant (lengthf) "LENGTHTO(allocRetensionPrio, qos_ProfileValue)";}; |
| 632 | |
| 633 | type record QualityOfServiceProfile_Value { |
| 634 | OCT1 allocRetensionPrio, |
| 635 | QoSV_GTPC qos_ProfileValue |
| 636 | } |
| 637 | |
| 638 | //Authentication Quituplet - 7.7.35 |
| 639 | type record AuthenticationQuintuplet_GTPC { |
| 640 | OCT1 type_gtpc, |
| 641 | LIN2_BO_LAST lengthf, |
| 642 | OCT16 rand, |
| 643 | integer xresLength, |
| 644 | octetstring xres, |
| 645 | OCT16 ck, |
| 646 | OCT16 ik, |
| 647 | integer autnLength, |
| 648 | octetstring autn |
| 649 | } with { variant "PRESENCE( type_gtpc = '88'O)"; |
| 650 | variant (lengthf) "LENGTHTO(rand, xresLength, xres, ck, ik, |
| 651 | autnLength, autn)"; |
| 652 | variant (xresLength) "LENGTHTO(xres)"; |
| 653 | variant (autnLength) "LENGTHTO(autn)"; }; |
| 654 | |
| 655 | //Traffic Flow Template (TFT) - 7.7.36 |
| 656 | // 24.008 10.5.6.12 |
| 657 | type record TrafficFlowTemplate { |
| 658 | OCT1 type_gtpc, |
| 659 | LIN2_BO_LAST lengthf, |
| 660 | TrafficFlowTemplateV_GTPC tft |
| 661 | } with { variant "PRESENCE( type_gtpc = '89'O)"; |
| 662 | variant (lengthf) "LENGTHTO(tft)"; }; |
| 663 | |
| 664 | |
| 665 | type union TrafficFlowTemplateV_GTPC |
| 666 | { |
| 667 | TrafficFlowTemplateV_CreateAddReplaceTFT_GTPC |
| 668 | trafficFlowTemplateV_CreateAddReplaceTFT, |
| 669 | TrafficFlowTemplateV_DeletePacketFilter_GTPC |
| 670 | trafficFlowTemplateV_DeletePacketFilter, |
| 671 | TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation_GTPC |
| 672 | trafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation |
| 673 | }; |
| 674 | |
| 675 | |
| 676 | type record TrafficFlowTemplateV_CreateAddReplaceTFT_GTPC |
| 677 | { |
| 678 | integer numberOfPacketFilters, |
| 679 | BIT1 eBIT, |
| 680 | BIT3 operationCodeTFT, //'001'B or |
| 681 | PacketFilterList_CreateAddReplaceTFT_GTPC packetFilterList_CreateAddReplaceTFT, |
| 682 | ParametersList_GTPC parametersList optional |
| 683 | } with { |
| 684 | variant "PRESENCE (operationCodeTFT = '001'B, // Create New TFT |
| 685 | operationCodeTFT = '011'B, // Add packet filters to existing TFT |
| 686 | operationCodeTFT = '100'B // Replace packet filters in existing TFT |
| 687 | )"; |
| 688 | variant(parametersList) "PRESENCE(eBIT = '1'B)"; |
| 689 | variant(numberOfPacketFilters)"FIELDLENGTH(4)"; |
| 690 | variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_CreateAddReplaceTFT)"; |
| 691 | variant(numberOfPacketFilters)"UNIT(elements)"; |
| 692 | }; |
| 693 | |
| 694 | |
| 695 | type record TrafficFlowTemplateV_DeletePacketFilter_GTPC |
| 696 | { |
| 697 | integer numberOfPacketFilters, |
| 698 | BIT1 eBIT, |
| 699 | BIT3 operationCodeTFT, |
| 700 | //'101'B or '011'B or '100'B |
| 701 | PacketFilterList_DeletePacketFilter_GTPC packetFilterList_DeletePacketFilter, |
| 702 | ParametersList_GTPC parametersList optional |
| 703 | } with { |
| 704 | variant "PRESENCE (operationCodeTFT = '101'B)" // Delete packet filters from existing TFT |
| 705 | variant(parametersList) "PRESENCE(eBIT = '1'B)"; |
| 706 | variant(numberOfPacketFilters)"FIELDLENGTH(4)"; |
| 707 | variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_DeletePacketFilter)"; |
| 708 | variant (numberOfPacketFilters)"UNIT(elements)"; |
| 709 | }; |
| 710 | |
| 711 | |
| 712 | type record TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation_GTPC |
| 713 | { |
| 714 | BIT4 numberOfPacketFilters, //'0000'B |
| 715 | // numberOfPacketFilters is meaningless here since there is no PacketFilterList |
| 716 | BIT1 eBIT, |
| 717 | BIT3 operationCodeTFT, // '010'B or '110'B |
| 718 | ParametersList_GTPC parametersList optional |
| 719 | } with { |
| 720 | variant "PRESENCE (operationCodeTFT = '010'B, // delete existing TFT |
| 721 | operationCodeTFT = '110'B // No TFT Operation |
| 722 | )"; |
| 723 | variant (parametersList) "PRESENCE(eBIT = '1'B)" |
| 724 | }; |
| 725 | |
| 726 | |
| 727 | type record of PacketFilter_GTPC PacketFilterList_CreateAddReplaceTFT_GTPC; |
| 728 | |
| 729 | |
| 730 | type record PacketFilter_GTPC |
| 731 | { |
| 732 | PacketFilterIdentifier_GTPC identifier, |
| 733 | OCT1 evaluationPrecedence, |
| 734 | LIN1 lengthIndicator, |
| 735 | octetstring contents |
| 736 | } with { variant (lengthIndicator) "LENGTHTO (contents)"}; |
| 737 | |
| 738 | |
| 739 | type record of PacketFilterIdentifier_GTPC PacketFilterList_DeletePacketFilter_GTPC; |
| 740 | |
| 741 | |
| 742 | type OCT1 PacketFilterIdentifier_GTPC; |
| 743 | |
| 744 | |
| 745 | type record of Parameter_GTPC ParametersList_GTPC; |
| 746 | |
| 747 | |
| 748 | type record Parameter_GTPC |
| 749 | { |
| 750 | OCT1 parameterIdentifier, |
| 751 | LIN1 lengthIndicator, |
| 752 | octetstring contents |
| 753 | } with { variant (lengthIndicator) "LENGTHTO (contents)"}; |
| 754 | |
| 755 | |
| 756 | //Target Identification - 7.7.37 |
| 757 | type record TargetIdentification { |
| 758 | OCT1 type_gtpc, |
| 759 | LIN2_BO_LAST lengthf, |
| 760 | HEX1 mcc1 optional, |
| 761 | HEX1 mcc2 optional, |
| 762 | HEX1 mcc3 optional, |
| 763 | HEX1 mnc3 optional, |
| 764 | HEX1 mnc1 optional, |
| 765 | HEX1 mnc2 optional, |
| 766 | OCT2 lac optional, |
| 767 | OCT1 rac optional, |
| 768 | OCT2 rnc_id optional, |
| 769 | octetstring extended_rnc_id optional |
| 770 | } with { variant "PRESENCE( type_gtpc = '8A'O)"; |
| 771 | variant (lengthf) "LENGTHTO(mcc1, mcc2, mcc3, mnc3, mnc1, mnc2, |
| 772 | lac, rac, rnc_id, extended_rnc_id)"; }; |
| 773 | |
| 774 | //UTRAN Transparent container - 7.7.38 |
| 775 | type record UTRANTransparentContainer { |
| 776 | OCT1 type_gtpc, |
| 777 | LIN2_BO_LAST lengthf, |
| 778 | octetstring transparentfield |
| 779 | } with { variant "PRESENCE( type_gtpc = '8B'O)"; |
| 780 | variant (lengthf) "LENGTHTO(transparentfield)";}; |
| 781 | |
| 782 | //RAB Setup Information - 7.7.39 |
| 783 | type record of RABSetupInformation RABSetupInformation_List |
| 784 | |
| 785 | type record RABSetupInformation{ |
| 786 | OCT1 type_gtpc, |
| 787 | LIN2_BO_LAST lengthf, |
| 788 | BIT4 nsapi, |
| 789 | BIT4 unused, |
| 790 | OCT4 teidData optional, |
| 791 | octetstring rncIpAddress optional |
| 792 | } with { variant "PRESENCE( type_gtpc = '8C'O)"; |
| 793 | variant (lengthf) "LENGTHTO(nsapi,unused,teidData,rncIpAddress)";}; |
| 794 | |
| 795 | //Extension Header Type List - 7.7.40 |
| 796 | type record ExtensionHeaderTypeList_gtpc { |
| 797 | OCT1 type_gtpc, |
| 798 | integer lengthf, |
| 799 | octetstring extensionTypesList |
| 800 | } with { variant "PRESENCE( type_gtpc = '8D'O)"; |
| 801 | variant (lengthf) "LENGTHTO(extensionTypesList)"; }; |
| 802 | |
| 803 | //Trigger ID - 7.7.41 |
| 804 | type record GTP_TriggerID { |
| 805 | OCT1 type_gtpc, |
| 806 | LIN2_BO_LAST lengthf, |
| 807 | octetstring triggerID |
| 808 | } with { variant "PRESENCE( type_gtpc = '8E'O)"; |
| 809 | variant (lengthf) "LENGTHTO(triggerID)";}; |
| 810 | |
| 811 | //OMC Identity - 7.7.42 |
| 812 | type record OMCIdentity { |
| 813 | OCT1 type_gtpc, |
| 814 | LIN2_BO_LAST lengthf, |
| 815 | octetstring omcID |
| 816 | } with { variant "PRESENCE( type_gtpc = '8F'O)"; |
| 817 | variant (lengthf) "LENGTHTO(omcID)"; }; |
| 818 | |
| 819 | //BSSGP RAN Information needed for RAN Transparent Container |
| 820 | //From BSSGP specification 48.018 v9.3.0 according to CR 8446 |
| 821 | |
| 822 | type union LIN2_2a_GTPC |
| 823 | { |
| 824 | integer length1, |
| 825 | integer length2 |
| 826 | } with { |
| 827 | variant (length1) "FIELDLENGTH(7)"; |
| 828 | variant (length2) "FIELDLENGTH(15)"; |
| 829 | variant (length2) "BYTEORDER(last)"; |
| 830 | variant (length1,length2) "FIELDORDER(msb)"; |
| 831 | } |
| 832 | |
| 833 | type record PDU_in_Error_GTPC |
| 834 | { |
| 835 | OCT1 iEI, |
| 836 | BIT1 ext, |
| 837 | LIN2_2a_GTPC lengthIndicator, |
| 838 | octetstring erroneous_BSSGP_PDU |
| 839 | } with { |
| 840 | variant (lengthIndicator) "LENGTHTO (erroneous_BSSGP_PDU)"; |
| 841 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 842 | length2, ext = '0'B;)"; |
| 843 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 844 | }; |
| 845 | |
| 846 | type record Cell_Identifier_GTPC |
| 847 | { |
| 848 | OCT1 iEI, |
| 849 | BIT1 ext, |
| 850 | LIN2_2a_GTPC lengthIndicator, |
| 851 | HEX1 mccDigit1 , |
| 852 | HEX1 mccDigit2 , |
| 853 | HEX1 mccDigit3 , |
| 854 | HEX1 mncDigit3 , |
| 855 | HEX1 mncDigit1 , |
| 856 | HEX1 mncDigit2 , |
| 857 | OCT2 lac, |
| 858 | OCT1 rac, |
| 859 | OCT2 cI_value |
| 860 | } with { |
| 861 | variant (lengthIndicator) |
| 862 | "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1, |
| 863 | mncDigit2,lac,rac,cI_value)"; |
| 864 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 865 | length2, ext = '0'B;)"; |
| 866 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 867 | }; |
| 868 | |
| 869 | type record Cause_BSSGP_GTPC |
| 870 | { |
| 871 | OCT1 iEI, |
| 872 | BIT1 ext, |
| 873 | LIN2_2a_GTPC lengthIndicator, |
| 874 | OCT1 cause_Value |
| 875 | } with { |
| 876 | variant (lengthIndicator) "LENGTHTO (cause_Value)"; |
| 877 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 878 | length2, ext = '0'B;)"; |
| 879 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 880 | }; |
| 881 | |
| 882 | //48.018 v9.3.0 11.3.61 |
| 883 | type record RIM_Application_Identity_GTPC |
| 884 | { |
| 885 | OCT1 iEI, |
| 886 | BIT1 ext, |
| 887 | LIN2_2a_GTPC lengthIndicator, |
| 888 | OCT1 rIMApplicationIdentity |
| 889 | } with { |
| 890 | variant (lengthIndicator) "LENGTHTO (rIMApplicationIdentity)"; |
| 891 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 892 | length2, ext = '0'B;)"; |
| 893 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 894 | }; |
| 895 | |
| 896 | //48.018 v9.3.0 11.3.62 |
| 897 | type record RIM_Sequence_Number_GTPC |
| 898 | { |
| 899 | OCT1 iEI, |
| 900 | BIT1 ext, |
| 901 | LIN2_2a_GTPC lengthIndicator, |
| 902 | OCT4 rIMSequenceNumber |
| 903 | } with { |
| 904 | variant (lengthIndicator) "LENGTHTO (rIMSequenceNumber)"; |
| 905 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 906 | length2, ext = '0'B;)"; |
| 907 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 908 | }; |
| 909 | |
| 910 | //48.018 v9.3.0 Table 11.3.62a.1 |
| 911 | type record RAN_Information_Request_RIM_Container_GTPC |
| 912 | { |
| 913 | OCT1 iEI, |
| 914 | BIT1 ext, |
| 915 | LIN2_2a_GTPC lengthIndicator, |
| 916 | RIM_Application_Identity_GTPC rIM_Application_Identity, |
| 917 | RIM_Sequence_Number_GTPC rIM_Sequence_Number, |
| 918 | RIM_PDU_Indications_GTPC rIM_PDU_Indications, |
| 919 | RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional, |
| 920 | RAN_Information_Request_Application_Container_GTPC |
| 921 | application_Container optional, |
| 922 | SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional |
| 923 | } with { |
| 924 | variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity, |
| 925 | rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number, |
| 926 | application_Container,sON_TransferApplicationIdentity)"; |
| 927 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 928 | length2, ext = '0'B;)"; |
| 929 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 930 | variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)"; |
| 931 | variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '01'O;)"; |
| 932 | variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '02'O;)"; |
| 933 | variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"; |
| 934 | variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)"; |
| 935 | variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '05'O;)"; |
| 936 | variant (application_Container) |
| 937 | "CROSSTAG |
| 938 | (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O; |
| 939 | si3 ,rIM_Application_Identity.rIMApplicationIdentity = '02'O; |
| 940 | mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O; |
| 941 | sON, rIM_Application_Identity.rIMApplicationIdentity = '04'O; |
| 942 | uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O; |
| 943 | )" |
| 944 | variant (sON_TransferApplicationIdentity) |
| 945 | "PRESENCE |
| 946 | (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)"; |
| 947 | }; |
| 948 | |
| 949 | //48.018 v9.3.0 Table 11.3.62a.2 |
| 950 | type record RAN_Information_RIM_Container_GTPC |
| 951 | { |
| 952 | OCT1 iEI, |
| 953 | BIT1 ext, |
| 954 | LIN2_2a_GTPC lengthIndicator, |
| 955 | RIM_Application_Identity_GTPC rIM_Application_Identity, |
| 956 | RIM_Sequence_Number_GTPC rIM_Sequence_Number, |
| 957 | RIM_PDU_Indications_GTPC rIM_PDU_Indications, |
| 958 | RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional, |
| 959 | ApplContainer_or_ApplErrContainer_GTPC |
| 960 | applContainer_or_ApplErrContainer optional, |
| 961 | SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional |
| 962 | } with { |
| 963 | variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity, |
| 964 | rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number, |
| 965 | applContainer_or_ApplErrContainer,sON_TransferApplicationIdentity)"; |
| 966 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 967 | length2, ext = '0'B;)"; |
| 968 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 969 | variant |
| 970 | "TAG (rIM_Protocol_Version_Number, iEI = '55'O;)"; |
| 971 | variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '01'O;)"; |
| 972 | variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '02'O;)"; |
| 973 | variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"; |
| 974 | variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)"; |
| 975 | variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '05'O;)"; |
| 976 | variant (applContainer_or_ApplErrContainer) |
| 977 | "CROSSTAG(nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O; |
| 978 | si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O; |
| 979 | mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O; |
| 980 | sON,rIM_Application_Identity.rIMApplicationIdentity = '04'O; |
| 981 | uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O)"; |
| 982 | |
| 983 | |
| 984 | variant (sON_TransferApplicationIdentity) |
| 985 | "PRESENCE |
| 986 | (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)"; |
| 987 | }; |
| 988 | |
| 989 | type union ApplContainer_or_ApplErrContainer_GTPC |
| 990 | { |
| 991 | ApplContainer_or_ApplErrContainer_NACC_GTPC nacc, |
| 992 | ApplContainer_or_ApplErrContainer_SI3_GTPC si3, |
| 993 | ApplContainer_or_ApplErrContainer_MBMS_GTPC mBMS, |
| 994 | ApplContainer_or_ApplErrContainer_SON_GTPC sON, |
| 995 | ApplContainer_or_ApplErrContainer_UTRA_SI_GTPC uTRA_SI |
| 996 | } |
| 997 | |
| 998 | type union ApplContainer_or_ApplErrContainer_NACC_GTPC |
| 999 | { |
| 1000 | RAN_Information_Application_Container_NACC_GTPC application_Container, |
| 1001 | Application_Error_Container_NACC_GTPC application_Error_Container |
| 1002 | } with { |
| 1003 | variant "TAG ( |
| 1004 | application_Container, iEI = '4E'O; |
| 1005 | application_Error_Container, iEI = '56'O;)"; |
| 1006 | } |
| 1007 | |
| 1008 | type union ApplContainer_or_ApplErrContainer_SI3_GTPC |
| 1009 | { |
| 1010 | RAN_Information_Application_Container_SI3_GTPC application_Container, |
| 1011 | Application_Error_Container_SI3_GTPC application_Error_Container |
| 1012 | } with { |
| 1013 | variant "TAG ( |
| 1014 | application_Container, iEI = '4E'O; |
| 1015 | application_Error_Container, iEI = '56'O;)"; |
| 1016 | } |
| 1017 | |
| 1018 | type union ApplContainer_or_ApplErrContainer_MBMS_GTPC |
| 1019 | { |
| 1020 | RAN_Information_Application_Container_MBMS_GTPC application_Container, |
| 1021 | Application_Error_Container_MBMS_GTPC application_Error_Container |
| 1022 | } with { |
| 1023 | variant "TAG ( |
| 1024 | application_Container, iEI = '4E'O; |
| 1025 | application_Error_Container, iEI = '56'O;)"; |
| 1026 | } |
| 1027 | |
| 1028 | type union ApplContainer_or_ApplErrContainer_SON_GTPC |
| 1029 | { |
| 1030 | RAN_Information_Application_Container_SON_GTPC application_Container, |
| 1031 | Application_Error_Container_SON_GTPC application_Error_Container |
| 1032 | } with { |
| 1033 | variant "TAG ( |
| 1034 | application_Container, iEI = '4E'O; |
| 1035 | application_Error_Container, iEI = '56'O;)"; |
| 1036 | } |
| 1037 | |
| 1038 | type union ApplContainer_or_ApplErrContainer_UTRA_SI_GTPC |
| 1039 | { |
| 1040 | RAN_Information_Application_Container_UTRA_SI_GTPC application_Container, |
| 1041 | Application_Error_Container_UTRA_SI_GTPC application_Error_Container |
| 1042 | } with { |
| 1043 | variant "TAG ( |
| 1044 | application_Container, iEI = '4E'O; |
| 1045 | application_Error_Container, iEI = '56'O;)"; |
| 1046 | } |
| 1047 | |
| 1048 | |
| 1049 | //48.018 v9.3.0 Table 11.3.62a.3 |
| 1050 | type record RAN_Information_Ack_RIM_Container_GTPC |
| 1051 | { |
| 1052 | OCT1 iEI, |
| 1053 | BIT1 ext, |
| 1054 | LIN2_2a_GTPC lengthIndicator, |
| 1055 | RIM_Application_Identity_GTPC rIM_Application_Identity, |
| 1056 | RIM_Sequence_Number_GTPC rIM_Sequence_Number, |
| 1057 | RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional, |
| 1058 | SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional |
| 1059 | } with { |
| 1060 | variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity, |
| 1061 | rIM_Sequence_Number,rIM_Protocol_Version_Number)"; |
| 1062 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1063 | length2, ext = '0'B;)"; |
| 1064 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1065 | |
| 1066 | variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O;)"; |
| 1067 | variant (sON_TransferApplicationIdentity) |
| 1068 | "PRESENCE |
| 1069 | (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)"; |
| 1070 | }; |
| 1071 | |
| 1072 | //48.018 v9.3.0 Table 11.3.62a.4 |
| 1073 | type record RAN_Information_Error_RIM_Container_GTPC |
| 1074 | { |
| 1075 | OCT1 iEI, |
| 1076 | BIT1 ext, |
| 1077 | LIN2_2a_GTPC lengthIndicator, |
| 1078 | RIM_Application_Identity_GTPC rIM_Application_Identity, |
| 1079 | Cause_BSSGP_GTPC rIM_cause, |
| 1080 | RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional, |
| 1081 | PDU_in_Error_GTPC pDU_in_Error, |
| 1082 | SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional |
| 1083 | } with { |
| 1084 | variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity, |
| 1085 | rIM_cause,rIM_Protocol_Version_Number,pDU_in_Error)"; |
| 1086 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1087 | length2, ext = '0'B;)"; |
| 1088 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1089 | variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)"; |
| 1090 | variant (sON_TransferApplicationIdentity) |
| 1091 | "PRESENCE |
| 1092 | (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)"; |
| 1093 | }; |
| 1094 | |
| 1095 | //48.018 v9.3.0 Table 11.3.62a.5 |
| 1096 | type record RAN_Information_Application_Error_RIM_Container_GTPC |
| 1097 | { |
| 1098 | OCT1 iEI, |
| 1099 | BIT1 ext, |
| 1100 | LIN2_2a_GTPC lengthIndicator, |
| 1101 | RIM_Application_Identity_GTPC rIM_Application_Identity, |
| 1102 | RIM_Sequence_Number_GTPC rIM_Sequence_Number, |
| 1103 | RIM_PDU_Indications_GTPC rIM_PDU_Indications, |
| 1104 | RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional, |
| 1105 | Application_Error_Container_GTPC application_Error_Container, |
| 1106 | SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional |
| 1107 | } with { |
| 1108 | variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity, |
| 1109 | rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number, |
| 1110 | application_Error_Container)"; |
| 1111 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1112 | length2, ext = '0'B;)"; |
| 1113 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1114 | |
| 1115 | variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)"; |
| 1116 | |
| 1117 | variant (application_Error_Container) |
| 1118 | "CROSSTAG (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O; |
| 1119 | si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O; |
| 1120 | mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O; |
| 1121 | sON,rIM_Application_Identity.rIMApplicationIdentity = '04'O; |
| 1122 | uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O)"; |
| 1123 | |
| 1124 | variant (sON_TransferApplicationIdentity) |
| 1125 | "PRESENCE |
| 1126 | (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)"; |
| 1127 | }; |
| 1128 | |
| 1129 | //48.018 v9.3.0 Table 11.3.64 |
| 1130 | type union Application_Error_Container_GTPC |
| 1131 | { |
| 1132 | Application_Error_Container_NACC_GTPC nacc, |
| 1133 | Application_Error_Container_SI3_GTPC si3, |
| 1134 | Application_Error_Container_MBMS_GTPC mBMS, |
| 1135 | Application_Error_Container_SON_GTPC sON, |
| 1136 | Application_Error_Container_UTRA_SI_GTPC uTRA_SI |
| 1137 | } |
| 1138 | |
| 1139 | //48.018 v9.3.0 Table 11.3.63.1 |
| 1140 | type union RAN_Information_Request_Application_Container_GTPC |
| 1141 | { |
| 1142 | RAN_Information_Request_Application_Container_NACC_GTPC nacc, |
| 1143 | RAN_Information_Request_Application_Container_SI3_GTPC si3, |
| 1144 | RAN_Information_Request_Application_Container_MBMS_GTPC mBMS, |
| 1145 | RAN_Information_Request_Application_Container_SON_GTPC sON, |
| 1146 | RAN_Information_Request_Application_Container_UTRA_SI_GTPC uTRA_SI |
| 1147 | } |
| 1148 | |
| 1149 | //48.018 v9.3.0 Table 11.3.63.1.1 |
| 1150 | type record RAN_Information_Request_Application_Container_NACC_GTPC |
| 1151 | { |
| 1152 | OCT1 iEI, |
| 1153 | BIT1 ext, |
| 1154 | LIN2_2a_GTPC lengthIndicator, |
| 1155 | Cell_Identifier_GTPC reporting_Cell_Identifier |
| 1156 | } with { |
| 1157 | variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)"; |
| 1158 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1159 | length2, ext = '0'B;)"; |
| 1160 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1161 | }; |
| 1162 | |
| 1163 | //48.018 v9.3.0 Table 11.3.63.1.2 |
| 1164 | type record RAN_Information_Request_Application_Container_SI3_GTPC |
| 1165 | { |
| 1166 | OCT1 iEI, |
| 1167 | BIT1 ext, |
| 1168 | LIN2_2a_GTPC lengthIndicator, |
| 1169 | Cell_Identifier_GTPC reporting_Cell_Identifier |
| 1170 | } with { |
| 1171 | variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)"; |
| 1172 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1173 | length2, ext = '0'B;)"; |
| 1174 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1175 | } |
| 1176 | |
| 1177 | //48.018 v9.3.0 Table 11.3.63.1.3 |
| 1178 | type record RAN_Information_Request_Application_Container_MBMS_GTPC |
| 1179 | { |
| 1180 | OCT1 iEI, |
| 1181 | BIT1 ext, |
| 1182 | LIN2_2a_GTPC lengthIndicator, |
| 1183 | Cell_Identifier_GTPC reporting_Cell_Identifier |
| 1184 | } with { |
| 1185 | variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)"; |
| 1186 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1187 | length2, ext = '0'B;)"; |
| 1188 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1189 | } |
| 1190 | |
| 1191 | //48.018 v9.3.0 Table 11.3.63.1.4 |
| 1192 | type record RAN_Information_Request_Application_Container_SON_GTPC |
| 1193 | { |
| 1194 | OCT1 iEI, |
| 1195 | BIT1 ext, |
| 1196 | LIN2_2a_GTPC lengthIndicator, |
| 1197 | Cell_Identifier_GTPC reporting_Cell_Identifier, |
| 1198 | octetstring sON_TransferRequestContainer // 3GPP TS 36.413 |
| 1199 | } with { |
| 1200 | variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier,sON_TransferRequestContainer)"; |
| 1201 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1202 | length2, ext = '0'B;)"; |
| 1203 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1204 | } |
| 1205 | |
| 1206 | //48.018 v9.3.0 Table 11.3.63.1.5 |
| 1207 | type record RAN_Information_Request_Application_Container_UTRA_SI_GTPC |
| 1208 | { |
| 1209 | OCT1 iEI, |
| 1210 | BIT1 ext, |
| 1211 | LIN2_2a_GTPC lengthIndicator, |
| 1212 | Cell_Identifier_GTPC reporting_Cell_Identifier |
| 1213 | } with { |
| 1214 | variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)"; |
| 1215 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1216 | length2, ext = '0'B;)"; |
| 1217 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1218 | } |
| 1219 | |
| 1220 | //48.018 v9.3.0 Table 11.3.108 |
| 1221 | type record SON_TransferApplicationIdentity |
| 1222 | { |
| 1223 | OCT1 iEI, |
| 1224 | BIT1 ext, |
| 1225 | LIN2_2a_GTPC lengthIndicator, |
| 1226 | octetstring sON_TransferApplicationIdentityValue |
| 1227 | } |
| 1228 | |
| 1229 | //48.018 v9.3.0 Table 11.3.63.2.1 |
| 1230 | type record RAN_Information_Application_Container_NACC_GTPC |
| 1231 | { |
| 1232 | OCT1 iEI, |
| 1233 | BIT1 ext, |
| 1234 | LIN2_2a_GTPC lengthIndicator, |
| 1235 | Cell_Identifier_GTPC reporting_Cell_Identifier, |
| 1236 | BIT1 typeBit, |
| 1237 | BIT7 number_of_SI_PSI, |
| 1238 | octetstring sI_PSI // 3GPP TS 44.018, 44.060 |
| 1239 | } with { |
| 1240 | variant (lengthIndicator) |
| 1241 | "LENGTHTO (reporting_Cell_Identifier,typeBit,number_of_SI_PSI,sI_PSI)"; |
| 1242 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1243 | length2, ext = '0'B;)"; |
| 1244 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1245 | }; |
| 1246 | |
| 1247 | //48.018 v9.3.0 Table 11.3.63.2.2 |
| 1248 | type record RAN_Information_Application_Container_SI3_GTPC |
| 1249 | { |
| 1250 | OCT1 iEI, |
| 1251 | BIT1 ext, |
| 1252 | LIN2_2a_GTPC lengthIndicator, |
| 1253 | Cell_Identifier_GTPC reporting_Cell_Identifier, |
| 1254 | octetstring sI3 length (21) // 3GPP TS 44.018 |
| 1255 | } with { |
| 1256 | variant (lengthIndicator) |
| 1257 | "LENGTHTO (reporting_Cell_Identifier,sI3)"; |
| 1258 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1259 | length2, ext = '0'B;)"; |
| 1260 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1261 | variant (sI3)"FIELDLENGTH(21)" ; |
| 1262 | }; |
| 1263 | |
| 1264 | //48.018 v9.3.0 Table 11.3.63.2.3 |
| 1265 | type record RAN_Information_Application_Container_MBMS_GTPC |
| 1266 | { |
| 1267 | OCT1 iEI, |
| 1268 | BIT1 ext, |
| 1269 | LIN2_2a_GTPC lengthIndicator, |
| 1270 | Cell_Identifier_GTPC reporting_Cell_Identifier, |
| 1271 | octetstring mBMS_ChannelReport |
| 1272 | } with { |
| 1273 | variant (lengthIndicator) |
| 1274 | "LENGTHTO (reporting_Cell_Identifier,mBMS_ChannelReport)"; |
| 1275 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1276 | length2, ext = '0'B;)"; |
| 1277 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1278 | }; |
| 1279 | |
| 1280 | //48.018 v9.3.0 Table 11.3.63.2.4 |
| 1281 | type record RAN_Information_Application_Container_SON_GTPC |
| 1282 | { |
| 1283 | OCT1 iEI, |
| 1284 | BIT1 ext, |
| 1285 | LIN2_2a_GTPC lengthIndicator, |
| 1286 | Cell_Identifier_GTPC reporting_Cell_Identifier, |
| 1287 | octetstring sON_TransferResponseContainer // 3GPP TS 36.413 |
| 1288 | |
| 1289 | |
| 1290 | } with { |
| 1291 | variant (lengthIndicator) |
| 1292 | "LENGTHTO (reporting_Cell_Identifier,sON_TransferResponseContainer)"; |
| 1293 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1294 | length2, ext = '0'B;)"; |
| 1295 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1296 | }; |
| 1297 | |
| 1298 | //48.018 v9.3.0 Table 11.3.63.2.5 |
| 1299 | type record RAN_Information_Application_Container_UTRA_SI_GTPC |
| 1300 | { |
| 1301 | OCT1 iEI, |
| 1302 | BIT1 ext, |
| 1303 | LIN2_2a_GTPC lengthIndicator, |
| 1304 | Cell_Identifier_GTPC reporting_Cell_Identifier, |
| 1305 | octetstring uTRA_SI_Container // 3GPP TS25.331 |
| 1306 | |
| 1307 | |
| 1308 | } with { |
| 1309 | variant (lengthIndicator) |
| 1310 | "LENGTHTO (reporting_Cell_Identifier,uTRA_SI_Container)"; |
| 1311 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1312 | length2, ext = '0'B;)"; |
| 1313 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1314 | }; |
| 1315 | |
| 1316 | |
| 1317 | //48.018 v9.3.0 11.3.64.1 |
| 1318 | type record Application_Error_Container_NACC_GTPC |
| 1319 | { |
| 1320 | OCT1 iEI, |
| 1321 | BIT1 ext, |
| 1322 | LIN2_2a_GTPC lengthIndicator, |
| 1323 | OCT1 nACC_cause, |
| 1324 | Application_Container_IE_NACC_GTPC erroneousApplicationContainer |
| 1325 | } with { |
| 1326 | variant (lengthIndicator) |
| 1327 | "LENGTHTO (nACC_cause,erroneousApplicationContainer)"; |
| 1328 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1329 | length2, ext = '0'B;)"; |
| 1330 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1331 | }; |
| 1332 | |
| 1333 | type union Application_Container_IE_NACC_GTPC |
| 1334 | { |
| 1335 | RAN_Information_Request_Application_Container_NACC_GTPC |
| 1336 | rAN_Information_Request_Application_Container, |
| 1337 | |
| 1338 | RAN_Information_Application_Container_NACC_GTPC |
| 1339 | rAN_Information_Application_Container |
| 1340 | } |
| 1341 | with { |
| 1342 | variant "TAG ( |
| 1343 | rAN_Information_Request_Application_Container, iEI = '4D'O; |
| 1344 | rAN_Information_Application_Container, iEI = '4E'O)"; |
| 1345 | } |
| 1346 | |
| 1347 | |
| 1348 | //48.018 v9.3.0 11.3.64.2 |
| 1349 | type record Application_Error_Container_SI3_GTPC |
| 1350 | { |
| 1351 | OCT1 iEI, |
| 1352 | BIT1 ext, |
| 1353 | LIN2_2a_GTPC lengthIndicator, |
| 1354 | OCT1 sI3_cause, |
| 1355 | Application_Container_IE_SI3_GTPC erroneousApplicationContainer |
| 1356 | } with { |
| 1357 | variant (lengthIndicator) |
| 1358 | "LENGTHTO (sI3_cause,erroneousApplicationContainer)"; |
| 1359 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1360 | length2, ext = '0'B;)"; |
| 1361 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1362 | }; |
| 1363 | |
| 1364 | |
| 1365 | type union Application_Container_IE_SI3_GTPC |
| 1366 | { |
| 1367 | RAN_Information_Request_Application_Container_SI3_GTPC |
| 1368 | rAN_Information_Request_Application_Container, |
| 1369 | |
| 1370 | RAN_Information_Application_Container_SI3_GTPC |
| 1371 | rAN_Information_Application_Container |
| 1372 | } |
| 1373 | with { |
| 1374 | variant "TAG ( |
| 1375 | rAN_Information_Request_Application_Container, iEI = '4D'O; |
| 1376 | rAN_Information_Application_Container, iEI = '4E'O)"; |
| 1377 | } |
| 1378 | |
| 1379 | //48.018 v9.3.0 11.3.64.3 |
| 1380 | type record Application_Error_Container_MBMS_GTPC |
| 1381 | { |
| 1382 | OCT1 iEI, |
| 1383 | BIT1 ext, |
| 1384 | LIN2_2a_GTPC lengthIndicator, |
| 1385 | OCT1 mBMS_cause, |
| 1386 | Application_Container_IE_MBMS_GTPC erroneousApplicationContainer |
| 1387 | } with { |
| 1388 | variant (lengthIndicator) |
| 1389 | "LENGTHTO (mBMS_cause,erroneousApplicationContainer)"; |
| 1390 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1391 | length2, ext = '0'B;)"; |
| 1392 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1393 | }; |
| 1394 | |
| 1395 | |
| 1396 | type union Application_Container_IE_MBMS_GTPC |
| 1397 | { |
| 1398 | RAN_Information_Request_Application_Container_MBMS_GTPC |
| 1399 | rAN_Information_Request_Application_Container, |
| 1400 | |
| 1401 | RAN_Information_Application_Container_MBMS_GTPC |
| 1402 | rAN_Information_Application_Container |
| 1403 | } |
| 1404 | with { |
| 1405 | variant "TAG ( |
| 1406 | rAN_Information_Request_Application_Container, iEI = '4D'O; |
| 1407 | rAN_Information_Application_Container, iEI = '4E'O)"; |
| 1408 | } |
| 1409 | |
| 1410 | //48.018 v9.3.0 11.3.64.4 |
| 1411 | type record Application_Error_Container_SON_GTPC |
| 1412 | { |
| 1413 | OCT1 iEI, |
| 1414 | BIT1 ext, |
| 1415 | LIN2_2a_GTPC lengthIndicator, |
| 1416 | OCT1 sON_cause, |
| 1417 | Application_Container_IE_SON_GTPC erroneousApplicationContainer |
| 1418 | } with { |
| 1419 | variant (lengthIndicator) |
| 1420 | "LENGTHTO (sON_cause,erroneousApplicationContainer)"; |
| 1421 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1422 | length2, ext = '0'B;)"; |
| 1423 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1424 | }; |
| 1425 | |
| 1426 | |
| 1427 | type union Application_Container_IE_SON_GTPC |
| 1428 | { |
| 1429 | RAN_Information_Request_Application_Container_SON_GTPC |
| 1430 | rAN_Information_Request_Application_Container, |
| 1431 | |
| 1432 | RAN_Information_Application_Container_SON_GTPC |
| 1433 | rAN_Information_Application_Container |
| 1434 | } |
| 1435 | with { |
| 1436 | variant "TAG ( |
| 1437 | rAN_Information_Request_Application_Container, iEI = '4D'O; |
| 1438 | rAN_Information_Application_Container, iEI = '4E'O)"; |
| 1439 | } |
| 1440 | |
| 1441 | |
| 1442 | //48.018 v9.3.0 11.3.64.5 |
| 1443 | type record Application_Error_Container_UTRA_SI_GTPC |
| 1444 | { |
| 1445 | OCT1 iEI, |
| 1446 | BIT1 ext, |
| 1447 | LIN2_2a_GTPC lengthIndicator, |
| 1448 | OCT1 uTRA_SI_cause, |
| 1449 | Application_Container_IE_SON_GTPC erroneousApplicationContainer |
| 1450 | } with { |
| 1451 | variant (lengthIndicator) |
| 1452 | "LENGTHTO (uTRA_SI_cause,erroneousApplicationContainer)"; |
| 1453 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1454 | length2, ext = '0'B;)"; |
| 1455 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1456 | }; |
| 1457 | |
| 1458 | |
| 1459 | type union Application_Container_IE_UTRA_SI_GTPC |
| 1460 | { |
| 1461 | RAN_Information_Request_Application_Container_UTRA_SI_GTPC |
| 1462 | rAN_Information_Request_Application_Container, |
| 1463 | |
| 1464 | RAN_Information_Application_Container_UTRA_SI_GTPC |
| 1465 | rAN_Information_Application_Container |
| 1466 | } |
| 1467 | with { |
| 1468 | variant "TAG ( |
| 1469 | rAN_Information_Request_Application_Container, iEI = '4D'O; |
| 1470 | rAN_Information_Application_Container, iEI = '4E'O)"; |
| 1471 | } |
| 1472 | |
| 1473 | |
| 1474 | //48.018 v9.3.0 11.3.65 |
| 1475 | type record RIM_PDU_Indications_GTPC |
| 1476 | { |
| 1477 | OCT1 iEI, |
| 1478 | BIT1 ext, |
| 1479 | LIN2_2a_GTPC lengthIndicator, |
| 1480 | BIT1 ack, |
| 1481 | BIT3 pDU_Type_Extension, |
| 1482 | BIT4 reserved |
| 1483 | } with { |
| 1484 | variant (lengthIndicator) "LENGTHTO (ack,pDU_Type_Extension,reserved)"; |
| 1485 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1486 | length2, ext = '0'B;)"; |
| 1487 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1488 | }; |
| 1489 | |
| 1490 | //48.018 v9.3.0 11.3.67 |
| 1491 | type record RIM_Protocol_Version_Number_GTPC |
| 1492 | { |
| 1493 | OCT1 iEI, |
| 1494 | BIT1 ext, |
| 1495 | LIN2_2a_GTPC lengthIndicator, |
| 1496 | OCT1 rIMProtocolVersionNumber |
| 1497 | } with { |
| 1498 | variant (lengthIndicator) "LENGTHTO (rIMProtocolVersionNumber)"; |
| 1499 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1500 | length2, ext = '0'B;)"; |
| 1501 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1502 | }; |
| 1503 | |
| 1504 | //48.018 v9.3.0 11.3.70 |
| 1505 | type record RIM_Routing_Information_GTPC |
| 1506 | { |
| 1507 | OCT1 iEI, |
| 1508 | BIT1 ext, |
| 1509 | LIN2_2a_GTPC lengthIndicator, |
| 1510 | HEX1 rIMRoutingAddressDiscriminator, |
| 1511 | HEX1 spare, |
| 1512 | RIM_Routing_Address_GTPC rIM_Routing_Address |
| 1513 | } with { |
| 1514 | variant (lengthIndicator) |
| 1515 | "LENGTHTO (rIMRoutingAddressDiscriminator,spare,rIM_Routing_Address)"; |
| 1516 | variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B; |
| 1517 | length2, ext = '0'B;)"; |
| 1518 | variant (ext,lengthIndicator) "FIELDORDER(msb)"; |
| 1519 | |
| 1520 | variant (rIM_Routing_Address) |
| 1521 | "CROSSTAG (cell_Identifier,rIMRoutingAddressDiscriminator = '0'H; |
| 1522 | rNCID, rIMRoutingAddressDiscriminator = '1'H; |
| 1523 | eNB_Identifier, rIMRoutingAddressDiscriminator = '2'H;)" |
| 1524 | }; |
| 1525 | |
| 1526 | type record Cell_Identifier_V_GTPC |
| 1527 | { |
| 1528 | HEX1 mccDigit1, |
| 1529 | HEX1 mccDigit2, |
| 1530 | HEX1 mccDigit3, |
| 1531 | HEX1 mncDigit3, |
| 1532 | HEX1 mncDigit1, |
| 1533 | HEX1 mncDigit2, |
| 1534 | OCT2 lac, |
| 1535 | OCT1 rac, |
| 1536 | OCT2 cI_value |
| 1537 | }; |
| 1538 | |
| 1539 | type union RIM_Routing_Address_GTPC |
| 1540 | { |
| 1541 | Cell_Identifier_V_GTPC cell_Identifier, |
| 1542 | RNC_ID_BSSGP_GTPC rNCID, |
| 1543 | ENB_Identifier eNB_Identifier |
| 1544 | } |
| 1545 | |
| 1546 | type record RNC_ID_BSSGP_GTPC |
| 1547 | { |
| 1548 | HEX1 mccDigit1, |
| 1549 | HEX1 mccDigit2, |
| 1550 | HEX1 mccDigit3, |
| 1551 | HEX1 mncDigit3, |
| 1552 | HEX1 mncDigit1, |
| 1553 | HEX1 mncDigit2, |
| 1554 | OCT2 lAC, |
| 1555 | OCT1 rAC, |
| 1556 | HEX1 spare, |
| 1557 | integer rNC_ID |
| 1558 | } with { |
| 1559 | variant (spare,rNC_ID) "FIELDORDER(msb)"; |
| 1560 | variant (rNC_ID) "BYTEORDER(last)"; |
| 1561 | variant (rNC_ID) "FIELDLENGTH(12)"; |
| 1562 | } |
| 1563 | |
| 1564 | type record ENB_Identifier |
| 1565 | { |
| 1566 | HEX1 mccDigit1, |
| 1567 | HEX1 mccDigit2, |
| 1568 | HEX1 mccDigit3, |
| 1569 | HEX1 mncDigit3, |
| 1570 | HEX1 mncDigit1, |
| 1571 | HEX1 mncDigit2, |
| 1572 | OCT2 tAC, |
| 1573 | octetstring globalENB_ID |
| 1574 | } |
| 1575 | |
| 1576 | //Note: the following structure is outdated |
| 1577 | /* |
| 1578 | type record GlobalRNC_ID_BSSGP_GTPC |
| 1579 | { |
| 1580 | HEX1 mccDigit1, |
| 1581 | HEX1 mccDigit2, |
| 1582 | HEX1 mccDigit3, |
| 1583 | HEX1 mncDigit3, |
| 1584 | HEX1 mncDigit1, |
| 1585 | HEX1 mncDigit2, |
| 1586 | |
| 1587 | integer rNC_ID |
| 1588 | } with { |
| 1589 | variant (spare,rNC_ID) "FIELDORDER(msb)"; |
| 1590 | variant (rNC_ID) "BYTEORDER(last)"; |
| 1591 | variant (rNC_ID) "FIELDLENGTH(12)"; |
| 1592 | } |
| 1593 | */ |
| 1594 | |
| 1595 | //48.018 v9.3.0 10.6.1 |
| 1596 | type record PDU_BSSGP_RAN_INFORMATION_REQUEST_GTPC |
| 1597 | { |
| 1598 | OCT1 bssgpPduType, |
| 1599 | RIM_Routing_Information_GTPC destination_Cell_Identifier, |
| 1600 | RIM_Routing_Information_GTPC source_Cell_Identifier, |
| 1601 | RAN_Information_Request_RIM_Container_GTPC rIM_Container |
| 1602 | }; |
| 1603 | |
| 1604 | //48.018 v9.3.0 10.6.2 |
| 1605 | type record PDU_BSSGP_RAN_INFORMATION_GTPC |
| 1606 | { |
| 1607 | OCT1 bssgpPduType, |
| 1608 | RIM_Routing_Information_GTPC destination_Cell_Identifier, |
| 1609 | RIM_Routing_Information_GTPC source_Cell_Identifier, |
| 1610 | RAN_Information_RIM_Container_GTPC rIM_Container |
| 1611 | }; |
| 1612 | |
| 1613 | //48.018 v9.3.0 10.6.3 |
| 1614 | type record PDU_BSSGP_RAN_INFORMATION_ACK_GTPC |
| 1615 | { |
| 1616 | OCT1 bssgpPduType, |
| 1617 | RIM_Routing_Information_GTPC destination_Cell_Identifier, |
| 1618 | RIM_Routing_Information_GTPC source_Cell_Identifier, |
| 1619 | RAN_Information_Ack_RIM_Container_GTPC rIM_Container |
| 1620 | }; |
| 1621 | |
| 1622 | //48.018 v9.3.0 10.6.4 |
| 1623 | type record PDU_BSSGP_RAN_INFORMATION_ERROR_GTPC |
| 1624 | { |
| 1625 | OCT1 bssgpPduType, |
| 1626 | RIM_Routing_Information_GTPC destination_Cell_Identifier, |
| 1627 | RIM_Routing_Information_GTPC source_Cell_Identifier, |
| 1628 | RAN_Information_Error_RIM_Container_GTPC rIM_Container |
| 1629 | }; |
| 1630 | |
| 1631 | //48.018 v9.3.0 10.6.5 |
| 1632 | type record PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR_GTPC |
| 1633 | { |
| 1634 | OCT1 bssgpPduType, |
| 1635 | RIM_Routing_Information_GTPC destination_Cell_Identifier, |
| 1636 | RIM_Routing_Information_GTPC source_Cell_Identifier, |
| 1637 | RAN_Information_Application_Error_RIM_Container_GTPC rIM_Container |
| 1638 | }; |
| 1639 | |
| 1640 | type union RANTransparentContainerField |
| 1641 | { |
| 1642 | PDU_BSSGP_RAN_INFORMATION_REQUEST_GTPC pDU_BSSGP_RAN_INFORMATION_REQUEST, |
| 1643 | PDU_BSSGP_RAN_INFORMATION_GTPC pDU_BSSGP_RAN_INFORMATION, |
| 1644 | PDU_BSSGP_RAN_INFORMATION_ACK_GTPC pDU_BSSGP_RAN_INFORMATION_ACK, |
| 1645 | PDU_BSSGP_RAN_INFORMATION_ERROR_GTPC pDU_BSSGP_RAN_INFORMATION_ERROR, |
| 1646 | PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR_GTPC |
| 1647 | pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR |
| 1648 | } with { variant "TAG ( |
| 1649 | pDU_BSSGP_RAN_INFORMATION_REQUEST, bssgpPduType ='71'O; |
| 1650 | pDU_BSSGP_RAN_INFORMATION, bssgpPduType ='70'O; |
| 1651 | pDU_BSSGP_RAN_INFORMATION_ACK, bssgpPduType ='72'O; |
| 1652 | pDU_BSSGP_RAN_INFORMATION_ERROR, bssgpPduType ='73'O; |
| 1653 | pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR, bssgpPduType ='74'O |
| 1654 | )" |
| 1655 | }; |
| 1656 | |
| 1657 | //RAN Transparent Container 7.7.43 |
| 1658 | type record RANTransparentContainer{ |
| 1659 | OCT1 type_gtpc, |
| 1660 | LIN2_BO_LAST lengthf, |
| 1661 | RANTransparentContainerField rANTransparentContainerField |
| 1662 | } with { variant "PRESENCE( type_gtpc = '90'O)"; |
| 1663 | variant (lengthf) "LENGTHTO(rANTransparentContainerField)"; }; |
| 1664 | |
| 1665 | //Charging Gateway Address - 7.7.44 |
| 1666 | type record ChargingGatewayAddress { |
| 1667 | OCT1 type_gtpc, |
| 1668 | LIN2_BO_LAST lengthf, |
| 1669 | iPv4_iPv6_Address ipv_address |
| 1670 | } with { variant "PRESENCE( type_gtpc = 'FB'O)"; |
| 1671 | variant (lengthf) "LENGTHTO(ipv_address)";}; |
| 1672 | |
| 1673 | type union iPv4_iPv6_Address{ |
| 1674 | OCT4 iPv4_Address, |
| 1675 | OCT16 iPv6_Address |
| 1676 | } |
| 1677 | |
| 1678 | //PDP Context Priorization - 7.7.45 |
| 1679 | type record PDPContextPriorization { |
| 1680 | OCT1 type_gtpc, |
| 1681 | LIN2_BO_LAST lengthf |
| 1682 | } with { variant "PRESENCE( type_gtpc = '91'O)";}; |
| 1683 | |
| 1684 | //Addititonal RAB Setup Information - 7.7.45A |
| 1685 | |
| 1686 | type record of AdditionalRABSetupInformation AdditionalRABSetupInformation_List |
| 1687 | |
| 1688 | type record AdditionalRABSetupInformation { |
| 1689 | OCT1 type_gtpc, |
| 1690 | LIN2_BO_LAST lengthf, |
| 1691 | BIT4 nsapi, |
| 1692 | BIT4 unused, |
| 1693 | OCT4 teidData optional, |
| 1694 | octetstring rncIpAddress optional |
| 1695 | } with {variant "PRESENCE( type_gtpc = '92'O)"; |
| 1696 | variant (lengthf) "LENGTHTO(nsapi,unused,teidData,rncIpAddress)"; }; |
| 1697 | |
| 1698 | //Private Extension - 7.7.46 |
| 1699 | type record of PrivateExtension_gtpc PrivateExtension_gtpc_List; |
| 1700 | |
| 1701 | type record PrivateExtension_gtpc { |
| 1702 | OCT1 type_gtpc, |
| 1703 | LIN2_BO_LAST lengthf, |
| 1704 | OCT2 extensionID, |
| 1705 | octetstring extensionValue |
| 1706 | } with {variant "PRESENCE( type_gtpc = 'FF'O)"; |
| 1707 | variant (lengthf) "LENGTHTO(extensionID, extensionValue)"; }; |
| 1708 | |
| 1709 | //SGSN Number - 7.7.47 |
| 1710 | type record SGSN_Number { |
| 1711 | OCT1 type_gtpc, |
| 1712 | LIN2_BO_LAST lengthf, |
| 1713 | octetstring sGSN_NumberValue |
| 1714 | } with { variant "PRESENCE( type_gtpc = '93'O)"; |
| 1715 | variant (lengthf) "LENGTHTO(sGSN_NumberValue)"; }; |
| 1716 | |
| 1717 | //Common Flags - 7.7.48 |
| 1718 | type record CommonFlags { |
| 1719 | OCT1 type_gtpc, |
| 1720 | LIN2_BO_LAST lengthf, |
| 1721 | BIT1 prohibitPayloadCompression, |
| 1722 | BIT1 mBMS_ServiceType, |
| 1723 | BIT1 rAN_ProceduresReady, |
| 1724 | BIT1 mBMS_CountingInformation, |
| 1725 | BIT1 nO_QoS_Negotiation, |
| 1726 | BIT1 nRSN, |
| 1727 | BIT1 upgradeQoS_Supported, |
| 1728 | BIT1 dualAddressBearerFlag |
| 1729 | } with { variant "PRESENCE( type_gtpc = '94'O)"; |
| 1730 | variant (lengthf) "LENGTHTO(prohibitPayloadCompression,mBMS_ServiceType, |
| 1731 | rAN_ProceduresReady,mBMS_CountingInformation, |
| 1732 | nO_QoS_Negotiation,nRSN,upgradeQoS_Supported,dualAddressBearerFlag)"; }; |
| 1733 | |
| 1734 | //APN Restriction - 7.7.49 |
| 1735 | type record APN_Restriction { |
| 1736 | OCT1 type_gtpc, |
| 1737 | LIN2_BO_LAST lengthf, |
| 1738 | OCT1 restrictionTypeValue |
| 1739 | } with { variant "PRESENCE( type_gtpc = '95'O)"; |
| 1740 | variant (lengthf) "LENGTHTO(restrictionTypeValue)"; }; |
| 1741 | |
| 1742 | // RAT Type - 7.7.50 |
| 1743 | type record RATType { |
| 1744 | OCT1 type_gtpc, |
| 1745 | LIN2_BO_LAST lengthf, |
| 1746 | OCT1 ratTypeValue |
| 1747 | } with { variant "PRESENCE( type_gtpc = '97'O)"; |
| 1748 | variant (lengthf) "LENGTHTO(ratTypeValue)"; }; |
| 1749 | |
| 1750 | // User Location Information - 7.7.51 |
| 1751 | type record UserLocationInformation { |
| 1752 | OCT1 type_gtpc, |
| 1753 | LIN2_BO_LAST lengthf, |
| 1754 | OCT1 geographicLocationType, |
| 1755 | GeographicLocation_gtpc geographicLocation |
| 1756 | } with { variant "PRESENCE( type_gtpc = '98'O)"; |
| 1757 | variant (lengthf) "LENGTHTO(geographicLocationType, geographicLocation)"; |
| 1758 | variant (geographicLocation) "CROSSTAG(geographicLocationCGI, geographicLocationType='00'O; |
| 1759 | geographicLocationSAI, geographicLocationType='01'O; |
| 1760 | geographicLocationRAI, geographicLocationType='02'O)";}; |
| 1761 | |
| 1762 | type union GeographicLocation_gtpc { |
| 1763 | GeographicLocationCGI geographicLocationCGI, |
| 1764 | GeographicLocationSAI geographicLocationSAI, |
| 1765 | GeographicLocationRAI geographicLocationRAI |
| 1766 | } |
| 1767 | |
| 1768 | // Figure 7.7.51.2: Geographic Location field for CGI |
| 1769 | type record GeographicLocationCGI { |
| 1770 | HEX1 mccDigit1, |
| 1771 | HEX1 mccDigit2, |
| 1772 | HEX1 mccDigit3, |
| 1773 | HEX1 mncDigit3, |
| 1774 | HEX1 mncDigit1, |
| 1775 | HEX1 mncDigit2, |
| 1776 | OCT2 lac, |
| 1777 | OCT2 cI_value |
| 1778 | } |
| 1779 | |
| 1780 | // Figure 7.7.51.3: Geographic Location field for SAI |
| 1781 | type record GeographicLocationSAI { |
| 1782 | HEX1 mccDigit1, |
| 1783 | HEX1 mccDigit2, |
| 1784 | HEX1 mccDigit3, |
| 1785 | HEX1 mncDigit3, |
| 1786 | HEX1 mncDigit1, |
| 1787 | HEX1 mncDigit2, |
| 1788 | OCT2 lac, |
| 1789 | OCT2 sac |
| 1790 | } |
| 1791 | |
| 1792 | // Figure 7.7.51.4: Geographic Location field for RAI |
| 1793 | type record GeographicLocationRAI { |
| 1794 | HEX1 mccDigit1, |
| 1795 | HEX1 mccDigit2, |
| 1796 | HEX1 mccDigit3, |
| 1797 | HEX1 mncDigit3, |
| 1798 | HEX1 mncDigit1, |
| 1799 | HEX1 mncDigit2, |
| 1800 | OCT2 lac, |
| 1801 | OCT2 rac |
| 1802 | } |
| 1803 | |
| 1804 | // MS Time Zone - 7.7.52 |
| 1805 | type record MS_TimeZone { |
| 1806 | OCT1 type_gtpc, |
| 1807 | LIN2_BO_LAST lengthf, |
| 1808 | OCT1 timeZone, |
| 1809 | BIT2 daylightSavingTime, |
| 1810 | BIT3 spare1, |
| 1811 | // This bit is proprietary, compared to the 3GPP definition of |
| 1812 | // the Time Zone information element. |
| 1813 | // The new field "SGSN Attempts to Update MS" is described in |
| 1814 | // the following CPI documentation: GSN CDR Format, |
| 1815 | // 1/190 83-AXB 250 05/6 Uen A. |
| 1816 | // Web link to CPI: http://cpi2.al.sw.ericsson.se/alex?pr=PDU+PCN |
| 1817 | BIT1 sgsnAttempsToUpdateMS, |
| 1818 | BIT2 spare2 |
| 1819 | } with { variant "PRESENCE( type_gtpc = '99'O)"; |
| 1820 | variant (lengthf) "LENGTHTO(timeZone, daylightSavingTime, spare1, |
| 1821 | sgsnAttempsToUpdateMS, spare2)"; }; |
| 1822 | |
| 1823 | // IMEISV - 7.7.53 |
| 1824 | type record IMEISV_gtpc { |
| 1825 | OCT1 type_gtpc, |
| 1826 | LIN2_BO_LAST lengthf, |
| 1827 | OCT8 imeisv |
| 1828 | } with { variant "PRESENCE( type_gtpc = '9A'O)"; |
| 1829 | variant (lengthf) "LENGTHTO(imeisv)"; }; |
| 1830 | |
| 1831 | // Camel Charging Information Container - 7.7.54 |
| 1832 | type record CamelChargingInformationContainer { |
| 1833 | OCT1 type_gtpc, |
| 1834 | LIN2_BO_LAST lengthf, |
| 1835 | octetstring camelInformationPDP_IE |
| 1836 | } with { variant "PRESENCE( type_gtpc = '9B'O)"; |
| 1837 | variant (lengthf) "LENGTHTO(camelInformationPDP_IE)"; }; |
| 1838 | |
| 1839 | // MBMS UE Context Container - 7.7.55 |
| 1840 | type record of MBMS_UE_ContextContainer MBMS_UE_Context_List; |
| 1841 | |
| 1842 | type record MBMS_UE_ContextContainer { |
| 1843 | OCT1 type_gtpc, |
| 1844 | LIN2_BO_LAST lengthf, |
| 1845 | BIT4 spare1, |
| 1846 | BIT4 linkedNSAPI, |
| 1847 | OCT4 uteidControlPlane, |
| 1848 | OCT1 enhancedNSAPI, |
| 1849 | BIT4 pdp_typeorg, |
| 1850 | BIT4 spare2, |
| 1851 | OCT1 pdp_typenum, |
| 1852 | integer pdp_addressLength, |
| 1853 | octetstring pdp_address length (0..63), |
| 1854 | integer ggsn_addressControlPlaneLength, |
| 1855 | octetstring ggsn_addressControlPlane length (4..16), |
| 1856 | integer apnLength, |
| 1857 | octetstring apn, |
| 1858 | BIT4 transactionId, |
| 1859 | BIT4 spare3, |
| 1860 | OCT1 transactionID |
| 1861 | } with {variant "PRESENCE( type_gtpc = '9C'O)"; |
| 1862 | variant (lengthf) "LENGTHTO(spare1, linkedNSAPI, |
| 1863 | uteidControlPlane, enhancedNSAPI, pdp_typeorg, spare2, |
| 1864 | pdp_typenum, pdp_addressLength, pdp_address, |
| 1865 | ggsn_addressControlPlaneLength, ggsn_addressControlPlane, |
| 1866 | apnLength, apn, transactionId, spare3, transactionID)"; |
| 1867 | variant (pdp_addressLength) "LENGTHTO(pdp_address)"; |
| 1868 | variant (ggsn_addressControlPlaneLength) |
| 1869 | "LENGTHTO(ggsn_addressControlPlane)"; |
| 1870 | variant (apnLength) "LENGTHTO(apn)"; |
| 1871 | }; |
| 1872 | |
| 1873 | // Temporary Mobile Group Identity - 7.7.56 |
| 1874 | type record TMGI_gtpc { |
| 1875 | OCT1 type_gtpc, |
| 1876 | LIN2_BO_LAST lengthf, |
| 1877 | OCT6 tMGIValue |
| 1878 | } with { variant "PRESENCE( type_gtpc = '9D'O)"; |
| 1879 | variant (lengthf) "LENGTHTO(tMGIValue)"; }; |
| 1880 | |
| 1881 | // RIM Routing Address - 7.7.57 |
| 1882 | type record RIM_RoutingAddress { |
| 1883 | OCT1 type_gtpc, |
| 1884 | LIN2_BO_LAST lengthf, |
| 1885 | octetstring rIM_RoutingAddressValue |
| 1886 | //Left as octetstring because GTP spec does not include the RIM Routing |
| 1887 | // Address Discriminator and therefore decoding is not possible as in 48.018 |
| 1888 | //CR 544 states that "The RIM Routing Address contains the destination RNC |
| 1889 | // Identity from the RAN INFORMATION message when the source is GERAN and |
| 1890 | // the target is UTRAN. |
| 1891 | //The RIM Routing Address contains the destination Cell Identifier from the |
| 1892 | // RAN INFORMATION message when the source is GERAN and the target ir GERAN. |
| 1893 | } with { variant "PRESENCE( type_gtpc = '9E'O)"; |
| 1894 | variant (lengthf) "LENGTHTO(rIM_RoutingAddressValue)"; }; |
| 1895 | |
| 1896 | //MBMS Protocol Configuration Options - 7.7.58 |
| 1897 | type record MBMS_ProtocolConfigurationOptions { |
| 1898 | OCT1 type_gtpc, |
| 1899 | LIN2_BO_LAST lengthf, |
| 1900 | octetstring mBMS_ProtocolConfigurationOptions |
| 1901 | } with { variant "PRESENCE( type_gtpc = '9F'O)"; |
| 1902 | variant (lengthf) "LENGTHTO(mBMS_ProtocolConfigurationOptions)"; }; |
| 1903 | |
| 1904 | // MBMS Session Duration - 7.7.59 |
| 1905 | type record MBMS_SessionDuration { |
| 1906 | OCT1 type_gtpc, |
| 1907 | LIN2_BO_LAST lengthf, |
| 1908 | OCT3 mBMS_SessionDurationValue |
| 1909 | } with { variant "PRESENCE( type_gtpc = 'A8'O)"; |
| 1910 | variant (lengthf) "LENGTHTO(mBMS_SessionDurationValue)"; }; |
| 1911 | |
| 1912 | |
| 1913 | // MBMS Service Area - 7.7.60 |
| 1914 | type record MBMS_ServiceArea { |
| 1915 | OCT1 type_gtpc, |
| 1916 | LIN2_BO_LAST lengthf, |
| 1917 | octetstring mBMS_ServiceAreaValue |
| 1918 | } with { variant "PRESENCE( type_gtpc = 'A0'O)"; |
| 1919 | variant (lengthf) "LENGTHTO(mBMS_ServiceAreaValue)"; }; |
| 1920 | |
| 1921 | // Source RNC PDCP context info - 7.7.61 |
| 1922 | type record SourceRNC_PDCP_ContextInfo { |
| 1923 | OCT1 type_gtpc, |
| 1924 | LIN2_BO_LAST lengthf, |
| 1925 | octetstring rRC_Container |
| 1926 | } with { variant "PRESENCE( type_gtpc = 'A1'O)"; |
| 1927 | variant (lengthf) "LENGTHTO(rRC_Container)"; }; |
| 1928 | |
| 1929 | // Additional Trace Info - 7.7.62 |
| 1930 | type record AdditionalTraceInfo { |
| 1931 | OCT1 type_gtpc, |
| 1932 | LIN2_BO_LAST lengthf, |
| 1933 | OCT3 traceReference2, |
| 1934 | OCT2 traceRecordingSessionReference, |
| 1935 | OCT1 triggeringEvents_GGSN, |
| 1936 | OCT1 traceDepth, |
| 1937 | OCT1 listOfInterfaces_GGSN, |
| 1938 | OCT1 traceActivityControl |
| 1939 | } with { variant "PRESENCE( type_gtpc = 'A2'O)"; |
| 1940 | variant (lengthf) "LENGTHTO(traceReference2, |
| 1941 | traceRecordingSessionReference, triggeringEvents_GGSN, |
| 1942 | traceDepth, listOfInterfaces_GGSN, traceActivityControl)"; |
| 1943 | }; |
| 1944 | |
| 1945 | // Hop Counter - 7.7.63 |
| 1946 | type record HopCounter_gtpc { |
| 1947 | OCT1 type_gtpc, |
| 1948 | LIN2_BO_LAST lengthf, |
| 1949 | integer hopCounter |
| 1950 | } with { variant "PRESENCE( type_gtpc = 'A3'O)"; |
| 1951 | variant (lengthf) "LENGTHTO(hopCounter)"; }; |
| 1952 | |
| 1953 | // Selected PLMN ID - 7.7.64 |
| 1954 | type record Selected_PLMN_ID { |
| 1955 | OCT1 type_gtpc, |
| 1956 | LIN2_BO_LAST lengthf, |
| 1957 | OCT3 selected_PLMN_Identity |
| 1958 | } with { variant "PRESENCE( type_gtpc = 'A4'O)"; |
| 1959 | variant (lengthf) "LENGTHTO(selected_PLMN_Identity)"; }; |
| 1960 | |
| 1961 | // MBMS Session Identifier - 7.7.65 |
| 1962 | type record MBMS_SessionIdentifier { |
| 1963 | OCT1 type_gtpc, |
| 1964 | LIN2_BO_LAST lengthf, |
| 1965 | OCT1 mBMS_SessionIdentifier |
| 1966 | } with { variant "PRESENCE( type_gtpc = 'A5'O)"; |
| 1967 | variant (lengthf) "LENGTHTO(mBMS_SessionIdentifier)"; }; |
| 1968 | |
| 1969 | // MBMS 2G/3G Indicator - 7.7.66 |
| 1970 | type record MBMS_2G_3G_Indicator { |
| 1971 | OCT1 type_gtpc, |
| 1972 | LIN2_BO_LAST lengthf, |
| 1973 | OCT1 mBMS_2G_3G_Indicator |
| 1974 | } with { variant "PRESENCE( type_gtpc = 'A6'O)"; |
| 1975 | variant (lengthf) "LENGTHTO(mBMS_2G_3G_Indicator)"; }; |
| 1976 | |
| 1977 | // Enhanced NSAPI - 7.7.67 |
| 1978 | type record Enhanced_NSAPI { |
| 1979 | OCT1 type_gtpc, |
| 1980 | LIN2_BO_LAST lengthf, |
| 1981 | OCT1 enhanced_NSAPI |
| 1982 | } with { variant "PRESENCE( type_gtpc = 'A7'O)"; |
| 1983 | variant (lengthf) "LENGTHTO(enhanced_NSAPI)"; }; |
| 1984 | |
| 1985 | // Additional MBMS Trace Info - 7.7.68 |
| 1986 | type record AdditionalMBMSTraceInfo { |
| 1987 | OCT1 type_gtpc, |
| 1988 | LIN2_BO_LAST lengthf, |
| 1989 | OCT3 traceReference2, |
| 1990 | OCT2 traceRecordingSessionReference, |
| 1991 | OCT2 triggeringEvents_BM_SC, |
| 1992 | OCT1 traceDepth_BM_SC, |
| 1993 | OCT1 listOfInterfaces_BM_SC, |
| 1994 | OCT1 traceActivityControl_BM_SC |
| 1995 | } with { variant "PRESENCE( type_gtpc = 'A9'O)"; |
| 1996 | variant (lengthf) "LENGTHTO(traceReference2, traceRecordingSessionReference, |
| 1997 | triggeringEvents_BM_SC, traceDepth_BM_SC, |
| 1998 | listOfInterfaces_BM_SC, traceActivityControl_BM_SC)"; |
| 1999 | }; |
| 2000 | |
| 2001 | // MBMS Session Repetition Number - 7.7.69 |
| 2002 | type record MBMS_SessionRepetitionNumber { |
| 2003 | OCT1 type_gtpc, |
| 2004 | LIN2_BO_LAST lengthf, |
| 2005 | OCT1 mBMS_SessionRepetitionNumber |
| 2006 | } with { variant "PRESENCE( type_gtpc = 'AA'O)"; |
| 2007 | variant (lengthf) "LENGTHTO(mBMS_SessionRepetitionNumber)"; }; |
| 2008 | |
| 2009 | // MBMS Time To Data Transfer - 7.7.70 |
| 2010 | type record MBMS_TimeToDataTransfer { |
| 2011 | OCT1 type_gtpc, |
| 2012 | LIN2_BO_LAST lengthf, |
| 2013 | OCT1 mBMS_TimeToDataTransfer |
| 2014 | } with { variant "PRESENCE( type_gtpc = 'AB'O)"; |
| 2015 | variant (lengthf) "LENGTHTO(mBMS_TimeToDataTransfer)"; }; |
| 2016 | |
| 2017 | // BSS Container - 7.7.72 |
| 2018 | type record BSS_Container { |
| 2019 | OCT1 type_gtpc, |
| 2020 | LIN2_BO_LAST lengthf, |
| 2021 | octetstring bSS_Container // TODO FIXME: which Container is the BSS Container? |
| 2022 | } with { variant "PRESENCE( type_gtpc = 'AD'O)"; |
| 2023 | variant (lengthf) "LENGTHTO(bSS_Container)"; }; |
| 2024 | |
| 2025 | |
| 2026 | // Cell Identification - 7.7.73 |
| 2027 | |
| 2028 | // Routing Area identification - from 24.008 10.5.5.15 |
| 2029 | type record RoutingAreaIdentificationV_gtpc |
| 2030 | { |
| 2031 | HEX1 mccDigit1, |
| 2032 | HEX1 mccDigit2, |
| 2033 | HEX1 mccDigit3, |
| 2034 | HEX1 mncDigit3, |
| 2035 | HEX1 mncDigit1, |
| 2036 | HEX1 mncDigit2, |
| 2037 | OCT2 lac, |
| 2038 | OCT1 rac |
| 2039 | }; |
| 2040 | |
| 2041 | type record RNC_Identifier_gtpc { |
| 2042 | RoutingAreaIdentificationV_gtpc routingAreaIdentificationV_gtpc, |
| 2043 | integer rNC_ID, |
| 2044 | HEX1 spare |
| 2045 | } with { |
| 2046 | variant (spare,rNC_ID) "FIELDORDER(msb)"; |
| 2047 | variant (rNC_ID) "BYTEORDER(last)"; |
| 2048 | variant (rNC_ID) "FIELDLENGTH(12)"; |
| 2049 | } |
| 2050 | |
| 2051 | type union Cell_ID_or_RNC_ID { |
| 2052 | Cell_Identifier_V_GTPC cell_Identifier, |
| 2053 | RNC_Identifier_gtpc rNC_Identifier |
| 2054 | } |
| 2055 | |
| 2056 | type record Cell_Identification_gtpc { |
| 2057 | OCT1 type_gtpc, |
| 2058 | LIN2_BO_LAST lengthf, |
| 2059 | Cell_Identifier_V_GTPC targetCell_ID, |
| 2060 | OCT1 sourceType, //0 - Source Cell ID / 1- Source RNC ID in next field |
| 2061 | Cell_ID_or_RNC_ID source_Cell_ID_or_RNC_ID |
| 2062 | } with {variant "PRESENCE( type_gtpc = 'AE'O)"; |
| 2063 | variant (lengthf) "LENGTHTO(targetCell_ID,sourceType,source_Cell_ID_or_RNC_ID)"; |
| 2064 | variant (source_Cell_ID_or_RNC_ID) "CROSSTAG ( cell_Identifier, sourceType = '00'O; |
| 2065 | rNC_Identifier, sourceType = '01'O)"; }; |
| 2066 | |
| 2067 | // PDU Numbers - 7.7.74 |
| 2068 | type record of PDU_Numbers PDU_Numbers_List; |
| 2069 | |
| 2070 | type record PDU_Numbers { |
| 2071 | OCT1 type_gtpc, |
| 2072 | LIN2_BO_LAST lengthf, |
| 2073 | BIT4 nsapi, |
| 2074 | BIT4 spare, |
| 2075 | OCT2 dL_GTPU_SequenceNumber, |
| 2076 | OCT2 uL_GTPU_SequenceNumber, |
| 2077 | OCT2 sendNPDUnum, |
| 2078 | OCT2 receiveNPDUnum |
| 2079 | } with {variant "PRESENCE( type_gtpc = 'AF'O)"; |
| 2080 | variant (lengthf) "LENGTHTO(nsapi, spare, dL_GTPU_SequenceNumber, uL_GTPU_SequenceNumber, |
| 2081 | sendNPDUnum, receiveNPDUnum)"; }; |
| 2082 | |
| 2083 | // BSSGP Cause - 7.7.75 |
| 2084 | type record BSSGP_Cause_gtpc { |
| 2085 | OCT1 type_gtpc, |
| 2086 | LIN2_BO_LAST lengthf, |
| 2087 | OCT1 bSSGP_Cause |
| 2088 | } with { variant "PRESENCE( type_gtpc = 'B0'O)"; |
| 2089 | variant (lengthf) "LENGTHTO(bSSGP_Cause)"; }; |
| 2090 | |
| 2091 | // Required MBMS Bearer Capabilities - 7.7.76 |
| 2092 | type record RequiredMBMS_BearerCapabilities { |
| 2093 | OCT1 type_gtpc, |
| 2094 | LIN2_BO_LAST lengthf, |
| 2095 | octetstring reqMBMS_BearerCapValue |
| 2096 | } with { variant "PRESENCE( type_gtpc = 'B1'O)"; |
| 2097 | variant (lengthf) "LENGTHTO(reqMBMS_BearerCapValue)"; }; |
| 2098 | |
| 2099 | // RIM Routing Address Discriminator 7.7.77 |
| 2100 | type record RIM_RoutingAddress_Discriminator { |
| 2101 | OCT1 type_gtpc, |
| 2102 | LIN2_BO_LAST lengthf, |
| 2103 | BIT4 rra_discriminator, |
| 2104 | BIT4 spare |
| 2105 | } with { variant "PRESENCE( type_gtpc = 'B2'O)"; |
| 2106 | variant (lengthf) "LENGTHTO(rra_discriminator,spare)"; }; |
| 2107 | |
| 2108 | // ListOfSetupPFCs - 7.7.78 |
| 2109 | |
| 2110 | // PFC/PFI as defined in BSSGP (48.018 - 11.3.83) which refers to L3 (24.008 - 10.5.6.11) |
| 2111 | type record Single_PFI_gtpc |
| 2112 | { |
| 2113 | BIT7 pFI_Value, |
| 2114 | BIT1 spare |
| 2115 | } |
| 2116 | |
| 2117 | type record length (0..11) of Single_PFI_gtpc Multiple_PFIs_gtpc; |
| 2118 | |
| 2119 | type record ListOfSetupPFCsValue_gtpc |
| 2120 | { |
| 2121 | integer number_of_PFCs (0..11), // note: 12 .. 255 are reserved!!! |
| 2122 | Multiple_PFIs_gtpc pFIs |
| 2123 | } with |
| 2124 | { |
| 2125 | variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFIs),FIELDLENGTH(8)"; |
| 2126 | } |
| 2127 | |
| 2128 | type record ListOfSetupPFCs_gtpc { |
| 2129 | OCT1 type_gtpc, |
| 2130 | LIN2_BO_LAST lengthf, |
| 2131 | ListOfSetupPFCsValue_gtpc listOfSetupPFCs |
| 2132 | } with { variant "PRESENCE( type_gtpc = 'B3'O)"; |
| 2133 | variant (lengthf) "LENGTHTO(listOfSetupPFCs)"; }; |
| 2134 | |
| 2135 | // PS Handover XID Parameters 7.7.79 |
| 2136 | type record of PS_HandoverXIDParameters PS_HandoverXIDParameters_List; |
| 2137 | |
| 2138 | type record PS_HandoverXIDParameters { |
| 2139 | OCT1 type_gtpc, |
| 2140 | LIN2_BO_LAST lengthf, |
| 2141 | BIT4 sapi, |
| 2142 | BIT4 spare, |
| 2143 | LIN1 xID_ParametersLength, |
| 2144 | XID_Information_GTPC xID_Parameters optional |
| 2145 | } with { |
| 2146 | variant (lengthf) "LENGTHTO(sapi,spare,xID_ParametersLength,xID_Parameters)"; |
| 2147 | variant (xID_ParametersLength) "LENGTHTO(xID_Parameters)"; |
| 2148 | variant "PRESENCE(type_gtpc = 'B4'O)" |
| 2149 | }; |
| 2150 | |
| 2151 | //The following types are based on types in LLC_Types.ttcn |
| 2152 | |
| 2153 | type record of XID_GTPC XID_Information_GTPC; |
| 2154 | |
| 2155 | type record XID_GTPC |
| 2156 | { |
| 2157 | BIT1 xl, |
| 2158 | BIT5 typefield, |
| 2159 | XID_length_GTPC xID_length, |
| 2160 | //Header_XID header_XID, |
| 2161 | XID_Data_GTPC xID_Data |
| 2162 | } with { |
| 2163 | variant (xID_Data) "CROSSTAG( version, typefield = '00000'B; |
| 2164 | iOV_UI, typefield = '00001'B; |
| 2165 | iOV_I, typefield = '00010'B; |
| 2166 | t200, typefield = '00011'B; |
| 2167 | n200, typefield = '00100'B; |
| 2168 | n201_U, typefield = '00101'B; |
| 2169 | n201_I, typefield = '00110'B; |
| 2170 | mD, typefield = '00111'B; |
| 2171 | mU, typefield = '01000'B; |
| 2172 | kD, typefield = '01001'B; |
| 2173 | kU, typefield = '01010'B; |
| 2174 | l3param, typefield = '01011'B; |
| 2175 | reset, typefield = '01100'B; |
| 2176 | |
| 2177 | )"; |
| 2178 | variant "FIELDORDER(msb)"; |
| 2179 | variant (xID_length) "CROSSTAG( short_len, xl = '0'B; |
| 2180 | long_len, xl = '1'B;)"; |
| 2181 | variant (xID_length) "LENGTHTO (xID_Data)" |
| 2182 | |
| 2183 | variant (xID_length) "PADDING(yes)" |
| 2184 | }; |
| 2185 | |
| 2186 | type union XID_length_GTPC |
| 2187 | { |
| 2188 | integer short_len, |
| 2189 | integer long_len |
| 2190 | }with { |
| 2191 | variant (short_len) "FIELDLENGTH(2)"; |
| 2192 | variant (long_len) "FIELDLENGTH(8)"; |
| 2193 | variant (long_len) "BYTEORDER(last)"; |
| 2194 | variant (short_len) "FIELDORDER(msb)"; |
| 2195 | variant (long_len) "FIELDORDER(msb)"; |
| 2196 | |
| 2197 | } |
| 2198 | |
| 2199 | type union XID_Data_GTPC |
| 2200 | { |
| 2201 | Version_GTPC version, |
| 2202 | IOV_UI_GTPC iOV_UI, |
| 2203 | IOV_I_GTPC iOV_I, |
| 2204 | T200_GTPC t200, |
| 2205 | N200_GTPC n200, |
| 2206 | N201_U_GTPC n201_U, |
| 2207 | N201_I_GTPC n201_I, |
| 2208 | MD_GTPC mD, |
| 2209 | MU_GTPC mU, |
| 2210 | KD_GTPC kD, |
| 2211 | KU_GTPC kU, |
| 2212 | L3param_GTPC l3param, |
| 2213 | Reset_LLC_GTPC reset |
| 2214 | } |
| 2215 | |
| 2216 | type record Version_GTPC |
| 2217 | { |
| 2218 | integer version_value (0..15), |
| 2219 | BIT4 spare |
| 2220 | |
| 2221 | } with { |
| 2222 | variant (version_value) "FIELDLENGTH(4)"; |
| 2223 | } |
| 2224 | |
| 2225 | type octetstring IOV_UI_GTPC length(4) |
| 2226 | |
| 2227 | |
| 2228 | type octetstring IOV_I_GTPC length(4) |
| 2229 | |
| 2230 | |
| 2231 | type record T200_GTPC |
| 2232 | { |
| 2233 | BIT4 spare, |
| 2234 | integer t200Value |
| 2235 | } with { |
| 2236 | variant (t200Value) "FIELDLENGTH(12)"; |
| 2237 | variant (t200Value) "BYTEORDER(last)"; |
| 2238 | variant "FIELDORDER(msb)"; |
| 2239 | }; |
| 2240 | |
| 2241 | |
| 2242 | type record N200_GTPC |
| 2243 | { |
| 2244 | integer retransmissions (0..15), |
| 2245 | BIT4 spare |
| 2246 | } with { |
| 2247 | variant (retransmissions) "FIELDLENGTH(4)"; |
| 2248 | } |
| 2249 | |
| 2250 | |
| 2251 | type record N201_U_GTPC |
| 2252 | { |
| 2253 | BIT5 spare, |
| 2254 | integer n201UValue |
| 2255 | } with { |
| 2256 | variant (n201UValue) "FIELDLENGTH(11)"; |
| 2257 | variant (n201UValue) "BYTEORDER(last)"; |
| 2258 | variant "FIELDORDER(msb)"; |
| 2259 | }; |
| 2260 | |
| 2261 | |
| 2262 | type record N201_I_GTPC |
| 2263 | { |
| 2264 | BIT5 spare, |
| 2265 | integer n201IValue |
| 2266 | } |
| 2267 | with { |
| 2268 | variant (n201IValue) "FIELDLENGTH(11)"; |
| 2269 | variant (n201IValue) "BYTEORDER(last)"; |
| 2270 | variant "FIELDORDER(msb)"; |
| 2271 | }; |
| 2272 | |
| 2273 | type record MD_GTPC |
| 2274 | { |
| 2275 | BIT1 spare, |
| 2276 | integer mDValue |
| 2277 | } with { |
| 2278 | variant (mDValue) "FIELDLENGTH(15)"; |
| 2279 | variant (mDValue) "BYTEORDER(last)"; |
| 2280 | variant "FIELDORDER(msb)"; |
| 2281 | }; |
| 2282 | |
| 2283 | |
| 2284 | type record MU_GTPC |
| 2285 | { |
| 2286 | BIT1 spare, |
| 2287 | integer mUValue |
| 2288 | } with { |
| 2289 | variant (mUValue) "FIELDLENGTH(15)"; |
| 2290 | variant (mUValue) "BYTEORDER(last)"; |
| 2291 | variant "FIELDORDER(msb)"; |
| 2292 | }; |
| 2293 | |
| 2294 | type integer KD_GTPC with {variant "FIELDLENGTH(8)";}; |
| 2295 | |
| 2296 | type integer KU_GTPC with {variant "FIELDLENGTH(8)";}; |
| 2297 | |
| 2298 | type octetstring L3param_GTPC; |
| 2299 | |
| 2300 | type octetstring Reset_LLC_GTPC length(0); |
| 2301 | // end of types copied from LLC_Types.ttcn |
| 2302 | |
| 2303 | |
| 2304 | // MS Info Change reporting Action 7.7.80 |
| 2305 | type record MS_InfoChangeReportingAction { |
| 2306 | OCT1 type_gtpc, |
| 2307 | LIN2_BO_LAST lengthf, |
| 2308 | OCT1 actionfield |
| 2309 | } with { variant "PRESENCE( type_gtpc = 'B5'O)"; |
| 2310 | variant (lengthf) "LENGTHTO(actionfield)"; }; |
| 2311 | |
| 2312 | // Direct Tunnel Flags - 7.7.81 |
| 2313 | type record DirectTunnelFlags { |
| 2314 | OCT1 type_gtpc, |
| 2315 | LIN2_BO_LAST lengthf, |
| 2316 | BIT1 dTI, |
| 2317 | BIT1 gCSI, |
| 2318 | BIT1 eI, |
| 2319 | BIT5 spare |
| 2320 | } with { variant "PRESENCE( type_gtpc = 'B6'O)"; |
| 2321 | variant (lengthf) "LENGTHTO(dTI,gCSI,eI,spare)";}; |
| 2322 | |
| 2323 | // Correlation ID - 7.7.82 |
| 2324 | type record CorrelationID { |
| 2325 | OCT1 type_gtpc, |
| 2326 | LIN2_BO_LAST lengthf, |
| 2327 | OCT1 correlationIDValue |
| 2328 | } with { variant "PRESENCE( type_gtpc = 'B7'O)"; |
| 2329 | variant (lengthf) "LENGTHTO(correlationIDValue)"; }; |
| 2330 | |
| 2331 | // BearerControlMode - 7.7.83 |
| 2332 | type record BearerControlMode { |
| 2333 | OCT1 type_gtpc, |
| 2334 | LIN2_BO_LAST lengthf, |
| 2335 | OCT1 bearerControlModeValue |
| 2336 | } with { variant "PRESENCE( type_gtpc = 'B8'O)"; |
| 2337 | variant (lengthf) "LENGTHTO(bearerControlModeValue)"; }; |
| 2338 | |
| 2339 | // MBMS Flow ID - 7.7.84 |
| 2340 | type record MBMS_FlowID { |
| 2341 | OCT1 type_gtpc, |
| 2342 | LIN2_BO_LAST lengthf, |
| 2343 | octetstring mBMS_FlowIDValue |
| 2344 | } with { variant "PRESENCE( type_gtpc = 'B9'O)"; |
| 2345 | variant (lengthf) "LENGTHTO(mBMS_FlowIDValue)"; }; |
| 2346 | |
| 2347 | // MBMS IP Multicast Distribution - 7.7.85 |
| 2348 | type record MBMS_IPMulticastDistribution { |
| 2349 | OCT1 type_gtpc, |
| 2350 | LIN2_BO_LAST lengthf, |
| 2351 | OCT4 commonTEID, |
| 2352 | GSNAddress iPmulticastDistributionAddress, |
| 2353 | GSNAddress iPmulticastSourceAddress, |
| 2354 | OCT1 mBMS_HCIndicator |
| 2355 | } with { variant "PRESENCE( type_gtpc = 'BA'O)"; |
| 2356 | variant (lengthf) "LENGTHTO(commonTEID,iPmulticastDistributionAddress, |
| 2357 | iPmulticastSourceAddress,mBMS_HCIndicator)"; }; |
| 2358 | |
| 2359 | // GSNAddress |
| 2360 | type record GSNAddress { |
| 2361 | INT6b lengthf, |
| 2362 | BIT2 address_type, |
| 2363 | iPv4_iPv6_Address ipv_address |
| 2364 | } with { variant (lengthf) "LENGTHTO(ipv_address)";}; |
| 2365 | |
| 2366 | // MBMS Distribution Acknowledgement - 7.7.86 |
| 2367 | type record MBMS_DistributionAcknowledgement { |
| 2368 | OCT1 type_gtpc, |
| 2369 | LIN2_BO_LAST lengthf, |
| 2370 | BIT2 distributionIndication, |
| 2371 | BIT6 spare |
| 2372 | } with { variant "PRESENCE( type_gtpc = 'BB'O)"; |
| 2373 | variant (lengthf) "LENGTHTO(distributionIndication,spare)"; }; |
| 2374 | |
| 2375 | // ReliableInterRATHandoverInfo - 7.7.87 - from 48.018 11.3.107 |
| 2376 | type record ReliableInterRATHandoverInfo |
| 2377 | { |
| 2378 | OCT1 type_gtpc, |
| 2379 | LIN2_BO_LAST lengthf, |
| 2380 | BIT1 reliableInterRATHandoverInfoIndicator, |
| 2381 | BIT7 spare |
| 2382 | } with { variant "PRESENCE( type_gtpc = 'BC'O)"; |
| 2383 | variant (lengthf) "LENGTHTO(reliableInterRATHandoverInfoIndicator,spare)"; }; |
| 2384 | |
| 2385 | //7.7.88 |
| 2386 | type record RFSP_Index |
| 2387 | { |
| 2388 | OCT1 type_gtpc, |
| 2389 | LIN2_BO_LAST lengthf, |
| 2390 | LIN2_BO_LAST rFSPIndexValue (1..256) |
| 2391 | } with { variant "PRESENCE( type_gtpc = 'BD'O)"; |
| 2392 | variant (lengthf) "LENGTHTO(rFSPIndexValue)"; }; |
| 2393 | |
| 2394 | //7.7.90 |
| 2395 | type record of FullyQualifiedDomainName FullyQualifiedDomainName_List; |
| 2396 | |
| 2397 | type record FullyQualifiedDomainName |
| 2398 | { |
| 2399 | OCT1 type_gtpc, |
| 2400 | LIN2_BO_LAST lengthf, |
| 2401 | octetstring fQDN_Value |
| 2402 | } with { variant "PRESENCE( type_gtpc = 'BE'O)"; |
| 2403 | variant (lengthf) "LENGTHTO(fQDN_Value)"; }; |
| 2404 | |
| 2405 | //7.7.91 |
| 2406 | type record EvolvedAllocationRetentionPriorityI |
| 2407 | { |
| 2408 | OCT1 type_gtpc, |
| 2409 | LIN2_BO_LAST lengthf, |
| 2410 | BIT1 pVI, |
| 2411 | BIT1 spare1, |
| 2412 | integer pL, |
| 2413 | BIT1 pCI, |
| 2414 | BIT1 spare2 |
| 2415 | } with { variant "PRESENCE( type_gtpc = 'BF'O)"; |
| 2416 | variant (lengthf) "LENGTHTO(pVI,spare1,pL,pCI,spare2)"; |
| 2417 | variant (pL) "FIELDLENGTH(4)";}; |
| 2418 | |
| 2419 | //7.7.92 |
| 2420 | type record of EvolvedAllocationRetentionPriorityII EvolvedAllocationRetentionPriorityII_List |
| 2421 | |
| 2422 | type record EvolvedAllocationRetentionPriorityII |
| 2423 | { |
| 2424 | OCT1 type_gtpc, |
| 2425 | LIN2_BO_LAST lengthf, |
| 2426 | BIT4 nsapi, |
| 2427 | BIT4 unused, |
| 2428 | BIT1 pVI, |
| 2429 | BIT1 spare1, |
| 2430 | integer pL, |
| 2431 | BIT1 pCI, |
| 2432 | BIT1 spare2 |
| 2433 | } with { variant "PRESENCE( type_gtpc = 'C0'O)"; |
| 2434 | variant (lengthf) "LENGTHTO(nsapi,unused,pVI,spare1,pL,pCI,spare2)"; |
| 2435 | variant (pL) "FIELDLENGTH(4)";}; |
| 2436 | |
| 2437 | //7.7.93 |
| 2438 | type record ExtendedCommonFlags |
| 2439 | { |
| 2440 | OCT1 type_gtpc, |
| 2441 | LIN2_BO_LAST lengthf, |
| 2442 | BIT1 unauthenticatedIMSI, |
| 2443 | BIT1 cCRSI, |
| 2444 | BIT1 cPSR, |
| 2445 | BIT1 retLoc, |
| 2446 | BIT1 vB, |
| 2447 | BIT1 pCRI, |
| 2448 | BIT1 bDWI, |
| 2449 | BIT1 uASI |
| 2450 | } with { variant "PRESENCE(type_gtpc = 'C1'O)"; |
| 2451 | variant (lengthf) "LENGTHTO(unauthenticatedIMSI,cCRSI,cPSR,retLoc,vB,pCRI,bDWI,uASI)";}; |
| 2452 | |
| 2453 | //7.7.94 |
| 2454 | type record UserCSGInformation |
| 2455 | { |
| 2456 | OCT1 type_gtpc, |
| 2457 | LIN2_BO_LAST lengthf, |
| 2458 | HEX1 mccDigit1, |
| 2459 | HEX1 mccDigit2, |
| 2460 | HEX1 mccDigit3, |
| 2461 | HEX1 mncDigit3, |
| 2462 | HEX1 mncDigit1, |
| 2463 | HEX1 mncDigit2, |
| 2464 | BIT5 spare1, |
| 2465 | bitstring cSG_ID length(27), // "The coding ... is the responsibility of the operator..." |
| 2466 | BIT1 cMI, |
| 2467 | BIT5 spare2, |
| 2468 | integer accessMode (0..3) |
| 2469 | } with { variant "PRESENCE( type_gtpc = 'C2'O)"; |
| 2470 | variant (lengthf) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3, |
| 2471 | mncDigit1,mncDigit2,spare1,cSG_ID, |
| 2472 | cMI,spare2,accessMode)"; |
| 2473 | variant (spare1,cSG_ID) "FIELDORDER(msb)"; |
| 2474 | variant (cSG_ID) "FIELDLENGTH(27)"; |
| 2475 | variant (accessMode) "FIELDLENGTH(2)"; |
| 2476 | }; |
| 2477 | |
| 2478 | //7.7.95 |
| 2479 | type record CSGInfoReportingAction |
| 2480 | { |
| 2481 | OCT1 type_gtpc, |
| 2482 | LIN2_BO_LAST lengthf, |
| 2483 | BIT1 uCCSG, |
| 2484 | BIT1 uCSHC, |
| 2485 | BIT1 uCUHC, |
| 2486 | BIT5 spare |
| 2487 | } with { variant "PRESENCE( type_gtpc = 'C3'O)"; |
| 2488 | variant (lengthf) "LENGTHTO(uCCSG,uCSHC,uCUHC,spare)"; |
| 2489 | }; |
| 2490 | |
| 2491 | //7.7.96 |
| 2492 | type record CSG_Id |
| 2493 | { |
| 2494 | OCT1 type_gtpc, |
| 2495 | LIN2_BO_LAST lengthf, |
| 2496 | BIT5 spare, |
| 2497 | bitstring cSG_ID length(27) // "The coding ... is the responsibility of the operator..." |
| 2498 | } with { variant "PRESENCE(type_gtpc = 'C4'O)"; |
| 2499 | variant (lengthf) "LENGTHTO(spare,cSG_ID)"; |
| 2500 | variant (spare,cSG_ID) "FIELDORDER(msb)"; |
| 2501 | variant (cSG_ID) "FIELDLENGTH(27)"; |
| 2502 | }; |
| 2503 | |
| 2504 | //7.7.97 |
| 2505 | type record CSG_MembershipIndication |
| 2506 | { |
| 2507 | OCT1 type_gtpc, |
| 2508 | LIN2_BO_LAST lengthf, |
| 2509 | BIT1 cMI_Value, |
| 2510 | BIT7 spare |
| 2511 | } with { variant "PRESENCE(type_gtpc = 'C5'O)"; |
| 2512 | variant (lengthf) "LENGTHTO(cMI_Value,spare)"; |
| 2513 | } |
| 2514 | |
| 2515 | //7.7.98 |
| 2516 | type record APN_AMBR |
| 2517 | { |
| 2518 | OCT1 type_gtpc, |
| 2519 | LIN2_BO_LAST lengthf, |
| 2520 | LIN4_BO_LAST aPN_AMBR_Uplink, |
| 2521 | LIN4_BO_LAST aPN_AMBR_Downlink |
| 2522 | } with { variant "PRESENCE(type_gtpc = 'C6'O)"; |
| 2523 | variant (lengthf) "LENGTHTO(aPN_AMBR_Uplink,aPN_AMBR_Downlink)"; |
| 2524 | } |
| 2525 | |
| 2526 | //7.7.99 |
| 2527 | type record UE_Network_Capability { |
| 2528 | OCT1 type_gtpc, |
| 2529 | LIN2_BO_LAST lengthf, |
| 2530 | octetstring ue_network_capability |
| 2531 | } with { |
| 2532 | variant "PRESENCE(type_gtpc = 'C7'O)"; |
| 2533 | variant (lengthf) "LENGTHTO(ue_network_capability)"; |
| 2534 | } |
| 2535 | |
| 2536 | //7.7.100 |
| 2537 | type record UE_AMBR { |
| 2538 | OCT1 type_gtpc, |
| 2539 | LIN2_BO_LAST lengthf, |
| 2540 | LIN4_BO_LAST subscribed_ue_ambr_uplink, |
| 2541 | LIN4_BO_LAST subscribed_ue_ambr_downlink, |
| 2542 | LIN4_BO_LAST authorized_ue_ambr_uplink optional, |
| 2543 | LIN4_BO_LAST authorized_ue_ambr_downlink optional |
| 2544 | } with { |
| 2545 | variant "PRESENCE(type_gtpc = 'C8'O)"; |
| 2546 | variant (lengthf) "LENGTHTO(subscribed_ue_ambr_uplink,subscribed_ue_ambr_downlink,authorized_ue_ambr_uplink,authorized_ue_ambr_downlink)"; |
| 2547 | } |
| 2548 | |
| 2549 | //7.7.101 |
| 2550 | type record APN_AMBR_NSAPI { |
| 2551 | OCT1 type_gtpc, |
| 2552 | LIN2_BO_LAST lengthf (9), |
| 2553 | HEX1 nsapi, |
| 2554 | HEX1 spare, |
| 2555 | LIN4_BO_LAST authorized_apn_ambr_uplink, |
| 2556 | LIN4_BO_LAST authorized_apn_ambr_downlink |
| 2557 | } with { |
| 2558 | variant "PRESENCE(type_gtpc = 'C9'O)"; |
| 2559 | variant (lengthf) "LENGTHTO(spare, nsapi,authorized_apn_ambr_uplink,authorized_apn_ambr_downlink)"; |
| 2560 | } |
| 2561 | |
| 2562 | //7.7.102 |
| 2563 | type record GGSN_BackOffTime { |
| 2564 | OCT1 type_gtpc, |
| 2565 | LIN2_BO_LAST lengthf, |
| 2566 | BIT5 timerValue, |
| 2567 | BIT3 timerUnit, |
| 2568 | octetstring explicitly_specified optional |
| 2569 | } with { |
| 2570 | variant "PRESENCE(type_gtpc = 'CA'O)"; |
| 2571 | variant (lengthf) "LENGTHTO(timerValue, timerUnit, explicitly_specified)"; |
| 2572 | } |
| 2573 | |
| 2574 | //7.7.103 |
| 2575 | type record SignallingPriorityIndication { |
| 2576 | OCT1 type_gtpc, |
| 2577 | LIN2_BO_LAST lengthf, |
| 2578 | BIT1 lapi, |
| 2579 | BIT7 spare, |
| 2580 | octetstring explicitly_specified optional |
| 2581 | } with { |
| 2582 | variant "PRESENCE(type_gtpc = 'CB'O)"; |
| 2583 | variant (lengthf) "LENGTHTO(lapi, spare, explicitly_specified)"; |
| 2584 | } |
| 2585 | |
| 2586 | //7.7.104 |
| 2587 | type record SignallingPriorityIndication_NSAPI { |
| 2588 | OCT1 type_gtpc, |
| 2589 | LIN2_BO_LAST lengthf, |
| 2590 | BIT1 nsapi, |
| 2591 | BIT7 spare1, |
| 2592 | BIT1 lapi, |
| 2593 | BIT7 spare2, |
| 2594 | octetstring explicitly_specified optional |
| 2595 | } with { |
| 2596 | variant "PRESENCE(type_gtpc = 'CC'O)"; |
| 2597 | variant (lengthf) "LENGTHTO(nsapi, spare1, lapi, spare2, explicitly_specified)"; |
| 2598 | } |
| 2599 | |
| 2600 | //7.7.105 |
| 2601 | type record Higher_Bitrates_Than_16Mbps_Flag { |
| 2602 | OCT1 type_gtpc, |
| 2603 | LIN2_BO_LAST lengthf (1), |
| 2604 | LIN1 flag |
| 2605 | } with { |
| 2606 | variant "PRESENCE(type_gtpc = 'CD'O)"; |
| 2607 | variant (lengthf) "LENGTHTO(flag)"; |
| 2608 | } |
| 2609 | |
| 2610 | //7.7.106 |
| 2611 | // (void) |
| 2612 | |
| 2613 | //7.7.107 |
| 2614 | type record SRVCC_MM_Context { |
| 2615 | OCT1 type_gtpc, |
| 2616 | LIN2_BO_LAST lengthf, |
| 2617 | LIN1 mobile_station_classmark2_len, |
| 2618 | octetstring mobile_station_classmark2, |
| 2619 | LIN1 mobile_station_classmark3_len, |
| 2620 | octetstring mobile_station_classmark3, |
| 2621 | LIN1 supported_codec_list_len, |
| 2622 | octetstring supported_codec_list, |
| 2623 | octetstring explicitly_specified optional |
| 2624 | } with { |
| 2625 | variant "PRESENCE(type_gtpc = 'CF'O)"; |
| 2626 | variant (lengthf) "LENGTHTO(mobile_station_classmark2_len, mobile_station_classmark2, |
| 2627 | mobile_station_classmark3_len, mobile_station_classmark3, |
| 2628 | supported_codec_list_len, supported_codec_list, |
| 2629 | explicitly_specified)"; |
| 2630 | variant (mobile_station_classmark2_len) "LENGTHTO(mobile_station_classmark2)"; |
| 2631 | variant (mobile_station_classmark3_len) "LENGTHTO(mobile_station_classmark3)"; |
| 2632 | variant (supported_codec_list_len) "LENGTHTO(supported_codec_list)"; |
| 2633 | } |
| 2634 | |
| 2635 | |
| 2636 | //7.7.108 |
| 2637 | type record SRVCC_Flags { |
| 2638 | OCT1 type_gtpc, |
| 2639 | LIN2_BO_LAST lengthf, |
| 2640 | BIT1 ics, |
| 2641 | BIT7 spare, |
| 2642 | octetstring explicitly_specified optional |
| 2643 | } with { |
| 2644 | variant "PRESENCE(type_gtpc = 'D0'O)"; |
| 2645 | variant (lengthf) "LENGTHTO(ics, spare, explicitly_specified)"; |
| 2646 | } |
| 2647 | |
| 2648 | //7.7.109 |
| 2649 | type record STN_SR { |
| 2650 | OCT1 type_gtpc, |
| 2651 | LIN2_BO_LAST lengthf, |
| 2652 | OCT1 nanpi, |
| 2653 | Digits digits |
| 2654 | } with { |
| 2655 | variant "PRESENCE(type_gtpc = 'D1'O)"; |
| 2656 | variant (lengthf) "LENGTHTO(nanpi, digits)"; |
| 2657 | } |
| 2658 | |
| 2659 | type record of HEX1 Digits; |
| 2660 | |
| 2661 | //7.7.110 |
| 2662 | type record C_MSISDN { |
| 2663 | OCT1 type_gtpc, |
| 2664 | LIN2_BO_LAST lengthf, |
| 2665 | octetstring msisdn |
| 2666 | } with { |
| 2667 | variant "PRESENCE(type_gtpc = 'D2'O)"; |
| 2668 | variant (lengthf) "LENGTHTO(msisdn)"; |
| 2669 | } |
| 2670 | |
| 2671 | //7.7.111 |
| 2672 | type record Extended_RANAP_Cause { |
| 2673 | OCT1 type_gtpc, |
| 2674 | LIN2_BO_LAST lengthf, |
| 2675 | integer extended_ranap_cause (1..512), |
| 2676 | octetstring explicitly_specified optional |
| 2677 | } with { |
| 2678 | variant "PRESENCE(type_gtpc = 'D3'O)"; |
| 2679 | variant (lengthf) "LENGTHTO(extended_ranap_cause, explicitly_specified)"; |
| 2680 | variant (extended_ranap_cause) "FIELDLENGTH(16), COMP(nosign), BYTEORDER(last)" |
| 2681 | } |
| 2682 | |
| 2683 | //7.7.112 |
| 2684 | type record ENodeB_ID { |
| 2685 | OCT1 type_gtpc, |
| 2686 | LIN2_BO_LAST lengthf, |
| 2687 | OCT1 eNodeB_type, |
| 2688 | ENodeB_IDs eNodeB_ID |
| 2689 | } with { |
| 2690 | variant "PRESENCE(type_gtpc = 'D4'O)"; |
| 2691 | variant (lengthf) "LENGTHTO(eNodeB_type, eNodeB_ID)"; |
| 2692 | variant "CROSSTAG(macroENodeB_ID, eNodeB_type = '00'O; |
| 2693 | homeENodeB_ID, eNodeB_type = '01'O;)" |
| 2694 | } |
| 2695 | |
| 2696 | type union ENodeB_IDs |
| 2697 | { |
| 2698 | HomeENodeB_ID homeENodeB_ID, |
| 2699 | MacroENodeB_ID macroENodeB_ID |
| 2700 | } |
| 2701 | |
| 2702 | type record MacroENodeB_ID |
| 2703 | { |
| 2704 | HEX1 mcc1, |
| 2705 | HEX1 mcc2, |
| 2706 | HEX1 mcc3, |
| 2707 | HEX1 mnc3, |
| 2708 | HEX1 mnc1, |
| 2709 | HEX1 mnc2, |
| 2710 | BIT4 spare, |
| 2711 | bitstring macroENodeB_ID length(20), |
| 2712 | OCT2 tac |
| 2713 | } with { |
| 2714 | variant (spare,macroENodeB_ID) "FIELDORDER(msb)"; |
| 2715 | variant (macroENodeB_ID) "FIELDLENGTH(20)"; |
| 2716 | } |
| 2717 | |
| 2718 | type record HomeENodeB_ID |
| 2719 | { |
| 2720 | HEX1 mcc1, |
| 2721 | HEX1 mcc2, |
| 2722 | HEX1 mcc3, |
| 2723 | HEX1 mnc3, |
| 2724 | HEX1 mnc1, |
| 2725 | HEX1 mnc2, |
| 2726 | BIT4 spare, |
| 2727 | bitstring homeENodeB_ID length(28), |
| 2728 | OCT2 tac |
| 2729 | } with { |
| 2730 | variant (spare,homeENodeB_ID) "FIELDORDER(msb)"; |
| 2731 | variant (homeENodeB_ID) "FIELDLENGTH(28)"; |
| 2732 | } |
| 2733 | |
| 2734 | //7.7.113 |
| 2735 | type record SelectionMode_NSAPI { |
| 2736 | OCT1 type_gtpc, |
| 2737 | LIN2_BO_LAST lengthf, |
| 2738 | BIT4 nsapi, |
| 2739 | BIT4 spare1, |
| 2740 | BIT2 selectionMode, |
| 2741 | BIT6 spare2 |
| 2742 | } with { |
| 2743 | variant "PRESENCE(type_gtpc = 'D5'O)"; |
| 2744 | variant (lengthf) "LENGTHTO(nsapi, spare1, selectionMode, spare2)"; |
| 2745 | } |
| 2746 | |
| 2747 | //7.7.114 |
| 2748 | type record ULI_Timestamp { |
| 2749 | OCT1 type_gtpc, |
| 2750 | LIN2_BO_LAST lengthf, |
| 2751 | OCT4 uliTimestampValue, |
| 2752 | octetstring explicitly_specified optional |
| 2753 | } with { |
| 2754 | variant "PRESENCE(type_gtpc = 'D6'O)"; |
| 2755 | variant (lengthf) "LENGTHTO(uliTimestampValue, explicitly_specified)"; |
| 2756 | } |
| 2757 | |
| 2758 | //7.7.115 |
| 2759 | type record LHN_ID_NSAPI { |
| 2760 | OCT1 type_gtpc, |
| 2761 | LIN2_BO_LAST lengthf, |
| 2762 | BIT4 nsapi, |
| 2763 | BIT4 spare, |
| 2764 | octetstring lHN_ID optional |
| 2765 | } with { |
| 2766 | variant "PRESENCE(type_gtpc = 'D7'O)"; |
| 2767 | variant (lengthf) "LENGTHTO(nsapi, spare, lHN_ID)"; |
| 2768 | } |
| 2769 | |
| 2770 | //7.7.116 |
| 2771 | type record CN_OperatorSelectionEntity { |
| 2772 | OCT1 type_gtpc, |
| 2773 | LIN2_BO_LAST lengthf, |
| 2774 | BIT2 selectionEntity, |
| 2775 | BIT6 spare, |
| 2776 | octetstring explicitly_specified optional |
| 2777 | } with { |
| 2778 | variant "PRESENCE(type_gtpc = 'D8'O)"; |
| 2779 | variant (lengthf) "LENGTHTO(selectionEntity, spare, explicitly_specified)"; |
| 2780 | } |
| 2781 | |
| 2782 | //7.7.117 |
| 2783 | type record UE_UsageType { |
| 2784 | OCT1 type_gtpc, |
| 2785 | LIN2_BO_LAST lengthf, |
| 2786 | LIN4_BO_LAST uE_UsageTypeValue |
| 2787 | } with { |
| 2788 | variant "PRESENCE(type_gtpc = 'D9'O)"; |
| 2789 | variant (lengthf) "LENGTHTO(uE_UsageTypeValue)"; |
| 2790 | } |
| 2791 | |
| 2792 | //7.7.118 |
| 2793 | type record ExtendedCommonFlagsII { |
| 2794 | OCT1 type_gtpc, |
| 2795 | LIN2_BO_LAST lengthf, |
| 2796 | BIT1 pnsi, |
| 2797 | BIT1 dtci, |
| 2798 | BIT6 spare, |
| 2799 | octetstring explicitly_specified optional |
| 2800 | } with { |
| 2801 | variant "PRESENCE(type_gtpc = 'DA'O)"; |
| 2802 | variant (lengthf) "LENGTHTO(pnsi, dtci, spare, explicitly_specified)"; |
| 2803 | } |
| 2804 | |
| 2805 | //7.7.119 |
| 2806 | type record NodeIdentifier { |
| 2807 | OCT1 type_gtpc, |
| 2808 | LIN2_BO_LAST lengthf, |
| 2809 | octetstring nodeIdentifier |
| 2810 | } with { |
| 2811 | variant "PRESENCE(type_gtpc = 'DB'O)"; |
| 2812 | variant (lengthf) "LENGTHTO( nodeIdentifier)"; |
| 2813 | } |
| 2814 | |
| 2815 | ///////////////////////////// |
| 2816 | // Message Type Values |
| 2817 | // 7.1 Table 1 |
| 2818 | ///////////////////////////// |
| 2819 | type OCT1 MessageType_gtpc; |
| 2820 | |
| 2821 | // 0 For future use. Shall not be sent. If received, shall be treated as an |
| 2822 | // Unknown message |
| 2823 | |
| 2824 | const MessageType_gtpc echoRequest := '01'O; |
| 2825 | const MessageType_gtpc echoResponse := '02'O; |
| 2826 | const MessageType_gtpc versionNotSupported := '03'O; |
| 2827 | |
| 2828 | // 4 - 7: For GTP' |
| 2829 | |
| 2830 | // 8 - 15 for future use. Shall not be sent. |
| 2831 | // If received, shall be treated as an Unknown message |
| 2832 | |
| 2833 | const MessageType_gtpc createPDPContextRequest := '10'O; |
| 2834 | const MessageType_gtpc createPDPContextResponse := '11'O; |
| 2835 | const MessageType_gtpc updatePDPContextRequest := '12'O; |
| 2836 | const MessageType_gtpc updatePDPContextResponse := '13'O; |
| 2837 | const MessageType_gtpc deletePDPContextRequest := '14'O; |
| 2838 | const MessageType_gtpc deletePDPContextResponse := '15'O; |
| 2839 | const MessageType_gtpc initiatePDPContextActivationRequest := '16'O; |
| 2840 | const MessageType_gtpc initiatePDPContextActivationResponse := '17'O; |
| 2841 | |
| 2842 | // 24 - 25 for future use. |
| 2843 | // Shall not be sent. If received, shall be treated as an Unknown message |
| 2844 | |
| 2845 | // 26 for GTP-U only |
| 2846 | |
| 2847 | const MessageType_gtpc pduNotificationRequest := '1B'O; |
| 2848 | const MessageType_gtpc pduNotificationResponse := '1C'O; |
| 2849 | const MessageType_gtpc pduNotificationRejectRequest := '1D'O; |
| 2850 | const MessageType_gtpc pduNotificationRejectResponse := '1E'O; |
| 2851 | |
| 2852 | const MessageType_gtpc supportedExtHeadersNotification := '1F'O; |
| 2853 | const MessageType_gtpc sendRoutingInfoForGPRSRequest := '20'O; |
| 2854 | const MessageType_gtpc sendRoutingInfoForGPRSResponse := '21'O; |
| 2855 | const MessageType_gtpc failureReportRequest := '22'O; |
| 2856 | const MessageType_gtpc failureReportResponse := '23'O; |
| 2857 | const MessageType_gtpc noteMS_GPRSPresentRequest := '24'O; |
| 2858 | const MessageType_gtpc noteMS_GPRSPresentResponse := '25'O; |
| 2859 | |
| 2860 | // 38 - 47 for future use. Shall not be sent. |
| 2861 | // If received, shall be treated as an Unknown message |
| 2862 | |
| 2863 | const MessageType_gtpc identificationRequest := '30'O; |
| 2864 | const MessageType_gtpc identificationResponse := '31'O; |
| 2865 | const MessageType_gtpc sgsnContextRequest := '32'O; |
| 2866 | const MessageType_gtpc sgsnContextResponse := '33'O; |
| 2867 | const MessageType_gtpc sgsnContextAcknowledge := '34'O; |
| 2868 | const MessageType_gtpc forwardRelocationRequest := '35'O; |
| 2869 | const MessageType_gtpc forwardRelocationResponse := '36'O; |
| 2870 | const MessageType_gtpc forwardRelocationComplete := '37'O; |
| 2871 | const MessageType_gtpc relocationCancelRequest := '38'O; |
| 2872 | const MessageType_gtpc relocationCancelResponse := '39'O; |
| 2873 | const MessageType_gtpc forwardSRNSContext := '3A'O; |
| 2874 | const MessageType_gtpc forwardRelocationCompleteAcknowledge := '3B'O; |
| 2875 | const MessageType_gtpc forwardSRNSContextAcknowledge := '3C'O; |
| 2876 | const MessageType_gtpc ueRegistrationQueryRequest := '3D'O; |
| 2877 | const MessageType_gtpc ueRegistrationQueryResponse := '3E'O; |
| 2878 | |
| 2879 | // 63 - 69 for future use. Shall not be sent. If received, shall be treated as |
| 2880 | // an Unknown message |
| 2881 | |
| 2882 | const MessageType_gtpc rANInformationRelay := '46'O; |
| 2883 | |
| 2884 | // 71 -95 for future use. Shall not be sent. If received, shall be treated as |
| 2885 | // an Unknown message |
| 2886 | |
| 2887 | const MessageType_gtpc mBMSNotificationRequest := '60'O; |
| 2888 | const MessageType_gtpc mBMSNotificationResponse := '61'O; |
| 2889 | const MessageType_gtpc mBMSNotificationRejectRequest := '62'O; |
| 2890 | const MessageType_gtpc mBMSNotificationRejectResponse := '63'O; |
| 2891 | const MessageType_gtpc createMBMSContextRequest := '64'O; |
| 2892 | const MessageType_gtpc createMBMSContextResponse := '65'O; |
| 2893 | const MessageType_gtpc updateMBMSContextRequest := '66'O; |
| 2894 | const MessageType_gtpc updateMBMSContextResponse := '67'O; |
| 2895 | const MessageType_gtpc deleteMBMSContextRequest := '68'O; |
| 2896 | const MessageType_gtpc deleteMBMSContextResponse := '69'O; |
| 2897 | |
| 2898 | // 106-111 for future use. Shall not be sent. If received, shall be treated as |
| 2899 | // an Unknown message |
| 2900 | |
| 2901 | const MessageType_gtpc mBMSRegistrationRequest := '70'O; |
| 2902 | const MessageType_gtpc mBMSRegistrationResponse := '71'O; |
| 2903 | const MessageType_gtpc mBMSDeRegistrationRequest := '72'O; |
| 2904 | const MessageType_gtpc mBMSDeRegistrationResponse := '73'O; |
| 2905 | |
| 2906 | const MessageType_gtpc mBMSSessionStartRequest := '74'O; |
| 2907 | const MessageType_gtpc mBMSSessionStartResponse := '75'O; |
| 2908 | const MessageType_gtpc mBMSSessionStopRequest := '76'O; |
| 2909 | const MessageType_gtpc mBMSSessionStopResponse := '77'O; |
| 2910 | |
| 2911 | const MessageType_gtpc mBMSSessionUpdateRequest := '78'O; |
| 2912 | const MessageType_gtpc mBMSSessionUpdateResponse := '79'O; |
| 2913 | |
| 2914 | // 122 - 127 for future use. Shall not be sent. |
| 2915 | // If received, shall be treated as an Unknown message |
| 2916 | |
| 2917 | const MessageType_gtpc mS_InfoChangeNotificationRequest := '80'O; |
| 2918 | const MessageType_gtpc mS_InfoChangeNotificationResponse := '81'O |
| 2919 | |
| 2920 | // 130 - 239 for future use. Shall not be sent. |
| 2921 | // If received, shall be treated as an Unknown message |
| 2922 | |
| 2923 | // 240 - 241 not used in GTP-C |
| 2924 | |
| 2925 | // 242 - 254 for future use. Shall not be sent. |
| 2926 | // If received, shall be treated as an Unknown message |
| 2927 | |
| 2928 | // 255 not used in GTP-C |
| 2929 | |
| 2930 | const MessageType_gtpc g_PDU := 'FF'O; |
| 2931 | |
| 2932 | |
| 2933 | ///////////////////////////// |
| 2934 | // GTP-C messages |
| 2935 | ///////////////////////////// |
| 2936 | // Echo Request - 7.2.1 |
| 2937 | type record EchoRequest { |
| 2938 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 2939 | } |
| 2940 | |
| 2941 | // Echo Response - 7.2.2 |
| 2942 | type record EchoResponse { |
| 2943 | Recovery_gtpc recovery, |
| 2944 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 2945 | } |
| 2946 | |
| 2947 | // Version Not Supported - 7.2.3 |
| 2948 | type record VersionNotSupported { |
| 2949 | }; |
| 2950 | |
| 2951 | // Supported Extension Headers Notification - 7.2.4 |
| 2952 | type record SupportedExtensionHeadersNotification { |
| 2953 | ExtensionHeaderTypeList_gtpc extensionHeaderTypeList |
| 2954 | } with {variant ""}; |
| 2955 | |
| 2956 | // Create PDP Context Request - 7.3.1 |
| 2957 | type record CreatePDPContextRequest { |
| 2958 | IMSI_gtpc imsi optional, |
| 2959 | RoutingAreaIdentity rai optional, |
| 2960 | Recovery_gtpc recovery optional, |
| 2961 | SelectionMode selectionMode optional, |
| 2962 | TeidDataI teidDataI, |
| 2963 | TeidControlPlane teidControlPlane optional, |
| 2964 | NSAPI_GTPC nsapi, |
| 2965 | NSAPI_GTPC linked_nsapi optional, |
| 2966 | ChargingCharacteristics_GTPC charging_char optional, |
| 2967 | TraceRef trace_ref optional, |
| 2968 | GTP_TraceType trace_type optional, |
| 2969 | EndUserAddress endUserAddress optional, |
| 2970 | AccessPointName accessPointName optional, |
| 2971 | ProtConfigOptions protConfigOptions optional, |
| 2972 | GSN_Address_GTPC sgsn_addr_signalling, |
| 2973 | GSN_Address_GTPC sgsn_addr_traffic, |
| 2974 | MSISDN msisdn optional, |
| 2975 | QualityOfServiceProfile qualityOfServiceProfile, |
| 2976 | TrafficFlowTemplate tft optional, |
| 2977 | GTP_TriggerID triggerId optional, |
| 2978 | OMCIdentity omcId optional, |
| 2979 | CommonFlags commonFlags optional, |
| 2980 | APN_Restriction aPN_Restriction optional, |
| 2981 | RATType ratType optional, |
| 2982 | UserLocationInformation userLocationInformation optional, |
| 2983 | MS_TimeZone mS_TimeZone optional, |
| 2984 | IMEISV_gtpc imeisv optional, |
| 2985 | CamelChargingInformationContainer camelChargingInformationContainer optional, |
| 2986 | AdditionalTraceInfo additionalTraceInfo optional, |
| 2987 | CorrelationID correlationID optional, |
| 2988 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 2989 | ExtendedCommonFlags extendedCommonFlags optional, |
| 2990 | UserCSGInformation userCSGInformation optional, |
| 2991 | APN_AMBR aPN_AMBR optional, |
| 2992 | SignallingPriorityIndication signallingPriorityIndication optional, |
| 2993 | CN_OperatorSelectionEntity cN_OperatorSelectionEntity optional, |
| 2994 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 2995 | }; |
| 2996 | |
| 2997 | // Create PDP Context Response - 7.3.2 |
| 2998 | type record CreatePDPContextResponse { |
| 2999 | Cause_gtpc cause, |
| 3000 | ReorderingRequired reorderingRequired optional, |
| 3001 | Recovery_gtpc recovery optional, |
| 3002 | TeidDataI teidDataI optional, |
| 3003 | TeidControlPlane teidControlPlane optional, |
| 3004 | NSAPI_GTPC nsapi optional, |
| 3005 | ChargingID chargingID optional, |
| 3006 | EndUserAddress endUserAddress optional, |
| 3007 | ProtConfigOptions protConfigOptions optional, |
| 3008 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3009 | GSN_Address_GTPC ggsn_addr_traffic optional, |
| 3010 | GSN_Address_GTPC alt_ggsn_addr_controlPane optional, |
| 3011 | GSN_Address_GTPC alt_ggsn_addr_traffic optional, |
| 3012 | QualityOfServiceProfile qualityOfServiceProfile optional, |
| 3013 | CommonFlags commonFlags optional, |
| 3014 | APN_Restriction aPN_Restriction optional, |
| 3015 | MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional, |
| 3016 | BearerControlMode bearerControlMode optional, |
| 3017 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3018 | ExtendedCommonFlags extendedCommonFlag optional, |
| 3019 | CSGInfoReportingAction csg_information_reporting_action optional, |
| 3020 | APN_AMBR aPN_AMBR optional, |
| 3021 | GGSN_BackOffTime gGSN_BackOffTime optional, |
| 3022 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3023 | }; |
| 3024 | |
| 3025 | |
| 3026 | // Update PDP Context Request - 7.3.3 |
| 3027 | type union UpdatePDPContextRequest { |
| 3028 | UpdatePDPContextRequestSGSN updatePDPContextRequestSGSN, |
| 3029 | UpdatePDPContextRequestGGSN updatePDPContextRequestGGSN, |
| 3030 | UpdatePDPContextRequestCGW updatePDPContextRequestCGW |
| 3031 | }; |
| 3032 | |
| 3033 | //from SGSN |
| 3034 | type record UpdatePDPContextRequestSGSN { |
| 3035 | IMSI_gtpc imsi optional, |
| 3036 | RoutingAreaIdentity rai optional, |
| 3037 | Recovery_gtpc recovery optional, |
| 3038 | TeidDataI teidDataI, |
| 3039 | TeidControlPlane teidControlPlane optional, |
| 3040 | NSAPI_GTPC nsapi, |
| 3041 | TraceRef trace_ref optional, |
| 3042 | GTP_TraceType trace_type optional, |
| 3043 | ProtConfigOptions protConfigOptions optional, |
| 3044 | GSN_Address_GTPC sgsn_addr_controlPlane, |
| 3045 | GSN_Address_GTPC sgsn_addr_traffic, |
| 3046 | GSN_Address_GTPC alt_ggsn_addr_controlPane optional, |
| 3047 | GSN_Address_GTPC alt_ggsn_addr_traffic optional, |
| 3048 | QualityOfServiceProfile qualityOfServiceProfile, |
| 3049 | TrafficFlowTemplate tft optional, |
| 3050 | GTP_TriggerID triggerId optional, |
| 3051 | OMCIdentity omcId optional, |
| 3052 | CommonFlags commonFlags optional, |
| 3053 | RATType ratType optional, |
| 3054 | UserLocationInformation userLocationInformation optional, |
| 3055 | MS_TimeZone mS_TimeZone optional, |
| 3056 | AdditionalTraceInfo additionalTraceInfo optional, |
| 3057 | DirectTunnelFlags directTunnelFlags optional, |
| 3058 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3059 | ExtendedCommonFlags extendedCommonFlags optional, |
| 3060 | UserCSGInformation userCSGInformation optional, |
| 3061 | APN_AMBR aPN_AMBR optional, |
| 3062 | SignallingPriorityIndication signallingPriorityIndication optional, |
| 3063 | CN_OperatorSelectionEntity cN_OperatorSelectionEntity optional, |
| 3064 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3065 | }; |
| 3066 | |
| 3067 | //from GGSN |
| 3068 | type record UpdatePDPContextRequestGGSN { |
| 3069 | IMSI_gtpc imsi optional, |
| 3070 | Recovery_gtpc recovery optional, |
| 3071 | NSAPI_GTPC nsapi, |
| 3072 | EndUserAddress endUserAddress optional, |
| 3073 | ProtConfigOptions protConfigOptions optional, |
| 3074 | QualityOfServiceProfile qualityOfServiceProfile optional, |
| 3075 | TrafficFlowTemplate tft optional, |
| 3076 | CommonFlags commonFlags optional, |
| 3077 | APN_Restriction aPN_Restriction optional, |
| 3078 | MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional, |
| 3079 | DirectTunnelFlags directTunnelFlags optional, |
| 3080 | BearerControlMode bearerControlMode optional, |
| 3081 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3082 | ExtendedCommonFlags extendedCommonFlags optional, |
| 3083 | CSGInfoReportingAction cSGInfoReportingAction optional, |
| 3084 | APN_AMBR aPN_AMBR optional, |
| 3085 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3086 | }; |
| 3087 | |
| 3088 | //from CGW |
| 3089 | type record UpdatePDPContextRequestCGW { |
| 3090 | IMSI_gtpc imsi optional, |
| 3091 | Recovery_gtpc recovery optional, |
| 3092 | NSAPI_GTPC nsapi, |
| 3093 | EndUserAddress endUserAddress optional, |
| 3094 | ProtConfigOptions protConfigOptions optional, |
| 3095 | QualityOfServiceProfile qualityOfServiceProfile optional, |
| 3096 | TrafficFlowTemplate tft optional, |
| 3097 | CommonFlags commonFlags optional, |
| 3098 | APN_Restriction aPN_Restriction optional, |
| 3099 | MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional, |
| 3100 | DirectTunnelFlags directTunnelFlags optional, |
| 3101 | BearerControlMode bearerControlMode optional, |
| 3102 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3103 | CSGInfoReportingAction cSGInfoReportingAction optional, |
| 3104 | APN_AMBR aPN_AMBR optional, |
| 3105 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3106 | }; |
| 3107 | |
| 3108 | // Update PDP Context Response - 7.3.4 |
| 3109 | type union UpdatePDPContextResponse { |
| 3110 | UpdatePDPContextResponseSGSN updatePDPContextResponseSGSN, |
| 3111 | UpdatePDPContextResponseGGSN updatePDPContextResponseGGSN, |
| 3112 | UpdatePDPContextResponseCGW updatePDPContextResponseCGW |
| 3113 | }; |
| 3114 | |
| 3115 | //from GGSN |
| 3116 | type record UpdatePDPContextResponseGGSN { |
| 3117 | Cause_gtpc cause, |
| 3118 | Recovery_gtpc recovery optional, |
| 3119 | TeidDataI teidDataI optional, |
| 3120 | TeidControlPlane teidControlPlane optional, |
| 3121 | ChargingID chargingID optional, |
| 3122 | ProtConfigOptions protConfigOptions optional, |
| 3123 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3124 | GSN_Address_GTPC ggsn_addr_traffic optional, |
| 3125 | GSN_Address_GTPC alt_ggsn_addr_controlPane optional, |
| 3126 | GSN_Address_GTPC alt_ggsn_addr_traffic optional, |
| 3127 | QualityOfServiceProfile qualityOfServiceProfile optional, |
| 3128 | CommonFlags commonFlags optional, |
| 3129 | APN_Restriction aPN_Restriction optional, |
| 3130 | MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional, |
| 3131 | BearerControlMode bearerControlMode optional, |
| 3132 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3133 | CSGInfoReportingAction csg_information_reporting_action optional, |
| 3134 | APN_AMBR aPN_AMBR optional, |
| 3135 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3136 | }; |
| 3137 | |
| 3138 | //from CGW |
| 3139 | type record UpdatePDPContextResponseCGW { |
| 3140 | Cause_gtpc cause, |
| 3141 | Recovery_gtpc recovery optional, |
| 3142 | TeidDataI teidDataI optional, |
| 3143 | TeidControlPlane teidControlPlane optional, |
| 3144 | ChargingID chargingID optional, |
| 3145 | ProtConfigOptions protConfigOptions optional, |
| 3146 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3147 | GSN_Address_GTPC ggsn_addr_traffic optional, |
| 3148 | GSN_Address_GTPC alt_ggsn_addr_controlPane optional, |
| 3149 | GSN_Address_GTPC alt_ggsn_addr_traffic optional, |
| 3150 | QualityOfServiceProfile qualityOfServiceProfile optional, |
| 3151 | CommonFlags commonFlags optional, |
| 3152 | APN_Restriction aPN_Restriction optional, |
| 3153 | MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional, |
| 3154 | BearerControlMode bearerControlMode optional, |
| 3155 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3156 | APN_AMBR aPN_AMBR optional, |
| 3157 | ChargingGatewayAddress chargingGatewayAddress optional, |
| 3158 | ChargingGatewayAddress alt_chargingGatewayAddress optional, |
| 3159 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3160 | }; |
| 3161 | |
| 3162 | //from SGSN |
| 3163 | type record UpdatePDPContextResponseSGSN { |
| 3164 | Cause_gtpc cause, |
| 3165 | Recovery_gtpc recovery optional, |
| 3166 | TeidDataI teidDataI optional, |
| 3167 | ProtConfigOptions protConfigOptions optional, |
| 3168 | GSN_Address_GTPC sgsn_addr_traffic optional, |
| 3169 | QualityOfServiceProfile qualityOfServiceProfile optional, |
| 3170 | UserLocationInformation userLocationInformation optional, |
| 3171 | MS_TimeZone mS_TimeZone optional, |
| 3172 | DirectTunnelFlags directTunnelFlags optional, |
| 3173 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3174 | APN_AMBR aPN_AMBR optional, |
| 3175 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3176 | }; |
| 3177 | |
| 3178 | |
| 3179 | // Delete PDP Context Request - 7.3.5 |
| 3180 | type record DeletePDPContextRequest { |
| 3181 | Cause_gtpc cause optional, |
| 3182 | TearDownInd tearDownIndicator optional, |
| 3183 | NSAPI_GTPC nsapi, |
| 3184 | ProtConfigOptions protConfigOptions optional, |
| 3185 | UserLocationInformation userLocationInformation optional, |
| 3186 | MS_TimeZone mS_TimeZone optional, |
| 3187 | ExtendedCommonFlags extendedCommonFlags optional, |
| 3188 | ULI_Timestamp uLI_Timestamp optional, |
| 3189 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3190 | }; |
| 3191 | |
| 3192 | // Delete PDP Context Response - 7.3.6 |
| 3193 | type record DeletePDPContextResponse { |
| 3194 | Cause_gtpc cause, |
| 3195 | ProtConfigOptions protConfigOptions optional, |
| 3196 | UserLocationInformation userLocationInformation optional, |
| 3197 | MS_TimeZone mS_TimeZone optional, |
| 3198 | ULI_Timestamp uLI_Timestamp optional, |
| 3199 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3200 | }; |
| 3201 | |
| 3202 | // PDU Notification Request - 7.3.8 |
| 3203 | type record PDU_NotificationRequest { |
| 3204 | IMSI_gtpc imsi, |
| 3205 | TeidControlPlane teidControlPlane, |
| 3206 | EndUserAddress endUserAddress, |
| 3207 | AccessPointName accessPointName, |
| 3208 | ProtConfigOptions protConfigOptions optional, |
| 3209 | GSN_Address_GTPC ggsn_addr_controlPlane, |
| 3210 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3211 | }; |
| 3212 | |
| 3213 | // PDU Notification Response - 7.3.9 |
| 3214 | type record PDU_NotificationResponse { |
| 3215 | Cause_gtpc cause, |
| 3216 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3217 | } |
| 3218 | |
| 3219 | // PDU Notification Reject Request - 7.3.10 |
| 3220 | type record PDU_NotificationRejectRequest { |
| 3221 | Cause_gtpc cause, |
| 3222 | TeidControlPlane teidControlPlane, |
| 3223 | EndUserAddress endUserAddress, |
| 3224 | AccessPointName accessPointName, |
| 3225 | ProtConfigOptions protConfigOptions optional, |
| 3226 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3227 | }; |
| 3228 | |
| 3229 | // PDU Notification Reject Response - 7.3.11 |
| 3230 | type record PDU_NotificationRejectResponse { |
| 3231 | Cause_gtpc cause, |
| 3232 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3233 | } |
| 3234 | |
| 3235 | // Initiate PDP Context Activation Request 7.3.12 |
| 3236 | type record InitiatePDPContextActivationRequest |
| 3237 | { |
| 3238 | NSAPI_GTPC linkedNSAPI, |
| 3239 | ProtConfigOptions protConfigOptions optional, |
| 3240 | QualityOfServiceProfile qualityOfServiceProfile, |
| 3241 | TrafficFlowTemplate tft optional, |
| 3242 | CorrelationID correlationID, |
| 3243 | EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional, |
| 3244 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3245 | }; |
| 3246 | |
| 3247 | // Initiate PDP Context Activation Response 7.3.13 |
| 3248 | type record InitiatePDPContextActivationResponse |
| 3249 | { |
| 3250 | Cause_gtpc cause, |
| 3251 | ProtConfigOptions protConfigOptions optional, |
| 3252 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3253 | }; |
| 3254 | |
| 3255 | // Send Routeing Information for GPRS Request - 7.4.1 |
| 3256 | type record SendRouteingInformationForGPRSRequest { |
| 3257 | IMSI_gtpc imsi, |
| 3258 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3259 | } |
| 3260 | |
| 3261 | // Send Routeing Information for GPRS Response - 7.4.2 |
| 3262 | type record SendRouteingInformationForGPRSResponse { |
| 3263 | Cause_gtpc cause, |
| 3264 | IMSI_gtpc imsi, |
| 3265 | MAP_Cause map_Cause optional, |
| 3266 | MSNotReachableReason mS_not_ReachableReason optional, |
| 3267 | GSN_Address_GTPC gsn_Address optional, |
| 3268 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3269 | }; |
| 3270 | |
| 3271 | // Failure Report Request - 7.4.3 |
| 3272 | type record FailureReportRequest { |
| 3273 | IMSI_gtpc imsi, |
| 3274 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3275 | } |
| 3276 | |
| 3277 | // Failure Report Response - 7.4.4 |
| 3278 | type record FailureReportResponse { |
| 3279 | Cause_gtpc cause, |
| 3280 | MAP_Cause map_Cause optional, |
| 3281 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3282 | }; |
| 3283 | |
| 3284 | // Note MS GPRS Present Request - 7.4.5 |
| 3285 | type record NoteMS_GPRSPresentRequest { |
| 3286 | IMSI_gtpc imsi, |
| 3287 | GSN_Address_GTPC gsn_Address, |
| 3288 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3289 | } |
| 3290 | |
| 3291 | // Note MS GPRS Present Response - 7.4.6 |
| 3292 | type record NoteMS_GPRSPresentResponse { |
| 3293 | Cause_gtpc cause, |
| 3294 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3295 | } |
| 3296 | |
| 3297 | // Identification Request - 7.5.1 |
| 3298 | type record IdentificationRequest { |
| 3299 | RoutingAreaIdentity routingAreaIdentity, |
| 3300 | PacketTMSI packetTMSI, |
| 3301 | PTMSI_Signature ptmsi_Signature optional, |
| 3302 | GSN_Address_GTPC sgsn_addr_controlPlane optional, |
| 3303 | HopCounter_gtpc hopCounter optional, |
| 3304 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3305 | }; |
| 3306 | |
| 3307 | // Identification Response - 7.5.2 |
| 3308 | type record IdentificationResponse { |
| 3309 | Cause_gtpc cause, |
| 3310 | IMSI_gtpc imsi optional, |
| 3311 | AuthenticationTriplet_GTPC_SetOf authenticationTriplet optional, |
| 3312 | AuthenticationQuintuplet_GTPC authenticationQuintuplet optional, |
| 3313 | AuthenticationQuintuplet_GTPC authenticationQuintuplet2 optional, |
| 3314 | AuthenticationQuintuplet_GTPC authenticationQuintuplet3 optional, |
| 3315 | AuthenticationQuintuplet_GTPC authenticationQuintuplet4 optional, |
| 3316 | AuthenticationQuintuplet_GTPC authenticationQuintuplet5 optional, |
| 3317 | UE_UsageType uE_UsageType optional, |
| 3318 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3319 | }; |
| 3320 | |
| 3321 | // SGSN Context Request - 7.5.3 |
| 3322 | type record SGSN_ContextRequest { |
| 3323 | IMSI_gtpc imsi optional, |
| 3324 | RoutingAreaIdentity routingAreaIdentity , |
| 3325 | TLLI tlli optional, |
| 3326 | PacketTMSI packetTMSI optional, |
| 3327 | PTMSI_Signature ptmsi_Signature optional, |
| 3328 | MS_Validated ms_Validated optional, |
| 3329 | TeidControlPlane teidControlPlane, |
| 3330 | GSN_Address_GTPC sgsn_addr_controlPlane, |
| 3331 | GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional, |
| 3332 | SGSN_Number sGSN_Number optional, |
| 3333 | RATType ratType optional, |
| 3334 | HopCounter_gtpc hopCounter optional, |
| 3335 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3336 | }; |
| 3337 | |
| 3338 | // SGSN Context Response - 7.5.4 |
| 3339 | type record SGSN_ContextResponse |
| 3340 | { |
| 3341 | Cause_gtpc cause, |
| 3342 | IMSI_gtpc imsi optional, |
| 3343 | TeidControlPlane teidControlPlane optional, |
| 3344 | RABContext_List rabContext optional, |
| 3345 | RadioPrioritySMS radioPrioritySMS optional, |
| 3346 | RadioPriority_List radioPriority optional, |
| 3347 | PacketFlowID_List packetFlowID optional, |
| 3348 | ChargingCharacteristics_List_GTPC charging_char optional, |
| 3349 | MM_Context mm_Context optional, |
| 3350 | PDP_Context_GTPC_List pdp_Context optional, |
| 3351 | GSN_Address_GTPC sgsn_addr_controlPlane optional, |
| 3352 | PDPContextPriorization pdpContextPriorization optional, |
| 3353 | RadioPriorityLCS radioPriority_LCS optional, |
| 3354 | MBMS_UE_Context_List mBMS_UE_Context optional, |
| 3355 | RFSP_Index subscribedRFSP_Index optional, |
| 3356 | RFSP_Index rFSP_IndexInUse optional, |
| 3357 | FullyQualifiedDomainName_List colocatedGGSN_PGW_FQDN optional, |
| 3358 | EvolvedAllocationRetentionPriorityII_List evolvedAllocationRetentionPriorityII optional, |
| 3359 | ExtendedCommonFlags extendedCommonFlags optional, |
| 3360 | UE_Network_Capability ue_network_capability optional, |
| 3361 | UE_AMBR ue_ambr optional, |
| 3362 | APN_AMBR_NSAPI apn_ambr_nsapi optional, |
| 3363 | SignallingPriorityIndication_NSAPI signallingPriorityIndication_nsapi optional, |
| 3364 | Higher_Bitrates_Than_16Mbps_Flag higher_bitrates_than_16mbps_flag optional, |
| 3365 | SelectionMode_NSAPI selectionMode_nsapi optional, |
| 3366 | LHN_ID_NSAPI localHomeNetworkID_nsapi optional, |
| 3367 | UE_UsageType uE_UsageType optional, |
| 3368 | ExtendedCommonFlagsII extendedCommonFlagsII optional, |
| 3369 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3370 | }; |
| 3371 | |
| 3372 | |
| 3373 | // SGSN Context Acknowledge - 7.5.5 |
| 3374 | type record SGSN_ContextAcknowledge { |
| 3375 | Cause_gtpc cause, |
| 3376 | TeidDataII_List teidDataII optional, |
| 3377 | GSN_Address_GTPC sgsn_AddressForUserTraffic optional, |
| 3378 | SGSN_Number sgsn_Number optional, |
| 3379 | NodeIdentifier nodeIdentifier optional, |
| 3380 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3381 | }; |
| 3382 | |
| 3383 | // Forward Relocation Request - 7.5.6 |
| 3384 | type record ForwardRelocationRequest { |
| 3385 | IMSI_gtpc imsi optional, |
| 3386 | TeidControlPlane teidControlPlane, |
| 3387 | RANAPCause ranapCause, |
| 3388 | PacketFlowID_List packetFlowID optional, |
| 3389 | ChargingCharacteristics_List_GTPC charging_char optional, |
| 3390 | MM_Context mmContext, |
| 3391 | PDP_Context_GTPC_List pdpContext optional, |
| 3392 | GSN_Address_GTPC sgsn_addr_controlPlane, |
| 3393 | TargetIdentification targetId, |
| 3394 | UTRANTransparentContainer transpContainer, |
| 3395 | PDPContextPriorization pdpContextPriorization optional, |
| 3396 | MBMS_UE_Context_List mBMS_UE_Context optional, |
| 3397 | Selected_PLMN_ID selected_PLMN_ID optional, |
| 3398 | BSS_Container bSS_Container optional, |
| 3399 | Cell_Identification_gtpc cell_Identification optional, |
| 3400 | BSSGP_Cause_gtpc bSSGP_Cause_gtpc optional, |
| 3401 | PS_HandoverXIDParameters_List pS_HandoverXIDParameters optional, |
| 3402 | DirectTunnelFlags directTunnelFlags optional, |
| 3403 | ReliableInterRATHandoverInfo reliableInterRATHandoverInfo optional, |
| 3404 | RFSP_Index subscribedRFSP_Index optional, |
| 3405 | RFSP_Index rFSP_IndexInUse optional, |
| 3406 | FullyQualifiedDomainName_List colocatedGGSN_PGW_FQDN optional, |
| 3407 | EvolvedAllocationRetentionPriorityII_List evolvedAllocationRetentionPriorityII optional, |
| 3408 | ExtendedCommonFlags extendedCommonFlags optional, |
| 3409 | CSG_Id cSG_Id optional, |
| 3410 | CSG_MembershipIndication cSG_MembershipIndication optional, |
| 3411 | UE_Network_Capability ue_network_capability optional, |
| 3412 | UE_AMBR ue_ambr optional, |
| 3413 | APN_AMBR_NSAPI apn_ambr_nsapi optional, |
| 3414 | SignallingPriorityIndication_NSAPI signallingPriorityIndication_nsapi optional, |
| 3415 | Higher_Bitrates_Than_16Mbps_Flag higher_bitrates_than_16mbps_flag optional, |
| 3416 | SRVCC_MM_Context srvcc_mm_context optional, |
| 3417 | SRVCC_Flags srvcc_flags optional, |
| 3418 | STN_SR stn_sr optional, |
| 3419 | C_MSISDN c_msisdn optional, |
| 3420 | Extended_RANAP_Cause extended_ranap_cause optional, |
| 3421 | ENodeB_ID eNodeB_ID optional, |
| 3422 | SelectionMode_NSAPI selectionMode_nsapi optional, |
| 3423 | UE_UsageType uE_UsageType optional, |
| 3424 | ExtendedCommonFlagsII extendedCommonFlagsII optional, |
| 3425 | PrivateExtension_gtpc_List private_extension_gtpc optional //to be compatible with GTP 9.11.0 |
| 3426 | }; |
| 3427 | |
| 3428 | |
| 3429 | |
| 3430 | |
| 3431 | // Forward Relocation Response - 7.5.7 |
| 3432 | type record ForwardRelocationResponse { |
| 3433 | Cause_gtpc cause, |
| 3434 | TeidControlPlane teidControlPlane optional, |
| 3435 | TeidDataII_List teidDataII optional, |
| 3436 | RANAPCause ranapCause optional, |
| 3437 | GSN_Address_GTPC sgsn_addr_controlPlane optional, |
| 3438 | GSN_Address_GTPC sgsn_addr_traffic optional, |
| 3439 | UTRANTransparentContainer transpContainer optional, |
| 3440 | RABSetupInformation_List rabSetupInfo optional, |
| 3441 | AdditionalRABSetupInformation_List additionalRABSetupInfo optional, |
| 3442 | SGSN_Number sGSN_Number optional, |
| 3443 | BSS_Container bSS_Container optional, |
| 3444 | BSSGP_Cause_gtpc bSSGP_Cause_gtpc optional, |
| 3445 | ListOfSetupPFCs_gtpc listOfSetupPFCs_gtpc optional, |
| 3446 | Extended_RANAP_Cause extended_ranap_cause optional, |
| 3447 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3448 | }; |
| 3449 | |
| 3450 | // Forward Relocation Complete - 7.5.8 |
| 3451 | type record ForwardRelocationComplete { |
| 3452 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3453 | } |
| 3454 | |
| 3455 | // Relocation Cancel Request - 7.5.9 |
| 3456 | type record RelocationCancelRequest { |
| 3457 | IMSI_gtpc imsi optional, |
| 3458 | IMEISV_gtpc imeisv_gtpc optional, |
| 3459 | ExtendedCommonFlags extended_common_flags optional, |
| 3460 | Extended_RANAP_Cause extended_ranap_cause optional, |
| 3461 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3462 | } |
| 3463 | |
| 3464 | // Relocation Cancel Response - 7.5.10 |
| 3465 | type record RelocationCancelResponse { |
| 3466 | Cause_gtpc cause, |
| 3467 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3468 | } |
| 3469 | |
| 3470 | // Forward Relocation Complete Acknowledge - 7.5.11 |
| 3471 | type record ForwardRelocationCompleteAcknowledge { |
| 3472 | Cause_gtpc cause, |
| 3473 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3474 | } |
| 3475 | |
| 3476 | // 60 Forward SRNS Context Acknowledge - 7.5.12 |
| 3477 | type record ForwardSRNSContextAcknowledge { |
| 3478 | Cause_gtpc cause, |
| 3479 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3480 | } |
| 3481 | |
| 3482 | // Forward SRNS Context - 7.5.13 |
| 3483 | type record ForwardSRNSContext { |
| 3484 | RABContext_List rabContext, |
| 3485 | SourceRNC_PDCP_ContextInfo sourceRNC_PDCP_ContextInfo optional, |
| 3486 | PDU_Numbers_List pDU_Numbers optional, |
| 3487 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3488 | }; |
| 3489 | |
| 3490 | // RAN InformationRelay - 7.5.14.1 |
| 3491 | type record RANInformationRelay{ |
| 3492 | RANTransparentContainer transparentContainer, |
| 3493 | RIM_RoutingAddress rIM_RoutingAddress optional, |
| 3494 | RIM_RoutingAddress_Discriminator rIM_RoutingAddress_Discriminator optional, |
| 3495 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3496 | }; |
| 3497 | |
| 3498 | // UE Registration Query Request - 7.5.15 |
| 3499 | type record UERegistrationQueryRequest { |
| 3500 | IMSI_gtpc imsi, |
| 3501 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3502 | } |
| 3503 | |
| 3504 | // UE Registration Query Response - 7.5.16 |
| 3505 | type record UERegistrationQueryResponse { |
| 3506 | Cause_gtpc cause, |
| 3507 | IMSI_gtpc imsi, |
| 3508 | Selected_PLMN_ID selected_PLMN_ID optional, |
| 3509 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3510 | } |
| 3511 | |
| 3512 | // MBMS Notification Request - 7.5A.1.1 |
| 3513 | type record MBMSNotificationRequest |
| 3514 | { |
| 3515 | IMSI_gtpc imsi, |
| 3516 | TeidControlPlane teidControlPlane, |
| 3517 | NSAPI_GTPC nsapi, |
| 3518 | EndUserAddress endUserAddress, |
| 3519 | AccessPointName accessPointName, |
| 3520 | GSN_Address_GTPC ggsn_addr_controlPlane, |
| 3521 | MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional, |
| 3522 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3523 | }; |
| 3524 | |
| 3525 | // MBMS Notification Response - 7.5A.1.2 |
| 3526 | type record MBMSNotificationResponse |
| 3527 | { |
| 3528 | Cause_gtpc cause, |
| 3529 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3530 | } |
| 3531 | |
| 3532 | // MBMS Notification Reject Request - 7.5A.1.3 |
| 3533 | type record MBMSNotificationRejectRequest |
| 3534 | { |
| 3535 | Cause_gtpc cause, |
| 3536 | TeidControlPlane teidControlPlane, |
| 3537 | NSAPI_GTPC nsapi, |
| 3538 | EndUserAddress endUserAddress, |
| 3539 | AccessPointName accessPointName, |
| 3540 | GSN_Address_GTPC sgsn_addr_controlPlane optional, |
| 3541 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3542 | }; |
| 3543 | |
| 3544 | // MBMS Notification Reject Response - 7.5A.1.4 |
| 3545 | type record MBMSNotificationRejectResponse |
| 3546 | { |
| 3547 | Cause_gtpc cause, |
| 3548 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3549 | } |
| 3550 | |
| 3551 | // Create MBMS Context Request - 7.5A.1.5 |
| 3552 | type record CreateMBMSContextRequest |
| 3553 | { |
| 3554 | IMSI_gtpc imsi optional, |
| 3555 | RoutingAreaIdentity rai, |
| 3556 | Recovery_gtpc recovery optional, |
| 3557 | SelectionMode selectionMode optional, |
| 3558 | TeidControlPlane teidControlPlane optional, |
| 3559 | TraceRef trace_ref optional, |
| 3560 | GTP_TraceType trace_type optional, |
| 3561 | EndUserAddress endUserAddress, |
| 3562 | AccessPointName accessPointName, |
| 3563 | GSN_Address_GTPC sGSNAddressForSignalling, |
| 3564 | MSISDN msisdn optional, |
| 3565 | GTP_TriggerID triggerId optional, |
| 3566 | OMCIdentity omcId optional, |
| 3567 | RATType ratType optional, |
| 3568 | UserLocationInformation userLocationInformation optional, |
| 3569 | MS_TimeZone mS_TimeZone optional, |
| 3570 | IMEISV_gtpc imeisv optional, |
| 3571 | MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional, |
| 3572 | AdditionalTraceInfo additionalTraceInfo optional, |
| 3573 | Enhanced_NSAPI enhanced_NSAPI, |
| 3574 | AdditionalMBMSTraceInfo additionalMBMSTraceInfo optional, |
| 3575 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3576 | }; |
| 3577 | |
| 3578 | // Create MBMS Context Response - 7.5A.1.6 |
| 3579 | type record CreateMBMSContextResponse |
| 3580 | { |
| 3581 | Cause_gtpc cause, |
| 3582 | Recovery_gtpc recovery optional, |
| 3583 | TeidControlPlane teidControlPlane optional, |
| 3584 | ChargingID chargingID optional, |
| 3585 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3586 | GSN_Address_GTPC alternative_ggsn_addr_controlPlane optional, |
| 3587 | MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional, |
| 3588 | ChargingGatewayAddress chargingGatewayAddress optional, |
| 3589 | ChargingGatewayAddress alt_chargingGatewayAddress optional, |
| 3590 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3591 | }; |
| 3592 | |
| 3593 | // Update MBMS Context Request - 7.5A.1.7 |
| 3594 | type record UpdateMBMSContextRequest |
| 3595 | { |
| 3596 | RoutingAreaIdentity rai, |
| 3597 | Recovery_gtpc recovery optional, |
| 3598 | TeidControlPlane teidControlPlane optional, |
| 3599 | TraceRef trace_ref optional, |
| 3600 | GTP_TraceType trace_type optional, |
| 3601 | GSN_Address_GTPC sgsn_addr_controlPlane, |
| 3602 | GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional, |
| 3603 | GTP_TriggerID triggerId optional, |
| 3604 | OMCIdentity omcId optional, |
| 3605 | RATType ratType optional, |
| 3606 | UserLocationInformation userLocationInformation optional, |
| 3607 | MS_TimeZone mS_TimeZone optional, |
| 3608 | AdditionalTraceInfo additionalTraceInfo optional, |
| 3609 | Enhanced_NSAPI enhanced_NSAPI, |
| 3610 | AdditionalMBMSTraceInfo additionalMBMSTraceInfo optional, |
| 3611 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3612 | }; |
| 3613 | |
| 3614 | // Update MBMS Context Response - 7.5A.1.8 |
| 3615 | type record UpdateMBMSContextResponse |
| 3616 | { |
| 3617 | Cause_gtpc cause, |
| 3618 | Recovery_gtpc recovery optional, |
| 3619 | TeidControlPlane teidControlPlane optional, |
| 3620 | ChargingID chargingID optional, |
| 3621 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3622 | GSN_Address_GTPC alternative_ggsn_addr_controlPlane optional, |
| 3623 | ChargingGatewayAddress chargingGatewayAddress optional, |
| 3624 | ChargingGatewayAddress alt_chargingGatewayAddress optional, |
| 3625 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3626 | }; |
| 3627 | |
| 3628 | // Delete MBMS Context Request - 7.5A.1.9 |
| 3629 | type record DeleteMBMSContextRequest |
| 3630 | { |
| 3631 | IMSI_gtpc imsi optional, |
| 3632 | TeidControlPlane teidControlPlane optional, |
| 3633 | EndUserAddress endUserAddress optional, |
| 3634 | AccessPointName accessPointName optional, |
| 3635 | MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional, |
| 3636 | Enhanced_NSAPI enhanced_NSAPI optional, |
| 3637 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3638 | }; |
| 3639 | |
| 3640 | // Delete MBMS Context Response - 7.5A.1.10 |
| 3641 | type record DeleteMBMSContextResponse |
| 3642 | { |
| 3643 | Cause_gtpc cause, |
| 3644 | MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional, |
| 3645 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3646 | }; |
| 3647 | |
| 3648 | // MBMS Registration Request - 7.5A.2.1 |
| 3649 | type record MBMSRegistrationRequest_gtpc |
| 3650 | { |
| 3651 | TeidControlPlane teidControlPlane optional, |
| 3652 | EndUserAddress endUserAddress, |
| 3653 | AccessPointName accessPointName, |
| 3654 | GSN_Address_GTPC sgsn_addr_controlPlane optional, |
| 3655 | GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional, |
| 3656 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3657 | }; |
| 3658 | |
| 3659 | // MBMS Registration Response - 7.5A.2.2 |
| 3660 | type record MBMSRegistrationResponse_gtpc |
| 3661 | { |
| 3662 | Cause_gtpc cause, |
| 3663 | TeidControlPlane teidControlPlane optional, |
| 3664 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3665 | TMGI_gtpc tMGI optional, |
| 3666 | RequiredMBMS_BearerCapabilities reqMBMS_BearerCapabilities optional, |
| 3667 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3668 | }; |
| 3669 | |
| 3670 | // MBMS De-registration Request - 7.5A.2.3 |
| 3671 | type record MBMSDeRegistrationRequest |
| 3672 | { |
| 3673 | EndUserAddress endUserAddress, |
| 3674 | AccessPointName accessPointName, |
| 3675 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3676 | } |
| 3677 | |
| 3678 | // MBMS De-Registration Response - 7.5A.2.4 |
| 3679 | type record MBMSDeRegistrationResponse |
| 3680 | { |
| 3681 | Cause_gtpc cause, |
| 3682 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3683 | } |
| 3684 | |
| 3685 | |
| 3686 | // MBMS Session Start Request 7.5A.2.5 |
| 3687 | type record MBMSSessionStartRequest |
| 3688 | { |
| 3689 | Recovery_gtpc recovery optional, |
| 3690 | TeidControlPlane teidControlPlane optional, |
| 3691 | EndUserAddress endUserAddress, |
| 3692 | AccessPointName accessPointName, |
| 3693 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3694 | GSN_Address_GTPC alternative_ggsn_addr_controlPlane optional, |
| 3695 | QualityOfServiceProfile qualityOfServiceProfile, |
| 3696 | CommonFlags commonFlags, |
| 3697 | TMGI_gtpc tMGI, |
| 3698 | MBMS_ServiceArea mBMS_ServiceArea, |
| 3699 | MBMS_SessionIdentifier mBMS_SessionIdentifier optional, |
| 3700 | MBMS_2G_3G_Indicator mBMS_2G_3G_Indicator, |
| 3701 | MBMS_SessionDuration mBMS_SessionDuration, |
| 3702 | MBMS_SessionRepetitionNumber mBMS_SessionRepetitionNumber optional, |
| 3703 | MBMS_TimeToDataTransfer mBMS_TimeToDataTransfer, |
| 3704 | MBMS_FlowID mBMS_FlowID optional, |
| 3705 | MBMS_IPMulticastDistribution mBMS_IPMulticastDistribution optional, |
| 3706 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3707 | }; |
| 3708 | |
| 3709 | // 117 MBMS Session Start Response 7.5A.2.6 |
| 3710 | type record MBMSSessionStartResponse_gtpc |
| 3711 | { |
| 3712 | Cause_gtpc cause, |
| 3713 | Recovery_gtpc recovery optional, |
| 3714 | TeidDataI teidDataI optional, |
| 3715 | TeidControlPlane teidControlPlane optional, |
| 3716 | GSN_Address_GTPC sgsn_addr_controlPlane optional, |
| 3717 | GSN_Address_GTPC sgsn_addr_traffic optional, |
| 3718 | GSN_Address_GTPC alt_sgsn_addr_traffic optional, |
| 3719 | MBMS_DistributionAcknowledgement mBMS_DistributionAcknowledgement optional, |
| 3720 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3721 | }; |
| 3722 | |
| 3723 | // MBMS Session Stop Request - 7.5A.2.7 |
| 3724 | type record MBMSSessionStopRequest |
| 3725 | { |
| 3726 | EndUserAddress endUserAddress, |
| 3727 | AccessPointName accessPointName, |
| 3728 | MBMS_FlowID mBMS_FlowID optional, |
| 3729 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3730 | }; |
| 3731 | |
| 3732 | // MBMS Session Stop Response - 7.5A.2.8 |
| 3733 | type record MBMSSessionStopResponse_gtpc |
| 3734 | { |
| 3735 | Cause_gtpc cause, |
| 3736 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3737 | } |
| 3738 | |
| 3739 | // MBMS Session Update Request - 7.5A.2.9 |
| 3740 | type record MBMSSessionUpdateRequest |
| 3741 | { |
| 3742 | TeidControlPlane teidControlPlane optional, |
| 3743 | EndUserAddress endUserAddress, |
| 3744 | AccessPointName accessPointName, |
| 3745 | GSN_Address_GTPC ggsn_addr_controlPlane optional, |
| 3746 | TMGI_gtpc tMGI, |
| 3747 | MBMS_ServiceArea mBMS_ServiceArea, |
| 3748 | MBMS_SessionIdentifier mBMS_SessionIdentifier optional, |
| 3749 | MBMS_SessionDuration mBMS_SessionDuration, |
| 3750 | MBMS_SessionRepetitionNumber mBMS_SessionRepetitionNumber optional, |
| 3751 | MBMS_FlowID mBMS_FlowID optional, |
| 3752 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3753 | }; |
| 3754 | |
| 3755 | // MBMS Session Update Response - 7.5A.2.10 |
| 3756 | type record MBMSSessionUpdateResponse |
| 3757 | { |
| 3758 | Cause_gtpc cause, |
| 3759 | TeidDataI teidDataI optional, |
| 3760 | TeidControlPlane teidControlPlane optional, |
| 3761 | GSN_Address_GTPC sgsn_addr_DataI optional, |
| 3762 | GSN_Address_GTPC sgsn_addr_controlPlane optional, |
| 3763 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3764 | }; |
| 3765 | |
| 3766 | // MS Info Change Notification Request 7.5B.1.1 |
| 3767 | type record MS_InfoChangeNotificationRequest |
| 3768 | { |
| 3769 | IMSI_gtpc imsi optional, |
| 3770 | NSAPI_GTPC linkedNSAPI optional, |
| 3771 | RATType ratType, |
| 3772 | UserLocationInformation userLocationInformation optional, |
| 3773 | IMEISV_gtpc imeisv_gtpc optional, |
| 3774 | ExtendedCommonFlags extended_common_flags optional, |
| 3775 | UserCSGInformation userCSGInformation optional, |
| 3776 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3777 | }; |
| 3778 | |
| 3779 | // MS Info Change Notification Response 7.5B.1.2 |
| 3780 | type record MS_InfoChangeNotificationResponse |
| 3781 | { |
| 3782 | Cause_gtpc cause, |
| 3783 | IMSI_gtpc imsi optional, |
| 3784 | NSAPI_GTPC linkedNSAPI optional, |
| 3785 | IMEISV_gtpc imeisv_gtpc optional, |
| 3786 | MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional, |
| 3787 | CSGInfoReportingAction cSGInfoReportingAction optional, |
| 3788 | PrivateExtension_gtpc_List private_extension_gtpc optional |
| 3789 | }; |
| 3790 | |
| 3791 | type union GTPC_PDUs { |
| 3792 | EchoRequest echoRequest, |
| 3793 | EchoResponse echoResponse, |
| 3794 | VersionNotSupported versionNotSupported, |
| 3795 | CreatePDPContextRequest createPDPContextRequest, |
| 3796 | CreatePDPContextResponse createPDPContextResponse, |
| 3797 | UpdatePDPContextRequest updatePDPContextRequest, |
| 3798 | UpdatePDPContextResponse updatePDPContextResponse, |
| 3799 | DeletePDPContextRequest deletePDPContextRequest, |
| 3800 | DeletePDPContextResponse deletePDPContextResponse, |
| 3801 | PDU_NotificationRequest pdu_NotificationRequest, |
| 3802 | PDU_NotificationResponse pdu_NotificationResponse, |
| 3803 | PDU_NotificationRejectRequest pdu_NotificationRejectRequest, |
| 3804 | PDU_NotificationRejectResponse pdu_NotificationRejectResponse, |
| 3805 | InitiatePDPContextActivationRequest initiatePDPContextActivationRequest, |
| 3806 | InitiatePDPContextActivationResponse initiatePDPContextActivationResponse, |
| 3807 | SupportedExtensionHeadersNotification supportedExtensionHeadersNotification, |
| 3808 | SendRouteingInformationForGPRSRequest sendRouteingInformationForGPRSRequest, |
| 3809 | SendRouteingInformationForGPRSResponse sendRouteingInformationForGPRSResponse, |
| 3810 | FailureReportRequest failureReportRequest, |
| 3811 | FailureReportResponse failureReportResponse, |
| 3812 | NoteMS_GPRSPresentRequest noteMS_GPRSPresentRequest, |
| 3813 | NoteMS_GPRSPresentResponse noteMS_GPRSPresentResponse, |
| 3814 | IdentificationRequest identificationRequest, |
| 3815 | IdentificationResponse identificationResponse, |
| 3816 | SGSN_ContextRequest sgsn_ContextRequest, |
| 3817 | SGSN_ContextResponse sgsn_ContextResponse, |
| 3818 | SGSN_ContextAcknowledge sgsn_ContextAcknowledge, |
| 3819 | ForwardRelocationRequest forwardRelocationRequest, |
| 3820 | ForwardRelocationResponse forwardRelocationResponse, |
| 3821 | ForwardRelocationComplete forwardRelocationComplete, |
| 3822 | RelocationCancelRequest relocationCancelRequest, |
| 3823 | RelocationCancelResponse relocationCancelResponse, |
| 3824 | ForwardSRNSContext forwardSRNSContext, |
| 3825 | ForwardRelocationCompleteAcknowledge forwardRelocationCompleteAcknowledge, |
| 3826 | ForwardSRNSContextAcknowledge forwardSRNSContextAcknowledge, |
| 3827 | UERegistrationQueryRequest uERegistrationQueryRequest, |
| 3828 | UERegistrationQueryResponse uERegistrationQueryResponse, |
| 3829 | RANInformationRelay ranInformationRelay, |
| 3830 | MBMSNotificationRequest mBMSNotificationRequest, |
| 3831 | MBMSNotificationResponse mBMSNotificationResponse, |
| 3832 | MBMSNotificationRejectRequest mBMSNotificationRejectRequest, |
| 3833 | MBMSNotificationRejectResponse mBMSNotificationRejectResponse, |
| 3834 | CreateMBMSContextRequest createMBMSContextRequest, |
| 3835 | CreateMBMSContextResponse createMBMSContextResponse, |
| 3836 | UpdateMBMSContextRequest updateMBMSContextRequest, |
| 3837 | UpdateMBMSContextResponse updateMBMSContextResponse, |
| 3838 | DeleteMBMSContextRequest deleteMBMSContextRequest, |
| 3839 | DeleteMBMSContextResponse deleteMBMSContextResponse, |
| 3840 | MBMSRegistrationRequest_gtpc mBMSRegistrationRequest, |
| 3841 | MBMSRegistrationResponse_gtpc mBMSRegistrationResponse, |
| 3842 | MBMSDeRegistrationRequest mBMSDeRegistrationRequest, |
| 3843 | MBMSDeRegistrationResponse mBMSDeRegistrationResponse, |
| 3844 | MBMSSessionStartRequest mBMSSessionStartRequest, |
| 3845 | MBMSSessionStartResponse_gtpc mBMSSessionStartResponse, |
| 3846 | MBMSSessionStopRequest mBMSSessionStopRequest, |
| 3847 | MBMSSessionStopResponse_gtpc mBMSSessionStopResponse, |
| 3848 | MBMSSessionUpdateRequest mBMSSessionUpdateRequest, |
| 3849 | MBMSSessionUpdateResponse mBMSSessionUpdateResponse, |
| 3850 | MS_InfoChangeNotificationRequest mS_InfoChangeNotificationRequest, |
| 3851 | MS_InfoChangeNotificationResponse mS_InfoChangeNotificationResponse |
| 3852 | } with { variant ""}; |
| 3853 | |
| 3854 | |
| 3855 | ///////////////////////////// |
| 3856 | // PDU definition |
| 3857 | ///////////////////////////// |
| 3858 | type record PDU_GTPC { |
| 3859 | BIT1 pn_bit, |
| 3860 | BIT1 s_bit, |
| 3861 | BIT1 e_bit, |
| 3862 | BIT1 spare, |
| 3863 | BIT1 pt, |
| 3864 | BIT3 version, |
| 3865 | OCT1 messageType, |
| 3866 | LIN2_BO_LAST lengthf, |
| 3867 | OCT4 teid, |
| 3868 | GTPC_Header_optional_part opt_part optional, |
| 3869 | GTPC_PDUs gtpc_pdu |
| 3870 | } with { |
| 3871 | variant (lengthf) "LENGTHTO(opt_part, gtpc_pdu)"; |
| 3872 | variant (opt_part) "PRESENCE({pn_bit = '1'B, s_bit = '1'B, e_bit = '1'B})"; |
| 3873 | variant (gtpc_pdu) "CROSSTAG( echoRequest, messageType = '01'O; |
| 3874 | echoResponse, messageType = '02'O; |
| 3875 | versionNotSupported, messageType = '03'O; |
| 3876 | createPDPContextRequest, messageType = '10'O; |
| 3877 | createPDPContextResponse, messageType = '11'O; |
| 3878 | updatePDPContextRequest, messageType = '12'O; |
| 3879 | updatePDPContextResponse, messageType = '13'O; |
| 3880 | deletePDPContextRequest, messageType = '14'O; |
| 3881 | deletePDPContextResponse, messageType = '15'O; |
| 3882 | initiatePDPContextActivationRequest, messageType = '16'O; |
| 3883 | initiatePDPContextActivationResponse, messageType = '17'O; |
| 3884 | pdu_NotificationRequest, messageType = '1B'O; |
| 3885 | pdu_NotificationResponse, messageType = '1C'O; |
| 3886 | pdu_NotificationRejectRequest, messageType = '1D'O; |
| 3887 | pdu_NotificationRejectResponse, messageType = '1E'O; |
| 3888 | supportedExtensionHeadersNotification, messageType ='1F'O; |
| 3889 | sendRouteingInformationForGPRSRequest, messageType = '20'O; |
| 3890 | sendRouteingInformationForGPRSResponse, messageType = '21'O; |
| 3891 | failureReportRequest, messageType = '22'O; |
| 3892 | failureReportResponse, messageType = '23'O; |
| 3893 | noteMS_GPRSPresentRequest, messageType = '24'O; |
| 3894 | noteMS_GPRSPresentResponse, messageType = '25'O; |
| 3895 | identificationRequest, messageType = '30'O; |
| 3896 | identificationResponse, messageType = '31'O; |
| 3897 | sgsn_ContextRequest, messageType = '32'O; |
| 3898 | sgsn_ContextResponse, messageType = '33'O; |
| 3899 | sgsn_ContextAcknowledge, messageType = '34'O; |
| 3900 | forwardRelocationRequest, messageType = '35'O; |
| 3901 | forwardRelocationResponse, messageType = '36'O; |
| 3902 | forwardRelocationComplete, messageType = '37'O; |
| 3903 | relocationCancelRequest, messageType = '38'O; |
| 3904 | relocationCancelResponse, messageType = '39'O; |
| 3905 | forwardSRNSContext, messageType = '3A'O; |
| 3906 | forwardRelocationCompleteAcknowledge, messageType = '3B'O; |
| 3907 | forwardSRNSContextAcknowledge, messageType = '3C'O; |
| 3908 | uERegistrationQueryRequest, messageType = '3D'O; |
| 3909 | uERegistrationQueryResponse, messageType = '3F'O; |
| 3910 | ranInformationRelay, messageType = '46'O; |
| 3911 | mBMSNotificationRequest, messageType = '60'O; |
| 3912 | mBMSNotificationResponse, messageType = '61'O; |
| 3913 | mBMSNotificationRejectRequest, messageType = '62'O; |
| 3914 | mBMSNotificationRejectResponse, messageType = '63'O; |
| 3915 | createMBMSContextRequest, messageType = '64'O; |
| 3916 | createMBMSContextResponse, messageType = '65'O; |
| 3917 | updateMBMSContextRequest, messageType = '66'O; |
| 3918 | updateMBMSContextResponse, messageType = '67'O; |
| 3919 | deleteMBMSContextRequest, messageType = '68'O; |
| 3920 | deleteMBMSContextResponse, messageType = '69'O; |
| 3921 | mBMSRegistrationRequest, messageType = '70'O; |
| 3922 | mBMSRegistrationResponse, messageType = '71'O; |
| 3923 | mBMSDeRegistrationRequest, messageType = '72'O; |
| 3924 | mBMSDeRegistrationResponse, messageType = '73'O; |
| 3925 | mBMSSessionStartRequest, messageType = '74'O; |
| 3926 | mBMSSessionStartResponse, messageType = '75'O; |
| 3927 | mBMSSessionStopRequest, messageType = '76'O; |
| 3928 | mBMSSessionStopResponse, messageType = '77'O; |
| 3929 | mBMSSessionUpdateRequest, messageType = '78'O; |
| 3930 | mBMSSessionUpdateResponse, messageType = '79'O; |
| 3931 | mS_InfoChangeNotificationRequest, messageType = '80'O; |
| 3932 | mS_InfoChangeNotificationResponse, messageType = '81'O |
| 3933 | )"; |
| 3934 | }; |
| 3935 | |
| 3936 | type record GTPC_Header_optional_part { |
| 3937 | OCT2 sequenceNumber, |
| 3938 | OCT1 npduNumber, |
| 3939 | OCT1 nextExtHeader, |
| 3940 | GTPC_ExtensionHeader_List gTPC_extensionHeader_List optional |
| 3941 | } |
| 3942 | |
| 3943 | type record of GTPC_ExtensionHeader GTPC_ExtensionHeader_List; |
| 3944 | |
| 3945 | type record GTPC_ExtensionHeader { |
| 3946 | integer lengthfield, |
| 3947 | octetstring content, |
| 3948 | octetstring nextExtHeader length(1) |
| 3949 | } with { variant (lengthfield) "LENGTHTO(lengthfield,content,nextExtHeader)"; |
| 3950 | variant (lengthfield) "UNIT(32)"; |
| 3951 | }; |
| 3952 | |
| 3953 | }//end of module |
| 3954 | with { |
| 3955 | extension "version R1B" |
| 3956 | encode "RAW" |
| 3957 | } |
| 3958 | |