<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman">
    <title>gmane.org.freifunk.batman</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9688"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9687"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9686"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9685"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9684"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9683"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9682"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9681"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9680"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9679"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9678"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9677"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9676"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9675"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9674"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9673"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9672"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9671"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9670"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/9669"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9688">
    <title>[PATCH 2/2] batman-adv: fix typo in kernel doc</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9688</link>
    <description>&lt;pre&gt;Now TT uses CRC32 instead of CRC16

Introduced by c5e7a06a29612056006e4dc01910c0b44e858583
("batman-adv: use CRC32C instead of CRC16 in TT code")

Signed-off-by: Antonio Quartulli &amp;lt;ordex-GaUfNO9RBHfsrOwW+9ziJQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 translation-table.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/translation-table.c b/translation-table.c
index f6b96cb..08da23a 100644
--- a/translation-table.c
+++ b/translation-table.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2402,7 +2402,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; out:
  * &amp;lt; at &amp;gt;tt_buff: buffer holding the tt information
  * &amp;lt; at &amp;gt;tt_num_changes: number of tt changes inside the tt buffer
  * &amp;lt; at &amp;gt;ttvn: translation table version number of this changeset
- * &amp;lt; at &amp;gt;tt_crc: crc16 checksum of orig node's translation table
+ * &amp;lt; at &amp;gt;tt_crc: crc32 checksum of orig node's translation table
  */
 static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
   struct batadv_orig_node *orig_node,
&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2013-05-24T15:25:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9687">
    <title>[PATCH 1/2] batman-adv: fix num_changes type touint16_t</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9687</link>
    <description>&lt;pre&gt;Since the introduction of the tvlv_tt_data struct variables
storing the number of TT changes are always declared as
uint16_t, however some of them were not changed.

Switch them al to uint16_t.

Introduced by 8405301b979466610a726b7d595b6bfee5306cf7
("batman-adv: tvlv - convert tt data sent within OGMs")

Signed-off-by: Antonio Quartulli &amp;lt;ordex-GaUfNO9RBHfsrOwW+9ziJQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 translation-table.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/translation-table.c b/translation-table.c
index 44e7789..f6b96cb 100644
--- a/translation-table.c
+++ b/translation-table.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1486,7 +1486,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void batadv_tt_req_list_free(struct batadv_priv *bat_priv)
 static void batadv_tt_save_orig_buffer(struct batadv_priv *bat_priv,
        struct batadv_orig_node *orig_node,
        const unsigned char *tt_buff,
-       uint8_t tt_num_changes)
+       uint16_t tt_num_changes)
 {
 uint16_t tt_buff_len = batadv_tt_len(tt_num_changes);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2407,8 +2407,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; out:
 st&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2013-05-24T15:25:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9686">
    <title>[PATCH] batman-adv: correctly align the tt_tvlv_datastruct</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9686</link>
    <description>&lt;pre&gt;4bytes long members must start at an address multiple of 4
in order to avoid unaligned memory access.

Add 2 padding bytes to satisfy this requirement.

Introduced by c5e7a06a29612056006e4dc01910c0b44e858583
"batman-adv: use CRC32C instead of CRC16 in TT code"

Signed-off-by: Antonio Quartulli &amp;lt;ordex-GaUfNO9RBHfsrOwW+9ziJQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 packet.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/packet.h b/packet.h
index 21254a4..8675b52 100644
--- a/packet.h
+++ b/packet.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -391,11 +391,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct batadv_tvlv_gateway_data {
  * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
  * &amp;lt; at &amp;gt;flags: translation table flags (see batadv_tt_data_flags)
  * &amp;lt; at &amp;gt;ttvn: translation table version number
+ * &amp;lt; at &amp;gt;reserved: not used, useful for alignment purposes
  * &amp;lt; at &amp;gt;crc: crc32 checksum of the local translation table
  */
 struct batadv_tvlv_tt_data {
 uint8_t flags;
 uint8_t ttvn;
+uint16_t reserved;
 __be32  crc;
 };
 
&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2013-05-24T13:04:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9685">
    <title>Re: Basic Multicast Optimizations</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9685</link>
    <description>&lt;pre&gt;
Hi,

On Friday, May 24, 2013 16:02:25 Linus Lüssing wrote:

we discussed this further and concluded that we can't simply make that 
decision. The order in which patches are going to be merged into net has to be 
decided by David Miller. So, please prepare a patch destined for net, send it 
to netdev (cc the batman ml if you like) to explain what we are planning to do 
and ask for advice.

Cheers,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2013-05-24T09:33:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9684">
    <title>[PATCH] batman-adv: fix typo in kernel doc</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9684</link>
    <description>&lt;pre&gt;From: Antonio Quartulli &amp;lt;antonio-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

Introduced by 8405301b979466610a726b7d595b6bfee5306cf7
("batman-adv: tvlv - convert tt data sent within OGMs")

Signed-off-by: Antonio Quartulli &amp;lt;antonio-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 packet.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packet.h b/packet.h
index 2a73ebd..21254a4 100644
--- a/packet.h
+++ b/packet.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -388,7 +388,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct batadv_tvlv_gateway_data {
 };
 
 /**
- * struct tvlv_tt_data - tt data propagated through the tt tvlv container
+ * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
  * &amp;lt; at &amp;gt;flags: translation table flags (see batadv_tt_data_flags)
  * &amp;lt; at &amp;gt;ttvn: translation table version number
  * &amp;lt; at &amp;gt;crc: crc32 checksum of the local translation table
&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2013-05-24T09:21:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9683">
    <title>Re: Basic Multicast Optimizations</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9683</link>
    <description>&lt;pre&gt;
I think (but I am not sure) that the TT-VLAN feature that I just sent to the ml
(I have to send v3..) could probably help in this direction, because a TT entry
is not defined by its MAC address only anymore, but by the couple {MAC, vid}.

Since your code uses the TT to store the multicast addresses, I think that VLAN
support can be added "easily"[tm] after the TT-VLAN code will be in.


Cheers,


&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2013-05-24T09:06:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9682">
    <title>Re: Basic Multicast Optimizations</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9682</link>
    <description>&lt;pre&gt;* VLAN support was not added yet as this will be some more work. Any
vlan frames with a multicast destination will still get flooded
for now so at least these patches shouldn't introduce any
regressions for those. However I have to admit that I didn't think
of VLANs yet and Marek suggested to check how much extra work it
might create later compared to adding that right from the start.
I'll have a look at that.


&lt;/pre&gt;</description>
    <dc:creator>Linus Lüssing</dc:creator>
    <dc:date>2013-05-24T09:00:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9681">
    <title>[PATCHv2 3/3] batman-adv: Modified forwardingbehaviour for multicast packets</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9681</link>
    <description>&lt;pre&gt;With this patch a multicast packet is not always simply flooded anymore,
the bevahiour for the following cases is changed to reduce
unnecessary overhead:

If all nodes within the horizon of a certain node have signalized
multicast listener announcement capability
(BATADV_MCAST_LISTENER_ANNOUNCEMENT) then an IPv6 multicast packet
with a destination of IPv6 link-local scope coming from the upstream
of this node...

* ...is dropped if there is no according multicast listener in the
  translation table,
* ...is forwarded via unicast if there is a single node with interested
  multicast listeners
* ...and otherwise still gets flooded.

Signed-off-by: Linus Lüssing &amp;lt;linus.luessing-S0/GAf8tV78&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 multicast.c         |   43 +++++++++++++++++++++++++++++++++
 multicast.h         |    8 +++++++
 soft-interface.c    |   10 ++++++++
 translation-table.c |   66 +++++++++++++++++++++++++++++++++++++++++++++++++++
 translation-table.h |    1 +
 5 files changed, 128 insertions(+)

diff --git a/multicast&lt;/pre&gt;</description>
    <dc:creator>Linus Lüssing</dc:creator>
    <dc:date>2013-05-24T08:02:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9680">
    <title>[PATCHv2 2/3] batman-adv: Announce new capabilityvia multicast TVLV</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9680</link>
    <description>&lt;pre&gt;If the soft interface of a node is not part of a bridge then a node
announces a new multicast TVLV: The according flag
(BATADV_MCAST_LISTENER_ANNOUNCEMENT) signalizes that this node is
announcing all of its multicast listeners via the translation table
infrastructure. More precisely, all multicast listeners of scope greater
than link-local for IPv4 and of scope greater
or equal to link-local for IPv6.

Signed-off-by: Linus Lüssing &amp;lt;linus.luessing-S0/GAf8tV78&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 main.c           |    4 ++++
 multicast.c      |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 multicast.h      |    7 ++++++
 originator.c     |    3 +++
 packet.h         |    7 ++++++
 soft-interface.c |    1 +
 types.h          |    4 ++++
 7 files changed, 86 insertions(+), 2 deletions(-)

diff --git a/main.c b/main.c
index 1c82c18..6ab5b2d 100644
--- a/main.c
+++ b/main.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -145,6 +145,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int batadv_mesh_init(struct net_device *soft_iface)
 if (ret &amp;lt; 0)
 goto err;
 
+ret = batadv_mcast_init(bat_priv);
&lt;/pre&gt;</description>
    <dc:creator>Linus Lüssing</dc:creator>
    <dc:date>2013-05-24T08:02:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9679">
    <title>[PATCHv2 1/3] batman-adv: Multicast ListenerAnnouncements via Translation Table</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9679</link>
    <description>&lt;pre&gt;With this patch a node which has no bridge interface on top of its soft
interface announces its local multicast listeners via the translation
table.

Signed-off-by: Linus Lüssing &amp;lt;linus.luessing-S0/GAf8tV78&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 Makefile               |    2 +
 Makefile.kbuild        |    1 +
 compat.c               |   21 +++++
 compat.h               |   18 ++++
 gen-compat-autoconf.sh |    1 +
 main.c                 |    6 ++
 main.h                 |    9 ++
 multicast.c            |  213 ++++++++++++++++++++++++++++++++++++++++++++++++
 multicast.h            |   43 ++++++++++
 soft-interface.c       |    3 +
 sysfs.c                |    6 ++
 translation-table.c    |   22 ++++-
 types.h                |   12 +++
 13 files changed, 353 insertions(+), 4 deletions(-)
 create mode 100644 multicast.c
 create mode 100644 multicast.h

diff --git a/Makefile b/Makefile
index 407cdc4..d7c6fa6 100644
--- a/Makefile
+++ b/Makefile
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -27,6 +27,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; export CONFIG_BATMAN_ADV_BLA=y
 export CONFIG_BATMAN_ADV_DAT=y
&lt;/pre&gt;</description>
    <dc:creator>Linus Lüssing</dc:creator>
    <dc:date>2013-05-24T08:02:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9678">
    <title>Basic Multicast Optimizations</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9678</link>
    <description>&lt;pre&gt;This is the second revision of the basic multicast optimization patches.
It includes one functional fix and many style fixes, thanks to Antonios
feedback.

Three things were not included from these suggestions:

* The default mcast TVLV flags were left as it is not as easy to
switch. (see answer/explanation to [PATCH 2/3])
* for_each_pmc_rcu() was not moved to a commen net header file,
only a TODO was added. Will do that after this code might have
landed in net.


Additionally the limitation of 255 multicast listeners per originator
was removed (it was more a relic of the pre-TT announcement mechanism
and such limitations should be taken care of by the current TT
infrastructure instead).

Cheers, Linus

&lt;/pre&gt;</description>
    <dc:creator>Linus Lüssing</dc:creator>
    <dc:date>2013-05-24T08:02:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9677">
    <title>Re: [PATCHv2 6/7] batman-adv: add per VLAN interface attribute framework</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9677</link>
    <description>&lt;pre&gt;
ah, no I did not. :)
I'll add the prototype to compat.h


ok, will use 'softif'


ok, I will add 'interface'.


ops :)


ok


ops :)


I'll check, I remember there was a reason to do not use gat().


ok, I'll change it to softif as stated above.


yeah, softif everywhere! :D

Thanks a lot!

I'll send v3 and I'll include the BLA integration too.

Cheers,

&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2013-05-24T07:03:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9676">
    <title>Re: [PATCHv4] batman-adv: use htons when possible</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9676</link>
    <description>&lt;pre&gt;
Applied in revision 4a4f6b9.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2013-05-24T06:42:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9675">
    <title>Re: [PATCHv2 6/7] batman-adv: add per VLAN interfaceattribute framework</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9675</link>
    <description>&lt;pre&gt;
We have "now" twice in the same sentence. :)



I bet you didn't try to compile that on an older kernel ...



The naming could be better. Following your initial scheme this function should 
be called "batadv_priv_vlan_get". How about replacing "priv" with "softif" ? 
We'd end up with: 
 * batadv_softif_vlan_free_ref()
 * batadv_softif_vlan_get()



Again, the naming .. didn't we introduce a naming convention for each file ? 
soft-interface.c uses "interface" a lot. Why not using it ? For example,
batadv_interface_vid_add() ?


the

Returns ?



Same here. It should be batadv_interface_vid_kill() or something similar.



Returns ?



How about re-using your get() function from above ?



I am not so happy about the choice regarding the name again. The "batadv_priv" 
prefix has been introduced for bat_priv sub structs. Clearly, this isn't one 
but an element for a list. 



This leads to weird code like: bat_priv-&amp;gt;priv_vlan_list_lock (priv twice) ..

Cheers,
Marek


&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2013-05-24T06:23:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9674">
    <title>[RFC 4/7] batman-adv: split out router from orig_node</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9674</link>
    <description>&lt;pre&gt;From: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

For the network wide multi interface optimization there are different
routers for each outgoing interface (outgoing from the OGM perspective,
incoming for payload traffic). To reflect this, change the router and
associated data to a list of routers.

Signed-off-by: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 bat_iv_ogm.c            |  385 +++++++++++++++++++++++++++++------------------
 distributed-arp-table.c |    3 +-
 gateway_client.c        |   10 +-
 icmp_socket.c           |    2 +-
 network-coding.c        |    9 +-
 originator.c            |  166 +++++++++++++++++++-
 originator.h            |   11 +-
 routing.c               |   42 +++++-
 routing.h               |    1 +
 translation-table.c     |    3 +-
 types.h                 |   25 ++-
 11 files changed, 483 insertions(+), 174 deletions(-)

diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index e98386c..f0b16d6 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2013-05-23T21:21:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9673">
    <title>[RFC 6/7] batman-adv: consider outgoing interface inOGM sending</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9673</link>
    <description>&lt;pre&gt;From: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

The current OGM sending an aggregation functionality decides on
which interfaces a packet should be sent when it parses the forward
packet struct. However, with the network wide multi interface
optimization the outgoing interface is decided by the OGM processing
function.

This is reflected by moving the decision in the OGM processing function
and add the outgoing interface in the forwarding packet struct. This
practically implies that an OGM may be added multiple times (once per
outgoing interface), and this also affects aggregation which needs to
consider the outgoing interface as well.

Signed-off-by: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 bat_iv_ogm.c |  133 +++++++++++++++++++++++++++++++++++++++-------------------
 send.c       |   13 ++++--
 types.h      |    7 +++-
 3 files changed, 104 insertions(+), 49 deletions(-)

diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index 324bf5f..3fc900c 100644
--- a/bat_i&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2013-05-23T21:21:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9672">
    <title>[RFC 7/7] batman-adv: add bonding again</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9672</link>
    <description>&lt;pre&gt;From: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

With the new interface alternating, the first hop may send packets
in a round robin fashion to it's neighbors because it has multiple
valid routes built by the multi interface optimization. This patch
enables the feature if bonding is selected. Note that unlike the
bonding implemented before, this version is much simpler and may
even enable multi path routing to a certain degree.

Signed-off-by: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 routing.c |  104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 routing.h |    2 +-
 types.h   |    2 ++
 3 files changed, 104 insertions(+), 4 deletions(-)

diff --git a/routing.c b/routing.c
index c1b6d85..87591b6 100644
--- a/routing.c
+++ b/routing.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -403,9 +403,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int batadv_check_unicast_packet(struct batadv_priv *bat_priv,
 struct batadv_neigh_node *
 batadv_find_router(struct batadv_priv *bat_priv,
    struct batadv_orig_node *orig_node,
-&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2013-05-23T21:21:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9671">
    <title>[RFC 5/7] batman-adv: add WiFi penalty</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9671</link>
    <description>&lt;pre&gt;From: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

If the same interface is used for sending and receiving, there might be
throughput degradation on half-duplex interfaces such as WiFi. Add a
penalty if the same interface is used to reflect this problem in the
metric.

Signed-off-by: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 bat_iv_ogm.c     |   26 ++++++++++++++++++++++----
 hard-interface.c |    2 +-
 hard-interface.h |    1 +
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index f0b16d6..324bf5f 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -901,6 +901,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int batadv_iv_ogm_calc_tq(struct batadv_orig_node *orig_node,
 uint8_t orig_eq_count, neigh_rq_count, neigh_rq_inv, tq_own;
 unsigned int neigh_rq_inv_cube, neigh_rq_max_cube;
 int tq_asym_penalty, inv_asym_penalty, ret = 0;
+int tq_iface_penalty;
 unsigned int combined_tq;
 
 /* find corresponding one hop neighbor */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -983,15 +984,32 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; stati&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2013-05-23T21:21:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9670">
    <title>[RFC 3/7] batman-adv: split tq information inneigh_node struct</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9670</link>
    <description>&lt;pre&gt;From: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

For the network wide multi interface optimization it is required to save
metrics per outgoing interface in one neighbor. Therefore a new type is
introduced to keep interface-specific information. This also requires
some changes in access and list management.

Signed-off-by: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 bat_iv_ogm.c        |  133 +++++++++++++++++++++++++++++++++------------
 gateway_client.c    |   68 +++++++++++++++++++----
 originator.c        |  149 +++++++++++++++++++++++++++++++++++++++++++++------
 originator.h        |    3 ++
 translation-table.c |   11 +++-
 types.h             |   35 ++++++++----
 6 files changed, 325 insertions(+), 74 deletions(-)

diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index a340f9a..e98386c 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -70,6 +70,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static uint8_t batadv_ring_buffer_avg(const uint8_t lq_recv[])
 
 return (uint8_t)(sum / count);
 }
+
 static stru&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2013-05-23T21:21:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9669">
    <title>[RFC 2/7] batman-adv: remove bonding and interfacealternating</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9669</link>
    <description>&lt;pre&gt;From: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

Remove bonding and interface alternating code - it will be replaced
by a new, network-wide multi interface optimization which enables
both bonding and interface alternating in a better way.

Keep the sysfs and find router function though, this will be needed
later.

Signed-off-by: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 bat_iv_ogm.c |    7 --
 originator.c |   13 +--
 routing.c    |  281 +++-------------------------------------------------------
 routing.h    |    8 --
 types.h      |   10 +--
 5 files changed, 13 insertions(+), 306 deletions(-)

diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index 2b94fdd..a340f9a 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -82,8 +82,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; batadv_iv_ogm_neigh_new(struct batadv_hard_iface *hard_iface,
 if (!neigh_node)
 goto out;
 
-INIT_LIST_HEAD(&amp;amp;neigh_node-&amp;gt;bonding_list);
-
 neigh_node-&amp;gt;orig_node = orig_neigh;
 neigh_node-&amp;gt;if_incoming = hard_iface;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -794,8 +792,6 &amp;lt; at &amp;gt;&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2013-05-23T21:21:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/9668">
    <title>[RFC 1/7] batman-adv: remove useless find_routerlook up</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/9668</link>
    <description>&lt;pre&gt;From: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

This is not used anymore with the new fragmentation, and it might
actually mess up the bonding code because find_router() assumes it
is only called once per packet.

Signed-off-by: Simon Wunderlich &amp;lt;simon-2BnEqQcu77q1Z/+hSey0Gg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 send.c |   29 ++++++++---------------------
 1 file changed, 8 insertions(+), 21 deletions(-)

diff --git a/send.c b/send.c
index 32690c6..616364e 100644
--- a/send.c
+++ b/send.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -251,30 +251,19 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 struct ethhdr *ethhdr = (struct ethhdr *)skb-&amp;gt;data;
 struct batadv_unicast_packet *unicast_packet;
 struct batadv_orig_node *orig_node;
-struct batadv_neigh_node *neigh_node;
 int ret = NET_RX_DROP;
 
 /* get routing information */
-if (is_multicast_ether_addr(ethhdr-&amp;gt;h_dest)) {
+if (is_multicast_ether_addr(ethhdr-&amp;gt;h_dest))
 orig_node = batadv_gw_get_selected_orig(bat_priv);
-if (orig_node)
-goto find_router;
-}&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2013-05-23T21:21:06</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.org.freifunk.batman">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.org.freifunk.batman</link>
  </textinput>
</rdf:RDF>
