summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-22RPKI: Add 'local address' configuration optionJob Snijders
Allow to explicitly configure the source IP address for RPKI-To-Router sessions. Predictable source addresses are useful for minimizing the holes to be poked in ACLs. Changed from 'source address' to 'local address' by committer.
2024-02-20BGP: Maintain valid route attribute flags even in local tablesOndrej Zajicek
BGP route attributes have flags (Optional, Transitive) that are validated on decode and set to valid value on export. But if such attribute is modified by filter or set internally by BGP during import, then its flags would be zero in local tables. That usually does not matter, as they are not used locally and they were fixed on export, but invalid flags leaked in BMP and MRT dumps. Keep route attribute flags set to valid values even when set by filters or modified by BGP.
2024-02-18BGP: Update SendHoldTimer BGP Error codeJob Snijders
IANA registered an "Early Allocation" BGP Error code for 'Send Hold Timer Expired' event. Update BIRD to use that error code.
2024-02-16Static: Allow to define both nexthop and interfaceOndrej Zajicek
Allow to define both nexthop and interface using iproute2-like syntax, e.g.: route 10.0.0.0/16 via 10.1.0.1 dev "eth0"; Now we can avoid to use link-local scope hack (e.g. 10.1.0.1%eth0) for cases where both nexthop and interface have to be defined. Thanks to Marcin Saklak for the suggestion.
2024-02-16Netlink: Fix spelling of krt_ssthresh / krt_lock_ssthreshOndrej Zajicek
BIRD route attribute for RTAX_SSTHRESH metric was krt_sstresh instead of krt_ssthresh. Fix that and keep old name as an depreacted alias.
2024-02-16Netlink: Cleanups in route metricsOndrej Zajicek
- Add krt_fastopen_no_cookie atttibute - Add missing krt_lock_* bits - Fix krt_feature_allfrag - Fix type of EA_KRT_LOCK and EA_KRT_FEATURES
2024-02-14Filter: Add support for setting TCP congestion control algorithmOndrej Zajicek
Allow to set TCP congestion control algorithm using krt_congctl route attribute. Based on patch from Trisha Biswas <tbiswas@fastly.com>, thanks!
2024-02-14Filter: Add support for string route attributeOndrej Zajicek
2024-02-07BGP: Allow multiple EBGP neighbors with the same peer.Alexander Zubkov
We can distinguish BGP sessions if at least one side uses a different IP address. Extend olock mechanism to handle local IP as a part of key, with optional wildcard, so BGP sessions could local IP in the olock and not block themselves.
2024-02-06birdc: Do not execute cmd on noninteractive help requestInrin
The help command triggered by '?' keeps the message in readline buffer, so it could be edited. For noninteractive shell it leads to an unexpected side effect that `echo <cmd> ? | birdc` executes the command <cmd> after showing its help. Avoid this by clearing the readline buffer in such case.
2024-02-06BGP: Increase max length of notification data in error logsOndrej Zajicek
Increase max length of notification data in error logs from 16 to 128. There is already enough space in the buffer. Thanks to Marco d'Itri for the suggestion.
2024-01-27Nest: Fix bug in recursive routes with MPLS-labeled nexthopsOndrej Zajicek
When a recursive route with MPLS-labeled nexthop was exported to kernel and read back, the nexthop_same() failed due to different labels_orig field and kernel protocol reinstalled it unnecessarily. For comparing hext hops, route cache has to distinguish ones with different labels_orig, but KRT has to ignore that, so we need two nexthop compare functions. Thanks to Marcel Menzel for the bugreport.
2024-01-22Filter: Tests for net_addrKaterina Kubecova
Minor changes by committer.
2024-01-22Trivial code cleanupsOndrej Zajicek
2023-12-13OSPF: Cleanup some warningsOndrej Zajicek
2023-12-13Nest: Fix memory alignment in attribute cacheOndrej Zajicek
In attribute cache, adata structures were stored densely in one memory block, without regard to alignment. Let's force at least u32 alignment.
2023-12-13Log: Add support for UDP loggingOndrej Zajicek
Add support for UDP logging, using RFC 3164 syslog protocol. Based on the patch from Alexander Zubkov <green@qrator.net>, thanks!
2023-12-08Merge commit 'bb094fb6'Maria Matejka
2023-12-08Refactoring also net_roa_checkMaria Matejka
Having 4 functions doing almost the same is more mess than three macros.
2023-12-08Merge commit '54ddf90f'Maria Matejka
2023-12-07Conf: debug tablesMaria Matejka
For now just a dummy config but it is needed for forward compatibility with v3.
2023-12-07Refactoring of net_routeMaria Matejka
2023-12-07Table: Adding route refresh begin and end debug messagesMaria Matejka
2023-12-05BGP: Send hold timerKaterina Kubecova
Implement BGP Send hold timer according to draft-ietf-idr-bgp-sendholdtimer. The Send hold timer drops the session if the neighbor is sending keepalives, but does not receive our messages, causing the TCP connection to stall.
2023-11-23BGP: Add options to require BGP capabilitiesOndrej Zajicek
Some BGP capabilities change the BGP behavior in a significant way, so if the configuration depends on it, it is better to not establish BGP session when the capability is not available. Add several BGP option to require individual BGP capabilities during session negotiation.
2023-11-23BGP: Simplify capability handlingOndrej Zajicek
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-04L3VPN: Import/export target reconfigurationOndrej Zajicek
2023-10-04Doc: L3VPN documentationOndrej 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.