)]}'
{
  "commit": "8fc9e007ee752a982fe47311702d7ff3b9c5b5cd",
  "tree": "8dd5ef95e303d34f1045afe538f44a07dab017d3",
  "parents": [
    "d8a4e42b7d19a87eacc00c825e913907a58f39ee"
  ],
  "author": {
    "name": "JR Rivers",
    "email": "jrrivers@cumulusnetworks.com",
    "time": "Mon Sep 24 17:26:46 2012 +0000"
  },
  "committer": {
    "name": "David Lamparter",
    "email": "equinox@opensourcerouting.org",
    "time": "Thu Oct 25 10:15:58 2012 -0700"
  },
  "message": "ospfd: blackhole route removal for area range\n\nISSUE\n\nWhen an area range is created in which there the sub-area has routes that are\nsmaller than the range, an ABR creates a blackhole route to cover the range.\nWhen the range is removed, the blackhole route is not removed.\n\n--A----B----C---\n\nB is an ABR with A in area 1 and C in area 0.  If A advertises `10.2.0.0/30` and\n`10.2.0.4/30` and B is configured with `area 0.0.0.1 range 10.2.0.0/29` a\nblackhole is created on B (`blackhole 10.2.0.0/29 proto zebra`).  When the\narea/range is removed via the command line, the blackhole remains in existence\neven though the \"range\" route is removed from area 0 and the individual routes\nare propagated.\n\nPATCH\n\nThe reason for this behavior is that, prior to this patch, the range is deleted\nfrom the area\u0027s list, so when ospf_abr_manage_discard_routes() gets called,\nthere is nothing to clean up.  The patch removes the discard route as part of\nthe processing of the command line (ospf_area_range_unset()).\n\nSigned-off-by: JR Rivers \u003cjrrivers@cumulusnetworks.com\u003e\nSigned-off-by: Scott Feldman \u003csfeldma@cumulusnetworks.com\u003e\nReviewed-by: Shrijeet Mukherjee \u003cshm@cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b7cc20dd87bceb2aa807291f0a8ce0e2be5b76b7",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_abr.c",
      "new_id": "ef1048b23b61513c02d528c2e2bb1e195a062bd7",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_abr.c"
    },
    {
      "type": "modify",
      "old_id": "a5d6d18c9385361d957643421bb8151f44532865",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_route.c",
      "new_id": "c3acba348d01e1f3e9656cb8e75fbcf43ecca981",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_route.c"
    },
    {
      "type": "modify",
      "old_id": "5742b462c33710eb3dd3544361b08bb3f1231a82",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_route.h",
      "new_id": "6c202b0ccd3bdbba3bf00e3a2d64c4fe3dce7361",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_route.h"
    }
  ]
}
