osmo-bts[master]: sysmo: Allow passing low quality buffers to upper layers
Patch Set 3: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/3056/3/src/osmo-bts-sysmo/l1_if.c File src/osmo-bts-sysmo/l1_if.c: PS3, Line 992: 1sap->u.data.lqual_cb this is where/how we report linqQuality to the common part in l1sap. I think it would make a lot of sense to remove the "drop frames in case of bad link quality from the BTS-specific parts and move it into the code above l1sap. We'd have to add ber10k andlqual_cb to ph_tch_param, like we have it in ph_data_param already (libosmocore l1sap.h). -- To view, visit https://gerrit.osmocom.org/3056 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: If5df8940fab833eb4e3ed851880b66987d356031 Gerrit-PatchSet: 3 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
osmo-bts[master]: octphy: Allow passing low quality buffers to upper layers
Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/3078/1/src/osmo-bts-octphy/l1_tch.c File src/osmo-bts-octphy/l1_tch.c: Line 201: rmsg = msgb_alloc_headroom(256, 128, "L1C-to-RTP"); L1C is L1 Control (channel activation, ...). L1P is L1 [data] primitive. L1C is thus wrong here and also in the LOGP above. -- To view, visit https://gerrit.osmocom.org/3078 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I02bf4bca041fccf96fe2986480251f96248ce2d1 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
osmo-bts[master]: Revert "osmo-bts-sysmo: Include frame number in MEAS IND"
Patch Set 2: might be useful to explain *why* it is being reverted. -- To view, visit https://gerrit.osmocom.org/3051 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib50c813c470bf6ea740fe6667431eaa1a23fdd8d Gerrit-PatchSet: 2 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[MERGED] libosmo-abis[master]: osmo_ortp.c: Duration of a RTP frame affects timestamp of th...
Harald Welte has submitted this change and it was merged. Change subject: osmo_ortp.c: Duration of a RTP frame affects timestamp of the next one .. osmo_ortp.c: Duration of a RTP frame affects timestamp of the next one Duration of an RTP frames dictates the timestamp used for the next frame, not for the one being sent now. It was done like this before to account for possible losses. Implementation wise, the duration was understood as "duration between last frame was sent and now when current one is sent". It makes more sense to use it as the duration in number of sampling ticks as described on the function documentation, specially now that we can account for extra time by means of osmo_rtp_skipped_frame. Change-Id: Ib8f5fa5509059fe908c09a4381844c613d478548 --- M src/trau/osmo_ortp.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index c9480ff..c49a23d 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -496,9 +496,9 @@ return -ENOMEM; rtp_set_markbit(mblk, marker); - rs->tx_timestamp += duration; rc = rtp_session_sendm_with_ts(rs->sess, mblk, rs->tx_timestamp); + rs->tx_timestamp += duration; if (rc < 0) { /* no need to free() the mblk, as rtp_session_rtp_send() * unconditionally free()s the mblk even in case of -- To view, visit https://gerrit.osmocom.org/3083 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ib8f5fa5509059fe908c09a4381844c613d478548 Gerrit-PatchSet: 1 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
libosmo-abis[master]: osmo_ortp.c: Duration of a RTP frame affects timestamp of th...
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3083 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib8f5fa5509059fe908c09a4381844c613d478548 Gerrit-PatchSet: 1 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[MERGED] libosmo-abis[master]: osmo_ortp: Add osmo_rtp_drop_frame API
Harald Welte has submitted this change and it was merged. Change subject: osmo_ortp: Add osmo_rtp_drop_frame API .. osmo_ortp: Add osmo_rtp_drop_frame API This API will be used by osmo-bts to maintain the sampling clock of the RTP socket whenever a frame should be sent but it is not available, for instance due to low quality of signal. Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 --- M include/osmocom/trau/osmo_ortp.h M src/trau/osmo_ortp.c 2 files changed, 23 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h index 9eb176f..578b1cb 100644 --- a/include/osmocom/trau/osmo_ortp.h +++ b/include/osmocom/trau/osmo_ortp.h @@ -76,6 +76,7 @@ int osmo_rtp_socket_connect(struct osmo_rtp_socket *rs, const char *ip, uint16_t port); int osmo_rtp_socket_set_pt(struct osmo_rtp_socket *rs, int payload_type); int osmo_rtp_socket_free(struct osmo_rtp_socket *rs); +int osmo_rtp_skipped_frame(struct osmo_rtp_socket *rs, unsigned int duration); int osmo_rtp_send_frame(struct osmo_rtp_socket *rs, const uint8_t *payload, unsigned int payload_len, unsigned int duration); int osmo_rtp_send_frame_ext(struct osmo_rtp_socket *rs, const uint8_t *payload, diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index b2ee040..c9480ff 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -436,6 +436,28 @@ return osmo_rtp_socket_fdreg(rs); } +/*! \brief Increment timestamp on a RTP socket without sending any packet + * \param[in] rs OsmoRTP socket + * \param[in] duration duration in number of RTP clock ticks + * + * Useful to keep the RTP internal clock up to date if an RTP frame should be + * send at a given time but no audio content is available. When next packet is + * sent, the receiver will see a different increase on the sequence number and + * the timestamp, and it should then take it as a synchronization point. For + * that same reason, it is advisable to enable the marker bit on the next RTP + * packet to be sent after calling this function. + * + * \returns 0 on success, <0 in case of error. + */ +int osmo_rtp_skipped_frame(struct osmo_rtp_socket *rs, unsigned int duration) +{ + if (rs->flags & OSMO_RTP_F_DISABLED) + return 0; + + rs->tx_timestamp += duration; + return 0; +} + /*! \brief Send one RTP frame via a RTP socket * \param[in] rs OsmoRTP socket * \param[in] payload pointer to buffer with RTP payload data -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 3 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol
libosmo-abis[master]: osmo_ortp: Add osmo_rtp_drop_frame API
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 3 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: No
[MERGED] osmo-bts[master]: osmo-bts-litecell15: Fix missing frame number in MEAS IND
Harald Welte has submitted this change and it was merged. Change subject: osmo-bts-litecell15: Fix missing frame number in MEAS IND .. osmo-bts-litecell15: Fix missing frame number in MEAS IND The layer 1 interface (l1_if.c) for osmo-bts-litecell15 does not include the frame number into the measurement indications it forwards to higher layers. The frame number is required to properly detect the end of a measurement period. change process_meas_res() to properly include the frame number into the l1sap primitive (struct osmo_phsap_prim *l1sap) Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237 --- M src/osmo-bts-litecell15/l1_if.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index 71bb833..d6cffc9 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -901,7 +901,7 @@ } static int process_meas_res(struct gsm_bts_trx *trx, uint8_t chan_nr, - GsmL1_MeasParam_t *m) + GsmL1_MeasParam_t *m, uint32_t fn) { struct osmo_phsap_prim l1sap; memset(, 0, sizeof(l1sap)); @@ -912,6 +912,7 @@ l1sap.u.info.u.meas_ind.ta_offs_qbits = m->i16BurstTiming; l1sap.u.info.u.meas_ind.ber10k = (unsigned int) (m->fBer * 100); l1sap.u.info.u.meas_ind.inv_rssi = (uint8_t) (m->fRssi * -1); + l1sap.u.info.u.meas_ind.fn = fn; /* l1sap wants to take msgb ownership. However, as there is no * msg, it will msgb_free(l1sap.oph.msg == NULL) */ @@ -941,7 +942,7 @@ fn = data_ind->u32Fn; link_id = (data_ind->sapi == GsmL1_Sapi_Sacch) ? LID_SACCH : LID_DEDIC; - process_meas_res(trx, chan_nr, _ind->measParam); + process_meas_res(trx, chan_nr, _ind->measParam, fn); if (data_ind->measParam.fLinkQuality < btsb->min_qual_norm && data_ind->msgUnitParam.u8Size != 0) { -- To view, visit https://gerrit.osmocom.org/2861 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237 Gerrit-PatchSet: 5 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max
[MERGED] osmo-bts[master]: osmo-bts-trx: fix missing frame number in MEAS IND
Harald Welte has submitted this change and it was merged. Change subject: osmo-bts-trx: fix missing frame number in MEAS IND .. osmo-bts-trx: fix missing frame number in MEAS IND The layer 1 interface (l1_if.c) for osmo-bts-trx does not include the frame number into the measurement indications it forwards to higher layers. The frame number is required to properly detect the end of a measurement period. Change-Id: Ife3c791ff50e8a866a97b9783ac7ef3ef2402a70 --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h 2 files changed, 4 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index a7bcd2c..3517787 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -528,7 +528,7 @@ void l1if_fill_meas_res(struct osmo_phsap_prim *l1sap, uint8_t chan_nr, float ta, - float ber, float rssi) + float ber, float rssi, uint32_t fn) { memset(l1sap, 0, sizeof(*l1sap)); osmo_prim_init(>oph, SAP_GSM_PH, PRIM_MPH_INFO, @@ -538,6 +538,7 @@ l1sap->u.info.u.meas_ind.ta_offs_qbits = (int16_t)(ta*4); l1sap->u.info.u.meas_ind.ber10k = (unsigned int) (ber * 1); l1sap->u.info.u.meas_ind.inv_rssi = (uint8_t) (rssi * -1); + l1sap->u.info.u.meas_ind.fn = fn; } int l1if_process_meas_res(struct gsm_bts_trx *trx, uint8_t tn, uint32_t fn, uint8_t chan_nr, @@ -553,7 +554,7 @@ gsm_lchan_name(lchan), fn, chan_nr, ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power), rssi, ber*100, n_errors, n_bits_total, lchan->meas.l1_info[1], lchan->rqd_ta, toa); - l1if_fill_meas_res(, chan_nr, lchan->rqd_ta + toa, ber, rssi); + l1if_fill_meas_res(, chan_nr, lchan->rqd_ta + toa, ber, rssi, fn); return l1sap_up(trx, ); } diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 1864857..fdc40f2 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -69,7 +69,7 @@ int l1if_provision_transceiver(struct gsm_bts *bts); int l1if_mph_time_ind(struct gsm_bts *bts, uint32_t fn); void l1if_fill_meas_res(struct osmo_phsap_prim *l1sap, uint8_t chan_nr, float ta, - float ber, float rssi); + float ber, float rssi, uint32_t fn); int l1if_process_meas_res(struct gsm_bts_trx *trx, uint8_t tn, uint32_t fn, uint8_t chan_nr, int n_errors, int n_bits_total, float rssi, float toa); -- To view, visit https://gerrit.osmocom.org/2813 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ife3c791ff50e8a866a97b9783ac7ef3ef2402a70 Gerrit-PatchSet: 5 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr
osmo-bts[master]: osmo-bts-trx: fix missing frame number in MEAS IND
Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/2813 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ife3c791ff50e8a866a97b9783ac7ef3ef2402a70 Gerrit-PatchSet: 5 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-bts[master]: osmo-bts-litecell15: Fix missing frame number in MEAS IND
Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/2861 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237 Gerrit-PatchSet: 5 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-HasComments: No
osmo-trx[master]: Add '-t' command line option to enable SCHED_RR
Patch Set 1: Please see https://osmocom.org/issues/2344 for my test results. With this patch (and associated '-t 1') I can sustain a load of >= 100 on the system running osmo-trx + osmo-bts. Without the patch, it fails within seconds. Hence my argument to even make it default, and to use a even "stronger" (lover numeric, higher conceptual) priority than osmo-bts. And make osmo-bts also use SCHED_RR unconditionally. -- To view, visit https://gerrit.osmocom.org/3080 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia2452b9763960b2be37fbeee9d832554da68a53f Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Tom Tsou Gerrit-HasComments: No
osmo-trx[master]: Add '-t' command line option to enable SCHED_RR
Patch Set 1: > I would actually vote for making SCHED_RR a default, preferrably > with an even higher priority (e.g. 10) than what we'd use as > osmo-bts-trx, as osmo-trx is even more important to schedule than > osmo-bts. What do you guys think? These settings can be very tricky. osmo-trx already sets SCHED_RR and priorities through the UHD priority interface. https://github.com/EttusResearch/uhd/blob/master/host/lib/utils/thread_priority.cpp But, importantly, the current settings were added years ago to be independent of underlying UHD libusb threads - which may not be ideal. UHD maintains a separate internal thread for driving libusb asynchronous I/O. That thread is indirectly controlled by the priority level at the time of construction - which is main() in osmo-trx. So this patch could perform better than the current priority settings. Does testing confirm that? -- To view, visit https://gerrit.osmocom.org/3080 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia2452b9763960b2be37fbeee9d832554da68a53f Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Tom Tsou Gerrit-HasComments: No
osmo-trx[master]: LimeSDR: set approximate tx offset value to make GSM work
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3072 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ied215ca9e9d9c346c2a654f96785d1b87b075129 Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Tom Tsou Gerrit-HasComments: No
[MERGED] osmo-trx[master]: LimeSDR: set approximate tx offset value to make GSM work
Tom Tsou has submitted this change and it was merged. Change subject: LimeSDR: set approximate tx offset value to make GSM work .. LimeSDR: set approximate tx offset value to make GSM work may be fine-tuned in the future Modified to match current master by Harald Welte. Change-Id: Ied215ca9e9d9c346c2a654f96785d1b87b075129 --- M Transceiver52M/UHDDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Tom Tsou: Looks good to me, approved Harald Welte: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index a766ddc..9ab96f6 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -130,7 +130,7 @@ { std::make_tuple(UMTRX, 1, 1), { 2, 0.0, GSMRATE, 9.9692e-5, "UmTRX 1 SPS"} }, { std::make_tuple(UMTRX, 4, 1), { 2, 0.0, GSMRATE, 7.3846e-5, "UmTRX 4/1 Tx/Rx SPS"} }, { std::make_tuple(UMTRX, 4, 4), { 2, 0.0, GSMRATE, 5.1503e-5, "UmTRX 4 SPS"} }, - { std::make_tuple(LIMESDR, 4, 4), { 1, GSMRATE*32, GSMRATE, 16.5/GSMRATE, "STREAM/LimeSDR (4 SPS TX/RX)" } }, + { std::make_tuple(LIMESDR, 4, 4), { 1, GSMRATE*32, GSMRATE, 8.9e-5, "LimeSDR 4 SPS" } }, { std::make_tuple(B2XX_MCBTS, 4, 4), { 1, 51.2e6, MCBTS_SPACING*4, B2XX_TIMING_MCBTS, "B200/B210 4 SPS Multi-ARFCN" } }, }; -- To view, visit https://gerrit.osmocom.org/3072 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ied215ca9e9d9c346c2a654f96785d1b87b075129 Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Tom Tsou
Build failure of network:osmocom:nightly/libosmocore in xUbuntu_17.04/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_17.04/x86_64 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_17.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 212s] | [ 212s] | This file was extended by libosmocore config.status 0.9.6.20170629, which was [ 212s] | generated by GNU Autoconf 2.69. Invocation command line was [ 212s] | [ 212s] | CONFIG_FILES= [ 212s] | CONFIG_HEADERS = [ 212s] | CONFIG_LINKS= [ 212s] | CONFIG_COMMANDS = [ 212s] | $ ./config.status Doxyfile.core [ 212s] | [ 212s] | on build35 [ 212s] | [ 212s] | config.status:1171: creating Doxyfile.core [ 212s] [ 212s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 212s] make[1]: *** [override_dh_auto_test] Error 1 [ 212s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 212s] debian/rules:15: recipe for target 'build' failed [ 212s] make: *** [build] Error 2 [ 212s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 212s] [ 212s] build35 failed "build libosmocore_0.9.6.20170629.dsc" at Thu Jun 29 19:54:17 UTC 2017. [ 212s] [ 212s] ### VM INTERACTION START ### [ 215s] [ 196.479529] reboot: Power down [ 216s] ### VM INTERACTION END ### [ 216s] [ 216s] build35 failed "build libosmocore_0.9.6.20170629.dsc" at Thu Jun 29 19:54:22 UTC 2017. [ 216s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/libosmocore in xUbuntu_17.04/i586
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_17.04/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 223s] | [ 223s] | This file was extended by libosmocore config.status 0.9.6.20170629, which was [ 223s] | generated by GNU Autoconf 2.69. Invocation command line was [ 223s] | [ 223s] | CONFIG_FILES= [ 223s] | CONFIG_HEADERS = [ 223s] | CONFIG_LINKS= [ 223s] | CONFIG_COMMANDS = [ 223s] | $ ./config.status Doxyfile.core [ 223s] | [ 223s] | on cumulus2 [ 223s] | [ 223s] | config.status:1171: creating Doxyfile.core [ 223s] [ 223s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 223s] make[1]: *** [override_dh_auto_test] Error 1 [ 223s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 223s] debian/rules:15: recipe for target 'build' failed [ 223s] make: *** [build] Error 2 [ 223s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 223s] [ 223s] cumulus2 failed "build libosmocore_0.9.6.20170629.dsc" at Thu Jun 29 19:54:22 UTC 2017. [ 223s] [ 223s] ### VM INTERACTION START ### [ 226s] [ 206.600870] reboot: Power down [ 226s] ### VM INTERACTION END ### [ 226s] [ 226s] cumulus2 failed "build libosmocore_0.9.6.20170629.dsc" at Thu Jun 29 19:54:26 UTC 2017. [ 226s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
[PATCH] libosmocore[master]: BSSGP: add function to reset all PTP BVC
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3088 to look at the new patch set (#2). BSSGP: add function to reset all PTP BVC Change-Id: I9bf8f4dd784ccddbb9926492a85fff3293a0e913 Related: OS#1638 --- M include/osmocom/gprs/gprs_bssgp_bss.h M src/gb/gprs_bssgp.c M src/gb/libosmogb.map 3 files changed, 28 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/3088/2 diff --git a/include/osmocom/gprs/gprs_bssgp_bss.h b/include/osmocom/gprs/gprs_bssgp_bss.h index 9374e73..74211fd 100644 --- a/include/osmocom/gprs/gprs_bssgp_bss.h +++ b/include/osmocom/gprs/gprs_bssgp_bss.h @@ -26,7 +26,7 @@ #include uint8_t *bssgp_msgb_tlli_put(struct msgb *msg, uint32_t tlli); - +int bssgp_tx_bvc_ptp_reset(uint16_t nsei, enum gprs_bssgp_cause cause); int bssgp_tx_suspend(uint16_t nsei, uint32_t tlli, const struct gprs_ra_id *ra_id); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 8daf39f..2552849 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -35,6 +35,7 @@ #include #include +#include #include #include "common_vty.h" @@ -77,6 +78,31 @@ return NULL; } +/*! Initiate reset procedure for all PTP BVC on a given NSEI. + * + * This function initiates reset procedure for all PTP BVC with a given cause. + * \param[in] nsei NSEI to which PTP BVC should belong to + * \param[in] cause Cause of BVC RESET + * \returns 0 on success, negative error code otherwise + */ +int bssgp_tx_bvc_ptp_reset(uint16_t nsei, enum gprs_bssgp_cause cause) +{ + int rc; + struct bssgp_bvc_ctx *bctx; + + llist_for_each_entry(bctx, _bvc_ctxts, list) { + if (bctx->nsei == nsei && bctx->bvci != BVCI_SIGNALLING) { + LOGP(DBSSGP, LOGL_DEBUG, "NSEI=%u/BVCI=%u RESET due to %s\n", +nsei, bctx->bvci, bssgp_cause_str(cause)); + rc = bssgp_tx_bvc_reset(bctx, bctx->bvci, cause); + if (rc < 0) + return rc; + } + } + + return 0; +} + /* Find a BTS context based on BVCI+NSEI tuple */ struct bssgp_bvc_ctx *btsctx_by_bvci_nsei(uint16_t bvci, uint16_t nsei) { diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 6aad8fd..9a0dba5 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -34,6 +34,7 @@ bssgp_rx_paging; bssgp_set_log_ss; bssgp_tx_dl_ud; +bssgp_tx_bvc_ptp_reset; bssgp_tx_paging; bssgp_vty_init; bssgp_nsi; -- To view, visit https://gerrit.osmocom.org/3088 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9bf8f4dd784ccddbb9926492a85fff3293a0e913 Gerrit-PatchSet: 2 Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Owner: MaxGerrit-Reviewer: Jenkins Builder
osmo-bts[master]: l1sap.c: fn_ms_adj: Add err logging and always return GSM_RT...
Patch Set 1: Have it been tested with DTX active? -- To view, visit https://gerrit.osmocom.org/3084 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9d112c6db142be138e71393e77129e6d069d9973 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-HasComments: No
[PATCH] osmo-pcu[master]: BSSGP: Use libosmocore for BVC-RESET
Review at https://gerrit.osmocom.org/3089 BSSGP: Use libosmocore for BVC-RESET Implement proper BVC RESET procedure by using libosmocore code to handle BVCI reset and initiate PTP BVC reset if necessary. Related: OS#1638 Change-Id: I718c949759688cb34ce6bcbb3da2092fcdfa6989 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 22 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/89/3089/1 diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index d3c8491..437479b 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -325,14 +325,15 @@ struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *) msgb_bssgph(msg); struct tlv_parsed tp; enum bssgp_pdu_type pdu_type = (enum bssgp_pdu_type) bgph->pdu_type; - uint16_t ns_bvci = msgb_bvci(msg); + enum gprs_bssgp_cause cause = BSSGP_CAUSE_OML_INTERV; + uint16_t ns_bvci = msgb_bvci(msg), nsei = msgb_nsei(msg); int data_len; int rc = 0; struct bssgp_bvc_ctx *bctx; if (pdu_type == BSSGP_PDUT_STATUS) /* Pass the message to the generic BSSGP parser, which handles -* STATUS message in either direction. */ +* STATUS and RESET messages in either direction. */ return bssgp_rcvmsg(msg); /* Identifiers from DOWN: NSEI, BVCI (both in msg->cb) */ @@ -349,6 +350,23 @@ rc = bssgp_tlv_parse(, budh->data, data_len); } + if (pdu_type == BSSGP_PDUT_BVC_RESET) { + rc = bssgp_rcvmsg(msg); + if (ns_bvci != BVCI_SIGNALLING) + return rc; + + if (TLVP_PRES_LEN(, BSSGP_IE_CAUSE, 1)) + cause = (enum gprs_bssgp_cause)*TLVP_VAL(, BSSGP_IE_CAUSE); + else + LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u BVC RESET without cause?!\n", nsei); + + rc = bssgp_tx_bvc_ptp_reset(nsei, cause); + if (rc < 0) + LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u BVC PTP reset procedure failed: %d\n", nsei, rc); + + return rc; + } + /* look-up or create the BTS context for this BVC */ bctx = btsctx_by_bvci_nsei(ns_bvci, msgb_nsei(msg)); @@ -357,9 +375,8 @@ && pdu_type != BSSGP_PDUT_BVC_UNBLOCK_ACK && pdu_type != BSSGP_PDUT_PAGING_PS) { - LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU " - "type %s for unknown BVCI\n", msgb_nsei(msg), ns_bvci, - bssgp_pdu_str(pdu_type)); + LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU type %s for unknown BVCI\n", +nsei, ns_bvci, bssgp_pdu_str(pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/3089 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I718c949759688cb34ce6bcbb3da2092fcdfa6989 Gerrit-PatchSet: 1 Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Owner: Max
[PATCH] libosmocore[master]: BSSGP: add function to reset all PTP BVC
Review at https://gerrit.osmocom.org/3088 BSSGP: add function to reset all PTP BVC Change-Id: I9bf8f4dd784ccddbb9926492a85fff3293a0e913 Related: OS#1638 --- M include/osmocom/gprs/gprs_bssgp_bss.h M src/gb/gprs_bssgp.c M src/gb/libosmogb.map 3 files changed, 27 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/3088/1 diff --git a/include/osmocom/gprs/gprs_bssgp_bss.h b/include/osmocom/gprs/gprs_bssgp_bss.h index 9374e73..74211fd 100644 --- a/include/osmocom/gprs/gprs_bssgp_bss.h +++ b/include/osmocom/gprs/gprs_bssgp_bss.h @@ -26,7 +26,7 @@ #include uint8_t *bssgp_msgb_tlli_put(struct msgb *msg, uint32_t tlli); - +int bssgp_tx_bvc_ptp_reset(uint16_t nsei, enum gprs_bssgp_cause cause); int bssgp_tx_suspend(uint16_t nsei, uint32_t tlli, const struct gprs_ra_id *ra_id); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 8daf39f..92cd5ad 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -77,6 +77,31 @@ return NULL; } +/*! Initiate reset procedure for all PTP BVC on a given NSEI. + * + * This function initiates reset procedure for all PTP BVC with a given cause. + * \param[in] nsei NSEI to which PTP BVC should belong to + * \param[in] cause Cause of BVC RESET + * \returns 0 on success, negative error code otherwise + */ +int bssgp_tx_bvc_ptp_reset(uint16_t nsei, enum gprs_bssgp_cause cause) +{ + int rc; + struct bssgp_bvc_ctx *bctx; + + llist_for_each_entry(bctx, _bvc_ctxts, list) { + if (bctx->nsei == nsei && bctx->bvci != BVCI_SIGNALLING) { + LOGP(DBSSGP, LOGL_DEBUG, "NSEI=%u/BVCI=%u RESET due to %s\n", +nsei, bctx->bvci, bssgp_cause_str(cause)); + rc = bssgp_tx_bvc_reset(bctx, bctx->bvci, cause); + if (rc < 0) + return rc; + } + } + + return 0; +} + /* Find a BTS context based on BVCI+NSEI tuple */ struct bssgp_bvc_ctx *btsctx_by_bvci_nsei(uint16_t bvci, uint16_t nsei) { diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 6aad8fd..9a0dba5 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -34,6 +34,7 @@ bssgp_rx_paging; bssgp_set_log_ss; bssgp_tx_dl_ud; +bssgp_tx_bvc_ptp_reset; bssgp_tx_paging; bssgp_vty_init; bssgp_nsi; -- To view, visit https://gerrit.osmocom.org/3088 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9bf8f4dd784ccddbb9926492a85fff3293a0e913 Gerrit-PatchSet: 1 Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Owner: Max
[PATCH] libosmo-sccp[master]: sccp_helpers.h: remove duplicate declaration of osmo_sccp_ma...
Review at https://gerrit.osmocom.org/3086 sccp_helpers.h: remove duplicate declaration of osmo_sccp_make_addr_pc_ssn() Change-Id: Ifbb03de3df3b9bac86fb97dfc8e81e99fc172292 --- M include/osmocom/sigtran/sccp_helpers.h 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/86/3086/1 diff --git a/include/osmocom/sigtran/sccp_helpers.h b/include/osmocom/sigtran/sccp_helpers.h index bbd0364..ecf583e 100644 --- a/include/osmocom/sigtran/sccp_helpers.h +++ b/include/osmocom/sigtran/sccp_helpers.h @@ -4,8 +4,6 @@ #include #include -void osmo_sccp_make_addr_pc_ssn(struct osmo_sccp_addr *addr, uint32_t pc, uint32_t ssn); - int osmo_sccp_tx_unitdata(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, -- To view, visit https://gerrit.osmocom.org/3086 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifbb03de3df3b9bac86fb97dfc8e81e99fc172292 Gerrit-PatchSet: 1 Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr
libosmo-sccp[master]: fix compiler warning: xua_test: hexdump pointer type
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3030 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Iab5529f6919fd22902a8b39e8a52079f08deb851 Gerrit-PatchSet: 2 Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: No
[MERGED] libosmo-sccp[master]: fix compiler warning: xua_test: hexdump pointer type
Neels Hofmeyr has submitted this change and it was merged. Change subject: fix compiler warning: xua_test: hexdump pointer type .. fix compiler warning: xua_test: hexdump pointer type Was recently introduced by a70b4599f63b50c4d654eb9e1b1a099a7c8cdc36. Change-Id: Iab5529f6919fd22902a8b39e8a52079f08deb851 --- M tests/xua/xua_test.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, but someone else must approve Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/xua/xua_test.c b/tests/xua/xua_test.c index 4af0836..c496cc4 100644 --- a/tests/xua/xua_test.c +++ b/tests/xua/xua_test.c @@ -155,7 +155,7 @@ printf("Testing Decoded GT -> SUA encoding\n"); printf("IN: %s\n", osmo_sccp_gt_dump(gt_in)); - printf("%s\n", osmo_hexdump_nospc(gt_in, sizeof(struct osmo_sccp_gt))); + printf("%s\n", osmo_hexdump_nospc((const unsigned char*)gt_in, sizeof(struct osmo_sccp_gt))); /* encode sccp_addr to SUA GT */ xua_part_add_gt(msg, gt_in); @@ -168,7 +168,7 @@ /* parse + compare */ sua_parse_gt(_out, msgb_data(msg), msgb_length(msg)); printf("OUT:%s\n", osmo_sccp_gt_dump(_out)); - printf("%s\n", osmo_hexdump_nospc(_out, sizeof(struct osmo_sccp_gt))); + printf("%s\n", osmo_hexdump_nospc((const unsigned char*)_out, sizeof(struct osmo_sccp_gt))); OSMO_ASSERT(!memcmp(gt_in, _out, sizeof(gt_out))); msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/3030 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iab5529f6919fd22902a8b39e8a52079f08deb851 Gerrit-PatchSet: 3 Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol
[PATCH] osmo-gsm-tester[master]: jenkins: build msc using libosmo-sccp master
Review at https://gerrit.osmocom.org/3085 jenkins: build msc using libosmo-sccp master Since 81c0bcab068174036f6897e69311f413d94c74d4 was merged, it is not necessary to build the neels/aoip branch anymore. Other patches on that branch are not necessary either. Change-Id: I850e0dd2fc61d59d56c0dd69ee00b6e19685fb95 --- M contrib/jenkins-build-osmo-msc.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/85/3085/1 diff --git a/contrib/jenkins-build-osmo-msc.sh b/contrib/jenkins-build-osmo-msc.sh index 53a23fe..f9710c0 100755 --- a/contrib/jenkins-build-osmo-msc.sh +++ b/contrib/jenkins-build-osmo-msc.sh @@ -9,7 +9,7 @@ build_repo libosmo-netif build_repo openggsn build_repo libsmpp34 -build_repo libosmo-sccp neels/aoip # TEMPORARY BRANCH +build_repo libosmo-sccp build_repo libasn1c build_repo osmo-iuh neels/sigtran # TEMPORARY BRANCH build_repo openbsc aoip --enable-smpp --enable-osmo-bsc --enable-nat --enable-iu -- To view, visit https://gerrit.osmocom.org/3085 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I850e0dd2fc61d59d56c0dd69ee00b6e19685fb95 Gerrit-PatchSet: 1 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr
[PATCH] osmo-bts[master]: l1sap.c: fn_ms_adj: Add err logging and always return GSM_RT...
Review at https://gerrit.osmocom.org/3084 l1sap.c: fn_ms_adj: Add err logging and always return GSM_RTP_DURATION After latest changes, l2 expects to receive an event for every TCH frame, that is, no TCH frame event should be lost on that layer. We should now then be safe returning always GSM_RTP_DURATION. The code which used to calculate the variable duration is left there to assert that indeed we are not longer having this kind of issues. Change-Id: I9d112c6db142be138e71393e77129e6d069d9973 --- M src/common/l1sap.c 1 file changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/84/3084/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 80fafb8..a2aef9f 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -77,10 +77,6 @@ { uint32_t samples_passed, r; - /* don't adjust duration when DTX is not enabled */ - if (lchan->ts->trx->bts->dtxu == GSM48_DTX_SHALL_NOT_BE_USED) - return GSM_RTP_DURATION; - if (lchan->tch.last_fn != LCHAN_FN_DUMMY) { /* 12/13 frames usable for audio in TCH, 160 samples per RTP packet, @@ -90,7 +86,9 @@ GSM_RTP_DURATION */ r = samples_passed + GSM_RTP_DURATION / 2; r -= r % GSM_RTP_DURATION; - return r; + + if (r != GSM_RTP_DURATION) + LOGP(DL1P, LOGL_ERROR, "RTP clock out of sync with lower layer!\n"); } return GSM_RTP_DURATION; } -- To view, visit https://gerrit.osmocom.org/3084 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9d112c6db142be138e71393e77129e6d069d9973 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol
[PATCH] libosmo-abis[master]: osmo_ortp.c: Duration of a RTP frame affects timestamp of th...
Review at https://gerrit.osmocom.org/3083 osmo_ortp.c: Duration of a RTP frame affects timestamp of the next one Duration of an RTP frames dictates the timestamp used for the next frame, not for the one being sent now. It was done like this before to account for possible losses. Implementation wise, the duration was understood as "duration between last frame was sent and now when current one is sent". It makes more sense to use it as the duration in number of sampling ticks as described on the function documentation, specially now that we can account for extra time by means of osmo_rtp_skipped_frame. Change-Id: Ib8f5fa5509059fe908c09a4381844c613d478548 --- M src/trau/osmo_ortp.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/83/3083/1 diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index c9480ff..c49a23d 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -496,9 +496,9 @@ return -ENOMEM; rtp_set_markbit(mblk, marker); - rs->tx_timestamp += duration; rc = rtp_session_sendm_with_ts(rs->sess, mblk, rs->tx_timestamp); + rs->tx_timestamp += duration; if (rc < 0) { /* no need to free() the mblk, as rtp_session_rtp_send() * unconditionally free()s the mblk even in case of -- To view, visit https://gerrit.osmocom.org/3083 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib8f5fa5509059fe908c09a4381844c613d478548 Gerrit-PatchSet: 1 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol
[PATCH] osmo-bts[master]: osmo-bts-litecell15: Fix missing frame number in MEAS IND
Hello Max, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/2861 to look at the new patch set (#5). osmo-bts-litecell15: Fix missing frame number in MEAS IND The layer 1 interface (l1_if.c) for osmo-bts-litecell15 does not include the frame number into the measurement indications it forwards to higher layers. The frame number is required to properly detect the end of a measurement period. change process_meas_res() to properly include the frame number into the l1sap primitive (struct osmo_phsap_prim *l1sap) Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237 --- M src/osmo-bts-litecell15/l1_if.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/61/2861/5 diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index 71bb833..d6cffc9 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -901,7 +901,7 @@ } static int process_meas_res(struct gsm_bts_trx *trx, uint8_t chan_nr, - GsmL1_MeasParam_t *m) + GsmL1_MeasParam_t *m, uint32_t fn) { struct osmo_phsap_prim l1sap; memset(, 0, sizeof(l1sap)); @@ -912,6 +912,7 @@ l1sap.u.info.u.meas_ind.ta_offs_qbits = m->i16BurstTiming; l1sap.u.info.u.meas_ind.ber10k = (unsigned int) (m->fBer * 100); l1sap.u.info.u.meas_ind.inv_rssi = (uint8_t) (m->fRssi * -1); + l1sap.u.info.u.meas_ind.fn = fn; /* l1sap wants to take msgb ownership. However, as there is no * msg, it will msgb_free(l1sap.oph.msg == NULL) */ @@ -941,7 +942,7 @@ fn = data_ind->u32Fn; link_id = (data_ind->sapi == GsmL1_Sapi_Sacch) ? LID_SACCH : LID_DEDIC; - process_meas_res(trx, chan_nr, _ind->measParam); + process_meas_res(trx, chan_nr, _ind->measParam, fn); if (data_ind->measParam.fLinkQuality < btsb->min_qual_norm && data_ind->msgUnitParam.u8Size != 0) { -- To view, visit https://gerrit.osmocom.org/2861 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237 Gerrit-PatchSet: 5 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max
[PATCH] osmo-bts[master]: osmo-bts-trx: fix missing frame number in MEAS IND
Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/2813 to look at the new patch set (#5). osmo-bts-trx: fix missing frame number in MEAS IND The layer 1 interface (l1_if.c) for osmo-bts-trx does not include the frame number into the measurement indications it forwards to higher layers. The frame number is required to properly detect the end of a measurement period. Change-Id: Ife3c791ff50e8a866a97b9783ac7ef3ef2402a70 --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h 2 files changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/13/2813/5 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index a7bcd2c..3517787 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -528,7 +528,7 @@ void l1if_fill_meas_res(struct osmo_phsap_prim *l1sap, uint8_t chan_nr, float ta, - float ber, float rssi) + float ber, float rssi, uint32_t fn) { memset(l1sap, 0, sizeof(*l1sap)); osmo_prim_init(>oph, SAP_GSM_PH, PRIM_MPH_INFO, @@ -538,6 +538,7 @@ l1sap->u.info.u.meas_ind.ta_offs_qbits = (int16_t)(ta*4); l1sap->u.info.u.meas_ind.ber10k = (unsigned int) (ber * 1); l1sap->u.info.u.meas_ind.inv_rssi = (uint8_t) (rssi * -1); + l1sap->u.info.u.meas_ind.fn = fn; } int l1if_process_meas_res(struct gsm_bts_trx *trx, uint8_t tn, uint32_t fn, uint8_t chan_nr, @@ -553,7 +554,7 @@ gsm_lchan_name(lchan), fn, chan_nr, ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power), rssi, ber*100, n_errors, n_bits_total, lchan->meas.l1_info[1], lchan->rqd_ta, toa); - l1if_fill_meas_res(, chan_nr, lchan->rqd_ta + toa, ber, rssi); + l1if_fill_meas_res(, chan_nr, lchan->rqd_ta + toa, ber, rssi, fn); return l1sap_up(trx, ); } diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 1864857..fdc40f2 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -69,7 +69,7 @@ int l1if_provision_transceiver(struct gsm_bts *bts); int l1if_mph_time_ind(struct gsm_bts *bts, uint32_t fn); void l1if_fill_meas_res(struct osmo_phsap_prim *l1sap, uint8_t chan_nr, float ta, - float ber, float rssi); + float ber, float rssi, uint32_t fn); int l1if_process_meas_res(struct gsm_bts_trx *trx, uint8_t tn, uint32_t fn, uint8_t chan_nr, int n_errors, int n_bits_total, float rssi, float toa); -- To view, visit https://gerrit.osmocom.org/2813 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ife3c791ff50e8a866a97b9783ac7ef3ef2402a70 Gerrit-PatchSet: 5 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr
osmo-bts[master]: l1sap: Don't enqueue PTCCH blocks for loopback
Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/3081 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I7ef40d9bdf74a99375bc6568ed9483499664bf6f Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-HasComments: No
[PATCH] osmo-bts[master]: l1sap.c: Avoid sending RTP frame with empty payload
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3071 to look at the new patch set (#4). l1sap.c: Avoid sending RTP frame with empty payload Depends on libosmo-abis Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Change-Id: Ie9053674aa4f43aac20dbd5c865d70317360abbc --- M src/common/l1sap.c 1 file changed, 24 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/3071/4 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 1fb6134..80fafb8 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1011,22 +1011,32 @@ msgb_pull(msg, sizeof(*l1sap)); - /* hand msg to RTP code for transmission */ - if (lchan->abis_ip.rtp_socket) - osmo_rtp_send_frame_ext(lchan->abis_ip.rtp_socket, - msg->data, msg->len, fn_ms_adj(fn, lchan), lchan->rtp_tx_marker); - - /* if loopback is enabled, also queue received RTP data */ - if (lchan->loopback) { - /* make sure the queue doesn't get too long */ - queue_limit_to(gsm_lchan_name(lchan), >dl_tch_queue, 1); - /* add new frame to queue */ - msgb_enqueue(>dl_tch_queue, msg); - /* Return 1 to signal that we're still using msg and it should not be freed */ - return 1; + /* Low level layers always call us when TCH content is expected to be +* available, even if the content is not available due to decoding +* issues. Content not available is expected as empty payload. */ + if (msg->len) { + /* hand msg to RTP code for transmission */ + if (lchan->abis_ip.rtp_socket) + osmo_rtp_send_frame_ext(lchan->abis_ip.rtp_socket, + msg->data, msg->len, fn_ms_adj(fn, lchan), lchan->rtp_tx_marker); + /* if loopback is enabled, also queue received RTP data */ + if (lchan->loopback) { + /* make sure the queue doesn't get too long */ + queue_limit_to(gsm_lchan_name(lchan), >dl_tch_queue, 1); + /* add new frame to queue */ + msgb_enqueue(>dl_tch_queue, msg); + /* Return 1 to signal that we're still using msg and it should not be freed */ + return 1; + } + /* Only clear the marker bit once we have sent a RTP packet with it */ + lchan->rtp_tx_marker = false; + } else { + DEBUGP(DL1P, "Skipping RTP frame with lost payload\n"); + if (lchan->abis_ip.rtp_socket) + osmo_rtp_skipped_frame(lchan->abis_ip.rtp_socket, fn_ms_adj(fn, lchan)); + lchan->rtp_tx_marker = true; } - lchan->rtp_tx_marker = false; lchan->tch.last_fn = fn; return 0; } -- To view, visit https://gerrit.osmocom.org/3071 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie9053674aa4f43aac20dbd5c865d70317360abbc Gerrit-PatchSet: 4 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[PATCH] libosmo-abis[master]: osmo_ortp: Add osmo_rtp_drop_frame API
Hello Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3070 to look at the new patch set (#3). osmo_ortp: Add osmo_rtp_drop_frame API This API will be used by osmo-bts to maintain the sampling clock of the RTP socket whenever a frame should be sent but it is not available, for instance due to low quality of signal. Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 --- M include/osmocom/trau/osmo_ortp.h M src/trau/osmo_ortp.c 2 files changed, 23 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/70/3070/3 diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h index 9eb176f..578b1cb 100644 --- a/include/osmocom/trau/osmo_ortp.h +++ b/include/osmocom/trau/osmo_ortp.h @@ -76,6 +76,7 @@ int osmo_rtp_socket_connect(struct osmo_rtp_socket *rs, const char *ip, uint16_t port); int osmo_rtp_socket_set_pt(struct osmo_rtp_socket *rs, int payload_type); int osmo_rtp_socket_free(struct osmo_rtp_socket *rs); +int osmo_rtp_skipped_frame(struct osmo_rtp_socket *rs, unsigned int duration); int osmo_rtp_send_frame(struct osmo_rtp_socket *rs, const uint8_t *payload, unsigned int payload_len, unsigned int duration); int osmo_rtp_send_frame_ext(struct osmo_rtp_socket *rs, const uint8_t *payload, diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index b2ee040..c9480ff 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -436,6 +436,28 @@ return osmo_rtp_socket_fdreg(rs); } +/*! \brief Increment timestamp on a RTP socket without sending any packet + * \param[in] rs OsmoRTP socket + * \param[in] duration duration in number of RTP clock ticks + * + * Useful to keep the RTP internal clock up to date if an RTP frame should be + * send at a given time but no audio content is available. When next packet is + * sent, the receiver will see a different increase on the sequence number and + * the timestamp, and it should then take it as a synchronization point. For + * that same reason, it is advisable to enable the marker bit on the next RTP + * packet to be sent after calling this function. + * + * \returns 0 on success, <0 in case of error. + */ +int osmo_rtp_skipped_frame(struct osmo_rtp_socket *rs, unsigned int duration) +{ + if (rs->flags & OSMO_RTP_F_DISABLED) + return 0; + + rs->tx_timestamp += duration; + return 0; +} + /*! \brief Send one RTP frame via a RTP socket * \param[in] rs OsmoRTP socket * \param[in] payload pointer to buffer with RTP payload data -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 3 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol
osmo-bts[master]: TRX: permit transmission of all-zero loopback frames
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3082 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I6388de98e4a7e20843a1be88a58bba8d2c9aa0d5 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-HasComments: No
[PATCH] osmo-bts[master]: TRX: permit transmission of all-zero loopback frames
Review at https://gerrit.osmocom.org/3082 TRX: permit transmission of all-zero loopback frames For some reason, osmo-bts-trx attempted to interpret/validate the contents of the downlink TCH block that it was about to transmit. If such checks are made, they should clearly be in the common part above L1SAP, and not in the bts-model specific part. Also, having the checks in place didn't allow us to send an all-zero downlink block, as is required for detection of uplink FER in a loopback testing setup, e.g. with CMU-300. Change-Id: I6388de98e4a7e20843a1be88a58bba8d2c9aa0d5 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 5 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/82/3082/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index a9bcbda..4c3330f 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -471,42 +471,15 @@ switch (tch_mode) { case GSM48_CMODE_SPEECH_V1: /* FR / HR */ - if (chan != TRXC_TCHF) { /* HR */ + if (chan != TRXC_TCHF) /* HR */ len = 15; - if (msgb_l2len(msg_tch) >= 1 -&& (msg_tch->l2h[0] & 0xf0) != 0x00) { - LOGP(DL1C, LOGL_NOTICE, "%s " - "Transmitting 'bad " - "HR frame' trx=%u ts=%u at " - "fn=%u.\n", - trx_chan_desc[chan].name, - l1t->trx->nr, tn, fn); - goto free_bad_msg; - } - break; - } - len = GSM_FR_BYTES; - if (msgb_l2len(msg_tch) >= 1 -&& (msg_tch->l2h[0] >> 4) != 0xd) { - LOGP(DL1C, LOGL_NOTICE, "%s Transmitting 'bad " - "FR frame' trx=%u ts=%u at fn=%u.\n", - trx_chan_desc[chan].name, - l1t->trx->nr, tn, fn); - goto free_bad_msg; - } + else + len = GSM_FR_BYTES; break; case GSM48_CMODE_SPEECH_EFR: /* EFR */ if (chan != TRXC_TCHF) goto inval_mode2; len = GSM_EFR_BYTES; - if (msgb_l2len(msg_tch) >= 1 -&& (msg_tch->l2h[0] >> 4) != 0xc) { - LOGP(DL1C, LOGL_NOTICE, "%s Transmitting 'bad " - "EFR frame' trx=%u ts=%u at fn=%u.\n", - trx_chan_desc[chan].name, - l1t->trx->nr, tn, fn); - goto free_bad_msg; - } break; case GSM48_CMODE_SPEECH_AMR: /* AMR */ len = osmo_amr_rtp_dec(msg_tch->l2h, msgb_l2len(msg_tch), @@ -1146,10 +1119,12 @@ if (lchan->tch.dtx.ul_sid) return 0; /* DTXu: pause in progress */ memset(tch_data, 0, GSM_FR_BYTES); + tch_data[0] = 0xd0; rc = GSM_FR_BYTES; break; case GSM48_CMODE_SPEECH_EFR: /* EFR */ memset(tch_data, 0, GSM_EFR_BYTES); + tch_data[0] = 0xc0; rc = GSM_EFR_BYTES; break; case GSM48_CMODE_SPEECH_AMR: /* AMR */ -- To view, visit https://gerrit.osmocom.org/3082 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6388de98e4a7e20843a1be88a58bba8d2c9aa0d5 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald Welte
osmo-bts[master]: osmo-bts-litecell15: Fix missing frame number in MEAS IND
dexter has restored this change. Change subject: osmo-bts-litecell15: Fix missing frame number in MEAS IND .. Restored -- To view, visit https://gerrit.osmocom.org/2861 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: restore Gerrit-Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237 Gerrit-PatchSet: 4 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max
[MERGED] libosmo-sccp[master]: Revert "SCOC: When sending a CORE/CR, SUA SRC_ADDR == Callin...
Harald Welte has submitted this change and it was merged. Change subject: Revert "SCOC: When sending a CORE/CR, SUA SRC_ADDR == CallingPartyAddress" .. Revert "SCOC: When sending a CORE/CR, SUA SRC_ADDR == CallingPartyAddress" This reverts commit 5527df78adc08b76df07c4b682263b5bdd6181d4. I tried some time to figure out what other changes are needed to make this commit work and fix a confusion, until I noticed: The commit's *log message* is correct that SRC == calling, but the *patch* modifies callED addr to be the SRC, which is wrong. So reverting this commit is indeed the correct way to fix our addresses. Change-Id: Ic76aacc81f87f8885fe04121aead5c79a761ef07 --- M src/sccp_scoc.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/sccp_scoc.c b/src/sccp_scoc.c index 9502953..628b63b 100644 --- a/src/sccp_scoc.c +++ b/src/sccp_scoc.c @@ -483,7 +483,7 @@ xua_msg_add_u32(xua, SUA_IEI_ROUTE_CTX, conn->inst->route_ctx); xua_msg_add_u32(xua, SUA_IEI_PROTO_CLASS, conn->sccp_class); xua_msg_add_u32(xua, SUA_IEI_SRC_REF, conn->conn_id); - xua_msg_add_sccp_addr(xua, SUA_IEI_SRC_ADDR, >called_addr); + xua_msg_add_sccp_addr(xua, SUA_IEI_DEST_ADDR, >called_addr); xua_msg_add_u32(xua, SUA_IEI_SEQ_CTRL, 0); /* TODO */ /* optional: sequence number (class 3 only) */ if (conn->calling_addr.presence) -- To view, visit https://gerrit.osmocom.org/3046 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic76aacc81f87f8885fe04121aead5c79a761ef07 Gerrit-PatchSet: 2 Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
libosmo-sccp[master]: Revert "SCOC: When sending a CORE/CR, SUA SRC_ADDR == Callin...
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3046 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ic76aacc81f87f8885fe04121aead5c79a761ef07 Gerrit-PatchSet: 2 Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-bts[master]: octphy: Allow passing low quality buffers to upper layers
Patch Set 1: > why bother with the extra argument? A length of 0 bytes must mean > a frame with invalid CRC. What other case for zero-length can you > think of? >From the FIXME in the code in l1_if.c, I understand that at some point we want >to check for low quality link in a similar way as we do in sysmobts or >litecell15. As that ocpthy specific code is not there yet, I still prepare the >code to avoid potential bugs when it is implemented by already guiding where >the check and return on error should be done. In the general case, afaik we have 2 different issues here where we don't want to decode the payload: payloadSize==0 or low_quality==true, which afaiu doesn't necessarily imply payloadSize==0 too. -- To view, visit https://gerrit.osmocom.org/3078 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I02bf4bca041fccf96fe2986480251f96248ce2d1 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: No
libosmo-abis[master]: osmo_ortp: Add osmo_rtp_drop_frame API
Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/3070/2/src/trau/osmo_ortp.c File src/trau/osmo_ortp.c: Line 449: int osmo_rtp_drop_frame(struct osmo_rtp_socket *rs, unsigned int duration) drop_frame() sounds like an imperative, i.e. the function will be dropping a frame. It's more a 'dropped_frame', i.e. we are telling the osmo_rtp code that a frame was droped? or something like skipped_frame? -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 2 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
osmo-bts[master]: l1sap.c: Avoid sending RTP frame with empty payload
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3071 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie9053674aa4f43aac20dbd5c865d70317360abbc Gerrit-PatchSet: 3 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-bts[master]: sysmo: Allow passing low quality buffers to upper layers
Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/3056/3/src/osmo-bts-sysmo/l1_if.h File src/osmo-bts-sysmo/l1_if.h: Line 131: int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg, bool low_quality); why bother with the extra argument? A length of 0 bytes must mean a frame with invalid CRC. What other case for zero-length can you think of? -- To view, visit https://gerrit.osmocom.org/3056 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: If5df8940fab833eb4e3ed851880b66987d356031 Gerrit-PatchSet: 3 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
osmo-bts[master]: litecell15/tch.c: Clean up use of empty buffer
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3076 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib9ee967c0f42098b3a0569e9d84f23832eb4f2d5 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-bts[master]: octphy: Allow passing low quality buffers to upper layers
Patch Set 1: why bother with the extra argument? A length of 0 bytes must mean a frame with invalid CRC. What other case for zero-length can you think of? -- To view, visit https://gerrit.osmocom.org/3078 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I02bf4bca041fccf96fe2986480251f96248ce2d1 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-trx[master]: Add '-t' command line option to enable SCHED_RR
Patch Set 1: I would actually vote for making SCHED_RR a default, preferrably with an even higher priority (e.g. 10) than what we'd use as osmo-bts-trx, as osmo-trx is even more important to schedule than osmo-bts. What do you guys think? -- To view, visit https://gerrit.osmocom.org/3080 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia2452b9763960b2be37fbeee9d832554da68a53f Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[PATCH] osmo-trx[master]: Add '-t' command line option to enable SCHED_RR
Review at https://gerrit.osmocom.org/3080 Add '-t' command line option to enable SCHED_RR SCHED_RR allows us to operate osmo-trx reliable even under exceptionally high system load, as the realtime scheduler priority will have higher priority than the other "regular" tasks on the system. Change-Id: Ia2452b9763960b2be37fbeee9d832554da68a53f Closes: OS#2344 --- M Transceiver52M/osmo-trx.cpp 1 file changed, 29 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/80/3080/1 diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp index 31a99cf..61b3098 100644 --- a/Transceiver52M/osmo-trx.cpp +++ b/Transceiver52M/osmo-trx.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -77,6 +78,7 @@ double rssi_offset; bool swap_channels; bool edge; + int sched_rr; }; ConfigurationTable gConfig; @@ -259,7 +261,8 @@ " -rRandom Normal Burst test mode with TSC\n" " -ARandom Access Burst test mode with delay\n" " -RRSSI to dBm offset in dB (default=0)\n" - " -SSwap channels (UmTRX only)\n", + " -SSwap channels (UmTRX only)\n" + " -tSCHED_RR real-time priority (1..32)\n", "EMERG, ALERT, CRT, ERR, WARNING, NOTICE, INFO, DEBUG"); } @@ -283,8 +286,9 @@ config->rssi_offset = 0.0; config->swap_channels = false; config->edge = false; + config->sched_rr = -1; - while ((option = getopt(argc, argv, "ha:l:i:p:c:dmxgfo:s:b:r:A:R:Se")) != -1) { + while ((option = getopt(argc, argv, "ha:l:i:p:c:dmxgfo:s:b:r:A:R:Set:")) != -1) { switch (option) { case 'h': print_help(); @@ -343,6 +347,9 @@ case 'e': config->edge = true; break; + case 't': + config->sched_rr = atoi(optarg); + break; default: print_help(); exit(0); @@ -386,6 +393,21 @@ exit(0); } +static int set_sched_rr(int prio) +{ + struct sched_param param; + int rc; + memset(, 0, sizeof(param)); + param.sched_priority = prio; + printf("Setting SCHED_RR priority(%d)\n", param.sched_priority); + rc = sched_setscheduler(getpid(), SCHED_RR, ); + if (rc != 0) { + std::cerr << "Config: Setting SCHED_RR failed" << std::endl; + return -1; + } + return 0; +} + int main(int argc, char *argv[]) { int type, chans, ref; @@ -424,6 +446,11 @@ handle_options(argc, argv, ); + if (config.sched_rr != -1) { + if (set_sched_rr(config.sched_rr) < 0) + return EXIT_FAILURE; + } + setup_signal_handlers(); /* Check database sanity */ -- To view, visit https://gerrit.osmocom.org/3080 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia2452b9763960b2be37fbeee9d832554da68a53f Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: Harald Welte
[MERGED] osmo-bts[master]: Revert "sysmobts: normalize frame number in measurement indi...
dexter has submitted this change and it was merged. Change subject: Revert "sysmobts: normalize frame number in measurement indication" .. Revert "sysmobts: normalize frame number in measurement indication" This reverts commit 88b2cc30a6a7253c2c4c76178e5727fad48556ca. Change-Id: I30f37a9feef24a45e254377502615d717dba9765 --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 2 insertions(+), 10 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index f564836..837fc5c 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -897,14 +897,12 @@ } static int process_meas_res(struct gsm_bts_trx *trx, uint8_t chan_nr, - uint32_t fn, GsmL1_PhDataInd_t *data_ind) + uint32_t fn, GsmL1_MeasParam_t *m) { struct osmo_phsap_prim l1sap; memset(, 0, sizeof(l1sap)); osmo_prim_init(, SAP_GSM_PH, PRIM_MPH_INFO, PRIM_OP_INDICATION, NULL); - GsmL1_MeasParam_t *m = _ind->measParam; - l1sap.u.info.type = PRIM_INFO_MEAS; l1sap.u.info.u.meas_ind.chan_nr = chan_nr; l1sap.u.info.u.meas_ind.ta_offs_qbits = m->i16BurstTiming; @@ -915,12 +913,6 @@ * physical radio link, the uplink is delayed by 3 timeslots, we need * to compensate for that delay. */ l1sap.u.info.u.meas_ind.fn = fn + 3; - - /* Align frame number with measurement period ends */ - if (data_ind->sapi == GsmL1_Sapi_TchF) - l1sap.u.info.u.meas_ind.fn += 1; - else if (data_ind->sapi == GsmL1_Sapi_TchH && data_ind->subCh == GsmL1_SubCh_0) - l1sap.u.info.u.meas_ind.fn += 1; /* l1sap wants to take msgb ownership. However, as there is no * msg, it will msgb_free(l1sap.oph.msg == NULL) */ @@ -949,7 +941,7 @@ fn = data_ind->u32Fn; link_id = (data_ind->sapi == GsmL1_Sapi_Sacch) ? LID_SACCH : LID_DEDIC; - process_meas_res(trx, chan_nr, fn, data_ind); + process_meas_res(trx, chan_nr, fn, _ind->measParam); if (data_ind->measParam.fLinkQuality < btsb->min_qual_norm && data_ind->msgUnitParam.u8Size != 0) { -- To view, visit https://gerrit.osmocom.org/3050 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I30f37a9feef24a45e254377502615d717dba9765 Gerrit-PatchSet: 2 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter
[ABANDON] osmo-bts[master]: osmo-bts-litecell15: Fix missing frame number in MEAS IND
dexter has abandoned this change. Change subject: osmo-bts-litecell15: Fix missing frame number in MEAS IND .. Abandoned -- To view, visit https://gerrit.osmocom.org/2861 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: abandon Gerrit-Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237 Gerrit-PatchSet: 4 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: dexterGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max
osmo-trx[master]: deb: remove unused dependency
Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/3079 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id2ab1facad703fa0c1d45084e70d41e73dbad6e7 Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: MaxGerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Ivan Kluchnikov Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Tom Tsou Gerrit-HasComments: No
[PATCH] osmo-trx[master]: deb: remove unused dependency
Review at https://gerrit.osmocom.org/3079 deb: remove unused dependency The libdbd dependency is not used because libsqlite3 is used directly - adjust debian/control to match. Change-Id: Id2ab1facad703fa0c1d45084e70d41e73dbad6e7 Related: OS#1929 --- M debian/control 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/79/3079/1 diff --git a/debian/control b/debian/control index 0e3b714..12da64a 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), autotools-dev, autoconf-archive, - libdbd-sqlite3, libsqlite3-dev, pkg-config, dh-autoreconf, @@ -20,7 +19,7 @@ Package: osmo-trx Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libdbd-sqlite3 +Depends: ${shlibs:Depends}, ${misc:Depends}, libsqlite3-0 Description: SDR transceiver that implements Layer 1 of a GSM BTS OsmoTRX is a software-defined radio transceiver that implements the Layer 1 physical layer of a BTS comprising the following 3GPP specifications: -- To view, visit https://gerrit.osmocom.org/3079 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id2ab1facad703fa0c1d45084e70d41e73dbad6e7 Gerrit-PatchSet: 1 Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Owner: Max
[PATCH] osmo-bts[master]: sysmo: Allow passing low quality buffers to upper layers
Hello Max, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3056 to look at the new patch set (#3). sysmo: Allow passing low quality buffers to upper layers We want to always call l1if_tch_rx in order to avoid losing triggering events on the upper layer. With this change, the upper layer will increase correctly seq + ts for RTP. It will then send an RTP packet with only the header and no payload, which is not correct but at least we avoid drifting the RTP clock. Upcoming patch in the series solves this issue. Change-Id: If5df8940fab833eb4e3ed851880b66987d356031 --- M src/osmo-bts-sysmo/l1_if.c M src/osmo-bts-sysmo/l1_if.h M src/osmo-bts-sysmo/tch.c 3 files changed, 20 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/56/3056/3 diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index f564836..776ec01 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -937,6 +937,7 @@ struct osmo_phsap_prim *l1sap; uint32_t fn; int rc = 0; + bool low_quality = data_ind->measParam.fLinkQuality < btsb->min_qual_norm; chan_nr = chan_nr_by_sapi(>ts[data_ind->u8Tn], data_ind->sapi, data_ind->subCh, data_ind->u8Tn, data_ind->u32Fn); @@ -951,12 +952,6 @@ process_meas_res(trx, chan_nr, fn, data_ind); - if (data_ind->measParam.fLinkQuality < btsb->min_qual_norm -&& data_ind->msgUnitParam.u8Size != 0) { - msgb_free(l1p_msg); - return 0; - } - DEBUGP(DL1P, "Rx PH-DATA.ind %s (hL2 %08x): %s", get_value_string(femtobts_l1sapi_names, data_ind->sapi), data_ind->hLayer2, @@ -968,11 +963,20 @@ if (data_ind->sapi == GsmL1_Sapi_TchF || data_ind->sapi == GsmL1_Sapi_TchH) { /* TCH speech frame handling */ - rc = l1if_tch_rx(trx, chan_nr, l1p_msg); + rc = l1if_tch_rx(trx, chan_nr, l1p_msg, low_quality); msgb_free(l1p_msg); return rc; } + /* Discard frames with bad quality payload only after making sure we +* signal upper layers for TCH frames, because it expects to always be +* notified even if the content of the frame is not correct, otherwise +* it losses events and the RTP clock drifts. */ + if (low_quality && data_ind->msgUnitParam.u8Size != 0) { + msgb_free(l1p_msg); + return 0; + } + /* fill L1SAP header */ sap_msg = l1sap_msgb_alloc(data_ind->msgUnitParam.u8Size); l1sap = msgb_l1sap_prim(sap_msg); diff --git a/src/osmo-bts-sysmo/l1_if.h b/src/osmo-bts-sysmo/l1_if.h index 033e7f5..6dd2d60 100644 --- a/src/osmo-bts-sysmo/l1_if.h +++ b/src/osmo-bts-sysmo/l1_if.h @@ -128,7 +128,7 @@ int l1if_tch_encode(struct gsm_lchan *lchan, uint8_t *data, uint8_t *len, const uint8_t *rtp_pl, unsigned int rtp_pl_len, uint32_t fn, bool use_cache, bool marker); -int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg); +int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg, bool low_quality); int l1if_tch_fill(struct gsm_lchan *lchan, uint8_t *l1_buffer); struct msgb *gen_empty_tch_msg(struct gsm_lchan *lchan, uint32_t fn); diff --git a/src/osmo-bts-sysmo/tch.c b/src/osmo-bts-sysmo/tch.c index a12b1a7..584499b 100644 --- a/src/osmo-bts-sysmo/tch.c +++ b/src/osmo-bts-sysmo/tch.c @@ -502,7 +502,7 @@ } /*! \brief receive a traffic L1 primitive for a given lchan */ -int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg) +int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg, bool low_quality) { GsmL1_Prim_t *l1p = msgb_l1prim(l1p_msg); GsmL1_PhDataInd_t *data_ind = >u.phDataInd; @@ -513,10 +513,13 @@ if (is_recv_only(lchan->abis_ip.speech_mode)) return -EAGAIN; - if (data_ind->msgUnitParam.u8Size < 1) { - LOGP(DL1C, LOGL_ERROR, "chan_nr %d Rx Payload size 0\n", - chan_nr); - return -EINVAL; + if (low_quality || data_ind->msgUnitParam.u8Size < 1) { + LOGP(DL1C, LOGL_ERROR, "chan_nr %d Rx Payload size %u low_quality %d\n", + chan_nr, data_ind->msgUnitParam.u8Size, low_quality); + + /* Push empty payload to upper layers */ + rmsg = msgb_alloc_headroom(256, 128, "L1C-to-RTP"); + return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn); } payload_type = data_ind->msgUnitParam.u8Buffer[0]; -- To view, visit https://gerrit.osmocom.org/3056 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: If5df8940fab833eb4e3ed851880b66987d356031 Gerrit-PatchSet:
[PATCH] osmo-bts[master]: octphy: Allow passing low quality buffers to upper layers
Review at https://gerrit.osmocom.org/3078 octphy: Allow passing low quality buffers to upper layers We want to always call l1if_tch_rx in order to avoid losing triggering events on the upper layer. With this change, the upper layer will increase correctly seq + ts for RTP. It will then send an RTP packet with only the header and no payload, which is not correct but at least we avoid drifting the RTP clock. Upcoming patch in the series solves this issue. Change-Id: I02bf4bca041fccf96fe2986480251f96248ce2d1 --- M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-octphy/l1_if.h M src/osmo-bts-octphy/l1_tch.c 3 files changed, 20 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/78/3078/1 diff --git a/src/osmo-bts-octphy/l1_if.c b/src/osmo-bts-octphy/l1_if.c index 8b31630..12a096b 100644 --- a/src/osmo-bts-octphy/l1_if.c +++ b/src/osmo-bts-octphy/l1_if.c @@ -1026,6 +1026,7 @@ uint8_t sapi = (uint8_t) data_ind->LchId.bySAPI; uint8_t ts_num = (uint8_t) data_ind->LchId.byTimeslotNb; uint8_t sc = (uint8_t) data_ind->LchId.bySubChannelNb; + bool low_quality = false; /* FIXME: check min_qual_norm! */ /* Need to combine two 16bit MSB and LSB to form 32bit FN */ fn = data_ind->Data.ulFrameNumber; @@ -1050,8 +1051,6 @@ process_meas_res(trx, chan_nr, fn, data_ind->Data.ulDataLength, _ind->MeasurementInfo); - /* FIXME: check min_qual_norm! */ - DEBUGP(DL1C, "Rx PH-DATA.ind %s: %s data_len:%d \n", get_value_string(octphy_l1sapi_names, sapi), osmo_hexdump(data_ind->Data.abyDataContent, @@ -1062,10 +1061,18 @@ if (sapi == cOCTVC1_GSM_SAPI_ENUM_TCHF || sapi == cOCTVC1_GSM_SAPI_ENUM_TCHH) { /* TCH speech frame handling */ - rc = l1if_tch_rx(trx, chan_nr, data_ind); + rc = l1if_tch_rx(trx, chan_nr, data_ind, low_quality); return rc; } + /* Discard frames with bad quality payload only after making sure we +* signal upper layers for TCH frames, because it expects to always be +* notified even if the content of the frame is not correct, otherwise +* it losses events and the RTP clock drifts. */ + if (low_quality && data_ind->Data.ulDataLength != 0) { + return 0; + } + /* get rssi, rssi is in q8 format */ rssi = (int8_t) (data_ind->MeasurementInfo.sRSSIDbm >> 8); /* get data pointer and length */ diff --git a/src/osmo-bts-octphy/l1_if.h b/src/osmo-bts-octphy/l1_if.h index 0960482..c1b2e0a 100644 --- a/src/osmo-bts-octphy/l1_if.h +++ b/src/osmo-bts-octphy/l1_if.h @@ -102,7 +102,7 @@ int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, tOCTVC1_GSM_MSG_TRX_LOGICAL_CHANNEL_DATA_INDICATION_EVT * - data_ind); + data_ind, bool low_quality); struct gsm_bts_trx *trx_by_l1h(struct octphy_hdl *fl1h, unsigned int trx_id); diff --git a/src/osmo-bts-octphy/l1_tch.c b/src/osmo-bts-octphy/l1_tch.c index 5693313..366df4f 100644 --- a/src/osmo-bts-octphy/l1_tch.c +++ b/src/osmo-bts-octphy/l1_tch.c @@ -183,7 +183,7 @@ /* brief receive a traffic L1 primitive for a given lchan */ int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, tOCTVC1_GSM_MSG_TRX_LOGICAL_CHANNEL_DATA_INDICATION_EVT * - data_ind) + data_ind, bool low_quality) { uint32_t payload_type = data_ind->Data.ulPayloadType; uint8_t *payload = data_ind->Data.abyDataContent; @@ -193,11 +193,15 @@ struct gsm_lchan *lchan = >ts[L1SAP_CHAN2TS(chan_nr)].lchan[l1sap_chan2ss(chan_nr)]; - if (data_ind->Data.ulDataLength < 1) { - LOGP(DL1C, LOGL_DEBUG, "chan_nr %d Rx Payload size 0\n", -chan_nr); - return -EINVAL; + if (low_quality || data_ind->Data.ulDataLength < 1) { + LOGP(DL1C, LOGL_ERROR, "chan_nr %d Rx Payload size %u low_quality %d\n", + chan_nr, data_ind->Data.ulDataLength, low_quality); + + /* Push empty payload to upper layers */ + rmsg = msgb_alloc_headroom(256, 128, "L1C-to-RTP"); + return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->Data.ulFrameNumber); } + payload_len = data_ind->Data.ulDataLength; switch (payload_type) { -- To view, visit https://gerrit.osmocom.org/3078 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I02bf4bca041fccf96fe2986480251f96248ce2d1 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol
[PATCH] osmo-bts[master]: litecell15/tch.c: Clean up use of empty buffer
Review at https://gerrit.osmocom.org/3076 litecell15/tch.c: Clean up use of empty buffer Make code easier to read and avoid reading first byte of the buffer if size is 0. Change-Id: Ib9ee967c0f42098b3a0569e9d84f23832eb4f2d5 --- M src/osmo-bts-litecell15/tch.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/76/3076/1 diff --git a/src/osmo-bts-litecell15/tch.c b/src/osmo-bts-litecell15/tch.c index ffc1eb3..8bed695 100644 --- a/src/osmo-bts-litecell15/tch.c +++ b/src/osmo-bts-litecell15/tch.c @@ -361,9 +361,7 @@ { GsmL1_Prim_t *l1p = msgb_l1prim(l1p_msg); GsmL1_PhDataInd_t *data_ind = >u.phDataInd; - uint8_t payload_type = data_ind->msgUnitParam.u8Buffer[0]; - uint8_t *payload = data_ind->msgUnitParam.u8Buffer + 1; - uint8_t payload_len, sid_first[9] = { 0 }; + uint8_t *payload, payload_type, payload_len, sid_first[9] = { 0 }; struct msgb *rmsg = NULL; struct gsm_lchan *lchan = >ts[L1SAP_CHAN2TS(chan_nr)].lchan[l1sap_chan2ss(chan_nr)]; @@ -375,6 +373,9 @@ chan_nr); return -EINVAL; } + + payload_type = data_ind->msgUnitParam.u8Buffer[0]; + payload = data_ind->msgUnitParam.u8Buffer + 1; payload_len = data_ind->msgUnitParam.u8Size - 1; switch (payload_type) { -- To view, visit https://gerrit.osmocom.org/3076 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib9ee967c0f42098b3a0569e9d84f23832eb4f2d5 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol
[PATCH] osmo-bts[master]: litecell15: Allow passing low quality buffers to upper layers
Review at https://gerrit.osmocom.org/3077 litecell15: Allow passing low quality buffers to upper layers We want to always call l1if_tch_rx in order to avoid losing triggering events on the upper layer. With this change, the upper layer will increase correctly seq + ts for RTP. It will then send an RTP packet with only the header and no payload, which is not correct but at least we avoid drifting the RTP clock. Upcoming patch in the series solves this issue. Change-Id: I3aba5949ce2ecb2ee3d8a8e57a3e6b2108691160 --- M src/osmo-bts-litecell15/l1_if.c M src/osmo-bts-litecell15/l1_if.h M src/osmo-bts-litecell15/tch.c 3 files changed, 20 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/77/3077/1 diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index 71bb833..6b5fbc6 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -929,6 +929,7 @@ uint8_t *data, len; int rc = 0; int8_t rssi; + bool low_quality = data_ind->measParam.fLinkQuality < btsb->min_qual_norm; chan_nr = chan_nr_by_sapi(>ts[data_ind->u8Tn], data_ind->sapi, data_ind->subCh, data_ind->u8Tn, data_ind->u32Fn); @@ -943,12 +944,6 @@ process_meas_res(trx, chan_nr, _ind->measParam); - if (data_ind->measParam.fLinkQuality < btsb->min_qual_norm -&& data_ind->msgUnitParam.u8Size != 0) { - msgb_free(l1p_msg); - return 0; - } - DEBUGP(DL1C, "Rx PH-DATA.ind %s (hL2 %08x): %s", get_value_string(lc15bts_l1sapi_names, data_ind->sapi), (uint32_t)data_ind->hLayer2, @@ -960,9 +955,18 @@ if (data_ind->sapi == GsmL1_Sapi_TchF || data_ind->sapi == GsmL1_Sapi_TchH) { /* TCH speech frame handling */ - rc = l1if_tch_rx(trx, chan_nr, l1p_msg); + rc = l1if_tch_rx(trx, chan_nr, l1p_msg, low_quality); msgb_free(l1p_msg); return rc; + } + + /* Discard frames with bad quality payload only after making sure we +* signal upper layers for TCH frames, because it expects to always be +* notified even if the content of the frame is not correct, otherwise +* it losses events and the RTP clock drifts. */ + if (low_quality && data_ind->msgUnitParam.u8Size != 0) { + msgb_free(l1p_msg); + return 0; } /* get rssi */ @@ -1575,4 +1579,3 @@ return 0; } - diff --git a/src/osmo-bts-litecell15/l1_if.h b/src/osmo-bts-litecell15/l1_if.h index 7feee56..ecf9b6f 100644 --- a/src/osmo-bts-litecell15/l1_if.h +++ b/src/osmo-bts-litecell15/l1_if.h @@ -92,7 +92,7 @@ int l1if_tch_encode(struct gsm_lchan *lchan, uint8_t *data, uint8_t *len, const uint8_t *rtp_pl, unsigned int rtp_pl_len, uint32_t fn, bool use_cache, bool marker); -int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg); +int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg, bool low_quality); int l1if_tch_fill(struct gsm_lchan *lchan, uint8_t *l1_buffer); struct msgb *gen_empty_tch_msg(struct gsm_lchan *lchan, uint32_t fn); diff --git a/src/osmo-bts-litecell15/tch.c b/src/osmo-bts-litecell15/tch.c index 8bed695..cccfb05 100644 --- a/src/osmo-bts-litecell15/tch.c +++ b/src/osmo-bts-litecell15/tch.c @@ -357,7 +357,7 @@ } /*! \brief receive a traffic L1 primitive for a given lchan */ -int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg) +int l1if_tch_rx(struct gsm_bts_trx *trx, uint8_t chan_nr, struct msgb *l1p_msg, bool low_quality) { GsmL1_Prim_t *l1p = msgb_l1prim(l1p_msg); GsmL1_PhDataInd_t *data_ind = >u.phDataInd; @@ -368,10 +368,13 @@ if (is_recv_only(lchan->abis_ip.speech_mode)) return -EAGAIN; - if (data_ind->msgUnitParam.u8Size < 1) { - LOGP(DL1C, LOGL_ERROR, "chan_nr %d Rx Payload size 0\n", - chan_nr); - return -EINVAL; + if (low_quality || data_ind->msgUnitParam.u8Size < 1) { + LOGP(DL1C, LOGL_ERROR, "chan_nr %d Rx Payload size %u low_quality %d\n", + chan_nr, data_ind->msgUnitParam.u8Size, low_quality); + + /* Push empty payload to upper layers */ + rmsg = msgb_alloc_headroom(256, 128, "L1C-to-RTP"); + return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn); } payload_type = data_ind->msgUnitParam.u8Buffer[0]; -- To view, visit https://gerrit.osmocom.org/3077 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3aba5949ce2ecb2ee3d8a8e57a3e6b2108691160 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol
osmo-bts[master]: sysmo/l1_if.c: Allow passing low quality buffers to upper la...
Patch Set 2: (1 comment) > Is this really necessary on sysmoBTS only? What about other BTS > models? I'll check and provide separate patches for each of them. https://gerrit.osmocom.org/#/c/3056/1/src/osmo-bts-sysmo/l1_if.c File src/osmo-bts-sysmo/l1_if.c: Line 969: } > I think comment right next to the check explaining why we do it that way is It makes sense. I'm still working on this so I may even send a new version with more changes on it (like handling packets considered low quality in l1if_tch_rx in a different way, see https://osmocom.org/issues/2335#note-4 for more context. -- To view, visit https://gerrit.osmocom.org/3056 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: If5df8940fab833eb4e3ed851880b66987d356031 Gerrit-PatchSet: 2 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
[PATCH] libosmo-abis[master]: osmo_ortp: Add osmo_rtp_drop_frame API
Hello Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3070 to look at the new patch set (#2). osmo_ortp: Add osmo_rtp_drop_frame API This API will be used by osmo-bts to maintain the sampling clock of the RTP socket whenever a frame should be sent but it is not available, for instance due to low quality of signal. Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 --- M include/osmocom/trau/osmo_ortp.h M src/trau/osmo_ortp.c 2 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/70/3070/2 diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h index 9eb176f..fa6696c 100644 --- a/include/osmocom/trau/osmo_ortp.h +++ b/include/osmocom/trau/osmo_ortp.h @@ -76,6 +76,7 @@ int osmo_rtp_socket_connect(struct osmo_rtp_socket *rs, const char *ip, uint16_t port); int osmo_rtp_socket_set_pt(struct osmo_rtp_socket *rs, int payload_type); int osmo_rtp_socket_free(struct osmo_rtp_socket *rs); +int osmo_rtp_drop_frame(struct osmo_rtp_socket *rs, unsigned int duration); int osmo_rtp_send_frame(struct osmo_rtp_socket *rs, const uint8_t *payload, unsigned int payload_len, unsigned int duration); int osmo_rtp_send_frame_ext(struct osmo_rtp_socket *rs, const uint8_t *payload, diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index b2ee040..05817aa 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -436,6 +436,27 @@ return osmo_rtp_socket_fdreg(rs); } +/*! \brief Increment seq and timestamp on a RTP socket without sending any packet + * \param[in] rs OsmoRTP socket + * \param[in] duration duration in number of RTP clock ticks + * + * Useful if willing to update the RTP internal clock at a given time but no + * audio content is available. From receiver point of view, it will look like + * a packet was lost somewhere in the path. + * + * \returns 0 on success, <0 in case of error. + */ +int osmo_rtp_drop_frame(struct osmo_rtp_socket *rs, unsigned int duration) +{ + if (rs->flags & OSMO_RTP_F_DISABLED) + return 0; + + uint16_t next_seq = rtp_session_get_seq_number(rs->sess) + 1; + rtp_session_set_seq_number(rs->sess, next_seq); + rs->tx_timestamp += duration; + return 0; +} + /*! \brief Send one RTP frame via a RTP socket * \param[in] rs OsmoRTP socket * \param[in] payload pointer to buffer with RTP payload data -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 2 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol
libosmo-abis[master]: osmo_ortp.c: Add osmo_rtp_drop_frame API
Patch Set 1: > Why only implementation in .c but no .h file? How it's planned to > be used? Please explain in commit message. Indeed I forgot to add the .h file to the commit, thanks for pointing out. -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 1 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: No
libosmo-abis[master]: osmo_ortp.c: Add osmo_rtp_drop_frame API
Patch Set 1: Code-Review-1 Why only implementation in .c but no .h file? How it's planned to be used? Please explain in commit message. -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 1 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-HasComments: No
[PATCH] osmo-bts[master]: l1sap.c: Avoid sending RTP frame with empty payload
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3071 to look at the new patch set (#2). l1sap.c: Avoid sending RTP frame with empty payload Depends on libosmo-abis Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Change-Id: Ie9053674aa4f43aac20dbd5c865d70317360abbc --- M src/common/l1sap.c 1 file changed, 23 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/3071/2 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 1fb6134..6aa1357 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1011,22 +1011,31 @@ msgb_pull(msg, sizeof(*l1sap)); - /* hand msg to RTP code for transmission */ - if (lchan->abis_ip.rtp_socket) - osmo_rtp_send_frame_ext(lchan->abis_ip.rtp_socket, - msg->data, msg->len, fn_ms_adj(fn, lchan), lchan->rtp_tx_marker); - - /* if loopback is enabled, also queue received RTP data */ - if (lchan->loopback) { - /* make sure the queue doesn't get too long */ - queue_limit_to(gsm_lchan_name(lchan), >dl_tch_queue, 1); - /* add new frame to queue */ - msgb_enqueue(>dl_tch_queue, msg); - /* Return 1 to signal that we're still using msg and it should not be freed */ - return 1; + /* Low level layers always call us when TCH content is expected to be +* available, even if the content is not available due to decoding +* issues. Content not available is expected as empty payload. */ + if (msg->len) { + /* hand msg to RTP code for transmission */ + if (lchan->abis_ip.rtp_socket) + osmo_rtp_send_frame_ext(lchan->abis_ip.rtp_socket, + msg->data, msg->len, fn_ms_adj(fn, lchan), lchan->rtp_tx_marker); + /* if loopback is enabled, also queue received RTP data */ + if (lchan->loopback) { + /* make sure the queue doesn't get too long */ + queue_limit_to(gsm_lchan_name(lchan), >dl_tch_queue, 1); + /* add new frame to queue */ + msgb_enqueue(>dl_tch_queue, msg); + /* Return 1 to signal that we're still using msg and it should not be freed */ + return 1; + } + /* Only clear the marker bit once we have sent a RTP packet with it */ + lchan->rtp_tx_marker = false; + } else { + DEBUGP(DL1P, "Dropping RTP frame with lost payload\n"); + if (lchan->abis_ip.rtp_socket) + osmo_rtp_drop_frame(lchan->abis_ip.rtp_socket, fn_ms_adj(fn, lchan)); } - lchan->rtp_tx_marker = false; lchan->tch.last_fn = fn; return 0; } -- To view, visit https://gerrit.osmocom.org/3071 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie9053674aa4f43aac20dbd5c865d70317360abbc Gerrit-PatchSet: 2 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
Build failure of network:osmocom:nightly/libosmocore in xUbuntu_16.10/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_16.10/x86_64 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 224s] [ 224s] lamb24 finished "build libosmocore_0.9.6.20170628.dsc" at Wed Jun 28 19:54:22 UTC 2017. [ 224s] [ 224s] ### VM INTERACTION START ### [ 228s] [ 214.746288] reboot: Power down [ 228s] ### VM INTERACTION END ### [ 228s] build: extracting built packages... [ 228s] DEBS/libosmocore-dev_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocoding0_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocore_0.9.6.20170628_amd64.changes [ 228s] DEBS/libosmovty-doc_0.9.6.20170628_all.deb [ 228s] DEBS/libosmosim0_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocodec-doc_0.9.6.20170628_all.deb [ 228s] DEBS/libosmogb-doc_0.9.6.20170628_all.deb [ 228s] DEBS/libosmocore_0.9.6.20170628.dsc [ 228s] DEBS/libosmogsm-doc_0.9.6.20170628_all.deb [ 228s] DEBS/libosmocore8_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmovty3_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocore-doc_0.9.6.20170628_all.deb [ 228s] DEBS/libosmocoding-doc_0.9.6.20170628_all.deb [ 228s] DEBS/libosmogsm7_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmogb4_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocore_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocore-utils_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocore-dbg_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocore_0.9.6.20170628.tar.xz [ 228s] DEBS/libosmoctrl0_0.9.6.20170628_amd64.deb [ 228s] DEBS/libosmocodec0_0.9.6.20170628_amd64.deb [ 228s] OTHER/_statistics -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 292s] lamb66 finished "build libosmocore_0.9.6.20170628.dsc" at Wed Jun 28 19:55:17 UTC 2017. [ 292s] [ 292s] ### VM INTERACTION START ### [ 293s] Powering off. [ 293s] [ 279.409997] reboot: Power down [ 293s] ### VM INTERACTION END ### [ 293s] build: extracting built packages... [ 293s] DEBS/libosmocore_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocodec0_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocore_0.9.6.20170628.dsc [ 293s] DEBS/libosmocore-doc_0.9.6.20170628_all.deb [ 293s] DEBS/libosmoctrl0_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmogb4_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocore_0.9.6.20170628_amd64.changes [ 293s] DEBS/libosmocodec-doc_0.9.6.20170628_all.deb [ 293s] DEBS/libosmovty3_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocore_0.9.6.20170628.tar.xz [ 293s] DEBS/libosmogsm7_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocore-utils_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocoding-doc_0.9.6.20170628_all.deb [ 293s] DEBS/libosmovty-doc_0.9.6.20170628_all.deb [ 293s] DEBS/libosmocoding0_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocore-dbg_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocore-dev_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmocore8_0.9.6.20170628_amd64.deb [ 293s] DEBS/libosmogsm-doc_0.9.6.20170628_all.deb [ 293s] DEBS/libosmogb-doc_0.9.6.20170628_all.deb [ 293s] DEBS/libosmosim0_0.9.6.20170628_amd64.deb [ 293s] OTHER/_statistics -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/libosmocore in xUbuntu_17.04/i586
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_17.04/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 211s] [ 211s] build79 finished "build libosmocore_0.9.6.20170628.dsc" at Wed Jun 28 19:53:58 UTC 2017. [ 211s] [ 211s] ### VM INTERACTION START ### [ 214s] [ 202.569182] reboot: Power down [ 215s] ### VM INTERACTION END ### [ 215s] build: extracting built packages... [ 215s] DEBS/libosmogb-doc_0.9.6.20170628_all.deb [ 215s] DEBS/libosmocore_0.9.6.20170628.dsc [ 215s] DEBS/libosmocodec-doc_0.9.6.20170628_all.deb [ 215s] DEBS/libosmocodec0_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocore-dbg_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocore8_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmogb4_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocore_0.9.6.20170628.tar.xz [ 215s] DEBS/libosmoctrl0_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocore_0.9.6.20170628_i386.changes [ 215s] DEBS/libosmogsm-doc_0.9.6.20170628_all.deb [ 215s] DEBS/libosmogsm7_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocore-utils_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocoding0_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmosim0_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocore-doc_0.9.6.20170628_all.deb [ 215s] DEBS/libosmocore_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmocoding-doc_0.9.6.20170628_all.deb [ 215s] DEBS/libosmocore-dev_0.9.6.20170628_i386.deb [ 215s] DEBS/libosmovty-doc_0.9.6.20170628_all.deb [ 215s] DEBS/libosmovty3_0.9.6.20170628_i386.deb [ 215s] OTHER/_statistics -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/libosmocore in Debian_9.0/i586
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_9.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 638s] [ 638s] cloud121 finished "build libosmocore_0.9.6.20170628.dsc" at Wed Jun 28 20:01:15 UTC 2017. [ 638s] [ 638s] ### VM INTERACTION START ### [ 641s] [ 613.459662] reboot: Power down [ 647s] ### VM INTERACTION END ### [ 647s] build: extracting built packages... [ 648s] DEBS/libosmocoding0_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore-dbg_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocodec-doc_0.9.6.20170628_all.deb [ 648s] DEBS/libosmocodec0_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore-utils_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore_0.9.6.20170628_i386.changes [ 648s] DEBS/libosmovty-doc_0.9.6.20170628_all.deb [ 648s] DEBS/libosmosim0_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore-dev_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore_0.9.6.20170628.dsc [ 648s] DEBS/libosmocore-doc_0.9.6.20170628_all.deb [ 648s] DEBS/libosmoctrl0_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore_0.9.6.20170628.tar.xz [ 648s] DEBS/libosmocoding-doc_0.9.6.20170628_all.deb [ 648s] DEBS/libosmogb-doc_0.9.6.20170628_all.deb [ 648s] DEBS/libosmogsm7_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmovty3_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmocore8_0.9.6.20170628_i386.deb [ 648s] DEBS/libosmogsm-doc_0.9.6.20170628_all.deb [ 648s] DEBS/libosmogb4_0.9.6.20170628_i386.deb [ 648s] OTHER/_statistics -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/libosmocore in Debian_9.0/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_9.0/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 255s] [ 255s] lamb15 finished "build libosmocore_0.9.6.20170628.dsc" at Wed Jun 28 19:54:39 UTC 2017. [ 255s] [ 255s] ### VM INTERACTION START ### [ 258s] [ 243.854006] reboot: Power down [ 258s] ### VM INTERACTION END ### [ 258s] build: extracting built packages... [ 258s] DEBS/libosmocodec0_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmovty-doc_0.9.6.20170628_all.deb [ 258s] DEBS/libosmocore_0.9.6.20170628.tar.xz [ 258s] DEBS/libosmogsm-doc_0.9.6.20170628_all.deb [ 258s] DEBS/libosmoctrl0_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmosim0_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocore_0.9.6.20170628_amd64.changes [ 258s] DEBS/libosmocore-dbg_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmogb-doc_0.9.6.20170628_all.deb [ 258s] DEBS/libosmocore_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocoding-doc_0.9.6.20170628_all.deb [ 258s] DEBS/libosmogb4_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocore8_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocore-utils_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmovty3_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocore-dev_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocodec-doc_0.9.6.20170628_all.deb [ 258s] DEBS/libosmogsm7_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocore_0.9.6.20170628.dsc [ 258s] DEBS/libosmocoding0_0.9.6.20170628_amd64.deb [ 258s] DEBS/libosmocore-doc_0.9.6.20170628_all.deb [ 258s] OTHER/_statistics -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/libosmocore in xUbuntu_16.04/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 344s] [ 344s] lamb04 finished "build libosmocore_0.9.6.20170628.dsc" at Wed Jun 28 19:56:12 UTC 2017. [ 344s] [ 344s] ### VM INTERACTION START ### [ 348s] [ 331.394824] reboot: Power down [ 348s] ### VM INTERACTION END ### [ 348s] build: extracting built packages... [ 348s] DEBS/libosmovty-doc_0.9.6.20170628_all.deb [ 348s] DEBS/libosmovty3_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmocore-utils_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmocodec-doc_0.9.6.20170628_all.deb [ 348s] DEBS/libosmocoding0_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmosim0_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmocore_0.9.6.20170628.dsc [ 348s] DEBS/libosmogb4_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmoctrl0_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmocore_0.9.6.20170628.tar.xz [ 348s] DEBS/libosmocodec0_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmocore_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmogsm7_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmocore-doc_0.9.6.20170628_all.deb [ 348s] DEBS/libosmocore-dbg_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmocore-dev_0.9.6.20170628_amd64.deb [ 348s] DEBS/libosmogsm-doc_0.9.6.20170628_all.deb [ 348s] DEBS/libosmocoding-doc_0.9.6.20170628_all.deb [ 348s] DEBS/libosmocore_0.9.6.20170628_amd64.changes [ 348s] DEBS/libosmogb-doc_0.9.6.20170628_all.deb [ 348s] DEBS/libosmocore8_0.9.6.20170628_amd64.deb [ 348s] OTHER/_statistics -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)