Add a context mapper to map RUA ContextIDs <-> SUA Connection IDs
diff --git a/src/context_map.h b/src/context_map.h
new file mode 100644
index 0000000..c1a4495
--- /dev/null
+++ b/src/context_map.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include <stdint.h>
+#include <osmocom/core/linuxlist.h>
+
+enum hnbgw_context_map_state {
+	MAP_S_NULL,
+	MAP_S_ACTIVE,		/* currently active map */
+	MAP_S_RESERVED1,	/* just disconnected, still resrved */
+	MAP_S_RESERVED2,	/* still reserved */
+};
+
+struct hnb_context;
+struct hnbgw_cnlink;
+
+struct hnbgw_context_map {
+	/* entry in the per-CN list of mappings */
+	struct llist_head cn_list;
+	/* entry in the per-HNB list of mappings */
+	struct llist_head hnb_list;
+	/* pointer to HNB */
+	struct hnb_context *hnb_ctx;
+	/* pointer to CN */
+	struct hnbgw_cnlink *cn_link;
+	/* RUA contxt ID */
+	uint32_t rua_ctx_id;
+	/* SCCP User SAP connection ID */
+	uint32_t scu_conn_id;
+
+	enum hnbgw_context_map_state state;
+};
+
+
+struct hnbgw_context_map *
+context_map_alloc_by_hnb(struct hnb_context *hnb, uint32_t rua_ctx_id,
+			 struct hnbgw_cnlink *cn_if_new);
+
+struct hnbgw_context_map *
+context_map_by_cn(struct hnbgw_cnlink *cn, uint32_t scu_conn_id);
+
+void context_map_deactivate(struct hnbgw_context_map *map);
+
+int context_map_init(struct hnb_gw *gw);