2013-10-28 17:16:56 +01:00
|
|
|
#
|
|
|
|
# Copyright (C) 2007-2009 OpenWrt.org
|
|
|
|
#
|
|
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
|
|
# See /LICENSE for more information.
|
|
|
|
#
|
|
|
|
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
|
|
|
|
PKG_NAME:=babeld
|
2020-04-22 12:52:41 +02:00
|
|
|
PKG_VERSION:=1.9.2
|
2021-02-09 22:51:39 +01:00
|
|
|
PKG_RELEASE:=$(AUTORELEASE)
|
2013-10-28 17:16:56 +01:00
|
|
|
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
2017-01-09 17:12:19 +01:00
|
|
|
PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/
|
2020-04-22 12:52:41 +02:00
|
|
|
PKG_HASH:=154f00e0a8bf35d6ea9028886c3dc5c3c342dd1a367df55ef29a547b75867f07
|
2019-08-21 15:56:50 +02:00
|
|
|
|
|
|
|
PKG_MAINTAINER:=Gabriel Kerneis <gabriel@kerneis.info>, \
|
|
|
|
Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org>
|
2014-11-03 13:16:46 +01:00
|
|
|
PKG_LICENSE:=MIT
|
2019-08-26 18:12:50 +02:00
|
|
|
PKG_LICENSE_FILES:=LICENCE
|
2013-10-28 17:16:56 +01:00
|
|
|
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
|
|
|
|
define Package/babeld
|
|
|
|
SECTION:=net
|
|
|
|
CATEGORY:=Network
|
|
|
|
SUBMENU:=Routing and Redirection
|
2019-08-26 18:12:50 +02:00
|
|
|
TITLE:=A loop-avoiding distance-vector routing protocol
|
2017-01-09 17:12:19 +01:00
|
|
|
URL:=https://www.irif.fr/~jch/software/babel/
|
babeld: add ubus bindings
A better integration of babeld with OpenWrt is to connect the daemon to
the IPC. So far, we can only communicate via a websocket. With ubus we
can send and receive commands in json format.
The commit adds a ubus interface to babeld with following functions:
- get_info
- get_neighbours
- get_xroutes
- get_routes
All output is divided into IPv4 and IPv6.
Ubus has to be enabled by setting "config general"
option 'ubus_bindings' 'true'
Example:
root@OpenWrt:~# ubus call babeld get_info
{
"babeld-version": "babeld-1.9.2",
"my-id": "32:xx:xx:xx:xx:xx:xx:xx",
"host": "OpenWrt"
}
root@OpenWrt:~# ubus call babeld get_neighbours
{
"IPv4": {
},
"IPv6": {
"fe80::xx:xx:xx:xxx": {
"dev": "br-lan",
"hello-reach": 65408,
"uhello-reach": 0,
"rxcost": 96,
"txcost": 96,
"rtt": 4338271,
"channel": -2,
"if_up": true
}
}
}
root@OpenWrt:~# ubus call babeld get_xroutes
{
"IPv4": {
"10.0.0.3/32": {
"src-prefix": "0.0.0.0/0",
"metric": 0
},
"10.0.0.0/24": {
"src-prefix": "0.0.0.0/0",
"metric": 0
}
},
"IPv6": {
"fdfa:xx:xx::1/128": {
"src-prefix": "::/0",
"metric": 0
}
}
}
root@OpenWrt:~# ubus call babeld get_routes
{
"IPv4": {
"10.2.0.1/32": {
"src-prefix": "0.0.0.0/0",
"route_metric": 96,
"route_smoothed_metric": 96,
"refmetric": 0,
"id": "62:xx:xx:xx:xx:xx:xx:xx",
"seqno": 41381,
"channels": "",
"age": 17,
"via": "fe80::xx:xxxx:xxxx:xxxx",
"nexthop": " nexthop ",
"installed": true,
"feasible": true
},
"IPv6": {
}
}
Additional IPC functionality will follow.
Further, we changed the version to $version-ubus-mod.
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-12-17 12:41:32 +01:00
|
|
|
DEPENDS:=@IPV6 +libubus +libubox
|
2013-10-28 17:16:56 +01:00
|
|
|
endef
|
|
|
|
|
|
|
|
define Package/babeld/description
|
2019-08-26 18:12:50 +02:00
|
|
|
Babel is a loop-avoiding distance-vector routing protocol for IPv6 and IPv4
|
|
|
|
with fast convergence properties. It is based on the ideas in DSDV, AODV and
|
|
|
|
Cisco's EIGRP, but is designed to work well not only in wired networks but
|
|
|
|
also in wireless mesh networks, and has been extended with support for
|
|
|
|
overlay networks. Babel is in the process of becoming an IETF Standard.
|
2013-10-28 17:16:56 +01:00
|
|
|
endef
|
|
|
|
|
|
|
|
define Package/babeld/conffiles
|
|
|
|
/etc/babeld.conf
|
|
|
|
/etc/config/babeld
|
|
|
|
endef
|
|
|
|
|
|
|
|
MAKE_FLAGS+= \
|
|
|
|
CFLAGS="$(TARGET_CFLAGS)" \
|
2015-05-21 08:24:18 +02:00
|
|
|
LDLIBS="" \
|
babeld: add ubus bindings
A better integration of babeld with OpenWrt is to connect the daemon to
the IPC. So far, we can only communicate via a websocket. With ubus we
can send and receive commands in json format.
The commit adds a ubus interface to babeld with following functions:
- get_info
- get_neighbours
- get_xroutes
- get_routes
All output is divided into IPv4 and IPv6.
Ubus has to be enabled by setting "config general"
option 'ubus_bindings' 'true'
Example:
root@OpenWrt:~# ubus call babeld get_info
{
"babeld-version": "babeld-1.9.2",
"my-id": "32:xx:xx:xx:xx:xx:xx:xx",
"host": "OpenWrt"
}
root@OpenWrt:~# ubus call babeld get_neighbours
{
"IPv4": {
},
"IPv6": {
"fe80::xx:xx:xx:xxx": {
"dev": "br-lan",
"hello-reach": 65408,
"uhello-reach": 0,
"rxcost": 96,
"txcost": 96,
"rtt": 4338271,
"channel": -2,
"if_up": true
}
}
}
root@OpenWrt:~# ubus call babeld get_xroutes
{
"IPv4": {
"10.0.0.3/32": {
"src-prefix": "0.0.0.0/0",
"metric": 0
},
"10.0.0.0/24": {
"src-prefix": "0.0.0.0/0",
"metric": 0
}
},
"IPv6": {
"fdfa:xx:xx::1/128": {
"src-prefix": "::/0",
"metric": 0
}
}
}
root@OpenWrt:~# ubus call babeld get_routes
{
"IPv4": {
"10.2.0.1/32": {
"src-prefix": "0.0.0.0/0",
"route_metric": 96,
"route_smoothed_metric": 96,
"refmetric": 0,
"id": "62:xx:xx:xx:xx:xx:xx:xx",
"seqno": 41381,
"channels": "",
"age": 17,
"via": "fe80::xx:xxxx:xxxx:xxxx",
"nexthop": " nexthop ",
"installed": true,
"feasible": true
},
"IPv6": {
}
}
Additional IPC functionality will follow.
Further, we changed the version to $version-ubus-mod.
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-12-17 12:41:32 +01:00
|
|
|
LDLIBS+="-lubus -lubox"
|
2013-10-28 17:16:56 +01:00
|
|
|
|
|
|
|
define Package/babeld/install
|
|
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/babeld $(1)/usr/sbin/
|
|
|
|
$(INSTALL_DIR) $(1)/etc
|
|
|
|
$(INSTALL_CONF) ./files/babeld.conf $(1)/etc/
|
|
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
|
|
$(INSTALL_CONF) ./files/babeld.config $(1)/etc/config/babeld
|
|
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
|
|
$(INSTALL_BIN) ./files/babeld.init $(1)/etc/init.d/babeld
|
|
|
|
endef
|
|
|
|
|
|
|
|
$(eval $(call BuildPackage,babeld))
|