commit | 8280924569f31e61778fc8685c82e8e19b09f02b | [log] [tgz] |
---|---|---|
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | Fri Jan 28 20:32:12 2022 +0600 |
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | Fri Jan 28 20:49:24 2022 +0600 |
tree | 8c82f1683305e61b87f4b048208ba2ba1edddc7e | |
parent | 5cbb80f797d737eaa986a30ec07d2cec7659848d [diff] |
daemon: enable multithread logging in main() It may happen that multiple threads trying to log at the same time, and the msgb containing a logging message gets corrupted in libosmocore's _file_wq_write_cb(): msgb(0x7f5ca2a38150): msgb too small to pull 240 (len 120) Aborted (core dumped) ''' rc = write(ofd->fd, msgb_data(msg), msgb_length(msg)); if (rc < 0) return rc; if (rc != msgb_length(msg)) { // 240 != 120 /* pull the number of bytes we have already written */ msgb_pull(msg, rc); // <-- we abort() here /* ask write_queue to re-insert the msgb at the head of the queue */ return -EAGAIN; } ''' The return value of write() cannot be greater than the given length. Most likely, the msgb gets corrupted during the write() system call. Enabling multithread logging in libosmocore solves the problem. Change-Id: Ib14d0e36e8cd72465bfe55d19b68dbe3423f7f05 Related: SYS#5602 Fixes: OS#5424
This repository contains a C-language implementation of a simulator for the SGW/MME/UE side of GTP-U. It is part of the Osmocom Open Source Mobile Communications project.
This code is primarily intended to be used in testing of 2G/3G/4G GGSN and P-GW.
Every GTP tunnel (corresponding to a PDP context or EPC bearer) is terminated in a local 'tun' device, which in turn is put into its own network namespace.
This means you can simulate any number of users / sessions / bearers on a single machine without any routing nightmare.
The code only implements the user plane (GTP1U), and not the control plane like GTP1C or GTP2C. osmo-uecups-daemon exposes a JSON-over-SCTP protocol calleD UECUPS, which allows any external control plane instance to add/remove tunnels in the daemon
The official homepage of the project is https://osmocom.org/projects/osmo-ggsn/wiki/osmo-uecups
You can clone from the official osmo-bts.git repository using
git clone git://git.osmocom.org/osmo-uecups.git
There is a cgit interface at httsp://git.osmocom.org/osmo-uecups/
FIXME
Discussions related to this software are happening on the osmocom-net-gprs@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/osmocom-net-gprs for subscription options and the list archive.
Please observe the Osmocom Mailing List Rules when posting.
Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards
We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details
The current patch queue for osmo-bts can be seen at https://gerrit.osmocom.org/#/q/project:osmo-uecups+status:open