summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-11-23Wg-user: improve rx_hookwireguard-next-tmp7Mikael Magnusson
Fix possible buffer overrun in rx_hook. Let err_hook close socket instead of rx_hook.
2023-11-22Unix: disable some debug outputMikael Magnusson
2023-11-22Wg-user: conditionally add some keysMikael Magnusson
Conditionally add replace_peers and replace_allowed_ips.
2023-08-28Wireguard: debugMikael Magnusson
2023-08-28Filter: Disable debuggingMikael Magnusson
2023-08-28Wg-user: debugMikael Magnusson
2023-08-28Unix: debugMikael Magnusson
2023-08-28Wireguard: Initial commitMikael Magnusson
Use 51820 (default wireguard port) as default tunnel type.
2023-08-28BGP: Tunnel Encapsulation attributeMikael Magnusson
Refer to RFC 9012, The BGP Tunnel Encapsulation Attribute.
2023-08-28TunnelEncaps: Initial commitMikael Magnusson
2023-08-28Wg-user: Work-around listen_port mutex dead lockMikael Magnusson
Problem with listen_port dead lock in wireguard-go.
2023-08-28Wg-user: Add wireguard unix socket implementationMikael Magnusson
Unix socket implementation for wireguard-go. Use abstract unix sockets on Android
2023-08-28Wireguard-lib: Import wireguard libraryMikael Magnusson
Add to makefile.
2023-08-28Filter: Add literal for generic empty listMikael Magnusson
Add literal for empty set "empty", which works for clist, eclist and lclist, by using existing constant promotion mechanism.
2023-08-28Bytestring: 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-28Unix: Implement sk_connect_unixMikael Magnusson
Support abstract socket in sk_unix_connect Implement SK_UNIX_ACTIVE
2023-08-25Conf: Allow keywords to be redefined by user symbolsOndrej Zajicek
Most syntactic constructs in BIRD configuration (e.g. protocol options) are defined as keywords, which are distinct from symbols (user-defined names for protocols, variables, ...). That may cause backwards compatibility issue when a new feature is added, as it may collide with existing user names. We can allow keywords to be shadowed by symbols in almost all cases to avoid this issue. This replaces the previous mechanism, where shadowable symbols have to be explictly added to kw_syms.
2023-08-25Filter: Add separate instruction for uninitialized variable declarationOndrej Zajicek
The previous approach (use VOID constant for variable initialization) failed due to dynamic type check failure. Thanks to Alexander Zubkov <green@qrator.net> for the bugreport.
2023-08-25RPKI: Fix conflict in config grammarOndrej Zajicek
2023-08-25Nest: Fix missing bar in kw_symOndrej Zajicek
Thanks to Alexander Zubkov for the notice.
2023-08-24Doc: Document bytestring typeAlexander Zubkov
2023-08-24Doc: Document RAdv "custom option" configuration definitionAlexander Zubkov
2023-08-24Conf: Use nonterminal bytestring instead of BYTETEXTOndrej Zajicek
Nonterminal bytestring allows to provide expressions to be evaluated in places where BYTETEXT is used now: passwords, radv custom option. Based on the patch from Alexander Zubkov <green@qrator.net>, thanks!
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.