)]}'
{
  "commit": "656ecc6676367d7483667550fa91046d7a8c0719",
  "tree": "4f934b1feda7c7032da3a62d09f4e101929ff5fa",
  "parents": [
    "313c4be4cfc0b0e1bb2551efed6489333b195bfb"
  ],
  "author": {
    "name": "Zsolt Haraszti",
    "email": "zharaszt@ciena.com",
    "time": "Wed Dec 28 15:08:23 2016 -0800"
  },
  "committer": {
    "name": "Zsolt Haraszti",
    "email": "zharaszt@ciena.com",
    "time": "Thu Dec 29 00:15:43 2016 -0800"
  },
  "message": "PONSIM: PON simulator with real dataplane handling\n\nThis was needed because neither CPQD nor OVS can handle\nboth zero-tagged packets and 802.1ad (QinQ).\n\n- extensive unittest proves ponsim functional correctness\n  (for the common use-cases needed in the PON scenario)\n- integrated with frameio and coupled with a rather\n  simple gRPC NBI, ponsim can be operated from Voltha\n  just like a real PON system\n- posim_olt/_onu adapters added to Voltha to work on\n  ponsim\n- CLI can be used to preprovision and activate a PONSIM\n  instance (e.g., preprovision_olt -t ponsim_olt -H localhost:50060)\n- Some of olt-oftest:olt-complex testcases can be run on\n  the ponsim device (in vagrant/Ubuntu environment),\n  but there are some remaining issues to work out:\n  - barrier calls in OF do not guaranty that the flow\n    is already installed on the device. This is a generic\n    issue, not just for ponsim.\n  - the whole test framework is inconsistent about zero-\n    tagged vs. untagged frames at the ONUs, while ponsim\n    is rather pedantica and does exactly what was defined\n    in the flows.\n\nChange-Id: I0dd564c932416ae1566935492134cb5b08113bdc\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "50df298ede88a2f97e3c88308551c53790734dc1",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "bd1022052d5b51d5ff1e30375f1255a7844a0993",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "4d3939d84ee03835dbcc9da88195c30716fca092",
      "old_mode": 33261,
      "old_path": "chameleon/main.py",
      "new_id": "90317271b096bc534ac533c679e7f2d00b97a218",
      "new_mode": 33261,
      "new_path": "chameleon/main.py"
    },
    {
      "type": "modify",
      "old_id": "3f2dd7a42dfe0e1ccd27607729398688d95afe3b",
      "old_mode": 33261,
      "old_path": "cli/main.py",
      "new_id": "a54e4c48d958cf2600824289d13affb67f1f44b2",
      "new_mode": 33261,
      "new_path": "cli/main.py"
    },
    {
      "type": "modify",
      "old_id": "b1aad1a644f5dc25d5bba1d20713aa75b5804f81",
      "old_mode": 33188,
      "old_path": "cli/utils.py",
      "new_id": "0d677d15d958aebf6628e7378111e6ee41ea80d3",
      "new_mode": 33188,
      "new_path": "cli/utils.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "ponsim/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "20b5dabb37cbedefe99ba9047c42ceefc22c8535",
      "new_mode": 33188,
      "new_path": "ponsim/grpc_server.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3d0ffdc97a6456290dda1491758ce10ecc8757a",
      "new_mode": 33261,
      "new_path": "ponsim/main.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c855e39391cd282486ac11200983af8d5f1d0939",
      "new_mode": 33188,
      "new_path": "ponsim/ponsim.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f4ad04d617ef87de6fb0fe8925be9804a8a0335",
      "new_mode": 33188,
      "new_path": "ponsim/ponsim.yml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bca3382a80042e9fdbf42cd2c85c38a700e4411a",
      "new_mode": 33188,
      "new_path": "ponsim/realio.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "365468be84f817a40ea0298adf926c36805565a0",
      "new_mode": 33188,
      "new_path": "ponsim/test_ponsim.py"
    },
    {
      "type": "modify",
      "old_id": "4ddeeb52b897de09a0b18a89e25c6d71c080e364",
      "old_mode": 33188,
      "old_path": "voltha/adapters/broadcom_onu/broadcom_onu.py",
      "new_id": "d2ee546ef49fc99b463d3a2dc8c403bbebf51a9d",
      "new_mode": 33188,
      "new_path": "voltha/adapters/broadcom_onu/broadcom_onu.py"
    },
    {
      "type": "modify",
      "old_id": "e59d5dd7caebfc411013d4c3dc99a3a8716af8cc",
      "old_mode": 33188,
      "old_path": "voltha/adapters/interface.py",
      "new_id": "5e9fef6fd478e24f55f2eb4096a2021b8f01299a",
      "new_mode": 33188,
      "new_path": "voltha/adapters/interface.py"
    },
    {
      "type": "modify",
      "old_id": "559a430a8918e01c5bec7bb9fca0cda4e87bf0b8",
      "old_mode": 33188,
      "old_path": "voltha/adapters/maple_olt/maple_olt.py",
      "new_id": "bcc442b5b333132a610a164ee5159ce92398eeda",
      "new_mode": 33188,
      "new_path": "voltha/adapters/maple_olt/maple_olt.py"
    },
    {
      "type": "modify",
      "old_id": "d59a994b9f7147483995a3ca844acb8180f12efa",
      "old_mode": 33188,
      "old_path": "voltha/adapters/microsemi/microsemi.py",
      "new_id": "aea79f969a435799c3192df9303c0c30d1c15f68",
      "new_mode": 33188,
      "new_path": "voltha/adapters/microsemi/microsemi.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "voltha/adapters/ponsim_olt/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9bd267a299e59b302fcea57e9fd900d25dc2c967",
      "new_mode": 33188,
      "new_path": "voltha/adapters/ponsim_olt/ponsim_olt.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "voltha/adapters/ponsim_onu/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d416db71d0e2ea5a41204285666afa222c664d20",
      "new_mode": 33188,
      "new_path": "voltha/adapters/ponsim_onu/ponsim_onu.py"
    },
    {
      "type": "modify",
      "old_id": "1fdc965425b51d4bed319b42fa874d71a102f89a",
      "old_mode": 33188,
      "old_path": "voltha/adapters/simulated_olt/simulated_olt.py",
      "new_id": "0c9227ea548ad92a55d976734ccc217a0a3a75a4",
      "new_mode": 33188,
      "new_path": "voltha/adapters/simulated_olt/simulated_olt.py"
    },
    {
      "type": "modify",
      "old_id": "bdddb9967527063675e40fed9df84d66ec440032",
      "old_mode": 33188,
      "old_path": "voltha/adapters/simulated_onu/simulated_onu.py",
      "new_id": "ca072bb62d6140c7f8c86e1a9b5ab245d79cd783",
      "new_mode": 33188,
      "new_path": "voltha/adapters/simulated_onu/simulated_onu.py"
    },
    {
      "type": "modify",
      "old_id": "0d260c338db271adee7d90ad61a46bbe5e35c0c2",
      "old_mode": 33188,
      "old_path": "voltha/adapters/tibit_olt/tibit_olt.py",
      "new_id": "ca7652f271d8b77f8ca8c1ef0c8d375ea6f9874c",
      "new_mode": 33188,
      "new_path": "voltha/adapters/tibit_olt/tibit_olt.py"
    },
    {
      "type": "modify",
      "old_id": "f6c88c9ad97753476059e53eb37a8d79d702ee27",
      "old_mode": 33188,
      "old_path": "voltha/adapters/tibit_onu/tibit_onu.py",
      "new_id": "93714dbb0ebf85fd155aae350ff94dea862f20ef",
      "new_mode": 33188,
      "new_path": "voltha/adapters/tibit_onu/tibit_onu.py"
    },
    {
      "type": "modify",
      "old_id": "0c5448fab4c06775fa56ea757bd1c1c0a0150756",
      "old_mode": 33188,
      "old_path": "voltha/core/adapter_agent.py",
      "new_id": "3bf88573a303d22fd48ef1031b5597d4e220d624",
      "new_mode": 33188,
      "new_path": "voltha/core/adapter_agent.py"
    },
    {
      "type": "modify",
      "old_id": "f11247eed6a071c8495f41549f03d62ee603c5bb",
      "old_mode": 33188,
      "old_path": "voltha/core/logical_device_agent.py",
      "new_id": "7dbf0b53e692c366b4f948da16bd63c70526e599",
      "new_mode": 33188,
      "new_path": "voltha/core/logical_device_agent.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6473add2b82ccd6b21f65de6d7c7bbd5ea61be7b",
      "new_mode": 33188,
      "new_path": "voltha/extensions/IGMP.py"
    },
    {
      "type": "modify",
      "old_id": "285c5aed4bc576447c078abd01dadb9af64c43ea",
      "old_mode": 33188,
      "old_path": "voltha/protos/device.proto",
      "new_id": "b4d3c4686cf2034d4a3ab30b0b71c475d2979564",
      "new_mode": 33188,
      "new_path": "voltha/protos/device.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bc4d3637b03389c7b4ad241c6979753c15c0698",
      "new_mode": 33188,
      "new_path": "voltha/protos/ponsim.proto"
    }
  ]
}
