Skip to content

CAGInfo in TS24501_IE might not correspond to specification #45

@MartinWho2

Description

@MartinWho2

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.

Image
Definition of CAG Information IE

Image
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

  1. The first version of CAGInfo needs to be changed to the second one, and
  2. 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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions