code being sacrificed in the course of the OmsoNITB split-up

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/OpenBSC@lists.osmocom.org/.

Neels Hofmeyr nhofmeyr at sysmocom.de
Thu Jul 20 22:47:35 UTC 2017


Some code that is disabled to be able to compile libmsc without libbsc is
related to communication to the BTS, that is replaced by the new A-interface.
However, the following bits are not; Any opinions about what to do with it:


- Report on which ARFCN and timeslot a silent call has occured.
  I would simply drop the ARFCN and timeslot information, saying "silent call
  successful". (same in two log messages)

static int scall_cbfn(unsigned int subsys, unsigned int signal,
                        void *handler_data, void *signal_data)
{
        struct scall_signal_data *sigdata = signal_data;
        struct vty *vty = sigdata->data;

        switch (signal) {
        case S_SCALL_SUCCESS:
                vty_out(vty, "%% silent call on ARFCN %u timeslot %u%s",
                        sigdata->conn->lchan->ts->trx->arfcn, sigdata->conn->lchan->ts->nr,
                        VTY_NEWLINE);
                break;
        case S_SCALL_EXPIRED:
                vty_out(vty, "%% silent call expired paging%s", VTY_NEWLINE);
                break;
        }
        return 0;
}


- Add Osmocom specific TLVs to SMPP

/* Append the Osmocom vendor-specific additional TLVs to a SMPP msg */
static void append_osmo_tlvs(tlv_t **req_tlv, const struct gsm_lchan *lchan)
{
        int idx = calc_initial_idx(ARRAY_SIZE(lchan->meas_rep),
                                   lchan->meas_rep_idx, 1);
        const struct gsm_meas_rep *mr = &lchan->meas_rep[idx];
        const struct gsm_meas_rep_unidir *ul_meas = &mr->ul;
        const struct gsm_meas_rep_unidir *dl_meas = &mr->dl;

        /* Osmocom vendor-specific SMPP34 extensions */
        append_tlv_u16(req_tlv, TLVID_osmo_arfcn, lchan->ts->trx->arfcn);
        if (mr->flags & MEAS_REP_F_MS_L1) {
                uint8_t ms_dbm;
                append_tlv_u8(req_tlv, TLVID_osmo_ta, mr->ms_l1.ta);
                ms_dbm = ms_pwr_dbm(lchan->ts->trx->bts->band, mr->ms_l1.pwr);
                append_tlv_u8(req_tlv, TLVID_osmo_ms_l1_txpwr, ms_dbm);
        } else if (mr->flags & MEAS_REP_F_MS_TO) /* Save Timing Offset field = MS Timing Offset + 63 */
                append_tlv_u8(req_tlv, TLVID_osmo_ta, mr->ms_timing_offset + 63);

        append_tlv_u16(req_tlv, TLVID_osmo_rxlev_ul,
                       rxlev2dbm(ul_meas->full.rx_lev));
        append_tlv_u8(req_tlv, TLVID_osmo_rxqual_ul, ul_meas->full.rx_qual);

        if (mr->flags & MEAS_REP_F_DL_VALID) {
                append_tlv_u16(req_tlv, TLVID_osmo_rxlev_dl,
                               rxlev2dbm(dl_meas->full.rx_lev));
                append_tlv_u8(req_tlv, TLVID_osmo_rxqual_dl,
                              dl_meas->full.rx_qual);
        }

        if (lchan->conn && lchan->conn->vsub) {
                struct vlr_subscr *vsub = lchan->conn->vsub;
                size_t imei_len = strlen(vsub->imei);
                if (imei_len)
                        append_tlv(req_tlv, TLVID_osmo_imei,
                                   (uint8_t *)vsub->imei, imei_len+1);
        }
}

deliver_to_esme() {
[...]
        if (esme->acl && esme->acl->osmocom_ext && conn->lchan)
                append_osmo_tlvs(&deliver.tlv, conn->lchan);
[...]
}


- Siemens BS11 MRPCI

        /* see mail on openbsc@ 9 Feb 2016 22:30:15 +0100
         * We need to hook sending of MRPCI to Siemens BS11 somewhere else */
        if (is_siemens_bts(conn->bts))
                send_siemens_mrpci(msg->lchan, classmark2-1);


- Debug log: report bts - trx - ts - ti in mncc_rcvmsg()
  (No BTS information available in OsmoMSC anymore)


- In gsm48_cc_rx_setup(), populate struct gsm_mncc setup with lchan type.
  (lchan information is no longer available in OsmoMSC)


- In libmsc, gsm_04_08.c, we connect libbsc handle_abisip_signal(); the same is
  done in osmo_bsc_audio.c in osmo_bsc_audio_init(), so I assume it can be
  dropped from libmsc.

/*
 * This will be run by the linker when loading the DSO. We use it to
 * do system initialization, e.g. registration of signal handlers.
 */
static __attribute__((constructor)) void on_dso_load_0408(void)
{
        osmo_signal_register_handler(SS_ABISIP, handle_abisip_signal, NULL);
}


~N

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20170721/111ac93c/attachment.bin>


More information about the OpenBSC mailing list