3.1 KiB
BBFDM Vendor
bbfdm library can be used to Extend the Data Model with new objects/parameters, to Overwrite existing objects/parameters with new ones and Exclude some objects/parameters from Data Model tree.
How to add new vendor
1. Create a vendor folder
Create a new folder under 'dmtree/vendor/' which contains all files related to the vendor
2. Fill Extend, Overwrite and Exclude tables with objects/parameters
Create the first vendor C file which contains new Extend, Overwrite and Exclude tables of objects/parameters.
Extend and Overwrite table
The Extend and Overwrite tables contain entries of DM_MAP_OBJ structure.
The DM_MAP_OBJ structure contains three arguments:
| Argument | Description |
|---|---|
parentobj |
A string of the parent object name. Example “Device.IP.Diagnostics.”, “Device.DeviceInfo”, “Device.WiFi.Radio.” |
nextobject |
Pointer to a DMOBJ array which contains a list of the child objects |
parameter |
Pointer to a DMLEAF array which contains a list of the child parameters |
Exclude table
Each entry in the exclude table is a string which could be a path of object or parameter that need to be excluded from the tree
The following link contains example of Extend, Overwrite and Exclude table.
3. Adding vendor and standard objects/Parameters
Implement the new vendor/standard objects and parameters as defined above in the first section.
Example: Custom Vendor Object Dropbear
4. link vendor tables to the main tree
To register the new vendor tables, you need to link them in the main three tables:
-
tVendorExtension
-
tVendorExtensionOverwrite
-
tVendorExtensionExclude
These tables are defined in the file 'dmtree/vendor/vendor.c'.
Example: Link vendor tables to the main tree
5. Enable vendor
To enable the new vendor
-
Define BBF_VENDOR_EXTENSION macro
-
Add the new vendor in the list BBF_VENDOR_LIST macro
-
Define the vendor prefix using BBF_VENDOR_PREFIX macro
Example of Config Options:
BBF_VENDOR_EXTENSION=y
BBF_VENDOR_LIST="iopsys,test"
BBF_VENDOR_PREFIX="X_TEST_COM_"
Note1: The
libbbf_dmvendor list can support multi-vendor with comma seperated.
Note2: If multi vendors are supported and there is a object/parameter that is implmented by multi customers in different way, the implemented object/parameter of the first vendor name in the BBF_VENDOR_LIST will be considered.
Note3: Overwrite and Exclude are only considered in
dmtree/vendor/<vendor>/
- The directory 'dmtree/vendor/test/' contains an example of test vendor implementation