)]}'
{
  "commit": "dc488f888060afdc129e0cc8812cf50c4c083423",
  "tree": "e0f534912a160080fa7cbb726894b6a02c1ff2b2",
  "parents": [
    "dc407ae8a75d03cf48e114d3812d077fa29a8bd9"
  ],
  "author": {
    "name": "Scott Feldman",
    "email": "sfeldma@gmail.com",
    "time": "Fri Mar 13 21:09:30 2015 -0700"
  },
  "committer": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Mon May 11 14:49:04 2015 +0100"
  },
  "message": "rocker: add new rocker switch device\n\nRocker is a simulated ethernet switch device.  The device supports up to 62\nfront-panel ports and supports L2 switching and L3 routing functions, as well\nas L2/L3/L4 ACLs.  The device presents a single PCI device for each switch,\nwith a memory-mapped register space for device driver access.\n\nRocker device is invoked with -device, for example a 4-port switch:\n\n  -device rocker,name\u003dsw1,len-ports\u003d4,ports[0]\u003ddev0,ports[1]\u003ddev1, \\\n         ports[2]\u003ddev2,ports[3]\u003ddev3\n\nEach port is a netdev and can be paired with using -netdev id\u003d\u003cport name\u003e.\n\nSigned-off-by: Scott Feldman \u003csfeldma@gmail.com\u003e\nSigned-off-by: Jiri Pirko \u003cjiri@resnulli.us\u003e\nAcked-by: Scott Feldman \u003csfeldma@gmail.com\u003e\nAcked-by: Jiri Pirko \u003cjiri@resnulli.us\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\nMessage-id: 1426306173-24884-7-git-send-email-sfeldma@gmail.com\n\nrocker: fix clang compiler errors\n\nConsolidate all forward typedef declarations to rocker.h.\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\nAcked-by: Scott Feldman \u003csfeldma@gmail.com\u003e\nAcked-by: Jiri Pirko \u003cjiri@resnulli.us\u003e\n\nrocker: add support for flow modification\n\nWe had support for flow add/del.  This adds support for flow mod.  I needed\nthis for L3 support where an existing route is modified using NLM_F_REPLACE.\nFor example:\n\n  ip route add 12.0.0.0/30 nexthop via 11.0.0.1 dev swp1\n  ip route change 12.0.0.0/30 nexthop via 11.0.0.9 dev swp2\n\nThe first cmd adds the route.  The second cmd changes the existing route by\nchanging its nexthop info.\n\nIn the device, a mod operation results in the matching flow enty being modified\nwith the new settings.  This is atomic to the device.\n\nSigned-off-by: Scott Feldman \u003csfeldma@gmail.com\u003e\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "58a2c0ace100eae0eaa6b92be0eb1c0ff165c12a",
      "old_mode": 33188,
      "old_path": "default-configs/pci.mak",
      "new_id": "7e10903baa5d79c300c91b1f7aa15e2c996b1d1b",
      "new_mode": 33188,
      "new_path": "default-configs/pci.mak"
    },
    {
      "type": "modify",
      "old_id": "ea93293122cb78ee9e970e8a7c9cc267a924d0fb",
      "old_mode": 33188,
      "old_path": "hw/net/Makefile.objs",
      "new_id": "7b91c4e51d0a7cd9750b4839bac7d6ff36c19df8",
      "new_mode": 33188,
      "new_path": "hw/net/Makefile.objs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "55b6c46157997a262dcafce65c186d6150e34715",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6ae74fff808fc1dd41198d8c9a4e6b2408c15457",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9d896fe470d81f9eabc3601a374e18bce21b18e6",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_desc.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d4041f5c4c58d9600dcd08a9c6dd6fb6f461bc6c",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_desc.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f1e3b348a52c1c410de492f6300207ffa570cb8",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_fp.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5f28f120d5afd16c60f88a869203c02628de40b",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_fp.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c9c85a75bde59d01a7a8a9452422b55afb5b93be",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_hw.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1bcb7af5ef5e1d677a2200097c80f41ba2ef9b8b",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_of_dpa.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3f6d77807a6247c97c87b98c4e7617a11c2444e",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_of_dpa.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e3c4ab679314d0f4590189b9c77be2a994f363b6",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_tlv.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b991e871d3b6614203c706b3b9ad6de08560c1f8",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_world.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "18d277b92720720c7ddbdb28b523dcacd78ec2c3",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_world.h"
    }
  ]
}
