Skip to content

Latest commit

 

History

History
184 lines (144 loc) · 14.7 KB

Supported.md

File metadata and controls

184 lines (144 loc) · 14.7 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)
Application Entity (AE)
Container (CNT)
ContentInstance (CIN)
CrossResourceSubscription (CRS)
CSEBase (CB)
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.
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.
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.
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
Resource addressing CSE-Relative, SP-Relative and Absolute as well as hybrid addressing are supported.
Standard oneM2M requests CREATE, RETRIEVE, UPDATE, DELETE, NOTIFY
Discovery
Subscriptions Incl. batch notification, and resource type and attribute filtering.
Notifications E.g. for subscriptions and non-blocking requests.
AE registration
Remote CSE registration
Resource expiration
Resource announcements Under the CSEBaseAnnc resource (R4 feature). Bi-directional update sync.
Resource validations
Request parameter validations
Transit requests Forwarding requests from one CSE to another.
Blocking requests
Non-blocking requests Non-blocking synchronous and asynchronous, and flex-blocking, incl. Result Persistence.
TimeSeries data handling Incl. missing data detection, monitoring and notifications.
Long polling Long polling for request unreachable AEs and CSEs through <pollingChannel>.
Request expiration Through the Request Expiration Timestamp request attribute
Delayed request execution Through the Operation Execution Timestamp request attribute.
Time Synchronization
Semantics Basic support for semantic descriptors and semantic queries and discovery.

Additional CSE Features

Functionality Supported Remark
Web UI
Text Console Control and manage the CSE, inspect resources, run scripts in a text console.
Testing: Upper Tester Basic support for the Upper Tester protocol defined in TS-0019, and additional command execution support.
Script Interpreter Simple batch scripting support to extent functionalities, implement simple AEs, prototypes, test, ...

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.
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 may 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