aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-04-05 22:32:13 +0200
committerHarald Welte <laforge@gnumonks.org>2017-04-09 18:50:24 +0200
commit84c32863e5f33bf21763028414df7f35042f297b (patch)
tree3715094bb540bf092619b40e62b8c1cca87ac835
parent24ba61c0b2e648dc0bb2365f69fe452d796a66db (diff)
add converter functions between osmo_ss7 and m3ua traffic mode types
-rw-r--r--include/osmocom/sigtran/osmo_ss7.h3
-rw-r--r--include/osmocom/sigtran/protocol/m3ua.h6
-rw-r--r--src/osmo_ss7.c27
3 files changed, 36 insertions, 0 deletions
diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h
index 7918a51..d765ae0 100644
--- a/include/osmocom/sigtran/osmo_ss7.h
+++ b/include/osmocom/sigtran/osmo_ss7.h
@@ -406,3 +406,6 @@ osmo_sccp_simple_server_add_clnt(struct osmo_sccp_instance *inst,
const char *name, uint32_t pc,
int local_port, int remote_port,
const char *remote_ip);
+
+enum osmo_ss7_as_traffic_mode osmo_ss7_tmode_from_xua(uint32_t in);
+int osmo_ss7_tmode_to_xua(enum osmo_ss7_as_traffic_mode tmod);
diff --git a/include/osmocom/sigtran/protocol/m3ua.h b/include/osmocom/sigtran/protocol/m3ua.h
index d4dc1fe..c10808c 100644
--- a/include/osmocom/sigtran/protocol/m3ua.h
+++ b/include/osmocom/sigtran/protocol/m3ua.h
@@ -145,3 +145,9 @@ enum m3ua_error_code {
M3UA_ERR_INVAL_ROUT_CTX = 0x19,
M3UA_ERR_NO_CONFGD_AS_FOR_ASP = 0x1a,
};
+
+enum m3ua_traffic_mode {
+ M3UA_TMOD_OVERRIDE = 1,
+ M3UA_TMOD_LOADSHARE = 2,
+ M3UA_TMOD_BCAST = 3,
+};
diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c
index ab0636c..2dbb94d 100644
--- a/src/osmo_ss7.c
+++ b/src/osmo_ss7.c
@@ -1494,3 +1494,30 @@ int osmo_ss7_init(void)
ss7_initialized = true;
return 0;
}
+
+int osmo_ss7_tmode_to_xua(enum osmo_ss7_as_traffic_mode tmod)
+{
+ switch (tmod) {
+ case OSMO_SS7_AS_TMOD_OVERRIDE:
+ return M3UA_TMOD_OVERRIDE;
+ case OSMO_SS7_AS_TMOD_LOADSHARE:
+ return M3UA_TMOD_LOADSHARE;
+ case OSMO_SS7_AS_TMOD_BCAST:
+ return M3UA_TMOD_BCAST;
+ default:
+ return -1;
+ }
+}
+
+enum osmo_ss7_as_traffic_mode osmo_ss7_tmode_from_xua(uint32_t in)
+{
+ switch (in) {
+ case M3UA_TMOD_OVERRIDE:
+ default:
+ return OSMO_SS7_AS_TMOD_OVERRIDE;
+ case M3UA_TMOD_LOADSHARE:
+ return OSMO_SS7_AS_TMOD_LOADSHARE;
+ case M3UA_TMOD_BCAST:
+ return OSMO_SS7_AS_TMOD_BCAST;
+ }
+}