)]}'
{
  "commit": "02d942c9d4afabf04bd781f0e1e5e8aa36945df2",
  "tree": "1874fc70a20b6b0407e808c926c362aa03415662",
  "parents": [
    "c363d3861b5384a31465a72ddc3b0f6ff007a95a"
  ],
  "author": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Sun Jan 24 23:36:20 2010 +0000"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Wed Dec 08 17:13:19 2010 +0000"
  },
  "message": "ospfd: Fix maxage/flush to not try flood twice, remember maxages for longer\n\n2006-05-30 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Fix confusion around MaxAge-ing and problem with\n\t  high-latency networks. Analysis and suggested fixes by\n\t  Phillip Spagnolo, in [quagga-dev 4132], on which this commit\n\t  expands slightly.\n\t* ospf_flood.{c,h}: (ospf_lsa_flush) new function.\n\t  Scope-general form of existing flush functions, essentially\n\t  the dormant ospf_maxage_flood() but without the ambiguity of\n\t  whether it is responsible for flooding.\n\t* ospf_lsa.c: (ospf_lsa_maxage) Role minimised to simply setup\n\t  LSA on the Maxage list and schedule removal - no more.\n\t  ospf_lsa_flush* being the primary way to kick-off flushes\n\t  of LSAs.\n\t  Don\u0027t hardcode the remover-timer value, which was too\n\t  short for very high-latency networks.\n\t  (ospf_maxage_lsa_remover) Just do what needs to be done to\n\t  remove maxage LSAs from the maxage list, remove the call\n\t  to ospf_flood_through().\n\t  Don\u0027t hardcode remove-timer value.\n\t  (ospf_lsa_{install,flush_schedule}) ospf_lsa_flush is the correct\n\t  entrypoint to flushing maxaged LSAs.\n\t  (lsa_header_set) Use a define for the initial age, useful for\n\t  testing.\n\t* ospf_opaque.c: (ospf_opaque_lsa_refresh) ditto.\n\t  (ospf_opaque_lsa_flush_schedule) ditto.\n\t* ospfd.h: ({struct ospf,ospf_new}) Add maxage_delay parameter,\n\t  interval to wait before running the maxage_remover. Supply a\n\t  suitable default.\n\t  Add a define for OSPF_LSA_INITIAL_AGE, see lsa_header_set().\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "06d757403541c44f38306104c905d53b3f709870",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_flood.c",
      "new_id": "77f2e161127a85cc77f42202c14cf452c437f0d0",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_flood.c"
    },
    {
      "type": "modify",
      "old_id": "5382e8fe240bdeae0c6bff1529f745931786017b",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_flood.h",
      "new_id": "1ab11b88b147000ebbfb326712f1fd309a983fa4",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_flood.h"
    },
    {
      "type": "modify",
      "old_id": "bdc40151a8ef97e705e9a564c6921800d761f26c",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_lsa.c",
      "new_id": "6f5ee3db354e6e8870fe345556fd0e82065c493a",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_lsa.c"
    },
    {
      "type": "modify",
      "old_id": "0b6ac4cb7b8f88d782791f420c5a98cb3c48c8a5",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_opaque.c",
      "new_id": "6e90011ebc4be73a092d7eae98260816767121cb",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_opaque.c"
    },
    {
      "type": "modify",
      "old_id": "7db81cea7089d9a2d5b54a608a417a3e6e901d93",
      "old_mode": 33188,
      "old_path": "ospfd/ospfd.c",
      "new_id": "0188ffda8922b4ee96fa05d79c09827334e563f2",
      "new_mode": 33188,
      "new_path": "ospfd/ospfd.c"
    },
    {
      "type": "modify",
      "old_id": "b7dc6762278d4d42bfd37b8f00cbcbe0200bea1f",
      "old_mode": 33188,
      "old_path": "ospfd/ospfd.h",
      "new_id": "0e57c4524e0a72c604e9733728d0c42bcf48ff23",
      "new_mode": 33188,
      "new_path": "ospfd/ospfd.h"
    }
  ]
}
