Since other network components (and some drivers) uses the control block provided in skb's, the network coding feature might wrongly assume that an SKB has been decoded, and thus not try to code it with another packet again. This happens for instance when batman-adv is running on a bridge device.
Fix this by clearing the control block for every received SKB.
Introduced-by: 3c12de9a5c756b23fe7c9ab332474ece1568914c ("batman-adv: network coding - code and transmit packets if possible") Signed-off-by: Martin Hundebøll martin@hundeboll.net --- main.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/main.c b/main.c index 2cdd25a..61e3ffd 100644 --- a/main.c +++ b/main.c @@ -403,6 +403,9 @@ int batadv_batman_skb_recv(struct sk_buff *skb, struct net_device *dev, goto err_free; }
+ /* reset control block to avoid left overs from previous users */ + memset(skb->cb, 0, sizeof(struct batadv_skb_cb)); + /* all receive handlers return whether they received or reused * the supplied skb. if not, we have to free the skb. */
On 17/09/14 08:56, Martin Hundebøll wrote:
Since other network components (and some drivers) uses the control block provided in skb's, the network coding feature might wrongly assume that an SKB has been decoded, and thus not try to code it with another packet again. This happens for instance when batman-adv is running on a bridge device.
Fix this by clearing the control block for every received SKB.
Introduced-by: 3c12de9a5c756b23fe7c9ab332474ece1568914c ("batman-adv: network coding - code and transmit packets if possible")
maybe the maintainer can split this line before pushing the patch, but next time split this it in two of them :-) (like other patches we have)
Cheers,
On Wednesday 17 September 2014 09:17:32 Antonio Quartulli wrote:
On 17/09/14 08:56, Martin Hundebøll wrote:
Since other network components (and some drivers) uses the control block provided in skb's, the network coding feature might wrongly assume that an SKB has been decoded, and thus not try to code it with another packet again. This happens for instance when batman-adv is running on a bridge device.>
Fix this by clearing the control block for every received SKB.
Introduced-by: 3c12de9a5c756b23fe7c9ab332474ece1568914c ("batman-adv: network coding - code and transmit packets if possible")
maybe the maintainer can split this line before pushing the patch, but next time split this it in two of them (like other patches we have)
Your bastard maintainer from hell also overlooks the missing 'v2' in the PATCH subject. He had to dig through the mailing list to find the latest & greatest version this patch has to offer.
Applied in revision 9ed2fc7.
Thanks, Marek
PS: You did ask for more marecasms, didn't you ? :)
b.a.t.m.a.n@lists.open-mesh.org