pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-bts/+/34440?usp=email )


Change subject: oml: Store RSL connect related fields in bb_transc
......................................................................

oml: Store RSL connect related fields in bb_transc

This is a preparation commit towards delaying connection of RSL tcp
socket until the BBTRANSC object is OPSTARTed, as it is the case already
in nanoBTS.

Related: OS#5253
Change-Id: Ia571ec19e9e8f8a6d7c2554642aab0afe1b4b917
---
M include/osmo-bts/bts_trx.h
M src/common/abis.c
M src/common/oml.c
M src/common/vty.c
4 files changed, 32 insertions(+), 7 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/40/34440/1

diff --git a/include/osmo-bts/bts_trx.h b/include/osmo-bts/bts_trx.h
index 72522eb..3ea017e 100644
--- a/include/osmo-bts/bts_trx.h
+++ b/include/osmo-bts/bts_trx.h
@@ -1,9 +1,15 @@
 #pragma once

+#include <osmocom/core/sockaddr_str.h>
 #include <osmo-bts/gsm_data.h>

 struct gsm_bts_bb_trx {
        struct gsm_abis_mo mo;
+       /* how do we talk RSL with this TRX? */
+       struct {
+               struct osmo_sockaddr_str rem_addrstr;
+               uint8_t tei;
+       } rsl;
 };

 /* One TRX in a BTS */
@@ -17,7 +23,6 @@
        /* human readable name / description */
        char *description;
        /* how do we talk RSL with this TRX? */
-       uint8_t rsl_tei;
        struct e1inp_sign_link *rsl_link;
 
        /* NM Radio Carrier and Baseband Transciever */
diff --git a/src/common/abis.c b/src/common/abis.c
index 10eeaff..9677c1f 100644
--- a/src/common/abis.c
+++ b/src/common/abis.c
@@ -405,7 +405,7 @@
                }
                e1inp_ts_config_sign(sign_ts, line);
                trx->rsl_link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_RSL,
-                                                      trx, trx->rsl_tei, 0);
+                                                      trx, 
trx->bb_transc.rsl.tei, 0);
                trx_link_estab(trx);
                return trx->rsl_link;
        }
diff --git a/src/common/oml.c b/src/common/oml.c
index 4380258..d347388 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -1534,6 +1534,7 @@
        struct e1inp_sign_link *oml_link = bts->oml_link;
        const struct abis_om_fom_hdr *foh = msgb_l3(msg);
        struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr);
+       struct gsm_bts_bb_trx *bb_transc;
        const char *trx_name;
        struct in_addr in;
        uint16_t port = IPA_TCP_PORT_RSL;
@@ -1547,6 +1548,7 @@

        if (TLVP_PRESENT(tp, NM_ATT_IPACC_DST_IP_PORT))
                port = ntohs(tlvp_val16_unal(tp, NM_ATT_IPACC_DST_IP_PORT));
+
        if (TLVP_PRESENT(tp, NM_ATT_IPACC_STREAM_ID))
                stream_id = *TLVP_VAL(tp, NM_ATT_IPACC_STREAM_ID);

@@ -1557,17 +1559,21 @@
                goto tx_ack_nack;
        }

-       trx_name = gsm_trx_name(trx);
+       bb_transc = &trx->bb_transc;
+       osmo_sockaddr_str_from_in_addr(&bb_transc->rsl.rem_addrstr, &in, port);
+       bb_transc->rsl.tei = stream_id;

+       trx_name = gsm_trx_name(trx);
        LOGP(DOML, LOGL_INFO, "%s: Rx IPA RSL CONNECT IP=%s PORT=%u 
STREAM=0x%02x\n",
-            trx_name, inet_ntoa(in), port, stream_id);
+            trx_name, bb_transc->rsl.rem_addrstr.ip, 
bb_transc->rsl.rem_addrstr.port,
+            bb_transc->rsl.tei);

        if (bts->variant == BTS_OSMO_OMLDUMMY) {
                rc = 0;
                LOGP(DOML, LOGL_NOTICE, "%s: Not connecting RSL in 
OML-DUMMY!\n", trx_name);
        } else {
-               trx->rsl_tei = stream_id;
-               rc = e1inp_ipa_bts_rsl_connect_n(oml_link->ts->line, 
inet_ntoa(in), port, trx->nr);
+               rc = e1inp_ipa_bts_rsl_connect_n(oml_link->ts->line, 
bb_transc->rsl.rem_addrstr.ip,
+                                                
bb_transc->rsl.rem_addrstr.port, trx->nr);
                if (rc < 0) {
                        LOGP(DOML, LOGL_NOTICE, "%s: Error connecting IPA RSL: 
%d\n", trx_name, rc);
                        rc = NM_NACK_CANT_PERFORM;
diff --git a/src/common/vty.c b/src/common/vty.c
index 31104c2..47e0ecd 100644
--- a/src/common/vty.c
+++ b/src/common/vty.c
@@ -1662,7 +1662,7 @@
        vty_out(vty, "  RSL State: %s%s", trx->rsl_link? "connected" : 
"disconnected", VTY_NEWLINE);
        vty_out(vty, "  Baseband Transceiver NM State: ");
        net_dump_nmstate(vty, &trx->bb_transc.mo.nm_state);
-       vty_out(vty, "  IPA stream ID: 0x%02x%s", trx->rsl_tei, VTY_NEWLINE);
+       vty_out(vty, "  IPA stream ID: 0x%02x%s", trx->bb_transc.rsl.tei, 
VTY_NEWLINE);
 }

 static inline void print_all_trx(struct vty *vty, const struct gsm_bts *bts)

--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/34440?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Ia571ec19e9e8f8a6d7c2554642aab0afe1b4b917
Gerrit-Change-Number: 34440
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-MessageType: newchange

Reply via email to