Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introducing CoMI Aligned with RestCONF (draft-ietf-netconf-restconf-04) Common data modeling language (YANG defined in RFC 6020) Protocol (CoAP instead.

Similar presentations


Presentation on theme: "Introducing CoMI Aligned with RestCONF (draft-ietf-netconf-restconf-04) Common data modeling language (YANG defined in RFC 6020) Protocol (CoAP instead."— Presentation transcript:

1 Introducing CoMI Aligned with RestCONF (draft-ietf-netconf-restconf-04) Common data modeling language (YANG defined in RFC 6020) Protocol (CoAP instead of http) Security (DTLS instead of TLS) Payload encoded (CBOR instead of XML or JSON) Data node identifier (30 bit hash value instead of data node path) Hash values are encoded in base64 in URI, in binary in payload

2 Example RestCONF (214 bytes payload) GET /restconf/data/ietf-6tisch-mac:TSCHSpecificPIBAttributes Host: example.com Accept: application/yang.data+json HTTP/1.1 200 OK Date: Mon, 23 Apr 2012 17:01:30 GMT Server: example-server Content-Type: application/yang.data+json { "ietf-6tisch:TSCHSpecificPIBAttributes" : { "macMinBE" : 3, "macMinBE" : 7, "macDisconnectTime" : 255, "macJoinPriority" : 1, "macASN" : 164926744166, "macNoHLBuffers" : true } CoMI (52 bytes payload) REQ: GET example.com/mg/nDAal RES: 2.05 Content (Content-Format: application/cbor) a1 1a 270c06a5 a6 1a 18f1deec 03 1a 3a4367ae 07 1a 0fd897c1 18 ff 1a 0f817d75 01 1a 35920a57 1b 0000002666666666 1a 2386c778 f5

3 YANG hash clashes Hashes are computed using the murmur3 hash on the canonical representation of the data node path. For example: mmh3 ('/6top:TSCHSpecificPIBAttributes/6top:macMinBE', 42) = 418504428 or "Y8d7s" in base64 Hashes may be identical for different names, so-called clashes Hash clashes within a module can be detected and fixed at module design time Hash clashes between modules depend on the set of modules implemented by each CoMI server

4 YANG hash clashes Set of YANG hashes for Module A Set of YANG hashes for Module B Set of YANG hashes for Module C Hash clashes

5 Hash clashes handling as defined in draft-vanderstok-core-comi-06 CoMI servers with hash clashes need to implement a “rehash” list containing: The hash causing the clash The data node path A character appended to the path to resolve the clash CoMI clients need to retrieve the “rehash” list of each CoMI server prior to accessing them CoMI clients use the “rehash” list as a lookup table to associate the right data node with the right hash CoMI clients need to store the full data node names

6 Hash clashes handling as defined in draft-vanderstok-core-comi-06 Data nodes -655099557, value -418504428, value (Rehash to 515761480) -… “rehash” list -418504428, “/6top:TSCHSpecificPIBAttributes/6top:macMinBE”, “_” CoMI server #1 Data nodes -655099557, value -418504428, value -… “rehash” list - CoMI server #n -Path of each data node for lookup in “rehash” lists -Server 1 “rehash” list -Server n “rehash” list CoMI client Step 1 Retrieve “rehash” list from server #1 to #n Step 2 For each access to data node, perform a lookup in “rehash” list to associate the right data node with the right hash Step 1 Step 2

7 First alternate solution (simplified “rehash” list) Assuming that hash clashes within each module are resolved at design time CoMI servers return a “hash clash” error only when a CoMI client tries to access data node(s) with hash clashes The CoMI client generates a simplified “rehash” list containing: The old hash The new hash The module identifier (local to client) The CoMI client uses the “rehash” list to resend the request with the proper hash

8 First alternate solution (simplified “rehash” list) Data nodes -655099557, value -418504428, empty (Rehashed to 515761480) -… “extend” list - 515761480, value CoMI server #1 Data nodes -655099557, value -418504428, value -… “rehash” list - CoMI server #n -Module name & data nodes hashes -Server 1 “rehash” list -Server n “rehash” list CoMI client Step 1 Try to access a data node Step 2 If “hash clash” error receive, retrieve “rehash” from “clash_file” using module name, old hash” Step 3 Try again to access a data node with the rehash value [ Step 2 ] Step 1 [ Step 3 ]

9 Second alternate solution (No “rehash” list) Assuming that hash clashes within each module is resolved at design time CoMI servers return a “hash clash” error only when a CoMI client tries to access data node(s) with hash clashes On reception of a “hash clash” error, a CoMI client resends its request with the optional query parameter specifying the module name. Notes: This format can also be used all the time to avoid “hash clash” errors. “rehash” list are not required (to implement, to retrieve, to lookup) But requires communication overhead, and module name in server For example: GET example.com/Y8d7s?select= ietf-6tisch-mac Permanent query overhead

10 Second alternate solution (No “rehash” list) Data nodes -655099557, ietf-6tisch-mac, value -418504428, ietf-6tisch-mac, value -… CoMI server #1 Data nodes -655099557, ietf-6tisch-mac, value -418504428, ietf-6tisch-mac, value -… CoMI server #n -Module name & data nodes hashes CoMI client Step 1 Try to access a data node Step 2 If “hash clash” error receive, try again to access the data node with the module name added as optional query parameter. e.g. GET example.com/Y8d7s?select= ietf-6tisch-mac Step 1 [ Step 2 ]

11 Third alternate solution (Managed IDs) Partially managed identifiers (Module ID) or fully managed identifiers (Module ID & Data node ID) Require IANA registration of each YANG module writer. Each writer need to assign module IDs and optionally data node IDs. Allows payload size reduction For example (24 bytes payload): REQ: GET example.com/mg/1&select(5) RES: 2.05 Content (Content-Format: application/cbor) a1 01 a6 02 03 07 04 18 ff 05 01 06 1b 0000002666666666 07 f5

12 Third alternate solution (Managed IDs) Data nodes -data node #1, module #5, value -data node #2, module #5, value -… CoMI server #1 Data nodes -data node #1, module #5, value -data node #2, module #5, value -… CoMI server #n -Module ID & data nodes ID CoMI client Step 1 Access a data node e.g. GET example.com/mg/1&select(5) Step 1

13 Other items to be discussed within CoMI Support of the YANG RPC Similar approach as the RestCONF RPC (protocol operations) Support of the YANG notification Similar approach as the RestCONF notification


Download ppt "Introducing CoMI Aligned with RestCONF (draft-ietf-netconf-restconf-04) Common data modeling language (YANG defined in RFC 6020) Protocol (CoAP instead."

Similar presentations


Ads by Google