You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@mynewt.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2017/03/02 16:17:45 UTC

[jira] [Commented] (MYNEWT-647) Changes to NMP over OIC scheme

    [ https://issues.apache.org/jira/browse/MYNEWT-647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15892522#comment-15892522 ] 

ASF subversion and git services commented on MYNEWT-647:
--------------------------------------------------------

Commit 3828470558992547a6243df028af3142937cec85 in incubator-mynewt-core's branch refs/heads/develop from [~ccollins476]
[ https://git-wip-us.apache.org/repos/asf?p=incubator-mynewt-core.git;h=3828470 ]

MYNEWT-647 Changes to NMP over OIC scheme

Update NMP handlers to account for new scheme.  Now the top-level
handler creates and closes the response root map rather than each
handler.


> Changes to NMP over OIC scheme
> ------------------------------
>
>                 Key: MYNEWT-647
>                 URL: https://issues.apache.org/jira/browse/MYNEWT-647
>             Project: Mynewt
>          Issue Type: Bug
>          Components: Newtmgr
>            Reporter: Christopher Collins
>            Assignee: Christopher Collins
>             Fix For: v1_0_0_rel
>
>
> This ticket was created to address the following three issues with NMP over OIC (OMP):
> 1. Parts of NMP header missing from OMP responses.  This causes problems when multiplexing OMP among many target devices.
> 2. Parts of the NMP header are scattered in a few different places.  This works, but it makes it difficult to debug packet traces.
> 3. NMP errors get lost in translation.  Instead of an NMP message with an error code, the OMP server sends back a generic "Bad Request" OICmessage.
> h4. Current Scheme
> h5. Requests
> The NMP op is indicated by the OIC op:
> NMP read <=> OIC get
> NMP write <=> OIC put
> The NMP group and ID are indicated as CoAP URI Query options:
> * {{gr=<group>}}
> * {{id=<id>}}
> The remaining NMP header fields, seq and flags, are not present.
> The NMP payload is the entire CoAP request body.  This is identical to the body of a plain NMP request.
> h5. Responses
> The NMP header is not present.  The NMP op is indicated in the payload (see below), but other header fields cannot be inferred.
> Payload consists of a single CBOR key-value pair.  For read responses, the key is "r"; for write responses, the key is "w".  The value is a second CBOR map containing the actual NMP response fields.
> Errors encountered during processing of NMP requests are reported via OIC  error responses (bad request, internal server error).
> h4. Proposed Scheme
> h5. Requests
> # The OIC op is always the same: put.
> # No URI Query CoAP options.
> # The NMP header is included in the payload as a key-value pair (key="_h").  This pair is in the root map of the request and is a sibling of the other request fields.  The value of this pair is the big-endian eight-byte NMP header with a length field of 0.
> h5. Responses
> * As with requests, the NMP header is included in the payload as a key-value pair (key="_h").
> * No "r" or "w" field.  The response fields are inserted into the root map as a sibling of the "_h" pair.
> * Errors encountered during processing of NMP requests are reported identically to other NMP responses (embedded NMP response).
> h5. Notes
> * Keys that start with an underscore are reserved to the OIC manager protocol (e.g., "_h").  NMP requests and responses must not name any of their fields with a leading underscore.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)