The bitmasks are 0xbf according to ETSI 3GPP TS 100 940 chapter 10.4 --- include/osmocom/gsm/protocol/gsm_04_08.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index 9fcdddc..43571b9 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -820,6 +820,7 @@ struct gsm48_rr_status { #define GSM48_MT_RR_APP_INFO 0x38
/* Table 10.2/3GPP TS 04.08 */ +#define GSM48_MT_MM_MSG_TYPE_MASK 0xbf #define GSM48_MT_MM_IMSI_DETACH_IND 0x01 #define GSM48_MT_MM_LOC_UPD_ACCEPT 0x02 #define GSM48_MT_MM_LOC_UPD_REJECT 0x04 @@ -846,6 +847,7 @@ struct gsm48_rr_status { #define GSM48_MT_MM_INFO 0x32
/* Table 10.3/3GPP TS 04.08 */ +#define GSM48_MT_CC_MSG_TYPE_MASK 0xbf #define GSM48_MT_CC_ALERTING 0x01 #define GSM48_MT_CC_CALL_CONF 0x08 #define GSM48_MT_CC_CALL_PROC 0x02
Though ETSI 3GPP TS 100 940 chapter 10.4 defines the message bitmask to be 0xbf, the message types observed in the field need a bitmask of 0x3f instead.
Our 3G UE as well as the wireshark bisector for MM messages both agree that the upper bits (bit 8 and 7 == 0xc0) are used as sequence number. --- include/osmocom/gsm/protocol/gsm_04_08.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index 43571b9..2a6f348 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -820,7 +820,7 @@ struct gsm48_rr_status { #define GSM48_MT_RR_APP_INFO 0x38
/* Table 10.2/3GPP TS 04.08 */ -#define GSM48_MT_MM_MSG_TYPE_MASK 0xbf +#define GSM48_MT_MM_MSG_TYPE_MASK 0x3f #define GSM48_MT_MM_IMSI_DETACH_IND 0x01 #define GSM48_MT_MM_LOC_UPD_ACCEPT 0x02 #define GSM48_MT_MM_LOC_UPD_REJECT 0x04