)]}'
{
  "commit": "cb37de4c6863c772b654a851c9fe3eeb1f677692",
  "tree": "602898c0435b1c4ad57afaa15b72d9c1b029d15b",
  "parents": [
    "2153090340f059eb787d72ba973ea55e150e9dec"
  ],
  "author": {
    "name": "Vipin Kumar",
    "email": "vipin@cumulusnetworks.com",
    "time": "Tue May 19 18:03:40 2015 -0700"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul.jakma@hpe.com",
    "time": "Tue Oct 04 13:07:51 2016 +0100"
  },
  "message": "ospf6d: Fix loss of hello\u0027s on interface\n\nSYMPTOM:\n\nWith quagga running on Linux, \u0027ifdown \u003cif-name\u003e\u0027 followed by \u0027ifup \u003cifname\u003e\ncan cause OSPFv3 to not receive Hello packets on the interface.\n\nISSUE:\n\nOperating System\u0027s interface IPv6 readiness may not be guaranteed at the\ntime of interface-up event. Thats because the ipv6 components in an OS may\nalso be listening to the same interface-up event that (in this case) is\nrelayed to OSPFv3.\n\nIn this failure case, setsockopt with option IPV6_JOIN_GROUP on the interface\nreturned EINVAL.\n\nError logs -\nOSPF6: Zebra Interface state change: swp1 index 3 flags 11043 metric 1 mtu 1500\nOSPF6: Interface Event swp1: [InterfaceUp]\nOSPF6: Network: setsockopt (20) on ifindex 3 failed: Invalid argument\n\nFIX:\n\nTo take care of this possible race condition, any address-family related\nsetting should be retried. Given it\u0027s a rare condition and window of this\nrace should be short, the patch adds a limited retry mechanism for the\nIPV6 membership setting on the socket.\n\nSigned-off-by: Vipin Kumar \u003cvipin@cumulusnetworks.com\u003e\nReviewed-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\n             Satish Ashok \u003csashok@cumulusnetworks.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7d54dd594b59bafe6ec7d35ce8296dafc0ece99e",
      "old_mode": 33188,
      "old_path": "ospf6d/ospf6_interface.c",
      "new_id": "3d6ebcda7398394a61d5a077de2dc2ed5f945d72",
      "new_mode": 33188,
      "new_path": "ospf6d/ospf6_interface.c"
    },
    {
      "type": "modify",
      "old_id": "220a475ab019b00f627ee54f8264811c775806ae",
      "old_mode": 33188,
      "old_path": "ospf6d/ospf6_interface.h",
      "new_id": "dde589b8faaceaa219590717d94c5efe97e5783a",
      "new_mode": 33188,
      "new_path": "ospf6d/ospf6_interface.h"
    },
    {
      "type": "modify",
      "old_id": "a77375029e7f754135bd2e7a95a6eb06d1a0979c",
      "old_mode": 33188,
      "old_path": "ospf6d/ospf6_network.c",
      "new_id": "53d6c3594255df22b38b12945797af9809f8e95b",
      "new_mode": 33188,
      "new_path": "ospf6d/ospf6_network.c"
    },
    {
      "type": "modify",
      "old_id": "f4b74faa714439959493713e3dc918dacf894daa",
      "old_mode": 33188,
      "old_path": "ospf6d/ospf6_network.h",
      "new_id": "4fa2839519f42e0473c774db34b5ed00ee7522e3",
      "new_mode": 33188,
      "new_path": "ospf6d/ospf6_network.h"
    }
  ]
}
