[ 
https://issues.apache.org/jira/browse/MYNEWT-647?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Collins resolved MYNEWT-647.
----------------------------------------
    Resolution: Fixed

> 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)

Reply via email to