{"action":"created","issue":{"url":"https://api.github.com/repos/openthread/openthread/issues/329","repository_url":"https://api.github.com/repos/openthread/openthread","labels_url":"https://api.github.com/repos/openthread/openthread/issues/329/labels{/name}","comments_url":"https://api.github.com/repos/openthread/openthread/issues/329/comments","events_url":"https://api.github.com/repos/openthread/openthread/issues/329/events","html_url":"https://github.com/openthread/openthread/pull/329","id":169263386,"number":329,"title":"Ncp: Update the ncp implementation to use new buffering model","user":{"login":"abtink","id":17729664,"avatar_url":"https://avatars.githubusercontent.com/u/17729664?v=3","gravatar_id":"","url":"https://api.github.com/users/abtink","html_url":"https://github.com/abtink","followers_url":"https://api.github.com/users/abtink/followers","following_url":"https://api.github.com/users/abtink/following{/other_user}","gists_url":"https://api.github.com/users/abtink/gists{/gist_id}","starred_url":"https://api.github.com/users/abtink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abtink/subscriptions","organizations_url":"https://api.github.com/users/abtink/orgs","repos_url":"https://api.github.com/users/abtink/repos","events_url":"https://api.github.com/users/abtink/events{/privacy}","received_events_url":"https://api.github.com/users/abtink/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/openthread/openthread/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/openthread/openthread/labels/NCP","name":"NCP","color":"c2e0c6"}],"state":"open","locked":false,"assignee":{"login":"darconeous","id":686678,"avatar_url":"https://avatars.githubusercontent.com/u/686678?v=3","gravatar_id":"","url":"https://api.github.com/users/darconeous","html_url":"https://github.com/darconeous","followers_url":"https://api.github.com/users/darconeous/followers","following_url":"https://api.github.com/users/darconeous/following{/other_user}","gists_url":"https://api.github.com/users/darconeous/gists{/gist_id}","starred_url":"https://api.github.com/users/darconeous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darconeous/subscriptions","organizations_url":"https://api.github.com/users/darconeous/orgs","repos_url":"https://api.github.com/users/darconeous/repos","events_url":"https://api.github.com/users/darconeous/events{/privacy}","received_events_url":"https://api.github.com/users/darconeous/received_events","type":"User","site_admin":false},"assignees":[{"login":"darconeous","id":686678,"avatar_url":"https://avatars.githubusercontent.com/u/686678?v=3","gravatar_id":"","url":"https://api.github.com/users/darconeous","html_url":"https://github.com/darconeous","followers_url":"https://api.github.com/users/darconeous/followers","following_url":"https://api.github.com/users/darconeous/following{/other_user}","gists_url":"https://api.github.com/users/darconeous/gists{/gist_id}","starred_url":"https://api.github.com/users/darconeous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darconeous/subscriptions","organizations_url":"https://api.github.com/users/darconeous/orgs","repos_url":"https://api.github.com/users/darconeous/repos","events_url":"https://api.github.com/users/darconeous/events{/privacy}","received_events_url":"https://api.github.com/users/darconeous/received_events","type":"User","site_admin":false},{"login":"abtink","id":17729664,"avatar_url":"https://avatars.githubusercontent.com/u/17729664?v=3","gravatar_id":"","url":"https://api.github.com/users/abtink","html_url":"https://github.com/abtink","followers_url":"https://api.github.com/users/abtink/followers","following_url":"https://api.github.com/users/abtink/following{/other_user}","gists_url":"https://api.github.com/users/abtink/gists{/gist_id}","starred_url":"https://api.github.com/users/abtink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abtink/subscriptions","organizations_url":"https://api.github.com/users/abtink/orgs","repos_url":"https://api.github.com/users/abtink/repos","events_url":"https://api.github.com/users/abtink/events{/privacy}","received_events_url":"https://api.github.com/users/abtink/received_events","type":"User","site_admin":false}],"milestone":null,"comments":7,"created_at":"2016-08-04T00:14:13Z","updated_at":"2016-08-05T23:13:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/openthread/openthread/pulls/329","html_url":"https://github.com/openthread/openthread/pull/329","diff_url":"https://github.com/openthread/openthread/pull/329.diff","patch_url":"https://github.com/openthread/openthread/pull/329.patch"},"body":"This commit modifies the `NcpBase` and `NcpUart` classes to use new Ncp buffer model (defined `in NcpFrameBuffer` class).\r\n\r\nHere are the main changes in this commit:\r\n\r\n- It changes the `NcpUart` to adopt the `NcpFrameBuffer` for storing the  outbound frames. This allows multiple frames to be queued for tx.\r\n\r\n- `NcpUart` is changed so that the outgoing frames are encoded and  sent over to Uart in smaller chunks. This helps reduce the required  buffer size for storing the encoded outbound uart data.\r\n\r\n- The spinel command handler methods in `NcpBase` are modified to return  ThreadError status to indicate success or failure (e.g., when there is no  buffer space for a response frame).\r\n\r\n- If the response to a spinel command cannot be sent (no buffer space) the `NcpBase` remembers the set of TIDs (transaction ids) of such commands so to reply later with error status `SPINEL_STATUS_NOMEM` when buffer  space becomes available. This ensures that spinel commands will get  a response even in case of full buffer.\r\n\r\n- The `NcpSpi` class is modified to address the changes from `NcpBase` but  this commit does not change the buffer model for the `NcpSpi`. It adds  `spi-stubs.c` to enable building the ncp app with spi feature under  posix platform.\r\n\r\nI have tested the changes using openthred (posix simulator) with wpantund. \r\n"},"comment":{"url":"https://api.github.com/repos/openthread/openthread/issues/comments/237986816","html_url":"https://github.com/openthread/openthread/pull/329#issuecomment-237986816","issue_url":"https://api.github.com/repos/openthread/openthread/issues/329","id":237986816,"user":{"login":"jwhui","id":16142208,"avatar_url":"https://avatars.githubusercontent.com/u/16142208?v=3","gravatar_id":"","url":"https://api.github.com/users/jwhui","html_url":"https://github.com/jwhui","followers_url":"https://api.github.com/users/jwhui/followers","following_url":"https://api.github.com/users/jwhui/following{/other_user}","gists_url":"https://api.github.com/users/jwhui/gists{/gist_id}","starred_url":"https://api.github.com/users/jwhui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwhui/subscriptions","organizations_url":"https://api.github.com/users/jwhui/orgs","repos_url":"https://api.github.com/users/jwhui/repos","events_url":"https://api.github.com/users/jwhui/events{/privacy}","received_events_url":"https://api.github.com/users/jwhui/received_events","type":"User","site_admin":false},"created_at":"2016-08-05T23:13:35Z","updated_at":"2016-08-05T23:13:35Z","body":"Overall, LGTM.  Just a couple minor comments inline."}}
{"actor":{"display_login":"jwhui"}}