summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-08-24Wireguard: debugwireguard-next-tmp6Mikael Magnusson
2023-08-24Filter: Disable debuggingMikael Magnusson
2023-08-24Wg-user: debugMikael Magnusson
2023-08-24Unix: debugMikael Magnusson
2023-08-24Wireguard: Initial commitMikael Magnusson
Use 51820 (default wireguard port) as default tunnel type.
2023-08-24BGP: Tunnel Encapsulation attributeMikael Magnusson
Refer to RFC 9012, The BGP Tunnel Encapsulation Attribute.
2023-08-24TunnelEncaps: Initial commitMikael Magnusson
2023-08-24Wg-user: Work-around listen_port mutex dead lockMikael Magnusson
Problem with listen_port dead lock in wireguard-go.
2023-08-24Wg-user: Add wireguard unix socket implementationMikael Magnusson
Unix socket implementation for wireguard-go. Use abstract unix sockets on Android
2023-08-24Wireguard-lib: Import wireguard libraryMikael Magnusson
Add to makefile.
2023-08-24Bytestring: implement bytestring literals and constantsMikael Magnusson
Implement byte string literals on the format b"xxx" and b64"xxx" which can be used as literals and in constants. The format b"xxx" supports character data and octal and hexadecimal data using C escapes (\n, \nn, \nnn, \xn and \xnn). The format b64"xxx" supports base64 encoded strings (RFC1341).
2023-08-24Unix: Implement sk_connect_unixMikael Magnusson
Support abstract socket in sk_unix_connect Implement SK_UNIX_ACTIVE
2023-08-24Filter: Use more generic approach for intra-config expressionsAlexander Zubkov
Replace f_eval_int() function with a type-generic variant: cf_eval(). Implement similar fuction: cf_eval_int() via inline call to cf_eval().
2023-08-24Filter: Add bytestring typeAlexander Zubkov
- Rename BYTESTRING lexem to BYTETEXT, not to collide with 'bytestring' type name - Add bytestring type with id T_BYTESTRING (0x2c) - Add from_hex() filter function to create bytestring from hex string - Add filter test cases for bytestring type Minor changes by committer.
2023-08-24Lib: Add functions for reading and writing of bytestringsOndrej Zajicek
Based on patch from Alexander Zubkov, thanks!
2023-08-23Nest: Treat VRF interfaces as inside respective VRFsOndrej Zajicek
Despite not having defined 'master interface', VRF interfaces should be treated as being inside respective VRFs. They behave as a loopback for respective VRFs. Treating the VRF interface as inside the VRF allows e.g. OSPF to pick up IP addresses defined on the VRF interface. For this, we also need to tell apart VRF interfaces and regular interfaces. Extend Netlink code to parse interface type and mark VRF interfaces with IF_VRF flag. Based on the patch from Erin Shepherd, thanks!
2023-08-22Merge branch 'bmp'Ondrej Zajicek
2023-08-22RPM: Sync bird.spec from Fedora dist-gitJakub Ružička
It seems all Fedora packages are built from epel7 branch.
2023-08-22Distro: Add apkg packaging testJakub Ružička
The test was written by Maria Matejka, thanks! Run this using apkg test
2023-08-22Distro: Add apkg compat levelJakub Ružička
This will allow compatibility on future apkg config updates.
2023-08-22Debian: Fix for arm64 cross buildJakub Ružička
Mirrors debian patch.
2023-08-22Debian: Use {{ now }} in changelogJakub Ružička
2023-08-22Debian: Bump compat level to 11Jakub Ružička
Current is 13, remaining blockers: - Debian 9 @ 11 (EOL) - Ubuntu 18.04 @ 12 (EOL 2023-04-02)
2023-08-22Debian: Sync packaging with DebianJakub Ružička
2023-08-22Debian: Add birdcl manpageJakub Ružička
Mirrors Debian package change.
2023-08-22RPM: Add missing BuildRequires: autoconfJakub Ružička
2023-08-22Use more proper pointers to constant bytestringsAlexander Zubkov
2023-08-22BGP: Update RFC referenceOndrej Zajicek
RFC 5549 was obsoleted by RFC 8950.
2023-08-22BMP: Improve peer_down handlingOndrej Zajicek
Move all bmp_peer_down() calls to one place and make it synchronous with BGP session down, ensuring that BMP receives peer_down before route withdraws from flushing. Also refactor bmp_peer_down_() message generating code.
2023-08-21BMP: Use generic channel feed instead of direct walk over rtableOndrej Zajicek
Now we use rt_notify() and channels for both feed and notifications, in both import tables (pre-policy) and regular tables (post-policy). Remove direct walk in bmp_route_monitor_snapshot().
2023-08-21Nest: Use generic rte_announce() also for import tablesOndrej Zajicek
Remove special rte_announce_in(), so we can use generic rte_announce() for bot feed and notifications.
2023-08-18BMP: Fix route timestampsOndrej Zajicek
2023-08-18BMP: Refactor route monitoringOndrej Zajicek
- Manage BMP state through bmp_peer, bmp_stream, bmp_table structures - Use channels and rt_notify() hook for route announcements - Add support for post-policy monitoring - Send End-of-RIB even when there is no routes - Remove rte_update_in_notify() hook from import tables - Update import tables to support channels - Add bmp_hack (no feed / no flush) flag to channels
2023-08-01BMP: Remove useless bufferOndrej Zajicek
2023-08-01BMP: Simplify route monitoring hooksOndrej Zajicek
No need for *_begin(), *_commit(), and *_end() hooks. The hook *_notify() is sufficient for everything.
2023-06-30Fixed a typo in documentationAlexander Zubkov
The problem was the "/" symbol in the prefix mask that finished the formatting definition prematurely.
2023-06-26RAdv: Use new syntax for custom optionsAlexander Zubkov
And use WALK_LIST macro
2023-06-23RAdv: Add custom optionsAlexander Zubkov
Currently one can use only a predefined set of advertised options in RAdv protocol, which are supported by BIRD configuration. It would be convenient to be able to specify other possible options at least manually as a blob so one should not wait until it is supported in the code, released, etc. This idea is inspired by presentation by Ondřej Caletka at CSNOG, in which he noticed the lack of either PREF64 option or possibility to add custom options in various software. The patch makes it possible to define such options with the syntax: other type <num> <bytestring>
2023-06-23Add hex:XYZ syntax for short hex stringsAlexander Zubkov
Hexadecimal bytestring literals have minimal length to not collide with IP addresses or regular (hexadecimal) number literals. Allow to use shorter literals with explicit hex: prefix.
2023-06-22Merge tag 'v2.13.1'Maria Matejka
2023-06-22NEWS and version updatev2.13.1Maria Matejka
2023-06-22Filter: Fixed segfault when a case option had an empty blockMaria Matejka
Thanks to Kobayashi_Bairuo <noc@tohunet.com> for reporting.
2023-06-22BGP: Fix role check when no capability option is presentOndrej Zajicek
When an OPEN message without capability options was parsed, the remote role field was not initialized with the proper (non-zero) default value, so it was interpreted as if 'provider' was announced. Thanks to Mikhail Grishin for the bugreport.
2023-06-15Netlink: Allow RTA_VIA even without MPLS supportLuiz Amaral
It is necessary for IPv4 over IPv6 nexthop support on FreeBSD, and RTA_VIA is not really related to MPLS. It breaks build for some very old systems like Debian 8 and CentOS 7, but we generally do not support older kernels than 4.14 LTS anyway.
2023-06-15CI: Remove obsolete CI targetsOndrej Zajicek
Remove build-debian-8, build-ubuntu-14_04, build-centos-7, pkg-debian-9, and pkg-centos-7 targets. Debian 8, Ubuntu 14.04, and CentOS 7 have unsupported kernels, Debian 9 has okay kernel, but is EOL.
2023-06-08BMP: Ensure that bmp_fire_tx() does nothing when not upOndrej Zajicek
2023-06-08BMP: Support multiple instances of BMP protocolOndrej Zajicek
Add internal BMP functions with plicit bmp_proto *p as first argument, which allows using TRACE() macro. Keep list of BMP instances and call internal functions. Old BMP functions are wrappers that call internal functions for all enabled BMP instances. Extract End-of-RIB mark into separate function. Based on patch from Michal Zagorski <mzagorsk@akamai.com>. Thanks!
2023-06-02Babel: Minor changes to RTT formattingOndrej Zajicek
Use existing %t printf code and move 'ms' in CLI output to table header.
2023-06-02Babel: Add support for the RTT extensionToke Høiland-Jørgensen
This adds support to the Babel protocol for the RTT extension specified in draft-ietf-babel-rtt-extension. While this extension is not yet at the RFC stage, it is one of the more useful extensions to Babel[0], so it seems worth having in Bird as well. The extension adds timestamps to Hello and IHU TLVs and uses these to compute an RTT to each neighbour. An extra per-neighbour cost is then computed from the RTT based on a minimum and maximum interval and cost value specified in the configuration. The primary use case for this is improving routing in a geographically distributed tunnel-based overlay network. The implementation follows the babeld implementation when picking constants and default configuration values. It also uses the same RTT smoothing algorithm as babeld, and follows it in adding a new 'tunnel' interface type which enables RTT by default. [0] https://alioth-lists.debian.net/pipermail/babel-users/2022-April/003932.html
2023-06-02IO: Add current_time_now() function for immediate timestampToke Høiland-Jørgensen
Add a current_time_now() function which gets an immediate monotonic timestamp instead of using the cached value from the event loop. This is useful for callers that need precise times, such as the Babel RTT measurement code. Minor changes by committer.