)]}'
{
  "commit": "05ba6de0e6ea56a3fdf1cfe128ca1ddb6bc6e0a6",
  "tree": "ce33381f0d40fdafdc2af590d9bcd29b40f1cc94",
  "parents": [
    "1dba09f98e7339765b1061ccc4d729d77d95d537"
  ],
  "author": {
    "name": "Lorenzo Colitti",
    "email": "lorenzo@google.com",
    "time": "Fri Jan 12 17:57:58 2024 +0900"
  },
  "committer": {
    "name": "Lorenzo Colitti",
    "email": "lorenzo@google.com",
    "time": "Mon Jan 15 02:19:29 2024 +0900"
  },
  "message": "Do not treat router MAC changes as failures, except after roam.\n\nThe original intent of the code that detects MAC address changes\nwas to ensure that when mcast_resolicit is enabled, a NUD\nfailure would be reported when roaming to a network with a\ndifferent default gateway.\n\nIf the code did not look for MAC address changes, then falling\nback to broadcast ARP (or multicast ND) after roam would never\ndetect if the device had moved to a different network: the reply\nto the broadcast/multicast resolicit would just update the ND\ncache entry and no NUD failure would occur.\n\nUnfortunately the code does not only run after roam, but runs on\nall state changes to NUD_REACHABLE. This causes it to disconnect\nany time the default gateway changes MAC address.\n\nFix: 315076572\nTest: new test coverage\nChange-Id: I59564c2e93875ce742f390093fd082b41ec1340d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e252a68bf595c4d5075ce8801e0c4f0f981291b2",
      "old_mode": 33188,
      "old_path": "src/android/net/ip/IpReachabilityMonitor.java",
      "new_id": "7ca0895361b7b220f46d64ffd9b0112126f5b36b",
      "new_mode": 33188,
      "new_path": "src/android/net/ip/IpReachabilityMonitor.java"
    },
    {
      "type": "modify",
      "old_id": "da0cf4e718b87c42f344adcc661dc9236f7cdbc7",
      "old_mode": 33261,
      "old_path": "src/com/android/networkstack/util/NetworkStackUtils.java",
      "new_id": "88400031b6778814d40ba0dc354ba6da3be1f6bc",
      "new_mode": 33261,
      "new_path": "src/com/android/networkstack/util/NetworkStackUtils.java"
    },
    {
      "type": "modify",
      "old_id": "d23e328d3ff9697063c142e10dfb96962b6e9c07",
      "old_mode": 33188,
      "old_path": "tests/integration/common/android/net/ip/IpClientIntegrationTestCommon.java",
      "new_id": "5646d866388b1d786ca559a9721d28d80cf27e46",
      "new_mode": 33188,
      "new_path": "tests/integration/common/android/net/ip/IpClientIntegrationTestCommon.java"
    },
    {
      "type": "modify",
      "old_id": "2f91f4fda4e6cb71e3c7c2a24d1e408b03179b7a",
      "old_mode": 33188,
      "old_path": "tests/integration/signature/android/net/ip/IpClientSignatureTest.kt",
      "new_id": "e725ea95d7be641d6c7a978c8d5b5540996435b1",
      "new_mode": 33188,
      "new_path": "tests/integration/signature/android/net/ip/IpClientSignatureTest.kt"
    },
    {
      "type": "modify",
      "old_id": "4d57df5e838d5c0278cb6ccab2b6ba2355638a72",
      "old_mode": 33188,
      "old_path": "tests/unit/src/android/net/ip/IpReachabilityMonitorTest.kt",
      "new_id": "9bd6d6e9c5398e8e662cc7ef37fad0b18cd54b47",
      "new_mode": 33188,
      "new_path": "tests/unit/src/android/net/ip/IpReachabilityMonitorTest.kt"
    }
  ]
}
