)]}'
{
  "log": [
    {
      "commit": "34dd63fda5e09e23b24747b5ecabab29c6a0c2fc",
      "tree": "4914d2b5ebbc8a0b511c37db02104c705783fcb4",
      "parents": [
        "6bd4de011aedee5138ef77173f9eb9cf8eb507b6"
      ],
      "author": {
        "name": "Andrey Pozolotin",
        "email": "posandrey@gmail.com",
        "time": "Mon May 31 21:26:40 2021 +0300"
      },
      "committer": {
        "name": "Andrey Pozolotin",
        "email": "posandrey@gmail.com",
        "time": "Tue Jun 08 12:38:19 2021 +0300"
      },
      "message": "Fixes for stricter sca rules\n\nChange-Id: I027796c040009ec21d9864b1868757993d47cb35\n"
    },
    {
      "commit": "a61a72c31c0ba45076698929bdf2829df23cfb4d",
      "tree": "611fb337cdf240d12fd6a4807c14ca61f1d2e879",
      "parents": [
        "f421da685d3daf0b9f02b8f8de952ca885b0374b"
      ],
      "author": {
        "name": "Marcos Aurelio Carrero (Furukawa)",
        "email": "mcarrero@furukawalatam.com",
        "time": "Thu Jan 28 13:48:20 2021 -0300"
      },
      "committer": {
        "name": "Marcos Aurelio Carrero (Furukawa)",
        "email": "mcarrero@furukawalatam.com",
        "time": "Thu Jan 28 13:48:20 2021 -0300"
      },
      "message": "[VOL-3662] Supporting PPPoE trap rules on voltha core\n\nSigned-off-by: Marcos Aurelio Carrero (Furukawa) \u003cmcarrero@furukawalatam.com\u003e\nChange-Id: I9117c1d97412a2173a7ce232032cbd366a83cab9\n"
    },
    {
      "commit": "dfadc98b001385d143a73bfa7893826f8aa739bd",
      "tree": "03ce0d6c422ec63a0ad3be57d6f4951df35e09b4",
      "parents": [
        "6268631d72fe5dc0f745aec435da64ec056c6a05"
      ],
      "author": {
        "name": "Maninder",
        "email": "maninder@ciena.com",
        "time": "Wed Oct 28 14:04:33 2020 +0530"
      },
      "committer": {
        "name": "Maninder",
        "email": "maninder@ciena.com",
        "time": "Wed Oct 28 14:34:09 2020 +0530"
      },
      "message": "VOL-3589 Update voltha go to support new version v4 of voltha protos\n\nChange-Id: I32074b5c05b08f8ebd2205f8dc2af225bff465cc\n"
    },
    {
      "commit": "9a50f033c5fd9d9668d1095cefb9c31424936723",
      "tree": "5855ea4f416f962a9dc868d97d9775a932e7d0a0",
      "parents": [
        "c5ebd2ff35146b27e41132adc7081b6657b049e5"
      ],
      "author": {
        "name": "Girish Gowdra",
        "email": "girish@opennetworking.org",
        "time": "Wed Sep 16 13:21:10 2020 -0700"
      },
      "committer": {
        "name": "Girish Gowdra",
        "email": "girish@opennetworking.org",
        "time": "Thu Sep 17 13:26:49 2020 -0700"
      },
      "message": "VOL-3212: Fix uni-trap flow match and actions\n\nChange-Id: Iba217562a7631a9ab7dc49a4636d8f5f1a3e3a80\n"
    },
    {
      "commit": "6031aadc898df6c284d2ee03363cf7a654d1caeb",
      "tree": "2dfffc4194fbe7e425a1874370a1bfa42ddd9cce",
      "parents": [
        "5809b5be7d6f9f4423546e4a89915d66a17880e5"
      ],
      "author": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Wed Jul 29 16:36:33 2020 -0400"
      },
      "committer": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Thu Sep 10 12:31:42 2020 -0400"
      },
      "message": "VOL-2867 - Replaced coreif interface package with smaller per-package interfaces.\n\nAlso moved state transition logic into its own package.\nAlso removed unused interfaces \u0026 mocks.\n\nChange-Id: I849741853620684e6ceafe6e098a9c4f64fbdc6f\n"
    },
    {
      "commit": "1c91d5f1653d335f2800faeea32a8ce89aab46fa",
      "tree": "ad227c6b2fa80c86821ba6f05d5f44653699cf59",
      "parents": [
        "f6db9f1f8b8b90d29a1e49c7c332031435cdea3c"
      ],
      "author": {
        "name": "Rohan Agrawal",
        "email": "rohan.agrawal01@infosys.com",
        "time": "Wed Jul 29 05:46:05 2020 +0000"
      },
      "committer": {
        "name": "Rohan Agrawal",
        "email": "rohan.agrawal01@infosys.com",
        "time": "Wed Jul 29 07:37:58 2020 +0000"
      },
      "message": "[VOL-3375]Remove field pkg from log statements\n\nChange-Id: Iee3a7d41ea6cdc539aaf7bc670e09ae27a98030f\n"
    },
    {
      "commit": "2a07b8633f96e998542c648af31aeb520b69613e",
      "tree": "a4b8e30d332f2daa581d61c7253f825ec78bc374",
      "parents": [
        "9395a81756d5f18c0f319a74e1c5ac553010313b"
      ],
      "author": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Fri Jun 19 15:23:07 2020 -0400"
      },
      "committer": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Fri Jul 17 10:04:49 2020 -0400"
      },
      "message": "VOL-3121 - Separated ports from devices.\n\nSimilar to flows/groups/meters/logical ports.\nAlso added ListDevicePorts and GetDevicePort to the adapter API.\nAlso removed unused `// +build integration` tests.\n\nChange-Id: I586adb9f46a249c9430d4205ef5db2d105dbbe06\n"
    },
    {
      "commit": "31f2180f563ba1f597b735f1091310dbfe81de08",
      "tree": "9751e4cc8429f113fe86126c3779d596908bb0ea",
      "parents": [
        "8f9e9df5861ed0ad8957a8204c3036bf4e50c72d"
      ],
      "author": {
        "name": "Rohan Agrawal",
        "email": "rohan.agrawal01@infosys.com",
        "time": "Fri Jun 12 05:38:46 2020 +0000"
      },
      "committer": {
        "name": "Rohan Agrawal",
        "email": "rohan.agrawal01@infosys.com",
        "time": "Fri Jul 10 06:03:52 2020 +0000"
      },
      "message": "[VOL-3187]Pass Context down the execution call hierarchy across voltha-go codebase\n\nChange-Id: I6bc2a0f7226c1beed4ae01a15d7b5c4dc04358d8\n"
    },
    {
      "commit": "fa9d6d44085b2b99b65e14a74f6602f242ca8e6e",
      "tree": "1323df17879bb88bd65c7b9b3dfad854796f591e",
      "parents": [
        "d1387da67fb4087e5e404bf9f0365c654fda7c56"
      ],
      "author": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Mon May 25 11:49:40 2020 -0400"
      },
      "committer": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Fri Jun 12 12:20:26 2020 -0400"
      },
      "message": "VOL-3121 -  Separated out logical ports from logical agent.\n\nSimilar to flows/groups/meters.\nAlso modified device_route tests to generate unique port IDs (`.OfpPort.PortNo`s) across all UNI ports withing each test, i.e. within an OLT.\nAlso replaced logicalPortsNo map \u0026 associated NNI vs UNI logic with root device checks.\n\nChange-Id: Ib0cecbf7d4f8d509ce7c989b9ccf697c8b0d17d6\n"
    },
    {
      "commit": "433a31a7ee7834d8c53f5c820081c24a81d85928",
      "tree": "7c78f5b42996f906aa16bd0324906f636f7c5c1a",
      "parents": [
        "0db4c81889d8231e4b89832378815e0e7a5f2291"
      ],
      "author": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Wed May 20 19:04:48 2020 -0400"
      },
      "committer": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Mon Jun 01 16:32:34 2020 -0400"
      },
      "message": "VOL-3121 - Separated out LogicalDevices\u0027 low-level flow/meter/group handling into separate packages.\n\nThe new implementation hides the compexity of locking, caching, and interacting with the db.\nAn attempt was made to ensure that locks are held while updates are made, by returning a \"handle\" object from each flow/group/meter lock() call, and only allowing access through this call.\n\nAn attempt was also made to remove proto.Clone-ing.  flows/groups/meters which are returned are NOT cloned, and MUST NOT be modified by users of the flow/group/meter loaders.  In addition, flows/groups/meters which are given to the loaders MUST NOT be modified afterward.\n\nThere remain many cases where errors during particular kv updates may cause inconsistent state.  TODOs have been added for many of these cases.  Resolving this may require exposing (through voltha-lib-go) the transaction mechanism from etcd.\n\nThere is also the issue that locking a flow/meter/group while another flow/meter/group is held could cause deadlocks.  This can be avoided by acquiring locks in a consistent order.  Something to keep in mind while fixing the previous issue.\nChange-Id: I146eb319c3564635fdc461ec17be13e6f3968cf7\n"
    },
    {
      "commit": "addb66a47a4d656387b802cd4d1d5a78086ebe30",
      "tree": "e9f6ff6ac7d9119defd65ea2726e26e19ab99a2f",
      "parents": [
        "3bbfa35c0d355cf1959b3fd0eeb786448037ace9"
      ],
      "author": {
        "name": "Mahir Gunyel",
        "email": "mahir.gunyel@netsia.com",
        "time": "Wed Apr 29 18:08:50 2020 -0700"
      },
      "committer": {
        "name": "Mahir Gunyel",
        "email": "mahir.gunyel@netsia.com",
        "time": "Wed May 13 15:27:49 2020 -0700"
      },
      "message": "[VOL-3001] Separating flows, groups and meters from LogicalDevice.\n- This is to improve the performance of flow addition to system.\n- This patch does not include separation of the flows from Device. It will be implemented in another patch.\n- Flows, groups and meters are kept in store by their unique ids per logical device, and cached into a map with these unique ids per logical device again.\n  Accessing to this store and map is synchronized by a RWLock.\n  Also a lock is kept in memory per flow, meter and group to synchronize the modifications (add/modify/delete requests) per flow/meter/group.\nChange-Id: Ic0135faef0bbd1664693375fa6527e0242919e6d\n"
    },
    {
      "commit": "8b4abbf8b424edfcaa8dfe75d53c2d62b6b209f8",
      "tree": "4bf543a117bd146ca86846bda2a0c5fbce1cb52d",
      "parents": [
        "450933ade7a71cac262490e9bc49d72fd4aededc"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Apr 24 17:04:30 2020 -0400"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Apr 30 18:07:16 2020 +0000"
      },
      "message": "[VOL-2972] Revert added flows on failure\n\nThis commit consists of:\n1) Reverts added flows on flow addition failure (e.g. one adapter\nmay return a failure in which case any corresponding flow that\nhas been successfully added to the other adapter will be removed).\nThe corresponding logical device flow will be removed as well.\n\n2) Some minor refactoring in the mocks adapter\n\n3) Some minor logging change to decrease the clutter when running\nunit tests.\n\nChange-Id: Ia63243e83516ef81152893563bef76c830bea022\n"
    },
    {
      "commit": "45a13e4d478a0f7c9877f919a7012f3324cc73e3",
      "tree": "af332a76d5d04ced2f00ff214255bc83be4be630",
      "parents": [
        "c1129f15f524ed838d1e9af0017761fc95eb671e"
      ],
      "author": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Mon Apr 13 12:23:50 2020 -0400"
      },
      "committer": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Fri Apr 24 10:13:00 2020 -0400"
      },
      "message": "VOL-2920 - Remove NBI passthrough functions.\n\nModified the NBIHandler to reference device, logical device, and adapter managers as embedded types, allowing the managers to directly implement API functions, without the need for individual passthrough functions.\nAlso created a new event.Manager type, which is embedded in device.LogicalManager.\nAlso renamed device.NewDeviceManagers() to device.NewManagers().\n\nChange-Id: I8455da79b991ee67cc16cf898b00b0c98ea97bcd\n"
    },
    {
      "commit": "787224ac890c844be286cb4a8b23b04132897623",
      "tree": "db91b811cd1d6160626824476ff84ba0ed90723b",
      "parents": [
        "2b21604882325e2ed70781cde4fc87e927a3a512"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Apr 16 18:08:47 2020 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Apr 17 10:03:16 2020 -0400"
      },
      "message": "[VOL-1385] Remove parent\u0027s device flows after child deletion\n\nThis commit fixes the following:\n\n1) Do not automatically raise an error when no routes can be\nfound when decomposing a flow.  In some cases flows can still\nbe decomposed (e.g. some trap flows).\n2) Delete flows from a parent device when receiving delete flow\ninstructions from the OF controller after a child device has\nbeen deleted (previously was failing as no route could be\nobtained).\n\nChange-Id: I33dd45d52626146f0a6b4668048c979b5c931f9c\n"
    },
    {
      "commit": "f56a4689cd0f289fb8a6b4c759ada9acb6a1fe59",
      "tree": "53aa8c393b9ea39aadc8eb3a408457e26566bd39",
      "parents": [
        "5ff3092a40bed8d7502ddca8aded2542f9e127ff"
      ],
      "author": {
        "name": "Girish Kumar",
        "email": "girish_kumar@infosys.com",
        "time": "Fri Mar 20 20:07:46 2020 +0000"
      },
      "committer": {
        "name": "Girish Kumar",
        "email": "girish_kumar@infosys.com",
        "time": "Mon Mar 23 18:11:00 2020 +0000"
      },
      "message": "[VOL-2694] Use package specific logger instance in all log statements\n\nChange-Id: Icf1cb5ade42e42179aed7731b767af2f52481e3d\n"
    },
    {
      "commit": "e75f28466d18d42734f2be42884145c25c6ded58",
      "tree": "e356648f9ab97c0b239027db81707bd25fd8ea5e",
      "parents": [
        "48d46e11328a68b54f3ae2b42f6911d27fc6724d"
      ],
      "author": {
        "name": "Matt Jeanneret",
        "email": "mj3580@att.com",
        "time": "Sat Mar 14 15:45:12 2020 -0400"
      },
      "committer": {
        "name": "Matt Jeanneret",
        "email": "mj3580@att.com",
        "time": "Wed Mar 18 11:15:15 2020 -0400"
      },
      "message": "VOL-2114: No need for vid 4000 controller flows\n\nChange-Id: I054eef570c9e2978d05ab5403de7177cdb591295\n"
    },
    {
      "commit": "442e7c79a650b83c0e84c5827d5f4e9f70b315fb",
      "tree": "90686a69e5f9fdb4d0c4f1f48e372eac5988477c",
      "parents": [
        "18fa0c944878b68cea9174f6f31a10133d3513c8"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Tue Mar 10 16:13:48 2020 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Tue Mar 17 16:04:32 2020 -0400"
      },
      "message": "[VOL-2164] Update rw-core to use the Async Kafka API\n\nThis commit consists of the following:\n\n1. Process per-device requests in the Core in the order they are\nreceived. If there are lots of requests on a given device then\nthere will be some latencies introduced due to ordering.  With\nrecent changes in the model along with keeping the request lock\nto a minimal then these latencies are reduced.  Testing did not\nshow and noticeable latencies.\n\n2) Keep the request lock from the moment a request started\nprocessing to the moment that request is sent to kafka (when\napplicable).  Adapter responses are received and processed\nasynchronously. Therefore, an adapter can takes all the time it\nneeds to process a transaction.  The Core still has a context\nwith timeout (configurable) to cater for cases where the adapter\ndoes not return a response.\n\n3) Adapter requests are processed to completion before sending a\nreponse back to the adapter.  Previously, in some cases, a\nseparate go routine was created to process the request and a\nsuccessful response is sent to the adapter.  Now if the request\nfails then the adapter will receive an error. The adapter\nrequests for a given device are therefore processed in the\norder they are received.\n\n4) Some changes are made when retrieving a handler to execute\na device state transition.  This was necessary as there was some\ntransition overlap found.\n\nUpdate after multiple reviews.\n\nChange-Id: I55a189efec1549a662f2d71e18e6eca9015a3a17\n"
    },
    {
      "commit": "fdea1e3fb6a5e4e964107fb4b15021e741bff72f",
      "tree": "d23c211e5bd8082ecc9456b9804344df5cd9b08e",
      "parents": [
        "9ac1cd5bae3d4135813d6225784df4a20953d079"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Feb 21 15:35:41 2020 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Feb 27 10:21:04 2020 -0800"
      },
      "message": "VOL-2632 Error propagation from HashFlowStats\n\nChange-Id: If2872e97e2b6c3c751f64dadfef47bfde3a77551\n"
    },
    {
      "commit": "820197cd6aa714dc34d2b3278d138fdfa884eb77",
      "tree": "527abb866e97771baaa746fe46fd408a3c9576e0",
      "parents": [
        "16ce36a1d659ee84982d81399ef9bf0a4f015b1e"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Feb 13 16:35:33 2020 -0500"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Feb 14 14:06:25 2020 -0500"
      },
      "message": "[VOL-2576] Improve route calculation\n\nThis commit changes the way device routes are calculated. It\nreplaces the device graph method. The graph method relies on the\nshortest path calculation which is quite resource intensive. For\ninstance, generating the routes for a PON network with 1 OLT having\n8 PON ports, 64 ONUs per Port and 4 UNIs per ONUs took 96 secs to\ngenerate the 4096 routes.  The new method creates the routes from\nthe devices data with no middle step.  Generating routes for the\nabove topology now takes 4ms.\n\nChange-Id: I32bffe06d12ad0fea94002a39f217547dc55cdbf\n"
    },
    {
      "commit": "467fe7536d85d096354b60fa49346f20a9e6f7f7",
      "tree": "8022b3eb7b2188716eb3649d8f12543e3b9ddb18",
      "parents": [
        "b9cfcb167c2cbe01ea37cf1edd4e3dd9915b78d0"
      ],
      "author": {
        "name": "npujar",
        "email": "Nikhil.Pujar@radisys.com",
        "time": "Thu Jan 16 20:17:45 2020 +0530"
      },
      "committer": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Tue Feb 04 11:25:40 2020 -0500"
      },
      "message": "VOL-2180 context changes in voltha-go\n\nPassed context up as far as possible.\nWhere context reached the gRPC api, the context is passed through directly.\nWhere context reached the kafka api, context.TODO() was used (as this NBI does not support context or request cancelation)\nAnywhere a new thread is started, and the creating thread makes no attempt to wait, context.Background() was used.\nAnywhere a new thread is started, and the creating thread waits for completion, the ctx is passed through from the creating thread.\nCancelation of gRPC NBI requests should recursively cancel all the way through to the KV.\n\nChange-Id: I7a65b49ae4e8c1d5263c27d2627e0ffe4d1eb71b\n"
    },
    {
      "commit": "2ae470fb773f92a43078574e343967263fb38c96",
      "tree": "52ef7d2f5cc889c7a8b8cfbf2293e20d76b94ccb",
      "parents": [
        "0c89b3c7ea245bbb4861e497a72990520da0cf7c"
      ],
      "author": {
        "name": "serkant.uluderya",
        "email": "serkant.uluderya@netsia.com",
        "time": "Tue Jan 21 11:13:09 2020 -0800"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Jan 24 16:24:16 2020 +0000"
      },
      "message": "VOL-1643 Update voltha-go to use voltha-protos and voltha-lib-go v3.0.0\n\nChange-Id: I86744943d59de38e9285ed7f53adc49c3b047e62\n"
    },
    {
      "commit": "09959ae1c1f0362b5cf0408dc8335c9e4fbf9f5c",
      "tree": "321519dc026cbf2bc0398d4e81f75ae1db6960e2",
      "parents": [
        "7cf8e0b18db7e80a5cf9606fb149bca10f083c85"
      ],
      "author": {
        "name": "Esin Karaman",
        "email": "esin.karaman@netsia.com",
        "time": "Fri Nov 29 13:59:58 2019 +0000"
      },
      "committer": {
        "name": "Matt Jeanneret",
        "email": "mj3580@att.com",
        "time": "Fri Jan 10 17:19:30 2020 +0000"
      },
      "message": "VOL-2294 Flow-decomposer should not decompose multicast flows;\nit should leave it as it is.\n\nChange-Id: I6020b66257ed6f19145298dde34c2bae7b338650\n"
    },
    {
      "commit": "6e55d9e4de4ce8646af9403a8ba4288a5db7bea4",
      "tree": "ac22e4a063e028e314e3d611c5eaf9328ab3c968",
      "parents": [
        "5c28f5535132af97973165b74d1b46935cf20044"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Dec 12 18:26:26 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Dec 12 18:27:24 2019 -0500"
      },
      "message": "[VOL-2318] - Fix for jenkins NBI Failure\n\nThis commit adds the latest devices and logical devices to the\ndevice agents and logical device agents respectively. Any GET\nis returned directly from these agents instead from the model.\nAnd any create/update results in the data being sent to the KV\nstore via the model and also results in the latest data in the\nagent being updated.   If the Core dies and restart then the\nlatest data will be pulled from KV.   These changes assumes\nthat a device or a logical device is always owned by one Core\nonly which is the case.\n\nChange-Id: Ie671cd70b38a58a3b32fa476eced5f218aeadad9\n"
    },
    {
      "commit": "1d86a528896c873e6ed096b9327a73c25239327c",
      "tree": "f61adf27aa46507b5d42fa9499bd18bb3fd21c29",
      "parents": [
        "03fe56f418015507af89d49fd8a7c8f1643b5065"
      ],
      "author": {
        "name": "npujar",
        "email": "Nikhil.Pujar@radisys.com",
        "time": "Thu Nov 14 17:11:16 2019 +0530"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Nov 27 18:37:47 2019 +0000"
      },
      "message": "VOL-1900 lint warning fixes rw_core\n\nChange-Id: Icaa84d7ce24163da90c91ff2babcbb78ff4e9141\n"
    }
  ]
}
