oneM2M Service Layer Protocol Version Handling

Slides:



Advertisements
Similar presentations
SEC Clarification Group Name: WG4 (SEC-2014-xxxx) Decision  Meeting Date: Discussion  Source: OBERTHUR Technologies Information  Contact:
Advertisements

App-ID Ad-Hoc Technical Issues TP AppID R02 Group Name: App-ID Ad-Hoc Group Source: Darold Hemphill, iconectiv,
Gursharan Singh Tatla Transport Layer 16-May
Announcement Resources ARC Announcement_Issues Group Name: WG2 Source: Barbara Pareglio, NEC Meeting Date: Agenda Item: Input Contribution.
Introduction of PRO WG activities Group Name: TP Source: Shingo Fujimoto, FUJITSU, Meeting Date: Agenda Item:
WG 3 Progress Report at TP13 Group Name: oneM2M TP13 Source: Raymond Forbes, LM Ericsson, Meeting Date: to
PRO R01-URI_mapping_discussion Discussion on URI mapping in protocol context Group Name: PRO and ARC Source: Shingo Fujimoto, FUJITSU,
In-Band Access Control Framework Group Name: WG4 SEC Source: Qualcomm Meeting Date: Agenda Item:
TS0001 Identifiers way forward Group Name: WG2 Source: Elloumi, Foti, Scarrone, Lu (tbc), Jeong (tbc) Meeting Date: Agenda Item: ARC11/PRO11.
Customized Resource Types MAS Group Name: MAS + ARC + PRO WGs Source: Wolfgang Granzow, Qualcomm Inc., Meeting Date:
SIP working group IETF#70 Essential corrections Keith Drage.
Node-Specific Resource Group Name: ARC&MAS Source: LGE, Meeting Date: Agenda Item: Contribution.
Primitive End-to-End Security Requirements Group Name: SEC WG4 Source: Phil Hawkes, Qualcomm, Meeting.
Interworking with an External Dynamic Authorization System Group Name: SEC WG Source: Qualcomm Inc., Wolfgang Granzow & Phil Hawkes Meeting Date: SEC#20.2,
SIP-H.323 Interworking Group RRR-1 IETF-48 SIP-H.323 Interworking Requirements draft-agrawal-sip-h323-interworking-reqs-00.txt Hemant.
E2EKey Resource Group Name: SEC WG Source: Qualcomm Inc., Wolfgang Granzow & Phil Hawkes Meeting Date: SEC#20.3, Agenda Item: End-to-End Security.
M2M Service Subscription Profile Discussion Group Name: oneM2M TP #19.2 Source: LG Electronics Meeting Date: Agenda Item:
PRO/ARC and TST/PRO joint sessions at TP20 Group Name: oneM2M TP20 Source: Peter Niblett, IBM Meeting Date:
Protocol Issues related to Plugtest Group Name: TST Source: Wolfgang Granzow, Qualcomm Inc., Meeting Date: Agenda.
Clarification of Access Control Mechanism on Rel-1 & Rel-2 Group Name: SEC ( ARC & PRO for information) Source: FUJITSU Meeting Date: Agenda.
Call for input from WGs on things to test Group Name: TST Source: Jiaxin Yin, Huawei Technologies Co., Ltd., Meeting Date:
Protocol Issues related to Plugtest Group Name: TST Source: Wolfgang Granzow, Qualcomm Inc., Meeting Date: Agenda.
Discussion of open issues for WebSocket binding Group Name: PRO WG Source: Qualcomm Inc., Wolfgang Granzow, Nobu Uchida Meeting Date: PRO#22,
Discussion about Interoperability (&versioning) Group Name: PRO & ARC Source: FUJITSU Meeting Date: Agenda Item: TS-0004.
Possible options of using DDS in oneM2M Group Name: ARC Source: KETI, Huawei, Hitachi, China Unicom Meeting Date: Agenda Item: DDS binding.
PRESENTATION ON SECURE SOCKET LAYER (SSL) BY: ARZOO THAKUR M.E. C.S.E (REGULAR) BATCH
Specifying the Address of Management Client of Managed Entity Group Name: ARC Source: Hongbeom Ahn, SK Telecom, Meeting Date: TP#21 Agenda.
Joint PRO/ARC session at TP20 Group Name: oneM2M TP20 Source: Peter Niblett, IBM Meeting Date:
TLS/SSL Protocol Presented by: Vivek Nelamangala Includes slides presented by Miao Zhang on April Course: CISC856 - TCP/IP and Upper Layer Protocols.
3GPP R13 Small Data Delivery
Chapter 9: Transport Layer
Resource subscription using DDS in oneM2M
[authenticationProfile] <mgmtObj> specialization
App-ID Ad-Hoc Technical Issues TP AppID R02
Instructor Materials Chapter 9: Transport Layer
Discussion on DDS protocol binding
oneM2M interop 3 issues and optimizations
IoT Integration Patterns, REST, and CoAP
CSE Retargeting to AE, IPE, and NoDN Hosted Resources
CSE Retargeting to AE, IPE, and NoDN Hosted Resources
Service Enabled AE (SAE)
End-to-End Security for Primitives
MIME Type Definition Group Name: PRO WG
Group multicast fanOut Procedure
2nd Interoperability testing issues
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
3GPP interworking in R3 Group Name: ARC
Possible options of using DDS in oneM2M
Issues of <locationPolicy> Discussion
draft-ietf-simple-message-sessions-00 Ben Campbell
NIDD Discussion Points
Proposed design principles for modelling interworked devices
Discussions on Heterogeneous Identification Service
Allow tool-specific code in TTCN-3 as well in conformance test suite
MAF&MEF Interface Specification discussion of the next steps
WPM ad-hoc group report TP#25
Discussion to clarify online/offline behavior
oneM2M Versioning Next Steps
Cryptography and Network Security Chapter 16
Overview of E2E Security CRs
CMDH Refinement Contribution: oneM2M-ARC-0397R01
Discussion on XSD open issues
Service Layer Dynamic Authorization [SLDA]
3GPP V2X Interworking Potential Impact
3GPP Interworking and use of <schedule> resource
Summary of the MAF and MEF Interface Specification TS-0032
William Stallings Data and Computer Communications
WEB SERVICES From Chapter 19, Distributed Systems
Cryptography and Network Security
Presentation transcript:

oneM2M Service Layer Protocol Version Handling Group Name: PRO WG Source: Qualcomm Inc., Wolfgang Granzow, Nobu Uchida, Josef Blanz Meeting Date: TP#30, 2017-07-11 Agenda Item: Joint ARC/PRO/SEC

History of discussions Version handling is a really long-standing Action Item … Previous inputs for discussion and proposed solutions: ARC-2014-1592-REST_API_versioning (LAAS-CNRS), presented at TP#13 PRO-2014-0524-Versioning_Solution (Fujitsu), presented at PRO#13.2 PRO-2014-0597R02-CR_API_version_info (Fujitsu), CR to TS-0004v0_8_0 noted at PRO#14.1 ARC-2017-006 (QCOM) Presented as PRO-2016-0297 at TP#24, discussed at ARC/PRO#26.1 telco (2017-01-04) PRO-2017-0028R01 (QCOM) discussed in joint ARC/PRO at TP#27

Version Handling in oneM2M Entity A (Registree) Entity B (Registrar) System Management / Configuration oneM2M Application/SL Rxy parameters AE or CSE originator and receiver processing serialization Primitives protocol selection CoAP Binding HTTP Binding MQTT Binding WS Binding request SL version (WS only) CoAP HTTP MQTT WS V1 V1.1 V3.1.1 V13 response cipher suite(s), other params. DTLS TLS V1.2 V1.2 UDP TCP IP version/ address IP (IPv4, IPv6) setup IP connectivity ../LC/MAC/PHY

Notion of oneM2M Version oneM2M Application / Common Service Layer protocol version = “Release Version” of Mca or Mcc, e.g. R1, R2, R2A, R3 an indicator which identifies conformance with a specific set of requirements laid out in that version’s corresponding set of specifications “Release Version” is not equal to the version number of specifications The mapping between oneM2M “Release Version” and specification numbers/version needs to be defined (“oneM2M release control document”), but this is out of scope of this presentation

Notion of oneM2M Version App / SL Version needs to cover following features: Behavior of primitive processing at the originator and receiver Representation of a primitive “Control“ primitive parameters and their (XSD-) permitted values “Content” primitive parameter Global Elements permitted to appear in the primitive Content Core resource types defined in „m2m:“ namespace Specific resource types defined in other namespaces (e.g. „hd:“, „dcfg:“, „sec:“) Serialization formats of primitive parameters, including Content Binding scheme: mapping of primitive parameters to/from CoAP, HTTP, MQTT or WebSocket (WS)

Versions of protocols below oneM2M SL Application data transfer protocols: All protocols below oneM2M SL use the same fixed version for all current oneM2M Releases Version is indicated explicitly in every request and response for CoAP and HTTP MQTT: indication of version (“3”) used by a client in CONNECT message sent to the server. Server may refuse connection request indicating “unacceptable protocol version” in CONNACK response WS: HTTP/1.1 or higher used in opening handshake (negotiable), WebSocket version 13 must be used, version negotiable in future WS versions, no explicit indication in WS frames

Version of protocol using WebSocket WS: Allows negotiation of upper application protocol, including version and serialization format per WS connection Sec-WebSocket-Protocol: oneM2M.R2.0.json, oneM2M.R2.0.xml (NOTE: format may need to be changed when Release/Version scheme is fixed) This is not applicable to CoAP and HTTP, as these protocols have no concept of a session or connection These protocols may use different UDP or TCP port numbers to differentiate different applications using it

Versions of protocols below oneM2M SL DTLS and TLS Fixed versions v1.2 currently used Version is on principle negotiable in the handshake This feature may be used for future oneM2M releases supporting (D)TLS v1.3 UDP and TCP Have no versions; TCP has optional negotiable extensions IP IPv4 and IPv6, to be selected/configured at network connection configuration stage

SL Version indication or negotiation When? Each request/response transaction? At connection establishment? E.g. WS allows negotiation in opening handshake; then no version info in request/response primitive itself required At registration? SL version supported by registree and registrar is known to these two entities only May cause issues when forwarding primitives in MNs

SL Version indication How? Additional primitive parameter in every request and response New parameter needs to be mapped by binding protocol for HTTP and CoAP Resolves issues when forwarding primitives “Content-Type” header could be used for CoAP and HTTP By provisioning: Version supported by registrar provisioned to registree, as separate parameter, or as part of PoA parameter By indication in registration phase Registree indicates its supported release as part of <AE> or <remoteCSE> resource Release supported by registrar visible to registree in <CSEbase> resource of the registrar

„Levels“ of inter-release interworking No interworking between release versions All entities up to some level (e.g. IN-CSE) comply to the same release version An MN or IN-CSE higher up in the hierarchical topology of nodes may support “perfect” conversion to higher version if supported by upper level entity Higher release entities interwork with subordinate nodes of older releases (i.e. backward compatibility) This seems feasible if both, primitives and resource representations would be maintained strictly backward compatible This is not guaranteed between oneM2M R1 and R2 but can probably be ensured from some version R2.x into R3 Requires some extra “down-conversion” processing of response messages; notification request and response messages should be forward and backward compatible Entities of any release interwork with each other E.g. any unknown primitive parameters and elements of Content are ignored Requires forward and backward compatible primitives and resource representations. Doesn’t seem feasible

Requirements to support levels A) and B) Registrar should know the release version intended to be used by it’s registree(s) This information can be exchanged in the registration procedure The used release version is part of the context information between registree and registrar and therefore does not need to be exchanged with every request and response Suggested procedure: Registree includes its supported release in <AE> or <remoteCSE> in registration request message (i.e. create <AE> or create <remoteCSE> Registrar indicates its release in the <CSEBase> Registrar may explicitly reject the registration request if release versions don’t match. Successful registration response ensures the registree of matching release versions Release version in <CSEBase>, <AE> and <remoteCSE> could be indicated in reserved labels (instead of defining new attributes, to keep resource type compatibility)

Differences between Interwork levels A) and B) For interwork level A), registration is rejected if the release versions supported by Registree and Registrar differ For interwork level B), the registrar accepts registration of a registree supporting a „backward compatible“ (BC) release Support of B) has issues in following scenarios Forwarding of primitives Content primitive parameters returned from a higher release entity to the originator Node communicating with lower release entity should apply some conversion, even for forwarding of response primitives Aggregation of responses originating from Entities with mixed, possibly lower or higher SL versions Reception of Notify request messages from higher SL version entity

Potential Issues with B) op R2 Hosting CSE R3 Hosting CSE R2 orig C  No issue for BC resource R R3 entity should not add attributes unknown in R2 U No issue D R3 Unknown attributes to be rejected by hosting CSE BC = Backward Compatible

Possible solution for exchange of release version Registree indicates its own supported release version in <AE> or <remoteCSE>, e.g. label attribute Registree mandated to indicate the same or a lower version After successful registration, Registree can read release version supported by the registrar in <CSEBase>, e. g. label attribute For unsuccessful registration due to release version mismatch, the registrar should send a respective new RSC and could also include its supported release version in the Content para,meter of the response Any resource representation includes its version in the same way (i.e. in label) Release version vs. XSD version? Two labels, e.g. XSDv2_10 and Rel2.a

Proposal (1) Define reserved label attribute values to indicate Release versions Use key:value format Define reserved keys and values Supported release: e.g. REL:2A, REL:3 (values of key & label to be defined) XSD-version of resource representation on hosting CSE: e.g. XSD:2.12 Mandate that Registree indicates its release version label when creating <AE> and <remoteCSE> resources labels attribute of <CSEBase> indicates Release Version supported by a CSE labels attribute of <AE> indicates Release Version by an AE registree at its registrar labels attribute of <remoteCSE> indicates Release Version supported by a CSE registree to its registrar All other resource types which are created by entities other than the hosting CSE could also include release version label to indicate the version of the creator of the resource

Proposal (2) XSD representation label shall be added by hosting CSE Registrar must choose XSD version compatible with its own release version as well as the XSD associated with the release supported by the registree E.g. <remoteCSE> resource in registree and registrar may have different XSD version labels, but the higher version shall be „compatible“ with the lower version Compatible release versions must be specified in the specs, i.e. TS-0004 Registrar shall reject registration request of incompatible release New status code to be defined Update of labels attribute Release version should not change as long as there is no update of the supported release e.g. due to SW upgrade SW upgrade to a newer release of an entity shall trigger re-registration The respective elements of the labels attribute should be maintained by the hosting CSE as read-only information

Proposal (3) Initially, ensure that „inter-release interworking Level A)“ works appropriately Minor update of registration procedure required: Registrar shall check labels indicated by the registree Accept registration request for matching release version Reject registration request for non-matching release versions , with RSC to be defined More detailed work is needed to clarify under which conditions Level B) is feasible clarify how to deal with the issues listed on slides 13 and 14 above Also conformance testing procedures for inter-release interworking procedures would need to be defined