aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2016-03-16 10:35:09 +0100
committerDaniel Willmann <dwillmann@sysmocom.de>2016-03-16 10:35:09 +0100
commitd04db9d90758d2abd572336942fd7e9246d41a22 (patch)
tree7b2a69c4dffa49b26f4c40db5f2430bda1a1f280 /openbsc/include
parent3c94c2c5975774282e49d2d9a1d2041b01c8378e (diff)
libiu: Replace RAB assignment response callback with a general one
The new iu event callback will now be called for RAB assignment response, IU release and security mode complete
Diffstat (limited to 'openbsc/include')
-rw-r--r--openbsc/include/openbsc/iu.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/openbsc/include/openbsc/iu.h b/openbsc/include/openbsc/iu.h
index d85d9a871..4d35b2076 100644
--- a/openbsc/include/openbsc/iu.h
+++ b/openbsc/include/openbsc/iu.h
@@ -12,19 +12,28 @@ struct ue_conn_ctx {
uint32_t conn_id;
};
+enum iu_event_type {
+ IU_EVENT_RAB_ASSIGN,
+ IU_EVENT_IU_RELEASE,
+ IU_EVENT_SECURITY_MODE_COMPLETE,
+};
+
/* Implementations of iu_recv_cb_t shall find the ue_conn_ctx in msg->dst. */
typedef int (* iu_recv_cb_t )(struct msgb *msg, struct gprs_ra_id *ra_id,
/* TODO is ra_id only used for gprs? ^ */
uint16_t *sai);
+typedef int (* iu_event_cb_t )(struct ue_conn_ctx *ue_ctx, enum iu_event_type type,
+ void *data);
+
typedef int (* iu_rab_ass_resp_cb_t )(struct ue_conn_ctx *ue_ctx, uint8_t rab_id,
struct RANAP_RAB_SetupOrModifiedItemIEs_s *setup_ies);
int iu_init(void *ctx, const char *listen_addr, uint16_t listen_port,
- iu_recv_cb_t iu_recv_cb, iu_rab_ass_resp_cb_t ui_rab_ass_resp_cb);
+ iu_recv_cb_t iu_recv_cb, iu_event_cb_t iu_event_cb);
int iu_tx(struct msgb *msg, uint8_t sapi);
int iu_rab_act_cs(struct ue_conn_ctx *ue_ctx, uint32_t rtp_ip, uint16_t rtp_port);
-int iu_rab_act_ps(struct sgsn_pdp_ctx *pdp);
+int iu_rab_act_ps(uint8_t rab_id, struct sgsn_pdp_ctx *pdp);
int iu_rab_deact(struct ue_conn_ctx *ue_ctx, uint8_t rab_id);