)]}'
{
  "log": [
    {
      "commit": "8592a239666129c4f167b79fa03189154c210750",
      "tree": "cb607a6ea641d45f5346df6cc1866c3c24ec7912",
      "parents": [
        "65423ce331ffb56ca27e104a85e5a55fe544c4b8"
      ],
      "author": {
        "name": "Koray Kokten",
        "email": "koraykokten@netsia.com",
        "time": "Mon Aug 27 07:41:14 2018 +0000"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 30 15:45:22 2018 +0000"
      },
      "message": "733: Insert the description of the change.Need to support Error Checking for consistency – if Meter Reference made then need Meter to exist first before reference.\n\nIf Flow Table ID does not resolve to a Technology Profile in KV Store generate an error – initial approach to simplify implementation - the Technology for the Profile will not be used to qualify the lookup.\n\nInitially just do OF agent checks which do not need knowledge available in the adapter i.e. Meter Band Reference requires Meter Band definition first. Any Forward References need error checks (OF Error messages).\n\nOF Agent needs to pass through the Meter/Meter Band programming and the Flow Table ID used to reference the Technology Profile.\n\nThe VOLTHA core needs to be able to receive meters from the OFAgent and store them in the appropriate logical device. A new northbound API needs to be added to the core to support this.\n\nChange-Id: Ide776dbcbc04232c1d929a85707fec09e3dedf6f\n"
    },
    {
      "commit": "75ba77f35ee62ab0b04641b0ecd894283f6b801b",
      "tree": "95064a7469166e7571e4c7009d1bb89ec9807fdb",
      "parents": [
        "636ac76dbaaa73c52238eb72805311cb9a9aba6d"
      ],
      "author": {
        "name": "Nicolas Palpacuer",
        "email": "np202g@att.com",
        "time": "Mon Aug 27 17:26:57 2018 -0400"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Sep 21 12:25:08 2018 +0000"
      },
      "message": "VOL-1190 Filter out unreachable device before reporting to ONOS\n\ncalling ListReachableLogicalDevices instead of ListLogicalDevices. The filtering is done in the voltha core\n\nChange-Id: I517f963423b83c49bce1469ebb016af1eb72a4a9\n"
    },
    {
      "commit": "db9a86eeeacac1bce757c81b622f7237187c65f5",
      "tree": "e07eb6f6a8097f6191a55e64eab58f7149ab040c",
      "parents": [
        "4ca78b58ebeb388c02068806dd074bc8b509c779"
      ],
      "author": {
        "name": "Richard Jankowski",
        "email": "rjankows@ciena.com",
        "time": "Mon Sep 17 13:33:29 2018 -0400"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Sep 17 19:01:52 2018 +0000"
      },
      "message": "VOL-1183: OFagent cannot reach vcore after vcore moved to different node in cluster\n\nTwo gRPC calls made by OFagent\u0027s ConnectionManager, Subscribe and ListLogicalDevices, actually\nrun in the Twisted reactor thread. On rare occasions, either call never returns when the vcore\nconnected to the OFagent dies. Because the blocking gRPC runs in the reactor thread, the entire\napplication is blocked and cannot detect comms errors with the deceased vcore. The handling  of\nthese gRPCs has been moved to the OFagent\u0027s internal GrpcClient, which wraps all gRPC calls in\nthe twisted.internet.threads.deferToThread function.\n\nChange-Id: Ifa3479a3cbca7ae8d7f5e2ca0372e22507d5e4b9\n"
    },
    {
      "commit": "fd7b8b17b600a1de25fcff13e0923df5d8197d59",
      "tree": "a3241b1538173ab8f1c17262c4f1a65c3b7fcfa6",
      "parents": [
        "e7359fcdb4aa48f49d9e7037ceb9855be87dd031"
      ],
      "author": {
        "name": "Nicolas Palpacuer",
        "email": "np202g@att.com",
        "time": "Fri Jun 15 13:58:06 2018 -0400"
      },
      "committer": {
        "name": "Jonathan Hart",
        "email": "jono@opennetworking.org",
        "time": "Tue Jun 19 22:03:37 2018 +0000"
      },
      "message": "VOL-955 Handling of port stats in OFAgent\n\nChange-Id: Ib73bcb539dc573e577e5c9d736e425256c6a8972\n"
    },
    {
      "commit": "398e407a10aa6f013074442f2dfcfff196dd744b",
      "tree": "4cbad3e5b1a21f0b370430b7a5eb296efef589ad",
      "parents": [
        "8d21c32adc428b11045d1b633d13f3fcda0412db"
      ],
      "author": {
        "name": "Jonathan Hart",
        "email": "jono@opennetworking.org",
        "time": "Wed May 30 16:54:00 2018 -0700"
      },
      "committer": {
        "name": "Jonathan Hart",
        "email": "jono@opennetworking.org",
        "time": "Wed May 30 16:54:00 2018 -0700"
      },
      "message": "ofagent import bugfix\n\nChange-Id: I0e14fa9ba7af909ae3f969497130cef850545504\n"
    },
    {
      "commit": "8d21c32adc428b11045d1b633d13f3fcda0412db",
      "tree": "58c04dc1a4d0c2253cd451122bc95bced545aa1c",
      "parents": [
        "369a5060a61a34a9042e5ac48a62114e2c2900fc"
      ],
      "author": {
        "name": "Jonathan Hart",
        "email": "jono@opennetworking.org",
        "time": "Tue Apr 17 07:42:02 2018 -0700"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed May 30 01:56:06 2018 +0000"
      },
      "message": "VOL-670: Implement OF port_mod handling for logical devices.\n\nChange-Id: I882790f7d70ec812ba6adc0d01e128ed6a98cbbf\n"
    },
    {
      "commit": "06b449c0101a379b7105e752a354ef7def10b92e",
      "tree": "02cff73917e156c46e34ec085cc11fd87dc82dd0",
      "parents": [
        "5b7b3fb27a618421e90d1d8aefaf98fcd4f1815d"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Sun Jan 15 17:33:16 2017 -0600"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Jan 15 20:45:01 2017 -0800"
      },
      "message": "OFAgent now has suicidal tendencies.\n\nIf OFAgent cannot find voltha-grpc it kills itself only to be restarted\nby docker, this will continue until it is happy. Similarly, if voltha\ngoes away ofagent will kill itself until voltha comes back\n\nChange-Id: Ib2a2cbf5ed438f8bd40f80a4543bd80f065461f1\n"
    },
    {
      "commit": "9ed542981dc548a14e926d0d2052c3d2c21f595d",
      "tree": "288efba89c1568534ecc047c861aba0f64a3e82a",
      "parents": [
        "ee5c4c8594f3e0a99b4ad87594195dc69797a50f"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 18:28:32 2017 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 18:28:32 2017 -0800"
      },
      "message": "Reverting recent changes that broke packet in plumbing\n\nChange-Id: I12bc2f46aa9fc4266b5caae26cc4778fe17e9782\n"
    },
    {
      "commit": "3300f740e6adcff585991e0db1aff338749fb209",
      "tree": "ff4b0002b96d8c93fb270eebb7f57bb732ec5800",
      "parents": [
        "50cae7ded75ac0bb99296d32bfcc5f6bc995e88e"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 01:14:20 2017 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 01:14:20 2017 -0800"
      },
      "message": "Make Voltha/OFAgent Ctrl-C terminatable\n\nChange-Id: I8d64b126d8d8d6f368d6cc236b2293fbcd108416\n"
    },
    {
      "commit": "3eb27a56d762da3e4412e79b45a615ded900aad8",
      "tree": "e92eba2fa14f7d4ab77608022bf3680bae146ee4",
      "parents": [
        "9fbb223b548e5b2cd35d8dc77d2f423e176468d2"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Jan 03 21:56:48 2017 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Jan 03 21:56:48 2017 -0800"
      },
      "message": "Happy New Year 2017\n\nChange-Id: Ib9a77f5e7d8d857a519d20904ec0d745e32eb257\n"
    },
    {
      "commit": "217a12eb75007ad814269eb4b8e63108c0d81845",
      "tree": "ccd7f4abef105f199f469d22b2448f88b0969e80",
      "parents": [
        "7b312564a62e175fc385646a07e2acd3996d0cb0"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 16:37:55 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 16:38:04 2016 -0800"
      },
      "message": "Propagate port change to SDN controller via OF13\n\nThis change adds plumbing to propagate new logical port\nadditions up to the SDN contoller via OpenFlow.\n\nChange-Id: Ic02586b096144c3697a0974ebbc8a7be8760bef8\n"
    },
    {
      "commit": "66862035accde9e1dcb32f7c711465d00e543af8",
      "tree": "366f637706444a93514af802d87889d3572073b9",
      "parents": [
        "00d9a842344958e9361aa02f15775f9151b3eab9"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Nov 28 14:28:39 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 11:50:29 2016 -0800"
      },
      "message": "Flow decomposition and miscellenous improvements\n\nSpecifically:\n\nThe biggest addition is an initial flow decomposition\nimplementation that splits flows and flow groups\ndefined over the logical device into per physical\ndevice flows, based on a very crude and heuristic\napproach. We expect this part to be much improved\nlater on, both in term of genericness as well as\nspeed.\n\nThe flow decomposition is triggered by any flow\nor group mods applied to a logical device, and it\nconsequently touches up the affected device tables.\nThis uses the POST_UPDATE (post-commit) mechanism\nof core.\n\nThere is also an initial arhcitecture diagram added\nunder docs.\n\nAdditional improvements:\n\n* Implemented metadata passing across the gRPC\n  link, both in Voltha and in Chameleon. This paves\n  the road to pass query args as metadata, and also\n  to pass HTTP header fields back and forth across\n  the gRPC API. This is alrady used to pass in depth\n  for GET /api/v1/local, and it will be used to\n  allow working with transactions and specific config\n  revs.\n* Improved automatic reload and reconnect of chameleon\n  after Voltha is restarted.\n* Improved error handling in gRPC hanlers, especially\n  for the \"resource not found (404)\", and bad argument\n  (400) type errors. This makes gRPC Rendezvous errors\n  a bit cleaner, and also allows Chameleon to map these\n  errors into 404/400 codes.\n* Better error logging in generic errors in gRPC handlers.\n* Many new test-cases\n* Initial skeleton and first many steps implemented for\n  the automated testing for the cold PON activation\n  sequence.\n* Convenience functions for working with flows (exemplified\n  by the test-cases)\n* Fixed bug in config engine that dropped changes that\n  were made in a POST_* callback, such as the ones used\n  to propagae the logical flow tables into the device\n  tables. The fix was to defer the callbacks till the\n  initial changes are complete and then execute all\n  callbacks in sequence.\n* Adapter proxy with well defined API that can be\n  used by the adapters to communicate back to Core.\n* Extended simulated_olt and simulated_onu adapters to\n  both demonstrate discovery-style and provisioned\n  activation style use cases.\n* Adapter-, device-, and logical device agents to provide\n  the active business logic associated with these\n  entities.\n* Fixed 64-bit value passing across the stack. There was\n  an issue due to inconsistent use of two JSON\u003c--\u003eProto\n  librarier, one of which did not adhere to the Google\n  specs which recommend passing 64-bit integer values as\n  strings.\n* Annotation added for all gRPC methods.\n\nAll Voltha test-cases are passing.\n\nChange-Id: Id949e8d1b76276741471bedf9901ac33bfad9ec6\n"
    },
    {
      "commit": "7eeb2b35568aa53c175013d1bec1f84abd928c71",
      "tree": "16413cdeb84c641a485484efdc012f288301f9c9",
      "parents": [
        "91350ebd11fc030359a79332bfe18e75da139d54"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Nov 06 14:04:55 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Nov 07 00:49:10 2016 -0800"
      },
      "message": "Refactored protobuf framework, added loader\n\nIncluded changes:\n\n* Initial adapter interface spec\n* Adapter loader to auto-load adapters\n* Initial adapter NBI\n* Better import support in chameleon, allowing more flexible\n  protobuf structure (by organizing artifacts and service\n  into separate proto files.\n* Refactored voltha.proto to split things into logical proto\n  modules.\n* Some additional cleanup\n\nChange-Id: I75f9883c6992148ea8df430bcdaebf85115fea4a\n"
    },
    {
      "commit": "2bdb6b31e4b86a5ae88fbceb70bd05143cef318b",
      "tree": "766a1571ac170fc997e1a87829de5f3976e8a94a",
      "parents": [
        "3d565e206c2dc0ac28f3921e1e44e6a865d4fc8c"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 16:56:17 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 19:33:59 2016 -0700"
      },
      "message": "Nomralize component start()/stop()\n\nAlso fixed the /schema swagger/rest entry. It did not work\nbecause the 3rdparty protobuf_to_dict library cannot handle\nMap fields. Changed the two map fields to a single list\nentry.\n\nChange-Id: Ib25a528701b67d58d32451687724c8247da6efa5\n"
    },
    {
      "commit": "cd22adc23cff59dd5f6a96ec12a5b336036937ec",
      "tree": "f8884eee569867f43a28b450a6c2242f458f1221",
      "parents": [
        "862883a240b41c87dc49d956246edd2d37c604e1"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Oct 25 00:13:06 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Oct 28 08:34:51 2016 -0700"
      },
      "message": "Packet in/out streaming from ofagent to core\nGetting ready for packet streaming\n\nChange-Id: I8d70d4d6ffbb23c0d7ab20582e9afac49f9f6461\n\nSupport flow_delete_strict\n\nChange-Id: I5dab5f74a7daddcddfeb8691a3940347cb2fc11b\n\nPacket out halfway plumbed\n\nChange-Id: I799d3f59d42ac9de0563b5e6b9a0064fd895a6f6\n\nrefactored async_twisted\n\nChange-Id: I68f8d12ce6fdbb70cee398f581669529b567d94d\n\nPacket in pipeline and ofagent refactoring\n\nChange-Id: I31ecbf7d52fdd18c3884b8d1870f673488f808df\n"
    },
    {
      "commit": "9125b1a90ceff0e60c944a6430e8054cf36a0f76",
      "tree": "9be01e5e9cc146403a86b89c68307c2806ff8549",
      "parents": [
        "40f039c39f0fff90a68f7cccf3d772c4e8efcf5d"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 22:54:33 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 23:00:03 2016 -0700"
      },
      "message": "Fixed two bugs in OpenFlow land\n\nChange-Id: I74f37221d93c71398a1985143f03706297bd1661\n"
    },
    {
      "commit": "8a7743872b15bf3d95d4aaaf1b77bfad40cda35d",
      "tree": "43258f000eb932fc7121f523aa0756ecfb77dd49",
      "parents": [
        "023ea7cbbc9482643579b92ab02b3ed104e1f575"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 18:25:54 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 20:53:40 2016 -0700"
      },
      "message": "All olt-oftest flow and group commands propagate\n\nChange-Id: Iddde6ddddd5a0ca5100ee95d55fedd247ab7f263\n"
    },
    {
      "commit": "023ea7cbbc9482643579b92ab02b3ed104e1f575",
      "tree": "e75ec5bff25548904e2a8e358029cc5fe8bb6466",
      "parents": [
        "4ba198966634f48c11a7dfb5590b404b1b2a1f34"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Oct 16 19:30:34 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 01:38:54 2016 -0700"
      },
      "message": "Async/streaming gRPC client/server proto\n\nThis experiment was to fine-tune how we can implement\nasync gRPC client and server code inside a Twisted\npython app.\n\nChange-Id: I945014e27f4b9d6ed624666e0284cc298548adb3\n\nMajor cleanup of openflow_13.proto\n\nChange-Id: I4e54eaf87b682124ec518a0ade1a6050a6ec6da8\n\nRelocated openflow_13.proto to voltha\n\nChange-Id: I66ae45a9142d180c2c6651e75c7a1ee08aef7ef8\n\nRemoved forced utest from make build\n\nChange-Id: If0da58e9d135ebde6ca68c3316688a03a7b10f2f\n\ntwisted openflow agent first pass\n\nChange-Id: Ibe5b4727ccfe92e6fd464ccd3baf6275569ef5d3\n\nstore openflow derived files\n\nChange-Id: Ib3e1384bb2ca2a9c0872767f7b793f96b0a154e2\n\nMinor cleanup\n\nChange-Id: I1280ed3acb606121b616a0efd573f5f59d010dca\n\nFactored out common utils\n\nChange-Id: Icd86fcd50f60d0900924674cbcd65e13e47782a1\n\nRefactored twisted agent\n\nChange-Id: I71f26ce5357a4f98477df60b8c5ddc068cf75d43\n\nRelocated openflow agent to ofagent\n\n... and preserved obsolete working (non-twisted) agent under\n~/obsolete, so we can still run the olt-oftest and pass tests,\nunit the new twisted based agent reaches that maturity point.\n\nChange-Id: I727f8d7144b1291a40276dad2966b7643bd7bc4b\n\nolt-oftest in fake mode works with new agent\n\nChange-Id: I43b4f5812e8dfaa9f45e4a77fdcf6c30ac520f8d\n\nInitial ofagent/voltha operation\n\nChange-Id: Ia8104f1285a6b1c51635d36d7d78fc113f800e79\n\nAdditional callouts to Voltha\n\nChange-Id: If8f483d5140d3c9d45f22b480b8d33249a29cd4e\n\nMore gRPC calls\n\nChange-Id: I7d24fadf9425217fb26ffe18f25359d072ef38fa\n\nFlow add/list now works\n\nChange-Id: Ie3e3e73108645b47891cef798fc61372a022fd93\n\nMissed some files\n\nChange-Id: I29e81238ff1a26c095c0c73e521579edf7092e21\n"
    }
  ]
}
