diff --git a/bbfdmd/.gitignore b/bbfdmd/.gitignore index 37559de2..a84979f1 100644 --- a/bbfdmd/.gitignore +++ b/bbfdmd/.gitignore @@ -9,8 +9,7 @@ ipkg-arm_xscale/ *.o *.so -src/uspd -uspd +src/bbfdmd *.gcda *.gcno report/ diff --git a/bbfdmd/README.md b/bbfdmd/README.md index b051aab9..53301999 100644 --- a/bbfdmd/README.md +++ b/bbfdmd/README.md @@ -13,7 +13,7 @@ The configuration file is an `uci` file `/etc/config/bbfdm`. Sample configuratio ```bash config bbfdmd 'bbfdmd' option loglevel '2' - option sock '/tmp/usp.sock' + option sock '/tmp/bbfdm.sock' option transaction_timeout 10 option subprocess_level '1' option refresh_time '10' @@ -35,7 +35,7 @@ For more info on the `bbfdmd` UCI configuration visit [uci documentation](../doc `bbfdmd` internally uses both `libbbfdm-api` and `libbbfdm` to get the data-model objects. On startup it parses the uci file to check the different configurations and then based on that it registers the `bbfdm` ubus namespace. -When a ubus method is called it first fills `usp_data_t` structure with the necessary information, then proceeds the `Get/Set/Operate/Add/Del` operation based on that information. +When a ubus method is called it first fills `bbfdm_data_t` structure with the necessary information, then proceeds the `Get/Set/Operate/Add/Del` operation based on that information. `bbfdmd` uses `bbf_entry_method` API from `libbbfdm-api` and `tEntryRoot`, `tVendorExtension`, `tVendorExtensionOverwrite` and `tVendorExtensionExclude` global shared arrays from `libbbfdm` to get the device tree schema and its values. diff --git a/bbfdmd/src/CMakeLists.txt b/bbfdmd/src/CMakeLists.txt index 3cc8cddb..6f1fe784 100644 --- a/bbfdmd/src/CMakeLists.txt +++ b/bbfdmd/src/CMakeLists.txt @@ -8,7 +8,7 @@ ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR}") IF(${BBFDMD_MAX_MSG_LEN}) - ADD_DEFINITIONS(-DUSPD_MAX_MSG_LEN=${BBFDMD_MAX_MSG_LEN}) + ADD_DEFINITIONS(-DBBFDM_MAX_MSG_LEN=${BBFDMD_MAX_MSG_LEN}) ENDIF() FILE(GLOB BBF_SOURCES *.c) diff --git a/bbfdmd/src/add_delete.c b/bbfdmd/src/add_delete.c index 186b3d4a..d85d9dbe 100644 --- a/bbfdmd/src/add_delete.c +++ b/bbfdmd/src/add_delete.c @@ -1,5 +1,5 @@ /* - * add_delete.c: Add/Delete handler for uspd + * add_delete.c: Add/Delete handler for bbfdmd * * Copyright (C) 2023 iopsys Software Solutions AB. All rights reserved. * @@ -25,9 +25,9 @@ #include "add_delete.h" #include "get_helper.h" -typedef int (*ADD_DEL_CB_T)(usp_data_t *data); +typedef int (*ADD_DEL_CB_T)(bbfdm_data_t *data); -static int usp_add_object(usp_data_t *data) +static int bbfdm_add_object(bbfdm_data_t *data) { int fault = 0; @@ -35,7 +35,7 @@ static int usp_add_object(usp_data_t *data) void *array = blobmsg_open_array(&data->bb, "results"); - fault = usp_dm_exec(&data->bbf_ctx, BBF_ADD_OBJECT); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_ADD_OBJECT); if (fault) { fill_err_code_table(data, fault); } else { @@ -50,7 +50,7 @@ static int usp_add_object(usp_data_t *data) return fault; } -static int usp_del_object(usp_data_t *data) +static int bbfdm_del_object(bbfdm_data_t *data) { struct pathNode *pn; int fault = 0; @@ -64,7 +64,7 @@ static int usp_del_object(usp_data_t *data) INFO("Req to delete object |%s|", data->bbf_ctx.in_param); - fault = usp_dm_exec(&data->bbf_ctx, BBF_DEL_OBJECT); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_DEL_OBJECT); if (fault) { fill_err_code_table(data, fault); } else { @@ -82,7 +82,7 @@ static int usp_del_object(usp_data_t *data) return fault; } -static int handle_add_del_req(usp_data_t *data, ADD_DEL_CB_T req_cb) +static int handle_add_del_req(bbfdm_data_t *data, ADD_DEL_CB_T req_cb) { int fault = 0; @@ -91,12 +91,12 @@ static int handle_add_del_req(usp_data_t *data, ADD_DEL_CB_T req_cb) return fault; } -int create_add_response(usp_data_t *data) +int create_add_response(bbfdm_data_t *data) { - return handle_add_del_req(data, &usp_add_object); + return handle_add_del_req(data, &bbfdm_add_object); } -int create_del_response(usp_data_t *data) +int create_del_response(bbfdm_data_t *data) { - return handle_add_del_req(data, &usp_del_object); + return handle_add_del_req(data, &bbfdm_del_object); } diff --git a/bbfdmd/src/add_delete.h b/bbfdmd/src/add_delete.h index 4a5ccdde..33d895f5 100644 --- a/bbfdmd/src/add_delete.h +++ b/bbfdmd/src/add_delete.h @@ -17,7 +17,7 @@ enum { __DM_DEL_MAX }; -int create_add_response(usp_data_t *data); -int create_del_response(usp_data_t *data); +int create_add_response(bbfdm_data_t *data); +int create_del_response(bbfdm_data_t *data); #endif /* ADD_DEL_H */ diff --git a/bbfdmd/src/bbfdmd.c b/bbfdmd/src/bbfdmd.c index 94990353..3a44154b 100644 --- a/bbfdmd/src/bbfdmd.c +++ b/bbfdmd/src/bbfdmd.c @@ -48,7 +48,7 @@ extern struct list_head loaded_json_files; extern struct list_head json_list; extern struct list_head json_memhead; -#define USP_SUBPROCESS_DEPTH (2) +#define bbfdm_SUBPROCESS_DEPTH (2) #define BBF_SCHEMA_UPDATE_TIMEOUT (60 * 1000) #define BBF_INSTANCES_UPDATE_TIMEOUT (25 * 1000) @@ -56,7 +56,7 @@ extern struct list_head json_memhead; // Global variables static unsigned int g_refresh_time = BBF_INSTANCES_UPDATE_TIMEOUT; -static int g_subprocess_level = USP_SUBPROCESS_DEPTH; +static int g_subprocess_level = bbfdm_SUBPROCESS_DEPTH; static void *deamon_lib_handle = NULL; static json_object *deamon_json_obj = NULL; @@ -91,7 +91,7 @@ static void usage(char *prog) fprintf(stderr, "\n"); } -static void usp_cleanup(struct usp_context *u) +static void bbfdm_cleanup(struct bbfdm_context *u) { free_path_list(&u->instances); free_path_list(&u->old_instances); @@ -110,7 +110,7 @@ static void usp_cleanup(struct usp_context *u) } } -static bool is_sync_operate_cmd(usp_data_t *data __attribute__((unused))) +static bool is_sync_operate_cmd(bbfdm_data_t *data __attribute__((unused))) { return false; } @@ -130,7 +130,7 @@ static bool is_subprocess_required(const char *path) return ret; } -static void fill_optional_data(usp_data_t *data, struct blob_attr *msg) +static void fill_optional_data(bbfdm_data_t *data, struct blob_attr *msg) { struct blob_attr *attr; size_t rem; @@ -166,14 +166,14 @@ static void fill_optional_data(usp_data_t *data, struct blob_attr *msg) data->is_raw ? "raw" : "pretty"); } -static void async_req_free(struct uspd_async_req *r) +static void async_req_free(struct bbfdm_async_req *r) { free(r); } static void async_complete_cb(struct uloop_process *p, __attribute__((unused)) int ret) { - struct uspd_async_req *r = container_of(p, struct uspd_async_req, process); + struct bbfdm_async_req *r = container_of(p, struct bbfdm_async_req, process); if (r) { INFO("Async call with pid(%d) completes", r->process.pid); @@ -188,9 +188,9 @@ static void async_complete_cb(struct uloop_process *p, __attribute__((unused)) i } -static struct uspd_async_req *async_req_new(void) +static struct bbfdm_async_req *async_req_new(void) { - struct uspd_async_req *r = malloc(sizeof(*r)); + struct bbfdm_async_req *r = malloc(sizeof(*r)); if (r) { memset(&r->process, 0, sizeof(r->process)); @@ -200,11 +200,11 @@ static struct uspd_async_req *async_req_new(void) return r; } -static int uspd_start_deferred(usp_data_t *data, void (*EXEC_CB)(usp_data_t *data, void *d)) +static int bbfdm_start_deferred(bbfdm_data_t *data, void (*EXEC_CB)(bbfdm_data_t *data, void *d)) { - struct uspd_async_req *r = NULL; + struct bbfdm_async_req *r = NULL; pid_t child; - struct usp_context *u; + struct bbfdm_context *u; void *result = NULL; result = mmap(NULL, DEF_IPC_DATA_LEN, PROT_READ| PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0); @@ -224,9 +224,9 @@ static int uspd_start_deferred(usp_data_t *data, void (*EXEC_CB)(usp_data_t *dat ERR("fork error"); goto err_out; } else if (child == 0) { - u = container_of(data->ctx, struct usp_context, ubus_ctx); + u = container_of(data->ctx, struct bbfdm_context, ubus_ctx); if (u == NULL) { - ERR("Failed to get the usp context"); + ERR("Failed to get the bbfdm context"); exit(EXIT_FAILURE); } @@ -243,14 +243,14 @@ static int uspd_start_deferred(usp_data_t *data, void (*EXEC_CB)(usp_data_t *dat INFO("Calling from subprocess"); EXEC_CB(data, result); - usp_cleanup(u); + bbfdm_cleanup(u); closelog(); /* write result and exit */ exit(EXIT_SUCCESS); } // parent - INFO("Creating usp(%d) sub process(%d) for path(%s)", getpid(), child, data->bbf_ctx.in_param); + INFO("Creating bbfdm(%d) sub process(%d) for path(%s)", getpid(), child, data->bbf_ctx.in_param); r->result = result; r->ctx = data->ctx; r->process.pid = child; @@ -269,11 +269,11 @@ err_out: return UBUS_STATUS_UNKNOWN_ERROR; } -static bool is_object_schema_update_available(struct usp_context *u) +static bool is_object_schema_update_available(struct bbfdm_context *u) { size_t ll, min_len; LIST_HEAD(paths_list); - usp_data_t data = { + bbfdm_data_t data = { .is_raw = true, .plist = &paths_list, .bbf_ctx.nextlevel = false, @@ -327,17 +327,17 @@ static const struct blobmsg_policy dm_get_policy[] = { [DM_GET_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE}, }; -static int usp_get_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), +static int bbfdm_get_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), struct ubus_request_data *req, const char *method __attribute__((unused)), struct blob_attr *msg) { struct blob_attr *tb[__DM_GET_MAX]; LIST_HEAD(paths_list); - usp_data_t data; + bbfdm_data_t data; uint8_t maxdepth = 0; bool is_subprocess_needed = false; - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(dm_get_policy, __DM_GET_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -379,9 +379,9 @@ static int usp_get_handler(struct ubus_context *ctx, struct ubus_object *obj __a if (is_subprocess_needed) { INFO("Creating subprocess for get method"); - uspd_start_deferred(&data, usp_get_value_async); + bbfdm_start_deferred(&data, bbfdm_get_value_async); } else { - usp_get_value(&data); + bbfdm_get_value(&data); } free_path_list(&paths_list); @@ -398,15 +398,15 @@ static const struct blobmsg_policy dm_schema_policy[] = { [DM_SCHEMA_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE}, }; -static int usp_schema_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), +static int bbfdm_schema_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), struct ubus_request_data *req, const char *method __attribute__((unused)), struct blob_attr *msg) { struct blob_attr *tb[__DM_SCHEMA_MAX]; LIST_HEAD(paths_list); - usp_data_t data; + bbfdm_data_t data; - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(dm_schema_policy, __DM_SCHEMA_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -446,7 +446,7 @@ static int usp_schema_handler(struct ubus_context *ctx, struct ubus_object *obj blob_buf_init(&data.bb, 0); if (dm_type == BBFDM_CWMP) - usp_get_names(&data); + bbfdm_get_names(&data); else bbf_dm_get_supported_dm(&data); @@ -464,15 +464,15 @@ static const struct blobmsg_policy dm_instances_policy[] = { [DM_INSTANCES_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE }, }; -static int usp_instances_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), +static int bbfdm_instances_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), struct ubus_request_data *req, const char *method __attribute__((unused)), struct blob_attr *msg) { struct blob_attr *tb[__DM_INSTANCES_MAX]; LIST_HEAD(paths_list); - usp_data_t data; + bbfdm_data_t data; - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(dm_instances_policy, __DM_INSTANCES_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -505,7 +505,7 @@ static int usp_instances_handler(struct ubus_context *ctx, struct ubus_object *o fill_optional_data(&data, tb[DM_INSTANCES_OPTIONAL]); blob_buf_init(&data.bb, 0); - usp_get_instances(&data); + bbfdm_get_instances(&data); ubus_send_reply(ctx, req, data.bb.head); blob_buf_free(&data.bb); @@ -520,18 +520,18 @@ static const struct blobmsg_policy dm_set_policy[] = { [DM_SET_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE }, }; -int usp_set_handler(struct ubus_context *ctx, struct ubus_object *obj, +int bbfdm_set_handler(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) { struct blob_attr *tb[__DM_SET_MAX] = {NULL}; char path[PATH_MAX] = {'\0'}; - usp_data_t data; - int fault = USP_ERR_OK; + bbfdm_data_t data; + int fault = bbfdm_ERR_OK; int trans_id = 0; LIST_HEAD(pv_list); - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(dm_set_policy, __DM_SET_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -555,7 +555,7 @@ int usp_set_handler(struct ubus_context *ctx, struct ubus_object *obj, fault = fill_pvlist_set(path, tb[DM_SET_VALUE] ? blobmsg_get_string(tb[DM_SET_VALUE]) : NULL, tb[DM_SET_OBJ_PATH], &pv_list); if (fault) { ERR("Fault in fill pvlist set path |%s|", data.bbf_ctx.in_param); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); goto end; } @@ -567,7 +567,7 @@ int usp_set_handler(struct ubus_context *ctx, struct ubus_object *obj, // no need to process it further since transaction-id is not valid if (data.trans_id && !is_transaction_valid(data.trans_id)) { WARNING("Transaction not started yet"); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); goto end; } @@ -576,12 +576,12 @@ int usp_set_handler(struct ubus_context *ctx, struct ubus_object *obj, trans_id = transaction_start(0); if (trans_id == 0) { WARNING("Failed to get the lock for the transaction"); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); goto end; } } - usp_set_value(&data); + bbfdm_set_value(&data); if (data.trans_id == 0) { // Internal transaction: need to commit the changes @@ -603,15 +603,15 @@ static const struct blobmsg_policy dm_operate_policy[__DM_OPERATE_MAX] = { [DM_OPERATE_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE }, }; -static int usp_operate_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), +static int bbfdm_operate_handler(struct ubus_context *ctx, struct ubus_object *obj __attribute__((unused)), struct ubus_request_data *req, const char *method __attribute__((unused)), struct blob_attr *msg) { struct blob_attr *tb[__DM_OPERATE_MAX] = {NULL}; char path[MAX_DM_PATH] = {0}; - usp_data_t data; + bbfdm_data_t data; - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(dm_operate_policy, __DM_OPERATE_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -636,9 +636,9 @@ static int usp_operate_handler(struct ubus_context *ctx, struct ubus_object *obj INFO("ubus method|%s|, name|%s|, path(%s)", method, obj->name, data.bbf_ctx.in_param); if (is_sync_operate_cmd(&data)) { - usp_operate_cmd_sync(&data); + bbfdm_operate_cmd_sync(&data); } else { - uspd_start_deferred(&data, usp_operate_cmd_async); + bbfdm_start_deferred(&data, bbfdm_operate_cmd_async); } return 0; @@ -650,17 +650,17 @@ static const struct blobmsg_policy dm_add_policy[] = { [DM_ADD_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE }, }; -int usp_add_handler(struct ubus_context *ctx, struct ubus_object *obj, +int bbfdm_add_handler(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) { struct blob_attr *tb[__DM_ADD_MAX]; char path[PATH_MAX]; - usp_data_t data; + bbfdm_data_t data; int trans_id = 0; int fault = 0; - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(dm_add_policy, __DM_ADD_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -684,7 +684,7 @@ int usp_add_handler(struct ubus_context *ctx, struct ubus_object *obj, // no need to process it further since transaction-id is not valid if (data.trans_id && !is_transaction_valid(data.trans_id)) { WARNING("Transaction not started yet"); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); goto end; } @@ -693,7 +693,7 @@ int usp_add_handler(struct ubus_context *ctx, struct ubus_object *obj, trans_id = transaction_start(0); if (trans_id == 0) { ERR("Failed to get the lock for the transaction"); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); goto end; } } @@ -718,7 +718,7 @@ int usp_add_handler(struct ubus_context *ctx, struct ubus_object *obj, fault = fill_pvlist_set(path, NULL, tb[DM_ADD_OBJ_PATH], &pv_list); if (fault) { ERR("Fault in fill pvlist set path |%s|", path); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); if (data.trans_id == 0) { // Internal transaction: need to abort the changes @@ -731,7 +731,7 @@ int usp_add_handler(struct ubus_context *ctx, struct ubus_object *obj, data.plist = &pv_list; - usp_set_value(&data); + bbfdm_set_value(&data); free_pv_list(&pv_list); } @@ -754,16 +754,16 @@ static const struct blobmsg_policy dm_del_policy[] = { [DM_DEL_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE }, }; -int usp_del_handler(struct ubus_context *ctx, struct ubus_object *obj, +int bbfdm_del_handler(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) { struct blob_attr *tb[__DM_DEL_MAX]; LIST_HEAD(paths_list); - usp_data_t data; + bbfdm_data_t data; int trans_id = 0; - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(dm_del_policy, __DM_DEL_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -804,7 +804,7 @@ int usp_del_handler(struct ubus_context *ctx, struct ubus_object *obj, // no need to process it further since transaction-id is not valid if (data.trans_id && !is_transaction_valid(data.trans_id)) { WARNING("Transaction not started yet"); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); goto end; } @@ -813,7 +813,7 @@ int usp_del_handler(struct ubus_context *ctx, struct ubus_object *obj, trans_id = transaction_start(0); if (trans_id == 0) { WARNING("Failed to get the lock for the transaction"); - fill_err_code_array(&data, USP_FAULT_INTERNAL_ERROR); + fill_err_code_array(&data, bbfdm_FAULT_INTERNAL_ERROR); goto end; } } @@ -848,19 +848,19 @@ static const struct blobmsg_policy transaction_policy[] = { [TRANS_OPTIONAL] = { .name = "optional", .type = BLOBMSG_TYPE_TABLE }, }; -static int usp_transaction_handler(struct ubus_context *ctx, struct ubus_object *obj, +static int bbfdm_transaction_handler(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) { struct blob_attr *tb[__TRANS_MAX] = {NULL}; - usp_data_t data; + bbfdm_data_t data; bool is_service_restart = true; uint32_t max_timeout = 0; char *trans_cmd = "status"; int ret; - memset(&data, 0, sizeof(usp_data_t)); + memset(&data, 0, sizeof(bbfdm_data_t)); if (blobmsg_parse(transaction_policy, __TRANS_MAX, tb, blob_data(msg), blob_len(msg))) { ERR("Failed to parse blob"); @@ -926,7 +926,7 @@ static const struct blobmsg_policy dm_notify_event_policy[] = { [BBF_NOTIFY_PRAMS] = { .name = "input", .type = BLOBMSG_TYPE_TABLE }, }; -static int usp_notify_event(struct ubus_context *ctx, struct ubus_object *obj, +static int bbfdm_notify_event(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req __attribute__((unused)), const char *method, struct blob_attr *msg) { @@ -957,15 +957,15 @@ static int usp_notify_event(struct ubus_context *ctx, struct ubus_object *obj, } static struct ubus_method bbf_methods[] = { - UBUS_METHOD("get", usp_get_handler, dm_get_policy), - UBUS_METHOD("schema", usp_schema_handler, dm_schema_policy), - UBUS_METHOD("instances", usp_instances_handler, dm_instances_policy), - UBUS_METHOD("set", usp_set_handler, dm_set_policy), - UBUS_METHOD("operate", usp_operate_handler, dm_operate_policy), - UBUS_METHOD("add", usp_add_handler, dm_add_policy), - UBUS_METHOD("del", usp_del_handler, dm_del_policy), - UBUS_METHOD("transaction", usp_transaction_handler, transaction_policy), - UBUS_METHOD("notify_event", usp_notify_event, dm_notify_event_policy), + UBUS_METHOD("get", bbfdm_get_handler, dm_get_policy), + UBUS_METHOD("schema", bbfdm_schema_handler, dm_schema_policy), + UBUS_METHOD("instances", bbfdm_instances_handler, dm_instances_policy), + UBUS_METHOD("set", bbfdm_set_handler, dm_set_policy), + UBUS_METHOD("operate", bbfdm_operate_handler, dm_operate_policy), + UBUS_METHOD("add", bbfdm_add_handler, dm_add_policy), + UBUS_METHOD("del", bbfdm_del_handler, dm_del_policy), + UBUS_METHOD("transaction", bbfdm_transaction_handler, transaction_policy), + UBUS_METHOD("notify_event", bbfdm_notify_event, dm_notify_event_policy), }; static struct ubus_object_type bbf_type = UBUS_OBJECT_TYPE(UBUS_METHOD_NAME, bbf_methods); @@ -980,12 +980,12 @@ static struct ubus_object bbf_object = { static void periodic_schema_updater(struct uloop_timeout *t) { bool ret; - struct usp_context *u; + struct bbfdm_context *u; struct blob_buf bb; - u = container_of(t, struct usp_context, schema_timer); + u = container_of(t, struct bbfdm_context, schema_timer); if (u == NULL) { - ERR("Failed to get the usp context"); + ERR("Failed to get the bbfdm context"); return; } @@ -1064,7 +1064,7 @@ static void update_instances_list(struct list_head *inst) bbf_init(&bbf_ctx); - if (0 == usp_dm_exec(&bbf_ctx, BBF_INSTANCES)) { + if (0 == bbfdm_dm_exec(&bbf_ctx, BBF_INSTANCES)) { struct dm_parameter *nptr_dp; list_for_each_entry(nptr_dp, &bbf_ctx.list_parameter, list) { @@ -1078,11 +1078,11 @@ static void update_instances_list(struct list_head *inst) static void periodic_instance_updater(struct uloop_timeout *t); static void instance_fork_done(struct uloop_process *p, int ret) { - struct uspd_async_req *r = container_of(p, struct uspd_async_req, process); + struct bbfdm_async_req *r = container_of(p, struct bbfdm_async_req, process); if (r) { INFO("Instance updater(%d) completed, starting a new instance timer", r->process.pid); - struct usp_context *u = (struct usp_context *)r->result; + struct bbfdm_context *u = (struct bbfdm_context *)r->result; u->instance_timer.cb = periodic_instance_updater; uloop_timeout_set(&u->instance_timer, g_refresh_time); @@ -1116,9 +1116,9 @@ static void instance_compare_publish(struct list_head *new_inst, struct list_hea free_path_list(&inst_list); } -static int fork_instance_checker(struct usp_context *u) +static int fork_instance_checker(struct bbfdm_context *u) { - struct uspd_async_req *r = NULL; + struct bbfdm_async_req *r = NULL; pid_t child; r = async_req_new(); @@ -1131,7 +1131,7 @@ static int fork_instance_checker(struct usp_context *u) } child = fork(); if (child == 0) { - prctl(PR_SET_NAME, (unsigned long) "usp_instance"); + prctl(PR_SET_NAME, (unsigned long) "bbfdm_instance"); // child initialise signal to prevent segfaults signal_init(); /* free fd's and memory inherited from parent */ @@ -1144,7 +1144,7 @@ static int fork_instance_checker(struct usp_context *u) DEBUG("subprocess instances checker"); instance_compare_publish(&u->instances, &u->old_instances); - usp_cleanup(u); + bbfdm_cleanup(u); closelog(); /* write result and exit */ exit(EXIT_SUCCESS); @@ -1167,11 +1167,11 @@ err_out: static void periodic_instance_updater(struct uloop_timeout *t) { - struct usp_context *u; + struct bbfdm_context *u; - u = container_of(t, struct usp_context, instance_timer); + u = container_of(t, struct bbfdm_context, instance_timer); if (u == NULL) { - ERR("Failed to get the usp context"); + ERR("Failed to get the bbfdm context"); return; } @@ -1273,7 +1273,7 @@ static int bbfdm_load_deamon_config(const char *json_path) return err; } -static int usp_init(struct usp_context *u) +static int bbfdm_init(struct bbfdm_context *u) { INFO("Registering ubus objects...."); return ubus_add_object(&u->ubus_ctx, &bbf_object); @@ -1281,7 +1281,7 @@ static int usp_init(struct usp_context *u) int main(int argc, char **argv) { - struct usp_context usp_ctx; + struct bbfdm_context bbfdm_ctx; const char *input_json = DEFAULT_JSON_INPUT; const char *ubus_socket = NULL; int err = 0, ch; @@ -1313,15 +1313,15 @@ int main(int argc, char **argv) openlog("bbfdm", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); - memset(&usp_ctx, 0, sizeof(struct usp_context)); + memset(&bbfdm_ctx, 0, sizeof(struct bbfdm_context)); - INIT_LIST_HEAD(&usp_ctx.instances); - INIT_LIST_HEAD(&usp_ctx.old_instances); - INIT_LIST_HEAD(&usp_ctx.event_handlers); + INIT_LIST_HEAD(&bbfdm_ctx.instances); + INIT_LIST_HEAD(&bbfdm_ctx.old_instances); + INIT_LIST_HEAD(&bbfdm_ctx.event_handlers); uloop_init(); - err = ubus_connect_ctx(&usp_ctx.ubus_ctx, ubus_socket); + err = ubus_connect_ctx(&bbfdm_ctx.ubus_ctx, ubus_socket); if (err != UBUS_STATUS_OK) { fprintf(stderr, "Failed to connect to ubus\n"); return -1; @@ -1329,31 +1329,31 @@ int main(int argc, char **argv) signal_init(); - err = register_events_to_ubus(&usp_ctx.ubus_ctx, &usp_ctx.event_handlers); + err = register_events_to_ubus(&bbfdm_ctx.ubus_ctx, &bbfdm_ctx.event_handlers); if (err != 0) goto exit; - ubus_add_uloop(&usp_ctx.ubus_ctx); + ubus_add_uloop(&bbfdm_ctx.ubus_ctx); - err = usp_init(&usp_ctx); + err = bbfdm_init(&bbfdm_ctx); if (err != UBUS_STATUS_OK) goto exit; - usp_ctx.schema_timer.cb = periodic_schema_updater; - uloop_timeout_set(&usp_ctx.schema_timer, BBF_SCHEMA_UPDATE_TIMEOUT); + bbfdm_ctx.schema_timer.cb = periodic_schema_updater; + uloop_timeout_set(&bbfdm_ctx.schema_timer, BBF_SCHEMA_UPDATE_TIMEOUT); // initial timer should be bigger to give more space to other applications to initialize - usp_ctx.instance_timer.cb = periodic_instance_updater; - uloop_timeout_set(&usp_ctx.instance_timer, 3 * g_refresh_time); + bbfdm_ctx.instance_timer.cb = periodic_instance_updater; + uloop_timeout_set(&bbfdm_ctx.instance_timer, 3 * g_refresh_time); INFO("Waiting on uloop...."); uloop_run(); exit: - free_ubus_event_handler(&usp_ctx.ubus_ctx, &usp_ctx.event_handlers); - ubus_shutdown(&usp_ctx.ubus_ctx); + free_ubus_event_handler(&bbfdm_ctx.ubus_ctx, &bbfdm_ctx.event_handlers); + ubus_shutdown(&bbfdm_ctx.ubus_ctx); uloop_done(); - usp_cleanup(&usp_ctx); + bbfdm_cleanup(&bbfdm_ctx); closelog(); return err; diff --git a/bbfdmd/src/bbfdmd.h b/bbfdmd/src/bbfdmd.h index 50994bff..4c88fdde 100644 --- a/bbfdmd/src/bbfdmd.h +++ b/bbfdmd/src/bbfdmd.h @@ -7,14 +7,14 @@ #include "libbbfdm-api/dmbbf.h" -struct uspd_async_req { +struct bbfdm_async_req { struct ubus_context *ctx; struct ubus_request_data req; struct uloop_process process; void *result; }; -struct usp_context { +struct bbfdm_context { struct ubus_context ubus_ctx; size_t dm_schema_len; struct uloop_timeout schema_timer; @@ -29,7 +29,7 @@ struct ev_handler_node { struct list_head list; }; -typedef struct usp_data { +typedef struct bbfdm_data { struct ubus_context *ctx; struct ubus_request_data *req; struct list_head *plist; @@ -38,6 +38,6 @@ typedef struct usp_data { uint8_t depth; bool is_raw; int trans_id; -} usp_data_t; +} bbfdm_data_t; #endif /* BBFDMD_H */ diff --git a/bbfdmd/src/common.c b/bbfdmd/src/common.c index 2e6ebf71..2db0ad8e 100644 --- a/bbfdmd/src/common.c +++ b/bbfdmd/src/common.c @@ -166,7 +166,7 @@ int count_delim(const char *path) return (count - 1); } -bool validate_msglen(usp_data_t *data) +bool validate_msglen(bbfdm_data_t *data) { size_t data_len = blob_pad_len(data->bb.head); diff --git a/bbfdmd/src/common.h b/bbfdmd/src/common.h index 34a09685..97d88fec 100644 --- a/bbfdmd/src/common.h +++ b/bbfdmd/src/common.h @@ -29,9 +29,9 @@ #define GLOB_CHAR "[[+*]+" #define GLOB_EXPR "[=><]+" -#define GLOB_USP_PATH "[+#=><]+" +#define GLOB_bbfdm_PATH "[+#=><]+" -#define USP_ERR_OK 0 +#define bbfdm_ERR_OK 0 extern DMOBJ *DEAMON_DM_ROOT_OBJ; extern DM_MAP_VENDOR *DEAMON_DM_VENDOR_EXTENSION[2]; @@ -49,7 +49,7 @@ void print_warning(const char *format, ...); void print_info(const char *format, ...); void print_debug(const char *format, ...); bool get_boolean_string(char *value); -bool validate_msglen(usp_data_t *data); +bool validate_msglen(bbfdm_data_t *data); int get_dm_type(char *dm_type); int get_proto_type(const char *proto); diff --git a/bbfdmd/src/events.c b/bbfdmd/src/events.c index 11f69902..3d7c561e 100644 --- a/bbfdmd/src/events.c +++ b/bbfdmd/src/events.c @@ -1,5 +1,5 @@ /* - * events.c: Handler to generate usp events on ubus + * events.c: Handler to generate bbfdm events on ubus * * Copyright (C) 2023 iopsys Software Solutions AB. All rights reserved. * @@ -157,7 +157,7 @@ static void generate_blob_input(struct blob_buf *b, const char *type, struct lis } } -static void uspd_event_handler(struct ubus_context *ctx, struct ubus_event_handler *ev, +static void bbfdm_event_handler(struct ubus_context *ctx, struct ubus_event_handler *ev, const char *type, struct blob_attr *msg) { (void)ev; @@ -249,7 +249,7 @@ int register_events_to_ubus(struct ubus_context *ctx, struct list_head *ev_list) } memset(ev, 0, sizeof(struct ubus_event_handler)); - ev->cb = uspd_event_handler; + ev->cb = bbfdm_event_handler; if (0 != ubus_register_event_handler(ctx, ev, ev_map_list[i].event)) { ERR("Failed to register: %s", ev_map_list[i].event); @@ -282,7 +282,7 @@ bool is_registered_event(char *name) bbf_init(&bbf_ctx); - if (0 == usp_dm_exec(&bbf_ctx, BBF_SCHEMA)) { + if (0 == bbfdm_dm_exec(&bbf_ctx, BBF_SCHEMA)) { struct dm_parameter *param; list_for_each_entry(param, &bbf_ctx.list_parameter, list) { diff --git a/bbfdmd/src/get.c b/bbfdmd/src/get.c index 2f848402..d34574e9 100644 --- a/bbfdmd/src/get.c +++ b/bbfdmd/src/get.c @@ -1,5 +1,5 @@ /* - * get.c: Get handler for uspd + * get.c: Get handler for bbfdmd * * Copyright (C) 2023 iopsys Software Solutions AB. All rights reserved. * @@ -29,9 +29,9 @@ #include -void usp_get_value_async(usp_data_t *data, void *output) +void bbfdm_get_value_async(bbfdm_data_t *data, void *output) { - int fault = USP_ERR_OK; + int fault = bbfdm_ERR_OK; struct pathNode *pn; void *array = NULL; @@ -46,7 +46,7 @@ void usp_get_value_async(usp_data_t *data, void *output) data->bbf_ctx.in_param = pn->path; - fault = usp_dm_exec(&data->bbf_ctx, BBF_GET_VALUE); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_GET_VALUE); if (fault) { fill_err_code_table(data, fault); } else { @@ -88,9 +88,9 @@ void usp_get_value_async(usp_data_t *data, void *output) bbf_cleanup(&data->bbf_ctx); } -void usp_get_value(usp_data_t *data) +void bbfdm_get_value(bbfdm_data_t *data) { - int fault = USP_ERR_OK; + int fault = bbfdm_ERR_OK; struct pathNode *pn; void *array = NULL; @@ -107,7 +107,7 @@ void usp_get_value(usp_data_t *data) data->bbf_ctx.in_param = pn->path; - fault = usp_dm_exec(&data->bbf_ctx, BBF_GET_VALUE); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_GET_VALUE); if (fault) { fill_err_code_table(data, fault); } else { @@ -150,9 +150,9 @@ void usp_get_value(usp_data_t *data) bbf_cleanup(&data->bbf_ctx); } -void usp_get_names(usp_data_t *data) +void bbfdm_get_names(bbfdm_data_t *data) { - int fault = USP_ERR_OK; + int fault = bbfdm_ERR_OK; struct pathNode *pn; bbf_init(&data->bbf_ctx); @@ -164,7 +164,7 @@ void usp_get_names(usp_data_t *data) data->bbf_ctx.in_param = pn->path; - fault = usp_dm_exec(&data->bbf_ctx, BBF_GET_NAME); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_GET_NAME); if (fault) { fill_err_code_table(data, fault); } else { @@ -192,9 +192,9 @@ void usp_get_names(usp_data_t *data) bbf_cleanup(&data->bbf_ctx); } -void usp_get_instances(usp_data_t *data) +void bbfdm_get_instances(bbfdm_data_t *data) { - int fault = USP_ERR_OK; + int fault = bbfdm_ERR_OK; struct pathNode *pn; bbf_init(&data->bbf_ctx); @@ -206,7 +206,7 @@ void usp_get_instances(usp_data_t *data) data->bbf_ctx.in_param = pn->path; - fault = usp_dm_exec(&data->bbf_ctx, BBF_INSTANCES); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_INSTANCES); if (fault) { fill_err_code_table(data, fault); } else { @@ -320,11 +320,11 @@ static void fill_param_schema(struct blob_buf *bb, struct dm_parameter *param) } } -int bbf_dm_get_supported_dm(usp_data_t *data) +int bbf_dm_get_supported_dm(bbfdm_data_t *data) { struct dm_parameter *param; struct pathNode *pn; - int fault = USP_ERR_OK; + int fault = bbfdm_ERR_OK; bbf_init(&data->bbf_ctx); @@ -335,7 +335,7 @@ int bbf_dm_get_supported_dm(usp_data_t *data) data->bbf_ctx.in_param = pn->path; - fault = usp_dm_exec(&data->bbf_ctx, BBF_SCHEMA); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_SCHEMA); if (fault) { fill_err_code_table(data, fault); } else { diff --git a/bbfdmd/src/get.h b/bbfdmd/src/get.h index 0b884294..2c5fce11 100644 --- a/bbfdmd/src/get.h +++ b/bbfdmd/src/get.h @@ -31,13 +31,13 @@ enum { __DM_SCHEMA_MAX }; -void usp_get_value(usp_data_t *data); -void usp_get_value_async(usp_data_t *data, void *output); +void bbfdm_get_value(bbfdm_data_t *data); +void bbfdm_get_value_async(bbfdm_data_t *data, void *output); -void usp_get_names(usp_data_t *data); +void bbfdm_get_names(bbfdm_data_t *data); -void usp_get_instances(usp_data_t *data); +void bbfdm_get_instances(bbfdm_data_t *data); -int bbf_dm_get_supported_dm(usp_data_t *data); +int bbf_dm_get_supported_dm(bbfdm_data_t *data); #endif /* GET_H */ diff --git a/bbfdmd/src/get_helper.c b/bbfdmd/src/get_helper.c index a910d80f..b51140ed 100644 --- a/bbfdmd/src/get_helper.c +++ b/bbfdmd/src/get_helper.c @@ -1,5 +1,5 @@ /* - * get_helper.c: Get Fast handler for uspd + * get_helper.c: Get Fast handler for bbfdmd * * Copyright (C) 2019 iopsys Software Solutions AB. All rights reserved. * @@ -167,12 +167,12 @@ void free_path_list(struct list_head *plist) } } -int usp_dm_exec(struct dmctx *bbf_ctx, int cmd) +int bbfdm_dm_exec(struct dmctx *bbf_ctx, int cmd) { int fault = 0; if (bbf_ctx->in_param == NULL) - return USP_FAULT_INTERNAL_ERROR; + return bbfdm_FAULT_INTERNAL_ERROR; if (sigsetjmp(gs_jump_location, 1) == 0) { gs_jump_called_by_bbf = true; @@ -180,7 +180,7 @@ int usp_dm_exec(struct dmctx *bbf_ctx, int cmd) } else { ERR("PID [%ld]::Exception on [%d => %s]", getpid(), cmd, bbf_ctx->in_param); print_last_dm_object(); - fault = USP_FAULT_INTERNAL_ERROR; + fault = bbfdm_FAULT_INTERNAL_ERROR; } gs_jump_called_by_bbf = false; @@ -191,7 +191,7 @@ int usp_dm_exec(struct dmctx *bbf_ctx, int cmd) return fault; } -void fill_err_code_table(usp_data_t *data, int fault) +void fill_err_code_table(bbfdm_data_t *data, int fault) { void *table = blobmsg_open_table(&data->bb, NULL); blobmsg_add_string(&data->bb, "path", data->bbf_ctx.in_param); @@ -200,7 +200,7 @@ void fill_err_code_table(usp_data_t *data, int fault) blobmsg_close_table(&data->bb, table); } -void fill_err_code_array(usp_data_t *data, int fault) +void fill_err_code_array(bbfdm_data_t *data, int fault) { void *array = blobmsg_open_array(&data->bb, "results"); void *table = blobmsg_open_table(&data->bb, NULL); diff --git a/bbfdmd/src/get_helper.h b/bbfdmd/src/get_helper.h index 0de023e2..b4def299 100644 --- a/bbfdmd/src/get_helper.h +++ b/bbfdmd/src/get_helper.h @@ -29,7 +29,7 @@ void bbf_sub_cleanup(struct dmctx *dm_ctx); bool present_in_path_list(struct list_head *plist, char *entry); -int usp_dm_exec(struct dmctx *bbf_ctx, int cmd); +int bbfdm_dm_exec(struct dmctx *bbf_ctx, int cmd); void add_pv_list(char *para, char *val, char *type, struct list_head *pv_list); void free_pv_list(struct list_head *pv_list); @@ -37,8 +37,8 @@ void free_pv_list(struct list_head *pv_list); void add_path_list(char *param, struct list_head *plist); void free_path_list(struct list_head *plist); -void fill_err_code_table(usp_data_t *data, int fault); -void fill_err_code_array(usp_data_t *data, int fault); +void fill_err_code_table(bbfdm_data_t *data, int fault); +void fill_err_code_array(bbfdm_data_t *data, int fault); void bb_add_string(struct blob_buf *bb, const char *name, const char *value); diff --git a/bbfdmd/src/ipc.h b/bbfdmd/src/ipc.h index 67362fd8..de82942d 100644 --- a/bbfdmd/src/ipc.h +++ b/bbfdmd/src/ipc.h @@ -25,8 +25,8 @@ #include -#ifdef USPD_MAX_MSG_LEN - #define DEF_IPC_DATA_LEN (USPD_MAX_MSG_LEN - 128) // Configured Len - 128 bytes +#ifdef BBFDM_MAX_MSG_LEN + #define DEF_IPC_DATA_LEN (BBFDM_MAX_MSG_LEN - 128) // Configured Len - 128 bytes #else #define DEF_IPC_DATA_LEN (10 * 1024 * 1024 - 128) // 10M - 128 bytes #endif diff --git a/bbfdmd/src/operate.c b/bbfdmd/src/operate.c index ffc4fd6b..dbc2565c 100644 --- a/bbfdmd/src/operate.c +++ b/bbfdmd/src/operate.c @@ -1,5 +1,5 @@ /* - * operate.c: Operate handler for uspd + * operate.c: Operate handler for bbfdmd * * Copyright (C) 2023 iopsys Software Solutions AB. All rights reserved. * @@ -29,32 +29,32 @@ #include -static int usp_dm_operate(usp_data_t *data) +static int bbfdm_dm_operate(bbfdm_data_t *data) { int fault = 0, ret = 0; void *table, *array; bbf_init(&data->bbf_ctx); - ret = usp_dm_exec(&data->bbf_ctx, BBF_OPERATE); + ret = bbfdm_dm_exec(&data->bbf_ctx, BBF_OPERATE); // This switch should be removed in the future and will be treated internally switch (ret) { case CMD_NOT_FOUND: - fault = USP_FAULT_INVALID_PATH; + fault = bbfdm_FAULT_INVALID_PATH; break; case CMD_INVALID_ARGUMENTS: - fault = USP_FAULT_INVALID_ARGUMENT; + fault = bbfdm_FAULT_INVALID_ARGUMENT; break; case CMD_FAIL: - fault = USP_FAULT_COMMAND_FAILURE; + fault = bbfdm_FAULT_COMMAND_FAILURE; break; case CMD_SUCCESS: - fault = USP_ERR_OK; + fault = bbfdm_ERR_OK; DEBUG("command executed successfully"); break; default: WARNING("Case(%d) not defined", fault); - fault = USP_FAULT_INVALID_PATH; + fault = bbfdm_FAULT_INVALID_PATH; break; } @@ -99,36 +99,36 @@ static int usp_dm_operate(usp_data_t *data) bbf_cleanup(&data->bbf_ctx); - if (fault != USP_ERR_OK) { + if (fault != bbfdm_ERR_OK) { WARNING("Fault(%d) path(%s) input(%s)", fault, data->bbf_ctx.in_param, data->bbf_ctx.in_value); return fault; } - return USP_ERR_OK; + return bbfdm_ERR_OK; } -static void usp_operate_cmd(usp_data_t *data) +static void bbfdm_operate_cmd(bbfdm_data_t *data) { void *array = blobmsg_open_array(&data->bb, "results"); - usp_dm_operate(data); + bbfdm_dm_operate(data); blobmsg_close_array(&data->bb, array); } -void usp_operate_cmd_async(usp_data_t *data, void *output) +void bbfdm_operate_cmd_async(bbfdm_data_t *data, void *output) { blob_buf_init(&data->bb, 0); - usp_operate_cmd(data); + bbfdm_operate_cmd(data); memcpy(output, data->bb.head, blob_pad_len(data->bb.head)); blob_buf_free(&data->bb); } -void usp_operate_cmd_sync(usp_data_t *data) +void bbfdm_operate_cmd_sync(bbfdm_data_t *data) { blob_buf_init(&data->bb, 0); - usp_operate_cmd(data); + bbfdm_operate_cmd(data); ubus_send_reply(data->ctx, data->req, data->bb.head); blob_buf_free(&data->bb); diff --git a/bbfdmd/src/operate.h b/bbfdmd/src/operate.h index e20aab96..90505a84 100644 --- a/bbfdmd/src/operate.h +++ b/bbfdmd/src/operate.h @@ -14,7 +14,7 @@ enum { __DM_OPERATE_MAX, }; -void usp_operate_cmd_async(usp_data_t *data, void *output); -void usp_operate_cmd_sync(usp_data_t *data); +void bbfdm_operate_cmd_async(bbfdm_data_t *data, void *output); +void bbfdm_operate_cmd_sync(bbfdm_data_t *data); #endif /* OPERATE_H */ diff --git a/bbfdmd/src/set.c b/bbfdmd/src/set.c index d053c040..b0459959 100644 --- a/bbfdmd/src/set.c +++ b/bbfdmd/src/set.c @@ -1,5 +1,5 @@ /* - * set.c: Set handler for uspd + * set.c: Set handler for bbfdmd * * Copyright (C) 2023 iopsys Software Solutions AB. All rights reserved. * @@ -26,11 +26,11 @@ #include -int usp_set_value(usp_data_t *data) +int bbfdm_set_value(bbfdm_data_t *data) { struct pvNode *pv = NULL; void *array = NULL; - int fault = USP_ERR_OK; + int fault = bbfdm_ERR_OK; array = blobmsg_open_array(&data->bb, "results"); @@ -38,7 +38,7 @@ int usp_set_value(usp_data_t *data) data->bbf_ctx.in_param = pv->param; data->bbf_ctx.in_value = pv->val; - fault = usp_dm_exec(&data->bbf_ctx, BBF_SET_VALUE); + fault = bbfdm_dm_exec(&data->bbf_ctx, BBF_SET_VALUE); if (fault) { fill_err_code_table(data, fault); } else { @@ -62,20 +62,20 @@ int fill_pvlist_set(char *param_name, char *param_value, struct blob_attr *blob_ size_t plen = DM_STRLEN(param_name); if (plen == 0) - return USP_FAULT_INVALID_PATH; + return bbfdm_FAULT_INVALID_PATH; if (!param_value) goto blob__table; if (param_name[plen - 1] == '.') - return USP_FAULT_INVALID_PATH; + return bbfdm_FAULT_INVALID_PATH; add_pv_list(param_name, param_value, NULL, pv_list); blob__table: if (!blob_table) - return USP_ERR_OK; + return bbfdm_ERR_OK; size_t tlen = (size_t)blobmsg_data_len(blob_table); @@ -100,12 +100,12 @@ blob__table: break; default: INFO("Unhandled set request type|%x|", blob_id(attr)); - return USP_FAULT_INVALID_ARGUMENT; + return bbfdm_FAULT_INVALID_ARGUMENT; } snprintf(path, MAX_DM_PATH, "%s%s", param_name, (char *)hdr->name); add_pv_list(path, value, NULL, pv_list); } - return USP_ERR_OK; + return bbfdm_ERR_OK; } diff --git a/bbfdmd/src/set.h b/bbfdmd/src/set.h index 052daeae..e41ab198 100644 --- a/bbfdmd/src/set.h +++ b/bbfdmd/src/set.h @@ -15,7 +15,7 @@ enum { }; int fill_pvlist_set(char *param_name, char *param_value, struct blob_attr *blob_table, struct list_head *pv_list); -int usp_set_value(usp_data_t *data); +int bbfdm_set_value(bbfdm_data_t *data); #endif /* SET_H */ diff --git a/docs/guide/bbfdm_ubus_errors.md b/docs/guide/bbfdm_ubus_errors.md index 73eb97bf..e96cf1f2 100644 --- a/docs/guide/bbfdm_ubus_errors.md +++ b/docs/guide/bbfdm_ubus_errors.md @@ -2,7 +2,7 @@ ## Path syntax and possible error cases -Please note some error scenerios with the uspd. +Please note some error scenerios with the bbfdm. 1. The path parameter value must start with 'Device.'. The command below doesn't have Device before path "Users.User." diff --git a/docs/guide/bbfdm_ubus_parallel_call.md b/docs/guide/bbfdm_ubus_parallel_call.md index 13d36fa4..49f44c51 100644 --- a/docs/guide/bbfdm_ubus_parallel_call.md +++ b/docs/guide/bbfdm_ubus_parallel_call.md @@ -1,6 +1,6 @@ # Parallel UBUS calls -All `operate` operation and `get` operation with a depth up to 'USP_SUBPROCESS_DEPTH(2)' +All `operate` operation and `get` operation with a depth up to 'bbfdm_SUBPROCESS_DEPTH(2)' runs in a parallel subprocess to avoid blocking the next call. ```console diff --git a/docs/guide/dynamic_dm.md b/docs/guide/dynamic_dm.md index 91ad2231..905bc04b 100644 --- a/docs/guide/dynamic_dm.md +++ b/docs/guide/dynamic_dm.md @@ -8,7 +8,7 @@ ## 1. Shared library via external package -The application should bring its shared library under **'/usr/lib/bbfdm/'** path that contains the sub tree of **Objects/Parameters** and the related functions **Get/Set/Add/Delete/Operate**. The new added objects, parameters and operates will be automatically shown by icwmpd and uspd/obuspa. +The application should bring its shared library under **'/usr/lib/bbfdm/'** path that contains the sub tree of **Objects/Parameters** and the related functions **Get/Set/Add/Delete/Operate**. The new added objects, parameters and operates will be automatically shown by icwmpd and bbfdmd/obuspa. Each library should contains the Root table: **“tDynamicObj”** @@ -36,7 +36,7 @@ For the other tables, they are defined in the same way as the Object and Paramet ### 2. JSON File via external package -The application should bring its JSON file under **'/etc/bbfdm/json/'** path with **UCI** and **UBUS** mappings. The new added parameters will be automatically shown by icwmpd and uspd/obuspa. +The application should bring its JSON file under **'/etc/bbfdm/json/'** path with **UCI** and **UBUS** mappings. The new added parameters will be automatically shown by icwmpd and bbfdmd/obuspa. #### Some examples on JSON Definition diff --git a/libbbfdm-api/dmapi.h b/libbbfdm-api/dmapi.h index f0ce1c80..d878e4a1 100644 --- a/libbbfdm-api/dmapi.h +++ b/libbbfdm-api/dmapi.h @@ -260,45 +260,45 @@ enum { BBF_OPERATE, }; -enum usp_fault_code_enum { - USP_FAULT_GENERAL_FAILURE = 7000, // general failure - USP_FAULT_MESSAGE_NOT_UNDERSTOOD = 7001, // message was not understood - USP_FAULT_REQUEST_DENIED = 7002, // Cannot or will not process message - USP_FAULT_INTERNAL_ERROR = 7003, // Message failed due to an internal error - USP_FAULT_INVALID_ARGUMENT = 7004, // invalid values in the request elements - USP_FAULT_RESOURCES_EXCEEDED = 7005, // Message failed due to memory or processing limitations - USP_FAULT_PERMISSION_DENIED = 7006, // Source endpoint does not have authorisation to use this message - USP_FAULT_INVALID_CONFIGURATION = 7007, // invalid or unstable state +enum bbfdm_fault_code_enum { + bbfdm_FAULT_GENERAL_FAILURE = 7000, // general failure + bbfdm_FAULT_MESSAGE_NOT_UNDERSTOOD = 7001, // message was not understood + bbfdm_FAULT_REQUEST_DENIED = 7002, // Cannot or will not process message + bbfdm_FAULT_INTERNAL_ERROR = 7003, // Message failed due to an internal error + bbfdm_FAULT_INVALID_ARGUMENT = 7004, // invalid values in the request elements + bbfdm_FAULT_RESOURCES_EXCEEDED = 7005, // Message failed due to memory or processing limitations + bbfdm_FAULT_PERMISSION_DENIED = 7006, // Source endpoint does not have authorisation to use this message + bbfdm_FAULT_INVALID_CONFIGURATION = 7007, // invalid or unstable state // ParamError codes - USP_FAULT_INVALID_PATH_SYNTAX = 7008, // Requested path was invalid or a reference was invalid - USP_FAULT_PARAM_ACTION_FAILED = 7009, // Parameter failed to update for a general reason described in an err_msg element. - USP_FAULT_UNSUPPORTED_PARAM = 7010, // Requested Path Name associated with this ParamError did not match any instantiated parameters - USP_FAULT_INVALID_TYPE = 7011, // Unable to convert string value to correct data type - USP_FAULT_INVALID_VALUE = 7012, // Out of range or invalid enumeration - USP_FAULT_PARAM_READ_ONLY = 7013, // Attempted to write to a read only parameter - USP_FAULT_VALUE_CONFLICT = 7014, // Requested value would result in an invalid configuration + bbfdm_FAULT_INVALID_PATH_SYNTAX = 7008, // Requested path was invalid or a reference was invalid + bbfdm_FAULT_PARAM_ACTION_FAILED = 7009, // Parameter failed to update for a general reason described in an err_msg element. + bbfdm_FAULT_UNSUPPORTED_PARAM = 7010, // Requested Path Name associated with this ParamError did not match any instantiated parameters + bbfdm_FAULT_INVALID_TYPE = 7011, // Unable to convert string value to correct data type + bbfdm_FAULT_INVALID_VALUE = 7012, // Out of range or invalid enumeration + bbfdm_FAULT_PARAM_READ_ONLY = 7013, // Attempted to write to a read only parameter + bbfdm_FAULT_VALUE_CONFLICT = 7014, // Requested value would result in an invalid configuration - USP_FAULT_CRUD_FAILURE = 7015, // General failure to perform the CRUD operation - USP_FAULT_OBJECT_DOES_NOT_EXIST = 7016, // Requested object instance does not exist - USP_FAULT_CREATION_FAILURE = 7017, // General failure to create the object - USP_FAULT_NOT_A_TABLE = 7018, // The requested pathname was expected to be a multi-instance object, but wasn't - USP_FAULT_OBJECT_NOT_CREATABLE = 7019, // Attempted to create an object which was non-creatable (for non-writable multi-instance objects) - USP_FAULT_SET_FAILURE = 7020, // General failure to set a parameter - USP_FAULT_REQUIRED_PARAM_FAILED = 7021, // The CRUD operation failed because a required parameter failed to update + bbfdm_FAULT_CRUD_FAILURE = 7015, // General failure to perform the CRUD operation + bbfdm_FAULT_OBJECT_DOES_NOT_EXIST = 7016, // Requested object instance does not exist + bbfdm_FAULT_CREATION_FAILURE = 7017, // General failure to create the object + bbfdm_FAULT_NOT_A_TABLE = 7018, // The requested pathname was expected to be a multi-instance object, but wasn't + bbfdm_FAULT_OBJECT_NOT_CREATABLE = 7019, // Attempted to create an object which was non-creatable (for non-writable multi-instance objects) + bbfdm_FAULT_SET_FAILURE = 7020, // General failure to set a parameter + bbfdm_FAULT_REQUIRED_PARAM_FAILED = 7021, // The CRUD operation failed because a required parameter failed to update - USP_FAULT_COMMAND_FAILURE = 7022, // Command failed to operate - USP_FAULT_COMMAND_CANCELLED = 7023, // Command failed to complete because it was cancelled - USP_FAULT_OBJECT_NOT_DELETABLE = 7024, // Attempted to delete an object which was non-deletable, or object failed to be deleted - USP_FAULT_UNIQUE_KEY_CONFLICT = 7025, // unique keys would conflict - USP_FAULT_INVALID_PATH = 7026, // Path is not present in the data model schema + bbfdm_FAULT_COMMAND_FAILURE = 7022, // Command failed to operate + bbfdm_FAULT_COMMAND_CANCELLED = 7023, // Command failed to complete because it was cancelled + bbfdm_FAULT_OBJECT_NOT_DELETABLE = 7024, // Attempted to delete an object which was non-deletable, or object failed to be deleted + bbfdm_FAULT_UNIQUE_KEY_CONFLICT = 7025, // unique keys would conflict + bbfdm_FAULT_INVALID_PATH = 7026, // Path is not present in the data model schema // Brokered USP Record Errors - USP_FAULT_RECORD_NOT_PARSED = 7100, // Record could not be parsed - USP_FAULT_SECURE_SESS_REQUIRED = 7101, // A secure session must be started before pasing any records - USP_FAULT_SECURE_SESS_NOT_SUPPORTED = 7102, // Secure session is not supported by this endpoint - USP_FAULT_SEG_NOT_SUPPORTED = 7103, // Segmentation and reassembly is not supported by this endpoint - USP_FAULT_RECORD_FIELD_INVALID = 7104, // A USP record field was invalid + bbfdm_FAULT_RECORD_NOT_PARSED = 7100, // Record could not be parsed + bbfdm_FAULT_SECURE_SESS_REQUIRED = 7101, // A secure session must be started before pasing any records + bbfdm_FAULT_SECURE_SESS_NOT_SUPPORTED = 7102, // Secure session is not supported by this endpoint + bbfdm_FAULT_SEG_NOT_SUPPORTED = 7103, // Segmentation and reassembly is not supported by this endpoint + bbfdm_FAULT_RECORD_FIELD_INVALID = 7104, // A USP record field was invalid }; enum fault_code_enum { diff --git a/libbbfdm-api/dmentry.c b/libbbfdm-api/dmentry.c index 8d82e60f..0d95dac1 100644 --- a/libbbfdm-api/dmentry.c +++ b/libbbfdm-api/dmentry.c @@ -66,69 +66,69 @@ int bbf_fault_map(unsigned int dm_type, int fault) if (dm_type == BBFDM_USP) { switch(fault) { case FAULT_9000: - out_fault = USP_FAULT_MESSAGE_NOT_UNDERSTOOD; + out_fault = bbfdm_FAULT_MESSAGE_NOT_UNDERSTOOD; break; case FAULT_9001: - out_fault = USP_FAULT_REQUEST_DENIED; + out_fault = bbfdm_FAULT_REQUEST_DENIED; break; case FAULT_9002: - out_fault = USP_FAULT_INTERNAL_ERROR; + out_fault = bbfdm_FAULT_INTERNAL_ERROR; break; case FAULT_9003: - out_fault = USP_FAULT_INVALID_ARGUMENT; + out_fault = bbfdm_FAULT_INVALID_ARGUMENT; break; case FAULT_9004: case FAULT_9027: - out_fault = USP_FAULT_RESOURCES_EXCEEDED; + out_fault = bbfdm_FAULT_RESOURCES_EXCEEDED; break; case FAULT_9005: - out_fault = USP_FAULT_INVALID_PATH; + out_fault = bbfdm_FAULT_INVALID_PATH; break; case FAULT_9006: - out_fault = USP_FAULT_INVALID_TYPE; + out_fault = bbfdm_FAULT_INVALID_TYPE; break; case FAULT_9007: - out_fault = USP_FAULT_INVALID_VALUE; + out_fault = bbfdm_FAULT_INVALID_VALUE; break; case FAULT_9008: - out_fault = USP_FAULT_PARAM_READ_ONLY; + out_fault = bbfdm_FAULT_PARAM_READ_ONLY; break; default: if (fault >= FAULT_9000) - out_fault = USP_FAULT_GENERAL_FAILURE; + out_fault = bbfdm_FAULT_GENERAL_FAILURE; else out_fault = fault; } } else if (dm_type == BBFDM_CWMP) { switch(fault) { - case USP_FAULT_GENERAL_FAILURE: + case bbfdm_FAULT_GENERAL_FAILURE: out_fault = FAULT_9002; break; - case USP_FAULT_MESSAGE_NOT_UNDERSTOOD: + case bbfdm_FAULT_MESSAGE_NOT_UNDERSTOOD: out_fault = FAULT_9000; break; - case USP_FAULT_REQUEST_DENIED: + case bbfdm_FAULT_REQUEST_DENIED: out_fault = FAULT_9001; break; - case USP_FAULT_INTERNAL_ERROR: + case bbfdm_FAULT_INTERNAL_ERROR: out_fault = FAULT_9002; break; - case USP_FAULT_INVALID_ARGUMENT: + case bbfdm_FAULT_INVALID_ARGUMENT: out_fault = FAULT_9003; break; - case USP_FAULT_RESOURCES_EXCEEDED: + case bbfdm_FAULT_RESOURCES_EXCEEDED: out_fault = FAULT_9004; break; - case USP_FAULT_INVALID_TYPE: + case bbfdm_FAULT_INVALID_TYPE: out_fault = FAULT_9006; break; - case USP_FAULT_INVALID_VALUE: + case bbfdm_FAULT_INVALID_VALUE: out_fault = FAULT_9007; break; - case USP_FAULT_PARAM_READ_ONLY: + case bbfdm_FAULT_PARAM_READ_ONLY: out_fault = FAULT_9008; break; - case USP_FAULT_INVALID_PATH: + case bbfdm_FAULT_INVALID_PATH: out_fault = FAULT_9005; break; default: @@ -146,10 +146,10 @@ int bbf_entry_method(struct dmctx *ctx, int cmd) int fault = 0; if (!ctx || !ctx->dm_entryobj) - return bbf_fault_map(ctx->dm_type, USP_FAULT_INVALID_CONFIGURATION); + return bbf_fault_map(ctx->dm_type, bbfdm_FAULT_INVALID_CONFIGURATION); if (!ctx->in_param) - return bbf_fault_map(ctx->dm_type, USP_FAULT_INVALID_PATH); + return bbf_fault_map(ctx->dm_type, bbfdm_FAULT_INVALID_PATH); load_plugins(ctx); diff --git a/libbbfdm/dmdiagnostics.c b/libbbfdm/dmdiagnostics.c index bf696c6e..483a43f4 100644 --- a/libbbfdm/dmdiagnostics.c +++ b/libbbfdm/dmdiagnostics.c @@ -114,7 +114,7 @@ static void send_transfer_complete_event(const char *command, const char *obj_pa strftime(complete_time, sizeof(complete_time), "%Y-%m-%dT%H:%M:%SZ", gmtime(&complete_t)); if (!get_response_code_status(transfer_url, res_code)) { - fault_code = USP_FAULT_GENERAL_FAILURE; + fault_code = bbfdm_FAULT_GENERAL_FAILURE; snprintf(fault_string, sizeof(fault_string), "%s operation is failed, fault code (%ld)", transfer_type, res_code); }