pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/28071 )
Change subject: input/ipaccess: Avoid extra poll() call when e1i_ts tx queue becomes empty
......................................................................
input/ipaccess: Avoid extra poll() call when e1i_ts tx queue becomes empty
Before this patch, the logic (both for delayed tx and immediate tx)
always left the WRITE flag set, and relied on an extra call back from
the main loop (poll()) to disable the flag until it found out there was
nothing else to send.
Instead, let's disable it immediatelly at the time we submit the last
message in the queue.
Change-Id: I0e5da5d1342f352d0e2bca9ee39c768bccb2c8d5
---
M src/input/ipaccess.c
1 file changed, 17 insertions(+), 3 deletions(-)
Approvals:
Jenkins Builder: Verified
osmith: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c
index ca48d21..07fd814 100644
--- a/src/input/ipaccess.c
+++ b/src/input/ipaccess.c
@@ -477,12 +477,24 @@
}
}
+static bool e1i_ts_has_pending_tx_msgs(struct e1inp_ts *e1i_ts)
+{
+ struct e1inp_sign_link *link;
+ llist_for_each_entry(link, &e1i_ts->sign.sign_links, list) {
+ if (!llist_empty(&link->tx_list)) {
+ return true;
+ }
+ }
+ return false;
+}
+
static void timeout_ts1_write(void *data)
{
struct e1inp_ts *e1i_ts = (struct e1inp_ts *)data;
/* trigger write of ts1, due to tx delay timer */
- ts_want_write(e1i_ts);
+ if (e1i_ts_has_pending_tx_msgs(e1i_ts))
+ ts_want_write(e1i_ts);
}
static int __handle_ts1_write(struct osmo_fd *bfd, struct e1inp_line *line)
@@ -535,9 +547,11 @@
/* set tx delay timer for next event */
osmo_timer_setup(&e1i_ts->sign.tx_timer, timeout_ts1_write, e1i_ts);
osmo_timer_schedule(&e1i_ts->sign.tx_timer, 0, e1i_ts->sign.delay);
- }
-
+ } else {
out:
+ if (!e1i_ts_has_pending_tx_msgs(e1i_ts))
+ osmo_fd_write_disable(bfd);
+ }
msgb_free(msg);
return ret;
err:
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/28071
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I0e5da5d1342f352d0e2bca9ee39c768bccb2c8d5
Gerrit-Change-Number: 28071
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/28101 )
Change subject: osmocom-bb-host-master: modernize
......................................................................
osmocom-bb-host-master: modernize
Do not set up the Osmocom repository inside osmocom-bb-host-master, it
is done in debian-bullseye-build. Without this patch, we actually
installed the debian 9 version of libosmocore-dev in the debian 11
container.
This is part 1/2 of fixing TTCN3-centos-bts-test, which has been failing
since OSMOCOM_REPO_MIRROR was changed in osmo-ci.git. Part 2 is in
osmo-ci I8201f34a0f9747eea78c358a626cc3981d7407c4.
Change-Id: I78e0445a1b82e5cd72ecaa86e8fe25516b19f485
---
M osmocom-bb-host-master/Dockerfile
1 file changed, 0 insertions(+), 14 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/01/28101/1
diff --git a/osmocom-bb-host-master/Dockerfile b/osmocom-bb-host-master/Dockerfile
index 3f9c108..21c7f31 100644
--- a/osmocom-bb-host-master/Dockerfile
+++ b/osmocom-bb-host-master/Dockerfile
@@ -1,24 +1,10 @@
ARG USER
ARG DISTRO
-ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org"
FROM $USER/$DISTRO-build
# Arguments used after FROM must be specified again
ARG DISTRO
-ARG OSMOCOM_REPO_TESTSUITE_MIRROR="http://download.opensuse.org"
-
-MAINTAINER Harald Welte <laforge(a)gnumonks.org>
-
ARG OSMO_BB_BRANCH="master"
-ARG OSMOCOM_REPO="$OSMOCOM_REPO_TESTSUITE_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/"
-
-COPY .common/Release.key /tmp/Release.key
-
-RUN apt-key add /tmp/Release.key && \
- rm /tmp/Release.key && \
- echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-nightly.list
-
-ADD $OSMOCOM_REPO/Release /tmp/Release
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libosmocore-dev && \
--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/28101
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I78e0445a1b82e5cd72ecaa86e8fe25516b19f485
Gerrit-Change-Number: 28101
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newchange
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/28100 )
Change subject: jobs: TTCN3-centos: set OSMOCOM_REPO_TESTSUITE_MIRROR
......................................................................
jobs: TTCN3-centos: set OSMOCOM_REPO_TESTSUITE_MIRROR
In previous patch Id114d55edc2ba92f7851243ab7df51db332079c4, only the
OSMOCOM_REPO_MIRROR should have been overridden. However
OSMOCOM_REPO_TESTSUITE_MIRROR defaults to OSMOCOM_REPO_MIRROR, so
explicitly set it in this patch to the opensuse mirror.
This fixes problems while building debian-bullseye-titan caused by the
different directory structure of both mirrors, and OSMOCOM_REPO_PATH
intentionally not taken into account while building the testsuite
docker image.
This is part 2/2 of fixing TTCN3-centos-bts-test, which has been failing
since OSMOCOM_REPO_MIRROR was changed in osmo-ci.git. Part 1 is in
docker-playground I78e0445a1b82e5cd72ecaa86e8fe25516b19f485.
Change-Id: I8201f34a0f9747eea78c358a626cc3981d7407c4
---
M jobs/ttcn3-testsuites.yml
1 file changed, 1 insertion(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/00/28100/1
diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml
index af6e482..5de6310 100644
--- a/jobs/ttcn3-testsuites.yml
+++ b/jobs/ttcn3-testsuites.yml
@@ -491,6 +491,7 @@
;;
TTCN3-centos-*)
DIR="$(echo "{job-name}" | sed s/^TTCN3-centos\-/ttcn3-/)"
+ export OSMOCOM_REPO_TESTSUITE_MIRROR="http://download.opensuse.org"
export OSMOCOM_REPO_MIRROR="https://downloads.osmocom.org"
export OSMOCOM_REPO_PATH="obs-mirror/.previous"
export IMAGE_SUFFIX="master-centos8"
--
To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/28100
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: I8201f34a0f9747eea78c358a626cc3981d7407c4
Gerrit-Change-Number: 28100
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newchange
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/28099 )
Change subject: Add new Manuall "OsmoBSC CBSP Protocol Specification"
......................................................................
Add new Manuall "OsmoBSC CBSP Protocol Specification"
This document decribes the level of CBSP support in the codebase.
Related: SYS#5945
Change-Id: I2e18e167281fac3abaf380089ff883738ebaa0a0
---
M doc/manuals/Makefile.am
A doc/manuals/cbsp/messages.adoc
A doc/manuals/cbsp/procedures.adoc
A doc/manuals/osmobsc-cbsp-docinfo.xml
A doc/manuals/osmobsc-cbsp.adoc
5 files changed, 268 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/99/28099/1
diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am
index c86f215..8b2a8ef 100644
--- a/doc/manuals/Makefile.am
+++ b/doc/manuals/Makefile.am
@@ -1,10 +1,13 @@
EXTRA_DIST = aoip-mgw-options.adoc \
aoip-mgw-options-docinfo.xml \
+ osmobsc-cbsp.adoc \
+ osmobsc-cbsp-docinfo.xml \
osmobsc-usermanual.adoc \
osmobsc-usermanual-docinfo.xml \
osmobsc-vty-reference.xml \
osmux-reference.adoc \
osmux-reference-docinfo.xml \
+ cbsp \
chapters \
message-sequences \
mgw \
@@ -13,9 +16,10 @@
vty
if BUILD_MANUALS
- ASCIIDOC = osmobsc-usermanual.adoc osmux-reference.adoc aoip-mgw-options.adoc
+ ASCIIDOC = osmobsc-usermanual.adoc osmobsc-cbsp.adoc osmux-reference.adoc aoip-mgw-options.adoc
include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc
osmobsc-usermanual.pdf: $(srcdir)/chapters/*.adoc $(srcdir)/chapters/*.dot
+ osmobsc-cbsp.pdf: $(srcdir)/cbsp/*.adoc #$(srcdir)/cbsp/*.dot $(srcdir)/abis/*.msc
aoip-mgw-options.pdf: $(srcdir)/aoip-mgw-options.adoc $(srcdir)/mgw/*.msc
VTY_REFERENCE = osmobsc-vty-reference.xml
diff --git a/doc/manuals/cbsp/messages.adoc b/doc/manuals/cbsp/messages.adoc
new file mode 100644
index 0000000..26d7d05
--- /dev/null
+++ b/doc/manuals/cbsp/messages.adoc
@@ -0,0 +1,75 @@
+== CBSP Messages
+
+=== List of Messages
+
+The following tables list the CBSP messages used by OsmoBSC BSC-CBC interface,
+grouped by their level of compliance with 3GPP TS 48.049.
+
+==== Messages Compliant With TS 48.049
+
+Specific additions and limitations apply, see the linked sections.
+
+.Messages compliant with TS 48.049
+[options="header",cols="10%,20%,45%,5%,20%"]
+|===
+| TS 48.049 § | This document § | Message | <-/-> | Received/Sent by OsmoBSC
+| 8.1.3.1 | - | WRITE-REPLACE | <- | Received
+| 8.1.3.2 | - | WRITE-REPLACE COMPLETE | -> | Sent
+| 8.1.3.3 | - | WRITE-REPLACE FAILURE | -> | Sent
+| 8.1.3.4 | - | KILL | <- | Received
+| 8.1.3.5 | - | KILL COMPLETE | -> | Sent
+| 8.1.3.6 | - | KILL FAILURE | -> | Sent
+| 8.1.3.10 | - | MESSAGE STATUS QUERY | <- | Received
+| 8.1.3.11 | - | MESSAGE STATUS QUERY COMPLETE | -> | Sent
+| 8.1.3.12 | - | MESSAGE STATUS QUERY FAILURE | -> | Sent
+| 8.1.3.16 | - | RESET | <- | Received
+| 8.1.3.17 | - | RESET COMPLETE | -> | Sent
+| 8.1.3.18 | <<RESET_FAILURE>> | RESET FAILURE | -> | Sent
+| 8.1.3.18a | <<KEEP_ALIVE>> | KEEP-ALIVE | <- | Received
+| 8.1.3.18b | - | KEEP-ALIVE COMPLETE | -> | Sent
+| 8.1.3.19 | <<RESTART>> | RESTART | -> | Sent
+|===
+
+==== Messages Not Implemented by OsmoBSC
+
+.3GPP TS 48.049 messages not implemented by OsmoBSC
+[options="header",cols="30%,45%,5%,20%"]
+|===
+| TS 48.049 § | Message | <-/-> | Received/Sent by OsmoBSC
+| 8.1.3.7 | LOAD QUERY | <- | Received
+| 8.1.3.8 | LOAD QUERY COMPLETE | -> | Sent
+| 8.1.3.9 | LOAD QUERY FAILURE | -> | Sent
+| 8.1.3.13 | SET-DRX | <- | Received
+| 8.1.3.14 | SET-DRX COMPLETE | -> | Sent
+| 8.1.3.15 | SET-DRX FAILURE | -> | Sent
+| 8.1.3.20 | FAILURE | -> | Sent
+| 8.1.3.21 | ERROR INDICATION | -> | Sent
+|===
+
+
+=== Message Limitation Details
+
+[[RESET_FAILURE]]
+==== RESET FAILURE
+
+Encoding of this message is implemented, but there is currently no
+condition in the OsmoBSC code that would make a RESET operation fail on
+an existing cell.
+
+The RESET FAILURE message hence only occurs if the CBC were to identify
+a non-existent cell in its _Cell List IE_.
+
+[[KEEP_ALIVE]]
+==== KEEP-ALIVE
+
+The message is received and generates a corresponding KEEP-ALIVE
+COMPLETE answer. However, the _Keep Alive Repetition Period IE_ is not
+interpreted.
+
+[[RESTART]]
+==== RESTART
+
+The RESTART message is sent only at the time of establishment of every
+CBSP link. It is not sent when subsequent cells become available during
+runtime of the CBSP link.
+
diff --git a/doc/manuals/cbsp/procedures.adoc b/doc/manuals/cbsp/procedures.adoc
new file mode 100644
index 0000000..50f4223
--- /dev/null
+++ b/doc/manuals/cbsp/procedures.adoc
@@ -0,0 +1,83 @@
+== CBSP Procedures
+
+=== List of Procedures
+
+The following tables list the CBSP procedures used by the OsmoBSC BSC-CBC interface,
+grouped by their level of compliance with 3GPP TS 48.049.
+
+==== Procedures Compliant With TS 48.049
+
+Specific additions and limitations apply, see the linked sections.
+
+.Procedures compliant with TS 48.049
+[options="header",cols="10%,20%,40%,30%"]
+|===
+| TS 48.049 § | This document § | Procedure | Originated/Terminated by OsmoBSC
+| 7.2 | <<PROC_WRITE_REPLACE>> | Write-Replace | Terminated
+| 7.3 | - | Kill | Terminated
+| 7.5 | - | Message Status Query | Terminated
+| 7.7a | <<PROC_KEEP_ALIVE>> | Keep Alive | Terminated
+| 7.8 | <<RESTART_IND>> | Restart Indication | Originated
+|===
+
+
+[[PROC_WRITE_REPLACE]]
+===== Write-Replace
+
+Procedures for _Write_ and _Replace_ of CBS messages as per 3GPP TS 48.049 Section 7.2.2.2
+are fully supported.
+
+Procedures for _Write_ and _Replace_ of ETWS messages as per 3GPP TS
+48.059 Section 7.2.2.2 are fully supported. Transmission of the ETWS
+Primary Notification is implemented as follows, assuming related support
+is present in the related BTS and PCU software (true for recent releases
+of OsmoBTS and OsmoPCU):
+
+* broadcast to MS in idle mode / packet idle mode by sending a
+ vendor-specific A-bis RSL message to each affected BTS. A
+ vendor-specific mechanism is needed as 3GPP TS 48.058 does not specify
+ any standard message for this. See the section on _Osmocom ETWS
+ Command_ in <<osmobts-abis-spec>> for more details.
+* broadcast to MS in dedicated mode by sending the ETWS PN via every
+ currently active dedicated channel (SDCCH, FACCH) within the affected
+ BTSs.
+
+As an additional clarification to 3GPP TS 48.049, OsmoBSC rejects (via
+WRITE-REPLACE FAILURE) any _write_ procedure for an emergency message if
+there already is another emergency message active in a cell. The
+_replace_ procedure must be used (by specifying the _Old Serial Number
+IE_) if the only existing emergency message of a cell shall be replaced.
+
+[[PROC_KEEP_ALIVE]]
+===== Keep-Alive
+
+The Keep-Alive procedure is implemented only in as far as incoming
+Keep-Alive requests are responded to.
+
+The BSC currently does not use the _Keep Alive Repetition Period IE_.
+This is permitted as 3GPP TS 48.049 states the information _may_ be used
+by the BSC.
+
+[[PROC_RESTART_IND]]
+===== Restart Indication
+
+Restart indications are currently only sent whenever any BSC-CBC link is
+established. They are not sent once subsequent cells become available
+or are re-initialized due to A-bis link failure.
+
+However, CBSP state for both CBS and Emergency messages is kept
+persistent in the BSC and if Cells reboot / restart during the duration
+of a CBS / emergency message, they will resume broadcasts as expected.
+
+
+==== Procedures Not Implemented by OsmoBSC
+
+.3GPP TS 48.049 procedures not implemented by OsmoBSC
+[options="header",cols="30%,40%,30%"]
+|===
+| TS 48.049 § | Procedure | Originated/Terminated by OsmoBSC
+| 7.4 | Load Status Enquiry | Terminated
+| 7.6 | Set DRX | Terminated
+| 7.9 | Failure Indication | Originated
+| 7.10 | Error Indication | Originated
+|===
diff --git a/doc/manuals/osmobsc-cbsp-docinfo.xml b/doc/manuals/osmobsc-cbsp-docinfo.xml
new file mode 100644
index 0000000..a86fd28
--- /dev/null
+++ b/doc/manuals/osmobsc-cbsp-docinfo.xml
@@ -0,0 +1,36 @@
+
+<authorgroup>
+ <author>
+ <firstname>Harald</firstname>
+ <surname>Welte</surname>
+ <email>hwelte(a)sysmocom.de</email>
+ <authorinitials>HW</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ <jobtitle>Managing Director</jobtitle>
+ </affiliation>
+ </author>
+</authorgroup>
+
+<copyright>
+ <year>2022</year>
+ <holder>sysmocom - s.f.m.c. GmbH</holder>
+</copyright>
+
+<legalnotice>
+ <para>
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, no Front-Cover Texts,
+ and no Back-Cover Texts. A copy of the license is included in
+ the section entitled "GNU Free Documentation License".
+ </para>
+ <para>
+ The Asciidoc source code of this manual can be found at
+ <ulink url="https://git.osmocom.org/osmo-bsc/">
+ https://git.osmocom.org/osmo-bsc/
+ </ulink>
+ </para>
+</legalnotice>
diff --git a/doc/manuals/osmobsc-cbsp.adoc b/doc/manuals/osmobsc-cbsp.adoc
new file mode 100644
index 0000000..89af8df
--- /dev/null
+++ b/doc/manuals/osmobsc-cbsp.adoc
@@ -0,0 +1,69 @@
+:gfdl-enabled:
+
+OsmoBSC CBSP Protocol Specification
+===================================
+Harald Welte <hwelte(a)sysmocom.de>
+
+== Introduction
+
+This document describes the CBSP interface of *OsmoBSC* as spoken on the
+BSC-CBC interface. Based on 3GPP TS 48.049 <<3gpp-ts-48-049>>, this document indicates
+which of the 3GPP specified CBSP messages and IEs are implemented
+according to 3GPP specifications, which of these are not or not fully
+implemented, as well as OsmoBSC-specific extensions to the CBSP
+interface not specified by 3GPP.
+
+For details on the standard CBSP messages and IE definitions,
+please refer to the 3GPP documents.
+
+.3GPP document versions referred to by this document
+[cols="20%,80%"]
+|===
+|3GPP TS 48.049 | version 12.0.0 Release 12
+|===
+
+.IETF documents referred to by his document
+[cols="20%,80%"]
+|===
+|IETF RFC 793 | Transmission Control Protocol
+|===
+
+== Overview
+
+The OsmoBSC BSC-CBC interface consists of CBSP messages transmitted over
+TCP.
+
+The default TCP destination port number is TCP port 48049; this can be
+changed by configuration, as described in the OsmoBSC user manual
+<<userman-osmobsc>> and/or VTY reference manual <<vty-ref-osmobsc>>.
+
+.TCP port numbers used by OsmoBTS Abis/IP
+[options="header",width="50%",cols="35%,65%"]
+|===
+|TCP Port Number|Usage
+|48049|CBSP
+|===
+
+OsmoBSC implements both _TCP server_ and _TCP client_ role; it is hence
+configurable whether the CBC establishes the TCP connection to the BSC
+(BSC in _TCP server_ role) or if the BSC establishes the TCP connection
+to the CBC (BSC in _TCP client_ role).
+
+Currently, only transport of TCP via IPv4 is implemented.
+
+Any IP-capable link-layer protocol implemented in the underlying Linux
+operating system can be used to transport the IP/TCP/CBSP of OsmoBSC.
+
+
+include::{srcdir}/cbsp/procedures.adoc[]
+
+include::{srcdir}/cbsp/messages.adoc[]
+
+
+include::./common/chapters/port_numbers.adoc[]
+
+include::./common/chapters/bibliography.adoc[]
+
+include::./common/chapters/glossary.adoc[]
+
+include::./common/chapters/gfdl.adoc[]
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/28099
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I2e18e167281fac3abaf380089ff883738ebaa0a0
Gerrit-Change-Number: 28099
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: newchange