[PATCH] osmo-bsc[master]: Generate the S_L_INP_TEI_UP signal earlier.

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/.

Stefan Sperling gerrit-no-reply at lists.osmocom.org
Mon Feb 12 15:31:42 UTC 2018


Review at  https://gerrit.osmocom.org/6387

Generate the S_L_INP_TEI_UP signal earlier.

The S_L_INP_TEI_UP signal was generated when the first message from a BTS
arrives on the OML/RSL link, rather than when the OML/RSL link comes up.
Instead, generate this signal when the link is brought up, so we
intitialize state regardless of how a particular BTS behaves.

Tested with osmo-bts-virtual and virtphy/mobile programs.

Change-Id: I3b76ae6b00043e706dddc78209311e00ace85bb7
Related: OS#2719
---
M src/libbsc/bts_ipaccess_nanobts.c
1 file changed, 12 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/6387/1

diff --git a/src/libbsc/bts_ipaccess_nanobts.c b/src/libbsc/bts_ipaccess_nanobts.c
index 03bb708..e72e6a5 100644
--- a/src/libbsc/bts_ipaccess_nanobts.c
+++ b/src/libbsc/bts_ipaccess_nanobts.c
@@ -438,6 +438,11 @@
 						bts->oml_tei, 0);
 		rc = clock_gettime(CLOCK_MONOTONIC, &tp);
 		bts->uptime = (rc < 0) ? 0 : tp.tv_sec; /* we don't need sub-second precision for uptime */
+		if (!(sign_link->trx->bts->ip_access.flags & OML_UP)) {
+			e1inp_event(sign_link->ts, S_L_INP_TEI_UP,
+					sign_link->tei, sign_link->sapi);
+			sign_link->trx->bts->ip_access.flags |= OML_UP;
+		}
 		break;
 	case E1INP_SIGN_RSL: {
 		struct e1inp_ts *ts;
@@ -458,6 +463,13 @@
 				e1inp_sign_link_create(ts, E1INP_SIGN_RSL,
 						       trx, trx->rsl_tei, 0);
 		trx->rsl_link->ts->sign.delay = 0;
+		if (!(sign_link->trx->bts->ip_access.flags &
+					(RSL_UP << sign_link->trx->nr))) {
+			e1inp_event(sign_link->ts, S_L_INP_TEI_UP,
+					sign_link->tei, sign_link->sapi);
+			sign_link->trx->bts->ip_access.flags |=
+					(RSL_UP << sign_link->trx->nr);
+		}
 		break;
 	}
 	default:
@@ -486,25 +498,12 @@
 {
 	int ret = 0;
 	struct e1inp_sign_link *link = msg->dst;
-	struct e1inp_ts *e1i_ts = link->ts;
 
 	switch (link->type) {
 	case E1INP_SIGN_RSL:
-		if (!(link->trx->bts->ip_access.flags &
-					(RSL_UP << link->trx->nr))) {
-			e1inp_event(e1i_ts, S_L_INP_TEI_UP,
-					link->tei, link->sapi);
-			link->trx->bts->ip_access.flags |=
-					(RSL_UP << link->trx->nr);
-		}
 	        ret = abis_rsl_rcvmsg(msg);
 	        break;
 	case E1INP_SIGN_OML:
-		if (!(link->trx->bts->ip_access.flags & OML_UP)) {
-			e1inp_event(e1i_ts, S_L_INP_TEI_UP,
-					link->tei, link->sapi);
-			link->trx->bts->ip_access.flags |= OML_UP;
-		}
 	        ret = abis_nm_rcvmsg(msg);
 	        break;
 	default:

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3b76ae6b00043e706dddc78209311e00ace85bb7
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Stefan Sperling <ssperling at sysmocom.de>



More information about the gerrit-log mailing list