include $(TOPDIR)/rules.mk
PKG_NAME:=wing
-PKG_VERSION:=20101023
-PKG_RELEASE:=1
-PKG_REV:=daffb8d7642c4a343951d67159504ff4f4da49ed
+PKG_VERSION:=20110329
+PKG_RELEASE:=2
+PKG_REV:=4ef2a352b29c26ce76d8b3d7c6897d301362a101
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://github.com/create-net/click-wing.git
+PKG_SOURCE_URL:=git://github.com/rriggio/click.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_PROTO:=git
TITLE:=Wireless mesh networking toolkit
SECTION:=net
CATEGORY:=Network
- SUBMENU:=Routing and Redirection
MAINTAINER:=Roberto Riggio <roberto.riggio@create-net.org>
DEPENDS:=+kmod-tun +libpcap +libstdcpp
URL:=http://www.wing-project.org/
--enable-userlevel \
--enable-wifi \
--enable-wing \
+ --enable-diffserv \
--disable-linuxmodule \
--disable-dynamic-linking \
HOST_CONFIGURE_ARGS += \
--enable-userlevel \
--enable-wifi \
+ --enable-diffserv \
--enable-wing \
--disable-linuxmodule \
(cd $(PKG_BUILD_DIR)/userlevel; \
$(STAGING_DIR_HOST)/bin/click-mkmindriver -p $(PKG_NAME) -C $(STAGING_DIR_HOST) \
-f $(PKG_BUILD_DIR)/conf/wing/sample.click \
- -A --all -E Discard -E Print -E Null \
+ -A --all -E Discard -E Print -E PrintWifi -E Null \
-E InfiniteSource -E RatedSource -E EtherEncap -E UDPIPEncap \
- -E RadiotapDecap -E RadiotapEncap \
+ -E WINGETTMetric -E WINGETXMetric -E WINGHopCountMetric \
-E ProbeTXRate -E MadwifiRate -E AutoRateFallback -E Minstrel \
- -E RoundRobinSched -E DRRSched; \
+ -E FairBuffer -E DeAggregator -E DWRRSched -E WFQSched -E WRRSched; \
);
$(call Build/Install/Default, MINDRIVER=$(PKG_NAME) install)
endef
uci set network.mesh=interface
uci set network.mesh.proto=wing
uci set network.mesh.profile=bulk
-uci set network.mesh.rc=static
+uci set network.mesh.rc=minstrel
uci set network.mesh.ls=fcfs
uci set network.mesh.metric=wcett
uci set network.mesh.prefix=6
-uci set network.mesh.period=36000
-uci set network.mesh.tau=360000
-uci set network.mesh.debug=true
+uci set network.mesh.period=10000
+uci set network.mesh.tau=100000
+uci set network.mesh.debug=false
cfg=$(uci add firewall zone)
uci set firewall.$cfg.name="mesh"
exit 1
fi
- local profile rc ls prefix debug
+ local profile rc ls metric prefix period tau debug
config_get profile $config profile "bulk"
- config_get rc $config rc "static"
+ config_get rc $config rc "minstrel"
config_get ls $config ls "fcfs"
config_get metric $config metric "wcett"
config_get prefix $config prefix "6"
config_get period $config period "10000"
config_get tau $config tau "100000"
- config_get_bool debug $config debug "False"
+ config_get_bool debug $config debug "false"
local hwaddr=$(echo $hwaddrs | sed 's/ .*//');
local ipaddr=$(printf "$prefix.%d.%d.%d" $(echo $hwaddr | awk -F: '{printf "0x%s 0x%s 0x%s",$4,$5,$6}'))
local netmask=255.0.0.0
- if ! wing_template_available "profile" "$profile" "bulk"; then
+ if ! wing_template_available "profile" "$profile"; then
logger -t "$config" "Unable to configure router. Exiting."
exit 1
fi
- if ! wing_template_available "rc" "$rc" "static"; then
+ if ! wing_template_available "rc" "$rc"; then
logger -t "$config" "Unable to configure rate control. Exiting."
exit 1
fi
- if ! wing_template_available "ls" "$ls" "radiotap"; then
+ if ! wing_template_available "ls" "$ls"; then
logger -t "$config" "Unable to configure link scheduler. Exiting."
exit 1
fi
wing_template_available() { # prefix, template, default
local template="/etc/wing/$1.$2.click"
[ ! -f $template ] && {
- template="/etc/wing/$1.$3.click"
- [ ! -f $template ] && {
- return 1
- }
+ return 1
}
return 0
}
config_get ifname $1 ifname
config_get device $1 device
config_get hwmode $device hwmode "11bg"
- freq=$(iwlist $ifname freq | grep "Current Frequency" | sed -n "s/^.*Current Frequency:\([0-9.]*\) GHz (Channel \([0-9]*\))/\1/p" | awk '{print $1*1000}')
- freq=${freq:-"0"}
+ config_get channel $device channel "0"
+ [ "$channel" = "0" -o "$channel" = "auto" ] && {
+ logger -t "$device" "Channel not specified. Ignoring."
+ return 0
+ }
+ freq=$(iwlist $ifname freq | sed -n "s/^.*Channel 0*$channel : \([0-9.]*\).*/\1/p" | awk '{print $1*1000}')
hwaddr=$(/sbin/ifconfig $ifname 2>&1 | sed -n 's/^.*HWaddr \([0-9A-Za-z\-]*\).*/\1/p' | sed -e 's/\-/:/g' | cut -c1-17)
freqs=${freqs:+"$freqs "}$freq
hwmodes=${hwmodes:+"$hwmodes "}$hwmode