[PATCH] libosmo-sccp[master]: osmo_ss7: Add support for dynamic ASP registration

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Sun Apr 9 19:31:09 UTC 2017


Hello Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/2259

to look at the new patch set (#4).

osmo_ss7: Add support for dynamic ASP registration

if osmo_xua_server.cfg.accept_dyn_reg is set, then ASPs are permitted
to connect without having a pre-configured matching ASP definition in
the vty.  This helps particularly in cases where RKM is used for
dynamica registration of a RC (and hence AS).

Change-Id: Ie48898202acbdbfe144fdd5851dfedbb554b11aa
---
M include/osmocom/sigtran/osmo_ss7.h
M src/osmo_ss7.c
2 files changed, 25 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/59/2259/4

diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h
index 4eece3e..df85012 100644
--- a/include/osmocom/sigtran/osmo_ss7.h
+++ b/include/osmocom/sigtran/osmo_ss7.h
@@ -373,6 +373,7 @@
 	struct osmo_stream_srv_link *server;
 
 	struct {
+		bool accept_dyn_reg;
 		struct osmo_ss7_asp_peer local;
 		enum osmo_ss7_asp_protocol proto;
 	} cfg;
diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c
index 7909bfd..4d3ced1 100644
--- a/src/osmo_ss7.c
+++ b/src/osmo_ss7.c
@@ -1345,15 +1345,31 @@
 	}
 
 	asp = osmo_ss7_asp_find_by_socket_addr(fd);
-	if (!asp) {
-		LOGP(DLSS7, LOGL_NOTICE, "%s: SCTP connection without matching "
-		     "ASP definition, terminating\n", sock_name);
-		osmo_stream_srv_destroy(srv);
-		talloc_free(sock_name);
-		return -1;
+	if (asp) {
+		LOGP(DLSS7, LOGL_INFO, "%s: matched connection to ASP %s\n",
+			sock_name, asp->cfg.name);
+	} else {
+		if (!oxs->cfg.accept_dyn_reg) {
+			LOGP(DLSS7, LOGL_NOTICE, "%s: SCTP connection without matching "
+			     "ASP definition and no dynamic registration enabled, terminating\n",
+			     sock_name);
+		} else {
+			char namebuf[32];
+			static uint32_t dyn_asp_num = 0;
+			snprintf(namebuf, sizeof(namebuf), "asp-dyn-%u", dyn_asp_num++);
+			asp = osmo_ss7_asp_find_or_create(oxs->inst, NULL, 0, 0,
+							  OSMO_SS7_ASP_PROT_M3UA);
+			if (asp)
+				LOGP(DLSS7, LOGL_INFO, "%s: created dynamicASP %s\n",
+					sock_name, asp->cfg.name);
+		}
+		if (!asp) {
+			osmo_stream_srv_destroy(srv);
+			talloc_free(sock_name);
+			return -1;
+		}
 	}
-	LOGP(DLSS7, LOGL_INFO, "%s: matched connection to ASP %s\n",
-		sock_name, asp->cfg.name);
+
 	/* update the ASP reference back to the server over which the
 	 * connection came in */
 	asp->server = srv;

-- 
To view, visit https://gerrit.osmocom.org/2259
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie48898202acbdbfe144fdd5851dfedbb554b11aa
Gerrit-PatchSet: 4
Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list