WIP: add check-imei to GSUP-types

Change-Id: Ie1ae5c66ad3f9b42b345020de62a0c276cd8d709
This commit is contained in:
Oliver Smith 2019-02-22 15:02:48 +01:00
parent b1b853a8ec
commit 19ba7fa2ac
1 changed files with 55 additions and 3 deletions

View File

@ -52,7 +52,10 @@ type enumerated GSUP_IEI {
OSMO_GSUP_SM_RP_UI_IE ('43'O),
OSMO_GSUP_SM_RP_CAUSE_IE ('44'O),
OSMO_GSUP_SM_RP_MMS_IE ('45'O),
OSMO_GSUP_SM_ALERT_RSN_IE ('46'O)
OSMO_GSUP_SM_ALERT_RSN_IE ('46'O),
OSMO_GSUP_IMEI_IE ('50'O),
OSMO_GSUP_IMEI_RESULT_IE ('51'O)
} with { variant "FIELDLENGTH(8)" };
type enumerated GSUP_MessageType {
@ -96,7 +99,11 @@ type enumerated GSUP_MessageType {
OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST ('00101100'B),
OSMO_GSUP_MSGT_READY_FOR_SM_ERROR ('00101101'B),
OSMO_GSUP_MSGT_READY_FOR_SM_RESULT ('00101110'B)
OSMO_GSUP_MSGT_READY_FOR_SM_RESULT ('00101110'B),
OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST ('00110000'B),
OSMO_GSUP_MSGT_CHECK_IMEI_ERROR ('00110001'B),
OSMO_GSUP_MSGT_CHECK_IMEI_RESULT ('00110010'B)
} with { variant "FIELDLENGTH(8)" };
type enumerated GSUP_CancelType {
@ -109,6 +116,11 @@ type enumerated GSUP_CnDomain {
OSMO_GSUP_CN_DOMAIN_CS (2)
} with { variant "FIELDLENGTH(8)" };
type enumerated GSUP_IMEIResult {
OSMO_GSUP_IMEI_RESULT_ACK (0),
OSMO_GSUP_IMEI_RESULT_NACK (1)
} with { variant "FIELDLENGTH(8)" };
type enumerated GSUP_SessionState {
OSMO_GSUP_SESSION_STATE_NONE (0),
OSMO_GSUP_SESSION_STATE_BEGIN (1),
@ -121,6 +133,11 @@ type record GSUP_MSISDN {
hexstring digits optional
} with { variant (len) "LENGTHTO(digits)" };
type record GSUP_IMEI {
uint8_t len,
hexstring digits optional
} with { variant (len) "LENGTHTO(digits)" };
type record GSUP_IE {
GSUP_IEI tag,
uint8_t len,
@ -156,6 +173,8 @@ type record GSUP_IE {
sm_rp_cause, tag = OSMO_GSUP_SM_RP_CAUSE_IE;
sm_rp_mms, tag = OSMO_GSUP_SM_RP_MMS_IE;
sm_alert_rsn, tag = OSMO_GSUP_SM_ALERT_RSN_IE;
imei, tag = OSMO_GSUP_IMEI_IE;
imei_result, tag = OSMO_GSUP_IMEI_RESULT_IE;
)"
};
@ -197,7 +216,10 @@ type union GSUP_IeValue {
octetstring sm_rp_ui,
OCT1 sm_rp_cause,
OCT1 sm_rp_mms,
GSUP_SM_ALERT_RSN_Type sm_alert_rsn
GSUP_SM_ALERT_RSN_Type sm_alert_rsn,
GSUP_IMEI imei,
GSUP_IMEIResult imei_result
};
type record GSUP_PDU {
@ -674,6 +696,36 @@ template GSUP_IE tr_GSUP_IE_SM_RP_MMS(template OCT1 mms) := {
}
}
template (value) GSUP_IE ts_GSUP_IE_IMEI_IE(GSUP_IMEI imei) := {
tag := OSMO_GSUP_IMEI_IE,
len := 0, /* overwritten */
val := {
imei := imei
}
}
template GSUP_IE tr_GSUP_IE_IMEI_IE(template GSUP_IMEI imei) := {
tag := OSMO_GSUP_IMEI_IE,
len := ?,
val := {
imei := imei
}
}
template (value) GSUP_IE ts_GSUP_IE_IMEI_RESULT_IE(GSUP_IMEIResult result) := {
tag := OSMO_GSUP_IMEI_RESULT_IE,
len := 0, /* overwritten */
val := {
imei_result := result
}
}
template GSUP_IE tr_GSUP_IE_IMEI_RESULT_IE(template GSUP_IMEIResult result) := {
tag := OSMO_GSUP_IMEI_RESULT_IE,
len := ?,
val := {
imei_result := result
}
}
/* Possible identity types for SM-RP-{OA|DA} IEs */
type enumerated GSUP_SM_RP_ODA_IdType {
OSMO_GSUP_SM_RP_ODA_ID_NONE ('00'O),