{"action":"created","comment":{"url":"https://api.github.com/repos/FRRouting/frr/pulls/comments/206549549","pull_request_review_id":141981142,"id":206549549,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNjU0OTU0OQ==","diff_hunk":"@@ -1751,7 +1760,8 @@ void vnc_direct_bgp_rh_del_route(struct bgp *bgp, afi_t afi,\n \tstruct vnc_export_info *eti;\n \n \tif (!afi) {\n-\t\tzlog_err(\"%s: can't get afi route node\", __func__);\n+\t\tzlog_ferr(LIB_ERR_DEVELOPMENT, \"%s: can't get afi route node\",","path":"bgpd/rfapi/vnc_export_bgp.c","position":111,"original_position":111,"commit_id":"586229e6808d39212fc678b3c9e50b2b0347388d","original_commit_id":"586229e6808d39212fc678b3c9e50b2b0347388d","user":{"login":"riw777","id":355715,"node_id":"MDQ6VXNlcjM1NTcxNQ==","avatar_url":"https://avatars0.githubusercontent.com/u/355715?v=4","gravatar_id":"","url":"https://api.github.com/users/riw777","html_url":"https://github.com/riw777","followers_url":"https://api.github.com/users/riw777/followers","following_url":"https://api.github.com/users/riw777/following{/other_user}","gists_url":"https://api.github.com/users/riw777/gists{/gist_id}","starred_url":"https://api.github.com/users/riw777/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/riw777/subscriptions","organizations_url":"https://api.github.com/users/riw777/orgs","repos_url":"https://api.github.com/users/riw777/repos","events_url":"https://api.github.com/users/riw777/events{/privacy}","received_events_url":"https://api.github.com/users/riw777/received_events","type":"User","site_admin":false},"body":"afi/AFI","created_at":"2018-07-31T14:26:05Z","updated_at":"2018-07-31T14:26:05Z","html_url":"https://github.com/FRRouting/frr/pull/2448#discussion_r206549549","pull_request_url":"https://api.github.com/repos/FRRouting/frr/pulls/2448","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/FRRouting/frr/pulls/comments/206549549"},"html":{"href":"https://github.com/FRRouting/frr/pull/2448#discussion_r206549549"},"pull_request":{"href":"https://api.github.com/repos/FRRouting/frr/pulls/2448"}}},"pull_request":{"url":"https://api.github.com/repos/FRRouting/frr/pulls/2448","id":194970550,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0OTcwNTUw","html_url":"https://github.com/FRRouting/frr/pull/2448","diff_url":"https://github.com/FRRouting/frr/pull/2448.diff","patch_url":"https://github.com/FRRouting/frr/pull/2448.patch","issue_url":"https://api.github.com/repos/FRRouting/frr/issues/2448","number":2448,"state":"open","locked":false,"title":"Error Reference Cards","user":{"login":"qlyoung","id":6827003,"node_id":"MDQ6VXNlcjY4MjcwMDM=","avatar_url":"https://avatars3.githubusercontent.com/u/6827003?v=4","gravatar_id":"","url":"https://api.github.com/users/qlyoung","html_url":"https://github.com/qlyoung","followers_url":"https://api.github.com/users/qlyoung/followers","following_url":"https://api.github.com/users/qlyoung/following{/other_user}","gists_url":"https://api.github.com/users/qlyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/qlyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qlyoung/subscriptions","organizations_url":"https://api.github.com/users/qlyoung/orgs","repos_url":"https://api.github.com/users/qlyoung/repos","events_url":"https://api.github.com/users/qlyoung/events{/privacy}","received_events_url":"https://api.github.com/users/qlyoung/received_events","type":"User","site_admin":false},"body":"This patch set begins the implementation of a new error reporting system within FRR. The goal is to tag each individual error log message with a reference code that can be subsequently used to get additional information on the error and how to resolve it. This adds on to the existing runtime error reporting code in `lib/ferr.[ch]` that is already lightly used in the codebase.\r\n\r\n* Add a system for storing reference information on coded errors\r\n* Add `show error (1-4294967296)` for showing additional information on errors\r\n* Add a convenience macro to the `zlog_*` set in `log.h` that accepts an error code and formats it properly in log messages\r\n* Convert a large chunk of existing errors over to this system\r\n\r\nOne additional planned feature is to allow dumping all existing error reference info to JSON, which can be subsequently extracted and inserted into user documentation.","created_at":"2018-06-14T17:52:27Z","updated_at":"2018-07-31T14:26:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e0cd16ff656c50821597a8d7101e1439dc986d57","assignee":null,"assignees":[],"requested_reviewers":[{"login":"eqvinox","id":1715611,"node_id":"MDQ6VXNlcjE3MTU2MTE=","avatar_url":"https://avatars2.githubusercontent.com/u/1715611?v=4","gravatar_id":"","url":"https://api.github.com/users/eqvinox","html_url":"https://github.com/eqvinox","followers_url":"https://api.github.com/users/eqvinox/followers","following_url":"https://api.github.com/users/eqvinox/following{/other_user}","gists_url":"https://api.github.com/users/eqvinox/gists{/gist_id}","starred_url":"https://api.github.com/users/eqvinox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eqvinox/subscriptions","organizations_url":"https://api.github.com/users/eqvinox/orgs","repos_url":"https://api.github.com/users/eqvinox/repos","events_url":"https://api.github.com/users/eqvinox/events{/privacy}","received_events_url":"https://api.github.com/users/eqvinox/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/FRRouting/frr/pulls/2448/commits","review_comments_url":"https://api.github.com/repos/FRRouting/frr/pulls/2448/comments","review_comment_url":"https://api.github.com/repos/FRRouting/frr/pulls/comments{/number}","comments_url":"https://api.github.com/repos/FRRouting/frr/issues/2448/comments","statuses_url":"https://api.github.com/repos/FRRouting/frr/statuses/586229e6808d39212fc678b3c9e50b2b0347388d","head":{"label":"qlyoung:error-reference-cards","ref":"error-reference-cards","sha":"586229e6808d39212fc678b3c9e50b2b0347388d","user":{"login":"qlyoung","id":6827003,"node_id":"MDQ6VXNlcjY4MjcwMDM=","avatar_url":"https://avatars3.githubusercontent.com/u/6827003?v=4","gravatar_id":"","url":"https://api.github.com/users/qlyoung","html_url":"https://github.com/qlyoung","followers_url":"https://api.github.com/users/qlyoung/followers","following_url":"https://api.github.com/users/qlyoung/following{/other_user}","gists_url":"https://api.github.com/users/qlyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/qlyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qlyoung/subscriptions","organizations_url":"https://api.github.com/users/qlyoung/orgs","repos_url":"https://api.github.com/users/qlyoung/repos","events_url":"https://api.github.com/users/qlyoung/events{/privacy}","received_events_url":"https://api.github.com/users/qlyoung/received_events","type":"User","site_admin":false},"repo":{"id":76620415,"node_id":"MDEwOlJlcG9zaXRvcnk3NjYyMDQxNQ==","name":"frr","full_name":"qlyoung/frr","owner":{"login":"qlyoung","id":6827003,"node_id":"MDQ6VXNlcjY4MjcwMDM=","avatar_url":"https://avatars3.githubusercontent.com/u/6827003?v=4","gravatar_id":"","url":"https://api.github.com/users/qlyoung","html_url":"https://github.com/qlyoung","followers_url":"https://api.github.com/users/qlyoung/followers","following_url":"https://api.github.com/users/qlyoung/following{/other_user}","gists_url":"https://api.github.com/users/qlyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/qlyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qlyoung/subscriptions","organizations_url":"https://api.github.com/users/qlyoung/orgs","repos_url":"https://api.github.com/users/qlyoung/repos","events_url":"https://api.github.com/users/qlyoung/events{/privacy}","received_events_url":"https://api.github.com/users/qlyoung/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/qlyoung/frr","description":null,"fork":true,"url":"https://api.github.com/repos/qlyoung/frr","forks_url":"https://api.github.com/repos/qlyoung/frr/forks","keys_url":"https://api.github.com/repos/qlyoung/frr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/qlyoung/frr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/qlyoung/frr/teams","hooks_url":"https://api.github.com/repos/qlyoung/frr/hooks","issue_events_url":"https://api.github.com/repos/qlyoung/frr/issues/events{/number}","events_url":"https://api.github.com/repos/qlyoung/frr/events","assignees_url":"https://api.github.com/repos/qlyoung/frr/assignees{/user}","branches_url":"https://api.github.com/repos/qlyoung/frr/branches{/branch}","tags_url":"https://api.github.com/repos/qlyoung/frr/tags","blobs_url":"https://api.github.com/repos/qlyoung/frr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/qlyoung/frr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/qlyoung/frr/git/refs{/sha}","trees_url":"https://api.github.com/repos/qlyoung/frr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/qlyoung/frr/statuses/{sha}","languages_url":"https://api.github.com/repos/qlyoung/frr/languages","stargazers_url":"https://api.github.com/repos/qlyoung/frr/stargazers","contributors_url":"https://api.github.com/repos/qlyoung/frr/contributors","subscribers_url":"https://api.github.com/repos/qlyoung/frr/subscribers","subscription_url":"https://api.github.com/repos/qlyoung/frr/subscription","commits_url":"https://api.github.com/repos/qlyoung/frr/commits{/sha}","git_commits_url":"https://api.github.com/repos/qlyoung/frr/git/commits{/sha}","comments_url":"https://api.github.com/repos/qlyoung/frr/comments{/number}","issue_comment_url":"https://api.github.com/repos/qlyoung/frr/issues/comments{/number}","contents_url":"https://api.github.com/repos/qlyoung/frr/contents/{+path}","compare_url":"https://api.github.com/repos/qlyoung/frr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/qlyoung/frr/merges","archive_url":"https://api.github.com/repos/qlyoung/frr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/qlyoung/frr/downloads","issues_url":"https://api.github.com/repos/qlyoung/frr/issues{/number}","pulls_url":"https://api.github.com/repos/qlyoung/frr/pulls{/number}","milestones_url":"https://api.github.com/repos/qlyoung/frr/milestones{/number}","notifications_url":"https://api.github.com/repos/qlyoung/frr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/qlyoung/frr/labels{/name}","releases_url":"https://api.github.com/repos/qlyoung/frr/releases{/id}","deployments_url":"https://api.github.com/repos/qlyoung/frr/deployments","created_at":"2016-12-16T04:12:57Z","updated_at":"2018-07-30T18:26:37Z","pushed_at":"2018-07-30T23:06:37Z","git_url":"git://github.com/qlyoung/frr.git","ssh_url":"git@github.com:qlyoung/frr.git","clone_url":"https://github.com/qlyoung/frr.git","svn_url":"https://github.com/qlyoung/frr","homepage":null,"size":46369,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"FRRouting:master","ref":"master","sha":"4b22e6bc053fe6349960b279c5bfa47bbba04b56","user":{"login":"FRRouting","id":24592672,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0NTkyNjcy","avatar_url":"https://avatars1.githubusercontent.com/u/24592672?v=4","gravatar_id":"","url":"https://api.github.com/users/FRRouting","html_url":"https://github.com/FRRouting","followers_url":"https://api.github.com/users/FRRouting/followers","following_url":"https://api.github.com/users/FRRouting/following{/other_user}","gists_url":"https://api.github.com/users/FRRouting/gists{/gist_id}","starred_url":"https://api.github.com/users/FRRouting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FRRouting/subscriptions","organizations_url":"https://api.github.com/users/FRRouting/orgs","repos_url":"https://api.github.com/users/FRRouting/repos","events_url":"https://api.github.com/users/FRRouting/events{/privacy}","received_events_url":"https://api.github.com/users/FRRouting/received_events","type":"Organization","site_admin":false},"repo":{"id":76599439,"node_id":"MDEwOlJlcG9zaXRvcnk3NjU5OTQzOQ==","name":"frr","full_name":"FRRouting/frr","owner":{"login":"FRRouting","id":24592672,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0NTkyNjcy","avatar_url":"https://avatars1.githubusercontent.com/u/24592672?v=4","gravatar_id":"","url":"https://api.github.com/users/FRRouting","html_url":"https://github.com/FRRouting","followers_url":"https://api.github.com/users/FRRouting/followers","following_url":"https://api.github.com/users/FRRouting/following{/other_user}","gists_url":"https://api.github.com/users/FRRouting/gists{/gist_id}","starred_url":"https://api.github.com/users/FRRouting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FRRouting/subscriptions","organizations_url":"https://api.github.com/users/FRRouting/orgs","repos_url":"https://api.github.com/users/FRRouting/repos","events_url":"https://api.github.com/users/FRRouting/events{/privacy}","received_events_url":"https://api.github.com/users/FRRouting/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/FRRouting/frr","description":"The FRRouting Protocol Suite","fork":false,"url":"https://api.github.com/repos/FRRouting/frr","forks_url":"https://api.github.com/repos/FRRouting/frr/forks","keys_url":"https://api.github.com/repos/FRRouting/frr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/FRRouting/frr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/FRRouting/frr/teams","hooks_url":"https://api.github.com/repos/FRRouting/frr/hooks","issue_events_url":"https://api.github.com/repos/FRRouting/frr/issues/events{/number}","events_url":"https://api.github.com/repos/FRRouting/frr/events","assignees_url":"https://api.github.com/repos/FRRouting/frr/assignees{/user}","branches_url":"https://api.github.com/repos/FRRouting/frr/branches{/branch}","tags_url":"https://api.github.com/repos/FRRouting/frr/tags","blobs_url":"https://api.github.com/repos/FRRouting/frr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/FRRouting/frr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/FRRouting/frr/git/refs{/sha}","trees_url":"https://api.github.com/repos/FRRouting/frr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/FRRouting/frr/statuses/{sha}","languages_url":"https://api.github.com/repos/FRRouting/frr/languages","stargazers_url":"https://api.github.com/repos/FRRouting/frr/stargazers","contributors_url":"https://api.github.com/repos/FRRouting/frr/contributors","subscribers_url":"https://api.github.com/repos/FRRouting/frr/subscribers","subscription_url":"https://api.github.com/repos/FRRouting/frr/subscription","commits_url":"https://api.github.com/repos/FRRouting/frr/commits{/sha}","git_commits_url":"https://api.github.com/repos/FRRouting/frr/git/commits{/sha}","comments_url":"https://api.github.com/repos/FRRouting/frr/comments{/number}","issue_comment_url":"https://api.github.com/repos/FRRouting/frr/issues/comments{/number}","contents_url":"https://api.github.com/repos/FRRouting/frr/contents/{+path}","compare_url":"https://api.github.com/repos/FRRouting/frr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/FRRouting/frr/merges","archive_url":"https://api.github.com/repos/FRRouting/frr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/FRRouting/frr/downloads","issues_url":"https://api.github.com/repos/FRRouting/frr/issues{/number}","pulls_url":"https://api.github.com/repos/FRRouting/frr/pulls{/number}","milestones_url":"https://api.github.com/repos/FRRouting/frr/milestones{/number}","notifications_url":"https://api.github.com/repos/FRRouting/frr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/FRRouting/frr/labels{/name}","releases_url":"https://api.github.com/repos/FRRouting/frr/releases{/id}","deployments_url":"https://api.github.com/repos/FRRouting/frr/deployments","created_at":"2016-12-15T21:56:38Z","updated_at":"2018-07-31T14:24:36Z","pushed_at":"2018-07-31T10:36:30Z","git_url":"git://github.com/FRRouting/frr.git","ssh_url":"git@github.com:FRRouting/frr.git","clone_url":"https://github.com/FRRouting/frr.git","svn_url":"https://github.com/FRRouting/frr","homepage":"https://frrouting.org/","size":42826,"stargazers_count":584,"watchers_count":584,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":233,"mirror_url":null,"archived":false,"open_issues_count":258,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":233,"open_issues":258,"watchers":584,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/FRRouting/frr/pulls/2448"},"html":{"href":"https://github.com/FRRouting/frr/pull/2448"},"issue":{"href":"https://api.github.com/repos/FRRouting/frr/issues/2448"},"comments":{"href":"https://api.github.com/repos/FRRouting/frr/issues/2448/comments"},"review_comments":{"href":"https://api.github.com/repos/FRRouting/frr/pulls/2448/comments"},"review_comment":{"href":"https://api.github.com/repos/FRRouting/frr/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/FRRouting/frr/pulls/2448/commits"},"statuses":{"href":"https://api.github.com/repos/FRRouting/frr/statuses/586229e6808d39212fc678b3c9e50b2b0347388d"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"riw777"}}