)]}'
{
  "log": [
    {
      "commit": "c41fbece667088409d6ebce617f5ac2f03cf1dfb",
      "tree": "ac726eba612562610c3db95a006574f99b125baf",
      "parents": [
        "04d32f9f165b11b1379c2ca3a0ad72fc4997fb73"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Oct 02 00:27:59 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Oct 02 00:27:59 2013 -0700"
      },
      "message": "testutils: fix flow_match_test when exp_pkt is None\n\nThis fixes a bug introduced in e4b384df, which removed code it shouldn\u0027t have.\n\nReported by Tony van der Peet.\n"
    },
    {
      "commit": "8f45e2dc7666ef5bd04a80b0bb147d673104d0c2",
      "tree": "c4853a76ecb207097e0d12404cd861a48bdf2363",
      "parents": [
        "e4b384df950b553313a628ef9c37cba455ba8243"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Oct 01 16:06:54 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Oct 01 16:06:54 2013 -0700"
      },
      "message": "testutils: use idiomatic ternary operator in flow match tests functions\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": "9f2f17e6715531ed1a750f09f1718f4aa40f8bec",
      "tree": "aac0fff4fbc6b8b51dc262d52685e865bb998305",
      "parents": [
        "1b50442ab6daea4969695001bd1447443d538e65"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Sep 13 13:19:37 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Sep 30 13:37:40 2013 -0700"
      },
      "message": "testutils: fix undefined variable in packet_in_match\n"
    },
    {
      "commit": "150d8b02576596502a3c2369becb0a086f9c9f85",
      "tree": "441bab2327fef0c4fd3cd5b311711c06d5661ab1",
      "parents": [
        "ae8fbf12408c7c5dce2b48c40b8595fbd8a74636"
      ],
      "author": {
        "name": "Kiran Poola",
        "email": "kiran.poola@bigswitch.com",
        "time": "Fri Sep 20 13:30:39 2013 -0700"
      },
      "committer": {
        "name": "Kiran Poola",
        "email": "kiran.poola@bigswitch.com",
        "time": "Fri Sep 20 13:30:39 2013 -0700"
      },
      "message": "Reorganized virtual port interface name in vport create message.\n"
    },
    {
      "commit": "ae8fbf12408c7c5dce2b48c40b8595fbd8a74636",
      "tree": "1edd893fa88f38dbbec5a898ae2f7c981dfda958",
      "parents": [
        "13e9800ede52b01855008f438479d54f2f77e4af"
      ],
      "author": {
        "name": "Kiran Poola",
        "email": "kiran.poola@bigswitch.com",
        "time": "Thu Sep 19 16:32:32 2013 -0700"
      },
      "committer": {
        "name": "Kiran Poola",
        "email": "kiran.poola@bigswitch.com",
        "time": "Thu Sep 19 16:32:32 2013 -0700"
      },
      "message": "Support for specifying interface name while creating virtual port.\n"
    },
    {
      "commit": "472aaea288edad9d16f33a0800af74964a8a5748",
      "tree": "3441a0672c380034e1d3e229da05feed7c7b9540",
      "parents": [
        "a9e64420edde500743f191735a856d89db34dd2d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Aug 27 09:27:38 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Aug 27 13:08:19 2013 -0700"
      },
      "message": "use PcapWriter to log dataplane traffic\n\nWhen we write a logfile we\u0027ll also write a pcap file with the extension\nreplaced by \".pcap\". If per-test logging is enabled we\u0027ll open a new pcap file\nfor each test.\n"
    },
    {
      "commit": "a9e64420edde500743f191735a856d89db34dd2d",
      "tree": "3ebde7c643016a11ae4466bb19c2a8f798ff1d9c",
      "parents": [
        "360bcca038a82fa3af0a982095e03e899e55b8dd"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 26 13:56:24 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 26 16:33:59 2013 -0700"
      },
      "message": "pcap_writer: use PPI\n"
    },
    {
      "commit": "360bcca038a82fa3af0a982095e03e899e55b8dd",
      "tree": "4fe3984c57826e466ec1dcdc1e08ec13601fe9af",
      "parents": [
        "69fd8e00e577492589447cf867d9cd6794511858"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 23 17:10:14 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 26 16:33:58 2013 -0700"
      },
      "message": "add a simple pcap file writer\n"
    },
    {
      "commit": "69fd8e00e577492589447cf867d9cd6794511858",
      "tree": "78801fb30c66ae47e8c9d5f60c22834b827a5bb7",
      "parents": [
        "4a905e0663b3befdde8fb53f51e8c9cfafdf7915"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 23 16:23:42 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 23 16:35:30 2013 -0700"
      },
      "message": "per-test logfiles\n\nThe new --log-dir option creates a directory with one log file for every test\n(plus main.log for the oft script). It takes precedence over the --log-file\noption if both are specified.\n\nThe --log-append option and the ability to pass \"-\" or \"stderr\" to --log-file\nhave been removed.\n"
    },
    {
      "commit": "024f9d53ab410ebf052e5169004f97b931516bbf",
      "tree": "75bbc7e9f4406b6938797e58699ceba44b13ac22",
      "parents": [
        "3d22812403307852d1d87044f7c5509760eeab67"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 12 15:56:39 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 12 15:56:39 2013 -0700"
      },
      "message": "add scapy imports to fix packet pretty-printing\n"
    },
    {
      "commit": "3d22812403307852d1d87044f7c5509760eeab67",
      "tree": "b7ae935f3ea12cc040ba21496c9c3e4932f6730f",
      "parents": [
        "d6e79187963be79129748b74dda8e8f5c6f7be13",
        "be4fd42e388c0f9cc9fe5dd549b48228b404a64a"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Mon Aug 12 14:58:28 2013 -0700"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Mon Aug 12 14:58:28 2013 -0700"
      },
      "message": "Merge into master from pull request #64:\nfix/workaround all pylint errors (https://github.com/floodlight/oftest/pull/64)\n"
    },
    {
      "commit": "fdec0fbf17c8e966ffc783de66d011e9ed809396",
      "tree": "6b0bf2ef3a5fcd059edc91d7f9f4609a8418c52c",
      "parents": [
        "720eaf272b8de1d5ffa810e5f8ec3e6678335931"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 18:01:05 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 18:01:05 2013 -0700"
      },
      "message": "workaround pylint warnings\n"
    },
    {
      "commit": "720eaf272b8de1d5ffa810e5f8ec3e6678335931",
      "tree": "4ba70a72aeda1a4c147a51562c5593d16fa88297",
      "parents": [
        "a68176f803f56ead0e73ba8aac052e2886b6f2ef"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 18:00:45 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 18:00:45 2013 -0700"
      },
      "message": "fix bugs found by pylint\n"
    },
    {
      "commit": "a68176f803f56ead0e73ba8aac052e2886b6f2ef",
      "tree": "1485cfa1a449c1c868ec0340e3c14d1ecbcc319e",
      "parents": [
        "2855ef7187e9b2ebd3d2b1b2240aebb277ee1bff"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 17:41:05 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 17:41:05 2013 -0700"
      },
      "message": "wrap scapy with explicit imports\n\npylint can\u0027t handle scapy\u0027s magical imports.\n"
    },
    {
      "commit": "82c882de48d1c0d6ac0d2ee03944f98dc0cd1adf",
      "tree": "9fac9d58ef10dd03cddc787171db9be43d8e2b67",
      "parents": [
        "2855ef7187e9b2ebd3d2b1b2240aebb277ee1bff"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 17:13:52 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 09 17:13:52 2013 -0700"
      },
      "message": "basic-1.3: add basic.DefaultDrop\n"
    },
    {
      "commit": "045db0710e1654dd1fdf0b9c9ecc68f23991ca39",
      "tree": "4fb52a61a67a0e19f35a974820da2e18d8d2e631",
      "parents": [
        "d53156a1ad4889118378c1f07756e2de5b2d38bf"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Aug 06 13:16:30 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Aug 06 13:16:30 2013 -0700"
      },
      "message": "testutils: add openflow_ports()\n\nThis function replaces the common boilerplate code that gets a list of port\nnumbers from the config dictionary and checks that enough ports are available\nfor the test.\n\nI changed the OF 1.3 tests to use this function.\n"
    },
    {
      "commit": "d53156a1ad4889118378c1f07756e2de5b2d38bf",
      "tree": "380fe5040c7d241e87efb4cd81e20bdc8543630e",
      "parents": [
        "b626a9c3bd8f57e1fb86ddc30b1281d359c912c7"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 05 17:17:33 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 05 17:17:33 2013 -0700"
      },
      "message": "update pyloxi to c47bc6facb2869a7833b8694b7a20b3113284d94\n"
    },
    {
      "commit": "3f17dbba1772f56640b0b9fe87b1d2a338d02d9a",
      "tree": "cfd86b7018aacf969308c318f62bb6747e8884fb",
      "parents": [
        "b7dc3e25d8e4c18d54251f8fe2646c1edb7c6ef1"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Jul 19 13:51:37 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Aug 05 16:38:35 2013 -0700"
      },
      "message": "packet_to_flow_match: use OFPVID_PRESENT\n\nThe spec requires OFPVID_PRESENT (the CFI bit) to be included in the vlan_vid\nvalue if matching on a vlan id.\n"
    },
    {
      "commit": "b7dc3e25d8e4c18d54251f8fe2646c1edb7c6ef1",
      "tree": "60ffa04f6be37de602df72c60983846653423723",
      "parents": [
        "748d6381f2d4fa80729417992257a880ca794823"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 02 13:51:06 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Aug 02 13:51:06 2013 -0700"
      },
      "message": "testutils: fix simple_eth_pkt src address\n\nA multicast source MAC address is not valid.\n"
    },
    {
      "commit": "86aceb0ffe948b8afa95a86aaadb85afc5cde0a1",
      "tree": "3247d673528be7f586484f0bcfd0299a6b5afe65",
      "parents": [
        "b9d1f4b860e91a4cabe334f48ba9c933360bf521"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 17 18:45:38 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 17 19:16:45 2013 -0700"
      },
      "message": "testutils: add simple_{tcp,udp,icmp}v6_packet()\n\nThese are simplified and IPv6-ified versions of the existing functions.\n\nAlso added IPv6 packets to the OF 1.3 ethertype tests.\n"
    },
    {
      "commit": "9cef27462230a60f932f5ec24b44171a8833b7de",
      "tree": "87baec03f4a15e01f6c7535d7ccda37ef4bfdb8b",
      "parents": [
        "a8d749119c4ec5751c3d3957d3b73c022f50e02d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Jul 16 13:27:00 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Jul 16 13:27:00 2013 -0700"
      },
      "message": "do not attempt to execute base tests\n\nThe OF 1.3 match.MatchTest class was intended to just be a base class, but\nsince it inherits from unittest.TestCase it was being run as a test.\n\nThis change ignores test classes that don\u0027t include a runTest field.\n"
    },
    {
      "commit": "13bdd03ff2f0394b214475509de8ce1fc25767ed",
      "tree": "a25d3c180488e6c1670aafafecc20d14088c67db",
      "parents": [
        "17b8b60b747c16e47ea751a0c7b3d1a9ae2bf15c",
        "5542cf52a65b670aa6bfbf90cf5e27f72a92b3ce"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "lanerl@gmail.com",
        "time": "Fri Jul 12 13:32:28 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "lanerl@gmail.com",
        "time": "Fri Jul 12 13:32:28 2013 -0700"
      },
      "message": "Merge pull request #57 from sumithdev09/master\n\nPolling Hello Message"
    },
    {
      "commit": "5542cf52a65b670aa6bfbf90cf5e27f72a92b3ce",
      "tree": "41f910ec7e6033d640f1d2a7f646bd5be5bdd3f8",
      "parents": [
        "7ecabd21e1787ba69b4455e7e06de5563b524c3f"
      ],
      "author": {
        "name": "sumithdev09",
        "email": "sumith.hy398@gmail.com",
        "time": "Fri Jul 12 14:56:28 2013 -0400"
      },
      "committer": {
        "name": "sumithdev09",
        "email": "sumith.hy398@gmail.com",
        "time": "Fri Jul 12 14:56:28 2013 -0400"
      },
      "message": "Update controller.py"
    },
    {
      "commit": "7ecabd21e1787ba69b4455e7e06de5563b524c3f",
      "tree": "63b1eafc635f5e54095872e0ca907237786a0a43",
      "parents": [
        "6d2e396f5561091c2ee34a903efab955dec0eeb9"
      ],
      "author": {
        "name": "sumithdev09",
        "email": "sumith.hy398@gmail.com",
        "time": "Fri Jul 12 11:10:53 2013 -0400"
      },
      "committer": {
        "name": "sumithdev09",
        "email": "sumith.hy398@gmail.com",
        "time": "Fri Jul 12 11:10:53 2013 -0400"
      },
      "message": "Update controller.py\n\nBugfix:We cannot poll the OFPT_HELLO message using the poll function if exp_msg\u003dNone."
    },
    {
      "commit": "bd56ed611e50984269c836f1849bc59a1f54f31f",
      "tree": "a693e7fbbb6f63bbf14a2ddcb5c3e365187939dc",
      "parents": [
        "c0d26dd11b2c1a98bc1f82cf5bd4051507e29476"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 15:49:44 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 16:15:14 2013 -0700"
      },
      "message": "testutils: update get_stats to support OF 1.3\n"
    },
    {
      "commit": "c0d26dd11b2c1a98bc1f82cf5bd4051507e29476",
      "tree": "849789584c3a75a335c2a92d3d581007141f00f6",
      "parents": [
        "6dc865c39e5a5f172ed6bb30a15da904a169611d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 12:46:03 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 16:15:14 2013 -0700"
      },
      "message": "testutils: update verify_packet_in for OF 1.3\n"
    },
    {
      "commit": "6dc865c39e5a5f172ed6bb30a15da904a169611d",
      "tree": "c7e7b7dd79a8acd280512d872437cd8473507139",
      "parents": [
        "ab7476f499caf2af69e74cd3c1e5e8fe1a693fff"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 10:12:13 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 16:15:14 2013 -0700"
      },
      "message": "testutils: update port_config_get/set for OF 1.3\n"
    },
    {
      "commit": "ab7476f499caf2af69e74cd3c1e5e8fe1a693fff",
      "tree": "580772da5308388aaf20273632d7ee77927487ea",
      "parents": [
        "c717f4452f9da0da6b87820279c1dd9c84f6b08b"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Jun 13 15:53:52 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 16:15:14 2013 -0700"
      },
      "message": "testutils: remove incompatible wildcard check for OF 1.3\n\nThis needs to be replaced with code that uses the table features reply to\ndetermine the fields that cannot be matched.\n"
    },
    {
      "commit": "c717f4452f9da0da6b87820279c1dd9c84f6b08b",
      "tree": "67ea173e8952d15900aa772bff62d4422b80f832",
      "parents": [
        "fe600f5a6fa649aa459dd9425be0c45d42e0b208"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Jun 13 15:49:09 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 16:15:14 2013 -0700"
      },
      "message": "testutils: support of13 in delete_all_flows\n"
    },
    {
      "commit": "fe600f5a6fa649aa459dd9425be0c45d42e0b208",
      "tree": "d6c1258cc59ebdbb1cb890dad6b1fa7e5d04a062",
      "parents": [
        "6d2e396f5561091c2ee34a903efab955dec0eeb9"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Jul 09 13:22:32 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jul 10 16:15:14 2013 -0700"
      },
      "message": "update pyloxi to 46b7804026447644fec44c0ad517b41844eeb91b\n"
    },
    {
      "commit": "6d2e396f5561091c2ee34a903efab955dec0eeb9",
      "tree": "99fa69cdb0ed373aa0d0b1a67d59a50d78804593",
      "parents": [
        "bbb944599cf948c88b8b173cab5bcf76785f1a07",
        "44c4e3f9e6b5cb77661fb255189de43af80b91de"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "lanerl@gmail.com",
        "time": "Mon Jul 08 10:31:21 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "lanerl@gmail.com",
        "time": "Mon Jul 08 10:31:21 2013 -0700"
      },
      "message": "Merge pull request #55 from rlane/barrier-after-delete\n\ntestutils: send barrier after deleting all flows"
    },
    {
      "commit": "44c4e3f9e6b5cb77661fb255189de43af80b91de",
      "tree": "a26181cc552ab4945cd43cf9a83547ca31eaefd6",
      "parents": [
        "6d94d0b07c7bdde0009da443fe5e6280ba62fc41"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Jul 08 10:17:49 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Jul 08 10:17:49 2013 -0700"
      },
      "message": "testutils: send barrier after deleting all flows\n\nIf a flow-add is sent immediately after a flow-delete-all, the switch can\nlegitimately include the new flow in the set of flows deleted. A barrier must\nbe used to serialize these operations.\n"
    },
    {
      "commit": "2510a2148db7f020684706bc6437eb8d1ed06b2b",
      "tree": "c404bb483e41cd7bfaaaa26bb324b032fdb9dde8",
      "parents": [
        "f620225e327b1c56e78865d5cbd6ff51524f57b4"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Thu Jul 04 00:38:50 2013 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Thu Jul 04 00:38:50 2013 -0700"
      },
      "message": "Added OFTest license for loxi code\n"
    },
    {
      "commit": "f620225e327b1c56e78865d5cbd6ff51524f57b4",
      "tree": "4002d8d9c7378d4a03d432808e2698c3b82136cd",
      "parents": [
        "6d94d0b07c7bdde0009da443fe5e6280ba62fc41"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Jul 02 01:00:29 2013 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Jul 02 01:00:29 2013 -0700"
      },
      "message": "changes from loxigen e8e6401509\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": "0f79bee9bf70d9aeec814b8b55638a9da7c5ede5",
      "tree": "b313b01330a8233d1bf0ad425e6e9e0a9104d266",
      "parents": [
        "cfff0ae6a9237e93b042b4b00b603d1f6c367eaa"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon May 13 17:37:43 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 14 09:28:45 2013 -0700"
      },
      "message": "parse: remove ipaddr dependency\n"
    },
    {
      "commit": "48e447eccedce64a06ac4496240dfe7655ddb09c",
      "tree": "11b547d0a0caa11d727a1824baeb4c0368e4aa23",
      "parents": [
        "4b5537fd27df7347765176462e8d9f5f0ef537b3"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 07 15:23:35 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 14 09:28:44 2013 -0700"
      },
      "message": "groups-1.2: mechanical pyloxi update\n"
    },
    {
      "commit": "18c9fede374197a45f08b98ef200732ffb2f2a66",
      "tree": "c06c83e378e208b70c269d6604e9ed6a976e4abe",
      "parents": [
        "b62555192601d28d05be8afcb0c1a47474b3862d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 07 15:22:53 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 14 09:28:44 2013 -0700"
      },
      "message": "oft12: mechanical pyloxi update\n"
    },
    {
      "commit": "b62555192601d28d05be8afcb0c1a47474b3862d",
      "tree": "f0e799408c0ced4f0e7cf7fd7c097e6f968987f7",
      "parents": [
        "7094ff189a698d3fba0807aaf4ccb58b14751e9f"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 07 14:58:43 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 14 09:28:44 2013 -0700"
      },
      "message": "parse: support OF 1.2\n"
    },
    {
      "commit": "7094ff189a698d3fba0807aaf4ccb58b14751e9f",
      "tree": "4af9c249ebd0361b9cdafab7ef5182b9d9b51ea7",
      "parents": [
        "90c961cc991ede8a34b1f54fe0d51616c5192a2a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 07 14:57:53 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 14 09:28:44 2013 -0700"
      },
      "message": "controller: log more usefully when checking message queue\n"
    },
    {
      "commit": "90c961cc991ede8a34b1f54fe0d51616c5192a2a",
      "tree": "b3e9825b5b75104c93a88dade49deb3bd1ea3d20",
      "parents": [
        "ca3da2718e04b04dd8f2b2fb9db434e7a24a6638"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 14 09:26:50 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue May 14 09:26:50 2013 -0700"
      },
      "message": "import pyloxi @ c0659ad95fd4fb48e670985b4e91f553da55995b\n"
    },
    {
      "commit": "ca3da2718e04b04dd8f2b2fb9db434e7a24a6638",
      "tree": "b62ab82161f6f3928b6ae1f678b8405f04849cf3",
      "parents": [
        "509fa239f5f6208f219f78f80cec4027e48dc61a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Sun May 05 09:07:33 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Sun May 05 09:07:33 2013 -0700"
      },
      "message": "add missing pyloxi files\n"
    },
    {
      "commit": "f3bc48c2db2e0e15d188faf76ef00cddf63c7895",
      "tree": "ede8dcdb42b188e231f59101cc1bc96530b08d25",
      "parents": [
        "50cfa508a71a5603544739d815969aa3d06037d6"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri May 03 17:39:35 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri May 03 17:48:41 2013 -0700"
      },
      "message": "testutils: avoid using constants not defined for the current OpenFlow version\n"
    },
    {
      "commit": "c2ee4b8544783535160cedee206f5c1179f43b58",
      "tree": "60df8edda08fbc6b9f4db208d05e540cf736a1ef",
      "parents": [
        "c4ab0beb2464abf5e29aa102c61ab0de257ed087"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Apr 24 17:12:38 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri May 03 17:41:49 2013 -0700"
      },
      "message": "import pyloxi @ 56db3af912fd38fe3789e7629a823788b94f463d\n"
    },
    {
      "commit": "c4ab0beb2464abf5e29aa102c61ab0de257ed087",
      "tree": "949bec31dc8d7b2553bcf22ca392ca1290021470",
      "parents": [
        "377e74763eafedde3efaef92ffa4e954ee2e939c",
        "7071cf14dc17dd23214033349f8d08dfe15ca667"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Apr 16 11:43:25 2013 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Apr 16 11:43:25 2013 -0700"
      },
      "message": "Merge pull request #48 from floodlight/det-monitor-pkt-in\n\nTest to monitor and report packet-in rate.  Disabled by default as it is \"blocking\".  Note that this only supports a single controller (determined by the command line parameters)."
    },
    {
      "commit": "7071cf14dc17dd23214033349f8d08dfe15ca667",
      "tree": "bb507c73e53ac7974a46d90a3702ddb355f342e9",
      "parents": [
        "7e45412a921a3b7220b86d366048e27aeb395b62"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Apr 16 11:02:13 2013 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Tue Apr 16 11:02:13 2013 -0700"
      },
      "message": "Minor updates for pkt in monitoring\n\nResponse to comment for rename of packet count\nClarified periodic_task name\nIndentation\n"
    },
    {
      "commit": "d929b8d132dd8ed000f9a6d331e39d25303310e6",
      "tree": "90194b8e5343ef7ee18984a9c89d6bd7bb893c4b",
      "parents": [
        "ea8c472f36be65f3a8f2d9a3f76c231e12524780"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Apr 15 15:59:14 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Apr 15 15:59:14 2013 -0700"
      },
      "message": "controller: prevent switch from reconnecting\n\nIf a switch disconnects during a test we want to make sure we catch it.\n"
    },
    {
      "commit": "dd6b6ffabf26a9d5338c50093c30b89aae0f7edf",
      "tree": "61b7168a0cc43b87252a6c8d6d8d28fc95edd3fa",
      "parents": [
        "ea8c472f36be65f3a8f2d9a3f76c231e12524780"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Apr 12 08:20:18 2013 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Apr 12 08:20:18 2013 -0700"
      },
      "message": "Support counting pkt-in msgs in controller\n\nCount pkt-in messages as they are received\nAllow the message queue to be cleared with new clear_queue fn\nAlso small bug fix: deref null exp_msg\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": "ff637c9fc8949913789b930a70ad7ec8bcc4bbff",
      "tree": "1a2d4ea55212e3e66c17170aab51ce536ddbe858",
      "parents": [
        "5252a51958f8f6c356083a2b386dbc9497ae986b"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Apr 04 13:57:09 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Apr 04 13:57:09 2013 -0700"
      },
      "message": "Revert \"Packet out buffer id should be -1 when there is no buffer\"\n\nThis reverts commit 4d89266604bf4bd6ad18832475f6c7dbaf84b288.\n"
    },
    {
      "commit": "4d89266604bf4bd6ad18832475f6c7dbaf84b288",
      "tree": "9c3d691b194d87057e7f1490d4cf31c7fe6d6fd4",
      "parents": [
        "e0cbba0975c409babbe032b1b5c03a1144d628d0"
      ],
      "author": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Tue Mar 19 00:49:14 2013 -0700"
      },
      "committer": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Tue Mar 19 00:49:14 2013 -0700"
      },
      "message": "Packet out buffer id should be -1 when there is no buffer\n"
    },
    {
      "commit": "de1a5278ee9f3c3be1f3e5cef1e1aef3ac482002",
      "tree": "34274d4900f786505e553edbc20de686953b9178",
      "parents": [
        "3f7098c6ff7932ee35fca6ca2e25a911e69e876d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:29:08 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:29:30 2013 -0700"
      },
      "message": "remove of11 and of12 modules\n\nOF 1.1+ support is broken until we add it to PyLoxi.\n"
    },
    {
      "commit": "e717c6ec92edba03c453a4204a788d7c22ab47bd",
      "tree": "9bfebeabb40d36dfa30206c71a122e9f24a7ae9b",
      "parents": [
        "be8503a69d609d0aee844a91f3f5d66f4e2666c7"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:25:50 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:29:30 2013 -0700"
      },
      "message": "use generic ofp import\n"
    },
    {
      "commit": "75a3641110a63c03239b1a706409035283aeb7a8",
      "tree": "b279b00af152168844fa67aa09ad35a7cff11075",
      "parents": [
        "efdc2c5e3c8e8f2f2222d9c3ade7e1ab799dead2"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:16:07 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:29:30 2013 -0700"
      },
      "message": "remove of10\n"
    },
    {
      "commit": "b658dddb70833c6a12daeba71ab51ddc754683ab",
      "tree": "e03a9cbad7f7d43b06b295622cd296860e7f4c5f",
      "parents": [
        "4b6014513c2b27cedc2f2d0935560b32d64448be"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:15:10 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:29:30 2013 -0700"
      },
      "message": "import pyloxi @ 39ed7a3\n"
    },
    {
      "commit": "0237baf6057179131cc929af1cee4e46667b76a0",
      "tree": "03f230bf6dddd94ea0bab08bf171ad1ba1f18bff",
      "parents": [
        "e6b794f4ac4cbe0bea1c312e5135e0cc29227fec"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 22:34:59 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:04:30 2013 -0700"
      },
      "message": "loxi-prep: rename users of ofp_match\n"
    },
    {
      "commit": "e6b794f4ac4cbe0bea1c312e5135e0cc29227fec",
      "tree": "b53add1e66c3a9541c4bba155151c4ee744092ae",
      "parents": [
        "768ef9535dde3bdce651092ab80cd212dc0489e9"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 22:32:19 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:04:30 2013 -0700"
      },
      "message": "loxi-prep: remove action_ prefix from more users\n"
    },
    {
      "commit": "768ef9535dde3bdce651092ab80cd212dc0489e9",
      "tree": "7a26ec9a0bd503590077e45e8f86bfa586d56841",
      "parents": [
        "1879dc74881a84e324aebfa5a6b33e8605e3ec18"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 22:31:28 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:04:30 2013 -0700"
      },
      "message": "loxi_prep: remove illegal_message_type dependency on pylibopenflow internals\n"
    },
    {
      "commit": "1879dc74881a84e324aebfa5a6b33e8605e3ec18",
      "tree": "24bc003245743124713ccba053d46aac5c65151f",
      "parents": [
        "c7b85d2cdfade2a5b9af25fe4283a18a4de7e811"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 22:08:51 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:04:30 2013 -0700"
      },
      "message": "loxi-prep: always handle missing entry in type map\n"
    },
    {
      "commit": "c7b85d2cdfade2a5b9af25fe4283a18a4de7e811",
      "tree": "728a57ea8dd3828be38460b129c4d713562f41cd",
      "parents": [
        "1622bbb4cab39b4d10f8a4c0c389ea08e1f46bb2"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 17:55:20 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:04:30 2013 -0700"
      },
      "message": "loxi-prep: remove import compatibility\n"
    },
    {
      "commit": "1622bbb4cab39b4d10f8a4c0c389ea08e1f46bb2",
      "tree": "17ae59eb625aa897f641a2719c5dbb23e7fb9129",
      "parents": [
        "f688351915a755359bde9dffc1e7ac5cb2d8e440"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 17:11:53 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:04:30 2013 -0700"
      },
      "message": "loxi-prep: change parse_header to return a tuple\n"
    },
    {
      "commit": "f688351915a755359bde9dffc1e7ac5cb2d8e440",
      "tree": "1cb2047ad9a2656cbbcf206d60631a0752f27f51",
      "parents": [
        "06c17984b4144e9b2d9b0071380ae25fc8caa84d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 17:00:09 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 11:04:27 2013 -0700"
      },
      "message": "loxi-prep: move message parsing to ofp.message\n"
    },
    {
      "commit": "06c17984b4144e9b2d9b0071380ae25fc8caa84d",
      "tree": "da2dd62d4d332e41924c65478ccc30a5504b9cef",
      "parents": [
        "ba3f0e2ebbe7b4f933c725e33b861895ad8f16d3"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 16:47:52 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: move parse.py to oftest module\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": "8fbfd66c4033bb81694a8d1b80a50f8125f53ae6",
      "tree": "c42575569e2481c4caed37d856b0368410cb6648",
      "parents": [
        "b73808cc3c603f1ff3cccf225c71ff2e76313308"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 15:30:44 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: default xid to None\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": "7c7342aacc146b200e3c4def63c5280ed7adb4b9",
      "tree": "a8c2c9f4e92e0a5efb278b579d882d6e42a6120b",
      "parents": [
        "4e361bb5b280268aab5cab94fadfc01e0d94555e"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 14:16:58 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: rename stats request/type field \u0027type\u0027 to \u0027stats_type\u0027\n"
    },
    {
      "commit": "4e361bb5b280268aab5cab94fadfc01e0d94555e",
      "tree": "6356f6026aca8ee507872c449278ab1f3cbb7d50",
      "parents": [
        "5fd6faf673cf448933155ad43b9933bf47764e2c"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 13:57:31 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: rename error \u0027type\u0027 field to \u0027err_type\u0027\n"
    },
    {
      "commit": "5fd6faf673cf448933155ad43b9933bf47764e2c",
      "tree": "bbc14104f80992cec281e1e0a9dced8ab64de43d",
      "parents": [
        "d0478ff69b4be47852e98e663e78c4627202bb2a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 13:30:20 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: rename stats reply \u0027stats\u0027 field to \u0027entries\u0027 to match PyLoxi\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": "5b44ab4d048a93acce528280b54fd572766b75f6",
      "tree": "bfd04b97d4f5b38c97d25eb636b54c8547bd76e2",
      "parents": [
        "62e96859803556d799992732d09183fe2a346a80"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 12:37:45 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: rename match fields to match pyloxi\n"
    },
    {
      "commit": "62e96859803556d799992732d09183fe2a346a80",
      "tree": "7a6a44690dda620cb74ec227f21308e48db4de5e",
      "parents": [
        "e6ea3fec5d5cd297848416a65bb77828e4168288"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 11 12:04:45 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "loxi-prep: use plain lists to hold OF actions\n\nSome callsites needed to be changed because they depended on action_list.append\ntaking a shallow copy.\n"
    },
    {
      "commit": "e6ea3fec5d5cd297848416a65bb77828e4168288",
      "tree": "bd2cc6ddcfd1fd2bf3d6331f1a9f32dacc9da9fb",
      "parents": [
        "7d40efa71354bc2273f1233c78fce4a09b70e092"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 08 17:54:38 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "action_list: remove show method\n\nAlso adds __iter__ so we can use an action_list as a sequence.\n"
    },
    {
      "commit": "7d40efa71354bc2273f1233c78fce4a09b70e092",
      "tree": "5ecb6579a2821268c0fb095a5e85db4937d3c3ba",
      "parents": [
        "c495d9e91e8a3a27399654e767afbb3c6f158595"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 08 17:46:13 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Mar 12 10:45:56 2013 -0700"
      },
      "message": "action_list: remove unused methods\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": "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": "537247359caf0f7ad204d0fc1add4a48efe525a8",
      "tree": "bddef1bf755394be5987c8c285b3399a9fb034cf",
      "parents": [
        "53b9681ed6299a0da9ea4e2a99f46006c798f11b"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Mar 08 23:54:02 2013 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Fri Mar 08 23:54:02 2013 -0800"
      },
      "message": "Qualify sleep calls with time\n"
    },
    {
      "commit": "53b9681ed6299a0da9ea4e2a99f46006c798f11b",
      "tree": "8643d7af09572557afd05ff15f8ae78d18848bdc",
      "parents": [
        "6a3349220285c09ae642b0a745f1f3df56f89af8"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 16:54:50 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 16:54:50 2013 -0800"
      },
      "message": "testutils: add 10% fuzz to byte counter matching\n\nSome switches include the 4-byte Ethernet CRC in their counters. Since the spec\nis ambiguous here we allow this and similar behavior by allowing the byte\ncounters to increment up to 10% more than we\u0027d usually expect.\n"
    },
    {
      "commit": "6a3349220285c09ae642b0a745f1f3df56f89af8",
      "tree": "fbf4c304800e63044c0971210d4b10b18f18b518",
      "parents": [
        "968b61972f18bc2813558cd1373cc3c6fdc19709"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 16:14:52 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 16:52:34 2013 -0800"
      },
      "message": "refactor verify_queuestats and move to testutils\n"
    },
    {
      "commit": "968b61972f18bc2813558cd1373cc3c6fdc19709",
      "tree": "6a1dfdd9572c4350dea5f9e95590aa4b945b43ff",
      "parents": [
        "ae3428c00817b638d0b2595872676e6e7f29c690"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 15:34:43 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 16:52:33 2013 -0800"
      },
      "message": "refactor verify_portstats and move to testutils\n"
    },
    {
      "commit": "ae3428c00817b638d0b2595872676e6e7f29c690",
      "tree": "ebb83e87d8ba9618c3b5347fd6b582ebb7dac516",
      "parents": [
        "34593fa8f4f0234f7f2e073de1079ead09b4053f"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 14:37:42 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 07 16:35:25 2013 -0800"
      },
      "message": "refactor verify_flowstats and move to testutils\n\nThis needs to be centralized for later byte counter fuzzing changes.\n"
    },
    {
      "commit": "2940fdd2a83a02b4fd3e79ff4cd6b3e21bb0dacd",
      "tree": "44ed7a1bf636443056107056be3ae72f172c949c",
      "parents": [
        "9cf018c6557fded5602845ff106b4c2ad5a822c7"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Feb 06 15:01:35 2013 -0800"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Feb 06 15:01:35 2013 -0800"
      },
      "message": "Fix skip report config key error\n"
    },
    {
      "commit": "c7562b123fc44e78a55166ed08c7743063328f42",
      "tree": "185d83d89a7e6a8be7a0fa6f8151c3feb6bd10a4",
      "parents": [
        "857fb606e3173b528f518740e7f2ac073e5789a0"
      ],
      "author": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Wed Feb 06 01:12:18 2013 -0800"
      },
      "committer": {
        "name": "Shudong Zhou",
        "email": "shudongzhou@gmail.com",
        "time": "Wed Feb 06 01:12:18 2013 -0800"
      },
      "message": "Add simple_arp_packet\n"
    },
    {
      "commit": "3c26683d57deed514e64d945c881221486d6cde5",
      "tree": "9a47e523747ac902fca41040535ebf104435d441",
      "parents": [
        "dacbe738d5bb92d0e8e3d5733edc2c96cf7edd59"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jan 29 18:29:15 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jan 29 18:29:15 2013 -0800"
      },
      "message": "testutils: fix wording in receive_pkt_check\n"
    },
    {
      "commit": "9cc93345f9948ebb54e28e7333f406d82b1cf3b5",
      "tree": "c6adabf0c0b29a0ead21e2c630b1eed61a1af97c",
      "parents": [
        "bde05edf0a77d9c1a0fd0ad9375b2b6f88918816"
      ],
      "author": {
        "name": "Gregor Maier",
        "email": "gregor.maier@bigswitch.com",
        "time": "Tue Jan 29 16:55:28 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Jan 29 16:55:28 2013 -0800"
      },
      "message": "testutils: add ip_ttl option to simple_*_packet\n"
    },
    {
      "commit": "fdedc07bbf8f942833acb722e8c206131dec627e",
      "tree": "1b91b57585ad88bc590140d085030956ef2ffc13",
      "parents": [
        "f16b557da3163a0c3d54b2da27596d0d8f67b0c5"
      ],
      "author": {
        "name": "ederlf",
        "email": "ederlf@cpqd.com.br",
        "time": "Fri Jan 18 09:32:00 2013 -0200"
      },
      "committer": {
        "name": "ederlf",
        "email": "ederlf@cpqd.com.br",
        "time": "Fri Jan 18 09:32:00 2013 -0200"
      },
      "message": "This commit has some improvements for the code related to the OpenFlow 1.2\nThe changes are:\n\n    - On match unpack, insert the proper match tlv object. (e.g, if the oxm field is\nan inport, insert and inport object).\n    - Add a compare method to oxm_tlvs and match_list, because there was not how to test\nif the match in messages like flow_stats or flow_removed were correctly sent by the switch.\n    - Improvements to the print format of oxm_tlvs.\n\nAlso, there is a minor fix for the groups test.\n"
    },
    {
      "commit": "7744e11daf890cbb0b815e51ce4781de78624c51",
      "tree": "8bdb5b76058cc53be78eac7f560b63dfccf62203",
      "parents": [
        "5a9a192ab77c53024bfd2f9864488906c093a7d3"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 17:23:57 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 17:23:57 2013 -0800"
      },
      "message": "testutils: define __all__ to limit the variables imported by tests\n"
    },
    {
      "commit": "5a9a192ab77c53024bfd2f9864488906c093a7d3",
      "tree": "0a47fbdd7bc1caf4152b8bf6b6d7ad7e1fa3ee5c",
      "parents": [
        "5d63b9c8bded2cfeb4b07c46e648c671cb683b1c"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 14:29:30 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 14:29:30 2013 -0800"
      },
      "message": "add version decorator\n\nAlso adds the TableModConfig test to the main basic test module, using the new\ndecorator.\n"
    },
    {
      "commit": "5d63b9c8bded2cfeb4b07c46e648c671cb683b1c",
      "tree": "072ea8b1751a43250ca1190bae3014322656efb4",
      "parents": [
        "e3a5972ae4dc86966f6ffce998cdd25ac02bfb02"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 14:12:37 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 14:12:37 2013 -0800"
      },
      "message": "controller: log xids and error messages\n"
    },
    {
      "commit": "e3a5972ae4dc86966f6ffce998cdd25ac02bfb02",
      "tree": "7722d40dace1507cc5af3a50ec6c3c2f963e73f0",
      "parents": [
        "5de2d94348b08b05f3ea510cc73b97886700bc89"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 12:50:25 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 12:50:25 2013 -0800"
      },
      "message": "of12: support actions keyword argument in packet_out message\n"
    },
    {
      "commit": "5de2d94348b08b05f3ea510cc73b97886700bc89",
      "tree": "5cd18b01c8ec044fb22959b473b49f8517264979",
      "parents": [
        "aecd7163f3c230f788a8df53d91d997450566ec4"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 11:49:36 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 11:49:36 2013 -0800"
      },
      "message": "of12: add keyword arguments to action and message classes\n"
    },
    {
      "commit": "aecd7163f3c230f788a8df53d91d997450566ec4",
      "tree": "c8d4cbd6b9832b8fb951735f9806cb61a4492f79",
      "parents": [
        "63393495124c77d79b2319d96550a8bc3ab6e35b"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 11:33:00 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 11:33:00 2013 -0800"
      },
      "message": "of10: simplify importing\n"
    },
    {
      "commit": "63393495124c77d79b2319d96550a8bc3ab6e35b",
      "tree": "8e0e80d75de6925e5d081544bb654a48d30f093d",
      "parents": [
        "2fe6beac0c69eb9108be08112b1e9d727ff11d4c"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 09:21:12 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 09:24:31 2013 -0800"
      },
      "message": "of12: remove redundant action_ prefix from action classes\n"
    },
    {
      "commit": "dc04c91a4c3f9c170688a6d8cffda254ff2426c5",
      "tree": "781f35473fd033fc8b4b4c2c35ace24656f1a9ad",
      "parents": [
        "8f2861eb5c879d7761d458204c9ad59e4fe2e576"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 09:13:37 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 09:13:37 2013 -0800"
      },
      "message": "of12: fix bug in packet_to_flow_match\n"
    },
    {
      "commit": "8f2861eb5c879d7761d458204c9ad59e4fe2e576",
      "tree": "8bfa3cbb8f5bb2847cda64044b347ef441952840",
      "parents": [
        "ea8732650f81771e585f7405df46b6a08237ee03"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 09:13:20 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 09:13:20 2013 -0800"
      },
      "message": "import scapy.contrib.mpls for ease of installation\n"
    },
    {
      "commit": "02eb6b0d18297b6fc371d035110dc99ee9b2a5a3",
      "tree": "2216043104e9de51f60eed0a612fae8f207aca6f",
      "parents": [
        "f9aa5022c4707485455a9476912ea13e20e6baac"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 08:08:37 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 08:20:20 2013 -0800"
      },
      "message": "of12: simplify importing\n"
    },
    {
      "commit": "f9aa5022c4707485455a9476912ea13e20e6baac",
      "tree": "87c7fd3c19293d2f1d8c03345f61e7430889091c",
      "parents": [
        "629393f7b71a12026e5d719f2551cafe264ccd52"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 10 16:36:15 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 08:20:20 2013 -0800"
      },
      "message": "oft12 testutils: remove uses of parent.logger\n"
    },
    {
      "commit": "629393f7b71a12026e5d719f2551cafe264ccd52",
      "tree": "421463e8f2ea2336fe088e94af2e6748620726a1",
      "parents": [
        "9fd05683ca2baa9d04d4d3c1c563f5a7b45d5b1e"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 10 15:37:33 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 08:20:20 2013 -0800"
      },
      "message": "import OpenFlow 1.2 protocol module and basic test cases from CPqD/oftest12\n\nFor now these tests will live in a separate directory. The goal is to merge\nthem where possible but this has to wait for an OpenFlow protocol module that\nsupports all versions of OpenFlow.\n"
    },
    {
      "commit": "9fd05683ca2baa9d04d4d3c1c563f5a7b45d5b1e",
      "tree": "995e00a335a8478742a211fb72cde04d1cd1d3be",
      "parents": [
        "af42815411a3b2f29c8a25c0ec7a8064cfc6fd1e"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Jan 10 15:30:38 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Jan 11 08:20:20 2013 -0800"
      },
      "message": "add --of-version option\n\nThis option is used to choose which OpenFlow protocol module is aliased to\n\"ofp\", which the controller and tests import. When we have an OpenFlow protocol\nmodule that works with all versions of OpenFlow we can remove this hack without\nchanging the command line interface or test API.\n"
    }
  ],
  "next": "af42815411a3b2f29c8a25c0ec7a8064cfc6fd1e"
}
