Initial import of my hacked about batman-advanced.
git-svn-id: svn://svn.openwrt.org/openwrt/packages@8288 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
a4cd432c30
commit
0c514f8f31
57
net/batman-advanced/Makefile
Normal file
57
net/batman-advanced/Makefile
Normal file
@ -0,0 +1,57 @@
|
||||
#
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
# $Id: Makefile 5624 2006-11-23 00:29:07Z nbd $
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=batmand-adv
|
||||
PKG_VERSION:=0.1-alpha-rv466_sources
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)_$(PKG_VERSION)
|
||||
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tgz
|
||||
PKG_SOURCE_URL:=http://downloads.open-mesh.net/batman/development/sources/
|
||||
PKG_MD5SUM:=3ebc394a7b7b3fa5cecaf97f6a220a3f
|
||||
PKG_CAT:=zcat
|
||||
|
||||
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/batman-advanced
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
DEPENDS:=+libpthread +kmod-tun
|
||||
TITLE:=B.A.T.M.A.N. Better Approach To Mobile Ad-hoc Networking (L2 Version)
|
||||
URL:=https://www.open-mesh.net/
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
rm -rf $(PKG_INSTALL_DIR)
|
||||
mkdir -p $(PKG_INSTALL_DIR)
|
||||
$(MAKE) -C "$(PKG_BUILD_DIR)" \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
NODEBUG=1 \
|
||||
OFLAGS="$(TARGET_CFLAGS)" \
|
||||
UNAME="Linux" \
|
||||
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
|
||||
STRIP="/bin/true" \
|
||||
batmand-adv install
|
||||
endef
|
||||
|
||||
define Package/batman-advanced/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/batmand-adv $(1)/usr/sbin/
|
||||
$(CP) -a ./files/* $(1)/
|
||||
chmod -R 755 $(1)/etc/init.d/batman
|
||||
endef
|
||||
|
||||
|
||||
$(eval $(call BuildPackage,batman-advanced))
|
57
net/batman-advanced/Makefile.save
Normal file
57
net/batman-advanced/Makefile.save
Normal file
@ -0,0 +1,57 @@
|
||||
#
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
# $Id: Makefile 5624 2006-11-23 00:29:07Z nbd $
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=batman-advanced-III
|
||||
PKG_VERSION:=r342
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=http://downloads.open-mesh.net/batman
|
||||
PKG_MD5SUM:=59662fa2c7ac80f5d1235c8e4ae0a80b
|
||||
PKG_CAT:=bzcat
|
||||
|
||||
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/batman-advanced
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
DEPENDS:=+libpthread +kmod-tun
|
||||
TITLE:=B.A.T.M.A.N. Better Approach To Mobile Ad-hoc Networking (L2 Version)
|
||||
URL:=https://www.open-mesh.net/
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
rm -rf $(PKG_INSTALL_DIR)
|
||||
mkdir -p $(PKG_INSTALL_DIR)
|
||||
$(MAKE) -C "$(PKG_BUILD_DIR)" \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
NODEBUG=1 \
|
||||
OFLAGS="$(TARGET_CFLAGS)" \
|
||||
UNAME="Linux" \
|
||||
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
|
||||
STRIP="/bin/true" \
|
||||
batmand install
|
||||
endef
|
||||
|
||||
define Package/batman-advanced/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/batmand $(1)/usr/sbin/
|
||||
$(CP) -a ./files/* $(1)/
|
||||
chmod -R 755 $(1)/etc/init.d/batman
|
||||
endef
|
||||
|
||||
|
||||
$(eval $(call BuildPackage,batman-advanced))
|
8
net/batman-advanced/files/etc/config/batman-adv
Normal file
8
net/batman-advanced/files/etc/config/batman-adv
Normal file
@ -0,0 +1,8 @@
|
||||
config batman-adv general
|
||||
option interface ath0
|
||||
option announce
|
||||
option gateway_class
|
||||
option originator_interval
|
||||
option preferred_gateway
|
||||
option routing_class
|
||||
option visualisation_srv
|
55
net/batman-advanced/files/etc/init.d/batman-adv
Normal file
55
net/batman-advanced/files/etc/init.d/batman-adv
Normal file
@ -0,0 +1,55 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
START=100
|
||||
. /lib/config/uci.sh
|
||||
uci_load batman-adv
|
||||
start () {
|
||||
interface=$(uci get batman-adv.general.interface)
|
||||
if [ "$interface" = "" ]; then
|
||||
echo $1 Error, you must specify at least a network interface
|
||||
exit
|
||||
fi
|
||||
announce=$(uci get batman-adv.general.announce)
|
||||
gateway_class=$(uci get batman-adv.general.gateway_class)
|
||||
originator_interval=$(uci get batman-adv.general.originator_interval)
|
||||
preferred_gateway=$(uci get batman-adv.general.preferred_gateway)
|
||||
routing_class=$(uci get batman-adv.general.routing_class)
|
||||
visualisation_srv=$(uci get batman-adv.general.visualisation_srv)
|
||||
batman_args=""
|
||||
|
||||
if [ $announce ]; then
|
||||
batman_args=${batman_args}'-a '$announce' '
|
||||
fi
|
||||
|
||||
if [ $gateway_class ]; then
|
||||
batman_args=${batman_args}'-g '$gateway_class' '
|
||||
fi
|
||||
|
||||
if [ $originator_interval ]; then
|
||||
batman_args=${batman_args}'-o '$originator_interval' '
|
||||
fi
|
||||
|
||||
if [ $preferred_gateway ]; then
|
||||
batman_args=${batman_args}'-p '$preferred_gateway' '
|
||||
fi
|
||||
|
||||
if [ $routing_class ]; then
|
||||
batman_args=${batman_args}'-r '$routing_class' '
|
||||
fi
|
||||
|
||||
if [ $visualisation_srv ]; then
|
||||
batman_args=${batman_args}'-s '$visualisation_srv' '
|
||||
fi
|
||||
|
||||
batman_args=${batman_args}$interface
|
||||
batmand-adv $batman_args >/dev/null 2>&1
|
||||
}
|
||||
|
||||
restart () {
|
||||
$0 stop
|
||||
sleep 3
|
||||
$0 start
|
||||
}
|
||||
|
||||
stop () {
|
||||
killall batmand-adv
|
||||
}
|
23
net/batman-advanced/patches/100-makefile.patch
Normal file
23
net/batman-advanced/patches/100-makefile.patch
Normal file
@ -0,0 +1,23 @@
|
||||
diff -urN batmand-adv_0.1-alpha-rv466_sources.orig/Makefile batmand-adv_0.1-alpha-rv466_sources/Makefile
|
||||
--- batmand-adv_0.1-alpha-rv466_sources.orig/Makefile 2007-07-31 22:03:22.433434504 +0100
|
||||
+++ batmand-adv_0.1-alpha-rv466_sources/Makefile 2007-07-31 22:05:07.553434504 +0100
|
||||
@@ -21,6 +21,7 @@
|
||||
CFLAGS = -Wall -O1 -g3
|
||||
STRIP= strip
|
||||
LDFLAGS = -lpthread
|
||||
+SBINDIR= $(INSTALL_PREFIX)/usr/sbin
|
||||
|
||||
CFLAGS_MIPS = -Wall -O1 -g3
|
||||
LDFLAGS_MIPS = -lpthread
|
||||
@@ -253,4 +254,9 @@
|
||||
rm -f batmand-adv batmand-mips* *.o *~
|
||||
|
||||
clean-long:
|
||||
- rm -rf batmand-adv_*
|
||||
\ No newline at end of file
|
||||
+ rm -rf batmand-adv_*
|
||||
+
|
||||
+install:
|
||||
+ mkdir -p $(SBINDIR)
|
||||
+ install -m 755 batmand-adv $(SBINDIR)
|
||||
+
|
274
net/batman-advanced/patches/200-list.h.patch
Normal file
274
net/batman-advanced/patches/200-list.h.patch
Normal file
@ -0,0 +1,274 @@
|
||||
diff -urN batmand-adv_0.1-alpha-rv466_sources.orig/list.h batmand-adv_0.1-alpha-rv466_sources/list.h
|
||||
--- batmand-adv_0.1-alpha-rv466_sources.orig/list.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ batmand-adv_0.1-alpha-rv466_sources/list.h 2007-07-31 21:56:31.633434504 +0100
|
||||
@@ -0,0 +1,270 @@
|
||||
+#ifndef _LINUX_LIST_H
|
||||
+#define _LINUX_LIST_H
|
||||
+
|
||||
+/*
|
||||
+ * XXX: Resolve conflict between this file and <sys/queue.h> on BSD systems.
|
||||
+ */
|
||||
+#ifdef LIST_HEAD
|
||||
+#undef LIST_HEAD
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ * Simple doubly linked list implementation.
|
||||
+ *
|
||||
+ * Some of the internal functions ("__xxx") are useful when
|
||||
+ * manipulating whole lists rather than single entries, as
|
||||
+ * sometimes we already know the next/prev entries and we can
|
||||
+ * generate better code by using them directly rather than
|
||||
+ * using the generic single-entry routines.
|
||||
+ */
|
||||
+
|
||||
+struct list_head {
|
||||
+ struct list_head *next, *prev;
|
||||
+};
|
||||
+
|
||||
+#define LIST_HEAD_INIT(name) { &(name), &(name) }
|
||||
+
|
||||
+#define LIST_HEAD(name) \
|
||||
+ struct list_head name = LIST_HEAD_INIT(name)
|
||||
+
|
||||
+#define INIT_LIST_HEAD(ptr) do { \
|
||||
+ (ptr)->next = (ptr); (ptr)->prev = (ptr); \
|
||||
+} while (0)
|
||||
+
|
||||
+/*
|
||||
+ * Insert a new entry between two known consecutive entries.
|
||||
+ *
|
||||
+ * This is only for internal list manipulation where we know
|
||||
+ * the prev/next entries already!
|
||||
+ */
|
||||
+static inline void __list_add(struct list_head *new,
|
||||
+ struct list_head *prev,
|
||||
+ struct list_head *next)
|
||||
+{
|
||||
+ next->prev = new;
|
||||
+ new->next = next;
|
||||
+ new->prev = prev;
|
||||
+ prev->next = new;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_add - add a new entry
|
||||
+ * @new: new entry to be added
|
||||
+ * @head: list head to add it after
|
||||
+ *
|
||||
+ * Insert a new entry after the specified head.
|
||||
+ * This is good for implementing stacks.
|
||||
+ */
|
||||
+static inline void list_add(struct list_head *new, struct list_head *head)
|
||||
+{
|
||||
+ __list_add(new, head, head->next);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_add_tail - add a new entry
|
||||
+ * @new: new entry to be added
|
||||
+ * @head: list head to add it before
|
||||
+ *
|
||||
+ * Insert a new entry before the specified head.
|
||||
+ * This is useful for implementing queues.
|
||||
+ */
|
||||
+static inline void list_add_tail(struct list_head *new, struct list_head *head)
|
||||
+{
|
||||
+ __list_add(new, head->prev, head);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Delete a list entry by making the prev/next entries
|
||||
+ * point to each other.
|
||||
+ *
|
||||
+ * This is only for internal list manipulation where we know
|
||||
+ * the prev/next entries already!
|
||||
+ */
|
||||
+static inline void __list_del(struct list_head *prev, struct list_head *next)
|
||||
+{
|
||||
+ next->prev = prev;
|
||||
+ prev->next = next;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_del - deletes entry from list.
|
||||
+ * @entry: the element to delete from the list.
|
||||
+ * Note: list_empty on entry does not return true after this, the entry is in an undefined state.
|
||||
+ */
|
||||
+static inline void list_del(struct list_head *entry)
|
||||
+{
|
||||
+ __list_del(entry->prev, entry->next);
|
||||
+ entry->next = (void *) 0;
|
||||
+ entry->prev = (void *) 0;
|
||||
+}
|
||||
+
|
||||
+static inline void list_add_before( struct list_head *list, struct list_head *pos_node, struct list_head *new_node ) {
|
||||
+
|
||||
+ if ( pos_node->prev != NULL )
|
||||
+ pos_node->prev->next = new_node;
|
||||
+ else
|
||||
+ list->next = new_node;
|
||||
+
|
||||
+ new_node->prev = pos_node->prev;
|
||||
+ new_node->next = pos_node;
|
||||
+
|
||||
+ pos_node->prev = new_node;
|
||||
+
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_del_init - deletes entry from list and reinitialize it.
|
||||
+ * @entry: the element to delete from the list.
|
||||
+ */
|
||||
+static inline void list_del_init(struct list_head *entry)
|
||||
+{
|
||||
+ __list_del(entry->prev, entry->next);
|
||||
+ INIT_LIST_HEAD(entry);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_move - delete from one list and add as another's head
|
||||
+ * @list: the entry to move
|
||||
+ * @head: the head that will precede our entry
|
||||
+ */
|
||||
+static inline void list_move(struct list_head *list, struct list_head *head)
|
||||
+{
|
||||
+ __list_del(list->prev, list->next);
|
||||
+ list_add(list, head);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_move_tail - delete from one list and add as another's tail
|
||||
+ * @list: the entry to move
|
||||
+ * @head: the head that will follow our entry
|
||||
+ */
|
||||
+static inline void list_move_tail(struct list_head *list,
|
||||
+ struct list_head *head)
|
||||
+{
|
||||
+ __list_del(list->prev, list->next);
|
||||
+ list_add_tail(list, head);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_empty - tests whether a list is empty
|
||||
+ * @head: the list to test.
|
||||
+ */
|
||||
+static inline int list_empty(struct list_head *head)
|
||||
+{
|
||||
+ return head->next == head;
|
||||
+}
|
||||
+
|
||||
+static inline void __list_splice(struct list_head *list,
|
||||
+ struct list_head *head)
|
||||
+{
|
||||
+ struct list_head *first = list->next;
|
||||
+ struct list_head *last = list->prev;
|
||||
+ struct list_head *at = head->next;
|
||||
+
|
||||
+ first->prev = head;
|
||||
+ head->next = first;
|
||||
+
|
||||
+ last->next = at;
|
||||
+ at->prev = last;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_splice - join two lists
|
||||
+ * @list: the new list to add.
|
||||
+ * @head: the place to add it in the first list.
|
||||
+ */
|
||||
+static inline void list_splice(struct list_head *list, struct list_head *head)
|
||||
+{
|
||||
+ if (!list_empty(list))
|
||||
+ __list_splice(list, head);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_splice_init - join two lists and reinitialise the emptied list.
|
||||
+ * @list: the new list to add.
|
||||
+ * @head: the place to add it in the first list.
|
||||
+ *
|
||||
+ * The list at @list is reinitialised
|
||||
+ */
|
||||
+static inline void list_splice_init(struct list_head *list,
|
||||
+ struct list_head *head)
|
||||
+{
|
||||
+ if (!list_empty(list)) {
|
||||
+ __list_splice(list, head);
|
||||
+ INIT_LIST_HEAD(list);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * list_entry - get the struct for this entry
|
||||
+ * @ptr: the &struct list_head pointer.
|
||||
+ * @type: the type of the struct this is embedded in.
|
||||
+ * @member: the name of the list_struct within the struct.
|
||||
+ */
|
||||
+#define list_entry(ptr, type, member) \
|
||||
+ ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
|
||||
+
|
||||
+/**
|
||||
+ * list_for_each - iterate over a list
|
||||
+ * @pos: the &struct list_head to use as a loop counter.
|
||||
+ * @head: the head for your list.
|
||||
+ */
|
||||
+#define list_for_each(pos, head) \
|
||||
+ for (pos = (head)->next; pos != (head); \
|
||||
+ pos = pos->next)
|
||||
+/**
|
||||
+ * list_for_each_prev - iterate over a list backwards
|
||||
+ * @pos: the &struct list_head to use as a loop counter.
|
||||
+ * @head: the head for your list.
|
||||
+ */
|
||||
+#define list_for_each_prev(pos, head) \
|
||||
+ for (pos = (head)->prev; pos != (head); \
|
||||
+ pos = pos->prev)
|
||||
+
|
||||
+/**
|
||||
+ * list_for_each_safe - iterate over a list safe against removal of list entry
|
||||
+ * @pos: the &struct list_head to use as a loop counter.
|
||||
+ * @n: another &struct list_head to use as temporary storage
|
||||
+ * @head: the head for your list.
|
||||
+ */
|
||||
+#define list_for_each_safe(pos, n, head) \
|
||||
+ for (pos = (head)->next, n = pos->next; pos != (head); \
|
||||
+ pos = n, n = pos->next)
|
||||
+
|
||||
+/**
|
||||
+ * list_for_each_entry - iterate over list of given type
|
||||
+ * @pos: the type * to use as a loop counter.
|
||||
+ * @head: the head for your list.
|
||||
+ * @member: the name of the list_struct within the struct.
|
||||
+ */
|
||||
+#define list_for_each_entry(pos, head, member) \
|
||||
+ for (pos = list_entry((head)->next, typeof(*pos), member); \
|
||||
+ &pos->member != (head); \
|
||||
+ pos = list_entry(pos->member.next, typeof(*pos), member))
|
||||
+
|
||||
+/**
|
||||
+ * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
|
||||
+ * @pos: the type * to use as a loop counter.
|
||||
+ * @n: another type * to use as temporary storage
|
||||
+ * @head: the head for your list.
|
||||
+ * @member: the name of the list_struct within the struct.
|
||||
+ */
|
||||
+#define list_for_each_entry_safe(pos, n, head, member) \
|
||||
+ for (pos = list_entry((head)->next, typeof(*pos), member), \
|
||||
+ n = list_entry(pos->member.next, typeof(*pos), member); \
|
||||
+ &pos->member != (head); \
|
||||
+ pos = n, n = list_entry(n->member.next, typeof(*n), member))
|
||||
+
|
||||
+/**
|
||||
+ * list_for_each_entry_continue - iterate over list of given type
|
||||
+ * continuing after existing point
|
||||
+ * @pos: the type * to use as a loop counter.
|
||||
+ * @head: the head for your list.
|
||||
+ * @member: the name of the list_struct within the struct.
|
||||
+ */
|
||||
+#define list_for_each_entry_continue(pos, head, member) \
|
||||
+ for (pos = list_entry(pos->member.next, typeof(*pos), member); \
|
||||
+ &pos->member != (head); \
|
||||
+ pos = list_entry(pos->member.next, typeof(*pos), member))
|
||||
+
|
||||
+#endif
|
Loading…
x
Reference in New Issue
Block a user