)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ],
  "next": "63393495124c77d79b2319d96550a8bc3ab6e35b"
}
