)]}'
{
  "log": [
    {
      "commit": "167f5bd410b9f5cf39fd74e7c2218e4162cb8054",
      "tree": "b3660a4573c9dfadb31b63be3ef1c1bab1d7d14e",
      "parents": [
        "d8f8af243cb0338ecdc6c16582a7b4baaec5f302"
      ],
      "author": {
        "name": "Flavio Castro",
        "email": "castro.flaviojr@gmail.com",
        "time": "Wed Dec 02 19:33:53 2015 -0500"
      },
      "committer": {
        "name": "Flavio Castro",
        "email": "castro.flaviojr@gmail.com",
        "time": "Wed Dec 02 19:33:53 2015 -0500"
      },
      "message": "Fixed MPLS testcase\n"
    },
    {
      "commit": "72a45d5e951428f5d6252740778ef4b856d63679",
      "tree": "f2a53027878985defa7bf43c5eb0654cbf6e6b84",
      "parents": [
        "e0b46011992246cad6952bb4b96ec340e2d8c5ba"
      ],
      "author": {
        "name": "Flavio Castro",
        "email": "castro.flaviojr@gmail.com",
        "time": "Wed Dec 02 16:37:05 2015 -0500"
      },
      "committer": {
        "name": "Flavio Castro",
        "email": "castro.flaviojr@gmail.com",
        "time": "Wed Dec 02 16:37:05 2015 -0500"
      },
      "message": "Added L3MPLSVPN test case\n"
    },
    {
      "commit": "c80249d0e45dc5b6391e5d48219aeab3e63c51dd",
      "tree": "cefcf22479a0a5eb710a5cf84caaaff14e8e9814",
      "parents": [
        "29e4f3bbbe8b5bf34bd17ca5726a94d2f8f39d6c"
      ],
      "author": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Nov 09 14:11:18 2015 +0800"
      },
      "committer": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Nov 09 14:11:18 2015 +0800"
      },
      "message": "src/\n"
    },
    {
      "commit": "739f54b6d850dddaf9519a9beb2e4df300001a42",
      "tree": "ed0f1bc0fd9db867ba94d11d5672f1f2346ef55a",
      "parents": [
        "6b133664c04862065669a85acf819a09ee489693"
      ],
      "author": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Nov 09 13:52:59 2015 +0800"
      },
      "committer": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Nov 09 13:52:59 2015 +0800"
      },
      "message": "src/python/oftest/testutils.py\n"
    },
    {
      "commit": "0a0a7f6a8b43553b6d4d2228a8546a1b8b0a06c5",
      "tree": "630e4f1525f60d1f534412894b69ebab65d11016",
      "parents": [
        "4bb7ffc58fba5e7f3af9d33aba4fb3cbad485aaa"
      ],
      "author": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Fri Nov 06 11:36:50 2015 +0800"
      },
      "committer": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Fri Nov 06 11:36:50 2015 +0800"
      },
      "message": "add case\n"
    },
    {
      "commit": "b0ec33dc8142cd08bea30f75333bb4a440800e90",
      "tree": "4e9fe7216dd57e5e1661e78baa67bb63fcfc11bf",
      "parents": [
        "6b31161133a50015f6547e54062456495197e51a"
      ],
      "author": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Fri Sep 04 11:32:44 2015 +0800"
      },
      "committer": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Fri Sep 04 11:32:44 2015 +0800"
      },
      "message": "add 2 vlan packet\n"
    },
    {
      "commit": "45833df60c0dbd0646214ed9c651590b479ece76",
      "tree": "bab6273a7097e3b0d2242ebfc7e13a54c493f29e",
      "parents": [
        "eadac7a02f28e6d3c5112d0266a49ed7b00b8bad"
      ],
      "author": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Aug 31 15:19:07 2015 +0800"
      },
      "committer": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Aug 31 15:19:07 2015 +0800"
      },
      "message": "add mpls case\n"
    },
    {
      "commit": "eadac7a02f28e6d3c5112d0266a49ed7b00b8bad",
      "tree": "b5b474ce68799305066f137667183889da44b93f",
      "parents": [
        "8e0b3ee98d3b5852292a2af1afffa70448853c6a"
      ],
      "author": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Aug 31 15:19:04 2015 +0800"
      },
      "committer": {
        "name": "macauley_cheng",
        "email": "macauley_cheng@accton.com",
        "time": "Mon Aug 31 15:19:04 2015 +0800"
      },
      "message": "add mpls case\n"
    },
    {
      "commit": "1b23af8cb334ae5f4fcb501be3a42879d6586a4f",
      "tree": "d68d487781da2c39328535ba41efd85570e4133f",
      "parents": [
        "17cd60ddb0cc98be2215428d4d4f1b1092b4a180"
      ],
      "author": {
        "name": "macauley",
        "email": "macauleycheng@gmail.com",
        "time": "Thu Jul 30 14:06:33 2015 +0800"
      },
      "committer": {
        "name": "macauley",
        "email": "macauleycheng@gmail.com",
        "time": "Thu Jul 30 14:06:33 2015 +0800"
      },
      "message": "correct word\n"
    },
    {
      "commit": "17cd60ddb0cc98be2215428d4d4f1b1092b4a180",
      "tree": "6e69f14c0e52b3829e42a2de45fb23a6fed9a5a3",
      "parents": [
        "ca2752d0f09b8da31da8b6e0b844fa5d7f215cfb"
      ],
      "author": {
        "name": "macauley",
        "email": "macauleycheng@gmail.com",
        "time": "Mon Jul 27 17:41:18 2015 +0800"
      },
      "committer": {
        "name": "macauley",
        "email": "macauleycheng@gmail.com",
        "time": "Mon Jul 27 17:41:18 2015 +0800"
      },
      "message": "add vxlan\n"
    },
    {
      "commit": "ca2752d0f09b8da31da8b6e0b844fa5d7f215cfb",
      "tree": "ee9c1e5741b42a9e8a30765007101a6f2894bafb",
      "parents": [
        "68ace671357c51dbd09e55e4b3c1db1df407ec6c"
      ],
      "author": {
        "name": "macauley",
        "email": "macauleycheng@gmail.com",
        "time": "Mon Jul 27 17:41:14 2015 +0800"
      },
      "committer": {
        "name": "macauley",
        "email": "macauleycheng@gmail.com",
        "time": "Mon Jul 27 17:41:14 2015 +0800"
      },
      "message": "add vxlan\n"
    },
    {
      "commit": "df8f5fc842c35c917439efabd8ac33a1d1bc50bd",
      "tree": "63e197e16fee08ffeea73b27e8f05dffea9c2669",
      "parents": [
        "1e26c5b078085d481f14fc9cf73ce27f92d2f4e8"
      ],
      "author": {
        "name": "macauley",
        "email": "macauleycheng@google.com",
        "time": "Thu Jul 16 17:27:55 2015 +0800"
      },
      "committer": {
        "name": "macauley",
        "email": "macauleycheng@google.com",
        "time": "Thu Jul 16 17:27:55 2015 +0800"
      },
      "message": "add dump packet content\n"
    },
    {
      "commit": "3a208f895858d3318989549471ed92d81e4fd20c",
      "tree": "e0ec9bb45162404cb4087f72235cd73bfa4f2e16",
      "parents": [
        "0d4a558fa90a3077922e393c71284330a6f47909"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Apr 10 12:37:57 2015 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Apr 10 12:37:57 2015 -0700"
      },
      "message": "allow delayed stats in verify_port_stats\n\nSame reason as 6d618170.\n"
    },
    {
      "commit": "3e7d28a14df871513d76fe66cf447b0b52779f6f",
      "tree": "e10584c3ea44ed1f8ea60119317ac816f89ca5dd",
      "parents": [
        "c6df00403057320e61588db08ca7d5e251a70be1"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 19 00:18:47 2015 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Mar 19 01:08:00 2015 -0700"
      },
      "message": "dataplane: pass protocol number to bind() instead of socket()\n\nThis makes the bind call much faster because it doesn\u0027t need to unregister the\nprotocol hook, which requires waiting for an RCU grace period (~10ms). Linux\n3.14 and later optimize this internally, but Ubuntu 14.04 doesn\u0027t have a recent\nenough kernel.\n\nThe Python socket library does the htons for us when creating the sockaddr for\nbind.\n\nThis change reduces the time to run IVS automated tests by half.\n"
    },
    {
      "commit": "31cd7d8e641e29a2a570deab4f2635eb41fb7c44",
      "tree": "cf8ed6a19a4c989a1cd0da53f27161bd73e2b71b",
      "parents": [
        "9393d990ac569aa855d30ae5de753036a7658699"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 13:53:03 2015 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 13:53:03 2015 -0700"
      },
      "message": "use numeric message IDs for compatibility with pylint 0.25.1\n"
    },
    {
      "commit": "9393d990ac569aa855d30ae5de753036a7658699",
      "tree": "20eca1b7d9750c5ebfc434d7882f0c091c14de5b",
      "parents": [
        "2e860483e75cc020dacabbf9af83a222e0710c66"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 13:37:35 2015 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 13:37:35 2015 -0700"
      },
      "message": "silence a couple of pylint false positives\n"
    },
    {
      "commit": "2e860483e75cc020dacabbf9af83a222e0710c66",
      "tree": "46b767cafde832ebebf36191e8b014e1ff991933",
      "parents": [
        "1b7372685a8b45e9946f509f779b2e0e37a1e6b5"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 10:22:43 2015 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 10:30:29 2015 -0700"
      },
      "message": "dataplane: prefer using AF_PACKET directly when running on Linux\n\nWe still need to use libpcap on other operating systems. Using the packet\nsocket directly on Linux avoids TPACKET_V3 which is horribly broken.\n"
    },
    {
      "commit": "1b7372685a8b45e9946f509f779b2e0e37a1e6b5",
      "tree": "04927d891999cb50df768eed9e08ec789ac4c02b",
      "parents": [
        "2e0afbc2fa635f69b1d9411385f4ce15ad8cfe20"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 10:13:56 2015 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 18 10:16:44 2015 -0700"
      },
      "message": "dataplane: extract VLAN from AF_PACKET auxiliary data\n\nThe original reason we switched to libpcap was that it handled VLAN offload for\nus. Now that libpcap isn\u0027t reliable on Linux (TPACKET_V3 is broken) we have to\nreconstruct the VLAN tag ourselves.\n"
    },
    {
      "commit": "0306fd3db6f94ed1013314c38b5d94374a2b9312",
      "tree": "f5015bfb9d9f2263368a205768690eb9ef8ed3e5",
      "parents": [
        "ea3cf6d364aa486e53ea02c83f3c526391f41122"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 11 15:52:21 2015 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Mar 11 15:52:21 2015 -0700"
      },
      "message": "dataplane: support PyPI version of pypcap\n\nThe Ubuntu version of pypcap only supports \"inject\" for sending packets, but\nthe upstream verison only supports \"sendpacket\".\n"
    },
    {
      "commit": "c2c6b4ef99e29d5ab6e34a04b9a1a1eb2d4a1543",
      "tree": "8d698046dc036121e1117bcc37d6ab2398d9cdf7",
      "parents": [
        "0a78a3d89287762f79ea0f04583d0d09c5e18367"
      ],
      "author": {
        "name": "Wilson Ng",
        "email": "wilson.ng@bigswitch.com",
        "time": "Wed Mar 04 17:30:20 2015 -0800"
      },
      "committer": {
        "name": "Wilson Ng",
        "email": "wilson.ng@bigswitch.com",
        "time": "Wed Mar 04 17:30:20 2015 -0800"
      },
      "message": "Revert \"Use a short timeout when polling for packets.\"\n\nThis reverts commit 627b28c3c988716f9cfce8bb7a761dc42b86386c.\n"
    },
    {
      "commit": "0a78a3d89287762f79ea0f04583d0d09c5e18367",
      "tree": "263691bef3dc8be1dc0005cafd4a0e0bcc7880ed",
      "parents": [
        "f86c606df01f83f56ac15ea65f7bc77675b68a94",
        "627b28c3c988716f9cfce8bb7a761dc42b86386c"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed Mar 04 17:02:28 2015 -0800"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed Mar 04 17:02:28 2015 -0800"
      },
      "message": "Merge into master from pull request #165:\nUse a short timeout when polling for packets. (https://github.com/floodlight/oftest/pull/165)\n"
    },
    {
      "commit": "627b28c3c988716f9cfce8bb7a761dc42b86386c",
      "tree": "113299a508a3d8ea5db21ab0186f66c78d244aaa",
      "parents": [
        "431b2a1f9b719ddcbdc22486b645c33d38a35154"
      ],
      "author": {
        "name": "Wilson Ng",
        "email": "wilson.ng@bigswitch.com",
        "time": "Wed Mar 04 16:58:28 2015 -0800"
      },
      "committer": {
        "name": "Wilson Ng",
        "email": "wilson.ng@bigswitch.com",
        "time": "Wed Mar 04 16:58:28 2015 -0800"
      },
      "message": "Use a short timeout when polling for packets.\n"
    },
    {
      "commit": "bf84c338b696d4278d0abd1c4782a6284363d1c9",
      "tree": "bde783c5f14d110183ebdc0429e52aa24fb8cc14",
      "parents": [
        "8f3f705d0e930048ac6a2ed89a9dcacd4c88b8f4"
      ],
      "author": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Tue Jan 27 12:52:27 2015 -0800"
      },
      "committer": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Tue Jan 27 12:52:27 2015 -0800"
      },
      "message": "Strip off exception handling so backtrace can be obtained.\n"
    },
    {
      "commit": "8f3f705d0e930048ac6a2ed89a9dcacd4c88b8f4",
      "tree": "9594497a7180e3d5c6cb2522731d67430a7f89a4",
      "parents": [
        "1a09f9a06f9ca9fa28cf7ccc0f1d8dab7d0c44f2"
      ],
      "author": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Tue Jan 27 11:25:34 2015 -0800"
      },
      "committer": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Tue Jan 27 11:25:34 2015 -0800"
      },
      "message": "Allow controller host to be an IPv6 address.\n"
    },
    {
      "commit": "2eba47aefeb055ffd75f4981d26ea96fd513ff9a",
      "tree": "e07e921c8a6ec3bc06f98d3af1fa4d7d6ed33c2a",
      "parents": [
        "2e809b928b025cd8f59d77d46eb85fa0fcbd4a3f"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Dec 09 14:29:08 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Dec 12 15:04:38 2014 -0800"
      },
      "message": "implement packet_to_flow_match_oxm for OF 1.4\n"
    },
    {
      "commit": "1e7617b39ca266edbc44123721e0815abde2020e",
      "tree": "ad9eebc8548a2b2244cc621af3281b7597eebf58",
      "parents": [
        "919be3c690d609d6a9828e5f13bfbd6ce0fa5968"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Nov 24 14:10:06 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Nov 24 14:10:06 2014 -0800"
      },
      "message": "controller: fix exp_msg validation when mixing OF versions\n\nThe OpenFlow version configured on the command line might not match the version\nof messages sent by the switch.\n"
    },
    {
      "commit": "a1e487581929fb8b120a752b988f966839359796",
      "tree": "efd41af4e2233637941fb3cbfe3d78522727ad93",
      "parents": [
        "4878d4e1815b539001bd7f4e29fed56cb5a78c68",
        "31ba331da459820294a563480b542f2aac9604c1"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed May 21 14:04:15 2014 -0700"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed May 21 14:04:15 2014 -0700"
      },
      "message": "Merge into master from pull request #131:\nupdate pyloxi and add tcp flags support (https://github.com/floodlight/oftest/pull/131)\n"
    },
    {
      "commit": "31ba331da459820294a563480b542f2aac9604c1",
      "tree": "0b90fb7a0444b99e930fe127d908b7af44ab6f31",
      "parents": [
        "c51f404661cea6c948577b033607946042e7d09f"
      ],
      "author": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Wed May 21 13:48:35 2014 -0700"
      },
      "committer": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Wed May 21 13:48:35 2014 -0700"
      },
      "message": "remove tab\n"
    },
    {
      "commit": "c51f404661cea6c948577b033607946042e7d09f",
      "tree": "79b1b1f37ea1558db61fb36ec8fa94c2d9ec92d1",
      "parents": [
        "93e604b46739114327cc27807eb5caba87e568fa"
      ],
      "author": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Wed May 21 13:32:52 2014 -0700"
      },
      "committer": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Wed May 21 13:32:52 2014 -0700"
      },
      "message": "update pyloxi and add tcp flags support\n"
    },
    {
      "commit": "58c5c04b8839b960607071723c65cae63b561ab8",
      "tree": "474a0fe75ca54213adb989417ac92a883700ef0e",
      "parents": [
        "93e604b46739114327cc27807eb5caba87e568fa"
      ],
      "author": {
        "name": "Kiran Poola",
        "email": "kiran.poola@bigswitch.com",
        "time": "Thu May 15 15:11:06 2014 -0700"
      },
      "committer": {
        "name": "Kiran Poola",
        "email": "kiran.poola@bigswitch.com",
        "time": "Thu May 15 15:11:06 2014 -0700"
      },
      "message": "verify_packet_in with in_port as None.\n"
    },
    {
      "commit": "e3df578cfd1d68afc3183b748b635ac48c0dbc98",
      "tree": "474ee39484e5c09249493b113ee9ec2ebed91eb0",
      "parents": [
        "0b49c5f70094780782424e995e716e4f32a45375",
        "1ec8c0f4b54665f53ceca5fb8e71d57f78799ca9"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed Apr 16 15:58:19 2014 -0700"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed Apr 16 15:58:19 2014 -0700"
      },
      "message": "Merge into master from pull request #107:\nVerifiy configuration flag (https://github.com/floodlight/oftest/pull/107)\n"
    },
    {
      "commit": "61edad5cd701a12397b65d560222cd3c948cb6f0",
      "tree": "306d53b07b5d4743593f834fb9848da51f64cdcb",
      "parents": [
        "95222802e687f27a483da82e53d7de10b34f4daf"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 28 16:25:08 2014 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Mar 28 16:25:08 2014 -0700"
      },
      "message": "testutils: remove out_port arg from verify_flow_stats\n\nThis was never used and caused problems with OF 1.3.\n"
    },
    {
      "commit": "57dfee767c64ad811292786f8c0be643aa4441a5",
      "tree": "0bbe208de9254a4c4a462d0e63ec3ccc44194201",
      "parents": [
        "0f4c77c5cee61426f7bf0147745d5405e628c60c"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 24 16:59:47 2014 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Mar 24 16:59:47 2014 -0700"
      },
      "message": "testutils: fix typo\n"
    },
    {
      "commit": "48f6aed48c44bef36147eb091350458674715f0d",
      "tree": "c9dafc2322589f647119124b91aa9975d665f97e",
      "parents": [
        "9631f008fc5de5e60ee6b07260b5857e5f90f82d"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Sun Mar 23 15:51:02 2014 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Sun Mar 23 15:51:02 2014 -0700"
      },
      "message": "oft: add --default-negative-timeout command line option\n\nThis option controls how long OFTest waits for an event that we don\u0027t expect to\noccur. It replaces several hardcoded values.\n"
    },
    {
      "commit": "7562d4ea533e534b8f86338b74f6be29ac7a8dc5",
      "tree": "90234120f9c6f42f950c093903faf7982bc67a2e",
      "parents": [
        "92f7cf6bf060f5cf258d7e398b08b9a97623b38f"
      ],
      "author": {
        "name": "Stephen Finucane",
        "email": "stephenfinucane@hotmail.com",
        "time": "Thu Mar 13 15:10:29 2014 +0000"
      },
      "committer": {
        "name": "Stephen Finucane",
        "email": "stephenfinucane@hotmail.com",
        "time": "Thu Mar 13 15:10:29 2014 +0000"
      },
      "message": "packet.py: Skip IPv6 import if IPv6 disabled"
    },
    {
      "commit": "0415fd7b0d638614e9fabc74fd1ed105e0188362",
      "tree": "ab5e8abdfcda8c0b0251a00f04a6cbaac3a6ad43",
      "parents": [
        "4d07244e824bdee64dc32a91417fdb177a2bd5c5"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Feb 25 22:04:17 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Feb 25 22:04:17 2014 -0800"
      },
      "message": "dataplane: copy buffer returned by pypcap\n\nWhen reading packets pypcap always returns a pointer to the same statically\nallocated memory, which will be overwritten the next time a packet is read. I\nbelieve this is a bug in pypcap. The workaround is to make a copy immediately.\n"
    },
    {
      "commit": "1ec8c0f4b54665f53ceca5fb8e71d57f78799ca9",
      "tree": "97f6189b8b3c1d05eae76778ac26115313a4cde7",
      "parents": [
        "eb3721dbd6b67e8eda99f9f8b782f639bd851c8b"
      ],
      "author": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 15:25:38 2014 -0500"
      },
      "committer": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 15:25:38 2014 -0500"
      },
      "message": "updating doc string\n"
    },
    {
      "commit": "eb3721dbd6b67e8eda99f9f8b782f639bd851c8b",
      "tree": "110cf2fab49f4fda868af3f6d187bbd1ef678d73",
      "parents": [
        "7ebd4a91e3b467ff0c54fe45257dec676cadb30d"
      ],
      "author": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 13:59:12 2014 -0500"
      },
      "committer": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 13:59:12 2014 -0500"
      },
      "message": "adding verify_configuration_flag func\n"
    },
    {
      "commit": "1e31d747accba23f3e3d505ac82ea21754cd41d6",
      "tree": "74156d2c0daec8fd64f52dcb49e0141474b551bc",
      "parents": [
        "a024708ddac1f683913d7e34864241da0073b87e"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 15:46:24 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 15:46:24 2014 -0800"
      },
      "message": "controller: fix string formatting in exception message\n"
    },
    {
      "commit": "a024708ddac1f683913d7e34864241da0073b87e",
      "tree": "b0648a876e1ce055a42bbfa23cb19aac51e3cd38",
      "parents": [
        "a4c80ffc758b45d44626ac80d78d4b5da31f25d4",
        "e5b673100e3d02defbf22846aaaccb05ae567656"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Mon Feb 03 15:08:36 2014 -0800"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Mon Feb 03 15:08:36 2014 -0800"
      },
      "message": "Merge into master from pull request #102:\nSupport polling for specific message classes (https://github.com/floodlight/oftest/pull/102)\n"
    },
    {
      "commit": "e5b673100e3d02defbf22846aaaccb05ae567656",
      "tree": "aa36a4928f45eabe83cea35fba74237614d90582",
      "parents": [
        "4957503d7a1d3b3e158113d789025f1de019df02"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 14:56:04 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 14:56:04 2014 -0800"
      },
      "message": "controller: clean up poll loop\n"
    },
    {
      "commit": "4957503d7a1d3b3e158113d789025f1de019df02",
      "tree": "fb3cb13182d96c52a772d56e6f936c29d7f43797",
      "parents": [
        "cb5574e0460988723317f1b55781bd0137289ff8"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 14:55:44 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 14:55:44 2014 -0800"
      },
      "message": "controller: include repr(exp_msg) in exception\n"
    },
    {
      "commit": "cb5574e0460988723317f1b55781bd0137289ff8",
      "tree": "35899206f693107f61e8adcb602d224ea04046b5",
      "parents": [
        "e9d36915f905b726597fa27afd8f25357de58caf"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 14:55:24 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Feb 03 14:55:24 2014 -0800"
      },
      "message": "controller: remove redundant log\n"
    },
    {
      "commit": "e9d36915f905b726597fa27afd8f25357de58caf",
      "tree": "21c4efcd8299bc481cc3ba7c9220e9269dfb858e",
      "parents": [
        "a61048f0c1c4705b4a0927ccad9336cad1ffbbd4"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Jan 31 12:46:05 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Jan 31 13:05:43 2014 -0800"
      },
      "message": "controller: accept class in the poll exp_msg parameter\n\nThis allows us to poll for e.g. ofp.message.bsn_arp_idle instead of\nofp.OFPT_EXPERIMENTER.\n\nThe integer type argument is still supported.\n\nPolling for any message is now deprecated.\n"
    },
    {
      "commit": "a4c80ffc758b45d44626ac80d78d4b5da31f25d4",
      "tree": "e2644b4d1549aa1e1d56a8edc9096f0305c492c3",
      "parents": [
        "2a2585957537a64501b8085d0fbbbbecd8ae63a5",
        "9fb6702de58b1b7f6da34311120f452203fb9942"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Thu Jan 30 17:22:51 2014 -0800"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Thu Jan 30 17:22:51 2014 -0800"
      },
      "message": "Merge into master from pull request #100:\ncontroller: remove message version check (https://github.com/floodlight/oftest/pull/100)\n"
    },
    {
      "commit": "fa2a4dece417cc19d5cec7091bba6c62b6ec64df",
      "tree": "531ae6bb7981fbccbfdb393e14df2f942bd1e704",
      "parents": [
        "95f7fc94ee0c3fd709962ce2c8d6cf24b9d3db3c"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jan 29 16:03:04 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jan 29 16:08:48 2014 -0800"
      },
      "message": "controller: workaround pylint false positives\n"
    },
    {
      "commit": "9fb6702de58b1b7f6da34311120f452203fb9942",
      "tree": "04a7fdcaa0a1648bf80829a559b9bd201b73ceee",
      "parents": [
        "e66ecafc3238952d0299c2329c463c3b42e2a3a4"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Jan 28 15:35:18 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Tue Jan 28 15:35:18 2014 -0800"
      },
      "message": "controller: remove message version check\n\nThis is unnecessary now that we parse incoming messages using the PyLoxi parser\nfor the message\u0027s version.\n"
    },
    {
      "commit": "97e458a73ed6486f3babede15f104f2261fd206a",
      "tree": "871b7398bf122e5b1ae76d6580b125f070140d1f",
      "parents": [
        "fcee31476d73eb3ae0a828b2c9d7f1138c036aed"
      ],
      "author": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Jan 28 16:08:04 2014 -0500"
      },
      "committer": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Jan 28 16:08:04 2014 -0500"
      },
      "message": "updating logging functions\n"
    },
    {
      "commit": "fcee31476d73eb3ae0a828b2c9d7f1138c036aed",
      "tree": "4a3aab535c4ff8dec5a370a7d0f1475342fd590a",
      "parents": [
        "715d71734dadc082492a776032c4c80f5052c1c2"
      ],
      "author": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Jan 28 15:46:22 2014 -0500"
      },
      "committer": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Jan 28 15:46:22 2014 -0500"
      },
      "message": "adding verify_capability func\n"
    },
    {
      "commit": "45b2a9d09563255bd53b5952dca7b3623e2e196c",
      "tree": "a66a42733f634ac509e830465948068eb86e9ca5",
      "parents": [
        "d209c0b4249c4cac5d0616a104384f225e90c938"
      ],
      "author": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Tue Jan 28 13:02:04 2014 -0600"
      },
      "committer": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Tue Jan 28 13:02:04 2014 -0600"
      },
      "message": "addressed review comments\n"
    },
    {
      "commit": "d209c0b4249c4cac5d0616a104384f225e90c938",
      "tree": "2f8619e5fe7737d044266ab83950dc5c13343240",
      "parents": [
        "3630919ed4fb5e0f4315a3875e852ed4f33d59cf"
      ],
      "author": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Tue Jan 28 09:48:58 2014 -0600"
      },
      "committer": {
        "name": "Harshmeet Singh",
        "email": "harshmeet.singh@bigswitch.com",
        "time": "Tue Jan 28 09:48:58 2014 -0600"
      },
      "message": "changes in build icmp packet api to accomodate ip identification, icmp checksum and icmp data\n"
    },
    {
      "commit": "073642d841c626ab21125850bf2e5fcc95f71103",
      "tree": "7cef43c6865c16cc2a782a864c0d2e6d256cfe63",
      "parents": [
        "641167f1664d837bbd3a18b1e48e4d8486742659"
      ],
      "author": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 13:41:48 2014 -0500"
      },
      "committer": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 13:41:48 2014 -0500"
      },
      "message": "updating doc\n"
    },
    {
      "commit": "641167f1664d837bbd3a18b1e48e4d8486742659",
      "tree": "bdbf82c59237e7a0e92699823b91b80f08ec1f18",
      "parents": [
        "7ebd4a91e3b467ff0c54fe45257dec676cadb30d"
      ],
      "author": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 12:07:10 2014 -0500"
      },
      "committer": {
        "name": "Jonathan Stout",
        "email": "jonstout@indiana.edu",
        "time": "Tue Feb 04 12:07:10 2014 -0500"
      },
      "message": "removing assertion on capability and logging fix\n"
    },
    {
      "commit": "d459ce547a40694cb2150a63367c3464b2d30a00",
      "tree": "7d8a6ec69dc1b0fa55f9bc69d674882b6eca5980",
      "parents": [
        "41ce42c461949d440a44f15a466da5e5305e2593"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Jan 24 12:09:54 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Jan 24 12:09:54 2014 -0800"
      },
      "message": "testutils: pad simple_arp_packet with \u0027\\0\u0027 instead of \u00270\u0027\n"
    },
    {
      "commit": "41ce42c461949d440a44f15a466da5e5305e2593",
      "tree": "a5ad74d2fc7f4634b217ad25d87644d03f54930f",
      "parents": [
        "912a18fe5316a9e0f4ed84788db7321793b59b23",
        "7fdc07d8da8a1f452d56979a3151d07d9e0d4625"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed Jan 15 17:56:27 2014 -0800"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Wed Jan 15 17:56:27 2014 -0800"
      },
      "message": "Merge into master from pull request #94:\ngentable tests (https://github.com/floodlight/oftest/pull/94)\n"
    },
    {
      "commit": "e01611fe700981492a31104e8a5b4272c74a8094",
      "tree": "3852bb62b239671dc986485d6a9538c51bdf0439",
      "parents": [
        "5454b68fb60f060a4b4860d49b4d7ad1db7dc765"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jan 15 14:55:11 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Jan 15 14:55:11 2014 -0800"
      },
      "message": "add vlan support to simple_arp_packet\n"
    },
    {
      "commit": "1fd43e35d23a1341216575a005438ec252621d69",
      "tree": "4817c839770399857ae7fb416537358889424aa5",
      "parents": [
        "1a82041a3dd27d209f2988edb2490dc47a422e31"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Jan 06 15:22:50 2014 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Jan 09 15:43:10 2014 -0800"
      },
      "message": "controller: log LOXI class name instead of header type\n\nAlso requires that the argument to message_send is not yet packed.\n"
    },
    {
      "commit": "5de5e63745034c47fff2ce1c92b9332b74fb937c",
      "tree": "4c88b9aadf7693cbd7f659e5d1e6ff69122af6ed",
      "parents": [
        "8be7a286939c4536a6afec394db02317dd3ed68a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Sun Nov 24 10:15:25 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Sun Nov 24 10:15:25 2013 -0800"
      },
      "message": "testutils: use group_mod subclasses\n"
    },
    {
      "commit": "80c5b207e07f2828805d8f83358a78093909a690",
      "tree": "23aae224a5d6efdd54bbb747e1c68a6b9151797c",
      "parents": [
        "57881ca789fd4067987d87fce3ea9bbe4f533af8"
      ],
      "author": {
        "name": "Tony van der Peet",
        "email": "tony.vanderpeet@alliedtelesis.co.nz",
        "time": "Wed Nov 20 11:47:48 2013 +1300"
      },
      "committer": {
        "name": "Tony van der Peet",
        "email": "tony.vanderpeet@alliedtelesis.co.nz",
        "time": "Wed Nov 20 11:47:48 2013 +1300"
      },
      "message": "Fix load.FlowRemovedLoad test.\n"
    },
    {
      "commit": "53275085f473dc1735737a9c487f3dcf6a91e490",
      "tree": "245a0cc7fd96e5df9c2fe1146952aace652f236d",
      "parents": [
        "0655bf84603585188cd393f76c6f1405d551fe32"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Nov 18 23:26:22 2013 -0800"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Mon Nov 18 23:31:47 2013 -0800"
      },
      "message": "testutils: use unicast MACs in simple_eth_pkt\n\nThis \"simple\" function shouldn\u0027t create multicast packets. Changed to use the\nsame MACs as the other packet creation functions.\n\nReported by Tony van der Peet \u003ctony.vanderpeet@gmail.com\u003e.\n"
    },
    {
      "commit": "c11a918021c025f84bd3b8d40df8ae00439cd4ef",
      "tree": "3cb298cbee720e8ac716b32ac001ee5d3adacea7",
      "parents": [
        "82ca4c4b367bc467b3e76b5ff511182bb47a746d"
      ],
      "author": {
        "name": "Wilson Ng",
        "email": "wilson.ng@bigswitch.com",
        "time": "Mon Oct 28 16:02:03 2013 -0700"
      },
      "committer": {
        "name": "Wilson Ng",
        "email": "wilson.ng@bigswitch.com",
        "time": "Mon Oct 28 16:02:03 2013 -0700"
      },
      "message": "When handling OF messages from switch, use matching OF version.\n"
    },
    {
      "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": "9679581f56b78b731b9c31894c91b4737e7854cb",
      "tree": "dda15814c9d05c1e3b5ade490903e54341898701",
      "parents": [
        "e53294aeaa71ff5afedb3f24b1bfa46e5a41632d",
        "d9ea8ac719f85b4f63da15ef8a485bab86200c12"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Tue Oct 15 11:11:49 2013 -0700"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Tue Oct 15 11:11:49 2013 -0700"
      },
      "message": "Merge into master from pull request #75:\ngroup table management tests (https://github.com/floodlight/oftest/pull/75)\n"
    },
    {
      "commit": "34c68d5ccf9a813c719b679c181bd3c4539691c3",
      "tree": "fdc7b2a46c303bd2af5def420359ee8946d67abb",
      "parents": [
        "89e1265e50692736ad5af2ca901a5d0b54e8477f"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Oct 11 10:38:21 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Oct 11 10:38:21 2013 -0700"
      },
      "message": "testutils: improve get_stats OF 1.3 support\n"
    },
    {
      "commit": "e53294aeaa71ff5afedb3f24b1bfa46e5a41632d",
      "tree": "50f2ef3e967123d19fb28e58a06b162ecb3190a8",
      "parents": [
        "2d2e7ae7c08aa8309ed5c5cbae5664c2c2b846d1",
        "4d1f3eb2c792f679ccc05ab2aae1af1c97182b52"
      ],
      "author": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Fri Oct 11 02:18:48 2013 -0700"
      },
      "committer": {
        "name": "abat",
        "email": "abat@bigswitch.com",
        "time": "Fri Oct 11 02:18:48 2013 -0700"
      },
      "message": "Merge into master from pull request #73:\noft: change default port to 6653 (https://github.com/floodlight/oftest/pull/73)\n"
    },
    {
      "commit": "12d045950de8eedaf9c43944cfaa8ddf0a12874c",
      "tree": "4179c940f08774dc8cf6df284e8a2092ce0d3aed",
      "parents": [
        "400fb9bfe1647f21c37693baf3543f50645c96da"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Oct 10 17:21:07 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Oct 10 17:21:07 2013 -0700"
      },
      "message": "testutils: add verify_no_errors\n\nThis is useful when sending messages like flow-mods or group-mods that do not\nhave a reply. It should be called after a barrier to ensure the switch has\nprocessed the previous requests.\n"
    },
    {
      "commit": "400fb9bfe1647f21c37693baf3543f50645c96da",
      "tree": "22fca4808a1f5682eb92fa97f3059f360fa52c84",
      "parents": [
        "5f3c9b2eb22161c07315335baaf4f66e875a8c4c"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Oct 10 17:20:54 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Oct 10 17:20:54 2013 -0700"
      },
      "message": "testutils: update flow_msg_create for OF 1.1+\n"
    },
    {
      "commit": "5f3c9b2eb22161c07315335baaf4f66e875a8c4c",
      "tree": "ac66148350f5bb9bd588552ddd0318b6e6268cff",
      "parents": [
        "49b323f18f7fe07d8743a5a81cd20474a508c2c1"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Oct 10 17:20:30 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Oct 10 17:20:30 2013 -0700"
      },
      "message": "testutils: add delete_all_groups\n"
    },
    {
      "commit": "c9d3edd2d77c09f5f25d2261a83f5a430db3b005",
      "tree": "141dc2b90ba684cb149d42f7f36c1930059a9013",
      "parents": [
        "49b323f18f7fe07d8743a5a81cd20474a508c2c1"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Oct 09 00:21:01 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Wed Oct 09 00:21:01 2013 -0700"
      },
      "message": "controller: serialize calls to socket.sendall\n\nThe sendall method is not atomic. Concurrent calls may end up with their data\ninterleaved on the socket. This is especially likely when the socket buffer\nfills up, causing sendall to call select(2) between writes.\n\nI noticed this bug when installing many flows. The echo reply sent by the\ncontroller thread ended up in the middle of a flow mod.\n"
    },
    {
      "commit": "4d1f3eb2c792f679ccc05ab2aae1af1c97182b52",
      "tree": "0aabc9727dc8c90eacdc665fc7f1c4e370e268fb",
      "parents": [
        "07c1cc72b66a60b6fa69d767c44a31b36cc2501c"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Thu Oct 03 13:45:57 2013 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rlane@bigswitch.com",
        "time": "Fri Oct 04 12:50:44 2013 -0700"
      },
      "message": "oft: change default port to 6653\n\n6653 is the IANA assigned port number.\n"
    },
    {
      "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": "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": "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": "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": "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"
    }
  ],
  "next": "48e447eccedce64a06ac4496240dfe7655ddb09c"
}
