Skip to content
This repository
Browse code

Added babelm branch which contains a new smoothed metric algo

I note that this experimental package also contains a patch
to mark babel packets as ECN capable, when in reality they
are not, at present.

In the words of Juliusz:

"that's a horrible kludge.  You're applying AQM to locally-originated data in
order to compensate for the lack of backpressure, and then falsely
asserting ECN in order to bypass the AQM policy."

As for the first statement, queues are necessary at multiple layers
in the stack, so I can think of no effective means of supplying
backpressure at insertion time that will work. I can think of means of
supplying congestion related drop indications to babel, but that is as
yet, unimplemented.

As to the second objection, yes this is bypassing AQM policy, however,
at some point, using ECN marking in babel could be used for something.

The udp markings can be easily obtained with pktinfo in userspace,
and I do need to produce a patch for that.

In the interim, the problem I am trying to solve is that when a rate
change happens in wifi, it is abrupt and can take a long time (with
the fq_codel aqm rapidly ramping up packet drop) to drop the backlog back to
a normal level for the new rate. IMHO it is better to have a radio
continue to function rather that potentially stop entirely because it
dropped a bunch of babel packets while seeking a new equilibrium.
  • Loading branch information...
commit b142be5189554e29f3a93f6ff36674aa57315260 1 parent b506581
authored July 08, 2012
27  net/babelz/Makefile → net/babelm/Makefile
@@ -3,40 +3,40 @@
3 3
 #
4 4
 # This is free software, licensed under the GNU General Public License v2.
5 5
 # See /LICENSE for more information.
6  
-# Please note this is not an officially released version of babelz
  6
+# Please note this is not an officially released version of babelm
7 7
 
8 8
 include $(TOPDIR)/rules.mk
9 9
 
10  
-PKG_NAME:=babeld
11  
-PKG_VERSION:=20111019
12  
-PKG_RELEASE:=7
  10
+PKG_NAME:=babelm
  11
+PKG_VERSION:=20120608-git-1
  12
+PKG_RELEASE:=1
13 13
 
14 14
 #PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 15
 #PKG_SOURCE_URL:=http://www.pps.jussieu.fr/~jch/software/files/
16 16
 #PKG_MD5SUM:=e1a801aa48fe26401c29d2152c1a1887
17 17
 
18  
-PKG_REV:=8302ad91524e361d04ac6cb7ffb62b88bfaabc1b
  18
+PKG_REV:=3914c193319fe06b584d8be648607a96eccdfb18
19 19
 
20 20
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
21  
-PKG_SOURCE_URL:=git://git.wifi.pps.jussieu.fr/babeld
  21
+PKG_SOURCE_URL:=git://github.com/jech/babeld.git
22 22
 PKG_SOURCE_SUBDIR:=babeld-$(PKG_VERSION)
23  
-PKG_SOURCE_VERSION:=$(PKG_REV)
  23
+PKG_SOURCE_VERSION:=origin/smoothed-metric
24 24
 PKG_SOURCE_PROTO:=git
25 25
 
26 26
 
27 27
 include $(INCLUDE_DIR)/package.mk
28 28
 
29  
-define Package/babelz
  29
+define Package/babelm
30 30
   SECTION:=net
31 31
   CATEGORY:=Network
32 32
   SUBMENU:=Routing and Redirection
33  
-  TITLE:=A loop-free distance-vector routing protocol
  33
+  TITLE:=Experimental convergence algo for babel, the distance-vector routing protocol
34 34
   URL:=http://www.pps.jussieu.fr/~jch/software/babel/
35 35
   MAINTAINER:=Dave Taht <d+babel@taht.net>
36 36
   DEPENDS:=+kmod-ipv6 +librt
37 37
 endef
38 38
 
39  
-define Package/babelz/description
  39
+define Package/babelm/description
40 40
  Babel is a loop-avoiding distance-vector routing protocol roughly based
41 41
  on DSDV and AODV, but with provisions for link cost estimation and
42 42
  redistribution of routes from other routing protocols.
@@ -44,9 +44,10 @@ define Package/babelz/description
44 44
  efficiently on wired networks. It will generate between 1.2 and 2.4 times
45 45
  the amount of routing traffic that RIPng would generate, while
46 46
  never counting to infinity.
  47
+ This experimental package contains a newer smoothed convergence algo.
47 48
 endef
48 49
 
49  
-define Package/babelz/conffiles
  50
+define Package/babelm/conffiles
50 51
 /etc/babel.conf
51 52
 /etc/config/babeld
52 53
 endef
@@ -54,7 +55,7 @@ endef
54 55
 MAKE_FLAGS+= \
55 56
 	CFLAGS="$(TARGET_CFLAGS)" \
56 57
 
57  
-define Package/babelz/install
  58
+define Package/babelm/install
58 59
 	$(INSTALL_DIR) $(1)/usr/sbin
59 60
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/babeld $(1)/usr/sbin/
60 61
 	$(INSTALL_DIR) $(1)/etc
@@ -65,4 +66,4 @@ define Package/babelz/install
65 66
 	$(INSTALL_BIN) ./files/babeld.init $(1)/etc/init.d/babeld
66 67
 endef
67 68
 
68  
-$(eval $(call BuildPackage,babelz))
  69
+$(eval $(call BuildPackage,babelm))
0  net/babelz/files/babeld.conf → net/babelm/files/babeld.conf
File renamed without changes
1  net/babelz/files/babeld.config → net/babelm/files/babeld.config
@@ -10,6 +10,7 @@ config general
10 10
 	# experimental, don't use it unless you know what you are doing.
11 11
 	## option 'idle_hello_interval' '0'
12 12
 	# option 'diversity' '0,128'
  13
+	option 'smoothed-metric' '4'
13 14
 	# option 'kernel_priority' '0'
14 15
 	# Do not use this option unless you know what you are doing, as it can
15 16
 	# cause persistent route flapping.
1  net/babelz/files/babeld.init → net/babelm/files/babeld.init
@@ -106,6 +106,7 @@ babel_config() {
106 106
 	append_parm "$cfg" 'wired_hello_interval' '-H'
107 107
 	append_parm "$cfg" 'idle_hello_interval' '-i'
108 108
 	append_parm "$cfg" 'diversity' '-z'
  109
+	append_parm "$cfg" 'smoothed-metric' '-M'
109 110
 	append_parm "$cfg" 'kernel_priority' '-k'
110 111
 	append_parm "$cfg" 'duplication_priority' '-A'
111 112
 	append_parm "$cfg" 'debug' '-d'
0  ...lz/patches/0001-Mark-packets-as-ECN-capable.patch → ...lm/patches/0001-Mark-packets-as-ECN-capable.patch
File renamed without changes

0 notes on commit b142be5

Please sign in to comment.
Something went wrong with that request. Please try again.