Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3eee1fb authored by David S. Miller's avatar David S. Miller
Browse files

Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge



Antonio Quartulli says:

====================
Included changes:
- use common Jenkins hash instead of private implementation
- extend internal routing API
- properly re-arrange header files inclusion
- clarify precedence between '&' and '?'
- remove unused ethhdr variable in batadv_gw_dhcp_recipient_get()
- ensure per-VLAN structs are updated upon MAC change
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 6651ee07 94d1dd87
Loading
Loading
Loading
Loading
+37 −7
Original line number Original line Diff line number Diff line
@@ -15,16 +15,46 @@
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 */
 */


#include "bat_algo.h"
#include "main.h"
#include "main.h"
#include "translation-table.h"

#include <linux/atomic.h>
#include <linux/bitmap.h>
#include <linux/bitops.h>
#include <linux/bug.h>
#include <linux/byteorder/generic.h>
#include <linux/cache.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/fs.h>
#include <linux/if_ether.h>
#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/list.h>
#include <linux/netdevice.h>
#include <linux/pkt_sched.h>
#include <linux/printk.h>
#include <linux/random.h>
#include <linux/rculist.h>
#include <linux/rcupdate.h>
#include <linux/seq_file.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/stddef.h>
#include <linux/string.h>
#include <linux/types.h>
#include <linux/workqueue.h>

#include "bitarray.h"
#include "hard-interface.h"
#include "hash.h"
#include "network-coding.h"
#include "originator.h"
#include "originator.h"
#include "packet.h"
#include "routing.h"
#include "routing.h"
#include "gateway_common.h"
#include "gateway_client.h"
#include "hard-interface.h"
#include "send.h"
#include "send.h"
#include "bat_algo.h"
#include "translation-table.h"
#include "network-coding.h"


/**
/**
 * enum batadv_dup_status - duplicate status
 * enum batadv_dup_status - duplicate status
@@ -449,7 +479,7 @@ static void batadv_iv_ogm_send_to_if(struct batadv_forw_packet *forw_packet,
			   batadv_ogm_packet->orig,
			   batadv_ogm_packet->orig,
			   ntohl(batadv_ogm_packet->seqno),
			   ntohl(batadv_ogm_packet->seqno),
			   batadv_ogm_packet->tq, batadv_ogm_packet->ttl,
			   batadv_ogm_packet->tq, batadv_ogm_packet->ttl,
			   (batadv_ogm_packet->flags & BATADV_DIRECTLINK ?
			   ((batadv_ogm_packet->flags & BATADV_DIRECTLINK) ?
			    "on" : "off"),
			    "on" : "off"),
			   hard_iface->net_dev->name,
			   hard_iface->net_dev->name,
			   hard_iface->net_dev->dev_addr);
			   hard_iface->net_dev->dev_addr);
+2 −2
Original line number Original line Diff line number Diff line
@@ -15,10 +15,10 @@
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 */
 */


#include "main.h"
#include "bitarray.h"
#include "bitarray.h"
#include "main.h"


#include <linux/bitops.h>
#include <linux/bitmap.h>


/* shift the packet array by n places. */
/* shift the packet array by n places. */
static void batadv_bitmap_shift_left(unsigned long *seq_bits, int32_t n)
static void batadv_bitmap_shift_left(unsigned long *seq_bits, int32_t n)
+6 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,12 @@
#ifndef _NET_BATMAN_ADV_BITARRAY_H_
#ifndef _NET_BATMAN_ADV_BITARRAY_H_
#define _NET_BATMAN_ADV_BITARRAY_H_
#define _NET_BATMAN_ADV_BITARRAY_H_


#include "main.h"

#include <linux/bitops.h>
#include <linux/compiler.h>
#include <linux/types.h>

/* Returns 1 if the corresponding bit in the given seq_bits indicates true
/* Returns 1 if the corresponding bit in the given seq_bits indicates true
 * and curr_seqno is within range of last_seqno. Otherwise returns 0.
 * and curr_seqno is within range of last_seqno. Otherwise returns 0.
 */
 */
+34 −20
Original line number Original line Diff line number Diff line
@@ -15,19 +15,41 @@
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 */
 */


#include "main.h"
#include "hash.h"
#include "hard-interface.h"
#include "originator.h"
#include "bridge_loop_avoidance.h"
#include "bridge_loop_avoidance.h"
#include "translation-table.h"
#include "main.h"
#include "send.h"


#include <linux/etherdevice.h>
#include <linux/atomic.h>
#include <linux/byteorder/generic.h>
#include <linux/compiler.h>
#include <linux/crc16.h>
#include <linux/crc16.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/fs.h>
#include <linux/if_arp.h>
#include <linux/if_arp.h>
#include <net/arp.h>
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
#include <linux/if_vlan.h>
#include <linux/jhash.h>
#include <linux/jiffies.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/lockdep.h>
#include <linux/netdevice.h>
#include <linux/rculist.h>
#include <linux/rcupdate.h>
#include <linux/seq_file.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/stddef.h>
#include <linux/string.h>
#include <linux/workqueue.h>
#include <net/arp.h>

#include "hard-interface.h"
#include "hash.h"
#include "originator.h"
#include "packet.h"
#include "translation-table.h"


static const uint8_t batadv_announce_mac[4] = {0x43, 0x05, 0x43, 0x05};
static const uint8_t batadv_announce_mac[4] = {0x43, 0x05, 0x43, 0x05};


@@ -42,12 +64,8 @@ static inline uint32_t batadv_choose_claim(const void *data, uint32_t size)
	struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data;
	struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data;
	uint32_t hash = 0;
	uint32_t hash = 0;


	hash = batadv_hash_bytes(hash, &claim->addr, sizeof(claim->addr));
	hash = jhash(&claim->addr, sizeof(claim->addr), hash);
	hash = batadv_hash_bytes(hash, &claim->vid, sizeof(claim->vid));
	hash = jhash(&claim->vid, sizeof(claim->vid), hash);

	hash += (hash << 3);
	hash ^= (hash >> 11);
	hash += (hash << 15);


	return hash % size;
	return hash % size;
}
}
@@ -59,12 +77,8 @@ static inline uint32_t batadv_choose_backbone_gw(const void *data,
	const struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data;
	const struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data;
	uint32_t hash = 0;
	uint32_t hash = 0;


	hash = batadv_hash_bytes(hash, &claim->addr, sizeof(claim->addr));
	hash = jhash(&claim->addr, sizeof(claim->addr), hash);
	hash = batadv_hash_bytes(hash, &claim->vid, sizeof(claim->vid));
	hash = jhash(&claim->vid, sizeof(claim->vid), hash);

	hash += (hash << 3);
	hash ^= (hash >> 11);
	hash += (hash << 15);


	return hash % size;
	return hash % size;
}
}
+10 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,16 @@
#ifndef _NET_BATMAN_ADV_BLA_H_
#ifndef _NET_BATMAN_ADV_BLA_H_
#define _NET_BATMAN_ADV_BLA_H_
#define _NET_BATMAN_ADV_BLA_H_


#include "main.h"

#include <linux/types.h>

struct batadv_hard_iface;
struct batadv_orig_node;
struct batadv_priv;
struct seq_file;
struct sk_buff;

#ifdef CONFIG_BATMAN_ADV_BLA
#ifdef CONFIG_BATMAN_ADV_BLA
int batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
int batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
		  unsigned short vid, bool is_bcast);
		  unsigned short vid, bool is_bcast);
Loading