diff --git a/net/wing/Makefile b/net/wing/Makefile index 01977e371..6e6347c69 100644 --- a/net/wing/Makefile +++ b/net/wing/Makefile @@ -8,12 +8,12 @@ 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 @@ -29,7 +29,6 @@ define Package/wing TITLE:=Wireless mesh networking toolkit SECTION:=net CATEGORY:=Network - SUBMENU:=Routing and Redirection MAINTAINER:=Roberto Riggio DEPENDS:=+kmod-tun +libpcap +libstdcpp URL:=http://www.wing-project.org/ @@ -48,12 +47,14 @@ CONFIGURE_ARGS += \ --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 \ @@ -65,11 +66,11 @@ define Build/Compile (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 diff --git a/net/wing/files/etc/uci-defaults/wing b/net/wing/files/etc/uci-defaults/wing index 4471ec6dc..2f5e0dd5f 100644 --- a/net/wing/files/etc/uci-defaults/wing +++ b/net/wing/files/etc/uci-defaults/wing @@ -1,13 +1,13 @@ 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" diff --git a/net/wing/files/lib/network/wing.sh b/net/wing/files/lib/network/wing.sh index ac82bb086..553ebaa0c 100644 --- a/net/wing/files/lib/network/wing.sh +++ b/net/wing/files/lib/network/wing.sh @@ -36,32 +36,32 @@ setup_interface_wing() { 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 @@ -115,10 +115,7 @@ setup_interface_wing() { 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 } @@ -131,8 +128,12 @@ wing_list_interfaces() { 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