mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2025-12-10 07:44:39 +01:00
336 lines
13 KiB
Markdown
336 lines
13 KiB
Markdown
# Function Specification
|
|
|
|
The scope of uspd is to expose the datamodel provided by libbbfdm APIs over ubus, along with provididng the features deinfed by requirements R-ARC.7 to R-ARC.12 of USP protocol.
|
|
|
|
```
|
|
root@iopsys:~# ubus -v list usp
|
|
'usp' @232da280
|
|
"list_operate":{}
|
|
"get_supported_dm":{"path":"String","next-level":"Boolean","schema_type":"Integer"}
|
|
"get":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"object_names":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"instances":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"validate":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"set":{"path":"String","value":"String","values":"Table","proto":"String","instance_mode":"Integer"}
|
|
"operate":{"path":"String","action":"String","input":"Table","proto":"String","instance_mode":"Integer"}
|
|
"add_object":{"path":"String","proto":"String","instance_mode":"Integer"}
|
|
"del_object":{"path":"String","proto":"String","instance_mode":"Integer"}
|
|
|
|
root@iopsys:~#
|
|
root@iopsys:~# ubus -v list usp.raw
|
|
'usp.raw' @4c9c3c6e
|
|
"dump_schema":{}
|
|
"list_operate":{}
|
|
"list_events":{}
|
|
"get_supported_dm":{"path":"String","next-level":"Boolean","schema_type":"Integer"}
|
|
"get":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"getm_values":{"paths":"Array","proto":"String","next-level":"Boolean","instance_mode":"Integer"}
|
|
"getm_names":{"paths":"Array","proto":"String","next-level":"Boolean","instance_mode":"Integer"}
|
|
"object_names":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"instances":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"validate":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"transaction_start":{"app":"String"}
|
|
"set":{"path":"String","value":"String","values":"Table","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"operate":{"path":"String","action":"String","input":"Table","proto":"String","instance_mode":"Integer"}
|
|
"add_object":{"path":"String","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"del_object":{"path":"String","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"setm_values":{"pv_tuple":"Array","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"transaction_commit":{"transaction_id":"Integer","restart_services":"Boolean"}
|
|
"transaction_abort":{"transaction_id":"Integer"}
|
|
"transaction_status":{"transaction_id":"Integer"}
|
|
"notify_event":{"name":"String","input":"Table"}
|
|
|
|
```
|
|
|
|
# Contents
|
|
* [usp](#usp)
|
|
* [usp.raw](#uspraw)
|
|
|
|
## APIs
|
|
|
|
uspd publishes two different types UBUS objects, `usp`, `usp.raw`. USP object is meant for end users/CLI users
|
|
usp.raw is meant for API integration
|
|
usp.raw has more ganureality in the function to match the third party apllication requiremtns whereas usp obect take cares of cutomization internally to provide simple interface for the end users.
|
|
|
|
|
|
### usp
|
|
|
|
An object that publishes device information.
|
|
|
|
````bash
|
|
"list_operate":{}
|
|
"get_supported_dm":{"path":"String","next-level":"Boolean","schema_type":"Integer"}
|
|
"get":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"object_names":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"instances":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"validate":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"set":{"path":"String","value":"String","values":"Table","proto":"String","instance_mode":"Integer"}
|
|
"operate":{"path":"String","action":"String","input":"Table","proto":"String","instance_mode":"Integer"}
|
|
"add_object":{"path":"String","proto":"String","instance_mode":"Integer"}
|
|
"del_object":{"path":"String","proto":"String","instance_mode":"Integer"}
|
|
````
|
|
|
|
| Method |Function ID |
|
|
| :--- | :--- |
|
|
| [list_operate](#list_operate) | 1 |
|
|
| [get_supported_dm](#get_supported_dm) | 2 |
|
|
| [get](#get) | 3 |
|
|
| [object_names](#object_names) | 4 |
|
|
| [instances](#instances) | 5 |
|
|
| [validate](#validate) | 6 |
|
|
| [set](#set) | 7 |
|
|
| [operate](#operate) | 8 |
|
|
| [add_object](#add_object) | 9 |
|
|
| [del_object](#del_object) | 10 |
|
|
|
|
#### Methods
|
|
|
|
Below methods are supported in usp methods. Method description of the `usp` object in succeding paragraphs .
|
|
|
|
|
|
##### list_operate
|
|
|
|
Exposes various sync and async operations supported by datamodel. e.g., IPPing(), NeighbourDiagnostics() etc.
|
|
|
|
* [list_operate documentation](../api/ubus/usp.md#list_operate)
|
|
|
|
##### get_supported_dm
|
|
|
|
This method exposes the all type of objects supported in the data model in one browse. it will expose name, type, cmd_type and writable properties of the object depending on the type of the parameters present in the data model.
|
|
|
|
* [get_supported_dm documentation](../api/ubus/usp.md#get_supported_dm)
|
|
|
|
|
|
##### get
|
|
|
|
This method exposes information regarding various schema parameters registered in the data model.
|
|
|
|
* [get documentation](../api/ubus/usp.md#get)
|
|
|
|
##### object_names
|
|
|
|
This method exposes names of the object registered in the data model.
|
|
|
|
* [object_names documentation](../api/ubus/usp.md#object_names)
|
|
|
|
##### instances
|
|
|
|
This method exposes information of all instances of various objects registered in the data model for specified schema path.
|
|
|
|
* [disconnect documentation](../api/ubus/usp.md#instances)
|
|
|
|
##### validate
|
|
|
|
This method validates whether the path provided is valid as per registerd schema paths.
|
|
|
|
* [validate documentation](../api/ubus/usp.md#validate)
|
|
|
|
##### set
|
|
|
|
This method is used to set information of various registered schema parameters.
|
|
|
|
* [set documentation](../api/ubus/usp.md#set)
|
|
|
|
##### operate
|
|
|
|
This method is used to execute various sync/async operations e.g., IPPing(), NeighbourDiagnostics() etc.
|
|
|
|
* [operate documentation](../api/ubus/usp.md#operate)
|
|
|
|
##### add_object
|
|
|
|
This method is used to add an object to specified multi instance object in registered schema.
|
|
|
|
* [add_object neighbor documentation](../api/ubus/usp.md#add_object)
|
|
|
|
##### del_object
|
|
|
|
This method is used to delete an object from specified multi instance object in registered schema.
|
|
|
|
* [del_object documentation](../api/ubus/usp.md#del_object)
|
|
|
|
|
|
|
|
### usp.raw
|
|
|
|
Object for device functionality. One object per device will be published to
|
|
ubus.
|
|
|
|
````bash
|
|
"dump_schema":{}
|
|
"list_operate":{}
|
|
"list_events":{}
|
|
"get_supported_dm":{"path":"String","next-level":"Boolean","schema_type":"Integer"}
|
|
"get":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"getm_values":{"paths":"Array","proto":"String","next-level":"Boolean","instance_mode":"Integer"}
|
|
"getm_names":{"paths":"Array","proto":"String","next-level":"Boolean","instance_mode":"Integer"}
|
|
"object_names":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"instances":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"validate":{"path":"String","proto":"String","maxdepth":"Integer","next-level":"Boolean","instance_mode":"Integer"}
|
|
"transaction_start":{"app":"String"}
|
|
"set":{"path":"String","value":"String","values":"Table","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"operate":{"path":"String","action":"String","input":"Table","proto":"String","instance_mode":"Integer"}
|
|
"add_object":{"path":"String","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"del_object":{"path":"String","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"setm_values":{"pv_tuple":"Array","proto":"String","instance_mode":"Integer","transaction_id":"Integer"}
|
|
"transaction_commit":{"transaction_id":"Integer","restart_services":"Boolean"}
|
|
"transaction_abort":{"transaction_id":"Integer"}
|
|
"transaction_status":{"transaction_id":"Integer"}
|
|
"notify_event":{"name":"String","input":"Table"}
|
|
|
|
````
|
|
|
|
| Method |Function ID |
|
|
| :--- | :--- |
|
|
| [dump_schema](#dump_schema_raw) | 1 |
|
|
| [list_operate](#list_operate_raw) | 2 |
|
|
| [list_events](#list_events_raw) | 3 |
|
|
| [get_supported_dm](#get_supported_dm_raw) | 4 |
|
|
| [get](#get_raw) | 5 |
|
|
| [getm_values](#getm_values_raw) | 6 |
|
|
| [getm_names](#getm_names_raw) | 7 |
|
|
| [object_names](#object_names_raw) | 8 |
|
|
| [instances](#instances_raw) | 9 |
|
|
| [validate](#validate_raw) | 10 |
|
|
| [transaction_start](#transaction_start_raw) | 11 |
|
|
| [set](#set_raw) | 12 |
|
|
| [operate](#operate_raw) | 13 |
|
|
| [add_object](#add_object_raw) | 14 |
|
|
| [del_object](#del_object_raw) | 15 |
|
|
| [setm_values](#setm_values_raw) | 16 |
|
|
| [transaction_commit](#transaction_commit_raw) | 17 |
|
|
| [transaction_abort](#transaction_abort_raw) | 18 |
|
|
| [transaction_status](#transaction_status_raw) | 19 |
|
|
| [notify_event](#notify_event_raw) | 20 |
|
|
|
|
|
|
#### Methods
|
|
|
|
Below methods are supported in usp methods. Method description of the `usp` object in succeding paragraphs .
|
|
|
|
|
|
##### dump_schema_raw
|
|
|
|
This method exposes schema registered in the data model .
|
|
|
|
* [dump_schema documentation](../api/ubus/usp.raw.md#dump_schema)
|
|
|
|
##### list_operate_raw
|
|
|
|
Exposes various sync and async operations supported by datamodel. e.g., IPPing(), NeighbourDiagnostics() etc.
|
|
|
|
* [list_operate documentation](../api/ubus/usp.raw.md#list_operate)
|
|
|
|
##### list_events_raw
|
|
|
|
Exposes various events registered in the datamodel.
|
|
|
|
* [list_events documentation](../api/ubus/usp.raw.md#list_events)
|
|
|
|
##### get_supported_dm_raw
|
|
|
|
This method exposes the all type of objects supported in the data model in one browse. it will expose name, type, cmd_type and writable properties of the object depending on the type of the parameters present in the data model.
|
|
|
|
* [get_supported_dm documentation](../api/ubus/usp.md#get_supported_dm)
|
|
|
|
|
|
##### get_raw
|
|
|
|
This method exposes information of various schema parameters registered in the data model.
|
|
|
|
* [get documentation](../api/ubus/usp.raw.md#get)
|
|
|
|
##### getm_values_raw
|
|
|
|
This method is an extension to get method, this method can be use to get parameter values for multiple query paths at once.
|
|
|
|
* [getm_values documentation](../api/ubus/usp.raw.md#getm_values)
|
|
|
|
##### getm_names_raw
|
|
|
|
This method is an extension to get method, this method can be use to get parameter names for multiple query paths at once.
|
|
|
|
* [getm_names documentation](../api/ubus/usp.raw.md#getm_names)
|
|
|
|
|
|
##### object_names_raw
|
|
|
|
This method exposes names of the objects in the spectified query path registered in the data model.
|
|
|
|
* [object_names documentation](../api/ubus/usp.raw.md#object_names)
|
|
|
|
##### instances_raw
|
|
|
|
Get all the instances for specified schema path.
|
|
|
|
* [disconnect documentation](../api/ubus/usp.raw.md#instances)
|
|
|
|
##### validate_raw
|
|
|
|
This method validates whether the path provided is valid as per registerd schema paths.
|
|
|
|
* [validate documentation](../api/ubus/usp.raw.md#validate)
|
|
|
|
|
|
##### transaction_start
|
|
|
|
This method starts a transaction with the name provided.
|
|
|
|
* [transaction_start documentation](../api/ubus/usp.raw.md#transaction_start)
|
|
|
|
|
|
##### set_raw
|
|
|
|
This method is used to set information of various registered schema parameters.
|
|
|
|
* [set documentation](../api/ubus/usp.raw.md#set)
|
|
|
|
##### operate_raw
|
|
|
|
This method is used to execute various sync/async operations e.g., IPPing(), NeighbourDiagnostics() etc.
|
|
|
|
* [operate documentation](../api/ubus/usp.raw.md#operate)
|
|
|
|
##### add_object_raw
|
|
|
|
This method is used to add an object to specified multi instance object in registered schema.
|
|
|
|
* [add_object neighbor documentation](../api/ubus/usp.raw.md#add_object)
|
|
|
|
##### del_object_raw
|
|
|
|
This method is used to delete an object from specified multi instance object in registered schema.
|
|
|
|
* [del_object documentation](../api/ubus/usp.raw.md#del_object)
|
|
|
|
##### setm_values_raw
|
|
|
|
This method is an extension to set method, this method can be use to set parameter values for multiple query paths at once.
|
|
|
|
* [setm_values documentation](../api/ubus/usp.raw.md#setm_values)
|
|
|
|
|
|
##### transaction_commit
|
|
|
|
This method commits the changes made by an ongoing transaction.
|
|
|
|
* [transaction_commit documentation](../api/ubus/usp.raw.md#transaction_commit)
|
|
|
|
|
|
##### transaction_abort
|
|
|
|
This method aborts an ongoing transaction.
|
|
|
|
* [transaction_abort documentation](../api/ubus/usp.raw.md#transaction_abort)
|
|
|
|
##### transaction_status
|
|
|
|
This method provides with the status of an ongoing transaction.
|
|
|
|
* [transaction_status documentation](../api/ubus/usp.raw.md#transaction_status)
|
|
|
|
##### notify_event
|
|
|
|
This method is used to get notified whenever the specified event occurs
|
|
|
|
* [notify_event documentation](../api/ubus/usp.raw.md#notify_event)
|