diff --git a/dmtree/tr181/deviceinfo-iopsyswrt.c b/dmtree/tr181/deviceinfo-iopsyswrt.c index 817b40e3..fd40a580 100644 --- a/dmtree/tr181/deviceinfo-iopsyswrt.c +++ b/dmtree/tr181/deviceinfo-iopsyswrt.c @@ -47,7 +47,7 @@ int os__get_device_hardwareversion(char *refparam, struct dmctx *ctx, void *data } /*#Device.DeviceInfo.ModelName!UCI:cwmp/cpe,cpe/model_name*/ -int os__get_device_routermodel(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +int os__get_device_modelname(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_option_value_string("cwmp", "cpe", "model_name", value); if (*value[0] == '\0') @@ -55,6 +55,15 @@ int os__get_device_routermodel(char *refparam, struct dmctx *ctx, void *data, ch return 0; } +/*#Device.DeviceInfo.Description!UCI:cwmp/cpe,cpe/description*/ +int os__get_device_description(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + dmuci_get_option_value_string("cwmp", "cpe", "description", value); + if (*value[0] == '\0') + db_get_value_string("hw", "board", "description", value); + return 0; +} + /*#Device.DeviceInfo.ManufacturerOUI!UCI:cwmp/cpe,cpe/manufacturer_oui*/ char * os__get_deviceid_manufactureroui() { diff --git a/dmtree/tr181/deviceinfo-openwrt.c b/dmtree/tr181/deviceinfo-openwrt.c index 585d87d2..5e0ce8cf 100644 --- a/dmtree/tr181/deviceinfo-openwrt.c +++ b/dmtree/tr181/deviceinfo-openwrt.c @@ -38,12 +38,18 @@ int os__get_device_hardwareversion(char *refparam, struct dmctx *ctx, void *data return 0; } -int os__get_device_routermodel(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +int os__get_device_modelname(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { *value = get_uci_deviceinfo("ModelName"); return 0; } +int os__get_device_description(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_uci_deviceinfo("Description"); + return 0; +} + char * os__get_deviceid_manufactureroui() { return get_uci_deviceinfo("ManufacturerOUI"); diff --git a/dmtree/tr181/deviceinfo.c b/dmtree/tr181/deviceinfo.c index 90f90699..4318c140 100644 --- a/dmtree/tr181/deviceinfo.c +++ b/dmtree/tr181/deviceinfo.c @@ -326,7 +326,8 @@ DMLEAF tDeviceInfoParams[] = { /* PARAM, permission, type, getvalue, setvalue, forced_inform, notification, bbfdm_type*/ {"Manufacturer", &DMREAD, DMT_STRING, get_device_manufacturer, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, {"ManufacturerOUI", &DMREAD, DMT_STRING, get_device_manufactureroui, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, -{"ModelName", &DMREAD, DMT_STRING, os__get_device_routermodel, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, +{"ModelName", &DMREAD, DMT_STRING, os__get_device_modelname, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, +{"Description", &DMREAD, DMT_STRING, os__get_device_description, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, {"ProductClass", &DMREAD, DMT_STRING, get_device_productclass, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, {"SerialNumber", &DMREAD, DMT_STRING, get_device_serialnumber, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, {"HardwareVersion", &DMREAD, DMT_STRING, os__get_device_hardwareversion, NULL, &DMFINFRM, NULL, BBFDM_BOTH}, diff --git a/dmtree/tr181/managementserver.c b/dmtree/tr181/managementserver.c index c2827e54..0be3070b 100644 --- a/dmtree/tr181/managementserver.c +++ b/dmtree/tr181/managementserver.c @@ -229,6 +229,28 @@ static int set_management_server_connection_request_passwd(char *refparam, struc return 0; } +/*#Device.ManagementServer.ConnectionRequestPassword!UCI:cwmp/cpe,cpe/upgrades_managed*/ +static int get_upgrades_managed(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + dmuci_get_option_value_string("cwmp", "cpe", "upgrades_managed", value); + return 0; +} + +static int set_upgrades_managed(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) +{ + switch (action) { + case VALUECHECK: + if (dm_validate_boolean(value)) + return FAULT_9007; + return 0; + case VALUESET: + dmuci_set_value("cwmp", "cpe", "upgrades_managed", value); + cwmp_set_end_session(END_SESSION_RELOAD); + return 0; + } + return 0; +} + static int get_lwn_protocol_supported(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { *value = "UDP"; @@ -695,13 +717,23 @@ DMLEAF tManagementServerParams[] = { {"URL", &DMWRITE, DMT_STRING, get_management_server_url, set_management_server_url, NULL, NULL, BBFDM_CWMP}, {"Username", &DMWRITE, DMT_STRING, get_management_server_username, set_management_server_username, NULL, NULL, BBFDM_CWMP}, {"Password", &DMWRITE, DMT_STRING, get_empty, set_management_server_passwd, NULL, NULL, BBFDM_CWMP}, -{"ParameterKey", &DMREAD, DMT_STRING, get_management_server_key, NULL, &DMFINFRM, &DMNONE, BBFDM_CWMP}, {"PeriodicInformEnable", &DMWRITE, DMT_BOOL, get_management_server_periodic_inform_enable, set_management_server_periodic_inform_enable, NULL, NULL, BBFDM_CWMP}, {"PeriodicInformInterval", &DMWRITE, DMT_UNINT, get_management_server_periodic_inform_interval, set_management_server_periodic_inform_interval, NULL, NULL, BBFDM_CWMP}, {"PeriodicInformTime", &DMWRITE, DMT_TIME, get_management_server_periodic_inform_time, set_management_server_periodic_inform_time, NULL, NULL, BBFDM_CWMP}, +{"ParameterKey", &DMREAD, DMT_STRING, get_management_server_key, NULL, &DMFINFRM, &DMNONE, BBFDM_CWMP}, {"ConnectionRequestURL", &DMREAD, DMT_STRING, get_management_server_connection_request_url, NULL, &DMFINFRM, &DMACTIVE, BBFDM_CWMP}, {"ConnectionRequestUsername", &DMWRITE, DMT_STRING, get_management_server_connection_request_username, set_management_server_connection_request_username, NULL, NULL, BBFDM_CWMP}, {"ConnectionRequestPassword", &DMWRITE, DMT_STRING, get_empty, set_management_server_connection_request_passwd, NULL, NULL, BBFDM_CWMP}, +{"UpgradesManaged", &DMWRITE, DMT_BOOL, get_upgrades_managed, set_upgrades_managed, NULL, NULL, BBFDM_CWMP}, +{"UDPConnectionRequestAddress", &DMREAD, DMT_STRING, get_upd_cr_address, NULL, NULL, &DMACTIVE, BBFDM_CWMP}, +{"STUNEnable", &DMWRITE, DMT_BOOL, get_stun_enable, set_stun_enable, NULL, NULL, BBFDM_CWMP}, +{"STUNServerAddress", &DMWRITE, DMT_STRING, get_stun_server_address, set_stun_server_address, NULL, NULL, BBFDM_CWMP}, +{"STUNServerPort", &DMWRITE, DMT_UNINT, get_stun_server_port, set_stun_server_port, NULL, NULL, BBFDM_CWMP}, +{"STUNUsername", &DMWRITE, DMT_STRING, get_stun_username, set_stun_username, NULL, NULL, BBFDM_CWMP}, +{"STUNPassword", &DMWRITE, DMT_STRING, get_stun_password, set_stun_password, NULL, NULL, BBFDM_CWMP}, +{"STUNMaximumKeepAlivePeriod", &DMWRITE, DMT_INT, get_stun_maximum_keepalive_period, set_stun_maximum_keepalive_period, NULL, NULL, BBFDM_CWMP}, +{"STUNMinimumKeepAlivePeriod", &DMWRITE, DMT_UNINT, get_stun_minimum_keepalive_period, set_stun_minimum_keepalive_period, NULL, NULL, BBFDM_CWMP}, +{"NATDetected", &DMREAD, DMT_BOOL, get_nat_detected, NULL, NULL, NULL, BBFDM_CWMP}, {"HTTPCompressionSupported", &DMREAD, DMT_STRING, get_management_server_http_compression_supportted, NULL, NULL, NULL, BBFDM_CWMP}, {"HTTPCompression", &DMWRITE, DMT_STRING, get_management_server_http_compression, set_management_server_http_compression, NULL, NULL, BBFDM_CWMP}, {"LightweightNotificationProtocolsSupported", &DMREAD, DMT_STRING, get_lwn_protocol_supported, NULL, NULL, NULL, BBFDM_CWMP}, @@ -716,14 +748,5 @@ DMLEAF tManagementServerParams[] = { {"ConnReqJabberID", &DMREAD, DMT_STRING, get_management_server_conn_req_jabber_id, NULL, &DMFINFRM, &DMACTIVE, BBFDM_CWMP}, {"ConnReqXMPPConnection", &DMWRITE, DMT_STRING, get_management_server_conn_req_xmpp_connection, set_management_server_conn_req_xmpp_connection, &DMFINFRM, NULL, BBFDM_CWMP}, {"SupportedConnReqMethods", &DMREAD, DMT_STRING, get_management_server_supported_conn_req_methods, NULL, NULL, NULL, BBFDM_CWMP}, -{"UDPConnectionRequestAddress", &DMREAD, DMT_STRING, get_upd_cr_address, NULL, NULL, &DMACTIVE, BBFDM_CWMP}, -{"STUNEnable", &DMWRITE, DMT_BOOL, get_stun_enable, set_stun_enable, NULL, NULL, BBFDM_CWMP}, -{"STUNServerAddress", &DMWRITE, DMT_STRING, get_stun_server_address, set_stun_server_address, NULL, NULL, BBFDM_CWMP}, -{"STUNServerPort", &DMWRITE, DMT_UNINT, get_stun_server_port, set_stun_server_port, NULL, NULL, BBFDM_CWMP}, -{"STUNUsername", &DMWRITE, DMT_STRING, get_stun_username, set_stun_username, NULL, NULL, BBFDM_CWMP}, -{"STUNPassword", &DMWRITE, DMT_STRING, get_stun_password, set_stun_password, NULL, NULL, BBFDM_CWMP}, -{"STUNMaximumKeepAlivePeriod", &DMWRITE, DMT_INT, get_stun_maximum_keepalive_period, set_stun_maximum_keepalive_period, NULL, NULL, BBFDM_CWMP}, -{"STUNMinimumKeepAlivePeriod", &DMWRITE, DMT_UNINT, get_stun_minimum_keepalive_period, set_stun_minimum_keepalive_period, NULL, NULL, BBFDM_CWMP}, -{"NATDetected", &DMREAD, DMT_BOOL, get_nat_detected, NULL, NULL, NULL, BBFDM_CWMP}, {0} }; diff --git a/dmtree/tr181/os.h b/dmtree/tr181/os.h index a9e356e1..38b54dcb 100644 --- a/dmtree/tr181/os.h +++ b/dmtree/tr181/os.h @@ -12,7 +12,8 @@ char * os__get_softwareversion(); char * os__get_deviceid_manufactureroui(); int os__get_device_hardwareversion(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value); -int os__get_device_routermodel(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value); +int os__get_device_modelname(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value); +int os__get_device_description(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value); int os__get_base_mac_addr(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value); int os__get_memory_status_total(char* refparam, struct dmctx *ctx, void *data, char *instance, char **value); diff --git a/json/tr181.json b/json/tr181.json index 84c328b8..c94b2d65 100644 --- a/json/tr181.json +++ b/json/tr181.json @@ -412,6 +412,21 @@ { "max": 256 } + ], + "mapping": [ + { + "type": "uci", + "uci": { + "file": "cwmp", + "section": { + "type": "cpe", + "name": "cpe" + }, + "option": { + "name": "description" + } + } + } ] }, "ProductClass": { @@ -2367,7 +2382,22 @@ "protocols": [ "cwmp" ], - "datatype": "boolean" + "datatype": "boolean", + "mapping": [ + { + "type": "uci", + "uci": { + "file": "cwmp", + "section": { + "type": "cpe", + "name": "cpe" + }, + "option": { + "name": "upgrades_managed" + } + } + } + ] }, "KickURL": { "type": "string",