bird: Move package to openwrt-routing feed.
Updated to latest version and fixed build errors.
This commit is contained in:
parent
b80d3969ac
commit
907fe5a1ef
7 changed files with 498 additions and 0 deletions
160
bird/Makefile
Normal file
160
bird/Makefile
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009-2012 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:=bird
|
||||||
|
PKG_VERSION:=1.3.11
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
|
||||||
|
PKG_MD5SUM:=8ad2eb997fb8251bc5b24cf32619571b
|
||||||
|
PKG_BUILD_DEPENDS:=libncurses libreadline
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/bird/Default
|
||||||
|
TITLE:=The BIRD Internet Routing Daemon
|
||||||
|
URL:=http://bird.network.cz/
|
||||||
|
DEPENDS:=
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/birdc/Default
|
||||||
|
TITLE:=The BIRD command-line client
|
||||||
|
URL:=http://bird.network.cz/
|
||||||
|
DEPENDS:= +libreadline +libncurses
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird/Default/description1
|
||||||
|
BIRD is an internet routing daemon which manages TCP/IP routing tables
|
||||||
|
with support of modern routing protocols, easy to use configuration
|
||||||
|
interface and powerful route filtering language. It is lightweight and
|
||||||
|
efficient and therefore appropriate for small embedded routers.
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird/Default/description2
|
||||||
|
In BGP, BIRD supports communities, multiprotocol extensions, MD5
|
||||||
|
authentication, 32bit AS numbers and could act as a route server or a
|
||||||
|
route reflector. BIRD also supports multiple RIBs, multiple kernel
|
||||||
|
routing tables and redistribution between the protocols with a powerful
|
||||||
|
configuration syntax.
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird/Default/description3
|
||||||
|
This is a BIRD command-line client. It is used to send commands to BIRD,
|
||||||
|
commands can perform simple actions such as enabling/disabling of
|
||||||
|
protocols, telling BIRD to show various information, telling it to show
|
||||||
|
a routing table filtered by a filter, or asking BIRD to reconfigure.
|
||||||
|
|
||||||
|
Unless you can't afford dependency on ncurses and readline, you
|
||||||
|
should install BIRD command-line client together with BIRD.
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird4
|
||||||
|
$(call Package/bird/Default)
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
SUBMENU:=Routing and Redirection
|
||||||
|
TITLE+= (IPv4)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/birdc4
|
||||||
|
$(call Package/birdc/Default)
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
SUBMENU:=Routing and Redirection
|
||||||
|
TITLE+= (IPv4)
|
||||||
|
DEPENDS+= +bird4
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird6
|
||||||
|
$(call Package/bird/Default)
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
TITLE+= (IPv6)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/birdc6
|
||||||
|
$(call Package/birdc/Default)
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
TITLE+= (IPv6)
|
||||||
|
DEPENDS+= +bird6
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird4/description
|
||||||
|
$(call Package/bird/Default/description1)
|
||||||
|
This is IPv4 version of BIRD, it supports OSPFv2, RIPv2 and BGP
|
||||||
|
protocols.
|
||||||
|
|
||||||
|
$(call Package/bird/Default/description2)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/birdc4/description
|
||||||
|
$(call Package/bird/Default/description1)
|
||||||
|
$(call Package/bird/Default/description3)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird6/description
|
||||||
|
$(call Package/bird/Default/description1)
|
||||||
|
This is IPv6 version of BIRD, it supports OSPFv3, RIPng and BGP
|
||||||
|
protocols.
|
||||||
|
|
||||||
|
$(call Package/bird/Default/description2)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/birdc6/description
|
||||||
|
$(call Package/bird/Default/description1)
|
||||||
|
$(call Package/bird/Default/description3)
|
||||||
|
endef
|
||||||
|
|
||||||
|
CONFIGURE_ARGS += --with-linux-headers="$(LINUX_DIR)"
|
||||||
|
|
||||||
|
define Build/Template
|
||||||
|
|
||||||
|
$(STAMP_BUILT)-$(2): $(STAMP_PREPARED)
|
||||||
|
$(call Build/Configure/Default,$(3))
|
||||||
|
$(call Build/Compile/Default,)
|
||||||
|
( cd $(PKG_BUILD_DIR); mv -f bird bird$(2); mv -f birdc birdc$(2) )
|
||||||
|
-$(MAKE) -C $(PKG_BUILD_DIR) clean
|
||||||
|
touch $$@
|
||||||
|
|
||||||
|
$(STAMP_BUILT): $(STAMP_BUILT)-$(2)
|
||||||
|
|
||||||
|
define Package/bird$(2)/install
|
||||||
|
$(INSTALL_DIR) $$(1)/usr/sbin
|
||||||
|
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/bird$(2) $$(1)/usr/sbin/
|
||||||
|
$(INSTALL_BIN) ./files/bird$(2)loop $$(1)/usr/sbin/
|
||||||
|
$(INSTALL_DIR) $$(1)/etc
|
||||||
|
$(INSTALL_DATA) ./files/bird$(2).conf $$(1)/etc
|
||||||
|
$(INSTALL_DIR) $$(1)/etc/init.d
|
||||||
|
$(INSTALL_BIN) ./files/bird$(2).init $$(1)/etc/init.d/bird$(2)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/bird$(2)/conffiles
|
||||||
|
/etc/bird$(2).conf
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/birdc$(2)/install
|
||||||
|
$(INSTALL_DIR) $$(1)/usr/sbin
|
||||||
|
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/birdc$(2) $$(1)/usr/sbin/
|
||||||
|
endef
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
$(eval $(call Build/Template,bird4,4, --disable-ipv6))
|
||||||
|
$(eval $(call Build/Template,bird6,6, --enable-ipv6))
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,bird4))
|
||||||
|
$(eval $(call BuildPackage,birdc4))
|
||||||
|
$(eval $(call BuildPackage,bird6))
|
||||||
|
$(eval $(call BuildPackage,birdc6))
|
121
bird/files/bird4.conf
Normal file
121
bird/files/bird4.conf
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
|
||||||
|
# THIS CONFIG FILE IS NOT A COMPLETE DOCUMENTATION
|
||||||
|
# PLEASE LOOK IN THE BIRD DOCUMENTATION FOR MORE INFO
|
||||||
|
|
||||||
|
# However, most of options used here are just for example
|
||||||
|
# and will be removed in real-life configs.
|
||||||
|
|
||||||
|
log syslog all;
|
||||||
|
|
||||||
|
# Override router ID
|
||||||
|
#router id 192.168.0.1;
|
||||||
|
|
||||||
|
# Turn on global debugging of all protocols
|
||||||
|
#debug protocols all;
|
||||||
|
|
||||||
|
|
||||||
|
# Define a route filter...
|
||||||
|
# filter test_filter {
|
||||||
|
# if net ~ 10.0.0.0/16 then accept;
|
||||||
|
# else reject;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# The direct protocol automatically generates device routes to all network
|
||||||
|
# interfaces. Can exist in as many instances as you wish if you want to
|
||||||
|
# populate multiple routing tables with device routes. Because device routes
|
||||||
|
# are handled by Linux kernel, this protocol is usually not needed.
|
||||||
|
# protocol direct {
|
||||||
|
# interface "*"; # Restrict network interfaces it works with
|
||||||
|
# }
|
||||||
|
|
||||||
|
# This pseudo-protocol performs synchronization between BIRD's routing
|
||||||
|
# tables and the kernel. You can run multiple instances of the kernel
|
||||||
|
# protocol and synchronize different kernel tables with different BIRD tables.
|
||||||
|
protocol kernel {
|
||||||
|
# learn; # Learn all alien routes from the kernel
|
||||||
|
# persist; # Don't remove routes on bird shutdown
|
||||||
|
scan time 20; # Scan kernel routing table every 20 seconds
|
||||||
|
# import none; # Default is import all
|
||||||
|
# export all; # Default is export none
|
||||||
|
}
|
||||||
|
|
||||||
|
# This pseudo-protocol watches all interface up/down events.
|
||||||
|
protocol device {
|
||||||
|
scan time 10; # Scan interfaces every 10 seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
# Static routes (again, there can be multiple instances, so that you
|
||||||
|
# can disable/enable various groups of static routes on the fly).
|
||||||
|
protocol static {
|
||||||
|
# export all; # Default is export none
|
||||||
|
# route 0.0.0.0/0 via 62.168.0.13;
|
||||||
|
# route 10.0.0.0/8 reject;
|
||||||
|
# route 192.168.0.0/16 reject;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#protocol rip {
|
||||||
|
# disabled;
|
||||||
|
# import all;
|
||||||
|
# export all;
|
||||||
|
# export filter test_filter;
|
||||||
|
|
||||||
|
# port 1520;
|
||||||
|
# period 7;
|
||||||
|
# infinity 16;
|
||||||
|
# garbage time 60;
|
||||||
|
# interface "*" { mode broadcast; };
|
||||||
|
# honor neighbor;
|
||||||
|
# honor always;
|
||||||
|
# honor never;
|
||||||
|
# authentication none;
|
||||||
|
#}
|
||||||
|
|
||||||
|
|
||||||
|
#protocol ospf {
|
||||||
|
# disabled;
|
||||||
|
# import all;
|
||||||
|
# export all;
|
||||||
|
# export where source = RTS_STATIC;
|
||||||
|
|
||||||
|
# area 0 {
|
||||||
|
# interface "eth*" {
|
||||||
|
# cost 10;
|
||||||
|
# hello 3;
|
||||||
|
# retransmit 2;
|
||||||
|
# wait 5;
|
||||||
|
# dead 20;
|
||||||
|
# type broadcast;
|
||||||
|
# authentication simple;
|
||||||
|
# password "pass";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#}
|
||||||
|
|
||||||
|
|
||||||
|
#protocol bgp {
|
||||||
|
# disabled;
|
||||||
|
# import all;
|
||||||
|
# export all;
|
||||||
|
# export where source = RTS_STATIC;
|
||||||
|
|
||||||
|
# local as 65000;
|
||||||
|
# neighbor 192.168.1.1 as 65001;
|
||||||
|
# multihop 20 via 192.168.2.1;
|
||||||
|
|
||||||
|
# hold time 240;
|
||||||
|
# startup hold time 240;
|
||||||
|
# connect retry time 120;
|
||||||
|
# keepalive time 80; # defaults to hold time / 3
|
||||||
|
# start delay time 5; # How long do we wait before initial connect
|
||||||
|
# error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
|
||||||
|
# # errors occur, we increase the delay exponentially ...
|
||||||
|
# error forget time 300; # ... until this timeout expires)
|
||||||
|
# disable after error; # Disable the protocol automatically when an error occurs
|
||||||
|
# next hop self; # Disable next hop processing and always advertise our local address as nexthop
|
||||||
|
# source address 62.168.0.14; # What local address we use for the TCP connection
|
||||||
|
# password "secret" # Password used for MD5 authentication
|
||||||
|
# rr client; # I am a route reflector and the neighor is my client
|
||||||
|
# rr cluster id 1.0.0.1 # Use this value for cluster id instead of my router id
|
||||||
|
# };
|
||||||
|
#}
|
24
bird/files/bird4.init
Normal file
24
bird/files/bird4.init
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (C) 2010-2011 OpenWrt.org
|
||||||
|
|
||||||
|
START=99
|
||||||
|
STOP=10
|
||||||
|
|
||||||
|
SERVICE_DAEMONIZE=1
|
||||||
|
SERVICE_WRITE_PID=1
|
||||||
|
|
||||||
|
BIRD="/usr/sbin/bird4 -c /etc/bird4.conf"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
service_start $BIRD -d
|
||||||
|
# ( SERVICE_MATCH_NAME=1 service_start /usr/sbin/bird4loop )
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
# ( SERVICE_MATCH_NAME=1 service_stop /usr/sbin/bird4loop )
|
||||||
|
service_stop $BIRD
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
service_reload $BIRD
|
||||||
|
}
|
24
bird/files/bird4loop
Normal file
24
bird/files/bird4loop
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
BIRD="/usr/sbin/bird4 -c /etc/bird4.conf"
|
||||||
|
|
||||||
|
$BIRD -p || return 1
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
. /lib/functions/service.sh
|
||||||
|
|
||||||
|
SERVICE_DAEMONIZE=1
|
||||||
|
SERVICE_WRITE_PID=1
|
||||||
|
|
||||||
|
sig_handler() {
|
||||||
|
running=0
|
||||||
|
service_stop $BIRD
|
||||||
|
}
|
||||||
|
|
||||||
|
running=1
|
||||||
|
trap sig_handler INT
|
||||||
|
trap sig_handler TERM
|
||||||
|
while [ $running -gt 0 ]; do
|
||||||
|
service_check $BIRD || service_start $BIRD -d "$@"
|
||||||
|
sleep 3
|
||||||
|
done
|
121
bird/files/bird6.conf
Normal file
121
bird/files/bird6.conf
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
|
||||||
|
# THIS CONFIG FILE IS NOT A COMPLETE DOCUMENTATION
|
||||||
|
# PLEASE LOOK IN THE BIRD DOCUMENTATION FOR MORE INFO
|
||||||
|
|
||||||
|
# However, most of options used here are just for example
|
||||||
|
# and will be removed in real-life configs.
|
||||||
|
|
||||||
|
log syslog all;
|
||||||
|
|
||||||
|
# Override router ID
|
||||||
|
#router id 192.168.0.1;
|
||||||
|
|
||||||
|
# Turn on global debugging of all protocols
|
||||||
|
#debug protocols all;
|
||||||
|
|
||||||
|
|
||||||
|
# Define a route filter...
|
||||||
|
# filter test_filter {
|
||||||
|
# if net ~ 10.0.0.0/16 then accept;
|
||||||
|
# else reject;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# The direct protocol automatically generates device routes to all network
|
||||||
|
# interfaces. Can exist in as many instances as you wish if you want to
|
||||||
|
# populate multiple routing tables with device routes. Because device routes
|
||||||
|
# are handled by Linux kernel, this protocol is usually not needed.
|
||||||
|
# protocol direct {
|
||||||
|
# interface "*"; # Restrict network interfaces it works with
|
||||||
|
# }
|
||||||
|
|
||||||
|
# This pseudo-protocol performs synchronization between BIRD's routing
|
||||||
|
# tables and the kernel. You can run multiple instances of the kernel
|
||||||
|
# protocol and synchronize different kernel tables with different BIRD tables.
|
||||||
|
protocol kernel {
|
||||||
|
# learn; # Learn all alien routes from the kernel
|
||||||
|
# persist; # Don't remove routes on bird shutdown
|
||||||
|
scan time 20; # Scan kernel routing table every 20 seconds
|
||||||
|
# import none; # Default is import all
|
||||||
|
# export all; # Default is export none
|
||||||
|
}
|
||||||
|
|
||||||
|
# This pseudo-protocol watches all interface up/down events.
|
||||||
|
protocol device {
|
||||||
|
scan time 10; # Scan interfaces every 10 seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
# Static routes (again, there can be multiple instances, so that you
|
||||||
|
# can disable/enable various groups of static routes on the fly).
|
||||||
|
protocol static {
|
||||||
|
# export all; # Default is export none
|
||||||
|
# route 0.0.0.0/0 via 62.168.0.13;
|
||||||
|
# route 10.0.0.0/8 reject;
|
||||||
|
# route 192.168.0.0/16 reject;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#protocol rip {
|
||||||
|
# disabled;
|
||||||
|
# import all;
|
||||||
|
# export all;
|
||||||
|
# export filter test_filter;
|
||||||
|
|
||||||
|
# port 1520;
|
||||||
|
# period 7;
|
||||||
|
# infinity 16;
|
||||||
|
# garbage time 60;
|
||||||
|
# interface "*" { mode broadcast; };
|
||||||
|
# honor neighbor;
|
||||||
|
# honor always;
|
||||||
|
# honor never;
|
||||||
|
# authentication none;
|
||||||
|
#}
|
||||||
|
|
||||||
|
|
||||||
|
#protocol ospf {
|
||||||
|
# disabled;
|
||||||
|
# import all;
|
||||||
|
# export all;
|
||||||
|
# export where source = RTS_STATIC;
|
||||||
|
|
||||||
|
# area 0 {
|
||||||
|
# interface "eth*" {
|
||||||
|
# cost 10;
|
||||||
|
# hello 3;
|
||||||
|
# retransmit 2;
|
||||||
|
# wait 5;
|
||||||
|
# dead 20;
|
||||||
|
# type broadcast;
|
||||||
|
# authentication simple;
|
||||||
|
# password "pass";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#}
|
||||||
|
|
||||||
|
|
||||||
|
#protocol bgp {
|
||||||
|
# disabled;
|
||||||
|
# import all;
|
||||||
|
# export all;
|
||||||
|
# export where source = RTS_STATIC;
|
||||||
|
|
||||||
|
# local as 65000;
|
||||||
|
# neighbor 192.168.1.1 as 65001;
|
||||||
|
# multihop 20 via 192.168.2.1;
|
||||||
|
|
||||||
|
# hold time 240;
|
||||||
|
# startup hold time 240;
|
||||||
|
# connect retry time 120;
|
||||||
|
# keepalive time 80; # defaults to hold time / 3
|
||||||
|
# start delay time 5; # How long do we wait before initial connect
|
||||||
|
# error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
|
||||||
|
# # errors occur, we increase the delay exponentially ...
|
||||||
|
# error forget time 300; # ... until this timeout expires)
|
||||||
|
# disable after error; # Disable the protocol automatically when an error occurs
|
||||||
|
# next hop self; # Disable next hop processing and always advertise our local address as nexthop
|
||||||
|
# source address 62.168.0.14; # What local address we use for the TCP connection
|
||||||
|
# password "secret" # Password used for MD5 authentication
|
||||||
|
# rr client; # I am a route reflector and the neighor is my client
|
||||||
|
# rr cluster id 1.0.0.1 # Use this value for cluster id instead of my router id
|
||||||
|
# };
|
||||||
|
#}
|
24
bird/files/bird6.init
Normal file
24
bird/files/bird6.init
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (C) 2010-2011 OpenWrt.org
|
||||||
|
|
||||||
|
START=99
|
||||||
|
STOP=10
|
||||||
|
|
||||||
|
SERVICE_DAEMONIZE=1
|
||||||
|
SERVICE_WRITE_PID=1
|
||||||
|
|
||||||
|
BIRD="/usr/sbin/bird6 -c /etc/bird6.conf"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
service_start $BIRD -d
|
||||||
|
# ( SERVICE_MATCH_NAME=1 service_start /usr/sbin/bird6loop )
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
# ( SERVICE_MATCH_NAME=1 service_stop /usr/sbin/bird6loop )
|
||||||
|
service_stop $BIRD
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
service_reload $BIRD
|
||||||
|
}
|
24
bird/files/bird6loop
Normal file
24
bird/files/bird6loop
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
BIRD="/usr/sbin/bird6 -c /etc/bird6.conf"
|
||||||
|
|
||||||
|
$BIRD -p || return 1
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
. /lib/functions/service.sh
|
||||||
|
|
||||||
|
SERVICE_DAEMONIZE=1
|
||||||
|
SERVICE_WRITE_PID=1
|
||||||
|
|
||||||
|
sig_handler() {
|
||||||
|
running=0
|
||||||
|
service_stop $BIRD
|
||||||
|
}
|
||||||
|
|
||||||
|
running=1
|
||||||
|
trap sig_handler INT
|
||||||
|
trap sig_handler TERM
|
||||||
|
while [ $running -gt 0 ]; do
|
||||||
|
service_check $BIRD || service_start $BIRD -d "$@"
|
||||||
|
sleep 3
|
||||||
|
done
|
Loading…
Reference in a new issue