summaryrefslogtreecommitdiff
path: root/proto
AgeCommit message (Collapse)Author
2020-05-01RPKI: fixed rare va_list leakMaria Matejka
2020-05-01OSPF: Adding a note about a static analyzer result.Maria Matejka
2020-05-01OSPF: variable-length array of size 0 replaced by alloca()'d pointerMaria Matejka
NULL pointer is safer than a random pointer onto stack if this function gets changed and eventually broken.
2020-04-28Not calling memcpy with n=0.Maria Matejka
2020-04-15BGP: Fix handling of 16bit-only ASN translationNasato Goto
The bug generated invalid AGGREGATOR attribute during translation of 32bit ASN to 16bit-only BGP peer. The patch fixes that.
2020-04-09Configuration strings are constant.Maria Matejka
This is merely a const propagation. There was no problem in there.
2020-03-14RIP: Improvements to demand circuit modeOndrej Zajicek (work)
Restart iface after changing demand circuit mode during reconfiguration. Fix next_regular interval reset during reconfiguration. Send flushing response when iface goes down.
2020-03-12Perf: changed route update pattern to be more like common protocolsMaria Matejka
2020-03-03BGP: Handle flowspec rules without dst partOndrej Zajicek (work)
The RFC 5575 does not explicitly reject flowspec rules without dst part, it just requires dst part in validation procedure for feasibility, which we do not implement anyway. Thus flow without dst prefix is syntactically valid, but unfeasible (if feasibilty testing is done). Thanks to Alex D. for the bugreport.
2020-02-27BGP: Support for MD5SIG together with remote rangeOndrej Zajicek (work)
When dynamic BGP with remote range is configured, MD5SIG needs to use newer socket option (TCP_MD5SIG_EXT) to specify remote addres range for listening socket. Thanks to Adam KuĊ‚agowski for the suggestion.
2020-02-21RIP: Demand circuit support (RFC 2091)Ondrej Zajicek (work)
2020-02-14RIP: Fix crash when interface is removedOndrej Zajicek (work)
Recent changes in neighbor code caused RIP to access neighbor field which is NULL during interface/neighbor removal and caused crash when debug messages are enabled. Use correct field to get iface from neighbor.
2020-02-04RPKI: Allow build without libSSHMaria Matejka
2020-01-28BFD: Option to specify which class of BFD sessions are acceptedOndrej Zajicek (work)
Allows to configure IPv4/IPv6-only or direct/multihop-only BFD protocol instances.
2020-01-09OSPF: Fix bad initialization of tx_hdrlen fieldOndrej Zajicek (work)
Function ifa_tx_hdrlen() uses fields autype and passwords, so it must be called after these are set. Thanks to Kenth Eriksson for the bugreport.
2019-12-03BGP: Add some statisticsOndrej Zajicek (work)
Add some statistic counters to BGP consistent with BGP MIB (RFC 4273), including persistent 'FSM established transitions'.
2019-11-18BGP: Fix processing of IPv6 FlowspecOndrej Zajicek (work)
During NLRI parsing of IPv6 Flowspec, dst prefix was not properly extracted from NLRI, therefore a received flow was stored in a different position in flowspec routing table, and was not reachable by command 'show route <flow>'. Add proper prefix part accessors to flowspec code and use them from BGP NLRI parsing code. Thanks to Alex D. for the bugreport.
2019-11-10BGP: Add option to enforce first AS in AS_PATHOndrej Zajicek (work)
This is optional check described in RFC 4271. Although this can be also done by filters, it is widely implemented option in BGP implementations. Thanks to Eugene Bogomazov for the original patch.
2019-11-04BGP: Add option to reject AS_SETsOndrej Zajicek (work)
There is a pending draft to make them obsolete
2019-10-26BGP: RFC 8654 got releasedOndrej Zajicek (work)
2019-10-24BGP: Fix handling of transitive extended communitiesOndrej Zajicek (work)
Transitive extended communities should be removed on external sessions, the old code them in all cases. Thanks to Jean-Daniel Pauget for the original patch.
2019-10-19RPKI: Fix handling of IPv6 cache addressesOndrej Zajicek (work)
The old code used just sizeof(struct sockaddr) bytes of IP address.
2019-10-10BGP: Fix reconfiguration with import tableOndrej Zajicek (work)
Change of some options requires route refresh, but when import table is active, channel reload is done from it instead of doing full route refresh. So in this case we request it internally.
2019-10-09BGP: AIGP metric support (RFC 7311)Ondrej Zajicek (work)
2019-10-09Lib: Support for 64-bit numbers in bvsnprintf()Ondrej Zajicek (work)
Use 'l' for s64/u64 instead of for long/ulong, as that is much more useful. Also make number() correct with regard to signed/unsigned typecasts.
2019-10-09Perf: allow testing with cached route attributes.Maria Matejka
2019-09-30BFD: Fix reconfiguration of neighborsOndrej Zajicek (work)
The bfd_reconfigure_neighbors() returned after first reconfigured neighbor instead of continuing with the next one. Thanks to Winston Chen for the bugreport and a patch.
2019-09-17BGP: Fix setup with multiple dynamic BGP rangesOndrej Zajicek (work)
Based on a patch from Liam Nattrass, thanks.
2019-09-09BGP: Fix handling of bgp_aggregator atttributeOndrej Zajicek (work)
The attribute should not be modifiable by filters as we do not support its type.
2019-09-09BGP: Fix bugs in handling of shutdown messagesOndrej Zajicek (work)
There is an improper check for valid message size, which may lead to stack overflow and buffer leaks to log when a large message is received. Thanks to Daniel McCarney for bugreport and analysis.
2019-08-29OSPF: Fix 'show ospf lsadb' cmd without proto argOndrej Zajicek (work)
It crashed when used without protocol argument. Thanks to Alexander for the bugreport.
2019-08-21BGP: Use reallocation for capability structureOndrej Zajicek (work)
Instead of having large stack buffer for max amount of AFI/SAFI pairs. The old code is not correct w.r.t. extendeded option length, as more AFI/SAFI pairs may fit into the capability option.
2019-08-20BGP: Implement extended optional parameters lengthOndrej Zajicek (work)
Extends BGP options/capabilities data length to 16bit, to avoid issues with too many capabilities. See draft-ietf-idr-ext-opt-param-07
2019-08-14BGP: implement Adj-RIB-OutOndrej Zajicek (work)
The patch implements optional internal export table to a channel and hooks it to BGP so it can be used as Adj-RIB-Out. When enabled, all exported (post-filtered) routes are stored there. An export table can be examined using e.g. 'show route export table bgp1.ipv4'.
2019-08-12RAdv: Allow solicited RAs to be sent as unicastOndrej Zajicek (work)
Add option to send solicited router advertisements as unicast directly to soliciting nodes instead of as multicast to all-nodes group.
2019-08-06BGP: Improve reconfigurationOndrej Zajicek (work)
Several BGP channel options (including 'next hop self') could be reconfigured without session reset, with just route refeed/refresh. The patch improves reconfiguration code to do it that way.
2019-08-06BGP: Fix 'deterministic med' to work with 'merge paths'Ondrej Zajicek (work)
The 'deterministic med' option is implemented by suppressing other than best-in-group routes (grouped by ASN) from best route selection. This interferes with 'merge paths' as supressed routes are no longer mergable with best route. This is fixed by suppressing only those routes that are not mergable with best-in-group route.
2019-07-29RPKI: Fix allocation of hostname when using an IPv6 addressVincent Bernat
2019-07-25BFD: Fix formatting of 'show bfd sessions'Ondrej Zajicek (work)
The formatting was broken due to longer date in 'since' column.
2019-07-24Merge remote-tracking branch 'origin/mq-filter-stack'Ondrej Zajicek (work)
2019-07-24Nest: VRF of protocol can be explicitly specified as 'default'Ondrej Zajicek (work)
Protocol can have specified VRF, in such case it is restricted to a set of ifaces associated with the VRF, otherwise it can use all interfaces. The patch allows to specify VRF as 'default', in which case it is restricted to a set of iface not associated with any VRF.
2019-07-23OSPF: Fix formatting of 'show ospf neighbors'Ondrej Zajicek (work)
The formatting was broken when too short router-id was used.
2019-07-23RPKI: Fix reconfiguration when ssh parameters are undefinedOndrej Zajicek (work)
2019-07-17BFD: Support for VRFsOndrej Zajicek (work)
Allow multiple BFD instances in separate VRFs, dispatch BFD requests according to VRFs. Thanks to Alexander Zubkov for notice and patches.
2019-07-15Merge remote-tracking branch 'origin/master' into mq-filter-stackMaria Matejka
2019-07-10OSPF: Fix handling of NSSA option flagsOndrej Zajicek (work)
Per RFC 3101, N-bit signalling NSSA support should be used only in Hello packets, not in DBDES packets. BIRD since 2.0.4 verifies N-bit in neighbor structure, which is learned from DBDES packets, therefore NSSA-LSAs are not propagated to proper implementations of RFC 3101. This patch fixes that. Both removing the check and removing N-bit from DBDES packet. This will fix compatibility issues with proper implementations, but causes compatibility issues with BIRD 2.0.4.
2019-07-10Merge branch 'master' into mq-filter-stackMaria Matejka
2019-07-09OSPF: Minor fix in graceful restartOndrej Zajicek (work)
Most LSA origination is blocked in ospf_update_topology(), this fix blocks LSA origination from ospf_rt_spf().
2019-07-09OSPF: Update DR when local priority changesOndrej Zajicek (work)
When priority is reconfigured locally, we need to trigger DR election. (recommiting, was reset by the previous commit)
2019-07-09OSPF: Fix handling of external routes on graceful restartOndrej Zajicek (work)
We need to flush learned external LSAs a bit later than other LSAs (after first feed after end of the graceful restart) to avoid flap of external routes.