No description
Find a file
2023-03-17 14:27:01 +01:00
dmtree Bridging: Add missing stats parameters 2023-03-17 14:27:01 +01:00
docs T#9954: Update Documentation 2023-03-16 16:53:15 +01:00
gitlab-ci T#9712: Update Wifi handling with mapcontroller 2023-02-08 07:30:35 +00:00
include Added support to generate doxy wiki in pipeline 2021-12-20 15:43:08 +00:00
libbbf_api Remove use of bbf context flag 2023-03-14 16:24:15 +01:00
libbbf_ubus Remove use of bbf context flag 2023-03-14 16:24:15 +01:00
openwrt/bbf Enable/disable plugin support using compilation flags 2021-10-27 11:25:02 +05:30
schemas Align with doc structure 2023-01-09 16:04:10 +05:30
scripts Diagnostics: Delete all nslookup result instances before starting a new test 2023-03-09 15:06:44 +01:00
test Ticket refs #9951: icwmp: Handle ParameterKey in client 2023-02-24 07:31:22 +00:00
tools Added version field in generated excel file 2023-01-26 16:15:10 +01:00
.gitignore Align with doc structure 2023-01-09 16:04:10 +05:30
.gitlab-ci.yml T#8408: JSON Plugin: Fixed issues when multi-instance object mapping for multiple sections 2022-07-21 13:39:57 +01:00
CMakeLists.txt Added support of tr471 diagnostics 2023-02-14 12:59:45 +05:30
dmbbfcommon.c Remove use of bbf context flag 2023-03-14 16:24:15 +01:00
dmbbfcommon.h Remove use of bbf context flag 2023-03-14 16:24:15 +01:00
dmdiagnostics.c Ticket refs #8243: bbf: Add AutonomousTransferCompletePolicy 2022-11-17 10:55:42 +01:00
dmdiagnostics.h Download && Upload diagnostics: use curl insted of tcpdump to extract data value 2022-10-17 17:33:19 +00:00
dmdynamicjson.c json_plugin: Add support to define vendor extention in dm param 2023-03-01 16:13:50 +05:30
dmdynamicjson.h bbf: compile using cmake instead of autotools 2022-06-06 17:15:16 +00:00
dmdynamiclibrary.c Reduce the memory allocation using json_memhead & main_memhead 2022-07-27 16:52:32 +01:00
dmdynamiclibrary.h bbf: compile using cmake instead of autotools 2022-06-06 17:15:16 +00:00
dmdynamicvendor.c Ticket refs #7333: fix warnings, code analysis and clean up the code 2022-02-16 10:33:59 +00:00
dmdynamicvendor.h bbf: compile using cmake instead of autotools 2022-06-06 17:15:16 +00:00
dmentry.c Remove use of bbf context flag 2023-03-14 16:24:15 +01:00
dmentry.h Ticket refs #9951: icwmp: Handle ParameterKey in client 2023-02-24 07:31:22 +00:00
Doxyfile Added main page in doxygen 2021-12-21 14:02:33 +05:30
LICENSE Change License to LGPLv2.1 2019-12-04 09:52:05 +01:00
README.md Updated readme for datamodel dependencies 2023-03-01 03:53:29 +00:00
supervisord.conf Use relative paths for the module tests 2022-02-18 08:01:00 +00:00

BroadBand Forum Data Models (BBFDM)

bbfdm is a data model library implementation which includes a list of objects, parameters and operates used for CPE management through remote control protocols such as TR-069/CWMP or TR-369/USP. This package comprises of the below libraries:

Library Description
libbbfdm This provides the mechanism to add new parameters or extend the existing DM tree using json plugin or shared library plugin.
libbbf_api This provides the APIs for UCI, Ubus, JSON, CLI and memory management.
libbbf_ubus This library helps to expose the datamodel directly over ubus. Application can expose any datamodel(need not be part of "Device."/TR-181) using this library.

Note: Applications that use libbbf_ubus to expose datamodel, not required to use libbbfdm.

Design of bbfdm

bbfdm library is structred as follow :

├── dm...(.c and .h)
├── dmtree
│   ├── json
│   ├── tr104
│   ├── tr143
│   ├── tr181
│   └── vendor
│       ├── iopsys
│       ├── openwrt
│       └── vendor.h
├── libbbf_api
├── libbbf_ubus
├── scripts
└── tools
  • dmtree folder which includes all supported Data Models. It contains 5 folders:

    • tr181 folder : TR-181 Data Model files

    • tr104 folder : Voice Services Data Model files

    • tr143 folder : Diagnostics Data Model files

    • vendor folder : Vendor Data Model files

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

  • libbbf_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 libbbf_api are presented in this header file libbbf_api.h.

  • libbbf_ubus folder which contains the source code of all API functions helps in exposing datamodel constructed with the help of libbbf APIs directly over ubus. All APIs exposed by libbbf_ubus are presented in this header file libbbf_ubus.h.

  • scripts folder which contains the Diagnostics scripts

  • tools folder which contains some tools to generate Data Model in C, JSON, XML and Excel format

  • dm...(.c and .h) files which contains the bbfdm engine (operate, diagnostics) functions

Important Topics

Dependencies of of libbbfdm and libbbf_ubus

To successfully build libbbfdm or libbbf_ubus, the following libraries are needed:

Dependency Link License
libuci https://git.openwrt.org/project/uci.git LGPL 2.1
libubox https://git.openwrt.org/project/libubox.git BSD
libubus https://git.openwrt.org/project/ubus.git LGPL 2.1
libjson-c https://s3.amazonaws.com/json-c_releases MIT
libcurl https://dl.uxnr.de/mirror/curl MIT
libwolfssl https://github.com/wolfSSL/wolfssl GPL-2.0

External dependencies for datamodel objects

Datamodel Package Link
Device.BulkData. bulkdata https://dev.iopsys.eu/iopsys/bulkdata.git
Device.CWMPManagementServer. icwmp https://dev.iopsys.eu/iopsys/icwmp.git
Device.IP.Diagnostics.UDPEchoConfig. udpecho-server https://dev.iopsys.eu/iopsys/udpecho.git
Device.IP.Diagnostics.UDPEchoDiagnostics. udpecho-client https://dev.iopsys.eu/iopsys/udpecho.git
Device.IP.Interface.{i}.TWAMPReflector. twamp https://dev.iopsys.eu/iopsys/twamp-light.git
Device.UPNP. ssdpd https://github.com/miniupnp/miniupnp.git
Device.XMPP. xmppc https://dev.iopsys.eu/iopsys/xmppc.git
Device.XPON. ponmngr https://dev.iopsys.eu/iopsys/ponmngr.git
Device.USPAgent. obuspa https://dev.iopsys.eu/fork/obuspa.git
STUN parameters stunc https://dev.iopsys.eu/iopsys/stunc.git