summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-11-23WIP: bytestring -> adataMikael Magnusson
2023-11-23WIP: fix filter/f-inst.cMikael Magnusson
2023-11-23WIP: fix filter/config.YMikael Magnusson
2023-11-23Wg-user: improve rx_hookMikael Magnusson
Fix possible buffer overrun in rx_hook. Let err_hook close socket instead of rx_hook.
2023-11-23Unix: disable some debug outputMikael Magnusson
2023-11-23Wg-user: conditionally add some keysMikael Magnusson
Conditionally add replace_peers and replace_allowed_ips.
2023-11-23Wireguard: debugMikael Magnusson
2023-11-23Filter: Disable debuggingMikael Magnusson
2023-11-23Wg-user: debugMikael Magnusson
2023-11-23Unix: debugMikael Magnusson
2023-11-23Wireguard: Initial commitMikael Magnusson
Use 51820 (default wireguard port) as default tunnel type.
2023-11-23BGP: Tunnel Encapsulation attributeMikael Magnusson
Refer to RFC 9012, The BGP Tunnel Encapsulation Attribute.
2023-11-23TunnelEncaps: Initial commitMikael Magnusson
2023-11-23Wg-user: Work-around listen_port mutex dead lockMikael Magnusson
Problem with listen_port dead lock in wireguard-go.
2023-11-23Wg-user: Add wireguard unix socket implementationMikael Magnusson
Unix socket implementation for wireguard-go. Use abstract unix sockets on Android
2023-11-23Wireguard-lib: Import wireguard libraryMikael Magnusson
Add to makefile.
2023-11-23Filter: 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-11-23Bytestring: 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-11-23Unix: Implement sk_connect_unixMikael Magnusson
Support abstract socket in sk_unix_connect Implement SK_UNIX_ACTIVE
2023-11-09OSPF: On physical PtP links, skip next-hop resolvingSoha Jin
Signed-off-by: Soha Jin <soha@jin.sh> Co-developed-by: Wende Tan <twd2.me@gmail.com>
2023-10-25Nest: Minor fixes in MPLSOndrej Zajicek
2023-10-24Doc: prefix match prefix pattern definition typo (in sets of prefixes ↵Michal Rada
definition)
2023-10-24Use RTA_MAX_SIZE in rta_do_cow()Ondrej Zajicek
This allows to modify MPLS label stack in filters. Fixes a bug in handling of 'gw_mpls' attribute.
2023-10-24Autoconf: minor reduction of redundancyMaria Matejka
Joined BIRD_CHECK_GCC_OPTION and BIRD_ADD_GCC_OPTION.
2023-10-18CI: Update for new netlab workerOndrej Zajicek
- Change tag from 'birdlab' to 'netlab' - Change path of gitlab-runner home dir - Use stayrtr from Debian
2023-10-16CI: Add MPLS testsOndrej Zajicek
2023-10-16MPLS: Fix issue with recursive MPLS routesOndrej Zajicek
Recursive MPLS routes used hostentry from the original route, which triggered different table than MPLS table, and therefore were not updated.
2023-10-06NEWS and version updateOndrej Zajicek
2023-10-06Doc: Minor fixesOndrej Zajicek
2023-10-06Conf: Bytestrings with hex: should use the same general format as ones without.Ondrej Zajicek
Either hex:01234567, or hex:01:23:45:67. No confusing formats like hex:0123:4567:ab:cdef, which looks like there is an implicit zero byte.
2023-10-06KRT: Allow to learn routes with RTPROT_KERNELPavel Šorejs
The Kernel protocol, even with the option 'learn' enabled, ignores direct routes created by the OS kernel (on Linux these are routes with rtm_protocol == RTPROT_KERNEL). Implement optional behavior where both OS kernel and third-party routes are learned, it can be enabled by 'learn all' option. Minor changes by committer.
2023-10-05BGP: Improve custom BGP attributesOndrej Zajicek
- Implement EA_GET for custom BGP attributes - Forbid EA_SET on existing opaque attributes - Forbid redefining existing attributes - Document possible compatibility problems
2023-10-05MPLS: Handle compatibility with old configsOndrej Zajicek
Old configs do not define MPLS domains and may use a static protocol to define static MPLS routes. When MPLS channel is the only channel of static protocol, handle it as a main channel. Also, define implicit MPLS domain if needed and none is defined.
2023-10-05Filter: Fix scope handling in for loopsOndrej Zajicek
Changes in scope implementation broke scope handling in for loops. The term in for loops is supposed to be parsed in the parent scope.
2023-10-04Conf: Fix 'show symbols'Ondrej Zajicek
Seems like the root scope was not marked as active.
2023-10-04BGP: Custom attribute definitions should use cfg_alloc(), not malloc()Ondrej Zajicek
Otherwise we would get memory leaks.
2023-10-04Filter: explicitly forbidden for-loop with pre-defined variableMaria Matejka
2023-10-04IO: Fix race condition in event processingOndrej Zajicek
When regular event was added from work event, we did remember that regular event list was empty and therefore we did not use zero time in poll(). This leads to ~3 s latency in route reload during reconfiguration.
2023-10-04Doc: Fix syntax errors in SGMLOndrej Zajicek
2023-10-04MPLS: Update to support and use 64bit source idOndrej Zajicek
2023-10-04Doc: L3VPN documentationOndrej Zajicek
2023-10-04Doc: MPLS documentationOndrej Zajicek
2023-10-04L3VPN: Import/export target reconfigurationOndrej Zajicek
2023-10-04BGP, L3VPN: Fix MPLS channel reloadOndrej Zajicek
When a MPLS channel is reloaded, it should reload all regular MPLS-aware channels. This causes re-evaluation of routes in FEC map and possibly reannouncement of MPLS routes.
2023-10-04MPLS: Implement FEC map reconfigurationOndrej Zajicek
This allows changing label policy or label range without restart.
2023-10-04MPLS: Handle label allocation failuresOndrej Zajicek
2023-10-04L3VPN: Fix bug in reconfigurationOndrej Zajicek
Fields import_target / export_target link to config structures, must be updated during reconfiguration.
2023-10-04MPLS: Improve handling of static label allocationsOndrej Zajicek
Use mpls_new_label() / mpls_free_label() also for static labels, to keep track of allocated labels and to enforce label ranges. Static label allocations always use static label range, regardless of configured label range.
2023-10-04Static: Add syntax for static MPLS labelsOndrej Zajicek
Instead of just using route attributes, static routes with static MPLS labels can be defined just by e.g.: route 10.1.1.0/24 mpls 100 via 10.1.2.1 mpls 200;
2023-10-04MPLS: Label range non-intersection checkOndrej Zajicek