)]}'
{
  "commit": "23721387c409087fd3b97e274f34d3ddc0970b74",
  "tree": "cf386c6f169a1b2b6e8c8ef77be5226e10046689",
  "parents": [
    "a7f6ee9493677ba40625d810258de5bd521cc1b0"
  ],
  "author": {
    "name": "Simon Wunderlich",
    "email": "simon.wunderlich@s2003.tu-chemnitz.de",
    "time": "Sun Jan 22 20:00:19 2012 +0100"
  },
  "committer": {
    "name": "Antonio Quartulli",
    "email": "ordex@autistici.org",
    "time": "Wed Apr 11 14:28:58 2012 +0200"
  },
  "message": "batman-adv: add basic bridge loop avoidance code\n\nThis second version of the bridge loop avoidance for batman-adv\navoids loops between the mesh and a backbone (usually a LAN).\n\nBy connecting multiple batman-adv mesh nodes to the same ethernet\nsegment a loop can be created when the soft-interface is bridged\ninto that ethernet segment. A simple visualization of the loop\ninvolving the most common case - a LAN as ethernet segment:\n\nnode1  \u003c-- LAN  --\u003e  node2\n  |                   |\nwifi   \u003c-- mesh --\u003e  wifi\n\nPackets from the LAN (e.g. ARP broadcasts) will circle forever from\nnode1 or node2 over the mesh back into the LAN.\n\nWith this patch, batman recognizes backbone gateways, nodes which are\npart of the mesh and backbone/LAN at the same time. Each backbone\ngateway \"claims\" clients from within the mesh to handle them\nexclusively. By restricting that only responsible backbone gateways\nmay handle their claimed clients traffic, loops are effectively\navoided.\n\nSigned-off-by: Simon Wunderlich \u003csiwu@hrz.tu-chemnitz.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "221ad0cdf11f2fb729b1fe2bc624b30e53d996be",
      "old_mode": 33188,
      "old_path": "Documentation/networking/batman-adv.txt",
      "new_id": "9523e9ed19e9b6704273423d74c9de0a28b53d6c",
      "new_mode": 33188,
      "new_path": "Documentation/networking/batman-adv.txt"
    },
    {
      "type": "modify",
      "old_id": "a04d28f392e60ba9c770b1312559b9b92b108734",
      "old_mode": 33188,
      "old_path": "net/batman-adv/Kconfig",
      "new_id": "6ff977c1f3bcaf26950806b38dc2530d9f9773a0",
      "new_mode": 33188,
      "new_path": "net/batman-adv/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "4e392ebedb6459ee21c2108b9d850661b503c710",
      "old_mode": 33188,
      "old_path": "net/batman-adv/Makefile",
      "new_id": "94b67fd81bf7c7b429eae17ecfcd70b84000fbc0",
      "new_mode": 33188,
      "new_path": "net/batman-adv/Makefile"
    },
    {
      "type": "modify",
      "old_id": "68ff759fc3048d7a3f8031cf4a983eeafaf0bfa8",
      "old_mode": 33188,
      "old_path": "net/batman-adv/bat_sysfs.c",
      "new_id": "d12757fbe10a054741c0a4fb81cd63d78d177340",
      "new_mode": 33188,
      "new_path": "net/batman-adv/bat_sysfs.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f84c892be7ea0ba5fb116784bb61b89b5318e2fb",
      "new_mode": 33188,
      "new_path": "net/batman-adv/bridge_loop_avoidance.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "488d77895d012b926dd085f7c6ad8edebd7cc020",
      "new_mode": 33188,
      "new_path": "net/batman-adv/bridge_loop_avoidance.h"
    },
    {
      "type": "modify",
      "old_id": "377897701a850bff63b7eb981e187f11e1db6fd6",
      "old_mode": 33188,
      "old_path": "net/batman-adv/hard-interface.c",
      "new_id": "8c4b790b98bec99792256a02b60077f972f2e752",
      "new_mode": 33188,
      "new_path": "net/batman-adv/hard-interface.c"
    },
    {
      "type": "modify",
      "old_id": "94d4968a953a61ab99a6b1be97bae20f17706dc7",
      "old_mode": 33188,
      "old_path": "net/batman-adv/main.c",
      "new_id": "e67ca96285b3396ab07a9004f95235fb6a048ddb",
      "new_mode": 33188,
      "new_path": "net/batman-adv/main.c"
    },
    {
      "type": "modify",
      "old_id": "7a6a25f22fc256429fb1f346ffa785fa07b354c4",
      "old_mode": 33188,
      "old_path": "net/batman-adv/main.h",
      "new_id": "82723b5dce618cab41e70ed404ca26e61f084201",
      "new_mode": 33188,
      "new_path": "net/batman-adv/main.h"
    },
    {
      "type": "modify",
      "old_id": "82390818874bfed49a6d4f956ab1b7285b030def",
      "old_mode": 33188,
      "old_path": "net/batman-adv/originator.c",
      "new_id": "ce496988589498743a3ef2380b9da8418a32f94f",
      "new_mode": 33188,
      "new_path": "net/batman-adv/originator.c"
    },
    {
      "type": "modify",
      "old_id": "45e75ed6637dff3513a4c3236cbf8a142a61956f",
      "old_mode": 33188,
      "old_path": "net/batman-adv/packet.h",
      "new_id": "59800e82371a428ab2ff501fa6f8f802af8bedb2",
      "new_mode": 33188,
      "new_path": "net/batman-adv/packet.h"
    },
    {
      "type": "modify",
      "old_id": "71d4211beb230943dd896a811cbc5c55ed444989",
      "old_mode": 33188,
      "old_path": "net/batman-adv/routing.c",
      "new_id": "a1d8c9b0f90284765629531f8742dee13f049f80",
      "new_mode": 33188,
      "new_path": "net/batman-adv/routing.c"
    },
    {
      "type": "modify",
      "old_id": "e56cb88ef2bafa76d67c7d32fc360741af22e7b1",
      "old_mode": 33188,
      "old_path": "net/batman-adv/soft-interface.c",
      "new_id": "4d639b303bd71a48ab6b5cbde6279883c7e4ad11",
      "new_mode": 33188,
      "new_path": "net/batman-adv/soft-interface.c"
    },
    {
      "type": "modify",
      "old_id": "feac2f4030c8aed9495c4bb0fabc705d2a621c1b",
      "old_mode": 33188,
      "old_path": "net/batman-adv/types.h",
      "new_id": "089dd44a29b117ad5fdfc93c53f2608a4bfc1a38",
      "new_mode": 33188,
      "new_path": "net/batman-adv/types.h"
    }
  ]
}
