)]}'
{
  "commit": "3982d3d28b02bed5312015762fe2112ccbaf9051",
  "tree": "783332d9c3983924dfc102b8a2f8147ad5bd078c",
  "parents": [
    "8dd07086a1f8048428d33a1917b6209978750cb1"
  ],
  "author": {
    "name": "Fischer, Anna",
    "email": "anna.fischer@hp.com",
    "time": "Thu Aug 13 06:55:16 2009 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Aug 13 16:26:11 2009 -0700"
  },
  "message": "net/bridge: Add \u0027hairpin\u0027 port forwarding mode\n\nThis patch adds a \u0027hairpin\u0027 (also called \u0027reflective relay\u0027) mode\nport configuration to the Linux Ethernet bridge kernel module.\nA bridge supporting hairpin forwarding mode can send frames back\nout through the port the frame was received on.\n\nHairpin mode is required to support basic VEPA (Virtual\nEthernet Port Aggregator) capabilities.\n\nYou can find additional information on VEPA here:\nhttp://tech.groups.yahoo.com/group/evb/\nhttp://www.ieee802.org/1/files/public/docs2009/new-hudson-vepa_seminar-20090514d.pdf\nhttp://www.internet2.edu/presentations/jt2009jul/20090719-congdon.pdf\n\nAn additional patch \u0027bridge-utils: Add \u0027hairpin\u0027 port forwarding mode\u0027\nis provided to allow configuring hairpin mode from userspace tools.\n\nSigned-off-by: Paul Congdon \u003cpaul.congdon@hp.com\u003e\nSigned-off-by: Anna Fischer \u003canna.fischer@hp.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d2c27c808d3bad3cb7b782f731c39345098c7df6",
      "old_mode": 33188,
      "old_path": "net/bridge/br_forward.c",
      "new_id": "bc1704ac6cd9f68f2b73e36443a3c8162b5f5fe1",
      "new_mode": 33188,
      "new_path": "net/bridge/br_forward.c"
    },
    {
      "type": "modify",
      "old_id": "eb404dc3ed6e213e4148ba1f7b13bb1d0570a4e1",
      "old_mode": 33188,
      "old_path": "net/bridge/br_if.c",
      "new_id": "e486f1fc36324e74868d348eb9e09af2d6419fac",
      "new_mode": 33188,
      "new_path": "net/bridge/br_if.c"
    },
    {
      "type": "modify",
      "old_id": "d5b5537272b47af9c1e8abdcc7a693ac6a7e63cd",
      "old_mode": 33188,
      "old_path": "net/bridge/br_private.h",
      "new_id": "8319247dad5db6c555911b7a5f9f5ad75bfe216a",
      "new_mode": 33188,
      "new_path": "net/bridge/br_private.h"
    },
    {
      "type": "modify",
      "old_id": "4a3cdf8f38131e6b19adf330a0e697a307a39e16",
      "old_mode": 33188,
      "old_path": "net/bridge/br_sysfs_if.c",
      "new_id": "820643a3ba9c35e98d1b679e50bfbac22e987aa3",
      "new_mode": 33188,
      "new_path": "net/bridge/br_sysfs_if.c"
    }
  ]
}
