Pau Espin Pedrol 7fbd6aa472 Catch and forbid configuring peers before configuring main protocol node
When the user enters each "peer" node, the related object is created if
not yet existing, and its updated config is applied (connect()) upon
exiting the node (cbc_peer_apply_cfg_chg()). When connect happens, it
needs to obtain the local IP address from the main protocol node
(cbsp|sbcap)", which means it must be configured beforehand, otherwise
the peers connect using the default values.

Hence, it makes no sense to configure peers if the main protocol
information has not yet been configured. The usual example configs as
well as the write-config VTY commands provide correct order of things.
Catch and forbid the user providing a config file where the peers are
configured before the main protocol nodes.

Related: OS#6154
Change-Id: I678f9e6715c85b1eb9116cc892f1a8299577c0c2
2023-08-29 17:26:56 +02:00
2023-04-25 16:48:21 +02:00
2022-07-29 14:49:30 +02:00
2022-07-18 13:57:04 +00:00
2022-07-15 09:14:07 +00:00
2022-07-18 13:57:04 +00:00
2022-07-15 15:53:35 +02:00

osmo-cbc - Osmocom Cell Broadcast Centre

This repository contains a C-language implementation of a minimal 3GPP Cell Broadcast Centre (CBC). It is part of the Osmocom Open Source Mobile Communications project.

A Cell Broadcast Centre is the central network element of a cellular network for distribution of Cell Broadcast and Emergency messages.

This code implements

  • the CBSP protocol on the CBC-BSC interface
  • a custom HTTP/REST based interface for external users to create/delete CBS messages

We plan to add support for the following features in the future:

  • the SABP protocol on the CBC-RNC (or CBC-HNBGW) interface for UMTS support
  • the SBcAP protocol on the CBC-MME interface for LTE support

Homepage

The official homepage of the project is https://osmocom.org/projects/osmo-cbc/wiki

GIT Repository

You can clone from the official osmo-cbc.git repository using

git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-cbc

There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-cbc

Documentation

User Manuals and VTY reference manuals are [optionally] built in PDF form as part of the build process.

Pre-rendered PDF version of the current "master" can be found at User Manual as well as the VTY Reference Manual for osmo-cbc

Mailing List

Discussions related to osmo-cbc are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.

Contributing

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-cbc can be seen at https://gerrit.osmocom.org/#/q/project:osmo-cbc+status:open

Generating asn1c code

Upstream master as1nc from vlm doesn't support APER encoding. Nevertheless, the upstream fork maintained by a big contributor mouse07410 does support it, and it is used in osmo-cbc to generate the SBc-AP code from ASN.1 files present in src/sbcap/asn1/.

In order to regenerate the code, one shall adjust the ASN1C_SKELETON_PATH and ASN1C_BIN_PATH in configure.ac to point to the built & installed asn1c from mouse07410 (usually vlm_master branch). Last generated code was built using commit hash 08b293e8aa342d465d26805d1d66f3595b2ce261.

Then, do the usual autoreconf -fi && ./configure, using a buildir != srcdir (important, in order to avoid ending up with tempotary files in srcdir and making it difficult to stash the relevant changes).

Finally, run make -C src/ regen, which will regenerate the files and copy over the skeletons, with git possibily showing changes in the following paths:

  • include/osmocom/sbcap/
  • src/sbcap/gen/
  • src/sbcap/skel/
Description
Osmocom Cell Broadcast Centre
Readme 1.8 MiB
Languages
C 97.8%
Makefile 1.1%
Shell 0.4%
M4 0.4%
Python 0.3%