Skip to content

Latest commit

 

History

History
213 lines (166 loc) · 19.6 KB

Supported.md

File metadata and controls

213 lines (166 loc) · 19.6 KB

← README

Supported Resource Types and Functionalities

oneM2M Specification Conformance

The CSE implementation successfully passes most of the oneM2M Release 1 test cases, and all relevant test cases from Release 2, 3 and 4.

Release Versions

The ACME CSE supports oneM2M release 1, 2a, 3, and 4 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

Resources

The ACME CSE supports the following oneM2M resource types:

Resource Type Supported Remarks & Limitations
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 Importing 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 Objects

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)
MyCertFileCred (NYCFC)
Reboot (REB)
Software (SWR)
WifiClient (WIFIC)

oneM2M Service Features

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.

Additional CSE Features

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

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.

Result Content Types

The following result contents are implemented for standard oneM2M requests & 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

Notification Event Types for Subscriptions

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

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

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 the same entity.

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.

Limitations

  • The intention of this CSE implemention is to support education and learning, experiments, and demonstrations, but not a production environment. Use it at your own risk.
  • The underlying communication stacks and database system are not optimized in any way for high-volume, high-availability, or high-reliability.
  • Unsupported resource types are just stored, but no validations or functionality are provided for those resources.

← README