)]}'
{
  "log": [
    {
      "commit": "609194f68f8f99507aa75293fe364d5f5c4a268a",
      "tree": "e1d34ee98afca996b9edfcd1b6cc1cddc9616b95",
      "parents": [
        "6f4978cd8387de7eb3a650a3d3a87264acf31efb"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Oct 21 06:17:37 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Oct 21 06:17:37 2013 -0700"
      },
      "message": "update uses of renamed pyloxi constants\n"
    },
    {
      "commit": "e4b384df950b553313a628ef9c37cba455ba8243",
      "tree": "6860128c143570f0007b2a13b65835ccf4db81c7",
      "parents": [
        "9f2f17e6715531ed1a750f09f1718f4aa40f8bec"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Sep 13 14:33:40 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Sep 30 13:37:41 2013 -0700"
      },
      "message": "testutils: add new functions to check for dataplane packets\n\n`receive_pkt_check` and `receive_pkt_verify` had slightly different\nfunctionality and neither were sufficient for complex tests. This change\ndeprecates them and adds new functions.\n\nThe high level `verify_packets` function is sufficient for most tests. When\nmore complex logic is needed the primitive functions `verify_packet`,\n`verify_no_packet`, and `verify_no_other_packets` should be used directly.\n\nAll OpenFlow 1.0/1.3 tests are updated to use the new functions. The old\nfunctions are left around for compatibility with out of tree tests.\n"
    },
    {
      "commit": "4c504f32da9ba180c1091a631063a567fbb921ae",
      "tree": "b107414b0231d0ed48783e95e55f912e19a43a26",
      "parents": [
        "ee0e680afbb7e22f9a7a7f12c575f02dd9ee65a3"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Jun 07 17:24:14 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Jun 07 17:24:14 2013 -0700"
      },
      "message": "testutils: add verify_packet_in and verify_no_packet_in\n\nChecking that the controller received a packet-in message is surprisingly\ncomplicated to do correctly. Because the switch may send unexpected packet-ins\n(Linux IP stack on IVS\u0027s OFPP_LOCAL, for example) each test needs logic to\nmatch the packet data, in_port, etc to figure out if this is the packet-in\nmessage it\u0027s looking for.\n\nThis change adds two testutils functions that automate this, and replaces all\nthe other implementations in tests.\n"
    },
    {
      "commit": "ea8c472f36be65f3a8f2d9a3f76c231e12524780",
      "tree": "d5086d9c905b3d20e047c482eed3f571756e3730",
      "parents": [
        "ff637c9fc8949913789b930a70ad7ec8bcc4bbff"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Apr 04 15:30:20 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Apr 04 15:30:20 2013 -0700"
      },
      "message": "explictly set buffer_id for packet-out messages\n\nThe old pylibopenflow library did this by default, but PyLoxi initializes that\nfield to zero.\n"
    },
    {
      "commit": "ba3f0e2ebbe7b4f933c725e33b861895ad8f16d3",
      "tree": "2e2ebffefbe8152022bf43414cf71a5dfe265f09",
      "parents": [
        "8fbfd66c4033bb81694a8d1b80a50f8125f53ae6"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 16:43:57 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: subtype flow_mod classes\n"
    },
    {
      "commit": "b73808cc3c603f1ff3cccf225c71ff2e76313308",
      "tree": "edf0dbed9a42596406cfe4b813d542b9faa21c39",
      "parents": [
        "7c7342aacc146b200e3c4def63c5280ed7adb4b9"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 15:22:23 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: move header fields into the message classes\n"
    },
    {
      "commit": "d0478ff69b4be47852e98e663e78c4627202bb2a",
      "tree": "0983639c1c2d761345b866a8909ff5a0560a96c1",
      "parents": [
        "5b44ab4d048a93acce528280b54fd572766b75f6"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 12:46:58 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: rename uses of match fields\n"
    },
    {
      "commit": "c495d9e91e8a3a27399654e767afbb3c6f158595",
      "tree": "df9334b3bc16a82974155749243fcb0ad6202e9e",
      "parents": [
        "9d3cc6bb3fc93d18631784a7eb858f6a0b8cbf9f"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 08 17:43:36 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: rename action_list.add to append\n\nFor consistency with the list type.\n"
    },
    {
      "commit": "9d3cc6bb3fc93d18631784a7eb858f6a0b8cbf9f",
      "tree": "f2c37387251df5a102b5d7c1af6776688ee8de86",
      "parents": [
        "28fa927a64e367d2fa0c8d2f300e2f7963d98127"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 08 16:33:08 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: remove action_ prefix from callers\n"
    },
    {
      "commit": "28fa927a64e367d2fa0c8d2f300e2f7963d98127",
      "tree": "c7799042196181bf14fbee14bbffcfa62a8fa1f2",
      "parents": [
        "d7b0ffabfde4d7b10fc34d91b79b9fd9638c8760"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 08 16:00:25 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:50 2013 -0700"
      },
      "message": "loxi-prep: access message/action modules through the ofp module\n"
    },
    {
      "commit": "d7b0ffabfde4d7b10fc34d91b79b9fd9638c8760",
      "tree": "b3c25f1f914fca05f581636de7739dea995b759b",
      "parents": [
        "537247359caf0f7ad204d0fc1add4a48efe525a8"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 08 15:53:42 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 09:41:44 2013 -0700"
      },
      "message": "loxi-prep: remove uses of cstruct module\n\nThis module does not exist in PyLoxi.\n"
    },
    {
      "commit": "3bfc8221cce2da27725b3cfa92848cd913c0d2e7",
      "tree": "eeca2b6c9449a77c32db735d682d4377af0577f3",
      "parents": [
        "fcc0991b41fe1827819ef5aafba27b7820e544fb"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Feb 13 18:18:57 2013 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Feb 13 18:18:57 2013 -0800"
      },
      "message": "Size and ingress port updates\n\nUse minsize config parameter for vlanprio1 test and in packet\naction tests using DirectBadPacketBase (many tests).\n\nIn addition, when specifying the catch all flow, qualify on\ningress port since you know it.  Still may want to look for\nanother mechanism for this.\n"
    },
    {
      "commit": "3a261d5f415f91a06afe06437b66ed84ff266571",
      "tree": "adedcf0c7e809f7d3f69e56ef966e4704e1b65bd",
      "parents": [
        "32bf948a5f640a07c89926fb10ebe4b0d9cb01da"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 03 17:45:08 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 03 18:03:45 2013 -0800"
      },
      "message": "raise an AssertionError if do_barrier fails\n\nThis removes a lot of boilerplate code.\n"
    },
    {
      "commit": "32bf948a5f640a07c89926fb10ebe4b0d9cb01da",
      "tree": "2d0253fbc801f82658c8a34cbb2961fecb314947",
      "parents": [
        "5c3151c308aec2178ec516ae074f07a4fb18a619"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 03 17:26:30 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 03 18:03:45 2013 -0800"
      },
      "message": "remove assertions on the return value of delete_all_flows\n\nThis function can no longer fail.\n"
    },
    {
      "commit": "5c3151c308aec2178ec516ae074f07a4fb18a619",
      "tree": "d5236bb64ae0a77f1954779467683a0ecbd5198c",
      "parents": [
        "e30455b947669e3dd9adc9f2e591a0c5f3b97d7f"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 03 17:15:41 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 03 18:03:45 2013 -0800"
      },
      "message": "throw AssertionError if controller.message_send fails\n\nUnlike other types of exception an AssertionError will cause the test to \"fail\"\ninstead of \"error\". Using an exception instead of checking return values\nremoves a lot of boilerplate code that wasn\u0027t always present (or correct). It\nmay also help disabuse test writers of the dangerous notion that succeeding in\nwriting a message to the TCP socket means anything.\n"
    },
    {
      "commit": "8dab46620c76641e820a1ef404329217c84c1fde",
      "tree": "6bb668b40066f7bdc04ecc1e4dd3431565b000df",
      "parents": [
        "e6fd6a265c51245c230abbc0a1d48217dfc639ec"
      ],
      "author": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Nov 02 13:40:14 2012 -0400"
      },
      "committer": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Nov 02 13:40:14 2012 -0400"
      },
      "message": "styling changes\n"
    },
    {
      "commit": "2014f9b1c88efef6116d5b3f5dae552e5c9741c6",
      "tree": "903a6842d75d708e90f04e7128a8cc3ac4e320b8",
      "parents": [
        "483e15412b1c3902ec398cdaa7c79d9cec147d76"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 15:29:40 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 18:10:21 2012 -0700"
      },
      "message": "remove config parameter from several testutils functions\n"
    },
    {
      "commit": "b90a1c4dfc0cfe40251187124ff89d7651f2755d",
      "tree": "1ba481298fbd4379fa1eedc0acc35899d7c33a38",
      "parents": [
        "477f4817eedc0ef6306459de1f88d77739bee7cf"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 09:16:05 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 18:10:14 2012 -0700"
      },
      "message": "move base test classes to oftest.base_tests\n\nThis lets them be shared between separate directories of tests.\n"
    },
    {
      "commit": "477f4817eedc0ef6306459de1f88d77739bee7cf",
      "tree": "2133c905fdd5da93949bd4cc8bb343be93370b1c",
      "parents": [
        "d1d9c287220588b5e8cff337f4f136ab9660a235"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 22:49:00 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 12:30:31 2012 -0700"
      },
      "message": "add a global config dictionary\n\nThere was no need for each test module to keep a copy for itself. This means we\ncan also get rid of test_set_init.\n"
    },
    {
      "commit": "9a00381ec150547bc039a60b5c5f0269bc0a8dfb",
      "tree": "49572bb0e31027cc02a46d5a2f52d29c1b954eec",
      "parents": [
        "123928cd3c6a26ecbd852e2e01d6a5b921a5256a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 17:17:59 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:39:50 2012 -0700"
      },
      "message": "use the singleton logger object\n\nThere was no need for each test file to have its own logger.\n"
    },
    {
      "commit": "123928cd3c6a26ecbd852e2e01d6a5b921a5256a",
      "tree": "66d8190c0bcb5b91ab6b8b17bee10b391d213ae3",
      "parents": [
        "122ca364f8465cee8986d01d2c6728ae3c7575ff"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 21:28:53 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:37:48 2012 -0700"
      },
      "message": "fix actions.VlanPrio1\n\nThe action class was incorrect and the packet size needs to take into account\nthe VLAN tag. Shreya reviewed these changes.\n"
    },
    {
      "commit": "da3b5ad89ce995cbc3a08dfff06dcb4f66f85578",
      "tree": "dab88f247ee287b8efaee8ae287676aa13241fb9",
      "parents": [
        "fb9ce27051f9df1a3f43e43154d0443f06f80287"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 09:05:32 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 10:15:27 2012 -0700"
      },
      "message": "move testutils to src/python/oftest\n\ntestutils.py needs to be in a common location for different directories of\ntests to use it.\n"
    },
    {
      "commit": "d4a42c671f3b645e82705d24440760d6b0ede8a0",
      "tree": "50050b3de835e7e060eeace19cfe9ff42420ced0",
      "parents": [
        "b46f852f09449a9bffcd0fac5224c3a6b8560208"
      ],
      "author": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 15:35:27 2012 -0400"
      },
      "committer": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 15:35:27 2012 -0400"
      },
      "message": "edited NoAction\n"
    },
    {
      "commit": "b46f852f09449a9bffcd0fac5224c3a6b8560208",
      "tree": "3ef99a92a091d6be60917495d0e65127a6da2cf8",
      "parents": [
        "7b9ec982e387d09ed32ce3fecdd45a850f3875a2"
      ],
      "author": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 15:12:15 2012 -0400"
      },
      "committer": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 15:12:15 2012 -0400"
      },
      "message": "added barrier\n"
    },
    {
      "commit": "7b9ec982e387d09ed32ce3fecdd45a850f3875a2",
      "tree": "ee807b10667b929b169322288c9e3094e5b7de5e",
      "parents": [
        "572e64b9d957d632978cdda93da49a044c3cc1e2"
      ],
      "author": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 14:43:08 2012 -0400"
      },
      "committer": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 14:43:08 2012 -0400"
      },
      "message": "added\n"
    },
    {
      "commit": "82c43bef089566fbeaa696ea2c54ed965e80f4e4",
      "tree": "52e6fd55c74474b2685b459bb90a90ced8145718",
      "parents": [
        "214a9c4ce2bc0479fb284170e6e17ad6bb8db33e"
      ],
      "author": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 13:16:30 2012 -0400"
      },
      "committer": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 13:16:30 2012 -0400"
      },
      "message": "added\n"
    },
    {
      "commit": "9306c7707b8e5195f7f6f5e7d3aef5bb9a851080",
      "tree": "33afbdfb60b7ef3e80be5af636b818f208126e0a",
      "parents": [
        "ae33a90f6757c9b0b635c0730ff46080f2bd981d"
      ],
      "author": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 12:21:40 2012 -0400"
      },
      "committer": {
        "name": "ShreyaPandita",
        "email": "sdnadmin@SDNLABCOMPUTER.ads.iu.edu",
        "time": "Fri Sep 28 12:21:40 2012 -0400"
      },
      "message": "added\n"
    }
  ]
}
