)]}'
{
  "commit": "49d7af115177d05bd66d3115cbacd56a7591ec5e",
  "tree": "7082972f63b091f0e8bcbbf9a285fe10e5136a8d",
  "parents": [
    "4b4bda9bb1913579bd54667f62fafe58e2746478"
  ],
  "author": {
    "name": "Lu Feng",
    "email": "lu.feng@6wind.com",
    "time": "Fri Feb 21 08:11:15 2014 +0000"
  },
  "committer": {
    "name": "David Lamparter",
    "email": "equinox@opensourcerouting.org",
    "time": "Wed May 14 16:46:28 2014 +0200"
  },
  "message": "ospfd: check the LS-Ack\u0027s recentness instead of only comparing the #seq\n\nISSUE:\n\nRTA(DR)-----(BackupDR)RTB\n\nRTA advertises a new LSA to RTB, and then flushes the LSA (with setting\nthe age of the LSA to MaxAge) within 1 second. Then the LSA is deleted\nfrom RTA, while it still exists on RTB with non-MaxAge and can not be\nflushed any more.\n\nFIX:\n\nThe reason can be explained in below:\n\na) RTA -- new LSA, #seq\u003d1 --\u003e RTB (RTB will send the delayed Ack in 1s)\nb) RTA -- MaxAge LSA, #seq\u003d1 --\u003e RTB (RTB discards it for the MIN_LS_ARRIVAL)\nc) RTA \u003c-- Ack for the new LSA, #seq\u003d1 -- RTB (RTA accepts it)\n\nIn the step c), ospf_ls_ack() compares the #seq of the entry in the LS-Ack\nwith that of local MaxAge LSA. The #seq of the two entries are same. So\nthe Ack is accepted and the LSA is removed from the retransmit-list (while\nit should not).\n\nIn RFC2328, section  13.7.  Receiving link state acknowledgments:\n\no   If the acknowledgment is for the same instance that is  \u003c\u003d\u003d\n    contained on the list, remove the item from the list and\n    examine the next acknowledgment.  Otherwise:\n\nwhere \"same instance\" does not mean the same #seq. We must call\nospf_lsa_more_recent() to check whether the two instances are same.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ab68bf0b7c3825598348a5221d1c400409523663",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_packet.c",
      "new_id": "cce56fc625be09ae9dedab5a261226112fd9ebdf",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_packet.c"
    }
  ]
}
