diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2018-05-22 18:29:14 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-09-13 13:51:37 +0000 |
commit | f7198d7dbb84d038a82eec5ad0b86f7f29ca411e (patch) | |
tree | ba6bdf8dbe9055009459ba28c900c98b5590656f /include/osmocom/sgsn/gprs_sgsn.h | |
parent | 941ee147f92b6064b5e5feff166ecfb97cea85b1 (diff) |
gprs_gmm: introduce a GMM Attach Request FSM
The old GMM Attach Request handling used a recursive function
which can not handle certain states and is quite complex and hard to
extend.
The new FSM handles such request in a FSM and can be called multiple
times.
Change-Id: I58b9c17be9776a03bb2a5b21e99135cfefc8c912
Diffstat (limited to 'include/osmocom/sgsn/gprs_sgsn.h')
-rw-r--r-- | include/osmocom/sgsn/gprs_sgsn.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h index 6f16dc75f..a5ca959a4 100644 --- a/include/osmocom/sgsn/gprs_sgsn.h +++ b/include/osmocom/sgsn/gprs_sgsn.h @@ -4,6 +4,7 @@ #include <stdint.h> #include <netinet/in.h> +#include <osmocom/core/fsm.h> #include <osmocom/core/timer.h> #include <osmocom/gsm/gsm48.h> @@ -168,6 +169,15 @@ struct sgsn_mm_ctx { struct ranap_ue_conn_ctx *ue_ctx; struct service_info service; } iu; + struct { + struct osmo_fsm_inst *fsm; + + /* when a second attach req arrives while in this procedure, + * the fsm needs to compare it against old to decide what to do */ + struct msgb *attach_req; + uint32_t id_type; + bool auth_reattempt; + } gmm_att_req; /* VLR number */ uint32_t new_sgsn_addr; /* Authentication Triplet */ |