)]}'
{
  "commit": "10f9bf3f2021f874e574e4ebae9413bee982ed2b",
  "tree": "5102a98c91d7d60380c07c08d0aaa32aa19cdbdf",
  "parents": [
    "f669f7d25f0f491d5e487897227ff434aef20406"
  ],
  "author": {
    "name": "Jorge Boncompte [DTI2]",
    "email": "jorge@dti2.net",
    "time": "Mon May 07 16:52:52 2012 +0000"
  },
  "committer": {
    "name": "David Lamparter",
    "email": "equinox@opensourcerouting.org",
    "time": "Tue May 22 20:25:07 2012 +0200"
  },
  "message": "bgpd: optimize bgp_nexthop_self()\n\n  This function scores 2nd, profiling a full internet table load. It\u0027s called\nfor every prefix received.\n  Instead of looping in the interface lists comparing addresses use a hash\nto mantain them.\n\n* bgpd.c: Init the own address hash.\n* bgp_nexthop.c: Introduce methods to maintain an own address hash.\n  (bgp_connected_add) add addresses to the hash.\n  (bgp_connected_delete) delete addresses from the hash.\n  (bgp_nexthop_self) lookup addresses in the hash. Removed the unused afi_t\n  parameter.\n* bgp_route.c: (bgp_update_main) Micro-optimization, rearranged condition to\n  not lookup the hash for bogus nexthops (0.0.0.0 or a class D/E address)\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fdf251b2a872bcd79feff25c9295f1867a53d8d6",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_nexthop.c",
      "new_id": "723057b68cf2408552c938c9e3ebdc18bd1e422a",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_nexthop.c"
    },
    {
      "type": "modify",
      "old_id": "874f3bba0d96166ad097aaefca2a1588f1f0e52f",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_nexthop.h",
      "new_id": "6e5350ead852bc73f3adcac9b669dab537a43ece",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_nexthop.h"
    },
    {
      "type": "modify",
      "old_id": "589c0738a1a75e7bd43a58a6c3c5fb4dc12241ac",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_route.c",
      "new_id": "12cb693aa5bb81ed67577ee59cb78d04bb6ecaa8",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_route.c"
    },
    {
      "type": "modify",
      "old_id": "ab27783fa84439dd6f41e3cb3bd46c0796de18b7",
      "old_mode": 33188,
      "old_path": "bgpd/bgpd.c",
      "new_id": "30fb091f4e4156a18fb8ea0610c24fa5ffef1e79",
      "new_mode": 33188,
      "new_path": "bgpd/bgpd.c"
    },
    {
      "type": "modify",
      "old_id": "acbd16b96ce13f083cead8a56819d805ceb050f4",
      "old_mode": 33188,
      "old_path": "lib/memtypes.c",
      "new_id": "1723490f63c8d0f2608e7a09a658c47ba2b787bd",
      "new_mode": 33188,
      "new_path": "lib/memtypes.c"
    }
  ]
}
