mobile: few fixes
This commit is contained in:
parent
69e120ee5b
commit
712455c676
|
@ -214,7 +214,10 @@ class GMMDetachRequestMO(Layer3):
|
|||
#------------------------------------------------------------------------------#
|
||||
|
||||
class GMMDetachAcceptMT(Layer3):
|
||||
_GEN = tuple(GMMHeader(val={'Type':6})._content)
|
||||
_GEN = tuple(GMMHeader(val={'Type':6})._content) + (
|
||||
Uint('spare', val=0, bl=4),
|
||||
ForceStdby()
|
||||
)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
|
@ -223,10 +226,7 @@ class GMMDetachAcceptMT(Layer3):
|
|||
#------------------------------------------------------------------------------#
|
||||
|
||||
class GMMDetachAcceptMO(Layer3):
|
||||
_GEN = tuple(GMMHeader(val={'Type':6})._content) + (
|
||||
Uint('spare', val=0, bl=4),
|
||||
ForceStdby()
|
||||
)
|
||||
_GEN = tuple(GMMHeader(val={'Type':6})._content)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
|
|
|
@ -1279,9 +1279,9 @@ _NonDRXTimer_dict = {
|
|||
class DRXParam(Envelope):
|
||||
_GEN = (
|
||||
Uint8('SPLIT_PG_CYCLE_CODE', val=0, dic=_SplitPGCycleC_dict),
|
||||
Uint('DRXCycleLen', val=0, bl=3, dic=_DRXCycleLen_dict),
|
||||
Uint('DRXCycleLen', val=0, bl=4, dic=_DRXCycleLen_dict),
|
||||
Uint('SPLITonCCCH', val=0, bl=1),
|
||||
Uint('NonDRXTimer', val=0, bl=4, dic=_NonDRXTimer_dict)
|
||||
Uint('NonDRXTimer', val=0, bl=3, dic=_NonDRXTimer_dict)
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,291 @@
|
|||
# -*- coding: UTF-8 -*-
|
||||
#/**
|
||||
# * Software Name : pycrate
|
||||
# * Version : 0.1
|
||||
# *
|
||||
# * Copyright © 2017. Benoit Michau. ANSSI.
|
||||
# *
|
||||
# * This program is free software; you can redistribute it and/or
|
||||
# * modify it under the terms of the GNU General Public License
|
||||
# * as published by the Free Software Foundation; either version 2
|
||||
# * of the License, or (at your option) any later version.
|
||||
# *
|
||||
# * This program is distributed in the hope that it will be useful,
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# * GNU General Public License for more details.
|
||||
# *
|
||||
# * You should have received a copy of the GNU General Public License
|
||||
# * along with this program; if not, write to the Free Software
|
||||
# * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# * 02110-1301, USA.
|
||||
# *
|
||||
# *--------------------------------------------------------
|
||||
# * File Name : pycrate_mobile/TS44018_RR.py
|
||||
# * Created : 2017-07-20
|
||||
# * Authors : Benoit Michau
|
||||
# *--------------------------------------------------------
|
||||
#*/
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# 3GPP TS 44.018 GSM / EDGE RRC protocol
|
||||
# release 13 (d60)
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
from pycrate_core.utils import *
|
||||
from pycrate_core.elt import *
|
||||
from pycrate_core.base import *
|
||||
|
||||
from .TS24008_IE import *
|
||||
from .TS24007 import *
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# RRC header
|
||||
# TS 44.018, section
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
_RRC_dict = {
|
||||
0:'SYSTEM INFORMATION TYPE 13',
|
||||
1:'SYSTEM INFORMATION TYPE 14',
|
||||
2:'SYSTEM INFORMATION TYPE 2 bis',
|
||||
3:'SYSTEM INFORMATION TYPE 2 ter',
|
||||
4:'SYSTEM INFORMATION TYPE 9',
|
||||
5:'SYSTEM INFORMATION TYPE 5 bis',
|
||||
6:'SYSTEM INFORMATION TYPE 5 ter',
|
||||
7:'SYSTEM INFORMATION TYPE 2 quater',
|
||||
9:'VGCS UPLINK GRANT',
|
||||
10:'PARTIAL RELEASE',
|
||||
13:'CHANNEL RELEASE',
|
||||
14:'UPLINK RELEASE',
|
||||
15:'PARTIAL RELEASE COMPLETE',
|
||||
16:'CHANNEL MODE MODIFY',
|
||||
17:'TALKER INDICATION',
|
||||
18:'RR STATUS',
|
||||
19:'CLASSMARK ENQUIRY',
|
||||
20:'FREQUENCY REDEFINITION',
|
||||
21:'MEASUREMENT REPORT',
|
||||
22:'CLASSMARK CHANGE',
|
||||
#22:'MBMS ANNOUNCEMENT',
|
||||
23:'CHANNEL MODE MODIFY ACKNOWLEDGE',
|
||||
24:'SYSTEM INFORMATION TYPE 8',
|
||||
25:'SYSTEM INFORMATION TYPE 1',
|
||||
26:'SYSTEM INFORMATION TYPE 2',
|
||||
27:'SYSTEM INFORMATION TYPE 3',
|
||||
28:'SYSTEM INFORMATION TYPE 4',
|
||||
29:'SYSTEM INFORMATION TYPE 5',
|
||||
30:'SYSTEM INFORMATION TYPE 6',
|
||||
31:'SYSTEM INFORMATION TYPE 7',
|
||||
32:'NOTIFICATION/NCH',
|
||||
33:'PAGING REQUEST TYPE 1',
|
||||
34:'PAGING REQUEST TYPE 2',
|
||||
36:'PAGING REQUEST TYPE 3',
|
||||
38:'NOTIFICATION/RESPONSE',
|
||||
39:'PAGING RESPONSE',
|
||||
40:'HANDOVER FAILURE',
|
||||
41:'ASSIGNMENT COMPLETE',
|
||||
42:'UPLINK BUSY',
|
||||
43:'HANDOVER COMMAND',
|
||||
44:'HANDOVER COMPLETE',
|
||||
45:'PHYSICAL INFORMATION',
|
||||
46:'ASSIGNMENT COMMAND',
|
||||
47:'ASSIGNMENT FAILURE',
|
||||
48:'CONFIGURATION CHANGE COMMAND',
|
||||
49:'CONFIGURATION CHANGE ACK',
|
||||
50:'CIPHERING MODE COMPLETE',
|
||||
51:'CONFIGURATION CHANGE REJECT',
|
||||
52:'GPRS SUSPENSION REQUEST',
|
||||
53:'CIPHERING MODE COMMAND',
|
||||
54:'EXTENDED MEASUREMENT REPORT',
|
||||
54:'SERVICE INFORMATION',
|
||||
55:'EXTENDED MEASUREMENT ORDER',
|
||||
56:'APPLICATION INFORMATION',
|
||||
57:'IMMEDIATE ASSIGNMENT EXTENDED',
|
||||
58:'IMMEDIATE ASSIGNMENT REJECT',
|
||||
59:'ADDITIONAL ASSIGNMENT',
|
||||
61:'SYSTEM INFORMATION TYPE 16',
|
||||
62:'SYSTEM INFORMATION TYPE 17',
|
||||
63:'IMMEDIATE ASSIGNMENT',
|
||||
64:'SYSTEM INFORMATION TYPE 18',
|
||||
65:'SYSTEM INFORMATION TYPE 19',
|
||||
66:'SYSTEM INFORMATION TYPE 20',
|
||||
67:'SYSTEM INFORMATION TYPE 15',
|
||||
68:'SYSTEM INFORMATION TYPE 13 alt',
|
||||
69:'SYSTEM INFORMATION TYPE 2 n',
|
||||
70:'SYSTEM INFORMATION TYPE 21',
|
||||
72:'DTM ASSIGNMENT FAILURE',
|
||||
73:'DTM REJECT',
|
||||
74:'DTM REQUEST',
|
||||
75:'PACKET ASSIGNMENT',
|
||||
76:'DTM ASSIGNMENT COMMAND',
|
||||
77:'DTM INFORMATION',
|
||||
78:'PACKET NOTIFICATION',
|
||||
96:'UTRAN CLASSMARK CHANGE',
|
||||
98:'CDMA 2000 CLASSMARK CHANGE',
|
||||
99:'INTER SYSTEM TO UTRAN HANDOVER COMMAND',
|
||||
100:'INTER SYSTEM TO CDMA2000 HANDOVER COMMAND',
|
||||
101:'GERAN IU MODE CLASSMARK CHANGE',
|
||||
102:'PRIORITY UPLINK REQUEST',
|
||||
103:'DATA INDICATION',
|
||||
104:'DATA INDICATION 2'
|
||||
}
|
||||
|
||||
'''
|
||||
Complete list of messages:
|
||||
|
||||
Channel establishment messages:
|
||||
ADDITIONAL ASSIGNMENT
|
||||
IMMEDIATE ASSIGNMENT
|
||||
IMMEDIATE PACKET ASSIGNMENT
|
||||
IMMEDIATE ASSIGNMENT EXTENDED
|
||||
IMMEDIATE ASSIGNMENT REJECT
|
||||
DTM ASSIGMENT FAILURE
|
||||
DTM REJECT
|
||||
DTM REQUEST
|
||||
PACKET ASSIGNMENT
|
||||
EC IMMEDIATE ASSIGNMENT TYPE 1
|
||||
EC IMMEDIATE ASSIGNMENT TYPE 2
|
||||
EC IMMEDIATE ASSIGNMENT REJECT
|
||||
EC DOWNLINK ASSIGNMENT
|
||||
EC PACKET CHANNEL REQUEST
|
||||
Ciphering messages:
|
||||
CIPHERING MODE COMMAND
|
||||
CIPHERING MODE COMPLETE
|
||||
Handover messages:
|
||||
ASSIGNMENT COMMAND
|
||||
ASSIGNMENT COMPLETE
|
||||
ASSIGNMENT FAILURE
|
||||
DTM ASSIGMENT COMMAND
|
||||
INTER SYSTEM TO UTRAN HANDOVER COMMAND
|
||||
HANDOVER ACCESS
|
||||
HANDOVER COMMAND
|
||||
HANDOVER COMPLETE
|
||||
HANDOVER FAILURE
|
||||
PHYSICAL INFORMATION
|
||||
INTER SYSTEM TO CDMA2000 HANDOVER COMMAND
|
||||
INTER SYSTEM TO E-UTRAN HANDOVER COMMAND
|
||||
Channel release messages:
|
||||
CHANNEL RELEASE
|
||||
PARTIAL RELEASE
|
||||
PARTIAL RELEASE COMPLETE
|
||||
Paging messages:
|
||||
PACKET NOTIFICATION
|
||||
PAGING REQUEST TYPE 1
|
||||
PAGING REQUEST TYPE 2
|
||||
PAGING REQUEST TYPE 3
|
||||
PAGING RESPONSE
|
||||
EC DUMMY
|
||||
EC PAGING REQUEST
|
||||
System information messages:
|
||||
SYSTEM INFORMATION TYPE 1
|
||||
SYSTEM INFORMATION TYPE 2
|
||||
SYSTEM INFORMATION TYPE 2bis
|
||||
SYSTEM INFORMATION TYPE 2ter
|
||||
SYSTEM INFORMATION TYPE 2quater
|
||||
SYSTEM INFORMATION TYPE 2n
|
||||
SYSTEM INFORMATION TYPE 3
|
||||
SYSTEM INFORMATION TYPE 4
|
||||
SYSTEM INFORMATION TYPE 5
|
||||
SYSTEM INFORMATION TYPE 5bis
|
||||
SYSTEM INFORMATION TYPE 5ter
|
||||
SYSTEM INFORMATION TYPE 6
|
||||
SYSTEM INFORMATION TYPE 7
|
||||
SYSTEM INFORMATION TYPE 8
|
||||
SYSTEM INFORMATION TYPE 9
|
||||
SYSTEM INFORMATION TYPE 10
|
||||
SYSTEM INFORMATION TYPE 10bis
|
||||
SYSTEM INFORMATION TYPE 10ter
|
||||
SYSTEM INFORMATION TYPE 13
|
||||
SYSTEM INFORMATION TYPE 13alt
|
||||
SYSTEM INFORMATION TYPE 14
|
||||
SYSTEM INFORMATION TYPE 15
|
||||
SYSTEM INFORMATION TYPE 16
|
||||
SYSTEM INFORMATION TYPE 17
|
||||
SYSTEM INFORMATION TYPE 18
|
||||
SYSTEM INFORMATION TYPE 19
|
||||
SYSTEM INFORMATION TYPE 20
|
||||
SYSTEM INFORMATION TYPE 21
|
||||
SYSTEM INFORMATION TYPE 22
|
||||
SYSTEM INFORMATION TYPE 23
|
||||
EC SYSTEM INFORMATION TYPE 1
|
||||
EC SYSTEM INFORMATION TYPE 2
|
||||
EC SYSTEM INFORMATION TYPE 3
|
||||
EC SYSTEM INFORMATION TYPE 4
|
||||
DTM INFORMATION
|
||||
Specific messages for VBS/VGCS:
|
||||
NOTIFICATION/FACCH
|
||||
NOTIFICATION/NCH
|
||||
NOTIFICATION RESPONSE
|
||||
VBS/VGCS RECONFIGURE
|
||||
VBS/VGCS RECONFIGURE2
|
||||
TALKER INDICATION
|
||||
UPLINK ACCESS
|
||||
UPLINK BUSY
|
||||
UPLINK FREE
|
||||
UPLINK RELEASE
|
||||
VGCS UPLINK GRANT
|
||||
PRIORITY UPLINK REQUEST
|
||||
VGCS Neighbour Cell Information
|
||||
DATA INDICATION
|
||||
DATA INDICATION 2
|
||||
NOTIFY APPLICATION DATA
|
||||
Measurement specific messages:
|
||||
EXTENDED MEASUREMENT ORDER
|
||||
EXTENDED MEASUREMENT REPORT
|
||||
MEASUREMENT REPORT
|
||||
MEASUREMENT INFORMATION
|
||||
ENHANCED MEASUREMENT REPORT
|
||||
Miscellaneous messages:
|
||||
CHANNEL MODE MODIFY
|
||||
CHANNEL MODE MODIFY ACKNOWLEDGE
|
||||
CHANNEL REQUEST
|
||||
CLASSMARK CHANGE
|
||||
CLASSMARK ENQUIRY
|
||||
UTRAN CLASSMARK CHANGE
|
||||
cdma2000 CLASSMARK CHANGE
|
||||
GERAN IU MODE CLASSMARK CHANGE
|
||||
FREQUENCY REDEFINITION
|
||||
SYNCHRONIZATION CHANNEL INFORMATION
|
||||
COMPACT SYNCHRONIZATION CHANNEL INFORMATION
|
||||
EC-SCH INFORMATION
|
||||
RR STATUS
|
||||
GPRS SUSPENSION REQUEST
|
||||
Configuration Change messages:
|
||||
CONFIGURATION CHANGE COMMAND
|
||||
CONFIGURATION CHANGE ACKNOWLEDGE
|
||||
CONFIGURATION CHANGE REJECT
|
||||
Application messages:
|
||||
APPLICATION INFORMATION
|
||||
'''
|
||||
|
||||
class RRHeader(Envelope):
|
||||
_GEN = (
|
||||
Uint('SkipInd', val=0, bl=4),
|
||||
Uint('ProtDisc', val=6, bl=4, dic=ProtDisc_dict),
|
||||
Uint('Type', val=0, bl=8, dic=_RRC_dict),
|
||||
)
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# PAGING RESPONSE
|
||||
# TS 44.018, section 9.1.25
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
class RRPagingResponse(Envelope):
|
||||
_GEN = tuple(RRHeader(val={'Type':39})._content) + (
|
||||
Uint('spare', val=0, bl=4),
|
||||
Uint('CKSN', val=0, bl=4, dic=CKSN_dict),
|
||||
Type4LV('MSCm2', val={'V':b'@\x00\x00'}, IE=MSCm2()),
|
||||
Type4LV('ID', val={'V':b'\xf4\0\0\0\0'}, IE=ID()),
|
||||
Type1TV('AddUpdateParams', val={'T':0xC, 'V':0}, IE=AddUpdateParams(), trans=True)
|
||||
)
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# RRC dispatcher
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
RRTypeClasses = {
|
||||
39 : RRPagingResponse,
|
||||
}
|
||||
|
||||
def get_rr_msg_instances():
|
||||
return {k: RRTypeClasses[k]() for k in RRTypeClasses}
|
||||
|
Loading…
Reference in New Issue