Supported oneM2M Functionalities
This article lists the supported oneM2M resource types and related functionalities of the ACME CSE
oneM2M Specification Conformance
The CSE implementation successfully passes all the relevant oneM2M test cases for the supported resource types, attributes and behaviours.
Release Versions
The ACME CSE supports oneM2M release 1 - 4 and the upcoming release 5 for the supported resource types and functionalities listed below.
CSE Types
The ACME CSE supports the following CSE types:
- IN-CSE
- MN-CSE
- ASN-CSE
Resource Types
The ACME CSE supports the following oneM2M resource types. Some resource types are not yet fully implemented, and some features are experimental.
Entities
- CSEBase (CB)
-
The CSEBase resource type is fully supported.
- Application Entity (AE)
-
The Application Entity resource type is supported, except for some of the "S" registration related functionalities.
- RemoteCSE (CSR)
-
The ACME CSE supports CSE registrations via the Mcc reference point. In addtion announced resources, synchronization, and transit requests that target resources on remote CSE's are supported, as well.
Security
- Access Control Policy (ACP)
-
In addition to the basic ACP functionality, the ACME CSE supports the following ACP features:
- Attribute-based access control
- accessControlWindow
The following attributes are not supported because the linked-to resource types are not yet supported.
authorizationDecisionResourceIDs
/ <authorizationDecision>authorizationPolicyResourceIDs
/ <authorizationPolicy>authorizationInformationResourceIDs
/ <authorizationInformation>
Data Management
- Container (CNT)
-
The Container resource type is fully supported.
- ContentInstance (CIN)
-
The ContentInstance resource type is fully supported.
- FlexContainer (FCNT)
-
The ACME CSE fully supports the FlexContainer resource type.
It is possible to use the predefined FlexContainer Specializations of oneM2M TS-0023, AllJoin, oneM2M's GenericInterworking, or to define custom FlexContainerSpecializations.
See Attribute Policies for further details.
- FlexContainerInstance (FCI)
-
This is an experimental implementation of the draft FlexContainerInstance specification.
- TimeSeries (TS)
-
The ACME CSE supports missing data detection and the respective notifications.
- TimeSeriesInstance (TSI)
-
The TimeSeriesInstance resource type is fully supported, except for the dataGenerationTime attribute, which is only supported with absolute timestamps.
Subscription and Notification
- CrossResourceSubscription (CRS)
-
Besides the standard CrossResourceSubscription functionality the ACME CSE implements an experimental feature to support an eventEvaluationMode to react on missing events.
- Subscription (SUB)
-
The ACME CSE supports notifications via direct url or an AE's Point-of-Access (POA). Further, BatchNotifications, attributes, notification statistics, and operation monitoring are supported.
Device Management
- Management Objects
-
The ACME CSE supports the following management objects:
Management Objects | Management Objects | Management Objects |
---|---|---|
AreaNwkDeviceInfo (ANDI) | DeviceInfo (DVI) | Reboot (REB) |
AreaNwkInfo (ANI) | EventLog (EVL) | SIM (SIM) |
Battery (BAT) | Firmware (FWR) | Software (SWR) |
Credentials (CRDS)dev | Memory (MEM) | WifiClient (WIFIC) |
DataCollect (DATC) | MobileNetwork (MNWK) | |
DeviceCapability (DVC) | MyCertFileCred (NYCFC) |
- Node (NOD)
-
The Node resource type is fully supported.
Communication
- PollingChannel (PCH)
-
Request and notification long-polling via the pcu (pollingChannelURI) virtual child resource are supported.
requestAggregation functionality to retrieve multiple requests in one polling request is supported as well. - Request (REQ)
-
The ACME CSE supports blocking, and synchronous and asynchronous non-blocking requests, which are managed through <request> resources.
Group Management
- Group (GRP)
-
The ACME CSE supports requests via the fopt (fanOutPoint) virtual resource.
Remote resources may be members of a group.
Automation
- Action (ACTR)
-
The
input
attribute of the <action> resource type is not supported yet. - Dependency (DEPR)
-
The Dependency resource type is fully supported.
Semantics
- SemanticDescriptor (SMD)
-
The ACME CSE supports semantic queries and discovery for resources with semantic descriptors.
At the moment, the following presentation formats are supported:
- RDF/XML
- JSON-LD
- Turtle
Location Management
- LocationPolicy (LCP)
-
Only device based location policy is supported. The LCP's cnt stores geo-coordinates and geo-fencing results.
Time Management
- Schedule (SCH)
-
The ACME CSE supports scheduling for various of its functions, such as CSE communication windows, and resource types, such as the <node>, <subscription> and <crossResourceSubscription> resource types.
- TimeSyncBeacon (TSB)
-
The ACME CSE supports the TimeSyncBeacon resource type. The functionality is currently only experimental and might change according to specification changes.
Service Functionalities
The following oneM2M service functionionalities are supported.
- AE Registration
-
The ACME CSE supports AE registration and deregistrations via the Mca reference point.
- Blocking Requests
-
Blocking requests are the common way for an AE to interact with the CSE. They are also used for CSE-to-CSE communication via the Mcc reference point.
- Delayed Request Execution*
-
The ACME CSE supports delayed request execution via the Operation Execution Timestamp request attribute.
- Discovery
-
The ACME CSE supports normal retrieval and discovery of resources via the filterCriteria and discoveryResultType attributes.
- Geo-Query
-
The ACME CSE supports location and geometry queries and location-based discovery.
- Location Management
-
Only device based, and no network based* location policies are supported.
- Long Polling
-
Long Polling is supported for request unreachable AEs and CSEs through pollingChannel resources.
This mechanism is used for sending notifications and other requests to AEs and CSEs that are not directly reachable via the Mca or Mcc reference points, e.g. because of firewalls or NATs.
- Notifications
-
The ACME CSE supports notifications via direct url, or an AE's or CSE's Point-of-Access (POA). Further, BatchNotifications, attributes, notification statistics, and operation monitoring are supported.
- Notification Event Types
-
The following notification event types for Subscriptions are supported:
Notification Event Type Notification Event Type Notification Event Type resourceUpdate deleteDirectChild blockingUpdate resourceUpdate retrieveCNTNoChild missingData createDirectChild triggerReceivedForAE - Partial Retrieve
-
Partial retrieve of individual resource attributes is supported.
- Remote CSE registration
-
The ACME CSE supports CSE registrations via the Mcc reference point. In addtion announced resources, synchronization, and transit requests that target resources on remote CSE's are supported.
- Request Expiration
-
The Request Expiration Timestamp request attribute is supported.
- Request Forwarding
-
Forwarding requests from one CSE to another is supported.
- Request and Resource Validations
-
Validation of all requests received via the Mca and Mcc reference points is supported.
- Resource Addressing
-
CSE-Relative, SP-Relative and Absolute as well as hybrid addressing are supported.
- Resource Announcements
-
Announcements of resources are supported via the Mcc reference point. Resources are announced under a CSEBaseAnnc resource on the target CSE (R4 feature).
Bi-directional update sync is supported as well. - Resource Expiration
-
Resources are automatically deleted after the expiration time has passed.
- Resource Validations
-
All requests and resources received via the Mca and Mcc reference points are validated.
- Result Content Types
-
The following result contents are implemented for standard oneM2M requests and discovery:
Discovery Type RCN Discovery Type RCN nothing 0 child-resource-references 6 attributes 1 original-resource 7 hierarchical address 2 child-resources 8 hierarchical address + attributes 3 modified attributes 9 attributes + child-resources 4 semantic content 10 attributes + child-resource-references 5 discovery result references 11 - Result Expiration
-
The Result Expiration Timestamp request attribute is supported.
- Semantics
-
Basic support for semantic descriptors, semantic queries and discovery is supported.
- Subscriptions
-
Subscriptions are supported, including batch notification, and resource type and attribute filtering.
- Time Synchronization
-
The ACME CSE supports time synchronization via the timeSyncBeacon resource type.
- TimeSeries Data Handling
-
TimeSeries data handling is supported, including missing data detection, monitoring and notifications.
Protocols Bindings
The following Protocol Bindings are supported.
It is possible to enable only one binding, or use any combination of them for a CSE instance.
- CoAP
-
The CoAP protocol is supported.
However, CoAP over DTLS is not yet implemented.Release 5
The current implementation only support the CoAP binding specification for oneM2M Release 1-4. The upcoming Release 5 specification is not yet supported.
- http
-
The http protocol is supported, including TLS (https) and CORS support.
The basic and bearer authentication methods are supported.
Experimental Feature
Some libraries and embedded chipsets do not support the DELETE method in http/1.0 (this method was only added in http/1.1). The ACME CSE therefore supports DELETE requests via the PATCH method, that is available in many http/1.0 implementations.
See also the allowPatchForDelete configuration setting.
- mqtt
-
The mqtt protocol is supported, including TLS (mqtts) support.
This protocol binding requires a separate MQTT broker to be installed and running.
Basic username/password authentication with an mqtt broker is supported as well.
- WebSocket
-
The WebSocket protocol is supported, including TLS (wss) support
Experimental: Besides the standard oneM2M WebSocket binding, the ACME CSE supports an experimental extension to better support notifications.
Serialization Types
The following serialization types for requests and responses are supported.
Info
The XML serialization is not supported.
Though it is part of the oneM2M standard, it is not planned to be implemented in the ACME CSE because XML is only very rarely used in real-world IoT deployments.
- JSON
-
In addition to the common JSON syntax, C-style and Python-style comments are supported as well:
- Block comment:
/* ... */
- End-of-line comment:
// ...
and# ...
- Block comment:
- CBOR
-
CBOR is a binary serialization format.
Messages are fairly smaller and faster to process than JSON messages.
Experimental Functionalities
These features are prove-of-concept implementations of new and currently discussed oneM2M functionalities. They are not yet part of the oneM2M standard.
- Enhanced CSR functionality
-
Support for a new R5 eventEvaluationMode to react on missing events.
- Subscription References
-
Support for subscription references for resource instead of direct subscriptions.
- Advanced Queries
-
Experimental implementation of a new query language to support enhanced query capabilities.
- Simplified Time Synchronization
-
Experimental implementation of a simplified time synchronization mechanism.
- Support for DELETE requests for http/1.0
-
Using PATCH requests to emulate DELETE requests for http/1.0 clients.