aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-04-10 22:34:20 +0200
committerHarald Welte <laforge@gnumonks.org>2017-04-11 23:27:05 +0200
commit47d05fae4f7ffa2b9a680b52a96bff15d1d16df0 (patch)
treec3158c748c6267f05e8e9aa7526ff99aa9ac2221 /include
parent282d1c2ffa7403d1238c308401d66dcd271f761f (diff)
osmo_ss7: Allocate local routing key ID and use it as lookup key for AS
In M3UA RKM we need a "Local Routing Key ID" which uniquely identifies a given routing key locally at the node. Allocate this value and store it in each osmo_ss7_as, as well as add a lookup function for it. Change-Id: I89a0abcf66228ce092126a497cc7971df3a6af71
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/sigtran/osmo_ss7.h3
-rw-r--r--include/osmocom/sigtran/sigtran_sap.h11
2 files changed, 14 insertions, 0 deletions
diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h
index bb151d1..5becc0e 100644
--- a/include/osmocom/sigtran/osmo_ss7.h
+++ b/include/osmocom/sigtran/osmo_ss7.h
@@ -225,6 +225,7 @@ void osmo_ss7_route_destroy(struct osmo_ss7_route *rt);
struct osmo_ss7_routing_key {
uint32_t context;
+ uint32_t l_rk_id;
uint32_t pc;
uint8_t si;
@@ -291,6 +292,8 @@ osmo_ss7_as_find_by_name(struct osmo_ss7_instance *inst, const char *name);
struct osmo_ss7_as *
osmo_ss7_as_find_by_rctx(struct osmo_ss7_instance *inst, uint32_t rctx);
struct osmo_ss7_as *
+osmo_ss7_as_find_by_l_rk_id(struct osmo_ss7_instance *inst, uint32_t l_rk_id);
+struct osmo_ss7_as *
osmo_ss7_as_find_or_create(struct osmo_ss7_instance *inst, const char *name,
enum osmo_ss7_asp_protocol proto);
int osmo_ss7_as_add_asp(struct osmo_ss7_as *as, const char *asp_name);
diff --git a/include/osmocom/sigtran/sigtran_sap.h b/include/osmocom/sigtran/sigtran_sap.h
index d18aa3d..80cfefc 100644
--- a/include/osmocom/sigtran/sigtran_sap.h
+++ b/include/osmocom/sigtran/sigtran_sap.h
@@ -1,5 +1,6 @@
#pragma once
#include <osmocom/core/prim.h>
+#include <osmocom/sigtran/osmo_ss7.h>
enum osmo_sigtran_sap {
@@ -46,6 +47,16 @@ struct osmo_xlm_prim_error {
uint32_t code;
};
+struct osmo_xlm_prim_rk_reg {
+ /* routing key */
+ struct osmo_ss7_routing_key key;
+ enum osmo_ss7_as_traffic_mode traf_mode;
+};
+
+struct osmo_xlm_prim_rk_dereg {
+ uint32_t route_ctx;
+};
+
struct osmo_xlm_prim {
struct osmo_prim_hdr oph;
union {