0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00
The BIRD project aims to develop a fully functional dynamic IP routing daemon. https://bird.network.cz
Go to file
Maria Matejka 8ac15bf7a4 Filter: Methods rework
Methods can now be called as x.m(y), as long as x can have its type
inferred in config time. If used as a command, it modifies the object,
if used as a value, it keeps the original object intact.

Also functions add(x,y), delete(x,y), filter(x,y) and prepend(x,y) now
spit a warning and are considered deprecated.

It's also possible to call a method on a constant, see filter/test.conf
for examples like bgp_path = +empty+.prepend(1).

Inside instruction definitions (filter/f-inst.c), a METHOD_CONSTRUCTOR()
call is added, which registers the instruction as a method for the type
of its first argument. Each type has its own method symbol table and
filter parser switches between them based on the inferred type of the
object calling the method.

Also FI_CLIST_(ADD|DELETE|FILTER) instructions have been split to allow
for this method dispatch. With type inference, it's now possible.
2024-05-30 12:30:00 +02:00
client Client: Unknown command should return nonzero errorcode 2024-05-30 12:29:59 +02:00
conf Filter: Methods rework 2024-05-30 12:30:00 +02:00
distro Pkg: Improve RPM package unit file 2022-03-11 15:47:00 +01:00
doc Filter: Methods rework 2024-05-30 12:30:00 +02:00
filter Filter: Methods rework 2024-05-30 12:30:00 +02:00
lib IO: Add current_time_now() function for immediate timestamp 2024-05-30 12:30:00 +02:00
misc NEWS and version update 2024-05-30 12:30:00 +02:00
nest Conf: Symbol manipulation gets its context explicitly 2024-05-30 12:30:00 +02:00
proto Conf: config warnings show the file position 2024-05-30 12:30:00 +02:00
sysdep Conf: Symbol manipulation gets its context explicitly 2024-05-30 12:30:00 +02:00
test Nest: Add tests and benchmark for FIB 2024-05-30 12:30:00 +02:00
tools Small improvement in directory test 2022-03-02 10:52:09 +01:00
.dir-locals.el BIRD coding conventions 2019-06-12 16:37:12 +02:00
.gitignore add apkg-powered upstream packaging for deb, rpm 2021-05-19 17:22:11 +02:00
.gitlab-ci.yml GitLab: Disabling build for CentOS 7 and Ubuntu 14.04 as our build machines don't like C11 2024-05-30 12:30:00 +02:00
aclocal.m4 Enable more threads for flto 2019-08-01 14:45:23 +02:00
bird-gdb.py Support for address family constants 2019-11-03 22:25:44 +01:00
bird.conf KRT: Fix IPv6 route learn 2018-02-06 16:08:45 +01:00
configure.ac BMP: Allow build without BMP and disable BMP build by default 2024-05-30 12:30:00 +02:00
INSTALL Doc: Detect SP/OpenSP automatically 2019-02-19 18:20:07 +01:00
Makefile.in Build: Minor improvement to build output 2024-05-30 12:30:00 +02:00
NEWS NEWS and version update 2024-05-30 12:30:00 +02:00
README Doc: README and INSTALL update 2019-01-03 17:26:52 +01:00

                       BIRD Internet Routing Daemon

                     Home page  http://bird.network.cz/
                  Mailing list  bird-users@network.cz

                (c) 1998--2008  Martin Mares <mj@ucw.cz>
                (c) 1998--2000  Pavel Machek <pavel@ucw.cz>
                (c) 1998--2008  Ondrej Filip <feela@network.cz>
                (c) 2009--2019  CZ.NIC z.s.p.o.

================================================================================

The BIRD project aims to develop a dynamic IP routing daemon with full support
of all modern routing protocols, easy to use configuration interface and
powerful route filtering language, primarily targeted on (but not limited to)
Linux and other UNIX-like systems and distributed under the GNU General
Public License.

What do we support
==================

	o  Both IPv4 and IPv6
	o  Multiple routing tables
	o  Border Gateway Protocol (BGPv4)
	o  Routing Information Protocol (RIPv2, RIPng)
	o  Open Shortest Path First protocol (OSPFv2, OSPFv3)
	o  Babel Routing Protocol (Babel)
	o  Bidirectional Forwarding Detection (BFD)
	o  IPv6 router advertisements
	o  Static routes
	o  Inter-table protocol
	o  Command-line interface allowing on-line control and inspection of
	   status of the daemon
	o  Soft reconfiguration, no need to use complex online commands to
	   change the configuration, just edit the configuration file and notify
	   BIRD to re-read it and it will smoothly switch itself to the new
	   configuration, not disturbing routing protocols unless they are
	   affected by the configuration changes
	o  Powerful language for route filtering, see doc/bird.conf.example
	o  Linux, FreeBSD, NetBSD and OpenBSD ports

How to install BIRD
===================

	o  From standard distribution package of your OS (recommended)
	o  From official binary packages for Debian and Red Hat Linux
	   ftp://bird.network.cz/pub/bird/debian/
	   ftp://bird.network.cz/pub/bird/redhat/
	o  From source code of the latest stable release version
	   ftp://bird.network.cz/pub/bird/
	o  From current development code in Git repository
	   https://gitlab.labs.nic.cz/labs/bird/

See the file INSTALL for information about installation from source code.

Documentation
=============

Online documentation is available at http://bird.network.cz/?get_doc or as HTML
files in the doc directory, you can install it by `make install-docs' and
rebuild it by `make docs', but you'll need SGMLtools and LaTeX to be installed
on your machine. You can also download a neatly formatted PDF version as
a separate archive (bird-doc-*.tar.gz) from ftp://bird.network.cz/pub/bird/

User support
============

If you want to help us debugging, enhancing and porting BIRD or just lurk
around to see what's going to develop, feel free to subscribe to the BIRD
users mailing list bird-users@network.cz, just send `subscribe' to
bird-request@network.cz. Bug reports, suggestions, feature requests and
code are welcome! We don't use gitlab issues for reporting, sorry.

Subscribe:	http://bird.network.cz/mailman/listinfo/bird-users/
Archive:	http://bird.network.cz/pipermail/bird-users/

Licence
=======

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

History
=======

BIRD development started as a student project at the Faculty of Math
and Physics, Charles University, Prague, Czech Republic under supervision
of RNDr. Libor Forst <forst@cuni.cz>. BIRD has been developed and supported
by CZ.NIC z.s.p.o. http://www.nic.cz/ since 2009.


Good Luck and enjoy the BIRD :)
						The BIRD Team