No description
Find a file
2024-02-06 13:32:27 +00:00
bbfdmd bbfdm-api: Enhance replace_str API to utilize provided buffer 2024-02-05 16:11:22 +01:00
docs Added support for OpenVPN Object 2024-02-06 09:08:01 +00:00
gitlab-ci Feature #13148: Replace vendor implementation with DotSo plugin 2024-01-23 20:52:37 +00:00
libbbfdm wifi: Get possible channels from channels method 2024-02-06 12:34:06 +05:30
libbbfdm-api B#13539: Setting SIP Client Network to same Network generates fault 2024-02-06 13:32:27 +00:00
schemas Fix transaction maxtimeout 2023-08-21 11:53:25 +05:30
test wifi: Get possible channels from channels method 2024-02-06 12:34:06 +05:30
tools Added support for OpenVPN Object 2024-02-06 09:08:01 +00:00
.gitignore Update bbfdm tools 2023-11-20 13:36:36 +00:00
.gitlab-ci.yml Fix warnings 2023-12-15 14:39:40 +00:00
CMakeLists.txt Renamed src to ubus as daemon's northbound is ubus 2023-07-20 18:40:42 +05:30
LICENSE LICENSE: change license to BSD 3-Clause 2023-04-17 11:31:48 +02:00
mkdocs.yml Update documentation 2023-04-18 12:42:29 +05:30
README.md docs: Reorganise the documents 2024-01-19 08:39:02 +00:00

BroadBand Forum Data Models (BBFDM)

bbfdm is a datamodel backend for Higher layer management protocols like TR-069/CWMP or TR-369/USP. It is designed in a hardware agnostic way and provides the available datamodel parameters over ubus on the northbound interface and creates the datamodel mapping based on uci and ubus on southbound interface.

bbfdm has three main components:

Component Description
bbfdmd A daemon to expose data model objects over ubus in pretty and raw format
libbbfdm-api A shared library which provides API to build and parse datamodel tree, it also provides API to create datamodel extensions using shared DotSo plugin, or with JSON Plugin.
libbbfdm A datamodel tree/library build with libbbfdm-api, it includes core TR181 and related datamodel

Directory Structure

bbfdm package is structured as follow:

├── bbfdmd
├── docs
├── libbbfdm-api
├── libbbfdm
│   ├── dmtree
│   │   ├── json
│   │   ├── tr143
│   │   ├── tr181
│   │   ├── tr471
│   │   ├── vendor
│   ├── scripts
└── tools
  • bbfdmd folder which contains the source code of bbfdm deamon. More explanation on how this daemon works and all supported methods are presented in this file BBFDMD

  • libbbfdm folder which contains the different data models supported by iopsys

    • dmtree folder which includes all supported Data Models and vendor extension objects. It contains 6 folders:

      • tr181 folder : TR-181 Data Model files

      • tr143 folder : Diagnostics Data Model files

      • tr471 folder : IPLayerCapacityMetrics Diagnostics Data Model files

      • vendor folder : Vendor Data Model files

      • json folder : TR-181 and TR-104 JSON files

    • scripts folder which contains all the scripts used to run the different types of diagnostics.

  • libbbfdm-api folder which contains the source code of all API functions (UCI, Ubus, JSON, CLI and memory management). These API are used for GET/SET/ADD/Delete/Operate calls which can be called in internal or external packages. All APIs exposed by libbbfdm-api are presented in this header file libbbfdm_api.h.

  • tools folder which contains some tools to generate Data Model in C, JSON, XML and Excel format. All supported tools are presented in this fileBBFDM Tools

  • docs folder which contains all documentation files.

Design

Important Topics

External dependencies for datamodel objects

Datamodel Package Link
Device.BulkData. bulkdata https://dev.iopsys.eu/bbf/bulkdata.git
Device.ManagementServer. icwmp https://dev.iopsys.eu/bbf/icwmp.git
Device.CWMPManagementServer. icwmp https://dev.iopsys.eu/bbf/icwmp.git
Device.IP.Diagnostics.UDPEchoConfig. udpecho-server https://dev.iopsys.eu/bbf/udpecho.git
Device.IP.Diagnostics.UDPEchoDiagnostics. udpecho-client https://dev.iopsys.eu/bbf/udpecho.git
Device.IP.Interface.{i}.TWAMPReflector. twamp https://dev.iopsys.eu/bbf/twamp-light.git
Device.XMPP. xmppc https://dev.iopsys.eu/bbf/xmppc.git
Device.USPAgent. obuspa https://dev.iopsys.eu/bbf/obuspa.git
STUN parameters stunc https://dev.iopsys.eu/bbf/stunc.git
Device.XPON. ponmngr https://dev.iopsys.eu/hal/ponmngr.git
Device.UPNP. ssdpd https://github.com/miniupnp/miniupnp.git
Device.Users. usermngr https://dev.iopsys.eu/bbf/usermngr.git
Device.PeriodicStatistics. periodicstats https://dev.iopsys.eu/bbf/periodicstats.git
Device.SoftwareModules. swmodd https://dev.iopsys.eu/lcm/swmodd.git
Device.Time. timemngr https://dev.iopsys.eu/bbf/timemngr.git
Device.Hosts. hostmngr https://dev.iopsys.eu/iopsys/hostmngr.git
Device.Services.VoiceService. tr104 https://dev.iopsys.eu/voice/tr104.git