{"action":"created","issue":{"url":"https://api.github.com/repos/kata-containers/agent/issues/126","repository_url":"https://api.github.com/repos/kata-containers/agent","labels_url":"https://api.github.com/repos/kata-containers/agent/issues/126/labels{/name}","comments_url":"https://api.github.com/repos/kata-containers/agent/issues/126/comments","events_url":"https://api.github.com/repos/kata-containers/agent/issues/126/events","html_url":"https://github.com/kata-containers/agent/pull/126","id":293356752,"number":126,"title":"grpc: initial changes for networking protocol","user":{"login":"egernst","id":20174683,"avatar_url":"https://avatars1.githubusercontent.com/u/20174683?v=4","gravatar_id":"","url":"https://api.github.com/users/egernst","html_url":"https://github.com/egernst","followers_url":"https://api.github.com/users/egernst/followers","following_url":"https://api.github.com/users/egernst/following{/other_user}","gists_url":"https://api.github.com/users/egernst/gists{/gist_id}","starred_url":"https://api.github.com/users/egernst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/egernst/subscriptions","organizations_url":"https://api.github.com/users/egernst/orgs","repos_url":"https://api.github.com/users/egernst/repos","events_url":"https://api.github.com/users/egernst/events{/privacy}","received_events_url":"https://api.github.com/users/egernst/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":29,"created_at":"2018-02-01T00:01:47Z","updated_at":"2018-02-13T02:40:24Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/kata-containers/agent/pulls/126","html_url":"https://github.com/kata-containers/agent/pull/126","diff_url":"https://github.com/kata-containers/agent/pull/126.diff","patch_url":"https://github.com/kata-containers/agent/pull/126.patch"},"body":"WIP changes for making the networking interface gRPC protocol declarative.\r\n\r\n### For the proposal in this patch:\r\nThe number of messages for route and interface handling is reduced to\r\ntwo with this patch: UpdateRoutes and UpdateInterfaces.\r\n\r\nUpdateInterfaces operates on an array of network-interfaces.  Doing this\r\nallows for removal of interfaces by sending a new update request with\r\nthe interface no longer included.  For example, initially\r\nUpdateInterfaces is called for 'A,' 'B' and 'C.'  Later a network remove of\r\nnetwork interface 'B' is carried out by calling UpdateInterfaces with\r\njust 'A' and 'C'.  While this simplifies the protocol and runtime handling, it does put a\r\nburden on the agent to write out the (non-necessarily changed) interface\r\ndetails for 'A' and 'C' and determine that 'B' was removed.  In the event that network disconnect is used for each of the existing interfaces, a nil array of Interfaces could be sent.  \r\n\r\nUpdateRoutes also operates on an array of routes.\r\n\r\nThis patch doesn't work - just as an example which barely compiles to drive the discussion.\r\n\r\n### Alternative approach:\r\n\r\nWe could allow for explicit removal of interfaces by either:\r\n  1. defining a RemoveInterface message, or \r\n  2. adding a flag (or type: update|remove) that could be passed to the UpdateInterface function\r\n\r\nIf these options are used, the agent would work on the (network) interface granularity rather than on all of the interfaces per message call.\r\n\r\n### Further details:\r\n* Regardless of which approach we use, the interface or interfaces and routes are returned as well as error status (as discussed already)\r\n* Interfaces will be identified by MAC-address (as discussed already)\r\n"},"comment":{"url":"https://api.github.com/repos/kata-containers/agent/issues/comments/365133080","html_url":"https://github.com/kata-containers/agent/pull/126#issuecomment-365133080","issue_url":"https://api.github.com/repos/kata-containers/agent/issues/126","id":365133080,"user":{"login":"laijs","id":125671,"avatar_url":"https://avatars1.githubusercontent.com/u/125671?v=4","gravatar_id":"","url":"https://api.github.com/users/laijs","html_url":"https://github.com/laijs","followers_url":"https://api.github.com/users/laijs/followers","following_url":"https://api.github.com/users/laijs/following{/other_user}","gists_url":"https://api.github.com/users/laijs/gists{/gist_id}","starred_url":"https://api.github.com/users/laijs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laijs/subscriptions","organizations_url":"https://api.github.com/users/laijs/orgs","repos_url":"https://api.github.com/users/laijs/repos","events_url":"https://api.github.com/users/laijs/events{/privacy}","received_events_url":"https://api.github.com/users/laijs/received_events","type":"User","site_admin":false},"created_at":"2018-02-13T02:40:24Z","updated_at":"2018-02-13T02:40:24Z","author_association":"CONTRIBUTOR","body":"LGTM"}}
{"actor":{"display_login":"laijs"}}