summaryrefslogtreecommitdiff
path: root/proto
AgeCommit message (Collapse)Author
2018-11-28Nest: Do not hard-reset interface when preferred address is changedOndrej Zajicek (work)
Modify protocols to use preferred address change notification instead on depending on hard-reset of interfaces in that case, and remove hard-reset in that case. This avoids issue when e.g. IPv6 protocol restarts interface when IPv4 preferred address changed (as hard-reset is unavoidable and common for whole iface). The patch also fixes a bug when removing last address does not send preferred address change notification.
2018-11-20The MRT protocolOndrej Zajicek (work)
The new MRT protocol is responsible for periodic RIB table dumps in the MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is refactored and splitted between BGP to MRT protocols, will be more integrated into MRT in the future. Example: protocol mrt { table "*"; filename "%N_%F_%T.mrt"; period 60; } It is partially based on the old MRT code from Pavel Tvrdik.
2018-10-26BGP: Fix VRF for listening socketOndrej Zajicek (work)
Listening socket should be bound to specified interface and VRF. Thanks to Alexander Zubkov for the bugreport.
2018-10-25OSPF: Fix some trace messagesOndrej Zajicek (work)
Missing argument in MTU change trace message can crash bird when MTU change happens and trace messages are active. Thanks to Alexander Velkov for the bugreport.
2018-10-01Lib: Add and use ev_new_init()Ondrej Zajicek (work)
2018-10-01BGP: Fix bug in show protocol related to LLGROndrej Zajicek (work)
When channel is not active due to not be negotiated during sessino establishment, the LLGR timer is not allocated, so we should not show it.
2018-09-18No more warnings ...Jan Maria Matejka
no more warnings No more warnings over me And while it is being compiled all the log is black and white Release BIRD now and then let it flee (use the melody of well-known Oh Freedom!)
2018-07-31BGP: Long-lived graceful restartOndrej Zajicek (work)
The patch implements long-lived graceful restart for BGP, namely draft-uttaro-idr-bgp-persistence-03.
2018-07-19RAdv: Fix crash during prefix changeOndrej Zajicek (work)
Thanks to Julian Schuh for the bugreport.
2018-07-19OSPF: Fix crash during route removalOndrej Zajicek (work)
The bug was introduced by an earler patch which removed additional eattr argument to rt_notify hook.
2018-07-03Cleanup some warningsOndrej Zajicek (work)
2018-07-01BGP: Use implicit-NULL label when announcing MPLS routes with local next-hopOndrej Zajicek (work)
We currently cannot assing local labels, but we can still be LSP egress router. Therefore when we announce labeled route with local next-hop, we should announce implicit-NULL label instead of rejecting it completely.
2018-07-01BGP: Fix parsing of MPLS withdrawalsOndrej Zajicek (work)
RFC 3107 was bit vague with regard to labeled withdrawals, RFC 8277 clarified that. The old code was incompatible with some implementations, namely with Juniper. Thanks to Vadim Fedorenko for the original patch.
2018-06-29BGP: Attribute set function merged with its common counterpartMaria Jan Matejka
2018-06-27Nest: Neighbor cache cleanupsOndrej Zajicek (work)
Simplify neighbor cache code, fix several minor bugs, and improve handling of ONLINK flag.
2018-06-26Doc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder ↵Maria Matejka
on case-insensitive filesystems
2018-06-26Config: Dropping CF_ADDTO.Jan Maria Matejka
2018-06-19Merge branch 'int-new' into HEADJan Maria Matejka
2018-06-13Babel: Fix handling of missing IPv4 next hopsOndrej Zajicek (work)
In case of missing IPv4 next hop, we should skip such routes on transmit and ignore such routes on receive. Thanks to Julian Schuh for the bugreport and Toke Hoiland-Jorgensen for the original patch.
2018-06-13BGP: Handle missing NEXT_HOP attribute properlyOndrej Zajicek (work)
RFC 7606 specifies handle-as-withdraw instead of session reset.
2018-05-30Nest: Removing separate tmpa from route propagationJan Maria Matejka
This is a fundamental change of an original (1999) concept of route processing inside BIRD. During import/export, there was a temporary ea_list created which was to be used instead of the another one inside the route itself. This led to some confusion, quirks, and strange filter code that handled extended route attributes. Dropping it now. The protocol interface has changed in an uniform way -- the `struct ea_list *attrs` argument has been removed from store_tmp_attrs(), import_control(), rt_notify() and get_route_info().
2018-05-29OSPF: Fix invalid NSSA RFC referencesOndrej Zajicek (work)
2018-05-29Protocol: Introducing an enum protocol_classJan Maria Matejka
This supersedes the EAP_* constants.
2018-05-24Do not initialize route metrics in import_control hookOndrej Zajicek (work)
During route export, the receiving protocol often initialized route metrics to default value in its import_control hook before export filter was executed. This is inconsistent with the expectation that an export filter would process the same route as one in the routing table and it breaks setting these metrics before (e.g. for static routes directly in static protocol). The patch removes the initialization of route metrics in import_control hook, the default values are already handled in rt_notify hook called after export filters. The patch also changed the behavior of OSPF to keep metrics when a route is reannounced between OSPF instances (to be consistent with other protocols) and the behavior when both ospf_metric1 and ospf_metric2 are specified (to have more expected behavior).
2018-05-03Babel: Add option to randomize router IDOndrej Zajicek (work)
When a Babel node restarts, it loses its sequence number, which can cause its routes to be rejected by peers until the state is cleared out by other nodes in the network (which can take on the order of minutes). There are two ways to fix this: Having stable storage to keep the sequence number across restarts, or picking a different router ID each time. This implements the latter, by introducing a new option that will cause BIRD to randomize a high 32 bits of router ID every time it starts up. This avoids the problem at the cost of not having stable router IDs in the network. Thanks to Toke Hoiland-Jorgensen for the patch.
2018-05-03Babel: Fix type of route entry router IDOndrej Zajicek (work)
The router ID being assigned to routes was a uint, which discards the upper 32 bits. This also has the nice side effect of echoing the wrong router ID back to other routers. Thanks to Toke Hoiland-Jorgensen for the patch.
2018-04-25OSPF: Support of authentication trailer for OSPFv3Ondrej Zajicek (work)
Implement RFC 7166, crypthographic authentication for OSPFv3 analogous to authentication used for OSPFv2.
2018-04-12BGP: Fix extended next hop handlingOndrej Zajicek (work)
For IPv4 with extended next hop, we use MP-BGP format and therefore no independent NEXT_HOP attribute. Thanks to Arvin Gan for the bugreport.
2018-03-07Merge branch 'master' into int-newOndrej Zajicek (work)
2018-03-07Babel: Fix build with restricted protocol setOndrej Zajicek (work)
All keywords used in Babel config have to be declared locally. Thanks to Leo Vandewoestijne for the bugreport.
2018-02-13Babel: Fix accidental bitwise or assignmentOndrej Zajicek (work)
Fix an accidental bitwise or assignment that was supposed to be a comparison. Thanks to Toke Hoiland-Jorgensen for the patch.
2018-02-13Babel: Add source-specific routing supportOndrej Zajicek (work)
This patch adds support for source-specific routing to the Babel protocol. It changes the protocol to support both NET_IP6 and NET_IP6_SADR channels for IPv6 addresses. If only a NET_IP6 channel is configured, source-specific updates are ignored. Otherwise, non-source-specific routes are simply treated as source-specific routes with SADR prefix 0. Thanks to Toke Hoiland-Jorgensen for the original patch. Minor changes by Ondrej Santiago Zajicek.
2018-01-23Merge branch 'master' into int-newOndrej Zajicek (work)
2018-01-23Pipe: show export stateJan Maria Matejka
2018-01-23Pipe: fixed template bugJan Maria Matejka
When pipe inherited from template, every channel config was lost.
2018-01-16BGP: Implement 'disable after cease' optionOndrej Zajicek (work)
The option allows to specify that some cease subcodes should disable the protocol when received.
2018-01-16BGP: Require explicit import and export policies for EBGP channelsOndrej Zajicek (work)
To comply with RFC 8212 requirements.
2018-01-10Use non-fatal asserts even for regular buildOndrej Zajicek (work)
2018-01-09Nest: Allow modification of channels inherited from templatesOndrej Zajicek (work)
Multiple definitions of same channels are forbidden, but inherited channel can be redefined. In such case channel options are merged.
2018-01-02BGP: Fix unknown attribute handlingOndrej Zajicek (work)
2018-01-02BGP: Fix graceful restart timerOndrej Zajicek (work)
Should use remote value, not local value.
2017-12-16Minor fixes for debug modeOndrej Zajicek (work)
2017-12-14Minor cleanupsOndrej Zajicek (work)
2017-12-13BGP: Fix non-transitive ext communitiesOndrej Zajicek (work)
2017-12-10Lib: Fix macro/keyword collisionsOndrej Zajicek (work)
Old code breaks with some versions of bison
2017-12-10Several minor fixesOndrej Zajicek (work)
2017-12-08BGP: Link check just for single-hopOndrej Zajicek (work)
2017-12-08Enable ECMP and Link detection by defaultOndrej Zajicek (work)
ECMP is not enabled on BSD, where it is not supported by BIRD.
2017-12-08BGP: Fix IPv6 MPLS/VPN multicast SAFIOndrej Zajicek (work)
2017-12-08BGP: Autoconfigure BGP next hops from preferred addressesOndrej Zajicek (work)