{"action":"created","issue":{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/793","repository_url":"https://api.github.com/repos/SnabbCo/snabbswitch","labels_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/793/labels{/name}","comments_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/793/comments","events_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/793/events","html_url":"https://github.com/SnabbCo/snabbswitch/pull/793","id":137572114,"number":793,"title":"Add leaky=false mode to RateLimiter.","user":{"login":"wingo","id":1745903,"avatar_url":"https://avatars.githubusercontent.com/u/1745903?v=3","gravatar_id":"","url":"https://api.github.com/users/wingo","html_url":"https://github.com/wingo","followers_url":"https://api.github.com/users/wingo/followers","following_url":"https://api.github.com/users/wingo/following{/other_user}","gists_url":"https://api.github.com/users/wingo/gists{/gist_id}","starred_url":"https://api.github.com/users/wingo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wingo/subscriptions","organizations_url":"https://api.github.com/users/wingo/orgs","repos_url":"https://api.github.com/users/wingo/repos","events_url":"https://api.github.com/users/wingo/events{/privacy}","received_events_url":"https://api.github.com/users/wingo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"eugeneia","id":4933566,"avatar_url":"https://avatars.githubusercontent.com/u/4933566?v=3","gravatar_id":"","url":"https://api.github.com/users/eugeneia","html_url":"https://github.com/eugeneia","followers_url":"https://api.github.com/users/eugeneia/followers","following_url":"https://api.github.com/users/eugeneia/following{/other_user}","gists_url":"https://api.github.com/users/eugeneia/gists{/gist_id}","starred_url":"https://api.github.com/users/eugeneia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eugeneia/subscriptions","organizations_url":"https://api.github.com/users/eugeneia/orgs","repos_url":"https://api.github.com/users/eugeneia/repos","events_url":"https://api.github.com/users/eugeneia/events{/privacy}","received_events_url":"https://api.github.com/users/eugeneia/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2016-03-01T13:17:28Z","updated_at":"2016-03-02T05:44:03Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/pulls/793","html_url":"https://github.com/SnabbCo/snabbswitch/pull/793","diff_url":"https://github.com/SnabbCo/snabbswitch/pull/793.diff","patch_url":"https://github.com/SnabbCo/snabbswitch/pull/793.patch"},"body":"This adds a configuration argument to RateLimiter, leaky.  If it's true, you have the previous mode of operation where incoming traffic that's above the threshold is dropped.  Otherwise it is left on the incoming ring buffer.\r\n\r\nAs a functional change, this new parameter defaults to false, meaning that users of RateLimiter should update their configurations.\r\n\r\nAlso, RateLimiter now provides default values for rate and bucket_capacity.\r\n\r\nI have tested this code in the lwaftr test harness (https://github.com/Igalia/snabbswitch/pull/281), and it seems to work correctly.  I have not tested the change to the NFV.  @eugeneia would you mind having a look?  Thanks in advance :)  (This is a follow-on to #782.)"},"comment":{"url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/comments/191073837","html_url":"https://github.com/SnabbCo/snabbswitch/pull/793#issuecomment-191073837","issue_url":"https://api.github.com/repos/SnabbCo/snabbswitch/issues/793","id":191073837,"user":{"login":"lukego","id":13791,"avatar_url":"https://avatars.githubusercontent.com/u/13791?v=3","gravatar_id":"","url":"https://api.github.com/users/lukego","html_url":"https://github.com/lukego","followers_url":"https://api.github.com/users/lukego/followers","following_url":"https://api.github.com/users/lukego/following{/other_user}","gists_url":"https://api.github.com/users/lukego/gists{/gist_id}","starred_url":"https://api.github.com/users/lukego/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukego/subscriptions","organizations_url":"https://api.github.com/users/lukego/orgs","repos_url":"https://api.github.com/users/lukego/repos","events_url":"https://api.github.com/users/lukego/events{/privacy}","received_events_url":"https://api.github.com/users/lukego/received_events","type":"User","site_admin":false},"created_at":"2016-03-02T05:44:03Z","updated_at":"2016-03-02T05:44:03Z","body":"Sorry to be late to the party here...\r\n\r\nThe big question: Do we rely on flow control (back pressure) in the Snabb app network or not?\r\n\r\nIf we do then this change makes sense (rate limiting via app composition) but if we don't then #782 makes sense instead (rate limiting as a feature of synthetic packet source apps).\r\n\r\nMy mental model is that we *don't* want to use back pressure in the app network (#656) and in that case the original PR #782 makes more sense. This PR seems like a good test case for whether there is agreement on that idea or not."}}