Transport Bindings
The LWM2M Server and the LWM2M Client MUST support UDP binding specified in Section 8.6.1 UDP Binding and the LWM2M Server SHOULD support SMS binding and the LWM2M Client MAY support SMS binding specified in Section 8.6.2 SMS Binding.
UDP Binding
The CoAP binding for UDP is defined in [CoAP]. The protocol has a IANA registered scheme of coap:// and a default port of 5683. The UDP binding is used in NoSec (no security) mode. Reliability over the UDP transport is provided by the built-in retransmission mechanism of CoAP.
SMS Binding
CoAP is used over SMS in this transport binding by placing a CoAP message in the SMS payload using 8-bit encoding. SMS concatenation MAY be used for messages larger than 140 characters. CoAP retransmission is disabled for this binding. An LWM2M Client indicates the use of this binding by including a parameter (sms) in its registration to the LWM2M Server including the node’s MSISDN number. The LWM2M Client MAY interact with the server using both UDP and SMS bindings.
Change History (Informative)
Approved Version History
Reference | Date | Description |
---|---|---|
n/a | n/a | No prior version |
Draft/Candidate Version 1.0 History
Document Identifier | Date | Sections | Description |
---|---|---|---|
Draft Versions | 04 Sep 2012 | All | TS baseline agreed as in |
18 Sep 2003 | 6, 7 | Incorporates input to committee:OMA-DM-LightweightM2M-2012-0083R01-CR_Skeleton_Base_Line | |
24 Oct 2012 | 6, 7, Appendix A | OMA-DM-LightweightM2M-2012-0095R01-CR_TS_Interface_and_Resource_Additions | |
30 Oct 2012 | 7, 8 | OMA-DM-LightweightM2M-2012-0097R01-CR_Identifiers_and_Security_Considerations | |
17 Nov 2012 | 2, 6, 7, 8, 9, 10 | OMA-DM-LightweightM2M-2012-0088R04-CR_Transfer_Protocol | |
30 Nov 2012 | OMA-DM-LightweightM2M-2012-0107R01-CR_Appendix_for_LWM2M_Objects. | ||
06 Dec 2012 | 6 | OMA-DM-LightweightM2M-2012-0110R01-CR_Interfaces_Intro_Update | |
19 Dec 2012 | 6,7,8,9,Annex | OMA-DM-LightweightM2M-2012-0111R01-CR_Object_Instance_Introduction | |
22 Jan 2013 | 2, 7, 8, 9, Annex | OMA-DM-LightweightM2M-2012-0101R03-CR_change_of_the_TLV_data_format | |
6 Feb 2013 | OMA-DM-LightweightM2M-2013-0004R03-CR_SmartCard_Bootstrap | ||
26 Feb 2013 | All | OMA-DM-LightweightM2M-2013-0002R04-CR_Adding_Creatable_Object | |
01 Mar 2013 | All | OMA-DM-LightweightM2M-2013-0011R03-CR_Failure_indication_for_firmware_object | |
14 Mar 2013 | All | OMA-DM-LightweightM2M-2012-0116R03-CR_Bootstrap_Interface_Chapter_Modification | |
09 Apr 2013 | All | OMA-DM-LightweightM2M-2013-0047R02-CR_major_TS_cleanup | |
12 Apr 2013 | All | OMA-DM-LightweightM2M-2013-0054R02-CR_Bootstrap_Process_Update | |
22 May 2013 | All | OMA-DM-LightweightM2M-2013-0062R01-CR_TS_Editorial_streamlining | |
10 June 2013 | All | OMA-DM-LightweightM2M-2013-0070-CR_examples_update | |
17 July 2013 | All | It incorporates: | |
02 Aug 2013 | All | OMA-DM-LightweightM2M-2013-0100R02-CR_121 | |
19 Aug 2013 | All | OMA-DM-LightweightM2M-2013-0104R03-CR_Registration_Binding | |
28 Aug 2013 | All | OMA-DM-LightweightM2M-2013-0099R03-CR_Resolving_Comments_on_Section_5.1 | |
04 Sep 2013 | All | OMA-DM-LightweightM2M-2013-0114R01-CR_Comments_Resolving_for_D.3 | |
12 Sep 2013 | All | OMA-DM-LightweightM2M-2013-0124R02-CR_Reserved_ID | |
17 Sep 2013 | OMA-DM-LightweightM2M-2013-0127-CR_Connectivity_Monitoring_Object_comments_A172_A173 | ||
06 Oct 2013 | 1, 2, 4, 5, 5.1, 5.2, 5.2.1, 5.2.3, 5.3, 5.3.3-5.3.7, 5.4, 6.3.3.2, 6.3.4, 7.1, 7.1.3, 7.2, 7.2.1, 7.2.2, 7.2.2.1, 7.2.2.3, 7.2.2.4, 8.2, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.3, 8.4, 8.5, B, C, D, D.1, D.2, D.2.1, E, E.1, E.1.2, E.2-E.8, F, G.1, G.2.2 | Incorporated CRs: | |
17 Oct 2013 | All | OMA-DM-LightweightM2M-2013-0154-CR_SCR_Table_UpdateSC | |
31 Oct 2013 | 3.2, 5, 5.1.2.3, 5.2.2, 5.3, 5.3.1, 5.3.3, 5.3.4, 5.4.2, 7.1.3, 7.1.4, 7.2, 7.2.1.1, 7.2.1.2, 7.2.2, 8.2.2, 8.2.4, 8.5, 8.6, B.1.2, B.1.6, B.1.7, B.2.2, B.2.3, B.2.7, D.1, E, F | Incorporated CRs: | |
05 Nov 2013 | 7.2, E | Incorporated CRs: | |
03 Dec 2013 | D | Incorporated CR: | |
Candidate Version | 10 Dec 2013 | n/a | Status changed to Candidate by TP |
Draft Versions | 09 Jan 2014 | 2.1, 5.3.4 | Incorporated CR: |
15 Jan 2014 | 5.3.2, 6.3.1, 6.3.3.1, 6.3.4 | Incorporated CR: | |
16 Apr 2014 | 5.1.4, 6.2, 6.3.1 | Incorporated CR: | |
28 Apr 2014 | E.4 | Incorporated CR: | |
07 May 2014 | E.4 | Modify the editorial issues when incorporating CR0008R02 |
Static Conformance Requirements (Normative)
The notation used in this appendix is specified in [SCRRULES].
SCR for LWM2M Client
Bootstrap Interface
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-BOOT-001-C-M | Support of at least one Bootstrap Mode | Section 5.1 | |
LWM2M-BOOT-002-C-O | Support of Factory Bootstrap Mode | Section 5.1.2.1 | |
LWM2M-BOOT-003-C-O | Support of Bootstrap from Smartcard | Section 5.1.2.2, Appendix F | LWM2M-BOOT-012C-O |
LWM2M-BOOT-004-C-O | Support of Client Initiated Bootstrap | Section 5.1.2.3 | |
LWM2M-BOOT-005-C-O | Support of Server Initiated Bootstrap | Section 5.1.2.4 | |
LWM2M-BOOT-006-C-M | Support of LWM2M Server Bootstrap Information | Section 5.1.1 | |
LWM2M-BOOT-007-C-O | Support of LWM2M Bootstrap Server Bootstrap Information | Section 5.1.1 | |
LWM2M-BOOT-008-C-M | Support of accepting Bootstrap Information transferred | Section 5.1.1 | |
LWM2M-BOOT-009-C-M | Support of Bootstrap Sequence | Section 5.1.3 | |
LWM2M-BOOT-010-C-M | Support of Bootstrap Security | Section 5.1.4 | |
LWM2M-BOOT-011-C-O | Support of Bootstrap from Smartcard with Secure Channel | Section 5.1.2.2, Appendix F | LWM2M-BOOT-012C-O AND |
LWM2M-BOOT-012-C-O | Retrieve & Process bootstrap data from Smartcard | Section 5.1.2.2 | |
LWM2M-BOOT-013-C-O | Check for Bootstrap Data change in Smartcard | Section 5.1.2.2 |
Client Registration
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-CR-001-C-M | Support of “Register” operation | Section 5.2.1 | |
LWM2M-CR-002-C-M | Support of Endpoint Client Name parameter | Section 5.2.1 | |
LWM2M-CR-003-C-M | Support of Lifetime parameter | Section 5.2.1 | |
LWM2M-CR-004-C-O | Support of LWM2M Version parameter | Section 5.2.1 | |
LWM2M-CR-005-C-M | Support of Binding Mode parameter | Section 5.2.1, 5.2.1.1 | |
LWM2M-CR-006-C-O | Support of SMS Number parameter | Section 5.2.1 | |
LWM2M-CR-007-C-M | Support of Object and Object Instances parameter | Section 5.2.1 | |
LWM2M-CR-008-C-M | Support of “Update” operation | Section 5.2.2 | |
LWM2M-CR-009-C-O | Support of “De-register” operation | Section 5.2.3 | |
LWM2M-CR-010-C-O | Support of Updating Bootstrap Information from Smartcard at Register/Update | Section 5.1.2.2 | (LWM2M-CR-001-C-M OR |
Device Management and Service Enablement Interface
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-DMSE-001-C-M | Support of “Read” operation | Section 5.3.1 | |
LWM2M-DMSE-002-C-M | Support of “Discover” operation | Section 5.3.2 | |
LWM2M-DMSE-003-C-M | Support of “Write” operation | Section 5.3.3 | |
LWM2M-DMSE-004-C-M | Support of “Write Attributes” operation | Section 5.3.4 | |
LWM2M-DMSE-005-C-O | Support of Minimum Period parameter | Section 5.3.4 | |
LWM2M-DMSE-006-C-O | Support of Maximum Period parameter | Section 5.3.4 | |
LWM2M-DMSE-007-C-O | Support of Greater Than parameter | Section 5.3.4 | |
LWM2M-DMSE-008-C-O | Support of Less Than parameter | Section 5.3.4 | |
LWM2M-DMSE-009-C-O | Support of Step parameter | Section 5.3.4 | |
LWM2M-DMSE-010-C-O | Support of Cancel parameter | Section 5.3.4 | |
LWM2M-DMSE-011-C-M | Support of “Execute” operation | Section 5.3.5 | |
LWM2M-DMSE-012-C-M | Support of “Create” operation | Section 5.3.6 | |
LWM2M-DMSE-013-C-M | Support of “Delete” operation | Section 5.3.7 |
Information Reporting
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-IR-001-C-M | Support of “Observe” operation | Section 5.4.1 | |
LWM2M-IR-002-C-M | Support of “Notify” operation | Section 5.4.2 | |
LWM2M-IR-003-C-M | Support of “Cancel Observation” operation | Section 5.4.3 |
Data Format
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-DF-001-C-M | Support of Plain Text format | Section 6.3, 6.3.1 | |
LWM2M-DF-002-C-M | Support of Opaque format | Section 6.3, 6.3.2 | |
LWM2M-DF-003-C-M | Support of TLV format | Section 6.3, 6.3.3 | |
LWM2M-DF-004-C-O | Support of JSON format | Section 6.3, 6.3.4 |
Security
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-SEC-001-C-M | Support of at least one key mode | Section 7.1 | LWM2M-SEC-002-C-O OR LWM2M-SEC-003-C-O OR LWM2M-SEC-004-C-O OR LWM2M-SEC-004-C-O |
LWM2M-SEC-002-C-O | Support of Pre-Shared Keys mode | Section 7.1.1 | |
LWM2M-SEC-003-C-O | Support of Raw Public Key Certificates mode | Section 7.1.2 | |
LWM2M-SEC-004-C-O | Support of X.509 Certificates mode | Section 7.1.3 | |
LWM2M-SEC-005-C-O | Support of No Sec mode | Section 7.1.4 | |
LWM2M-SEC-006-C-O | Support of UDP Channel Security | Section 7.1 | |
LWM2M-SEC-007-C-O | Support of Smartcard Secure Channel | Section 7.1, Appendix G | LWM2M-SEC-009-C-O |
LWM2M-SEC-008-C-O | Support of Access Control Mechanism | Section 7.3 | |
LWM2M-SEC-009-C-O | Smartcard Secure Channel using [GLOBALPLATFORM] |
Mechanism
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-MEC-001-C-O | Support of Queue Mode | Section 8.3 | |
LWM2M-MEC-002-C-M | Support of UDP Binding | Section 8.6.1 | |
LWM2M-MEC-003-C-O | Support of SMS Binding | Section 8.6.2 |
Objects
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-OBJ-001-C-M | Support of LWM2M Security Object | Appendix E.1 | |
LWM2M-OBJ-002-C-M | Support of LWM2M Server Object | Appendix E.2 | |
LWM2M-OBJ-003-C-O | Support of Access Control Object | Appendix E.3 | |
LWM2M-OBJ-004-C-M | Support of Device Object | Appendix E.4 | |
LWM2M-OBJ-005-C-O | Support of Connectivity Monitoring Object | Appendix E.5 | |
LWM2M-OBJ-006-C-O | Support of Firmware Update Object | Appendix E.6 | |
LWM2M-OBJ-007-C-O | Support of Location Object | Appendix E.7 | |
LWM2M-OBJ-008-C-O | Support of Connectivity Statistics Object | Appendix E.8 |
SCR for LWM2M Server
Bootstrap Interface
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-BOOT-005-S-M | Support of Server Initiated Bootstrap | Section 5.1.2.4 | |
LWM2M-BOOT-010-S-M | Support of Bootstrap Security | Section 5.1.4 |
Client Registration
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-CR-001-S-M | Support of “Register” operation | Section 5.2.1 | |
LWM2M-CR-002-S-M | Support of Endpoint Client Name parameter | Section 5.2.1 | |
LWM2M-CR-003-S-M | Support of Lifetime parameter | Section 5.2.1 | |
LWM2M-CR-004-S-M | Support of LWM2M Version parameter | Section 5.2.1 | |
LWM2M-CR-005-S-M | Support of Binding Mode parameter | Section 5.2.1, 5.2.1.1 | |
LWM2M-CR-006-S-M | Support of SMS Number parameter | Section 5.2.1 | |
LWM2M-CR-007-S-M | Support of Object and Object Instances parameter | Section 5.2.1 | |
LWM2M-CR-001-S-M | Support of “Update” operation | Section 5.2.2 | |
LWM2M-CR-001-S-M | Support of “De-register” operation | Section 5.2.3 |
Device Management and Service Enablement Interface
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-DMSE-001-S-M | Support of “Read” operation | Section 5.3.1 | |
LWM2M-DMSE-002-S-M | Support of “Discover” operation | Section 5.3.2 | |
LWM2M-DMSE-003-S-M | Support of “Write” operation | Section 5.3.3 | |
LWM2M-DMSE-004-S-M | Support of “Write Attributes” operation | Section 5.3.4 | |
LWM2M-DMSE-005-S-M | Support of Minimum Period parameter | Section 5.3.4 | |
LWM2M-DMSE-006-S-M | Support of Maximum Period parameter | Section 5.3.4 | |
LWM2M-DMSE-007-S-M | Support of Greater Than parameter | Section 5.3.4 | |
LWM2M-DMSE-008-S-M | Support of Less Than parameter | Section 5.3.4 | |
LWM2M-DMSE-009-S-M | Support of Step parameter | Section 5.3.4 | |
LWM2M-DMSE-010-S-M | Support of “Execute” operation | Section 5.3.5 | |
LWM2M-DMSE-011-S-M | Support of “Create” operation | Section 5.3.6 | |
LWM2M-DMSE-012-S-M | Support of “Delete” operation | Section 5.3.7 |
Information Reporting
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-IR-001-S-M | Support of “Observe” operation | Section 5.4.1 | |
LWM2M-IR-002-S-M | Support of “Notify” operation | Section 5.4.2 | |
LWM2M-IR-003-S-M | Support of “Cancel Observation” operation | Section 5.4.3 |
Data Format
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-DF-001-S-M | Support of Plain Text format | Section 6.3, 6.3.1 | |
LWM2M-DF-002-S-M | Support of Opaque format | Section 6.3, 6.3.2 | |
LWM2M-DF-003-S-M | Support of TLV format | Section 6.3, 6.3.3 | |
LWM2M-DF-004-S-M | Support of JSON format | Section 6.3, 6.3.4 |
Security
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-SEC-002-S-M | Support of Pre-Shared Keys mode | Section 7.1.1 | |
LWM2M-SEC-003-S-M | Support of Raw Public Key Certificates mode | Section 7.1.2 | |
LWM2M-SEC-004-S-M | Support of X.509 Certificates mode | Section 7.1.3 | |
LWM2M-SEC-005-S-M | Support of No Sec mode | Section 7.1.4 | |
LWM2M-SEC-006-S-M | Support of UDP Channel Security | Section 7.1 |
Mechanism
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-MEC-001-S-M | Support of Queue Mode | Section 8.3 | |
LWM2M-MEC-002-S-M | Support of UDP Binding | Section 8.6.1 | |
LWM2M-MEC-003-S-O | Support of SMS Binding | Section 8.6.2 |
Objects
Item | Function | Reference | Requirement |
---|---|---|---|
LWM2M-OBJ-001-S-M | Support of LWM2M Security Object | Appendix E.1 | |
LWM2M-OBJ-002-S-M | Support of LWM2M Server Object | Appendix E.2 | |
LWM2M-OBJ-003-S-O | Support of Access Control Object | Appendix E.3 | |
LWM2M-OBJ-004-S-M | Support of Device Object | Appendix E.4 | |
LWM2M-OBJ-005-S-O | Support of Connectivity Monitoring Object | Appendix E.5 | |
LWM2M-OBJ-006-S-O | Support of Firmware Update Object | Appendix E.6 | |
LWM2M-OBJ-007-S-O | Support of Location Object | Appendix E.7 | |
LWM2M-OBJ-008-S-O | Support of Connectivity Statistics Object | Appendix E.8 |
Data Types (Normative)
This appendix defines the data types that a Resource can be defined to be.
Data Type | Description | Text Format | TLV Format |
---|---|---|---|
String | A UTF-8 string, the minimum and/or maximum length of the String MAY be defined. | Represented as a UTF-8 string. | Represented as a UTF-8 string of Length bytes. |
Integer | An 8, 16, 32 or 64-bit signed integer. The valid range of the value for a Resource SHOULD be defined. This data type is also used for the purpose of enumeration. | Represented as an ASCII signed integer. | Represented as a binary signed integer in network byte order, where the first (most significant) bit is 0 for a positive integer and 1 for a negative integer. The value may be 1 (8-bit), 2 (16-bit), 4 (32-bit) or 8 (64-bit) bytes long as indicated by the Length field. |
Float | A 32 or 64-bit floating point value. The valid range of the value for a Resource SHOULD be defined. | Represented as an ASCII signed decimal. | Represented as an [IEEE 754-2008] [FLOAT] binary floating point value. The value may use the binary32 (4 byte Length) or binary64 (8 byte Length) format as indicated by the Length field. |
Boolean | An integer with the value 0 for False and the value 1 for True. | Represented as the ASCII value 0 or 1. | Represented as an Integer with value 0, or 1. The Length of a Boolean value MUST always be 1. |
Opaque | A sequence of binary octets, the minimum and/or maximum length of the String MAY be defined. | Represented as a sequence of binary data of Length bytes. | |
Time | Unix Time. A signed integer representing the number of seconds since Jan 1st, 1970 in the UTC time zone. | Represented as an ASCII integer. | Same representation as Integer. |
LWM2M Object Template and Guidelines (Normative)
This Appendix provides the template to be used for the specification of LWM2M Objects. Furthermore, guidelines for the creation of LWM2M Objects are provided.
The XML versions of LWM2M Objects MUST comply with the XML schema which can be found here: http://openmobilealliance.org/tech/profiles/LWM2M.xsd
Object Template
Appendix D.x LWM2M Object: <LWM2M object name>
Description
Object definition:
Name | Object ID | Instances | Mandatory | Object URN |
---|---|---|---|---|
Object Name | 16-bit Unsigned Integer | Multiple/Single | Mandatory/Optional | urn:oma:lwm2m:{oma,ext,x}:{Object ID} |
- Name: specifies the Object name.
- Object ID: specifies the Object ID.
- Multiple Instances: indicates whether this Object supports multiple Object Instances or not. If this field is “Multiple” then the number of Object Instance can be from 0 to many. If this field is “Single” then the number of Object Instance can be from 0 to 1. If Mandatory of Object is “Mandatory” and Multiple Instances of the Object is “Single” then, the number of Object Instance MUST be 1.
- Mandatory: if this field is “Mandatory”, then the LWM2M Client MUST support this Object. If this field is “Optional”, then the LWM2M Client SHOULD support this Object.
- Object URN: specifies the Object URN. The format of the Object URN is “urn:oma:lwm2m:{oma,ext,x}:{Object ID}” and {} part means that those values are variable and filled with real value. For example, Object URN of LWM2M Server Object is “urn:oma:lwm2m:oma:1”.
Resource definition:
ID | Name | Operations | Instances | Mandatory | Type | Range or Enumeration | Units | Description |
---|---|---|---|---|---|---|---|---|
0 | Resource Name | R (Read), W (Write), E (Execute) | Multiple/Single | Mandatory/Optional | String, | If any | If any | Description |
- ID: specifies the Resource ID which is unique within Object.
- Name: specifies the Resource name.
- Operations: indicates which operations the Resource supports in the “Device Management & Service Enablement” Interface. This field can have a combination of R (Read, Observe, Discover, Write Attributes), W (Write), and E (Execute). This field may also have an empty value, which means that this field is not allowed to be accessed via “Device Management & Service Enablement” Interface but allowed to be accessed via “Bootstrap” Interface.
- Instances: indicates whether this Resource supports multiple Resource Instances or not. If this field is “Multiple” then the number of Resource Instance can be from 0 to many. If this field is “Single” then the number of Resource Instance can be from 0 to 1. If Mandatory of Resource is “Mandatory” and Multiple Instances of the Resource is “Single” then, the number of Resource Instance MUST be 1. Resource which supports “Execute” operation MUST have “Single” for Multiple Instances.
- Mandatory: if this field is “Mandatory”, then the LWM2M Server and the LWM2M Client MUST support Resource. If this field is “Optional”, then the LWM2M Server and the LWM2M Client SHOULD support the Resource.
- Type: Data Type indicates the type of Resource value. Data Types used in this enabler are described in Appendix B Data Types.
- Range or Enumeration: this field limits the value of Resource.
- Units: specifies the unit of the Resource value.
- Description: specifies the Resource description.
Open Mobile Naming Authority (OMNA) Guidelines
This appendix defines guidelines for OMNA regarding registries and protocol ID ranges to be maintained.
Object Registry
LWM2M Objects must be registered with the OMNA Lightweight Object registry. There are three classes of Objects in which an Object can be registered:
- OMA Objects (oma label) – Objects defined by the Open Mobile Alliance.
- 3rd Party Standards Development Organisation (SDO) Objects (ext label) – Objects defined by a 3rd party SDO.
- Vendor Specific Objects (x label) – Objects defined by a vendor or individual, such an Object may be either private (no DDF or Specification made available) or public.
Each one of these classes is assigned a range of IDs by OMNA.
The URN format for an Object is automatically built from the class of Object and the Object ID as follows:
urn:oma:lwm2m:{oma,ext,x}:{Object ID}
Resource Registry
LWM2M Objects are specified as being composed of Resources, each identified by a Resource ID. Resources can either be specific to each Object with meaning only when used in that Object, or Reusable Resources can be registered, assigned an ID from the OMNA range and re-used in any Object. The following Resource ID ranges are defined:
- Object specific Resource ID range – Defined by the Object specification.
- Reusable Resource ID range – Registered by an Object Specification, with the Resource ID assigned by OMNA. Defined in any Object specification. Resources from this Resource ID range can be re-used in any Object.
- Reserved range – Range or Resource IDs reserved for future use.
A Reusable Resource ID registration entry MUST define the Resource Name, Resource ID (assigned by OMNA), Supported Operations, Data Type, Range or Enumeration, Units and Description of the Resource.
LWM2M Objects defined by OMA (Normative)
This Appendix provides LWM2M Objects defined by OMA. Other organizations and companies may define additional LWM2M according to the guidelines and template provided in Annex C.
The following LWM2M Objects have been defined by OMA as part of LWM2M 1.0:
Object | Object ID |
---|---|
LWM2M Security | 0 |
LWM2M Server | 1 |
Access Control | 2 |
Device | 3 |
Connectivity Monitoring | 4 |
Firmware | 5 |
Location | 6 |
Connectivity Statistics | 7 |
Table 23: LWM2M Objects defined by OMA LWM2M 1.0
The LWM2M Server MUST support LWM2M Security, LWM2M Server, and Device Object and SHOULD support Access Control, Device, Connectivity, Firmware Update, Location, and Connectivity Statistics Object.
LWM2M Object: LWM2M Security
Description | |
---|---|
This LWM2M Object provides the keying material of a LWM2M Client appropriate to access a specified LWM2M Server. One Object Instance SHOULD address a LWM2M Bootstrap Server.These LWM2M Object Resources MUST only be changed by a LWM2M Bootstrap Server or Bootstrap from Smartcardand MUST NOT be accessible by any other LWM2M Server. | |
Object definition | |
Illegal nested table : NameObject IDInstancesMandatoryObject URNLWM2M Security 0 Multiple Mandatory TBD | |
Resource definitions | |
Illegal nested table : IDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0LWM2M Server URISingleMandatoryString0-255 bytesUniquely identifies the LWM2M Server or LWM2M Bootstrap Server, and is in the form:"coaps://host:port", where host is an IP address or FQDN, and port is the UDP port of the Server.1Bootstrap ServerSingleMandatoryBooleanDetermines if the current instance concerns a LWM2M Bootstrap Server (true) or a standard LWM2M Server (false)2Security ModeSingleMandatoryInteger0-3Determines which UDP payload security mode is used0: Pre-Shared Key mode1: Raw Public Key mode2: Certificate mode3: NoSec mode3Public Key or IdentitySingleMandatoryOpaqueStores the LWM2M Client’s Certificate (Certificate mode), public key (RPK mode) or PSK Identity (PSK mode). The format is defined in Section E.1.1.4Server Public Key or IdentitySingleMandatoryOpaqueStores the LWM2M Server’s or LWM2M Bootstrap Server’s Certificate (Certificate mode), public key (RPK mode) or PSK Identity (PSK mode). The format is defined in Section E.1.1.5Secret KeySingleMandatoryOpaqueStores the secret key or private key of the security mode. The format of the keying material is defined by the security mode in Section E.1.1. This Resource MUST only be changed by a bootstrap server and MUST NOT be readable by any server.6SMS Security ModeSingleMandatoryInteger0-255Determines which SMS payload security mode is used (see section 7.2)0: Reserved for future use1: Secure Packet Structure mode device terminated2: Secure Packet Structure mode smartcard terminated3: NoSec mode255: Proprietary modes7SMS Binding Key ParametersSingleMandatoryOpaque6 bytesStores the KIc, KID, SPI and TAR. The format is defined in Section D.1.2.8SMS Binding Secret KeysSingleMandatoryOpaque32-48 bytesStores the values of the keys for the SMS binding. This resource MUST only be changed by a bootstrap server and MUST NOT be readable by any server.9LWM2M Server SMS NumberSingleMandatoryIntegerMSISDN used by the LWM2M Client to send messages to the LWM2M Server via the SMS binding. The LWM2M Client SHALL silently ignore any SMS not originated from unknown MSISDN10Short Server IDSingleOptionalInteger1-65535This identifier uniquely identifies each LWM2M Server configured for the LWM2M Client.This Resource MUST be set when the Bootstrap Server Resource has false value.Default Short Server ID (i.e. 0) MUST NOT be used for identifying the LWM2M Server.11Client Hold Off TimeSingleMandatoryIntegersRelevant information for a Bootstrap Server only.The number of seconds to wait before initiating a Client Initiated Bootstrap once the LWM2M Client has determined it should initiate this bootstrap mode | Illegal nested table : |
UDP Channel Security: Security Key Resource Format | |
LWM2M Object: LWM2M Server
Illegal nested table : DescriptionThis LWM2M Objects provides the data related to a LWM2M Server. A Bootstrap Server has no such an Object Instance associated to it.Object definitionNameObject IDInstancesMandatoryObject URNLWM2M Server 1 Multiple Mandatory TBD Resource definitionsIDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0Short Server IDRSingleMandatoryInteger1-65535Used as link to associate server Object Instance.1LifetimeRWSingleMandatoryIntegersSpecify the lifetime of the registration in seconds.2Default Minimum PeriodRWSingleOptionalIntegersThe default value the LWM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation.If this Resource doesn’t exist, the default value is 1.3Default Maximum PeriodRWSingleOptionalIntegersThe default value the LWM2M Client should use for the Maximum Period of an Observation in the absence of this parameter being included in an Observation.4DisableESingleOptionalIf this Resource is executed, this LWM2M Server Object is disabled for a certain period defined in the Disabled Timeout Resource. After receiving “Execute” operation, LWM2M Client MUST send response of the operation and perform de-registration process, and underlying network connection between the Client and Server MUST be disconnected to disable the LWM2M Server account.After the above process, the LWM2M Client MUST NOT send any message to the Server and ignore all the messages from the LWM2M Server for the period.5Disable TimeoutRWSingleOptionalIntegersA period to disable the Server. After this period, the LWM2M Client MUST perform registration process to the Server. If this Resource is not set, a default timeout value is 86400 (1 day).6Notification Storing When Disabled or OfflineRWSingleMandatoryBooleanIf true, the LWM2M Client stores “Notify” operations to the LWM2M Server while the LWM2M Server account is disabled or the LWM2M Client is offline. After the LWM2M Server account is enabled or the LWM2M Client is online, the LWM2M Client reports the stored “Notify” operations to the Server.If false, the LWM2M Client discards all the “Notify” operationsor temporally disables the Observe function while the LWM2M Server is disabled or the LWM2M Client is offline.The default value is true.The maximum number of storing Notification per the Server is up to the implementation.7BindingRWSingleMandatoryStringThe possible values of Resource are listed in 5.2.1.1This Resource defines the transport binding configured for the LWM2M Client.If the LWM2M Client supports the binding specified in this Resource, the LWM2M Client MUST use that for Current Binding and Mode.8Registration Update TriggerESingleMandatoryIf this Resource is executed the LWM2M Client MUST perform an “Update” operation with this LWM2M Server using the Current Transport Binding and Mode. | |
---|---|
LWM2M Object: Access Control
Description | |
---|---|
Access Control Object is used to check whether the LWM2M Server has access right for performing a operation. | |
Object definition | |
Illegal nested table : NameObject IDInstancesMandatoryObject URNLWM2M Access Control 2 Multiple Optional TBD | |
Resource definitions | |
Illegal nested table : IDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0Object IDRSingleMandatoryInteger1-65534The Object ID and The Object Instance ID are applied for.1Object Instance IDRSingleMandatoryInteger0-65535See Table 14: LWM2M Identifiers.2ACLRWMultipleOptionalInteger16-bitResource Instance ID MUST be the Short Server ID of a certain LWM2M Server which has an access right.Resource Instance ID 0 is for default Short Server ID.The Value of the Resource Instance contains the access rights.Setting each bit means the LWM2M Server has the access right for that operation. The bit order is specified as below.1st lsb: R(Read, Observe, Discover, Write Attributes)2nd lsb: W(Write)3rd lsb: E(Execute)4th lsb: D(Delete)5th lsb: C(Create)Other bits are reserved for future use3Access Control OwnerRWSingleMandatoryInteger0-65535Short Server ID of a certain LWM2M Server. Only this LWM2M Server can manage these Resources of the Object Instance.Value MAX_ID=65535 is reserved for the Access Control Object Instances created during Bootstrap procedure. | Illegal nested table : |
Object Instance Configurations | |
LWM2M Object: Device
Illegal nested table : DescriptionThis LWM2M Object provides a range of device related information which can be queried by the LWM2M Server, and a device reboot and factory reset function.Object definitionNameObject IDInstancesMandatoryObject URNDevice 3 Single Mandatory TBD Resource definitionsIDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0ManufacturerRSingleOptionalStringHuman readable manufacturer name17Device TypeRSingleOptionalStringType of the device (smart meters / dev Class)1Model NumberRSingleOptionalStringA model identifier (manufacturer specified string)2Serial NumberRSingleOptionalStringSerial Number18Hardware VersionRSingleOptionalStringCurrent hardware version of the device3Firmware VersionRSingleOptionalStringCurrent firmware version of the device. The Firmware Management function could rely on this resource.19Software VersionRSingleOptionalStringCurrent software version of the device. On elaborated LWM2M device, SW could be split in 2 parts: a firmware one (e.g. for cellular modem, HW platform) and SW Application Oriented one which both need to be updated separately .A Software Management function could rely on this SW version resource.4RebootESingleMandatoryReboot the LWM2M Device to restore the Device from unexpected firmware failure.5Factory ResetESingleOptionalPerform factory reset of the LWM2M Device to make the LWM2M Device have the same configuration as at the initial deployment.When this Resource is executed, “De-register” operation MAY be sent to the LWM2M Server(s) before factory reset of the LWM2M Device.6Available Power SourcesRMultipleOptionalInteger0-70 – DC power1 – Internal Battery2 – External Battery4 – Power over Ethernet5 – USB6 – AC (Mains) power7 – Solar7Power Source VoltageRMultipleOptionalIntegermVPresent voltage for each Available Power Sources Resource Instance.Each Resource Instance ID MUST map to the value of Available Power Sources Resource.8Power Source CurrentRMultipleOptionalIntegermAPresent current for each Available Power Source9Battery LevelRSingleOptionalInteger0-100%Contains the current battery level as a percentage (with a range from 0 to 100). This value is only valid when the value of Available Power Sources Resource is 1.20Battery StatusRSingleOptionalInteger0-6This value is only valid when the value of Available Power Sources Resource is 1.BatteryStatusMeaningDescription0NormalThe battery is operating normally and not on power.1ChargingThe battery is currently charging.2Charge CompleteThe battery is fully charged and still on power.3DamagedThe battery has some problem.4Low BatteryThe battery is low on charge.5Not InstalledThe battery is not installed.6UnknownThe battery information is not available.10Memory FreeRSingleOptionalIntegerKBEstimated current available amount of storage space which can store data and software in the LWM2M Device (expressed in kilobytes).21Memory TotalRSingleOptionalIntegerKBTotal amount of storage space which can store data and software in the LWM2M Device (expressed in kilobytes).11Error CodeRMultipleMandatoryInteger0=No error1=Low battery power2=External power supply off3=GPS module failure4=Low received signal strength5=Out of memory6=SMS failure7=IP connectivity failure8=Peripheral malfunctionWhen the single Device Object Instance is initiated, there is only one error code Resource Instance whose value is equal to 0 that means no error. When the first error happens, the LWM2M Client changes error code Resource Instance to any non-zero value to indicate the error type. When any other error happens, a new error code Resource Instance is created.This error code Resource MAY be observed by the LWM2M Server. How to deal with LWM2M Client’s error report depends on the policy of the LWM2M Server.12Reset Error CodeESingleOptionalDelete all error code Resource Instances and create only one zero-value error code that implies no error.13Current TimeRWSingleOptionalTimeCurrent UNIX time of the LWM2M Client.The LWM2M Client should be responsible to increase this time value as every second elapses.The LWM2M Server is able to write this Resource to make the LWM2M Client synchronized with the LWM2M Server.14UTC OffsetRWSingleOptionalStringIndicates the UTC offset currently in effect for this LWM2M Device. UTC+X [ISO 8601].15TimezoneRWSingleOptionalStringIndicates in which time zone the LWM2M Device is located, in IANA Timezone (TZ) database format.16Supported Binding and ModesRSingleMandatoryStringIndicates which bindings and modes are supported in the LWM2M Client. The possible values of Resource are combination of "U" or "UQ" and "S" or "SQ". | |
---|---|
LWM2M Object: Connectivity Monitoring
Illegal nested table : DescriptionThis LWM2M Object enables monitoring of parameters related to network connectivity.In this general connectivity Object, the Resources are limited to the most general cases common to most network bearers. It is recommended to read the description, which refers to relevant standard development organizations (e.g. 3GPP, IEEE).The goal of the Connectivity Monitoring Object is to carry information reflecting the more up to date values of the current connection for monitoring purposes. Resources such as Link Quality, Radio Signal Strenght, Cell ID are retrieved during connected mode at least for cellular networks.Object definitionNameObject IDInstancesMandatoryObject URNConnectivity Monitoring 4 Single Optional TBD Resource definitionsIDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0Network BearerRSingleMandatoryIntegerIndicates the network bearer used for the current LWM2M communication session from the below network bearer list.0~20 are Cellular Bearers0: GSM cellular network1: TD-SCDMA cellular network2: WCDMA cellular network3: CDMA2000 cellular network4: WiMAX cellular network5: LTE-TDD cellular network6: LTE-FDD cellular network7~20: Reserved for other type cellular network21~40 are Wireless Bearers21: WLAN network22: Bluetooth network23: IEEE 802.15.4 network24~40: Reserved for other type local wireless network41~50 are Wireline Bearers41: Ethernet42: DSL43: PLC44~50: reserved for others type wireline networks.1Available Network BearerRMultipleMandatoryIntegerIndicates list of current available network bearer. Each Resource Instance has a value from the network bearer list.2Radio Signal StrengthRSingleMandatoryIntegerdBmThis node contains the average value of the received signal strength indication used in the current network bearer in case Network Bearer Resource indicates a Cellular Network (RXLEV range 0…64) 0 is < 110dBm, 64 is >-48 dBm).Refer to [3GPP 44.018] for more details on Network Measurement Report encoding and [3GPP 45.008] or for Wireless Networks refer to the appropriate wireless standard.3Link QualityRSingleOptionalIntegerThis contains received link quality e.g., LQI for IEEE 802.15.4, (Range (0..255)), RxQual Downlink (for GSM range is 0…7).Refer to [3GPP 44.018] for more details on Network Measurement Report encoding.4IP AddressesRMultipleMandatoryStringThe IP addresses assigned to the connectivity interface. (e.g. IPv4, IPv6, etc.)5Router IP AddresseRMultipleOptionalStringThe IP address of the next-hop IP router.Note: This IP Address doesn’t indicate the Server IP address.6Link UtilizationRSingleOptionalInteger0-100%The average utilization of the link to the next-hop IP router in %.7APNRMultipleOptionalStringAccess Point Name in case Network Bearer Resource is a Cellular Network.8Cell IDRSingleOptionalIntegerServing Cell ID in case Network Bearer Resource is a Cellular Network.As specified in TS [3GPP 23.003] and in [3GPP. 24.008]. Range (0…65535) in GSM/EDGEUTRAN Cell ID has a length of 28 bits.Cell Identity in WCDMA/TD-SCDMA. Range: (0..268435455).LTE Cell ID has a length of 28 bits.Parameter definitions in [3GPP 25.331].9SMNCRSingleOptionalInteger%Serving Mobile Network Code. In case Network Bearer Resource has 0(cellular network). Range (0…999).As specified in TS [3GPP 23.003].10SMCCRSingleOptionalIntegerServing Mobile Country Code. In case Network Bearer Resource has 0 (cellular network). Range (0…999).As specified in TS [3GPP 23.003]. | |
---|---|
LWM2M Object: Firmware Update
Illegal nested table : DescriptionThis LWM2M Object enables management of firmware which is to be updated. This Object includes installing firmware package, updating firmware, and performing actions after updating firmware.Object definitionNameObject IDInstancesMandatoryObject URNFirmware Update 5 Single Optional TBD Resource definitionsIDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0PackageWSingleMandatoryOpaqueFirmware package1Package URIWSingleMandatoryString0-255 bytesURI from where the device can download the firmware package by an alternative mechanism. As soon the device has received the Package URI it performs the download at the next practical opportunity.2UpdateESingleMandatoryUpdates firmware by using the firmware package stored in Package, or, by using the firmware downloaded from the Package URI.This Resource is only executable when the value of the State Resource is Downloaded.3StateRSingleMandatoryInteger1-3Indicates current state with respect to this firmware update. This value is set by the LWM2M Client.1: Idle (before downloading or after updating)2: Downloading (The data sequence is on the way)3: DownloadedIf writing the firmware package to Package Resource is done, or, if the device has downloaded the firmware package from the Package URI the state changes to Downloaded.If writing an empty string to Package Resource is done or writing an empty string to Package URI is done, the state changes to Idle.If performing the Update Resource failed, the state remains at Downloaded.If performing the Update Resource was successful, the state changes from Downloaded to Idle.4Update Supported ObjectsRWSingleOptionalBooleanIf this value is true, the LWM2M Client MUST inform the registered LWM2M Servers of Objects and Object Instances parameter by sending an Update or Registration message after the firmware update operation at the next practical opportunity if supported Objects in the LWM2M Client have changed, in order for the LWM2M Servers to promptly manage newly installed Objects.If false, Objects and Object Instances parameter MUST be reported at the next periodic Update message.The default value is false.5Update ResultRSingleMandatoryInteger0-6Contains the result of downloading or updating the firmware0: Default value. Once the updating process is initiated, this Resource SHOULD be reset to default value.1: Firmware updated successfully,2: Not enough storage for the new firmware package.3. Out of memory during downloading process.4: Connection lost during downloading process.5: CRC check failure for new downloaded package.6: Unsupported package type.7: Invalid URIThis Resource MAY be reported by sending Observe operation.Firmware Update ConsiderationIf some Objects are not supported after firmware update, the LWM2M Client MUST delete all the Object Instances of the Objects that are not supported. | |
---|---|
LWM2M Object: Location
Illegal nested table : DescriptionThis LWM2M Objects provide a range of device related information which can be queried by the LWM2M Server, and a device reboot and factory reset function.Object definitionNameObject IDInstancesMandatoryObject URNLocation 6 Single Optional TBD Resource definitionsIDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0LatitudeRSingleMandatoryStringDegThe decimal notation of latitude, e.g. -43.5723 [World Geodetic System 1984].1LongitudeRSingleMandatoryStringDegThe decimal notation of longitude, e.g. 153.21760 [World Geodetic System 1984].2AltitudeRSingleOptionalStringmThe decimal notation of altitude in meters above sea level.3UncertaintyRSingleOptionalStringmThe accuracy of the position in meters.4VelocityRSingleOptionalOpaqueRefers to 3GPP GAD specsThe velocity of the device as defined in 3GPP 23.032 GAD specification. This set of values may not be available if the device is static.5TimestampRSingleMandatoryTime0-6The timestamp of when the location measurement was performed. | |
---|---|
LWM2M Object: Connectivity Statistics
Illegal nested table : DescriptionThis LWM2M Objects enables client to collect statistical information and enables the LWM2M Server to retrieve these information, set the collection duration and reset the statistical parameters.Object definitionNameObject IDInstancesMandatoryObject URNConnectivity Statistics 7 Single Optional TBD Resource definitionsIDNameOperationsInstancesMandatoryTypeRange or EnumerationUnitsDescription0SMS Tx CounterRSingleOptionalIntegerIndicate the total number of SMS successfully transmitted during the collection period.1SMS Rx CounterRSingleOptionalIntegerIndicate the total number of SMS successfully received during the collection period.2Tx DataRSingleOptionalIntegerKilo-BytesIndicate the total amount of data transmitted during the collection period. ''3Rx DataRSingleOptionalIntegerKilo-BytesIndicate the total amount of data received during the collection period.4Max Message SizeRSingleOptionalIntegerByteThe maximum message size that is used during the collection period.5Average Message SizeRSingleOptionalIntegerByteThe average message size that is used during the collection period.6StartOrResetESingleMandatoryStart to collect information or reset all other Resources to zeros in this Object. For example, the first time this Resource is executed, the client starts to collect information. The second time this Resource is executed, the values of Resource 0~5 are reset to 0. | |
---|---|
Example LWM2M Client (Informative)
This appendix defines an example LWM2M Client for a simple imaginary device with a Cellular interface including instantiated Objects and their values, which is used throughout this specification in examples. The example client has the Endpoint Name “example-client”. The example device has two Server Objects (it is configured to register with two different LWM2M Servers), three accompanying Access Control Object Instances for those servers, a Device Object and a Connectivity Monitoring Object for a Cellular interface. The first Server controls the access control rights for both servers.
Object | Object ID | Object Instance ID |
---|---|---|
LWM2M Security Object[0] | 0 | 0 |
LWM2M Security Object[1] | 0 | 1 |
LWM2M Security Object[2] | 0 | 2 |
LWM2M Server Object [1] | 1 | 1 |
LWM2M Server Object [2] | 1 | 2 |
Access Control Object [0] | 2 | 0 |
Access Control Object [1] | 2 | 1 |
Access Control Object [2] | 2 | 2 |
Access Control Object [3] | 2 | 3 |
Access Control Object [4] | 2 | 4 |
Device Object | 3 | - |
Connectivity Monitoring Object | 4 | - |
Table 24: Object Instances of the example
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
LWM2M Server URI | 0 | coap://bootstrap.example.com | Example LWM2M Bootstrap Server | |
Bootstrap Server | 1 | true | ||
Security Mode | 2 | 0 | PSK mode | |
Public Key or Identity | 3 | [identity string] | PSK Identity | |
Secret Key | 4 | [secret key data] | AES key | |
Short Server ID | 10 | 0 | unused | |
Client Hold Off Time | 11 | 3600 |
Table 25: LWM2M Security Object [0]
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
LWM2M Server URI | 0 | coap://server1.example.com | Example LWM2M Server 1 | |
Bootstrap Server | 1 | false | ||
Security Mode | 2 | 0 | PSK mode | |
Public Key or Identity | 3 | [identity string] | PSK Identity | |
Secret Key | 4 | [secret key data] | AES key | |
Short Server ID | 10 | 101 | ||
Client Hold Off Time | 11 | 0 | unused |
Table 26: LWM2M Security Object [1]
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
LWM2M Server URI | 0 | coap://server2.example.com | Example LWM2M Server 2 | |
Bootstrap Server | 1 | false | ||
Security Mode | 2 | 0 | PSK mode | |
Public Key or Identity | 3 | [identity string] | PSK Identity | |
Secret Key | 4 | [secret key data] | AES key | |
Short Server ID | 5 | 102 | ||
Client Hold Off Time | 6 | 0 | unused |
Table 27: LWM2M Security Object [2]
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Short Server ID | 0 | 101 | Example LWM2M Server 1 | |
Lifetime | 1 | 86400 | ||
Default Minimum Period | 2 | 300 | ||
Default Maximum Period | 3 | 6000 | ||
DisableTimeout | 5 | 86400 | ||
Notification Storing When Disabled or Offline | 6 | True | ||
Binding Preference | 7 | U | UDP binding preference |
Table 28: LWM2M Server Object [1]
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Short Server ID | 0 | 102 | Example LWM2M Server 2 | |
Lifetime | 1 | 86400 | ||
Default Minimum Period | 2 | 60 | ||
Default Maximum Period | 3 | 6000 | ||
DisableTimeout | 5 | 86400 | ||
Notification Storing When Disabled or Offline | 6 | False | ||
Binding Preference | 7 | UQ | UDP with Queuing binding preference |
Table 29: LWM2M Server Object [2]
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Object ID | 0 | 1 | LWM2M Server Object | |
Object Instance ID | 1 | 0 | ||
ACL | 2 | 101 | 0b0000000000001111 | Server 1 has all access rights (R, W, E, D). Note that the Resource Instance ID indicates the Short Server ID. |
Access Control Owner | 3 | 101 | Server 1 controls this Object Instance’s access rights. |
Table 30: Access Control Object [0] (for the LWM2M Server Object)
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Object ID | 0 | 1 | LWM2M Server Object | |
Object Instance ID | 1 | 1 | ||
ACL | 2 | 102 | 0b0000000000001111 | Server 2 has all access rights (R, W, E, D). Note that the Resource Instance ID indicates the Short Server ID. |
Access Control Owner | 3 | 102 | Server 2 controls this Object Instance’s access rights. |
Table 31: Access Control Object [1] (for the LWM2M Server Object)
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Object ID | 0 | 3 | Device Object | |
Object Instance ID | 1 | 0 | ||
ACL | 2 | 101 | 0b0000000000001111 | Server 1 has all access rights (R, W, E, D). Note that the Resource Instance ID indicates the Short Server ID. |
ACL | 2 | 102 | 0b0000000000000001 | Server 2 has read-only access rights. Note that the Resource Instance ID indicates the Short Server ID. |
Access Control Owner | 3 | 101 | Server 1 controls this Object Instance’s access rights. |
Table 32: Access Control Object [2] (for the Device Object)
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Object ID | 0 | 4 | Connectivity Monitoring Object | |
Object Instance ID | 1 | 0 | ||
ACL | 2 | 101 | 0b0000000000000001 | Server 1 has read-only access rights. Note that the Resource Instance ID indicates the Short Server ID. |
ACL | 2 | 0 | 0b0000000000000001 | The other Servers except Server 1 have read-only access rights. Note that this Resource Instance ID indicates the default Short Server ID. |
Access Control Owner | 3 | 101 | Server 1 controls this Object Instance’s access rights. |
Table 33: Access Control Object [3] (for the Connectivity Monitoring Object)
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Object ID | 0 | 5 | Firmware Update Object | |
Object Instance ID | 1 | 65535 | Irrelavent | |
ACL | 2 | 101 | 0b0000000000010000 | Server 1 can create Firmware Update Object Instance |
Access Control Owner | 3 | 65535 | This Object Instance must be managed by Bootstrap Interface |
Table 34: Access Control Object [4] (for the Firmware Update Object)
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Manufacturer | 0 | Open Mobile Alliance | ||
Model Number | 1 | Lightweight M2M Client | ||
Serial Number | 2 | 345000123 | ||
Firmware version | 3 | 1.0 | ||
Available Power Sources | 6 | 0 | 1 | Internal Battery |
Available Power Sources | 6 | 1 | 5 | USB |
Power Source Voltage | 7 | 0 | 3800 | 3.8V battery |
Power Source Voltage | 7 | 1 | 5000 | USB VBUS |
Power Source Current | 8 | 0 | 125 | 125mA |
Power Source Current | 8 | 1 | 900 | USB 900mA |
Battery level | 9 | 100 | ||
Memory free | 10 | 15 | 15 kB of free memory | |
Error code | 11 | 0 | 0 | No errors |
Current Time | 13 | 1367491215 | May 2nd, 2013 at 11:42 AM GMT | |
UTC Offset | 14 | +02:00 | UTC+2 (CET) | |
Supported Binding and Modes | 15 | U | UDP binding |
Table 35: Device Object
Resource Name | Resource ID | Resource Instance ID | Value | Notes |
---|---|---|---|---|
Network Bearer | 0 | 0 | GSM Bearer | |
Available Network Bearer | 1 | 0 | GSM Bearer | |
Radio signal strength | 2 | 92 | RSSI in dBm | |
Link Quality | 3 | 2 | RxQual Downlink | |
IP Addresses | 4 | 0 | 192.168.0.100 | |
Parent IP Addresses | 5 | 0 | 192.168.1.1 | |
Link Utilization | 6 | 5 | % | |
APN | 7 | 0 | internet |
Table 36: Connectivity Monitoring Object
Storage of LWM2M Bootstrap Information on the Smartcard (Normative)
This appendix aims at specifying the storage mechanism of Bootstrap Information on UICC Smartcard platform type [ETSI TS 102.221] activated in 3G mode.
Note: There is no rational to equip LWM2M device with 2G-only Smart Card.
File structure
The information format is based on [PKCS#15] specification. The Bootstrap data is located under the PKCS#15 directory allowing the card issuer to decide the identifiers and the file locations. The smartcard operations that are relevant include:
- Application selection
- Cardholder verification
- File access (select file, read, write)
The [PKCS#15] specification defines a set of files. Within the PKCS#15 application, the starting point to access these files is the Object Directory File (ODF). The EF(ODF) contains pointers to other directory files. These directory files contain information on different types of objects (authentication objects, data objects, etc). For the purpose of Bootstrap data, EF (ODF) MUST contain the EF Record describing the DODF-bootstrap. The EF(ODF) is described in Appendix G.3.1 and [PKCS#15].
EF(ODF) contains pointers to one or more Data Object Directory Files (DODF) in priority order (i.e. the first DODF has the highest priority). Each DODF is regarded as the directory of data objects known to the PKCS#15 application. For the purposes of LWM2M bootstrapping, EF(DODF-bootstrap) contains pointer to the Bootstrap data, namely LWM2M_Bootstrap File. The EF(DODF-bootstrap) is described in Appendix G.3.2 and [PKCS#15].
The provisioning files are stored as PKCS#15 opaque data objects.
The support of smartcard Bootstrap data will be indicated by the presence in the EF DIR (see [ETSI TS 102.221]) of an application template as defined here after.
The RECOMMENDED format of EF(DIR) is a linear fixed record in order to be in line with [ETSI TS 102.221].
EF (DIR) MUST contain the application template used for a PKCS#15 application as defined in [PKCS#15]. Application template MUST consist of Application identifier (tag 0x4F) and Path (tag 0x51) information.
The EF(ODF) and EF(DODF-bootstrap) MUST be used by the Device to determine the path of the LWM2M_Bootstrap file.
UICC Smartcard platforms can support two modes of activation: 2G and 3G. In the context of LWM2M, for Device simplification, UICC MUST be activated in 3G Mode
UICC smartcard platform activated in a 3G mode has the physical and logical characteristics according to [ETSI TS 102.221]. In that case, smartcard operations for accessing the Bootstrap data are specified in Appendix G.2.
Bootstrap Information on UICC (Activated in 3G Mode)
Access to the file structure
To select the PKCS#15 application, the Device:
- MUST evaluate the PKCS#15 application template – i.e. PKCS#15 AID - present in the EF (DIR),
- MUST open a logical channel using UICC Command MANAGE CHANNEL as specified in [ETSI TS 102.221],
- MUST select the PKCS#15 ADF using the PKCS#15 AID as parameter of the UICC Command SELECT, using direct application selection as defined in [ETSI TS 102.221].
LWM2M_Bootstrap file will be located under the PKCS#15 ADF.
Files Overview
Figure 26: 3G UICC File Structure and Bootstrap data location
Access Method
UICC Commands Read Binary and Update Binary, as defined in [ETSI TS 102.221], are used to access bootstrap data.
Access Conditions
The Device is informed of the access conditions of provisioning files by evaluating the “private” and “modifiable” flags in the corresponding DODF-bootstrap files structure.
In the case where one of the above mentioned flag is set, cardholder verification is required. The Device must evaluate the PIN references that must be verified as defined in [ETSI TS 102.221] (ie evaluate FCP)
Requirements on the 3G UICC
To retrieve the Bootstrap Information from the 3G UICC, the Device MUST perform the following steps:
- Select PKCS#15 file structure as specified in G.2.1.
- Read ODF to locate the DODF-bootstrap,
- Read DODF-bootstrap to locate the LWM2M_Bootstrap file,
- Read the LWM2M_Bootstrap file
Files Description
All files defined are binary files as defined in [ETSI TS 102.221]. These files are read and updated using 3G UICC Commands related to the application they belong to.
Object Directory File, EF ODF
The mandatory Object Directory File (ODF) ([PKCS#15], Section 5.5.1) contains pointers to other EFs, each one containing a directory of PKCS#15 objects of a particular class (e.g. DODF-bootstrap). The File ID is specified in [PKCS#15]. The card issuer decides the file size. The EF (ODF) can be read but it MUST NOT be modifiable by the user.
The EF (ODF) is described below:
Identifier: default 0x5031, see [PKCS#15] | Structure: Binary | Mandatory |
---|---|---|
File size: decided by the card issuer | Update activity: low | |
Access Conditions: | ||
Description | ||
See [PKCS#15] |
Bootstrap Data Object Directory File, EF DODF-bootstrap
This Data Object Directory File provisioning contains directories of provisioning data objects ([PKCS#15], Section 6.7) known to the PKCS#15 application.
The File ID is described in the EF (ODF). The file size depends on the number of provisioning objects stored in the smartcard. Thus, the card issuer decides the file size.
Identifier: 0x6430, See ODF | Structure: Binary | Mandatory |
---|---|---|
File size: decided by the card issuer | Update activity: low | |
Access Conditions: READ ALW | ||
Description | ||
See hereafter and [PKCS#15] |
The EF (DODF-bootstrap) MUST contain information on provisioning objects:
- Readable label describing the provisioning document (CommonObjectAttributes.label).The ME could display this label to the user.
- Flags indicating whether the provisioning document is private (i.e., is protected with a PIN) and/or modifiable (CommonObjectAttributes.flags).The card issuer decides whether or not a file is private (it does not need to be if it does not contain any sensitive information)
- Object identifier indicating a LWM2M boostrap Object and the type of the provisioning object (CommonDataObjectAttributes.applicationOID)
- Pointer to the contents of the provisioning document(Path.path)
EF LWM2M_Bootstrap
Only the card issuer can modify EF LWM2M_Bootstrap
Identifier: See DODF | Structure: Binary | Optional |
---|---|---|
File size: decided by the card issuer | Update activity: low | |
Access Conditions: | ||
Description | ||
Contains Bootstrap data (encapsulated LWM2M Objects) |
This file size is limited to 32KB; the effective file size, in Bytes, is accessible from the File header.
In this file, the Bootstrap data relies on LWM2M TLV Data format specification.
The LWM2M specification already describes the TLV format for coding multiples instances and Resources of a given Object (§6.3.3)., this section will only detailled how storing a collection of LWM2M Objects in this file; each Object being coded as a simple TLV with LWM2M Object ID as the tag, a LWM2M-TLV coding the Object Instances as the TLV payload, and the TLV length being the size of the payload (LWM2M-TLV of the Object Instances).
Additionally, this Bootstrap data will have a 2 Byte header indicating the number of Objects contained in that file and another 2 Bytes for indicating the size of the payload (size of the collection of LWM2M Objects).
Using a BNF-like description:
<bootstrap_data> ::= <number of objects> <size> <collection_of_lwm2m_objects>
<number of Objects> ::= HWORD
<size> ::= HWORD
<collection_of_lwm2m_objects> ::= <single_lwm2m_object>*
<single_lwm2m_object> ::= <lwm2m_object_ID> <length_of_object> <lwm2m_object_instances>
<lwm2m_object_ID> ::= HWORD
<length_of_object> ::= HWORD
<lwm2m_object_instances> ::= TLV data format as described in §6.3.3
HWORD ::= %x00-FFFF
In reading and processing the data of this file, the LWM2M Client is then able to be configured with the Bootstrap Information and thus to access the LWM2M Server(s)
Secure channel between Smartcard and LWM2M Device Storage for secure Bootstrap Data provisioning (Normative)
During LWM2M Bootstrap procedure, sensitive data have to be provisioned in LWM2M Device.
When Bootstrap information comes from Smartcard, a secure channel SHOULD be established. When required this secure channel MUST follow the following procedure based on [GLOBALPLATFORM][GP SCP03] which is illustrated below. The Bootstrap information will be retrieved from Smartcard as described in Appendix F of this document but in including the channel securisation.
Pre-requisite : the Smartcard and the LWM2M device have to share the same static Keys KEY_ENC, KEY_MAC, KEY_DEK as specified in [GLOBALPLATFORM] [GP SCP03]
These keys are provisioned in the devices in using out-of-band methods.
The steps for the secure transfer are the following and are illustrated below (Figure 25):
- The PKSC#15 application used for transferring the Bootstrap information is selected
- Secure channel (mutual authentication) is established
- PKCS#15 flow as described in Appendix F takes place for selecting and transferring the Bootstrap file from Smartcard to the device: the sensitive Bootstrap data are transferred crypted.
Figure 27: Bootstrap Infromation transfer from Smartcard to LWM2M Device using Secure channel according to [GLOBALPLATFORM] [GP SCP03] [GP AMD_A]
Note 1: The INITIALIZE_UPDATE specifies the logical channel to use (CLA: 80H / 83H)
Note 2: The security level (P1) of the EXTERNAL_AUTH command is C-DECRYPTION, R-ENCRYPTION, C-MAC and R-MAC (P1=0x33)