)]}'
{
  "log": [
    {
      "commit": "e84665c9cb4db963393fafad6fefe5efdd7e4a09",
      "tree": "545c4a2a63a77b853e3f34609d86b346fe61baf4",
      "parents": [
        "076d3e10a54caa2c148de5732c126c7a31381d48"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Fri Mar 20 09:52:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 21 19:06:54 2009 -0700"
      },
      "message": "dsa: add switch chip cascading support\n\nThe initial version of the DSA driver only supported a single switch\nchip per network interface, while DSA-capable switch chips can be\ninterconnected to form a tree of switch chips.  This patch adds support\nfor multiple switch chips on a network interface.\n\nAn example topology for a 16-port device with an embedded CPU is as\nfollows:\n\n\t+-----+          +--------+       +--------+\n\t|     |eth0    10| switch |9    10| switch |\n\t| CPU +----------+        +-------+        |\n\t|     |          | chip 0 |       | chip 1 |\n\t+-----+          +---++---+       +---++---+\n\t                     ||               ||\n\t                     ||               ||\n\t                     ||1000baseT      ||1000baseT\n\t                     ||ports 1-8      ||ports 9-16\n\nThis requires a couple of interdependent changes in the DSA layer:\n\n- The dsa platform driver data needs to be extended: there is still\n  only one netdevice per DSA driver instance (eth0 in the example\n  above), but each of the switch chips in the tree needs its own\n  mii_bus device pointer, MII management bus address, and port name\n  array. (include/net/dsa.h)  The existing in-tree dsa users need\n  some small changes to deal with this. (arch/arm)\n\n- The DSA and Ethertype DSA tagging modules need to be extended to\n  use the DSA device ID field on receive and demultiplex the packet\n  accordingly, and fill in the DSA device ID field on transmit\n  according to which switch chip the packet is heading to.\n  (net/dsa/tag_{dsa,edsa}.c)\n\n- The concept of \"CPU port\", which is the switch chip port that the\n  CPU is connected to (port 10 on switch chip 0 in the example), needs\n  to be extended with the concept of \"upstream port\", which is the\n  port on the switch chip that will bring us one hop closer to the CPU\n  (port 10 for both switch chips in the example above).\n\n- The dsa platform data needs to specify which ports on which switch\n  chips are links to other switch chips, so that we can enable DSA\n  tagging mode on them.  (For inter-switch links, we always use\n  non-EtherType DSA tagging, since it has lower overhead.  The CPU\n  link uses dsa or edsa tagging depending on what the \u0027root\u0027 switch\n  chip supports.)  This is done by specifying \"dsa\" for the given\n  port in the port array.\n\n- The dsa platform data needs to be extended with information on via\n  which port to reach any given switch chip from any given switch chip.\n  This info is specified via the per-switch chip data struct -\u003ertable[]\n  array, which gives the nexthop ports for each of the other switches\n  in the tree.\n\nFor the example topology above, the dsa platform data would look\nsomething like this:\n\n\tstatic struct dsa_chip_data sw[2] \u003d {\n\t\t{\n\t\t\t.mii_bus\t\u003d \u0026foo,\n\t\t\t.sw_addr\t\u003d 1,\n\t\t\t.port_names[0]\t\u003d \"p1\",\n\t\t\t.port_names[1]\t\u003d \"p2\",\n\t\t\t.port_names[2]\t\u003d \"p3\",\n\t\t\t.port_names[3]\t\u003d \"p4\",\n\t\t\t.port_names[4]\t\u003d \"p5\",\n\t\t\t.port_names[5]\t\u003d \"p6\",\n\t\t\t.port_names[6]\t\u003d \"p7\",\n\t\t\t.port_names[7]\t\u003d \"p8\",\n\t\t\t.port_names[9]\t\u003d \"dsa\",\n\t\t\t.port_names[10]\t\u003d \"cpu\",\n\t\t\t.rtable\t\t\u003d (s8 []){ -1, 9, },\n\t\t}, {\n\t\t\t.mii_bus\t\u003d \u0026foo,\n\t\t\t.sw_addr\t\u003d 2,\n\t\t\t.port_names[0]\t\u003d \"p9\",\n\t\t\t.port_names[1]\t\u003d \"p10\",\n\t\t\t.port_names[2]\t\u003d \"p11\",\n\t\t\t.port_names[3]\t\u003d \"p12\",\n\t\t\t.port_names[4]\t\u003d \"p13\",\n\t\t\t.port_names[5]\t\u003d \"p14\",\n\t\t\t.port_names[6]\t\u003d \"p15\",\n\t\t\t.port_names[7]\t\u003d \"p16\",\n\t\t\t.port_names[10]\t\u003d \"dsa\",\n\t\t\t.rtable\t\t\u003d (s8 []){ 10, -1, },\n\t\t},\n\t},\n\n\tstatic struct dsa_platform_data pd \u003d {\n\t\t.netdev\t\t\u003d \u0026foo,\n\t\t.nr_switches\t\u003d 2,\n\t\t.sw\t\t\u003d sw,\n\t};\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Gary Thomas \u003cgary@mlbassoc.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c084080151e1de92159f8437fde34b6e5bebe35e",
      "tree": "11dbcc801612f17d70d339daf1bf936af9c1aa55",
      "parents": [
        "aec464bbee32e1d67cba0072c50774c5298ef762"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Fri Mar 20 09:49:49 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 21 19:06:53 2009 -0700"
      },
      "message": "dsa: set -\u003eiflink on slave interfaces to the ifindex of the parent\n\n..so that we can parse the DSA topology from \u0027ip link\u0027 output:\n\n1: lo: \u003cLOOPBACK,UP,LOWER_UP\u003e mtu 16436 qdisc noqueue\n2: eth0: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e mtu 1500 qdisc pfifo_fast qlen 1000\n3: eth1: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e mtu 1500 qdisc pfifo_fast qlen 1000\n4: lan1@eth0: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e mtu 1500 qdisc noqueue\n5: lan2@eth0: \u003cNO-CARRIER,BROADCAST,MULTICAST,UP\u003e mtu 1500 qdisc noqueue\n6: lan3@eth0: \u003cNO-CARRIER,BROADCAST,MULTICAST,UP\u003e mtu 1500 qdisc noqueue\n7: lan4@eth0: \u003cNO-CARRIER,BROADCAST,MULTICAST,UP\u003e mtu 1500 qdisc noqueue\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d442ad4ab1c86b453e0f44fb3de0932f386ab3e6",
      "tree": "ff5ddcc2c15555f7fc3cb057818658c7f42bf402",
      "parents": [
        "f430e49e9e0cf821c090abedb399b80ebf0cb4c6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Jan 06 16:45:26 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 06 16:45:26 2009 -0800"
      },
      "message": "dsa: convert to net_device_ops (v2)\n\nConvert this driver to use net_device_ops\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e452baf6b96b5aeba097afd91501d33d390cc97",
      "tree": "9b0e062d3677d50d731ffd0fba47423bfdee9253",
      "parents": [
        "3ac38c3a2e7dac3f8f35a56eb85c27881a4c3833",
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 11 15:43:02 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 11 15:43:02 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/message/fusion/mptlan.c\n\tdrivers/net/sfc/ethtool.c\n\tnet/mac80211/debugfs_sta.c\n"
    },
    {
      "commit": "df02c6ff2e3937379b31ea161b53229134fe92f7",
      "tree": "93e76bcd230de65599709b5520bd53c337ebd432",
      "parents": [
        "14ee6742b1b5df275cd2d771b4562b4f808c9419"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@marvell.com",
        "time": "Mon Nov 10 21:53:12 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 10 21:53:12 2008 -0800"
      },
      "message": "dsa: fix master interface allmulti/promisc handling\n\nBefore commit b6c40d68ff6498b7f63ddf97cf0aa818d748dee7 (\"net: only\ninvoke dev-\u003echange_rx_flags when device is UP\"), the dsa driver could\nsort-of get away with only fiddling with the master interface\u0027s\nallmulti/promisc counts in -\u003echange_rx_flags() and not touching them\nin -\u003eopen() or -\u003estop().  After this commit (note that it was merged\nalmost simultaneously with the dsa patches, which is why this wasn\u0027t\ncaught initially), the breakage that was already there became more\napparent.\n\nSince it makes no sense to keep the master interface\u0027s allmulti or\npromisc count pinned for a slave interface that is down, copy the vlan\ndriver\u0027s sync logic (which does exactly what we want) over to dsa to\nfix this.\n\nBug report from Dirk Teurlings \u003cdirk@upexia.nl\u003e and Peter van Valderen\n\u003clinux@ddcrew.com\u003e.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Dirk Teurlings \u003cdirk@upexia.nl\u003e\nTested-by: Peter van Valderen \u003clinux@ddcrew.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fb28ad35906af2f042c94e2f9c0f898ef9acfa37",
      "tree": "ee3d535ab38d680b424a857406789f8c28bf5266",
      "parents": [
        "23779897546c1effb546ff89b89803d9d955d517"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Mon Nov 10 13:55:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 10 13:55:14 2008 -0800"
      },
      "message": "net: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "396138f03f4521c55ecc3a5dd75d4c56e6323244",
      "tree": "61dc43e540c861a4b05753da56a9fe2a19bea206",
      "parents": [
        "2e5f032095ff101274dfb03d5fd5e06d9aeb83cd"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Oct 07 13:46:07 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 17:24:16 2008 -0700"
      },
      "message": "dsa: add support for Trailer tagging format\n\nThis adds support for the Trailer switch tagging format.  This is\nanother tagging that doesn\u0027t explicitly mark tagged packets with a\ndistinct ethertype, so that we need to add a similar hack in the\nreceive path as for the Original DSA tagging format.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Byron Bradley \u003cbyron.bbradley@gmail.com\u003e\nTested-by: Tim Ellis \u003ctim.ellis@mac.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf85d08fdf4548ee46657ccfb7f9949a85145db5",
      "tree": "583e251b0d772c23ca931a207e9ac0995d679f44",
      "parents": [
        "91da11f870f00a3322b81c73042291d7f0be5a17"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Oct 07 13:45:02 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 17:19:56 2008 -0700"
      },
      "message": "dsa: add support for original DSA tagging format\n\nMost of the DSA switches currently in the field do not support the\nEthertype DSA tagging format that one of the previous patches added\nsupport for, but only the original DSA tagging format.\n\nThe original DSA tagging format carries the same information as the\nEthertype DSA tagging format, but with the difference that it does not\nhave an ethertype field.  In other words, when receiving a packet that\nis tagged with an original DSA tag, there is no way of telling in\neth_type_trans() that this packet is in fact a DSA-tagged packet.\n\nThis patch adds a hook into eth_type_trans() which is only compiled in\nif support for a switch chip that doesn\u0027t support Ethertype DSA is\nselected, and which checks whether there is a DSA switch driver\ninstance attached to this network device which uses the old tag format.\nIf so, it sets the protocol field to ETH_P_DSA without looking at the\npacket, so that the packet ends up in the right place.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nTested-by: Peter van Valderen \u003clinux@ddcrew.com\u003e\nTested-by: Dirk Teurlings \u003cdirk@upexia.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "91da11f870f00a3322b81c73042291d7f0be5a17",
      "tree": "670fedb54ee3c8fa403e9095f6d7e95ee560f346",
      "parents": [
        "176eaa589b3d242f25f24e472883fcce5f196777"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Oct 07 13:44:02 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 17:15:19 2008 -0700"
      },
      "message": "net: Distributed Switch Architecture protocol support\n\nDistributed Switch Architecture is a protocol for managing hardware\nswitch chips.  It consists of a set of MII management registers and\ncommands to configure the switch, and an ethernet header format to\nsignal which of the ports of the switch a packet was received from\nor is intended to be sent to.\n\nThe switches that this driver supports are typically embedded in\naccess points and routers, and a typical setup with a DSA switch\nlooks something like this:\n\n\t+-----------+       +-----------+\n\t|           | RGMII |           |\n\t|           +-------+           +------ 1000baseT MDI (\"WAN\")\n\t|           |       |  6-port   +------ 1000baseT MDI (\"LAN1\")\n\t|    CPU    |       |  ethernet +------ 1000baseT MDI (\"LAN2\")\n\t|           |MIImgmt|  switch   +------ 1000baseT MDI (\"LAN3\")\n\t|           +-------+  w/5 PHYs +------ 1000baseT MDI (\"LAN4\")\n\t|           |       |           |\n\t+-----------+       +-----------+\n\nThe switch driver presents each port on the switch as a separate\nnetwork interface to Linux, polls the switch to maintain software\nlink state of those ports, forwards MII management interface\naccesses to those network interfaces (e.g. as done by ethtool) to\nthe switch, and exposes the switch\u0027s hardware statistics counters\nvia the appropriate Linux kernel interfaces.\n\nThis initial patch supports the MII management interface register\nlayout of the Marvell 88E6123, 88E6161 and 88E6165 switch chips, and\nsupports the \"Ethertype DSA\" packet tagging format.\n\n(There is no officially registered ethertype for the Ethertype DSA\npacket format, so we just grab a random one.  The ethertype to use\nis programmed into the switch, and the switch driver uses the value\nof ETH_P_EDSA for this, so this define can be changed at any time in\nthe future if the one we chose is allocated to another protocol or\nif Ethertype DSA gets its own officially registered ethertype, and\neverything will continue to work.)\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nTested-by: Byron Bradley \u003cbyron.bbradley@gmail.com\u003e\nTested-by: Tim Ellis \u003ctim.ellis@mac.com\u003e\nTested-by: Peter van Valderen \u003clinux@ddcrew.com\u003e\nTested-by: Dirk Teurlings \u003cdirk@upexia.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
