No description
Find a file
2024-09-05 18:10:57 +05:30
bbfdmd Introduce a new library: libbbfdm-ubus 2024-08-29 10:11:30 +00:00
docs Validate datatype on set request 2024-09-02 21:03:15 +05:30
gitlab-ci Multiple updates 2024-08-17 07:18:35 +00:00
libbbfdm Import TR181-2.18.1 2024-09-05 10:42:34 +05:30
libbbfdm-api Validate datatype on set request 2024-09-02 21:03:15 +05:30
libbbfdm-ubus send addObj/delObj event for usp DM objects 2024-09-05 18:10:57 +05:30
test Import TR181-2.18.1 2024-09-05 10:42:34 +05:30
tools tools: update for cwmp mqtt stomp 2024-08-29 10:59:18 +05:30
utilities Multiple updates 2024-08-17 07:18:35 +00:00
.gitignore docs: cleanup and update 2024-07-09 17:48:18 +05:30
.gitlab-ci.yml Remove redundant func 2024-05-29 17:30:42 +00:00
CMakeLists.txt Introduce a new library: libbbfdm-ubus 2024-08-29 10:11:30 +00:00
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: cleanup and update 2024-07-09 17:48:18 +05:30

BroadBand Forum Data Models (BBFDM)

bbfdm is a suite to provide TR181 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
libbbfdm-api API library to create and parse datamodel tree
libbbfdm Minimal TR181 datamodel definition

Directory Structure

bbfdm package is structured as follow:

├── bbfdmd            --  This directory contains daemon code to expose the datamodel tree on northbound
│   └── ubus              - Daemon to expose datamodel over ubus
├── docs              --  More detailed explanation of datamodel and user guide
├── gitlab-ci         --  Used for CI/CD pipeline test
├── libbbfdm          --  Minimal TR181 datamodel implementation
├── libbbfdm-api      --  API library to create datamodel definition and parse the datamodel definition to form a datamodel tree
├── tools             --  Tools to convert xml datamodel definition to json, generate c code and many more
└── utilities         --  Small helper utilities to complete/optimize the datamodel deployment

Important Topics

Compilation helper utilities

Additional datamodel objects

This repository has bare minimal TR181 datamodel integrated, each service has their own datamodel additions, which they expose using plugins and micro-services. List of IOWRT provided service datamodel set available in tools_input.json

Dependencies

Build-Time Dependencies

To successfully build bbfdmd, 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
libbbfdm-api https://dev.iopsys.eu/bbf/bbfdm.git BSD-3
libbbfdm https://dev.iopsys.eu/bbf/bbfdm.git BSD-3
jq https://github.com/stedolan/jq.git BSD

Run-Time Dependencies

In order to run the bbfdmd, following dependencies are needed to be running/available before bbfdmd.

Dependency Link License
ubusd https://git.openwrt.org/project/ubus.git LGPL 2.1
libbbfdm-api https://dev.iopsys.eu/bbf/bbfdm.git BSD-3
libbbfdm https://dev.iopsys.eu/bbf/bbfdm.git BSD-3
jq https://github.com/stedolan/jq.git BSD