-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Hello,
It appears that the class "CAGInfo" is defined twice in pycrate_mobile/TS24501_IE.py (l.1594 and 2744).
Additionally, based on the specification (TS 24.501 v19.2.0), it seems that the structure of these classes do not match the annotations provided for each.
In the current version of Pycrate, CAGInfo is defined twice as shown below.
According to the annotations, the first definition is used for the CAGInfoList and the second is for the ExtCAGInfoList.
class CAGInfo(Envelope):
_GEN = (
Uint8('Len'),
PLMN(),
Array('CAGIDList', GEN=Uint32('CAGID', rep=REPR_HEX))
)
class CAGInfo(Envelope):
_GEN = (
Uint8('Len'),
PLMN(),
Uint('spare', bl=7, rep=REPR_HEX),
Uint('CAGOnly', val=0, bl=1, dic={
0 : 'UE allowed to access 5GS via non-CAG cells',
1 : 'UE not allowed to access 5GS via non-CAG cells'}),
Array('CAGIDList', GEN=Uint32('CAGID', rep=REPR_HEX))
)
However, according to TS 24.501, the second structure corresponds to the CAG Information IE (9.11.3.18A, p.949), not the Extended CAG Information IE.
This does not align with the current annotation.
Additionally, the Extended CAG Information (9.11.3.86) IE appears to be missing in the codebase.
Definition of CAG Information IE
Definition of Extended CAG Information IE
Unless I misunderstood something, it seems both structures used for CAGInfoList and ExtCAGInfoList (also their annotations) do not correctly reflect the specification, and may require updates.
To align with the standard, I think
- The first version of CAGInfo needs to be changed to the second one, and
- The second version of CAGInfo needs to be mostly rewritten according to 9.11.3.86 ( additional structures also need to be created) and needs to be renamed so that classes don't collide