Extended Birth Certificate
ESF 7 introduces some changes to the Birth Certificate message, in particular the following new metrics have been introduced:
- cpu_version: Reports version information about the CPU
- modem_firmware_version: Reports modem firmware version information, usually obtained running the AT+GMR command.
- extended_properties: Provides additional information about the gateway, the value of this metric is a string that contains a JSON object (see below).
Starting from ESF 7, the content of the following metrics may be obtained from EL commands, the reported value might change after and upgrade from ESF 6.2 to ESF 7.
- model_id
- model_name
- serial_number
- bios_version
- firmware_version
- os_version
- os_arch
Starting from ESF 7.4, the following properties have been introduced:
- jvm_vendor: A String representing the Java Virtual Machine implementation vendor that is currently being used.
- jdk_vendor_version: A String representing the Java System property
jdk.vendor.version
, if present on the system.
Birth Certificate extended properties
The JSON object serialized in the extended_properties metric value has the following fields:
-
version
:type:
string
description: The version of the extended properties object.
required
true
-
properties
:type:
object
description: Contains the actual extended properties, organized in named named groups represented by the properties of this object. The group name is the JSON property key and the value is a JSON object.
required
true
The following group names are defined in version 1.0:
-
Os Info
:type:
object
description: Provides additional system information. Currently it reports the output of the
eurotech_versions
command.required
false
can be missing if theeurotech_versions
command fails. -
Modems
:type:
object
description: Provides information on the modem devices connected to the gateway.
required:
false
can be missing if no modems are detected by the system. -
Installed Addons Info
:
type:object
description: Provides information on the bundles that are currently installed through OSGI'sDeploymentAdmin
.
required:false
, this group will be missing if no addons are installed.
The following groups are included by the current implementation but are not fully defined yet:
-
Security Info
:type:
object
required: TBD
description: TBD
-
Origination Info
:type:
object
required: TBD
description: TBD
-
Property groups defined in version 1.0
Os Info
This group contains the following property:
-
eurotech_versions
:type:
string
required
true
description: The raw output of the
eurotech_versions
command
Modems
This field contains a property for each detected modem, the property key is either the modem USB path (e.g. 1-1.3
) or the modem PPP interface (e.g. ppp0
).
For each modem, the property value is a string with the following format:
imei=${imei}, imsi=${imsi}, iccid=${iccid}, rssi=${rssi}, firmware_version=${firmware_version}
where ${imei}
, ${imsi}
, ${iccid}
, ${rssi}
and ${firmware_version}
are possibly empty strings.
Security Info
This group contains the following properties:
-
esf_operation_mode
:type:
string
required
true
description: Its values are either
Development mode
orProduction mode
. -
el_operation_mode
:type:
string
required: TBD
description:TBD
-
maintenance_mode
:type:
string
required: TBD
description:TBD
-
boot_state
:type:
string
required: TBD
description:TBD
-
tamper_status
:type:
string
required:
true
description: Reports the current device tamper status. The possible values are the following:
UNSUPPORTED
: NoTamperDetectionService
instances are registered on the system.TAMPERED
: At least oneTamperDetectionService
instance reports that the device is tampered.NOT_TAMPERED
: AllTamperDetectionService
instances report that the device is not tampered.
Device Management Info
This section reports to the cloud the status of the device management verification performed on control messages received from the cloud platform. Once enabled, for example after device provisioning, the gateway will require device management messages received to be signed and will verify such signature before accepting and processing the received message.
In addition to a status report, the section notifies the cloud platform of the name of the keystore used to maintain the verification certificates and the actual aliases of the certificates used for message signing verification.
-
dm_keystore_name
:type:
string
required:
true
description: Reports the service pid of the keystore used for message signing verification
-
dm_signature_verification
:type:
string
required:
true
description: Reports the message signature verification status. Possible values are:
ENABLED
: The message signature verification is enabled and the system will verify every control message received.DISABLED
: The message signature verification is disabled. The system will not check the signatures in the control messages received.
-
dm_keystore_entries
:type:
string
required:
false
description: When the
dm_signature_verification
is enabled this field is populated and will report, as a comma separated list, the aliases of the certificates that are available in thedm_keystore_name
for message signature verification. Each alias is associated with the corresponding certificate signature in braces. The corresponding string is the following:alias-1 (signature-1)[, alias-2 (signature-2)]*
Origination Info
-
device_id
:type:
string
required: TBD
description:TBD
Installed Addons Info
Installed Bundles
:
type:string
required:true
description: A String of comma-separated values without whitespaces. This string represents the symbolic names of all bundles that are installed through OSGI'sDeploymentAdmin
. Each value of this list follows the format<bundle-name>_<bundle-version>
. See example below.
Example
{
"version": "1.0",
"properties": {
"Os Info": {
"eurotech_versions": "eth_name_bsp .......... Reliagate 10-11\neth_vers_bsp .......... 20.2.0\neth_date_bsp .......... 201905081137\neth_serial_number ..... R116J1C0077\neth_model ............. reliagate-10-11-33\neth_release ........... STDXX_20190508_1\neth_vers_cpu .......... ARMv7 Processor rev 2 (v7l)\neth_arch_bsp .......... armv7l\neth_installer ......... 20.2.0_1\neth_vers_esf .......... ESF_7.0.0-SNAPSHOT\neth_vers_java ......... OpenJDK Runtime Environment (Zulu8.36.0.152-SA-linux_aarch32hf) (build 1.8.0_202-b152)\neth_vers_uboot ........ U-Boot 2014.07 (May 07 2019 - 18:22:39)"
},
"Modems": {
"1-1.3": "imei=357178070112720, imsi=, iccid=, rssi=-113, firmware_version=12.00.006"
},
"Security Info": {
"boot_state": "Unimplemented",
"maintenance_mode": "Unimplemented",
"esf_operation_mode": "Development mode",
"el_operation_mode": "Unimplemented"
},
"Origination Info": {
"device_id": "Unimplemented"
},
"Installed Addons Info": {
"Installed Bundles": "org.eclipse.kura.wire.devel.component.provider_1.3.0,org.eclipse.kura.wire.script.filter.provider_1.3.0"
}
}
}
Updated about 1 year ago