From: "Linus Lüssing" <linus.luessing@c0d3.blue>
To: The list for a Better Approach To Mobile Ad-hoc Networking
<b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [B.A.T.M.A.N.] [PATCHv3 2/6] batman-adv: speed up dat by snooping received ip traffic
Date: Thu, 19 May 2016 21:33:12 +0200 [thread overview]
Message-ID: <20160519193312.GC12565@otheros> (raw)
In-Reply-To: <1462525107-19750-3-git-send-email-apape@phoenixcontact.com>
On Fri, May 06, 2016 at 10:58:23AM +0200, Andreas Pape wrote:
> Speeding up dat address lookup is achieved by snooping all incoming ip
> traffic. This especially increases the propability in bla setups that
> a gateway into a common backbone network already has a fitting dat entry
> to answer incoming ARP requests directly coming from the backbone
> network thus further reducing ARP traffic in the mesh.
>
> Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
> ---
This patch looks interesting :). Currently we have quite some
ARP-requests from gateways to clients left in Freifunk setups (had
been asking Antonio about it just yesterday) and looks like this
patch could help here.
> +void batadv_dat_entry_check(struct batadv_priv *bat_priv, struct sk_buff *skb,
> + unsigned short vid)
> +{
[...]
> + batadv_dat_entry_add(bat_priv, iphdr->saddr,
> + ethhdr->h_source, vid);
> + }
> +}
There is something in batadv_dat_entry_add() that makes me a
little worried:
----
if (dat_entry) {
if (!batadv_compare_eth(dat_entry->mac_addr,
mac_addr))
ether_addr_copy(dat_entry->mac_addr, mac_addr);
----
ether_addr_copy() isn't atomic, there is a race condition between
the update and any such check - like the one just above it.
This isn't really a bug of your patchset, but could make this race
condition much more likely. In the worst case, a fast IP packet
stream would create a constant rewrite and mostly broken
dat_entry->mac_addr.
next prev parent reply other threads:[~2016-05-19 19:33 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-06 8:58 [B.A.T.M.A.N.] [PATCHv3 0/6] batman-adv: Optimizations for setups running dat and bla Andreas Pape
2016-05-06 8:58 ` [B.A.T.M.A.N.] [PATCHv3 1/6] batman-adv: prevent multiple ARP replies sent by gateways if dat enbled Andreas Pape
2016-05-06 8:58 ` [B.A.T.M.A.N.] [PATCHv3 2/6] batman-adv: speed up dat by snooping received ip traffic Andreas Pape
2016-05-06 9:53 ` Sven Eckelmann
2016-05-06 10:03 ` Sven Eckelmann
2016-05-19 19:33 ` Linus Lüssing [this message]
2016-05-19 22:22 ` Linus Lüssing
2016-05-19 19:45 ` Linus Lüssing
2016-05-19 20:30 ` Linus Lüssing
2016-05-19 22:48 ` Linus Lüssing
2016-05-19 23:11 ` Linus Lüssing
2016-05-20 11:32 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
2016-05-20 12:56 ` Antonio Quartulli
2016-05-20 13:51 ` [B.A.T.M.A.N.] " Antonio Quartulli
2016-06-13 13:45 ` Andreas Pape
2016-06-23 20:34 ` Linus Lüssing
2016-05-06 8:58 ` [B.A.T.M.A.N.] [PATCHv3 3/6] batman-adv: prevent duplication of ARP replies when DAT is used Andreas Pape
2016-05-06 8:58 ` [B.A.T.M.A.N.] [PATCHv3 4/6] batman-adv: drop unicast packets from other backbone gw Andreas Pape
2016-05-06 10:43 ` Sven Eckelmann
2016-05-06 8:58 ` [B.A.T.M.A.N.] [PATCHv3 5/6] batman-adv: changed debug messages for easier bla debugging Andreas Pape
2016-05-06 8:58 ` [B.A.T.M.A.N.] [PATCHv3 6/6] batman-adv: handle race condition for claims between gateways Andreas Pape
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160519193312.GC12565@otheros \
--to=linus.luessing@c0d3.blue \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.