diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/osmocom/sgsn/gprs_bssgp.h | 3 | ||||
-rw-r--r-- | include/osmocom/sgsn/gprs_gmm.h | 5 | ||||
-rw-r--r-- | include/osmocom/sgsn/gprs_mm_state_iu_fsm.h | 1 | ||||
-rw-r--r-- | include/osmocom/sgsn/gprs_sndcp.h | 2 | ||||
-rw-r--r-- | include/osmocom/sgsn/gtp.h | 3 | ||||
-rw-r--r-- | include/osmocom/sgsn/mmctx.h | 9 | ||||
-rw-r--r-- | include/osmocom/sgsn/pdpctx.h | 4 | ||||
-rw-r--r-- | include/osmocom/sgsn/sgsn.h | 2 |
8 files changed, 19 insertions, 10 deletions
diff --git a/include/osmocom/sgsn/gprs_bssgp.h b/include/osmocom/sgsn/gprs_bssgp.h index 0feaa9762..abfe9f197 100644 --- a/include/osmocom/sgsn/gprs_bssgp.h +++ b/include/osmocom/sgsn/gprs_bssgp.h @@ -2,6 +2,9 @@ #include <osmocom/core/msgb.h> +struct osmo_prim_hdr; +struct sgsn_mm_ctx; + /* Called by bssgp layer when a prim is received from lower layers. */ int sgsn_bssgp_rx_prim(struct osmo_prim_hdr *oph); diff --git a/include/osmocom/sgsn/gprs_gmm.h b/include/osmocom/sgsn/gprs_gmm.h index 71dd1fa7f..6fca77e05 100644 --- a/include/osmocom/sgsn/gprs_gmm.h +++ b/include/osmocom/sgsn/gprs_gmm.h @@ -9,6 +9,7 @@ struct sgsn_mm_ctx; struct gprs_llc_llme; +struct osmo_routing_area_id; int gsm48_tx_gmm_auth_ciph_req(struct sgsn_mm_ctx *mm, const struct osmo_auth_vector *vec, @@ -28,8 +29,8 @@ void gsm0408_gprs_access_denied(struct sgsn_mm_ctx *mmctx, int gmm_cause); void gsm0408_gprs_access_cancelled(struct sgsn_mm_ctx *mmctx, int gmm_cause); void gsm0408_gprs_authenticate(struct sgsn_mm_ctx *mmctx); -int gprs_gmm_rx_suspend(struct gprs_ra_id *raid, uint32_t tlli); -int gprs_gmm_rx_resume(struct gprs_ra_id *raid, uint32_t tlli, +int gprs_gmm_rx_suspend(struct osmo_routing_area_id *raid, uint32_t tlli); +int gprs_gmm_rx_resume(struct osmo_routing_area_id *raid, uint32_t tlli, uint8_t suspend_ref); int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme, diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 6dae759b0..1d0333c98 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -17,6 +17,7 @@ enum mm_state_iu_fsm_events { E_PMM_PS_CONN_RELEASE, E_PMM_PS_CONN_ESTABLISH, E_PMM_RA_UPDATE, /* = Serving RNC relocation */ + E_PMM_RX_GGSN_GTPU_DT_EI, /* param: struct sgsn_pdp_ctx *pctx */ }; extern struct osmo_fsm mm_state_iu_fsm; diff --git a/include/osmocom/sgsn/gprs_sndcp.h b/include/osmocom/sgsn/gprs_sndcp.h index 30ea05308..058cb2952 100644 --- a/include/osmocom/sgsn/gprs_sndcp.h +++ b/include/osmocom/sgsn/gprs_sndcp.h @@ -47,7 +47,7 @@ struct gprs_sndcp_entity { struct llist_head list; /* FIXME: move this RA_ID up to the LLME or even higher */ - struct gprs_ra_id ra_id; + struct osmo_routing_area_id ra_id; /* reference to the LLC Entity below this SNDCP entity */ struct gprs_llc_lle *lle; /* The NSAPI we shall use on top of LLC */ diff --git a/include/osmocom/sgsn/gtp.h b/include/osmocom/sgsn/gtp.h index 2aec55333..ed6cbf508 100644 --- a/include/osmocom/sgsn/gtp.h +++ b/include/osmocom/sgsn/gtp.h @@ -23,8 +23,7 @@ struct sgsn_pdp_ctx *sgsn_create_pdp_ctx(struct sgsn_ggsn_ctx *ggsn, uint16_t nsapi, struct tlv_parsed *tp); -int sgsn_gtp_data_req(struct gprs_ra_id *ra_id, int32_t tlli, uint8_t nsapi, +int sgsn_gtp_data_req(struct osmo_routing_area_id *ra_id, int32_t tlli, uint8_t nsapi, struct msgb *msg, uint32_t npdu_len, uint8_t *npdu); int sgsn_delete_pdp_ctx(struct sgsn_pdp_ctx *pctx); -void sgsn_pdp_upd_gtp_u(struct sgsn_pdp_ctx *pdp, void *addr, size_t alen); int send_act_pdp_cont_acc(struct sgsn_pdp_ctx *pctx); diff --git a/include/osmocom/sgsn/mmctx.h b/include/osmocom/sgsn/mmctx.h index c19f599c5..03bb8452e 100644 --- a/include/osmocom/sgsn/mmctx.h +++ b/include/osmocom/sgsn/mmctx.h @@ -105,7 +105,7 @@ struct sgsn_mm_ctx { char imei[GSM23003_IMEISV_NUM_DIGITS+1]; /* Opt: Software Version Numbber / TS 23.195 */ char msisdn[GSM_EXTENSION_LENGTH]; - struct gprs_ra_id ra; + struct osmo_routing_area_id ra; struct { uint16_t cell_id; /* Gb only */ uint32_t cell_id_age; /* Gb only */ @@ -253,18 +253,19 @@ static inline bool sgsn_mm_ctx_is_authenticated(struct sgsn_mm_ctx *ctx) /* look-up a SGSN MM context based on TLLI + RAI */ struct sgsn_mm_ctx *sgsn_mm_ctx_by_tlli(uint32_t tlli, - const struct gprs_ra_id *raid); + const struct osmo_routing_area_id *raid); struct sgsn_mm_ctx *sgsn_mm_ctx_by_ptmsi(uint32_t tmsi); struct sgsn_mm_ctx *sgsn_mm_ctx_by_imsi(const char *imsi); struct sgsn_mm_ctx *sgsn_mm_ctx_by_ue_ctx(const void *uectx); +struct sgsn_mm_ctx *sgsn_mm_ctx_by_llme(const struct gprs_llc_llme *llme); /* look-up by matching TLLI and P-TMSI (think twice before using this) */ struct sgsn_mm_ctx *sgsn_mm_ctx_by_tlli_and_ptmsi(uint32_t tlli, - const struct gprs_ra_id *raid); + const struct osmo_routing_area_id *raid); /* Allocate a new SGSN MM context */ struct sgsn_mm_ctx *sgsn_mm_ctx_alloc_gb(uint32_t tlli, - const struct gprs_ra_id *raid); + const struct osmo_routing_area_id *raid); struct sgsn_mm_ctx *sgsn_mm_ctx_alloc_iu(void *uectx); void sgsn_mm_ctx_cleanup_free(struct sgsn_mm_ctx *ctx); diff --git a/include/osmocom/sgsn/pdpctx.h b/include/osmocom/sgsn/pdpctx.h index 255a77d3f..39d744a1d 100644 --- a/include/osmocom/sgsn/pdpctx.h +++ b/include/osmocom/sgsn/pdpctx.h @@ -68,6 +68,10 @@ struct sgsn_pdp_ctx { //uint32_t qos_profile_neg; uint8_t radio_prio; //uint32_t charging_id; + bool ue_pdp_active; /* PDP Context is active for this NSAPI? */ + /* Keeps original SGSN local TEID when lib->teid_own is updated with + * RNC's TEID upon use of Direct Tunnel feature: */ + uint32_t sgsn_teid_own; struct osmo_timer_list timer; unsigned int T; /* Txxxx number */ diff --git a/include/osmocom/sgsn/sgsn.h b/include/osmocom/sgsn/sgsn.h index 6e93178af..9e091845c 100644 --- a/include/osmocom/sgsn/sgsn.h +++ b/include/osmocom/sgsn/sgsn.h @@ -21,7 +21,7 @@ #endif #include <ares.h> -#include <gtp.h> +#include <osmocom/gtp/gtp.h> struct hostent; |