23 Apr, 2013

1 commit

  • Conflicts:
    drivers/net/ethernet/emulex/benet/be_main.c
    drivers/net/ethernet/intel/igb/igb_main.c
    drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
    include/net/scm.h
    net/batman-adv/routing.c
    net/ipv4/tcp_input.c

    The e{uid,gid} --> {uid,gid} credentials fix conflicted with the
    cleanup in net-next to now pass cred structs around.

    The be2net driver had a bug fix in 'net' that overlapped with the VLAN
    interface changes by Patrick McHardy in net-next.

    An IGB conflict existed because in 'net' the build_skb() support was
    reverted, and in 'net-next' there was a comment style fix within that
    code.

    Several batman-adv conflicts were resolved by making sure that all
    calls to batadv_is_my_mac() are changed to have a new bat_priv first
    argument.

    Eric Dumazet's TS ECR fix in TCP in 'net' conflicted with the F-RTO
    rewrite in 'net-next', mostly overlapping changes.

    Thanks to Stephen Rothwell and Antonio Quartulli for help with several
    of these merge resolutions.

    Signed-off-by: David S. Miller

    David S. Miller
     

18 Apr, 2013

1 commit


27 Mar, 2013

2 commits


14 Mar, 2013

3 commits

  • Before adding forward-skbs to the coding buffer, the buffer is searched
    for a potential coding opportunity. If one is found, the two packets are
    network coded and transmitted right away. If not, the forward-skb is
    added to the buffer.

    Network coded packets are transmitted with information about the two
    receivers and the two coded packets. The first receiver is given by the
    MAC header, while the second is given in the payload/bat-header. The
    second receiver uses promiscuous mode to receive the packet and check
    the second destination.

    Signed-off-by: Martin Hundebøll
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Martin Hundebøll
     
  • To use network coding efficiently, a relay must know when neighbor nodes
    are likely to have enough information to be able to decode a network
    coded packet. This is detected by using OGMs from batman-adv to discover
    when one neighbor is in range of another neighbor. The relay check the
    TLL to detect when an OGM is forwarded from one neighbor by another
    neighbor, and thereby knows that the two neighbors are in range and thus
    overhear packets sent by each other.

    This information is saved in the orig_node struct to be used when
    searching for coding opportunities. Two lists are added to the
    orig_node struct: One for neighbors that can hear the orig_node
    (outgoing nc_nodes) and one for neighbors that the orig_node can hear
    (incoming nc_nodes).

    Information about nc_nodes is kept for 10 seconds and is available
    through debugfs in batman_adv/nc_nodes to use when debugging network
    coding.

    Signed-off-by: Martin Hundebøll
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Martin Hundebøll
     
  • Network coding exploits the 802.11 shared medium to allow multiple
    packets to be sent in a single transmission. In brief, a relay can XOR
    two packets, and send the coded packet to two destinations. The
    receivers can decode one of the original packets by XOR'ing the coded
    packet with the other original packet. This will lead to increased
    throughput in topologies where two packets cross one relay.

    In a simple topology with three nodes, it takes four transmissions
    without network coding to get one packet from Node A to Node B and one
    from Node B to Node A:

    1. Node A ---- p1 ---> Node R Node B
    2. Node A Node R Node B

    With network coding, the relay only needs one transmission, which saves
    us one slot of valuable airtime:

    1. Node A ---- p1 ---> Node R Node B
    2. Node A Node R Node B

    The same principle holds for a topology including five nodes. Here the
    packets from Node A and Node B are overheard by Node C and Node D,
    respectively. This allows Node R to send a network coded packet to save
    one transmission:

    Node A Node B

    | \ / |
    | p1 p2 |
    | \ / |
    p1 > Node R < p2
    | |
    | / \ |
    | p1 x p2 p1 x p2 |
    v / \ v
    / \
    Node C < > Node D

    More information is available on the open-mesh.org wiki[1].

    This patch adds the initial code to support network coding in
    batman-adv. It sets up a worker thread to do house keeping and adds a
    sysfs file to enable/disable network coding. The feature is disabled by
    default, as it requires a wifi-driver with working promiscuous mode, and
    also because it adds a small delay at each hop.

    [1] http://www.open-mesh.org/projects/batman-adv/wiki/Catwoman

    Signed-off-by: Martin Hundebøll
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Martin Hundebøll
     

19 Jan, 2013

3 commits


12 Jan, 2013

2 commits

  • The current timeout is set to one hour. However a client connected to the mesh
    network will always generate traffic. In the worst case it will send ARP
    requests every 4 or 5 minutes. On the other hand having a long timeout means
    storing dead entries for one hour and it leads to very big trans-tables
    containing useless clients.

    This patch reduces the timeout to 10 minutes

    Signed-off-by: Antonio Quartulli
    Signed-off-by: Marek Lindner

    Antonio Quartulli
     
  • this_cpu_add is an atomic operation.
    and be more faster than per_cpu_ptr operation.

    Signed-off-by: Shan Wei
    Reviewed-by: Christoph Lameter
    Signed-off-by: Sven Eckelmann
    Signed-off-by: Marek Lindner
    Signed-off-by: Antonio Quartulli

    Shan Wei
     

21 Nov, 2012

2 commits


15 Nov, 2012

1 commit

  • For some reasons (bridge forward delay, network device setup order, etc)
    the initial bridge loop avoidance announcement packets may be lost. This
    may lead to problems in finding other backbone gws, and therfore create
    loops in the startup time.

    Fix this by extending the waiting periods to 3 (define can be changed)
    before allowing broadcast traffic.

    Signed-off-by: Simon Wunderlich
    Signed-off-by: Antonio Quartulli

    Simon Wunderlich
     

08 Nov, 2012

4 commits


29 Oct, 2012

3 commits


23 Aug, 2012

4 commits

  • Signed-off-by: Sven Eckelmann
    Signed-off-by: Antonio Quartulli

    Sven Eckelmann
     
  • With the current TT mechanism a new client joining the network is not
    immediately able to communicate with other hosts because its MAC address has not
    been announced yet. This situation holds until the first OGM containing its
    joining event will be spread over the mesh network.

    This behaviour can be acceptable in networks where the originator interval is a
    small value (e.g. 1sec) but if that value is set to an higher time (e.g. 5secs)
    the client could suffer from several malfunctions like DHCP client timeouts,
    etc.

    This patch adds an early detection mechanism that makes nodes in the network
    able to recognise "not yet announced clients" by means of the broadcast packets
    they emitted on connection (e.g. ARP or DHCP request). The added client will
    then be confirmed upon receiving the OGM claiming it or purged if such OGM
    is not received within a fixed amount of time.

    Signed-off-by: Antonio Quartulli

    Antonio Quartulli
     
  • Signed-off-by: Sven Eckelmann
    Signed-off-by: Antonio Quartulli

    Sven Eckelmann
     
  • the word millisecond is misspelled in several comments. This patch fixes it.

    Signed-off-by: Antonio Quartulli

    Antonio Quartulli
     

11 Jul, 2012

1 commit


02 Jul, 2012

3 commits


28 Jun, 2012

2 commits


25 Jun, 2012

1 commit


21 Jun, 2012

3 commits


19 Jun, 2012

2 commits

  • Added additional counters in a bat_stats structure, which are exported
    through the ethtool api. The counters are specific to batman-adv and
    includes:
    forwarded packets and bytes
    management packets and bytes (aggregated OGMs at this point)
    translation table packets

    New counters are added by extending "enum bat_counters" in types.h and
    adding corresponding descriptive string(s) to bat_counters_strings in
    soft-iface.c.

    Counters are increased by calling batadv_add_counter() and incremented
    by one by calling batadv_inc_counter().

    Signed-off-by: Martin Hundebøll
    Signed-off-by: Sven Eckelmann

    Martin Hundebøll
     
  • Signed-off-by: Sven Eckelmann

    Sven Eckelmann
     

14 May, 2012

1 commit


11 May, 2012

1 commit