{"action":"created","issue":{"url":"https://api.github.com/repos/FRRouting/frr/issues/1853","repository_url":"https://api.github.com/repos/FRRouting/frr","labels_url":"https://api.github.com/repos/FRRouting/frr/issues/1853/labels{/name}","comments_url":"https://api.github.com/repos/FRRouting/frr/issues/1853/comments","events_url":"https://api.github.com/repos/FRRouting/frr/issues/1853/events","html_url":"https://github.com/FRRouting/frr/pull/1853","id":303538411,"number":1853,"title":"bfdd: implement BFD support","user":{"login":"rzalamena","id":205063,"avatar_url":"https://avatars3.githubusercontent.com/u/205063?v=4","gravatar_id":"","url":"https://api.github.com/users/rzalamena","html_url":"https://github.com/rzalamena","followers_url":"https://api.github.com/users/rzalamena/followers","following_url":"https://api.github.com/users/rzalamena/following{/other_user}","gists_url":"https://api.github.com/users/rzalamena/gists{/gist_id}","starred_url":"https://api.github.com/users/rzalamena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rzalamena/subscriptions","organizations_url":"https://api.github.com/users/rzalamena/orgs","repos_url":"https://api.github.com/users/rzalamena/repos","events_url":"https://api.github.com/users/rzalamena/events{/privacy}","received_events_url":"https://api.github.com/users/rzalamena/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":31,"created_at":"2018-03-08T16:15:55Z","updated_at":"2018-05-02T00:49:24Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/FRRouting/frr/pulls/1853","html_url":"https://github.com/FRRouting/frr/pull/1853","diff_url":"https://github.com/FRRouting/frr/pull/1853.diff","patch_url":"https://github.com/FRRouting/frr/pull/1853.patch"},"body":"This PR introduces a new daemon to FRR which adds support for configuring BFD monitoring and integration with routing daemons. The imported BFD daemon is just an adapter that will talk with an external daemon (which I'll refer to `ebfdd`[^1]), but it will act as if the external daemon was in-place. This approach has its advantages and disadvantages, but the main reason to keep the real implementation code outside is because of the license (eclipse 1.0).\r\n\r\nThe external BFD daemon is actually a port of [Cumulus BFD implementation](https://github.com/CumulusNetworks/ptm/blob/master/src/ptm_bfd.c) to a stand-alone daemon with some improvements:\r\n* Uses JSON to configure the daemon (both configuration file and control socket);\r\n* Has an [stand-alone controller](https://github.com/rzalamena/bfdd/blob/master/bfdctl.c#L58) which might be used to debug/control the daemon;\r\n* Allow peers to `shutdown`;\r\n* Selective notifications: you can extend your application to ask notifications about a specific peer, instead of receiving all notifications (or use `bfdctl` somehow);\r\n* Uses [libevent](http://libevent.org/) to handle timers and socket events;\r\n\r\nFor people willing to test the code I have written a small manual that can be found [here](https://github.com/opensourcerouting/frr/blob/bfdd-final/doc/bfdd.rst). Since setting up a topology with multiple machines might be expensive and time consuming, I have also written a [topology test in topotest](https://github.com/opensourcerouting/topotests/commits/bfdd-topo1) that can be easily expanded[^2].\r\n\r\nI don't expect this code to get merged soon as it requires testing, but I want to bring attention to it so people can already start using / testing.\r\n\r\nFeel free to report problems and ask questions in the FRR Slack channel `#bfdd`. You can find instructions on how to join the channel [here](https://github.com/FRRouting/frr/wiki).\r\n\r\n---\r\n\r\n[^1]: The external daemon source code can be found [here](https://github.com/rzalamena/bfdd).\r\n\r\n[^2]: Using the topology test:\r\n\r\nIn your VM/machine that runs topotests, you must first install the `ebfdd` binaries. The topotest will look for `ebfdd` binaries here: `/usr/local/sbin/bfdd`.\r\n\r\nYou also have to build FRR with `bfdd` enabled:\r\n\r\n```\r\ncd frr\r\n./bootstrap\r\n./configure --enable-bfdd\r\n```"},"comment":{"url":"https://api.github.com/repos/FRRouting/frr/issues/comments/385832718","html_url":"https://github.com/FRRouting/frr/pull/1853#issuecomment-385832718","issue_url":"https://api.github.com/repos/FRRouting/frr/issues/1853","id":385832718,"user":{"login":"LabN-CI","id":31184905,"avatar_url":"https://avatars3.githubusercontent.com/u/31184905?v=4","gravatar_id":"","url":"https://api.github.com/users/LabN-CI","html_url":"https://github.com/LabN-CI","followers_url":"https://api.github.com/users/LabN-CI/followers","following_url":"https://api.github.com/users/LabN-CI/following{/other_user}","gists_url":"https://api.github.com/users/LabN-CI/gists{/gist_id}","starred_url":"https://api.github.com/users/LabN-CI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LabN-CI/subscriptions","organizations_url":"https://api.github.com/users/LabN-CI/orgs","repos_url":"https://api.github.com/users/LabN-CI/repos","events_url":"https://api.github.com/users/LabN-CI/events{/privacy}","received_events_url":"https://api.github.com/users/LabN-CI/received_events","type":"User","site_admin":false},"created_at":"2018-05-02T00:49:24Z","updated_at":"2018-05-02T00:49:24Z","author_association":"NONE","body":"## &#x1F49A; Basic BGPD CI results: SUCCESS, 0 tests failed\n\n<details>\n<summary>Results table</summary>\n\n_|_\n-|-\nResult               | SUCCESS git merge/1853 88589d91\nDate                 | 05/01/2018\nStart                | 20:25:44\nFinish               | 20:48:43\nRun-Time             | 22:59\nTotal                | 1813\nPass                 | 1813\nFail                 | 0\nValgrind-Errors      | 0\nValgrind-Loss        | 0\nDetails              | vncregress-2018-05-01-20:25:44.txt\nLog                  | autoscript-2018-05-01-20:26:33.log.bz2\n\nFor details, please contact louberger\n\n</details>"}}
{"actor":{"display_login":"LabN-CI"}}