)]}'
{
  "commit": "8196f13d2ab7f3b09150c00328228f90391acb7c",
  "tree": "18c0dcfac4f07cc4cf532cd134a41cfd1d03bc55",
  "parents": [
    "de8d5dff1523bb9fe47d54f31c9e5322bd805b44"
  ],
  "author": {
    "name": "Josh Bailey",
    "email": "joshb@google.com",
    "time": "Wed Jul 20 20:47:07 2011 -0700"
  },
  "committer": {
    "name": "Josh Bailey",
    "email": "joshb@google.com",
    "time": "Wed Jul 20 20:47:07 2011 -0700"
  },
  "message": "bgpd: Modify the BGP to zebra route announcement to support multipath\nroutes. Use a growable buffer (bgp_nexthop_buf) to collect nexthops\nthat are included in the announcement. Use the BGP_INFO_MULTIPATH_CHG\nflag to trigger zebra announcement so zebra will be updated if the\nmultipath set changes. Display all multipath nexthops in\n\u0027debug bgp zebra\u0027 output.\n\n* bgpd/bgp_main.c\n  * bgp_exit(): Free bgp_nexthop_buf when exiting\n* bgpd/bgp_route.c\n  * bgp_process_rsclient(): Clear BGP_INFO_MULTIPATH_CHG after processing\n  * bgp_process_main(): Check BGP_INFO_MULTIPATH_CHG to trigger zebra\n    announcement and clear aftr processing\n* bgpd/bgp_zebra.c\n  * bgp_nexthop_buf: Growable buffer used to collect nexthops for zebra\n    announcement\n  * bgp_zebra_announce(): Grow bgp_nexthop_buf if needed. Include\n    multipath count in zebra announcement and add all nexthops to\n    bgp_nexthop_buf. Pass bgp_nexthop_buf data to zebra announcement.\n    Added nexthops to debug output.\n  * bgp_zebra_init(): Initialize bgp_nexthop_buf at startup\n* bgpd/bgp_zebra.h\n  * BGP_NEXTHOP_BUF_SIZE: Default initial bgp_nexthop_buf size has room\n    for 8 nexthops\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a460c6bbecd7d6814e27c91851df6967de354e3",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_main.c",
      "new_id": "e5fa79d60e9cafe9a7c2820869a14bc23ab55c2d",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_main.c"
    },
    {
      "type": "modify",
      "old_id": "ec17dc61296b29ab22087c7a8aec66c3aec4835a",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_route.c",
      "new_id": "f3e46221caf0b57a856f10de80bd48bdec731d0b",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_route.c"
    },
    {
      "type": "modify",
      "old_id": "f3baeee0e6dd19fbe6600083c11f06477db70940",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_zebra.c",
      "new_id": "6c21230a041a1a1a2d8d86943a647df089a21b51",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_zebra.c"
    },
    {
      "type": "modify",
      "old_id": "5172cb8a5a98e7701b579fa8e31951a8ebc2d190",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_zebra.h",
      "new_id": "461255e3935f7c4adbf4f50182075ed0f9488b17",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_zebra.h"
    }
  ]
}
