)]}'
{
  "log": [
    {
      "commit": "08eab46ef956c311c3f830e6add1fb202694a084",
      "tree": "e5d3519e37c913855769245f27963742c6e04fd8",
      "parents": [
        "82b86829227893ebe63acc0dbb468f090e27950b",
        "bfcbe96fd0910cb22af6d2baaf43607b865a5fc8"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Apr 09 02:47:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 09 02:47:01 2018 -0700"
      },
      "message": "Merge \"Support bluetooth not using MultinetworkPolicyTracker\" am: ed631bf5aa\nam: bfcbe96fd0\n\nChange-Id: I5e5b2c59ad3ea9ad574e8e683bcab3b09cfe0791\n"
    },
    {
      "commit": "8d1fe54be1b605846cca9dfe4a966b3c5e739caa",
      "tree": "c05dcd9b8692b71c878cb442d1e0290d3932a306",
      "parents": [
        "d61e87ad0899c8a737aa8f3f43b263bcee24325f"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Mar 12 23:18:58 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Sun Apr 08 23:09:36 2018 -0700"
      },
      "message": "Support bluetooth not using MultinetworkPolicyTracker\n\nThis required advancing the IpManager to IpClient refactoring\n(Bluetooth used IpManager and friends). Most importantly, the\nBluetooth code used WaitForProvisioningCallback, so this is\nmoved into IpClient proper now. Also: some more renaming\ncleanup.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 62476366\nBug: 72663849\n\nChange-Id: I9eee2a9d5c31cdd48a054a7edc3403584efb1864\n"
    },
    {
      "commit": "ae41e69d676390d08275e4a6d81b9f8ae4caf828",
      "tree": "1b59abaaaa49cf93629186baa9b4e89f8f999c4b",
      "parents": [
        "e8ee3a9635354ac70d1a3bed0ac902aa8feac704",
        "f12b9edf2413ba30c3cb9de455aa2dde6a5882f0"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Apr 03 14:26:39 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 03 14:26:39 2018 -0700"
      },
      "message": "Merge \"Support bypassing TLS in the framework\" am: aef9956de2\nam: f12b9edf24\n\nChange-Id: I0994b53d24ed25a2eb9e65429c61cf6fa87c7513\n"
    },
    {
      "commit": "2140529d9b8e116d88c2a385a0b3179c2ede5ad7",
      "tree": "a6693ad493766b407499065ddbe7518e455578c0",
      "parents": [
        "e34c426fd346d041176c83393bb78abfd49f6e9f"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Mar 21 07:18:33 2018 -0700"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Apr 03 00:35:30 2018 -0700"
      },
      "message": "Support bypassing TLS in the framework\n\nThis change comprises the following parts:\n\n    [1] android.net.dns.ResolvUtil, containing methods that encapsulate the\n        use of the high bit in netids used in DNS resolution contexts.\n\n    [2] Updates to captive portal apps to call the ResolvUtil method that\n        enables DNS-over-TLS bypass for the captive portal app process.\n\nTest: as follows\n    - builds\n    - flashes\n    - boots\n    - runtest frameworks-net passes\nBug: 64133961\nBug: 72345192\n\nChange-Id: I2072c1f68d6978fa0d7e9d8693135a2c51bb0f87\n"
    },
    {
      "commit": "dd819de65a53687a5698bb18a97b926e494f5d1a",
      "tree": "f05697ae2f82829158ee02e183ce7093770c4407",
      "parents": [
        "7a7f15609beeac11af69039ac11c6a4875b2133d",
        "f0ddd72f0f24cb0134998c177e14637fb8110c77"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Mon Apr 02 18:22:47 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 02 18:22:47 2018 +0000"
      },
      "message": "Merge \"APF: drop multicast ICMPv6 while in doze mode\" am: 7880e284c8\nam: f0ddd72f0f\n\nChange-Id: I2827fc9159fe8d372d881451b9971ddcc4a0530f\n"
    },
    {
      "commit": "e2c70f8a6092f740ea10e7476b33860d756cf94f",
      "tree": "53718d9751ec54190d90727d785a1830885864cc",
      "parents": [
        "786150bc0924e6effbddb8d11592d18f1372498e"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed Mar 28 20:11:49 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Mon Apr 02 21:17:51 2018 +0900"
      },
      "message": "APF: drop multicast ICMPv6 while in doze mode\n\nSome WiFi hotspots send excessive multicast IPv6 ping requests which\ncause considerable power drain. Thus, drop all multicast ICMPv6 ping\nrequests while the device is in doze mode.\n\nBug: 66930077\nTest: runtest -x tests/net/java/android/net/apf/ApfTest.java\nTest: manual - compared generated APF bytecode using apf_disassembler\nTest: manual - force idle mode while sending multicast pings to device\nChange-Id: I25dbf99985cf4413b4d0e3920d281fe6d663197a\n"
    },
    {
      "commit": "466f543cb134611e1341e194f4b583cf586daefa",
      "tree": "1d39c5a9b02b9c9ab30ac4e08e2a506d3f3ac54e",
      "parents": [
        "f04afa25379e242f1646699667428dab013c8b58",
        "45dd4b7930de1387bfbda4176a38a4839a080340"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 30 09:37:55 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 30 09:37:55 2018 +0000"
      },
      "message": "Merge \"Relax APF version check in ApfGenerator\" am: 51dab0ed9d\nam: 45dd4b7930\n\nChange-Id: If32b43fc217e5966fd6620d5c103c70883990842\n"
    },
    {
      "commit": "51dab0ed9d2b92884af4faf9a55381b12a8a373c",
      "tree": "15b759cbd104329b927bdbbd3b8eb0165bbf28ea",
      "parents": [
        "8e338f7dae163fbd0b2ad5a91e38cbccff659366",
        "d6bf7ffea788f5753be48a487a2a3b34951dfcb8"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 30 07:25:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 30 07:25:08 2018 +0000"
      },
      "message": "Merge \"Relax APF version check in ApfGenerator\""
    },
    {
      "commit": "d6bf7ffea788f5753be48a487a2a3b34951dfcb8",
      "tree": "9cc3d8efee8d350537e69d60d16b1082345bbbef",
      "parents": [
        "e2e7b28c126ef836b67e3fb7a7a6ee8424334ccb"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 30 13:08:26 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 30 13:14:54 2018 +0900"
      },
      "message": "Relax APF version check in ApfGenerator\n\nInstead of requiring an *exact* version, we now require a minimum\nversion. This is necessary if we wish to upgrade the APF interpreter in\nvendor firmware independently of the framework code. Adding new opcodes\nwithout changing the semantics of the old ones is always possible and\nusually easy, so we can at least have a backwards-compatibility horizon\nwider than a single version.\n\nChange-Id: I4f1ed661afb2ede193188eb8086fbf2a8b45b33d\nTest: Change extracted from aosp/647079 and tested there\n"
    },
    {
      "commit": "293eb1206981518eeaeced321708ede1ccf2cec9",
      "tree": "413ee31a1bcfc551bda2de4d03516f08bc685d5d",
      "parents": [
        "4de8a23d70787bb4dd7d5bfa669ef1330057f834",
        "36d3bf837201c2d2b5f5d70cc37378d19964ccb3"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 30 02:32:07 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 30 02:32:07 2018 +0000"
      },
      "message": "Merge \"Use InterfaceSet for upstream interfaces.\" am: e18fd9fff0\nam: 36d3bf8372\n\nChange-Id: Ic8602dd029b5a9626aaf6651315b82ab6327037c\n"
    },
    {
      "commit": "25a7e4fdbffce67718ca2477e0eb8e4ee6265528",
      "tree": "a97316d81207199ccfd6ec9d2c652ebc30310453",
      "parents": [
        "e2e7b28c126ef836b67e3fb7a7a6ee8424334ccb"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 09 14:07:18 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Mar 29 18:13:46 2018 +0900"
      },
      "message": "Use InterfaceSet for upstream interfaces.\n\nAllows using different upstream interfaces for IPv4 and IPv6.\n\nBug: 38218697\nBug: 64382985\nBug: 64976379\nBug: 64995262\nBug: 64380515\nTest: runtest frameworks-net, manual (with aosp/644099 applied)\n\nChange-Id: I3db63f7aa5255a0229253187def7590a386c5133\n"
    },
    {
      "commit": "f5af0cede50c483b5bfe544e4b402d8f3e5e6ff9",
      "tree": "ef14217ea251f1c7148a7a1d7a22d96aeaa58172",
      "parents": [
        "28e229b85ed0df1f2e4886b89857d769cac923a6",
        "a1f407d0f529b2a286644c9d43d2a3deba2f4ede"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Mar 05 15:13:01 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 05 15:13:01 2018 +0000"
      },
      "message": "Merge \"Fail if the interface is not available when starting\" am: b331b02da9\nam: a1f407d0f5\n\nChange-Id: Ifd27f5d908947cd7b4e1b8d54f9fa87e43ebb11b\n"
    },
    {
      "commit": "b152cd0aa4f333b721615bb17773b35a989245fb",
      "tree": "c23e80496ccff661c66649af3ff29c2908ffcce0",
      "parents": [
        "1451124f86c70b70eeb6908dd9a8248f9e8e2ea6"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Mar 02 16:51:13 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Mar 05 19:29:26 2018 +0900"
      },
      "message": "Fail if the interface is not available when starting\n\nAddresses a long-standing TODO.  Now, when calling IpClient\u0027s\nstartProvisioning(), the interface has to be available (i.e.\nInterfaceParams#getByName() must return non-null).\n\nAlso:\n    - add a test\n    - refactor for testability\n    - delete some constructors no longer used\n    - properly handle passed-in null IpClient.Callback\n    - some more IpManager -\u003e IpClient renaming\n    - permit recording metrics before starting a provisioning\n      attempt (logging immediate errors) without Log.wtf().\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks/opt/net/wifi/tests/wifitests/runtests.sh passes\n    - runtest frameworks-net passes\n    - basic WiFi IpClient connections works fine\nBug: 62476366\nBug: 73487570\nChange-Id: Ic83ad2a65637277dcb273feb27b2d1bb7a11eb2b\n"
    },
    {
      "commit": "c9055b637ceb8e12edc2282ea5049fc0bca6b10a",
      "tree": "d580f1b64461b0c0a3988247f5788a911b411705",
      "parents": [
        "acb42c36f5ecfa2ab442fce1b97ab446c73008a8",
        "d389a223919646eb737339fa4a4669cf7b11f3d1"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Feb 23 03:08:02 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 23 03:08:02 2018 +0000"
      },
      "message": "Merge \"Allow callers to synchronously block for shutdown\" am: 9121322ce7 am: a49db4d080\nam: d389a22391\n\nChange-Id: Idf60c16ac8003503f33130ddc6276a17fed75108\n"
    },
    {
      "commit": "ce194e0659c92f4b4bc71d1842c449df1013be14",
      "tree": "010fd018f7325fc8ebf5a5ce27eb59f0c84a31f5",
      "parents": [
        "2519de11c3d139db663d0975c2be507aa84c15b7"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Feb 21 14:47:09 2018 -0800"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Feb 22 11:14:57 2018 -0800"
      },
      "message": "Allow callers to synchronously block for shutdown\n\nAdd a simple CountDownLatch and a public method that callers can use\nto block until IpClient has cleanly shutdown the state machine.\n\nIn cases where IpClients are created and destroyed dynamically for\nthe same interface name, this can be used to make sure only one\nIpClient at a time is touching the given interface.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - OTG ethernet works (i.e. client mode)\n    - removing and reinserting the ethernet dongle continues\n      to show the \u003c-\u003e Ethernet sysui icon and basic network\n      connectivity works\n    - removing and reinserting the cable (link up/down events)\n      also shows the \u003c-\u003e Ethernet sysui icon and basic network\n      connectivity works\nBug: 62476366\n\nChange-Id: If4bffd54b7ebc088ec07cac10251e451f8161b6c\n"
    },
    {
      "commit": "bbab23ff97688f33c5cc41d5d0e134c0d9f58c6c",
      "tree": "495d74767efc00b7aebc085751ee61af1636bff6",
      "parents": [
        "b5cc72055fd3f4a8476f1b00931bc96ba366a859"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 07 15:34:27 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 08 02:19:42 2018 -0800"
      },
      "message": "Frameworks: Annotate trivial @GuardedBy in services/ misc\n\nAdd @GuardedBy for simple functions that require a single lock\nand are named XYZLocked.\n\nDerived by errorprone.\n\nBug: 73000847\nTest: m\nTest: m javac-check-framework RUN_ERROR_PRONE\u003dtrue\nChange-Id: Id1d9fbe5018250e3b9d1466fc5f670d5ad902fa3\n"
    },
    {
      "commit": "fbbd75839d05cb9a09f60d52c870d36e4902091a",
      "tree": "acfa9d88bc1f503a7206deb3776683e2b03b8627",
      "parents": [
        "ee84871fdab4b82d457301704789bca3ad0ae19d",
        "9a70530107c9e6ccb6861b476bf343a57ef37f25"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Feb 05 00:54:50 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 05 00:54:50 2018 +0000"
      },
      "message": "Merge \"Update OWNER files for connectivity\" am: 771e229a23 am: ce0c31d392\nam: 9a70530107\n\nChange-Id: I1754c7bd602db58bd6c4e72d5f0dd77786d730da\n"
    },
    {
      "commit": "1c8756154adf195178e2ba5bb0f082f452ceceb5",
      "tree": "16acd4dc428fce8e4e3b53603cc5728bc5bd33ed",
      "parents": [
        "cb9cd96c506a8255fbd2ad5f0ed1dde4a6c16e74"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 02 12:48:55 2018 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 02 12:49:45 2018 +0900"
      },
      "message": "Update OWNER files for connectivity\n\nTest: no functional change\nChange-Id: I25276c769468c37970cb1915660fee29e589008c\n"
    },
    {
      "commit": "26de1d3b9085b0a46542e922b8443c65723164b1",
      "tree": "e3ecfcb3666706f7831284b4bde8ad5d44d410e6",
      "parents": [
        "ac2247c4060567850d98735734de666ee60f6fbb"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Nov 02 21:01:46 2017 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Mon Jan 29 11:19:43 2018 -0800"
      },
      "message": "Relocate KeepalivePacketData to frameworks/base\n\nDue to an issue resolving the boot classpath, the\nKeepalivePacketData structure cannot be referenced\nby frameworks/opt/telephony while it is in services.\n\n-Move KeepalivePacketData to android.net\n-Also, relocate IpUtils without changing the package\n name.\n\nBug: 38350389\nTest: compilation\nMerged-In: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a\nChange-Id: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a\n(cherry picked from commit 41002e3080461ba6a7aee12c1d12dd13edc8626c)\n"
    },
    {
      "commit": "412d7631e51a2a48e9f43d2ce3bee8c90cf33075",
      "tree": "bbddf438acb902237bf9c47139e1e69ac255af5e",
      "parents": [
        "c949502b95c2c806338790101e8897a7899737e9",
        "d260ef2b30c28dc26a0411b54e3cb1140faef9c4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 25 03:49:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 03:49:19 2018 +0000"
      },
      "message": "Merge \"Determine the multipath hint from data usage.\""
    },
    {
      "commit": "41002e3080461ba6a7aee12c1d12dd13edc8626c",
      "tree": "2ba1b78ada9c4c020c44e27596a76f13286324c5",
      "parents": [
        "adb4fc73b0d9be2ad5f76c9e7248440625b80b75"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Nov 02 21:01:46 2017 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Jan 24 10:26:04 2018 -0800"
      },
      "message": "Relocate KeepalivePacketData to frameworks/base\n\nDue to an issue resolving the boot classpath, the\nKeepalivePacketData structure cannot be referenced\nby frameworks/opt/telephony while it is in services.\n\n-Move KeepalivePacketData to android.net\n-Also, relocate IpUtils without changing the package\n name.\n\nBug: 38350389\nTest: compilation\nChange-Id: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a\n(cherry picked from commit bd4093be7cab51d6ad031854324134a9c8637c2c)\n"
    },
    {
      "commit": "d260ef2b30c28dc26a0411b54e3cb1140faef9c4",
      "tree": "8f93d0b3089928287aecbd1f88d7326c3f3bcb34",
      "parents": [
        "e0f6909cba5aedb73c4e007baac330b9f6383d72"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jan 24 17:35:07 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jan 25 01:25:09 2018 +0900"
      },
      "message": "Determine the multipath hint from data usage.\n\nBug: 35142602\nTest: builds, boots\nChange-Id: I0f5de5e313ead442aa210f163db035fcf7de5e73\n"
    },
    {
      "commit": "918a68b3ca3d375335691230cc8fd7c974403717",
      "tree": "c32a26203992a4316905fea10f42ba2d0cf7cd15",
      "parents": [
        "f474fc3ac1bf45e658431c665418ae508458e1d9"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Jan 19 17:00:47 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jan 23 21:38:00 2018 +0900"
      },
      "message": "Move constants into a new file.\n\nAlso audit all constants, make some private, annotate some\nwith @VisibleForTesting.\n\nTest: runtest framework \u0026\u0026 cts\nChange-Id: Iaf5ea7abd36fd8d544dcc84654f6cb529196d654\n"
    },
    {
      "commit": "be83aebfebe6eecc4bcacc5a6a8ce7949319880f",
      "tree": "18511b8d562194f673ca1f6592c5801cc6c612f9",
      "parents": [
        "d6c3813c08a1025df42b06fb08b175eafd7e4714"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Jun 09 19:20:26 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jan 11 12:48:08 2018 +0900"
      },
      "message": "Move DhcpClient SM thread onto IpClient\u0027s SM thread\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - basic wifi usage nominal\nBug: 62476366\nChange-Id: I9a74e001bc86972e31b7e0898711628e65d9cf7a\n"
    },
    {
      "commit": "8bd00d5f7ced34a45173e45537dc3100d62ee6a5",
      "tree": "dc92c5b7729305897f8831a387000fbdf4d4b213",
      "parents": [
        "f448371208a53a93657b8120105e5f5fbb9feee8"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Dec 08 17:47:50 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jan 11 09:47:40 2018 +0900"
      },
      "message": "Refactor to InterfaceParams utility class\n\nNetworkInterface throws Exceptions every time you look at it askance.\nTry to make something we instantiate fully, once, and pass it around.\n\nPartial MacAddress-ification as well, for good measure.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - basic IPv6 tethering works\nBug: 32163131\nBug: 62476366\nChange-Id: I16c145fddb4e76387370338d792a438eed886d7f\n"
    },
    {
      "commit": "e8a4cb13e937263fb9ed7da6917900901b36a299",
      "tree": "9fe95ac7e9f18dd16de772e9d1e7015ff30fba92",
      "parents": [
        "5557fe3e2dad439797e54ccfe5f32b3c981ea7b6",
        "652044a7db7a64bf39f18a306431767bdf886ac1"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Dec 15 07:09:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 15 07:09:24 2017 +0000"
      },
      "message": "Merge \"Revert \"Send empty LinkProperties when entering StoppedState.\"\""
    },
    {
      "commit": "652044a7db7a64bf39f18a306431767bdf886ac1",
      "tree": "9423b1bbf27f37b6daeb14a428941ae9e11dc731",
      "parents": [
        "94209ab7686b202cfad6e42e07056bb9511006a8"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Dec 15 06:36:50 2017 +0000"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Dec 15 06:36:50 2017 +0000"
      },
      "message": "Revert \"Send empty LinkProperties when entering StoppedState.\"\n\nThis reverts commit 94209ab7686b202cfad6e42e07056bb9511006a8.\n\nReason for revert: should not have auto-submitted prior to more extensive wifi team testing.\n\nChange-Id: Ie81b10473caf34971226948038bc20dc4fa6a1ae\n"
    },
    {
      "commit": "5557fe3e2dad439797e54ccfe5f32b3c981ea7b6",
      "tree": "27a4a4c56c96f56f6f57c01dd067965c4a527092",
      "parents": [
        "0abc93177f0561ab7874531f346c5de11094f048",
        "94209ab7686b202cfad6e42e07056bb9511006a8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 15 06:29:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 15 06:29:15 2017 +0000"
      },
      "message": "Merge \"Send empty LinkProperties when entering StoppedState.\""
    },
    {
      "commit": "959ee4a7b14a72045219d864508449bde04f82a6",
      "tree": "74154721816d67e2ce0fc120b03c786777ea5d96",
      "parents": [
        "f5bec0d781499a3bde7aa54f2072019ce2709e70"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Dec 09 12:57:41 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Dec 14 09:56:56 2017 +0900"
      },
      "message": "Extend connectivity OWNERS\n\nAlso remove \u0027build.master@android.com\u0027 which is deprecated, not\ndeclared by anybody else, and makes the linter unhappy.\n\nBug: 70394432\nTest: built\nMerged-In: I9c0ba41386129379f82259fcc5e745562b014fae\n\n(cherry pick from commit 626eed2ac826a34b3ac9b1d4ddb9a783222187ec)\n\nChange-Id: Ie802113d61f693d73f7234b44ac2a9bd462b3fbf\n"
    },
    {
      "commit": "94209ab7686b202cfad6e42e07056bb9511006a8",
      "tree": "878230a3f9a529f6c5ed393ff7827b6c41fbe657",
      "parents": [
        "f5bec0d781499a3bde7aa54f2072019ce2709e70"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Dec 11 14:24:08 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Dec 13 12:13:36 2017 +0900"
      },
      "message": "Send empty LinkProperties when entering StoppedState.\n\nAdditionally, no longer try to transition from within a State\u0027s\nenter() method (this can encounter Log.wtf()s). Introduce some\nCMD_JUMP_* commands and use deferMessage().\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes (except for IpConnectivityMetricsTest failures)\n    - manual changing from DHCP to static configurations works:\n  2017-12-11T19:06:19.082 - INVOKE onLinkPropertiesChange({{InterfaceName: wlan0 LinkAddresses: []  Routes: [] DnsAddresses: [] Domains: null MTU: 0}})\n\nBug: 69800563\nBug: 70394432\nChange-Id: Ice249a48b66806c0270ec3f11dd2e8e387d4e29b\n"
    },
    {
      "commit": "5319777274a206c917ae13708c14daf3f942d853",
      "tree": "f6f478ba2272db58a94a54f23a04efa341fc470e",
      "parents": [
        "f7a69aeeabecf52c0e78458fa764af9481c11928",
        "eb652a47a180092b397ec40c718dfc13935f7fb6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 12 23:25:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 12 23:25:09 2017 +0000"
      },
      "message": "Merge \"Convert services to Android.bp\""
    },
    {
      "commit": "eb652a47a180092b397ec40c718dfc13935f7fb6",
      "tree": "9af0e5fbe2002dca0a1ec816b51b56bdcb81418a",
      "parents": [
        "f2ed7683daee70d4330306ded96d657ffc826b3e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 05 09:46:29 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 12 23:22:25 2017 +0000"
      },
      "message": "Convert services to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m checkbuild\nChange-Id: I417409281c928ea667d937090d2a0d9d72a449a2\nMerged-In: I417409281c928ea667d937090d2a0d9d72a449a2\nExempt-From-Owner-Approval: trivial conversion\n(cherry-picked from commit e0b2ee52d2f274a2d46b2e6695e42d2764c39fa7)\n"
    },
    {
      "commit": "e3396622478c7a6f9f5dbb240a403539d44b316e",
      "tree": "4746cb016aaa47b291b471f5e027107261479188",
      "parents": [
        "8d621cc0425363ca719ce485ddb2c4e1bd174813",
        "f1967c4125f1f08f9ee4a45d68413a1c3a0e7d72"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Dec 09 01:34:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 09 01:34:07 2017 +0000"
      },
      "message": "Merge \"Revert \"Send empty LinkProperties when entering StoppedState.\"\""
    },
    {
      "commit": "f1967c4125f1f08f9ee4a45d68413a1c3a0e7d72",
      "tree": "46aa9509b43018b31c2d7b5e15f84e1a47498f63",
      "parents": [
        "b3f9f4a30502477e71fc93037dc58080fddb1853"
      ],
      "author": {
        "name": "Roshan Pius",
        "email": "rpius@google.com",
        "time": "Fri Dec 08 22:29:50 2017 +0000"
      },
      "committer": {
        "name": "Roshan Pius",
        "email": "rpius@google.com",
        "time": "Fri Dec 08 22:29:50 2017 +0000"
      },
      "message": "Revert \"Send empty LinkProperties when entering StoppedState.\"\n\nThis reverts commit b3f9f4a30502477e71fc93037dc58080fddb1853.\n\nReason for revert: Crash in WifiStateMachine (b/70394432)\n\nChange-Id: I3a96c822eddcebcdd6621cee878b865171d094e8\n"
    },
    {
      "commit": "b501e7e25b4f338d8d2e9dc87945a0376b78cd7d",
      "tree": "120fdd2d5990aa9d95972ddeb97f6aad2c276cba",
      "parents": [
        "efdca004abe8a03aa15842b218e95af4e869e611",
        "84714bffa1a58fe1f6a114ae015f8e38be46f32d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 08 05:44:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 08 05:44:26 2017 +0000"
      },
      "message": "Merge \"Refactor to IpNeighborMonitor and single-threaded semantics\""
    },
    {
      "commit": "84714bffa1a58fe1f6a114ae015f8e38be46f32d",
      "tree": "7760a0766578216f8579c48f07fb28fc80860a7f",
      "parents": [
        "6a4be8613a2313b2b36f3df4f4a95579e2a2501d"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri May 19 09:29:48 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Dec 08 11:12:05 2017 +0900"
      },
      "message": "Refactor to IpNeighborMonitor and single-threaded semantics\n\nIpReachabilityMonitor (and IpNeighborMonitor) are only accessed from\nthe IpManager StateMachine\u0027s thread. Consequently lots of locking can\nnow be removed.\n\nAdditionally:\n    - rename BlockingSocketReader to PacketReader\n    - incorporate IpReachabilityMonitor output in dump()\n\nTest: as follows\n    - runtest frameworks-net passes\n    - \"adb shell ip neigh change \u003caddress\u003e dev wlan0 nud failed\"\n      triggers wifi to disconnect\nBug: 62476366\nBug: 67013397\nChange-Id: I18aca29ae0019a72a7e559c2832e0d9b0e33d81e\n"
    },
    {
      "commit": "b3f9f4a30502477e71fc93037dc58080fddb1853",
      "tree": "6d90144863f3b9f77afb82ff01a39b88abf909cc",
      "parents": [
        "86c995138379be76613408abdec07d34bb32cd58"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Dec 06 13:37:09 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Dec 07 18:07:38 2017 +0900"
      },
      "message": "Send empty LinkProperties when entering StoppedState.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - changing from DHCPv4 to static while continuously pinging the\n      default gateway works jsut fine\n    - dumpsys log shows that during the change we send the empty LP:\n  12-06 08:46:51.085 - CMD_ON_QUIT wlan0/23 0 0 null [rcvd_in\u003dStoppingState, proc_in\u003dStoppingState]\n  12-06 08:46:51.092 - INVOKE onLinkPropertiesChange({{InterfaceName: wlan0 LinkAddresses: []  Routes: [] DnsAddresses: [] Domains: null MTU: 0}})\n\nBug: 69800563\nChange-Id: I01047e9a72fce718a167c592bf14406c3bab3ba9\n"
    },
    {
      "commit": "7216636a621d413453947c1d40feaec9948fed73",
      "tree": "0323fb2b0abc87a6ef18cc196f4754b282e35314",
      "parents": [
        "69c9402a29f1c9f958284dfeb95404f88cac2cf1"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Oct 13 16:32:20 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 07 21:42:39 2017 +0900"
      },
      "message": "Refactor ApfFilter creation\n\nThis patch introduces a helper ApfConfiguration class for passing filter\nparameters to the constructor of ApfFilter. The benefits are:\n  - less parameter boilerplate across IpManager, ApfFilter, ApfTest\n  - easier to add more parameters in the future (useful for hardware\n    counters options and further gservices configurable options)\n\nThere is no functional changes otherwise.\n\nTest: runtest frameworks-net\nChange-Id: I47231c21df80bc36b6d4e15369748017b50b8da1\n"
    },
    {
      "commit": "22526e0139bea1928d635c56c6d30ac22baa05d5",
      "tree": "3f3fc0ea2fff92d6633a11a102b59d749823e3c9",
      "parents": [
        "80c3c7093040a6c66a2fa7c634451694d2bb5ee8"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Oct 31 11:37:41 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Sun Nov 05 15:34:08 2017 +0900"
      },
      "message": "Rename withIPv6AddrGenMode{Type}() methods to using{Type}MacAddress()\n\nCallers of IpClient can tell it via the Builder whether a stable or\na random link-layer identifier is used.  IpClient will make the\nappropriate IP-layer adjustments (for now this means RFC 7217\naddresses or not).\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh runs as well\n      as possible on AOSP (no new errors)\nBug: 62476366\nChange-Id: Ic9d52ea4f2c6c3588852ed41c81f8664d5cc298a\n"
    },
    {
      "commit": "5526d44916139afa77bbd1eafb004320c82e5515",
      "tree": "7b78e89d2ac5c147358dbe53dbd542f2fbb88fc6",
      "parents": [
        "bd6d3c5743d22d638f5ad13c6cab291f8b4fe406"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Oct 27 14:16:56 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Oct 27 14:17:04 2017 +0900"
      },
      "message": "Remove unused method on VersionedBroadcastListener\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - manually enabling USB tethering toward Wi-Fi worked\nBug: 32163131\n\nChange-Id: I38e4b77a7d59584ebeb450ebe5a9dcbcb36f4fa1\n"
    },
    {
      "commit": "de63772eff39adccc7819765e09b499cfd3b833e",
      "tree": "71761768897d5c31d707e02a85522f70f671abe6",
      "parents": [
        "fb7c0e8c91b49f55040b0d19deb35c387ddb8ee6"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Oct 12 22:16:01 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Oct 20 19:56:27 2017 +0900"
      },
      "message": "Switch to listening for CarrierConfig changes for provisioning rechecks\n\nThis change switches the signal used for provisioning rechecks from:\n\n    ACTION_SIM_STATE_CHANGED\n\nto:\n\n    ACTION_CARRIER_CONFIG_CHANGED\n\nAdditionally:\n    - reexamine carrier config overrides during provisioning re-checks\n      (this just was never happening before).\n    - refactor shared code out to VersionedBroadcastListener\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net\nBug: 63400667\nBug: 67755969\nChange-Id: Ib9d222eb7ca0e0dd988a1bd97ab32059189ada2c\n"
    },
    {
      "commit": "5c7128c070146046d85feb003bca94cb8649f09c",
      "tree": "7db9083fc52b8d0b44144ebe91286c130eb31d2a",
      "parents": [
        "eaf4d18bdf230b4a446d876178841aebdfd1a84e",
        "6d8b80a5b9b0648af4c57f26ab341e3b0c41b5ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 02:29:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 02:29:41 2017 +0000"
      },
      "message": "Merge changes I3b56e75d,I36255a2c\n\n* changes:\n  Skeletal IpManager proxying to the new IpClient\n  Rename IpManager to IpClient\n"
    },
    {
      "commit": "6d8b80a5b9b0648af4c57f26ab341e3b0c41b5ce",
      "tree": "a453954a1146fe2754fc9c06c1a7517a7af61f2f",
      "parents": [
        "1b2935806fbb3da7efda8d11bf8d00cdf4ec4c12"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Oct 11 22:00:11 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Oct 19 12:37:58 2017 +0900"
      },
      "message": "Skeletal IpManager proxying to the new IpClient\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - both wifi and ethernet connectivity works\nBug: 62476366\n\nChange-Id: I3b56e75d545594b88849a621e4ae09f2e1d45c69\n"
    },
    {
      "commit": "1b2935806fbb3da7efda8d11bf8d00cdf4ec4c12",
      "tree": "b1f2bf833d5fc50a2784127ee2e2aa99dccd50e0",
      "parents": [
        "3851f132d10db766f1d9a49099ec19a84957afad"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Oct 11 19:43:10 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Oct 19 12:37:58 2017 +0900"
      },
      "message": "Rename IpManager to IpClient\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 62476366\nChange-Id: I36255a2c8e1a2f52693716b445359cce0b4304af\n"
    },
    {
      "commit": "6217e37d30042fd78d17a8d5145f578279d60808",
      "tree": "292f5e2199737fdd11d57289b564ea65fb705976",
      "parents": [
        "e994b4b584a23be4574b725f6b5e654535f8e1d0"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Oct 17 20:26:20 2017 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Oct 18 14:53:57 2017 +0100"
      },
      "message": "Framework: Prefer android.system.Os over libcore.io.Libcore.os\n\nThis is a pure refactoring with no a behavior change other than\nthat these calls now go through android.system.Os, which immediately\ndelegates to Libcore.os.\n\nThis is a first step towards separating framework (via\nandroid.system.Os) vs. libcore (via Libcore.os) clients of these\nlow level APIs. Separating these is a prerequisite towards moving\nthe API parts of android.system into framework, and moving the\nrest into a different package in libcore.\n\nTest: Treehugger\nBug: 67901714\n\nChange-Id: Ifd8349ec5416e5693f40dba48fdf2bef651b7d81\nMerged-In: Ifd8349ec5416e5693f40dba48fdf2bef651b7d81\n"
    },
    {
      "commit": "ed0b030e173ca5a23d9da54fb6fe5f0c2780d704",
      "tree": "e4e85f6d9096bcdd1392d467a6eb755892e3a1f4",
      "parents": [
        "645cd2ad2665f422f0499d86b061d56a31926d18",
        "e42502d2bb85b240a3d4e7ef29ad5a5d6413f29d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 11 12:42:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 11 12:42:41 2017 +0000"
      },
      "message": "Merge \"IpManager: add display name for helpful logging, and Network\""
    },
    {
      "commit": "e42502d2bb85b240a3d4e7ef29ad5a5d6413f29d",
      "tree": "df81d64b1b02121460a0e4d3068f58de9633bdce",
      "parents": [
        "7d1789867b989ebcc17c8e1ba2fcf6d0824c5148"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Oct 04 20:28:54 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Oct 11 19:48:40 2017 +0900"
      },
      "message": "IpManager: add display name for helpful logging, and Network\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 62476366\nChange-Id: I509506814fa704e54f3d67158203276312a24fa1\n"
    },
    {
      "commit": "126171b2ccf938934a14fcd992dbff0919da7b53",
      "tree": "4c64aaf0fcab421559cd0335454654f91774bacd",
      "parents": [
        "7d1789867b989ebcc17c8e1ba2fcf6d0824c5148"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Oct 10 11:54:08 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Oct 11 11:37:45 2017 +0900"
      },
      "message": "Log upstream network suspend/resume callbacks\n\nAlso log signal strength while we\u0027re at it:\n\n    2017-10-10T14:05:00.968 - [UpstreamNetworkMonitor] preferred upstream type: WIFI\n    2017-10-10T14:06:07.654 - [UpstreamNetworkMonitor] upstream network signal strength: -62 -\u003e -67\n    2017-10-10T14:06:13.704 - [UpstreamNetworkMonitor] upstream network signal strength: -67 -\u003e -64\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 29337859\nBug: 32163131\nBug: 64976634\nBug: 67396342\n\nMerged-In: I9121798bba0be9dcdf1e45d39c092020620fa53b\nMerged-In: I1d3420380691efd886315275598134b98f4041ed\nChange-Id: Id6e143edc9f5b0256aa637643680f6c8dce70d90\n(cherry picked from commit 60caf7d29132262dd4a077b68daa807d22773524)\n"
    },
    {
      "commit": "e5659bd316d20ab1292daeac6d9a91ac00573d33",
      "tree": "753b3569250b1a343e7209caba382162b6149787",
      "parents": [
        "a666dbb628f31c51d2a1afd4927da67c891f009a"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Oct 04 14:51:42 2017 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Oct 06 13:38:46 2017 +0900"
      },
      "message": "Add some useful helpers and constants.\n\nTest: Pulled out of a client app ; the client app is behaving\nTest: identically to how it was behaving before. Wrote unit\nTest: tests in frameworks-net.\n\nChange-Id: I397137748a95c65cee2e1e1b243a1a260e83a6f7\n"
    },
    {
      "commit": "f840e07f821cb17c9ae1e6583a28eff548b90892",
      "tree": "7917793551477f9051ccb53e0617aa834d715f0b",
      "parents": [
        "f4ec2ab706a7a8741923f074c6f79192d5a93dfd"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jul 10 20:17:30 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Sep 28 18:22:40 2017 +0900"
      },
      "message": "Change BlockingSocketReader to use MessageQueue fd handling\n\nConvert the simplistic blocking read in a separate thread model to\nthe MessageQueue OnFileDescriptorEventListener model, albeit still\non a separate thread.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest frameworks-net\" passes\n    - basic IpManager functions still work,\n      including ConnectivityPacketTracker\nBug: 62476366\nBug: 67013397\nChange-Id: I1f4a6707eba402338947fe3f5392a26660f05714\n"
    },
    {
      "commit": "fc105bb6d8c44010f07cf157750b8b5bfc0d06aa",
      "tree": "9b184f92ae50464a03316219fb16a6a9269b4f9c",
      "parents": [
        "9c57accc45c5fa16ccdf1be8ce5341633366a783"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jun 19 11:33:59 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Sep 08 10:54:20 2017 +0900"
      },
      "message": "Support NAT keepalives\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest frameworks-net\" passes\n    - turned on debugging and walked around watching IpReachabilityMonitor\n      force neighbors into NUD_PROBE state without error\n    - observed NAT callbacks happening without any reported errors\n    - watched:\n        adb shell cat /proc/net/nf_conntrack | egrep \u0027192[.]168[.]43[.]\u0027 | sort -n -k5\n      for correct timeout updates\n\nBug: 29337859\nBug: 32163131\n\nMerged-In: I82ac60e5ad79ec64a13df6ec56b5b51b223f8dde\nMerged-In: I09bc685e821ec5e871576a54c4290edea4c5160b\nMerged-In: I4d180369a8f64ee494b016656988252d98a09ba4\nChange-Id: Icb23da64cfaa3a19f7bc75fba426a52b0994fb0f\n(cherry picked from commit 7a65bc62fbe0391f88834ab27b32033d6b957c8b)\n"
    },
    {
      "commit": "d3c0b5ed6f28dfcc93e9281dca7e88440432ec34",
      "tree": "da28019e21953e283ad68032427c07823b3af385",
      "parents": [
        "6391598412b0a265c5c9e2c162fd1d7c42353dc6"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Sun Sep 03 20:38:29 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Sun Sep 03 21:57:08 2017 +0900"
      },
      "message": "Refactor interface IP code into InterfaceController\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n      (except for UidRange and APF tests that are missing libvndk)\n    - regular WiFi STA mode attach works for IPv4-only, dualstack,\n      and IPv6-only networks\n    - tethering works with dualstack upstream and downstream\nBug: 62476366\n\nChange-Id: Id807b3091b0b2935b01aeb3644245034312b4183\n"
    },
    {
      "commit": "fd424169a1ffb549806f27e5478aa0700416296a",
      "tree": "15e67f1c034bd1b8dd51612e213c2c98d53fa797",
      "parents": [
        "fd5cdfc924b3f63ed1a1f725e09112ca4ed8465e"
      ],
      "author": {
        "name": "Ahmed ElArabawy",
        "email": "arabawy@google.com",
        "time": "Wed Aug 02 13:31:05 2017 -0700"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Sep 01 14:03:58 2017 +0900"
      },
      "message": "Add APF black list for ether-type\n\nAdd a configurable black for protocols which packets are to be dropped\nby APF. This enales an OEM to configure the APF to filter out un-needed\npackets from reaching the host\n\nBug: 62415182\nTest: runtest frameworks-net\n\nMerged-In: I86335a0f854d5e83a2b2767978cd69b2cc25c2f8\n\nSigned-off-by: Ahmed ElArabawy \u003carabawy@google.com\u003e\n\n(cherry picked from commit caffbe127726c6a9ab5dd023a9b09cfa43eac617)\n\nChange-Id: I15a758d18464d73d24ba8364a867904bb3cd3b34\n"
    },
    {
      "commit": "afe79359914750b18df668c75ff428b2b2c2cea4",
      "tree": "165ef32b8c070e3073532ee085985e14baef55a6",
      "parents": [
        "3abddeca75b0148671eb20d48a2ed5d4df5ac395"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Aug 30 15:37:20 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Aug 30 17:19:53 2017 +0900"
      },
      "message": "Shutdown more reliably\n\nAlso: collapse largely unused VDBG/DBG into just DBG.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest framworks-net passes\nBug: 64914645\nChange-Id: Ifbb6b1ce18c52c9cb58c89b9661248a155f7b4a8\n"
    },
    {
      "commit": "b3bb26eaa790cc18f6383387975630c1ae35752a",
      "tree": "16eb52c60ed8164c7905fce7cc90f301d9db8987",
      "parents": [
        "ddce7ee20fcad91bd45f77222d762136587bc192"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jul 06 19:49:35 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Aug 23 20:55:47 2017 -0700"
      },
      "message": "Send add/removeDownstream info to offload HAL\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest frameworks-net\" passed\nBug: 29337859\nBug: 32163131\n\nMerged-In: I0cb81ac054fc2bf6c8b8bfe658e9404a15091d7a\nMerged-In: I7abcdcc2d7d967179c47081a6db2b417164891f3\nChange-Id: I6c59aa7cb80b54f376f294b24c1409710c553d74\n(cherry picked from commit ed962a84122ab950a103fbbc0bf911f61b6b9500)\n"
    },
    {
      "commit": "c6a9b5564a066164ea9e09616fd45f1e94d305b0",
      "tree": "76fb29b3613676051fb9dbc245fa4241a935f96f",
      "parents": [
        "9335d2d0b114e9b7c5f5af634390daa609196a12",
        "5b218bdc8e41be24fed309a77059a587c236e3ad"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Aug 21 12:08:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 21 12:08:28 2017 +0000"
      },
      "message": "Merge \"IpManager: use InitialConfiguration for provisioning\"\nam: 5b218bdc8e\n\nChange-Id: I131589680b68222e4fda4e9165ac2f50894ee28e\n"
    },
    {
      "commit": "d00ddf567235e20bcbdc527ae20824fa944c3a64",
      "tree": "2b6e1ec60f2bf5d35a6bd518b4f5a87b07f60b45",
      "parents": [
        "23868e9c0976acd0d44e8bdc22b690e9b9ef8662"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Aug 08 13:08:06 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Aug 21 16:00:31 2017 +0900"
      },
      "message": "IpManager: use InitialConfiguration for provisioning\n\nThis patch changes IpManager to take into account static provisioning\ninformation specified in the InitialConfiguration for IPv6 static\nconfiguration.\n\nWhen a valid InitialConfiguration with IPv6 content is specified,\nIpManager will do the following things:\n\n- at start(), it will push the IPv6 addresses in the config to netd\n- it will observe all addresses be notified via Netlink\n- when all addresses are there, it will patch in the associated IPv6\n  routes in the config, so that they get passed to ConnectivityService\n  through the usual mechanism\n\nThe logic triggering onProvisioningSuccess is also changed to take into\naccount InitialConfiguration: when all addresses and all routes in the\nconfig are seen the provisioning is successful.\n\nBug: 62988545\nTest: runtest frameworks-net, with newly added tests\nChange-Id: I77ed7c576c4b198de7a4726be70c78b74689e98b\n"
    },
    {
      "commit": "a22fbf4534cf161f9b43c14e03de16a7b6208803",
      "tree": "2fd6e09d3200b336c5304548e5f847a8542d639e",
      "parents": [
        "7d752a872df3a0217089a135a18f647d3fe41883",
        "05be68698bfce2bd1635eab75d057f0bc4a6ceb5"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Aug 08 07:34:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 08 07:34:39 2017 +0000"
      },
      "message": "Merge \"Connectivity OWNERS: let owners modify Android.mk\"\nam: 05be68698b\n\nChange-Id: Iff94ca7089c074cc44f8e09cbce01f741c0b5c67\n"
    },
    {
      "commit": "afd2346bcce434d766068e7ee6a1e1c3da04125f",
      "tree": "c875778d1033f2e617f7aef65e714091933cc92d",
      "parents": [
        "5027dd1026da76ca84484831f31f6e14f1bf4066"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Aug 08 10:46:57 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Aug 08 10:46:57 2017 +0900"
      },
      "message": "Connectivity OWNERS: let owners modify Android.mk\n\nSince per-file overwrites the directory default, just allowing\nbuild.master@android.com for Android.mk with a per-file rule prevents\nthe owners of the directory to modify Android.mk files without bypassing\nOWNERS check in gerrit.\n\nThis patch fixes this issue for Connectivity OWNERS files by explicitly\nlisting Connectivity members for a few Android.mk files.\n\nTest: build\nChange-Id: I9c2a2519c3e7dd27e66334b090e074968b408cbc\n"
    },
    {
      "commit": "39a707813b872711cddea1d2b8d6a3bbb73b3180",
      "tree": "edc1e8f15aa5dd6f2b9237e46885a34d03676773",
      "parents": [
        "3f3c4f6da47c15418bbc3ac22be0fdaf25a06022",
        "a9889c94aa98531e0bbd7303d07b1055257a8aea"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jul 25 14:33:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 25 14:33:45 2017 +0000"
      },
      "message": "Merge \"Bootstrap IpReachabilityMonitor unit tests\"\nam: a9889c94aa\n\nChange-Id: Ic3b145159a4c0430cc248a19b8527af40fa67696\n"
    },
    {
      "commit": "06b1f2b1737a63967bef19801d7f013812dba70f",
      "tree": "dcbbc4f560702a6242c81690fd9da14d2c16b66d",
      "parents": [
        "e8341b6148c6dc5676f214caf8f41bec42077893"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jul 24 09:30:52 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Jul 25 14:59:48 2017 +0900"
      },
      "message": "Bootstrap IpReachabilityMonitor unit tests\n\nBug: 62918393\nTest: runtest frameworks-net\n\nChange-Id: I236029f460dc3631ef9f5d8312dc1c6faf9807df\n"
    },
    {
      "commit": "70291ef1d79d62f7c55bf147c878f45db9d1a490",
      "tree": "3948135f11c2c8ae38cf664f9a6ac4121a58b874",
      "parents": [
        "5c091dc9449b583e18656a8850a61f557dfcc945",
        "d27a6d62c66c76bff60f746b7ecb3a04c432b94a"
      ],
      "author": {
        "name": "Ahmed ElArabawy",
        "email": "arabawy@google.com",
        "time": "Thu Jul 20 03:46:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 20 03:46:08 2017 +0000"
      },
      "message": "Merge \"Add Configuration to APF Policy\"\nam: d27a6d62c6\n\nChange-Id: I491bad86e4e9ae7a813ac214b06273719a583079\n"
    },
    {
      "commit": "8537c58cc8c07e39e016e217a4033a7652d84794",
      "tree": "eadfddf661eedd46912a6693d6c9471b3e792671",
      "parents": [
        "2627d4856be08bda40f6b50ba0974f8b875f4995"
      ],
      "author": {
        "name": "Ahmed ElArabawy",
        "email": "arabawy@google.com",
        "time": "Mon Jun 12 18:01:11 2017 -0700"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Jul 20 11:22:46 2017 +0900"
      },
      "message": "Add Configuration to APF Policy\n\nin b/37702435 battery was drained due to reception of\nEthernet frames with Eth-type \u003c 0x600 (non ehternet II frames)\n\nThis change adds an XML file to drop/allow these frames\nDropping helps tp avoid acquiring a wakelock for the\nreception of these packets, while allowing them may be needed\nfor some protocols\nThe Change allow the OEM to override the system settings\n\nBug: 37702435\nTest: runtest frameworks-net\nMerged-In: Idb6c215896ef230a8136ff4ecefc90ccdc5c1c6d\nMerged-In: I16346bb98a0b9259f7c3f51e318c472cfc1bb492\n\nSigned-off-by: Ahmed ElArabawy \u003carabawy@google.com\u003e\n\n(cherry pick from commit 4dd7c58fc8fcc5a2c50de5e8eff05ddc5c3b0b8b)\n\nChange-Id: Ie466baf1e6395d6c28245e41179232ea8e523845\n"
    },
    {
      "commit": "a428392c1ddb93cabf0186ea0507b1fbc5254c60",
      "tree": "bf4c6024d1456f06da1849be5639c14d61c785bf",
      "parents": [
        "791a698a6a5f6c6e8b37f43c38f0027af9ee70be",
        "4f2a0fe213e56d1eb4221a02a09571262ef8036a"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Jul 14 07:25:51 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Jul 14 07:25:51 2017 +0900"
      },
      "message": "resolve merge conflicts of 4f2a0fe213e5 to stage-aosp-master\n\nTest: I solemnly swear I tested this conflict resolution.\nChange-Id: I61cfb2d4798350f28f1bb36aed67ee8f18895031\n"
    },
    {
      "commit": "4f2a0fe213e56d1eb4221a02a09571262ef8036a",
      "tree": "82f02c150a2deb5a7d519bca891779f1bd3163c5",
      "parents": [
        "d8dab115478e46440b7d97d8f70d41fb64efd0a1",
        "fd31b9d46ea09dc7d74ddc03ab7e5ecfbe80b3dc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 13 20:45:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 13 20:45:21 2017 +0000"
      },
      "message": "Merge \"IpManager: define InitialConfiguration\""
    },
    {
      "commit": "fd31b9d46ea09dc7d74ddc03ab7e5ecfbe80b3dc",
      "tree": "f113067dca4697fea38ddfe75457ca59ebb4f6dc",
      "parents": [
        "5bb30496cf381c6546cbf02a2c5b55adf046aeb8"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Jun 23 10:07:08 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Jul 14 04:26:42 2017 +0900"
      },
      "message": "IpManager: define InitialConfiguration\n\nThis patch adds a InitialConfiguration class to IpManager for specifying\nIP information in IpManager ProvisioningConfiguration at IpManager\nstartup.\n\nAt the moment this InitialConfiguration is not used, but is validated in\nstartProvsiioning if ProvisioningConfiguration includes one. It will be\nintegrated into IpManager IP provisioning logic in follow-up patches.\n\nThis patch also includes an example of data driven unit tests using a\ntable of test case. The highlights of this methodology are:\n  1) easy extensibility for new test case,\n  2) rich and informative error messages,\nUnfortunately Java support for inlined data structure literals is poor\nand some companion static methods for data generation are required for\nenabling this methodology.\n\nBug: 62988545\nTest: added new test in FrameworksNetTests,\n      $ runtest frameworks-net\n      $ runtest frameworks-wifi\nMerged-In: I060b02603af7d73a6407df89344bf0c000574af2\n\n(cherry pick of commit 2757fcf3a13b0addc4a168a12c72ac2fc418b012)\n\nChange-Id: I48dbf89232d7758f1b07ed4d76ce93281e5c6b53\n"
    },
    {
      "commit": "ae21b8941453ce5973100671c2cb9ef9ff20394c",
      "tree": "f562e864f553e0d41134d4ccfecfcbb4432b38c4",
      "parents": [
        "8625194c19d6a2260b27c5c1870c66254c040c74",
        "de837a97aa9db9ae344a7c298012fa2c7b808b95"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jul 13 09:00:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 13 09:00:56 2017 +0000"
      },
      "message": "Merge \"Program offload-exempt local prefixes into the HAL\"\nam: de837a97aa\n\nChange-Id: I741b6e31fb3adc922f47df824188786ff35e3aa9\n"
    },
    {
      "commit": "5acb4e3b62c788bff1baa22ecb20f6b103cc8d93",
      "tree": "eff67776e701b9bf3666d83677e4d0b60e82d54a",
      "parents": [
        "2fa880d0162a206b9307bfd5cd37a37cf216895a"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jul 04 18:28:11 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jul 13 16:43:34 2017 +0900"
      },
      "message": "Program offload-exempt local prefixes into the HAL\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest frameworks-net\" passes\n    - observed calls to the HAL setLocalPrefixes in tethering log\nBug: 29337859\nBug: 32163131\nMerged-In: I3c3bd4ee83ffe86ddbe6a16fbbfa0756bf5064d4\nMerged-In: Iaf80e584df458010741401fc1a19e7f6e21923c1\nMerged-In: Ifaf23c6179ead9de6ccfcf41e0c203025153167b\n(cherry picked from commit 32179ff81511e00aef31e8fda705be3df074ece6)\n\nChange-Id: I65ea833ac6fe7a75ebe546cfa358c4cffdf2de05\n"
    },
    {
      "commit": "531cae76fddc0ca8c58ae55bb6d2568dbe1732eb",
      "tree": "5d8bd48c3baf6d7213d15dbbe2e782778dfa2815",
      "parents": [
        "8a4be2a6aebbdcfa576b82e544fc501112ebab35",
        "4066930a367e56fa4743f5c10f7fbc045f0b8486"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Jul 12 03:54:57 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 12 03:54:57 2017 +0000"
      },
      "message": "Merge \"Add first OWNERS files for core networking\"\nam: 4066930a36\n\nChange-Id: Ib8e1b85be03ad5e75a89a7951a59b9bc2a04d112\n"
    },
    {
      "commit": "357b58cdabc39f6231097d642aa2360bf42c21c7",
      "tree": "d93ea724eee9e8edade20a66f00d3a2573227249",
      "parents": [
        "ed0e6009df5ecd3132ae44d24b0f442eb1b981ff"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Jul 07 11:55:41 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Jul 12 09:25:15 2017 +0900"
      },
      "message": "Add first OWNERS files for core networking\n\nCovering\n  core/java/android/net/\n  core/java/com/android/server/net/\n  packages/CaptivePortalLogin/\n  services/core/java/com/android/server/\n    ConnectivityService.java\n    NsdServic.java\n    NetworkManagementService.java\n  services/core/java/com/android/server/connectivity/\n  services/net/\n  tests/net/\n\nAndroid core networking files not covered:\n  services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp\n  services/core/proto/ipconnectivity.proto (path unique to aosp)\n\nBug: 63408147\nTest: builds\nChange-Id: Ifbb923d5ffdcada83864b5e0eb07911682d66efa\n"
    },
    {
      "commit": "97e7afe8d0c50741c185741847e9f08011bd51b5",
      "tree": "891b02bb0efb87d0fcc7a7684cac3e653f7455da",
      "parents": [
        "03e304e4e8abb6248a223a1cdfe9af4e365a5385",
        "9c170157a88f05bca60bb248307f5eca2560c35b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jul 10 13:43:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 10 13:43:02 2017 +0000"
      },
      "message": "Merge \"Make failure to set addrgenmode a non-fatal error.\"\nam: 9c170157a8\n\nChange-Id: Ia4074f720ce0db69c86cd58ddc574d595cfceeee\n"
    },
    {
      "commit": "00886760d7416940b76f34ad107ecd544715e914",
      "tree": "d19853cfcc068de4dc84fd925df4d34304890dd7",
      "parents": [
        "b355b7f446720245ce4e62739ad503f6a8ccea1b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jul 10 19:05:13 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Jul 10 19:10:35 2017 +0900"
      },
      "message": "Make failure to set addrgenmode a non-fatal error.\n\nBug: 17613910\nTest: bullhead builds, boots, connects to wifi\nChange-Id: I310dcacc6784c13904fca79b839b5f4d94bfc45e\n"
    },
    {
      "commit": "59079c2f8e34a2d827488d799777625c188b8122",
      "tree": "8119949fbd9f98433c0af1eee5eff087f7e37361",
      "parents": [
        "3b3f420481a7d5532b13c8ff1cdbc476247959a9",
        "a3ea0e2337c0a7b2b60d23c31a3f24bd9f555fe4"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jul 03 08:19:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 03 08:19:25 2017 +0000"
      },
      "message": "Merge \"Switch IpManager and IpReachabilityMonitor to use SharedLog\"\nam: a3ea0e2337\n\nChange-Id: I380551a59a1278df4cb6a0e7e590edae38e79881\n"
    },
    {
      "commit": "9e6655945a8bd322fed74769e4f1e8d017a0236c",
      "tree": "8ffec86484e7251becd611e12a606b409d15c157",
      "parents": [
        "1fbe96248220008984794326887a8eae42540641"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jun 29 11:46:51 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jul 03 16:08:28 2017 +0900"
      },
      "message": "Switch IpManager and IpReachabilityMonitor to use SharedLog\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest frameworks-net\" passes\n    - frameworks/opt/net/wifi/tests/wifitests/runtests.sh passes\n    - frameworks/base/wifi/tests/runtests.sh passes\n    - roamed from AP to AP watching IpRM logs accumulate\nBug: 62476366\nBug: 62162774\n\nMerged-In: I4bef3b6b1975fa3c73cca0a0e95fad99708f061e\nMerged-In: I265566158f3e5ebd21fb43e2eb0b8ba016fca76a\nChange-Id: I155a26259420919eeed74166bacce3311caa49da\n(cherry picked from commit 0fc10b2b1d7be649c80dda4ebdb2e31af216bfcc)\n"
    },
    {
      "commit": "834cf8d664d4955696555b7bc47dbe8d58d8164d",
      "tree": "1e76be357e03b4d4a423888874ebf93aae5bd75a",
      "parents": [
        "1fee4dcd5d761a7631acbc499b63138abf9f9f35",
        "2d2f66d277c3a8b28aa850917988d089221db23a"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jun 26 12:07:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 12:07:12 2017 +0000"
      },
      "message": "Merge \"IpManager: always log immediate provisioning errors\" am: 98f2decdad\nam: 2d2f66d277\n\nChange-Id: If1e885c13ce7ec1f480add63940bf9bc929d5072\n"
    },
    {
      "commit": "61f54d3fcd3d12619b254223eb233bda6f8b6bf8",
      "tree": "a3fa3be788342c7139f07b0487fbac52fb2e78f6",
      "parents": [
        "91464bfe6809bf506fada1ec3822d0f9d69b5bef"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Jun 22 15:19:35 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jun 26 10:47:19 2017 +0900"
      },
      "message": "IpManager: always log immediate provisioning errors\n\nAnd also migrate remaining Log.e usage to logError.\n\nBug: 62716267\nTest: built and flashed\nChange-Id: I61a6cec081d2bc0fe3d73e46fd52f1a42684e58c\n"
    },
    {
      "commit": "8a4667b911a53b0a73ef249f120dbfad4969b72b",
      "tree": "4f43df1487e6719ff65202eef78cd3cf1de84d8a",
      "parents": [
        "0ba9285c7db7e692e03ac79f7ebab1bc5ca871f0",
        "4c4d5477d4b15e23102b6ed8ebf052d37abcab3f"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Thu Jun 22 06:48:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 22 06:48:09 2017 +0000"
      },
      "message": "Merge \"Use RFC 7217 stable privacy addresses\" am: a88b12ce5e\nam: 4c4d5477d4\n\nChange-Id: I7f286484a31c7209e48e93a94d2a16849af6dace\n"
    },
    {
      "commit": "2db1074e4f747ee71e913cd890d385e563f23b5c",
      "tree": "71795956eea71d9748027de3bd8c03e20534ac62",
      "parents": [
        "4ff3cf1eca71e61896a6f4a493974113656f3fd5"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Wed Jun 07 15:38:38 2017 +0900"
      },
      "committer": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Thu Jun 22 13:31:06 2017 +0900"
      },
      "message": "Use RFC 7217 stable privacy addresses\n\nAsk Netd to setup WiFi interfaces to use stable privacy addresses. This\nshould fail benignly on devices with kernels lacking RFC 7217 support.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - Manually observed persistent stable secret\n    - Manually observed randomized IPv6 addresses (with flags \u003d 800)\nBug: 17613910\n\nChange-Id: I9465de16685b1eb0fd842446a530cf98d77a0c28\n"
    },
    {
      "commit": "5bb63befb8ce288a1d31bad4e19c1889fdb3e00d",
      "tree": "50114ca817c9fe6952c8d06907d08d496d933b32",
      "parents": [
        "0dc16ddee903020f9b90dfb9fa13fb4b2d5332a0",
        "ef0bd781b16550fa348f0f116a365f77bbe64797"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Thu May 25 00:18:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 25 00:18:44 2017 +0000"
      },
      "message": "Merge \"Ignore flow label when comparing RAs in APF\" am: 81fda77884 am: 6ccdb3fe19\nam: ef0bd781b1\n\nChange-Id: I53c2a493946ecc4e5617bcd3f5e64ff0b82fedf2\n"
    },
    {
      "commit": "967dec794b1974574d95c9d2dea0a0133fa19717",
      "tree": "1d73819480a46e306a3a14117fba57397bd16823",
      "parents": [
        "65d3a457d2152a431d158352257e3c846fc8a367"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Wed May 24 15:08:39 2017 +0900"
      },
      "committer": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Wed May 24 15:24:24 2017 +0900"
      },
      "message": "Ignore flow label when comparing RAs in APF\n\nThis change modifies the RA filter generation code to ignore bytes 1-3\nof the IPv6 header. It also updates testApfFilterRa such that it fails\nwithout the updates to ApfFilter.\n\nTest: as follows\n        - built\n        - flashed\n        - booted\n        - sent RAs from OS X with differing flow labels and observed\n\t      that they were filtered\n\t- ApfTest passes\nBug: 31166495\n\n(cherry picked from commit 7006bd4fe5eba4b6fad43dd28d9cad2d26ce140a)\n\nChange-Id: I32153238193ac13a0e59be1875d983a0567c41c7\n"
    },
    {
      "commit": "308ed7f4672c9b7e1aa594b95723410098c9b7a9",
      "tree": "2729a6eba77ce9665db4fa8d11ccdee7dffc81b1",
      "parents": [
        "a67ea35d9a3173e1829a1b1743a3a4fee19c544a",
        "945ff184c26648319bfcce2c314677eb2c71d861"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu May 18 03:54:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 03:54:30 2017 +0000"
      },
      "message": "Merge \"Expand logging capabilities of Tethering subsystem\" am: 0373340b07 am: 96f9371a66\nam: 945ff184c2\n\nChange-Id: Ia9d15f0dcc49ce070f8684eb8c8481310859faa5\n"
    },
    {
      "commit": "7747fd4ce055e8e1f6381062a58b867728f57d85",
      "tree": "fe367910f375a85bdda460a0b10d73f3b3aab6f9",
      "parents": [
        "8f65e470b0354f5fca3966f61a5995819609fbd2"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri May 12 16:52:48 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu May 18 09:46:45 2017 +0900"
      },
      "message": "Expand logging capabilities of Tethering subsystem\n\nIntroduce a SharedLog that can be shared among all Tethering\ncomponents.  All log entries go to the same log, and each includes\nits subsystem name.  Additionally, all entries emitted to the\nsystem log shared the same tag, so can easily be watched.\n\nMore subsystems can inherit a SharedLog, but to minimize cherry-pick\nconflicts we limit ourselves to these changes only.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - log output observed via dumpsys\n    - runtest frameworks-net passes\nBug: 32163131\nBug: 36988090\nBug: 38218697\nChange-Id: I1229d4c55987402d84b0d4a2c8a595e0c829aa3e\n"
    },
    {
      "commit": "211bd49c9d85bb2a669f7158fa24f7889c12a1d9",
      "tree": "9b38fa7fcebed8aec11522d3c368736d009f6a55",
      "parents": [
        "889bdc8dc9b695c0ffa5746c4c51ccf7df7fa3ce",
        "b1914ebb5041623a9d8c2fa542c6f58e71690951"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Apr 27 00:35:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 27 00:35:25 2017 +0000"
      },
      "message": "Merge \"Clarify some IpManager/ApfFilter debugging output.\" am: ce94c07ffd am: 3cc7ccfc69\nam: b1914ebb50\n\nChange-Id: If64f2b8a5cdf8b946a82a0c97a42cf61ef5e0b08\n"
    },
    {
      "commit": "af579eb5b516296a8ec0b02d824f2ba646e60ca2",
      "tree": "035189fcdd349dfe87cee4a4cafd48a1958c1cdd",
      "parents": [
        "3a8ad81ab42f030526cdf54d59a170d74478993e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Apr 21 17:56:55 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Apr 26 17:14:47 2017 +0900"
      },
      "message": "Clarify some IpManager/ApfFilter debugging output.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest frameworks-net\" passes\n    - \"adb shell dumpsys wifi ipmanager\" shows updated output\nBug: 34793131\nChange-Id: I6dec135b97343943efb421ef7b2e84c4751dd5ea\n"
    },
    {
      "commit": "7a0191b355f8374480c695a13c7b7bec9ce23d52",
      "tree": "6312ad61a36a18965f2637cbca25c5ac54af35f8",
      "parents": [
        "575523f2e70e7cb2a53c712bbb6e4e6514f920bc",
        "a80bb82b4eb189cbb74fbfb3eaa70bd80c0396a0"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Apr 24 19:07:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 24 19:07:37 2017 +0000"
      },
      "message": "Merge \"Move byte logics from ApfFilter into BitsUtil\" am: 21b9b3a8ff am: 12c1074c8b\nam: a80bb82b4e\n\nChange-Id: I5f13b006b57cc8a3ab0560626077d003ce4fe8c8\n"
    },
    {
      "commit": "495a17b332e57ea4c0162a4ae63d820b947e3719",
      "tree": "9f53928fc478332032e0c44f6ac101e79a590b97",
      "parents": [
        "9910dbc682118d2527fc17d4b50e8dcb94318534"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Jan 12 15:31:05 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Apr 22 10:07:03 2017 +0900"
      },
      "message": "Move byte logics from ApfFilter into BitsUtil\n\nThis patch extracts into BitUtils byte manipulation helper methods\nand unsigned type manipulation helper methods from ApfFilter into\nan independent and reusable structure.\n\nTest: $ runtest frameworks-net\nChange-Id: I0f33af10457a63dbde5983f14353a79b8cd877d9\n"
    },
    {
      "commit": "f700d5cad7ed9834dd16635d7626586e9912f6d0",
      "tree": "05786a5d04428be00d9a6633c753b4d1104adba4",
      "parents": [
        "db1de8dd64a1f2fadbb1965c6d84e6cfe63b4b5f",
        "f6626e812c7debe25c49b5eed6ec1663576641b4"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Apr 10 12:21:57 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 10 12:21:57 2017 +0000"
      },
      "message": "Merge \"Tethering: support Local-only Hotspot mode for downstreams\" am: d3128d4b55 am: 908ce167eb\nam: f6626e812c\n\nChange-Id: I79677f7e8e7ae5abec2a13b5e5391b8f07857a36\n"
    },
    {
      "commit": "ea9cc488eb0f096c9fd402eff49e3d30f5b6de2e",
      "tree": "454cce0aebf18e715f501b4e5fba11b1a24bf287",
      "parents": [
        "7a12f7efc79ba3848c82ebc7b74d1ada11f970e0"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Mar 10 19:35:34 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Apr 10 19:11:08 2017 +0900"
      },
      "message": "Tethering: support Local-only Hotspot mode for downstreams\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - \"runtest frameworks-net\" passes\nBug: 31466854\n\nChange-Id: Ia50e28c8ce0af8cdd7ac63217d921aff213668e7\n"
    },
    {
      "commit": "46aa9c022ed059f1e38f4dbf54d8850e090bce13",
      "tree": "db6e47131cb7909a8b9cee1fa343106d9490082b",
      "parents": [
        "9680667b1d889f189e25b3e5e2d44bbd611c0171"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 24 18:08:41 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Apr 06 16:50:06 2017 +0900"
      },
      "message": "Add an API hint for metered multipath traffic.\n\nThis allows an application that knows how to provide seamless\nnetwork connectivity (e.g., using QUIC multipath) to find out if\ndoing so is desired.\n\n(cherry picked from commit 2de4925f5cc64aeb92e02a8f740d3ff20f36dddd)\n\nTest: builds, boots, runtest frameworks-net passes.\nBug: 34630278\nChange-Id: Ic7fd0b9e1cd879fdfaf84009d7125391895e9087\n"
    },
    {
      "commit": "84b192e10ede2c951a434dbba972321252a9853c",
      "tree": "4a4ee652924756156e1c3b33b1f7a596e65b6027",
      "parents": [
        "db2eda2644fdb8328c4b71494199e741350d879b",
        "016bd9b699b7b3e3ac99ac9a99f7883283f6dc6c"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Fri Mar 31 01:00:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 31 01:00:38 2017 +0000"
      },
      "message": "Merge \"Partially revert \"Add blocking and retrying wrappers for INetd uses.\"\" am: 8b560611bf am: a084e3283f\nam: 016bd9b699\n\nChange-Id: I24debea7c7d90186705d0fee27617dc9aca798b5\n"
    },
    {
      "commit": "a084e3283f3af1fadb23f3c2e81dcb37b451fb46",
      "tree": "d629b25ce5e75694c821294961bb58f9e2e7b395",
      "parents": [
        "fa9e00bde56262555d836ec9747e8790b6906b8f",
        "8b560611bf1108d72e9e8e584d024fbc734b8dae"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Fri Mar 31 00:42:57 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 31 00:42:57 2017 +0000"
      },
      "message": "Merge \"Partially revert \"Add blocking and retrying wrappers for INetd uses.\"\"\nam: 8b560611bf\n\nChange-Id: I65e9137ae4c4f48e5484059244833edeab41f001\n"
    },
    {
      "commit": "8b560611bf1108d72e9e8e584d024fbc734b8dae",
      "tree": "f4beb09360b219c03aedd26fdce1de1071e70592",
      "parents": [
        "e0f0f6ca4be7def2aa2f978fad7249439c8afccc",
        "d8ea68ddc91c9033083a4a508547ef90a76e1fdf"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Fri Mar 31 00:28:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 31 00:28:13 2017 +0000"
      },
      "message": "Merge \"Partially revert \"Add blocking and retrying wrappers for INetd uses.\"\""
    },
    {
      "commit": "d8ea68ddc91c9033083a4a508547ef90a76e1fdf",
      "tree": "b2c01956d660f5b2de9fbe7957eb2a61cfe755b3",
      "parents": [
        "af39244a34f4449c12a5f925222c9bc8d8049320"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Thu Mar 30 01:13:03 2017 +0000"
      },
      "committer": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Thu Mar 30 01:18:44 2017 +0000"
      },
      "message": "Partially revert \"Add blocking and retrying wrappers for INetd uses.\"\n\nDirect access to Netd from the bluetooth process is disallowed by\nSELinux policy. This change reverts to the old behavior where IpManager \ninteracts with NetdService indirectly via NetworkManagementService.\n\nBug: 36492299\n\nThis partially reverts commit af39244a34f4449c12a5f925222c9bc8d8049320.\n\nChange-Id: Icf20b1e24abf7dd3123760f8637928bde7afe06b\n"
    },
    {
      "commit": "7f9bbae035026f46e841936abe9324dddc8c10fa",
      "tree": "3215664be82bb969f727b659ad51976804489133",
      "parents": [
        "15e3d0dba862d27ac8b55ff1da8f96b3c3b0e9f0",
        "e398bae572ccad91ff2aa8e674a1da589879f053"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 28 02:38:20 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 28 02:38:20 2017 +0000"
      },
      "message": "Merge \"Add null check to IpManager.dump()\" am: 58406d1df2 am: c5bca697ba\nam: e398bae572\n\nChange-Id: I172f23945a79191b777e2daf6795e2d228f510a6\n"
    },
    {
      "commit": "c5bca697ba60f1df2e182b56bca58295e672dbb8",
      "tree": "a537ac9bf57b2e2db062297dc37517749bf5f51d",
      "parents": [
        "61f58f06767863907801299f134dd494543cf8b3",
        "58406d1df20c7c550075e77f8f4922bda5661cc5"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 28 02:30:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 28 02:30:18 2017 +0000"
      },
      "message": "Merge \"Add null check to IpManager.dump()\"\nam: 58406d1df2\n\nChange-Id: I68f644a305d58e1396522d73c0983e1eb201cb1c\n"
    },
    {
      "commit": "0ea70fc38b5ad7979ee2947fe611b2fd89e2c675",
      "tree": "72bb5112a64cbdd6e8601f11bb1e09fa807ea249",
      "parents": [
        "a1e206a335f5050618564d2129fbc2bcd0e20730"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 28 05:28:02 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 28 05:30:41 2017 +0900"
      },
      "message": "Add null check to IpManager.dump()\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 36650508\nChange-Id: I2270bec20b966de487048f0ea0c97360e242cd9d\n"
    },
    {
      "commit": "b58609d7a6f06b6b8ea34c1909cf926d2f28ba34",
      "tree": "f5a0f69cd19d41bdd12fd99694792530d514d516",
      "parents": [
        "2e0d5323171fcbf8055ce4ebc98faa4ac526d9d3",
        "c3e0dcf082209efd93d75f96a490c1c98d0075a3"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Mon Mar 27 05:35:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 27 05:35:41 2017 +0000"
      },
      "message": "Merge \"Revert \"Set accept_ra_rt_info_max_plen to 64 before enabling IPv6 interfaces\"\" am: 63d26caa38 am: 84c2fb2070\nam: c3e0dcf082\n\nChange-Id: I9a48897312a785ea7e0338aa68c8bb4877a741e6\n"
    },
    {
      "commit": "84c2fb20700e355ef650b618987f16dd6780a501",
      "tree": "63fe6030a3cc280d24762fd7469fde7464127a52",
      "parents": [
        "45487910b49ce1d624dccb4548e2bb941300567b",
        "63d26caa38a38295f01360688f2d3f6138236d17"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Mon Mar 27 05:24:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 27 05:24:09 2017 +0000"
      },
      "message": "Merge \"Revert \"Set accept_ra_rt_info_max_plen to 64 before enabling IPv6 interfaces\"\"\nam: 63d26caa38\n\nChange-Id: I367506eee558dbd7abeeabf09716f7024c2e43d8\n"
    },
    {
      "commit": "6a35f3c3e2f1222d30e969e3cb1b887b43c9e375",
      "tree": "c13c5978d08bc11b98f7065d550edd3ffa80ded9",
      "parents": [
        "25870a2c9effd7a7d31c0678c34a6e952b2d56a1"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Fri Mar 24 02:39:14 2017 +0000"
      },
      "committer": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Mon Mar 27 00:54:41 2017 +0000"
      },
      "message": "Revert \"Set accept_ra_rt_info_max_plen to 64 before enabling IPv6 interfaces\"\n\nOn second thought, let\u0027s set accept_ra_rt_info_m**_plen in \nNetd (InterfaceController::initializeAll())\n\nThis reverts commit 25870a2c9effd7a7d31c0678c34a6e952b2d56a1.\n\nChange-Id: I22b000623bb852e375385d4aae789d007e84ba3d\n"
    },
    {
      "commit": "948a85948dcccea4aaa9d70a74405308581b0925",
      "tree": "d72bc48ef47f75ddffd3201a038a7f1185460887",
      "parents": [
        "73fd4d1fafd0208e843abb6a6ad8a46a6fb18143"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Mar 16 16:33:47 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Mar 21 10:18:56 2017 +0900"
      },
      "message": "Connectivity metrics: change how interface names are logged\n\nThis patch deprecates the ifname field for specific metrics events of\ntypes DhcpClientEvent, DhcpErrorEvent, IpReachabilityEvent and\nIpManagerEvent.\n\nInstead ifnames are logged in ConnectivityMetricsEvent, allowing for\nlink layer inference.\n\nTest: updated unit tests, $ runtest frameworks-net passes\nBug: 34901696\nChange-Id: I8bfabcb115bbd5289471d653c153a40bb48f28cd\n"
    }
  ],
  "next": "5e1eb40c8f20b194b6eaac2275bb511f81df4fea"
}
