- Transaction APIs removed - Use different save dirs per proto - In process instance update notifier - Use event based refresh timer - Commit changes from main daemon for default proto - For add request commit changes without reload for default proto - extend bbf.config to monitor based on input - extend bbf.config to reload/commit based on input - extend bb.config to provide list of service changes based on proto |
||
|---|---|---|
| bbfdmd | ||
| docs | ||
| gitlab-ci | ||
| libbbfdm | ||
| libbbfdm-api | ||
| test | ||
| tools | ||
| utilities | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| CMakeLists.txt | ||
| LICENSE | ||
| mkdocs.yml | ||
| README.md | ||
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
- BBFDMD Design
- API Documentation
- Tools
- Utilities
- How to extend datamodel with C Code
- How to extend datamodel with JSON
Datamodel related topics
- Design for firmware activation
- Different Network Deployment Scenarios using Datamodels
- GRE datamodel details
- IP datamodel details
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 |