Skip to content

Supported Resource Types and Functionalities

This article lists the supported oneM2M resource types, functionalities, and additional runtime features of the ACME CSE.

oneM2M Features

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:

CSE Type Supported
IN
MN
ASN

Resource Types

The ACME CSE supports the following oneM2M resource types:

Resource Type Supported Remarks
Access Control Policy (ACP) Attribute-based access control is yet not supported
Action (ACTR) No support for the input attribute.
Application Entity (AE)
Container (CNT)
ContentInstance (CIN)
CrossResourceSubscription (CRS)
CSEBase (CB)
Dependency (DEPR)
FlexContainer & Specializations Any specialization is supported and validated. See Attribute Policies for further details.
Supported specializations include: TS-0023 R4, GenericInterworking, AllJoyn.
FlexContainerInstance Experimental. This is an implementation of the draft FlexContainerInstance specification.
Group (GRP) The support includes requests via the fopt (fanOutPoint) virtual resource. Groups may contain remote resources.
LocationPolicy (LCP) Only device based location policy is supported. The LCP's cnt stores geo-coordinates and geo-fencing results.
Management Objects See also the list of supported management objects.
Node (NOD)
Polling Channel (PCH) Support for Request and Notification long-polling via the pcu (pollingChannelURI) virtual resource. requestAggregation functionality is supported, too.
Remote CSE (CSR) Announced resources are supported. Transit request to resources on registered CSE's are supported.
Request (REQ) Support for non-blocking requests.
Schedule (SCH) Support for CSE communication, nodes, subscriptions and crossResourceSubscriptions.
SemanticDescriptor (SMD) Support for basic resource handling and semantic queries.
Subscription (SUB) Notifications via http(s) (direct url or an AE's Point-of-Access (POA)). BatchNotifications, attributes, statistics. Not all features are supported yet.
TimeSeries (TS) Including missing data notifications.
TimeSeriesInstance (TSI) dataGenerationTime attribute only supports absolute timestamps.
TimeSyncBeacon (TSB) Experimental. Implemented functionality might change according to specification changes.

Management Object Specializations

The following table presents the supported management object specifications.

Management Objects
AreaNwkDeviceInfo (ANDI)
AreaNwkInfo (ANI)
Battery (BAT)
DataCollect (DATC)
DeviceCapability (DVC)
DeviceInfo (DVI)
EventLog (EVL)
Firmware (FWR)
Memory (MEM)
MobileNetwork (MNWK)
MyCertFileCred (NYCFC)
Reboot (REB)
SIM (SIM)
Software (SWR)
WifiClient (WIFIC)

FlexContainer Specializations

ACME CSE supports all FlexContainerSpecializations of oneM2M TS-0023.

Protocols Bindings

The following Protocol Bindings are supported:

Protocol Binding Supported Remark
http incl. TLS (https) and CORS support. basic and bearer authentication.
Experimental: Using PATCH to replace missing DELETE in http/1.0
coap
mqtt incl. mqtts
WebSocket incl. TLS (wss) support

The supported bindings can be used together, and combined and mixed in any way.

Serialization Types

The following serialization types are supported:

Serialization Type Supported Remark
JSON In addition to normal JSON syntax, C-style comments ("//...", "#..." and "/* ... */") are supported as well.
CBOR
XML

The supported serializations can be used together, e.g. between different or even with the same entity.

Result Content Types

The following result contents are implemented for standard oneM2M requests and discovery:

Discovery Type RCN
nothing 0
attributes 1
hierarchical address 2
hierarchical address + attributes 3
attributes + child-resources 4
attributes + child-resource-references 5
child-resource-references 6
original-resource 7
child-resources 8
modified attributes 9
semantic content 10
discovery result references 11

oneM2M Service Functions

The following oneM2M service functions are supported:

Functionality Supported Remark
AE registration
Blocking requests
Delayed request execution Through the Operation Execution Timestamp request attribute.
Discovery
Geo-query
Location Only device based, and no network based* location policies are supported.
Long polling Long polling for request unreachable AEs and CSEs through <pollingChannel>.
Non-blocking requests Non-blocking synchronous and asynchronous, and flex-blocking, incl. Result Persistence.
Notifications E.g. for subscriptions and non-blocking requests.
Partial Retrieve Support for partial retrieve of individual resource attributes.
Remote CSE registration
Request expiration The Request Expiration Timestamp request attribute
Request forwarding Forwarding requests from one CSE to another.
Request parameter validations
Resource addressing CSE-Relative, SP-Relative and Absolute as well as hybrid addressing are supported.
Resource announcements Under the CSEBaseAnnc resource (R4 feature). Bi-directional update sync.
Resource expiration
Resource validations
Result expiration The Result Expiration Timestamp request attribute. Result timeouts for non-blocking requests depend on the resource expiration interval.
Semantics Basic support for semantic descriptors and semantic queries and discovery.
Standard oneM2M requests CREATE, RETRIEVE, UPDATE, DELETE, NOTIFY
Subscriptions Incl. batch notification, and resource type and attribute filtering.
Time Synchronization
TimeSeries data handling Incl. missing data detection, monitoring and notifications.

Notification Event Types

The following notification event types for Subscriptions are supported:

Notification Event Types Supported
resourceUpdate
resourceUpdate
createDirectChild
deleteDirectChild
retrieveCNTNoChild
triggerReceivedForAE
blockingUpdate
missingData

Additional CSE Runtime Features

Runtime Environments

The ACME CSE runs at least on the following runtime environments:

Runtime Environment Supported Remark
Generic Linux Including Raspberry Pi OS (32bit) on Raspberry Pi 3 and 4.
Mac OS Intel and Apple silicon.
MS Windows
Jupyter Notebooks ACME CSE can be run headless inside a Jupyter Notebook.
Functionality Remark
HTTP CORS Support for Cross-Origin Resource Sharing to support http(s) redirects.
HTTP Authorization Basic support for basic and bearer (token) authorization.
HTTP WSGI Support for the Python Web Server Gateway Interface to improve integration with a reverse proxy or API gateway, ie. Nginx.
Text Console Control and manage the CSE, inspect resources, run scripts in a text console.
Test UI Text-based UI to inspect resources and requests, configurations, stats, and more
Testing: Upper Tester Basic support for the Upper Tester protocol defined in TS-0019, and additional command execution support.
Request Recording Record requests to and from the CSE to learn and debug requests over Mca and Mcc.
Script Interpreter Lisp-based scripting support to extent functionalities, implement simple AEs, prototypes, test, ...
Web UI

Database Bindings

The following database bindings are supported:

Database Binding Supported Remark
PostgreSQL
TinyDB in-memory Fast and simple in-memory database.
TinyDB file-based Fast and simple file-based database.

Experimental CSE Features

These features are prove-of-concept implementations of new and currently discussed oneM2M features. They are not yet part of the oneM2M standard.

Functionality Remark
Enhanced CSR functionality Support of new eventEvaluationMode to react in 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.