- Dec 05, 2023
-
-
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.
-
- Nov 23, 2023
-
-
Ondřej Zajíček authored
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.
-
Ondřej Zajíček authored
-
- Nov 09, 2023
-
-
Signed-off-by:
Soha Jin <soha@jin.sh> Co-developed-by:
Wende Tan <twd2.me@gmail.com>
-
- Oct 25, 2023
-
-
Ondřej Zajíček authored
-
- Oct 24, 2023
-
-
-
Ondřej Zajíček authored
This allows to modify MPLS label stack in filters. Fixes a bug in handling of 'gw_mpls' attribute.
-
Maria Matejka authored
Joined BIRD_CHECK_GCC_OPTION and BIRD_ADD_GCC_OPTION.
-
- Oct 18, 2023
-
-
Ondřej Zajíček authored
- Change tag from 'birdlab' to 'netlab' - Change path of gitlab-runner home dir - Use stayrtr from Debian
-
- Oct 16, 2023
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Recursive MPLS routes used hostentry from the original route, which triggered different table than MPLS table, and therefore were not updated.
-
- Oct 06, 2023
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
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.
-
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.
- Oct 05, 2023
-
-
Ondřej Zajíček authored
- Implement EA_GET for custom BGP attributes - Forbid EA_SET on existing opaque attributes - Forbid redefining existing attributes - Document possible compatibility problems
-
Ondřej Zajíček authored
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.
-
Ondřej Zajíček authored
Changes in scope implementation broke scope handling in for loops. The term in for loops is supposed to be parsed in the parent scope.
-
- Oct 04, 2023
-
-
Ondřej Zajíček authored
Seems like the root scope was not marked as active.
-
Ondřej Zajíček authored
Otherwise we would get memory leaks.
-
Maria Matejka authored
-
Ondřej Zajíček authored
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.
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
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.
-
Ondřej Zajíček authored
This allows changing label policy or label range without restart.
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Fields import_target / export_target link to config structures, must be updated during reconfiguration.
-
Ondřej Zajíček authored
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.
-
Ondřej Zajíček authored
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;
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Allow to shorten label range over unused area.
-
Ondřej Zajíček authored
Add command to show MPLS label ranges and their stats.
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Add function lmap_last_one_in_range() for finding the last active label in a label range.
-
Ondřej Zajíček authored
The L3VPN protocol implements RFC 4364 BGP/MPLS VPNs using MPLS backbone. It works similarly to pipe. It connects IP table (one per VRF) with (global) VPN table. Routes passed from VPN table to IP table are stripped of RD and filtered by import targets, routes passed in the other direction are extended with RD, MPLS labels and export targets in extended communities. A separate MPLS channel is used to announce MPLS routes for the labels.
-
Ondřej Zajíček authored
The new labeling policy MPLS_POLICY_VRF assigns one label to all routes (from the same FEC map associated with one VRF), while replaces their next hops with a lookup to a VRF table. This is useful for L3VPN protocol.
-