)]}'
{
  "log": [
    {
      "commit": "679695813c0e29ecab666210752c9c0b4dd9f01c",
      "tree": "7d52ad5be1f3a683ce511a9f3967ce8f1abd0157",
      "parents": [
        "8c7bf248a318444accbe0c2c5db15bd727661606"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Mar 26 16:22:45 2012 +0200"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Sun May 13 19:06:41 2012 +0200"
      },
      "message": "batman-adv: use shorter pr_warn instead of pr_warning\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "c32293983d836ed6cbc5e8b58cb8cd10b26a774e",
      "tree": "bd61208235c5067383033d9f820b565c39548fcd",
      "parents": [
        "edbf12ba56c4578f62a1357e005bcf11c2c38a16"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sun Mar 11 06:17:50 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Fri May 11 13:56:01 2012 +0200"
      },
      "message": "batman-adv: refactoring API: find generalized name for bat_ogm_update_mac callback\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "ffa995e036bef734ea40cbbccda574d1df3a8a58",
      "tree": "396d7c202f1b0d82dce905e7d70c32708886f404",
      "parents": [
        "75cd33f86396c446f84c4bb620be70c36a2a54f6"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Mar 01 15:35:17 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Fri May 11 10:08:10 2012 +0200"
      },
      "message": "batman-adv: introduce packet type handler array for incoming packets\n\nThe packet handler array replaces the growing switch statement, thus\ndealing with incoming packets in a more efficient way. It also adds\nto possibility to register packet handlers on the fly.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nAcked-by: Simon Wunderlich \u003csiwu@hrz.tu-chemnitz.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "0d125074ebc8c971e939f8c2c8f90a80fa09aeb4",
      "tree": "fb31ee069ab0a2abc7681b999839fd81392110f7",
      "parents": [
        "1eeb479fda2405269b3a85c86ba0eca41fcc4ea0"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Sat Feb 18 11:27:34 2012 +0100"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 18 09:54:01 2012 +0200"
      },
      "message": "batman-adv: use ETH_HLEN instead of sizeof(struct ethhdr)\n\nInstead of using sizeof(struct ethhdr) it is strongly recommended to use the\nkernel macro ETH_HLEN. This patch substitute each occurrence of the former\nexpressione with the latter one.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "1eeb479fda2405269b3a85c86ba0eca41fcc4ea0",
      "tree": "99ac9b9b73c2bd1b49858f5cd39dc1d27a3a8a24",
      "parents": [
        "76e3d7fc1a49ea8c377ddc91a4ec40f326404833"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Tue Feb 07 17:20:51 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 18 09:54:01 2012 +0200"
      },
      "message": "batman-adv: mark existing ogm variables as batman iv\n\nThe coming protocol changes also will have a part called \"OGM\". That\nmakes it necessary to introduce a distinction in the code base.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "cd8b78e7e9d1d9625634dc1ec2bb4b5a14d1295a",
      "tree": "311f168367895522355764708b4619c50d2d87a9",
      "parents": [
        "77af7575c4b11ce7d27b4cb372abd358b2dcd850"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Tue Feb 07 17:20:49 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 18 09:54:00 2012 +0200"
      },
      "message": "batman-adv: refactoring API: find generalized name for bat_ogm_init_primary callback\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "77af7575c4b11ce7d27b4cb372abd358b2dcd850",
      "tree": "7e29c816a445dbce85758313685046edb98844d5",
      "parents": [
        "00a50076a3afa4014cdd57e87e31a00ce4c4b67e"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Tue Feb 07 17:20:48 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 18 09:53:59 2012 +0200"
      },
      "message": "batman-adv: handle routing code initialization properly\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "00a50076a3afa4014cdd57e87e31a00ce4c4b67e",
      "tree": "29a2f36db820eb25b3d4abd56c71d8c2e6cde889",
      "parents": [
        "d7d32ec0f199cc00a43434cdd920338763fab2e0"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Tue Feb 07 17:20:47 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 18 09:53:59 2012 +0200"
      },
      "message": "batman-adv: add iface_disable() callback to routing API\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "c2aca02235c014de57b03aa725d9b094f7a87cac",
      "tree": "f1ebbe3a48d5db44a3d71ccdc31a5c9ae99a8585",
      "parents": [
        "8140625e30523da3eb76cdab837ba7aa9509029c"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Tue Feb 07 17:20:45 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 18 09:53:58 2012 +0200"
      },
      "message": "batman-adv: refactoring API: find generalized name for bat_ogm_init callback\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "commit": "8140625e30523da3eb76cdab837ba7aa9509029c",
      "tree": "2ecfc26681b8834036eb8cb8e6fb6eceaea19888",
      "parents": [
        "e88af9464f8ba6bec5a5213065ce8d98b2f2ac1a"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Tue Feb 07 17:19:58 2012 +0800"
      },
      "committer": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 18 09:53:57 2012 +0200"
      },
      "message": "batman-adv: move ogm initialization into the proper function\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\n"
    },
    {
      "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"
    },
    {
      "commit": "86ceb360565d06fcee96be85c4bafe9264756eca",
      "tree": "f0a6a8782cd740222a068f20f5c48ee84aeb5b80",
      "parents": [
        "7c64fd98ce512de6c6dae0452dc026446bd368d5"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Wed Mar 07 09:07:45 2012 +0100"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sun Mar 11 06:29:44 2012 +0800"
      },
      "message": "batman-adv: Ignore 80-chars per line limits for strings\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "7c64fd98ce512de6c6dae0452dc026446bd368d5",
      "tree": "81b5a3df9c7937f1d85cc9f32841fe9b949ca0bb",
      "parents": [
        "fdc8ff101163f10d36187a890a3c4990cebb8b12"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Tue Feb 28 10:55:36 2012 +0100"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Tue Feb 28 19:14:31 2012 +0800"
      },
      "message": "batman-adv: Fix indentation of multiline statements\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "567db7b0b7c0a94cc62846f8ebb429bdda2884bc",
      "tree": "c77ce9d27df43e72c14c8a57f7a348db2fca3a5b",
      "parents": [
        "92f90f56caa30dfcb6c5755776d73df23ef2ae1a"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun Jan 01 00:41:38 2012 +0100"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Feb 17 02:50:21 2012 +0800"
      },
      "message": "batman-adv: Update copyright years\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "01c4224b51feba2ba64d070ab9f4aa32c9d0bb29",
      "tree": "80ca19da3b90b2b69f01492c06310be4c8678efc",
      "parents": [
        "1c280471b013e26c833fc86acc231c73442cfa21"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Mon Nov 28 21:31:55 2011 +0800"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Feb 17 02:50:20 2012 +0800"
      },
      "message": "batman-adv: convert batman iv algorithm to use dynamic infrastructure\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "6e242f9037f8a82ce2608c20a5460b670b2d5ff4",
      "tree": "52cee5bbf5a80e8d7f218c537cb1982ca290ab20",
      "parents": [
        "a04ccd5970ec11f0b320971051435d86d3233c92"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Wed Dec 07 18:02:50 2011 +0800"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Feb 17 02:50:19 2012 +0800"
      },
      "message": "batman-adv: warn if added interface is part of a bridge\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "76543d14aec6ce5cb3fc7be9b39c50fcebd2043b",
      "tree": "4f739cfadaee8ec9a06d7855956f3accc1dcc2be",
      "parents": [
        "17071578888c7c18709e48e74fae228c04581b9a"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun Nov 20 15:47:38 2011 +0100"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Feb 17 02:50:19 2012 +0800"
      },
      "message": "batman-adv: Explicitly mark the common header structure\n\nAll batman-adv packets have a common 3 byte header. It can be used to share\nsome code between different code paths, but it was never explicit stated that\nthis header has to be always the same for all packets. Therefore, new code\nchanges always have the problem that they may accidently introduce regressions\nby moving some elements around.\n\nA new structure is introduced that contains the common header and makes it\neasier visible that these 3 bytes have to be the same for all on-wire packets.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "320f422f629c7ed5d07b4186aa491d1e11d18a4c",
      "tree": "8d32d97b2143abbab7bbbb19e8ef9b6e9235c2c4",
      "parents": [
        "45485ad7d24f9f1de964b3aea8beb199dbac141c"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Aug 29 14:17:24 2011 -0700"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Sep 08 17:52:30 2011 +0200"
      },
      "message": "batman-adv: Remove unnecessary OOM logging messages\n\nRemoving unnecessary messages saves code and text.\n\nSite specific OOM messages are duplications of a generic MM\nout of memory message and aren\u0027t really useful, so just\ndelete them.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "b9dacc521f1cc21f018b27c9f83668258aaec8a2",
      "tree": "23187d4eb263098f2ab4e9fb48f0442a1bfea48d",
      "parents": [
        "d0b9fd89c2e44693e4c696bc1454fbe623d2e261"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Wed Aug 03 09:09:30 2011 +0200"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Sep 08 17:44:41 2011 +0200"
      },
      "message": "batman-adv: agglomerate all batman iv ogm sending functions in the batman iv file\n\nIn the process the batman iv OGM aggregation code could be merged\ninto the batman iv code base which makes the separate aggregation\nfiles superfluous.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "d0b9fd89c2e44693e4c696bc1454fbe623d2e261",
      "tree": "6705d2901d687505cb62172a9fe26f8f90240bc4",
      "parents": [
        "fc9572756418e13e0bffaf2d58f678b907602507"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Jul 30 12:33:33 2011 +0200"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Sep 08 17:39:06 2011 +0200"
      },
      "message": "batman-adv: move routing packet initialization into corresponding file\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "fc9572756418e13e0bffaf2d58f678b907602507",
      "tree": "373a9b5631dbaa2bc8fc41c75d094a7f0bb157e5",
      "parents": [
        "b6da4bf5d7951aba4f86d65546474c4e718f650f"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Jul 30 12:04:12 2011 +0200"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Sep 08 17:39:06 2011 +0200"
      },
      "message": "batman-adv: agglomerate all batman iv ogm processing functions in a single file\n\nIn preparation of the upcoming improved routing algorithm the code based has\nto be re-organized to allow choosing the routing algorithm at compile time.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "b6da4bf5d7951aba4f86d65546474c4e718f650f",
      "tree": "960ba68ea86c341ec938178f9c27a09cf151861c",
      "parents": [
        "a943cac144e035c21d4f1b31b95f15b33c33a480"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Jul 29 17:31:50 2011 +0200"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Sep 08 17:37:51 2011 +0200"
      },
      "message": "batman-adv: rename all instances of batman_packet to batman_ogm_packet\n\nThe follow-up routing code changes are going to introduce additional\nrouting packet types which make this distinction necessary.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "bc2790808a7a3699a7c9f72f7ad225c8504824aa",
      "tree": "a1b0e88091facf44e0afb78d3438c55cfd6633ad",
      "parents": [
        "015758d00251a4dd9287806cdab4b9c1298f97ed"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Thu Jul 07 15:35:35 2011 +0200"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Mon Aug 22 15:16:20 2011 +0200"
      },
      "message": "batman-adv: detect clients connected through a 802.11 device\n\nClients connected through a 802.11 device are now marked with the\nTT_CLIENT_WIFI flag. This flag is also advertised with the tt\nannouncement.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "015758d00251a4dd9287806cdab4b9c1298f97ed",
      "tree": "f7569640da23701bc5c391afc1033cf89e1626aa",
      "parents": [
        "1a1f37d9257a4792ca17b28b1c2e4ad15fe95b28"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Sat Jul 09 17:52:13 2011 +0200"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Mon Aug 22 15:16:19 2011 +0200"
      },
      "message": "batman-adv: correct several typ0s in the comments\n\nSeveral typos have been corrected and some sentences have been rephrased\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "eac56465b88cc9ad3b964a9f0a02be3d3a136ddf",
      "tree": "63550c9f343f6c9351f0b54be8664807e97abb93",
      "parents": [
        "1b9c4134c126aa8ae00a57672d4a4eaecc436b54",
        "43676ab590c3f8686fd047d34c3e33803eef71f0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 20 12:59:37 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 20 12:59:37 2011 -0700"
      },
      "message": "Merge branch \u0027batman-adv/next\u0027 of git://git.open-mesh.org/ecsv/linux-merge\n"
    },
    {
      "commit": "cc47f66e6b9ec7e7d465f74739a6fc9844593894",
      "tree": "8fbda7f59267bca45f9e887d09ba1de2f3c62f8d",
      "parents": [
        "a73105b8d4c765d9ebfb664d0a66802127d8e4c7"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 27 14:27:57 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:37:27 2011 +0200"
      },
      "message": "batman-adv: improved roaming mechanism\n\nWith the current client announcement implementation, in case of roaming,\nan update is triggered on the new AP serving the client. At that point\nthe new information is spread around by means of the OGM broadcasting\nmechanism. Until this operations is not executed, no node is able to\ncorrectly route traffic towards the client. This obviously causes packet\ndrops and introduces a delay in the time needed by the client to recover\nits connections.\n\nA new packet type called ROAMING_ADVERTISEMENT is added to account this\nissue.\n\nThis message is sent in case of roaming from the new AP serving the\nclient to the old one and will contain the client MAC address. In this\nway an out-of-OGM update is immediately committed, so that the old node\ncan update its global translation table. Traffic reaching this node will\nthen be redirected to the correct destination utilising the fresher\ninformation. Thus reducing the packet drops and the connection recovery\ndelay.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "a73105b8d4c765d9ebfb664d0a66802127d8e4c7",
      "tree": "b4b11a4050109d8f042c7ac87a5a6d6d91b5d1d2",
      "parents": [
        "3b27ffb00fbe9d9189715ea13ce8712e2f0cb0c5"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 27 14:27:44 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:37:24 2011 +0200"
      },
      "message": "batman-adv: improved client announcement mechanism\n\nThe client announcement mechanism informs every mesh node in the network\nof any connected non-mesh client, in order to find the path towards that\nclient from any given point in the mesh.\n\nThe old implementation was based on the simple idea of appending a data\nbuffer to each OGM containing all the client MAC addresses the node is\nserving. All other nodes can populate their global translation tables\n(table which links client MAC addresses to node addresses) using this\nMAC address buffer and linking it to the node\u0027s address contained in the\nOGM. A node that wants to contact a client has to lookup the node the\nclient is connected to and its address in the global translation table.\n\nIt is easy to understand that this implementation suffers from several\nissues:\n - big overhead (each and every OGM contains the entire list of\n   connected clients)\n - high latencies for client route updates due to long OGM trip time and\n   OGM losses\n\nThe new implementation addresses these issues by appending client\nchanges (new client joined or a client left) to the OGM instead of\nfilling it with all the client addresses each time. In this way nodes\ncan modify their global tables by means of \"updates\", thus reducing the\noverhead within the OGMs.\n\nTo keep the entire network in sync each node maintains a translation\ntable version number (ttvn) and a translation table checksum. These\nvalues are spread with the OGM to allow all the network participants to\ndetermine whether or not they need to update their translation table\ninformation.\n\nWhen a translation table lookup is performed in order to send a packet\nto a client attached to another node, the destination\u0027s ttvn is added to\nthe payload packet. Forwarding nodes can compare the packet\u0027s ttvn with\ntheir destination\u0027s ttvn (this node could have a fresher information\nthan the source) and re-route the packet if necessary. This greatly\nreduces the packet loss of clients roaming from one AP to the next.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "6018e1183ba52735d47e8c183497d8598da75351",
      "tree": "3e9be6d850e292274ff05744ce36431492b975c7",
      "parents": [
        "075cd29e307720dfde5b67d1715a102473bf4623",
        "ecbd532108cb21d9d3770f73e168bad65d14d9eb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 09 14:56:13 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 09 14:56:13 2011 -0700"
      },
      "message": "Merge branch \u0027batman-adv/next\u0027 of git://git.open-mesh.org/ecsv/linux-merge\n"
    },
    {
      "commit": "ecbd532108cb21d9d3770f73e168bad65d14d9eb",
      "tree": "2755df4a468d6d146e20bed8306e8c76c74f1ce9",
      "parents": [
        "e8958dbf0da377e11f385a9888da3f72e827ab26"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Jun 09 17:13:09 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jun 09 20:40:38 2011 +0200"
      },
      "message": "batman-adv: use NO_FLAGS define instead of hard-coding 0\n\nThe definition NO_FLAGS was introduced to make the code more\nreadable and shall be used to initialize flag fields.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "f81c62242045fb7be0a124d8c2540af96d842fad",
      "tree": "7d5f4ed1e991f3b493f9d8cafa97bd10ff73675e",
      "parents": [
        "827d978037d7d0bf0860481948c6d26ead10042f"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Jun 03 11:51:19 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 05 14:33:39 2011 -0700"
      },
      "message": "net: Remove unnecessary semicolons\n\nSemicolons are not necessary after switch/while/for/if braces\nso remove them.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "728cbc6ac1eef89660875c70a602c1a0ba8df4ff",
      "tree": "fcdf37937b1f01494400a0e8d57490360c64cdc3",
      "parents": [
        "704509b8d44886cebfbaff1a9813c35dfa986954"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun May 15 00:50:21 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:34 2011 +0200"
      },
      "message": "batman-adv: Use rcu_dereference_protected by update-side\n\nUsually rcu_dereference isn\u0027t necessary in situations were the\nRCU-protected data structure cannot change, but sparse and lockdep still\nneed a similar functionality for analysis. rcu_dereference_protected\nimplements the reduced version which should be used to support the\ndynamic and static analysis.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "704509b8d44886cebfbaff1a9813c35dfa986954",
      "tree": "7b353f1d4a33b31d55d2a85f8d70882ade1868ce",
      "parents": [
        "958ca5985604a6f13387d32de489365df816558b"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:54 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:33 2011 +0200"
      },
      "message": "batman-adv: Calculate sizeof using variable insead of types\n\nDocumentation/CodingStyle recommends to use the form\n\n\tp \u003d kmalloc(sizeof(*p), ...);\n\nto calculate the size of a struct and not the version where the struct\nname is spelled out to prevent bugs when the type of p changes. This\nalso seems appropriate for manipulation of buffers when they are\ndirectly associated with p.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "5f718c20076f4b47c3dc0f1277aef9966928089c",
      "tree": "98c71b56526d9a8ab3edd037db1fa5597e5f7e64",
      "parents": [
        "37a4065ec79dcf172c44cb2741c1b9983ecfc492"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:52 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:32 2011 +0200"
      },
      "message": "batman-adv: Remove explicit casts cast from void* for store\n\nIt is not necessary to cast a void* to the pointer type when we just\nstore it and don\u0027t want to do pointer arithmetic before the actual\nassignment.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "747e4221a03cde62402b614ca1f8e961b8416130",
      "tree": "98428064fef191a5093e276d5a779b9e801a97f0",
      "parents": [
        "38e3c5f0dae7a3bbb32c3b2bb28c3f2557d40fe9"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:50 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:31 2011 +0200"
      },
      "message": "batman-adv: Add const type qualifier for pointers\n\nbatman-adv uses pointers which are marked as const and should not\nviolate that type qualifier by passing it to functions which force a\ncast to the non-const version.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "2dafb49d84a9195193b28ac5047df1bbab6053b9",
      "tree": "cb3a9a77496257c54ce9fb61c4ff08743a98dc31",
      "parents": [
        "01df2b65e97735547ce37844f4134b5ea99b4037"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Thu May 05 08:42:45 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun May 08 16:10:42 2011 +0200"
      },
      "message": "batman-adv: rename everything from *hna* into *tt* (translation table)\n\nTo be coherent, all the functions/variables/constants have been renamed\nto the TranslationTable style\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "c3caf5196c47a5d1c325308d8eb7f6b020ba12df",
      "tree": "6c94a6272919cb238dea5e0d4a3c06f27e7bb3f3",
      "parents": [
        "61906ae86d8989e5bd3bc1f51b2fb8d32ffde2c5"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Tue May 03 11:51:38 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun May 08 16:10:41 2011 +0200"
      },
      "message": "batman-adv: Remove unnecessary hardif_list_lock\n\nhardif_list_lock is unneccessary because we already ensure that no\nmultiple admin operations can take place through rtnl_lock.\nhardif_list_lock only adds additional overhead and complexity.\n\nCritical functions now check whether they are called with rtnl_lock\nusing ASSERT_RTNL.\n\nIt indirectly fixes the problem that orig_hash_del_if() expects that\nonly one interface is deleted from hardif_list at a time, but\nhardif_remove_interfaces() removes all at once and then calls\norig_hash_del_if().\n\nReported-by: Linus Lüssing \u003clinus.luessing@web.de\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "32ae9b221e788413ce68feaae2ca39e406211a0a",
      "tree": "d827f989976a28fea5cdcb349c308baa98182c35",
      "parents": [
        "71e4aa9c465fd66c110667ab5d620fb6a4ef2157"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Wed Apr 20 15:40:58 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun May 01 22:49:03 2011 +0200"
      },
      "message": "batman-adv: Make bat_priv-\u003eprimary_if an rcu protected pointer\n\nThe rcu protected macros rcu_dereference() and rcu_assign_pointer()\nfor the bat_priv-\u003eprimary_if need to be used, as well as spin/rcu locking.\n\nOtherwise we might end up using a primary_if pointer pointing to already\nfreed memory.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "e44d8fe2b5c27ecc230f886d4cc49fcbd86f87a0",
      "tree": "1ed6d2b1fa04a4fe333d8eda498b3e866129d4d3",
      "parents": [
        "7cefb149a6b0e4f7c5adfa27dcf285b729063848"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Fri Mar 04 21:36:41 2011 +0000"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Mar 05 12:52:09 2011 +0100"
      },
      "message": "batman-adv: Disallow regular interface as mesh device\n\nWhen trying to associate a net_device with another net_device which\nalready exists, batman-adv assumes that this interface is a fully\ninitialized batman mesh interface without checking it. The behaviour\nwhen accessing data behind netdev_priv of a random net_device is\nundefined and potentially dangerous.\n\nReported-by: Linus Lüssing \u003clinus.luessing@ascom.ch\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "e6c10f433af9c98994c94a10ae862c152fcfb2a9",
      "tree": "56b4a82b83da44f7c3657a283c92c5cc8e248b9f",
      "parents": [
        "4389e47af856635eb17d03b2572a50576c12db24"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Feb 18 12:33:20 2011 +0000"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Mar 05 12:52:06 2011 +0100"
      },
      "message": "batman-adv: rename batman_if struct to hard_iface\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "4389e47af856635eb17d03b2572a50576c12db24",
      "tree": "988fbbd883f5c8691d2bf100656e723e54073c0a",
      "parents": [
        "d0072609baebaffb522083d367f4f195187f60f8"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Feb 18 12:33:19 2011 +0000"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Mar 05 12:52:05 2011 +0100"
      },
      "message": "batman-adv: rename global if_list to hardif_list\n\nBatman-adv works with \"hard interfaces\" as well as \"soft interfaces\".\nThe new name should better make clear which kind of interfaces this\nlist stores.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "39901e716275da4e831b40f9e45a1b61d6a776dc",
      "tree": "a7db25062f0e3df9b7f878adaeda8aadd5644181",
      "parents": [
        "9e0b33c221f1364e4d7562177a918eef8e85317a"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Fri Feb 18 12:28:08 2011 +0000"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Mar 05 12:50:14 2011 +0100"
      },
      "message": "batman-adv: separate ethernet comparing calls from hash functions\n\nNote: The function compare_ether_addr() provided by the Linux kernel\nrequires aligned memory.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "ed75ccbe26f4a672a41556120390e67c80a2c441",
      "tree": "3f4f844d2311e662b4c42e7a275188d1346ac77d",
      "parents": [
        "7d2b554826195372764910da2f0dcb0d9b869108"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Feb 10 14:33:51 2011 +0000"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Mar 05 12:50:07 2011 +0100"
      },
      "message": "batman-adv: Correct rcu refcounting for batman_if\n\nIt might be possible that 2 threads access the same data in the same\nrcu grace period. The first thread calls call_rcu() to decrement the\nrefcount and free the data while the second thread increases the\nrefcount to use the data. To avoid this race condition all refcount\noperations have to be atomic.\n\nReported-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "a4c135c561106c397bae33455acfca4aa8065a30",
      "tree": "09613dd5443fb6abfdab5b851eccdd610d1b0783",
      "parents": [
        "2ae2daf6c3f23364862a7d4f2ca79eab041b701b"
      ],
      "author": {
        "name": "Simon Wunderlich",
        "email": "siwu@hrz.tu-chemnitz.de",
        "time": "Wed Jan 19 20:01:43 2011 +0000"
      },
      "committer": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Sat Mar 05 12:50:01 2011 +0100"
      },
      "message": "batman-adv: protect bonding with rcu locks\n\nbonding / alternating candidates need to be secured by rcu locks\nas well. This patch therefore converts the bonding list\nfrom a plain pointer list to a rcu securable lists and references\nthe bonding candidates.\n\nSigned-off-by: Simon Wunderlich \u003csiwu@hrz.tu-chemnitz.de\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\n"
    },
    {
      "commit": "64afe35398269577ef9809474dd7dc0e5d265176",
      "tree": "ea50beef8d6eadf653c66f513d5cee1a5d98d7c2",
      "parents": [
        "1299bdaa1cb522de940d912f661bef59b9a39dd7"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jan 27 10:38:15 2011 +0100"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jan 31 14:57:12 2011 +0100"
      },
      "message": "batman-adv: Update copyright years\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "fb86d7648ffdfc8778db2cd70d4bc5c6093e04c5",
      "tree": "e0820a3e8ed8b924a8baca47019f04a0fd373e5f",
      "parents": [
        "335f94c981248e9f326986e0ac8d31f187ffeed0"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jan 27 13:16:08 2011 +0100"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jan 31 14:57:11 2011 +0100"
      },
      "message": "batman-adv: Remove declaration of batman_skb_recv\n\nbatman_skb_recv can be defined in hard-interface.c as static because it is\nnever used outside of that file.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "c6c8fea29769d998d94fcec9b9f14d4b52b349d3",
      "tree": "2c8dc8d1a64d48c5737a5745e3c510ff53a23047",
      "parents": [
        "b236da6931e2482bfe44a7865dd4e7bb036f3496"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Dec 13 11:19:28 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 13:44:24 2010 -0800"
      },
      "message": "net: Add batman-adv meshing protocol\n\nB.A.T.M.A.N. (better approach to mobile ad-hoc networking) is a routing\nprotocol for multi-hop ad-hoc mesh networks. The networks may be wired or\nwireless. See http://www.open-mesh.org/ for more information and user space\ntools.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
