0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-19 20:05:21 +00:00
Commit Graph

3237 Commits

Author SHA1 Message Date
Ondrej Zajicek (work)
e092341df3 Nest: Handle unresolvable routes as invalid
Handle unresolvable routes (recursive routes that cannot be resolved) as
invalid, i.e. deprioritize tham and do not allow them for propagation.
Such route now shows as 'unresolvable' instead of 'unreachable'.
2019-05-10 15:02:21 +02:00
Ondrej Zajicek (work)
3cd20658e2 OSPF: Do not use igp_metric as default for OSPF metric 2019-04-21 13:12:07 +02:00
Ondrej Zajicek (work)
9b73157ea1 BGP: Handle case where capabilites are not used
If peer does not announce capabilities at all, or when we have
capabilities disabled, handle that as implicit IPv4 unicast.
2019-03-15 20:57:26 +01:00
Ondrej Zajicek (work)
37dbd3fc7a Static: Allow to set multiple static route with different metric
Change the usage of preference to distinguish multiple static routes to a
separate metric attribute, Reuse igp_metric attribute for that purpose.

The static route metric is specified with 'metric' keyword immediately
after the network (to signify it is a part of key):

  route 10.10.0.0/24 metric 10 via 192.168.1.2;
2019-03-14 14:44:35 +01:00
Ondrej Zajicek (work)
fc50b2196b Nest: Fix handling of ECMP next hop flags
Flag field was not copied when next hop was cached.
2019-02-17 23:03:41 +01:00
Ondrej Zajicek (work)
ed97d77073 OSPF: Reset LSAs during area type change
When area is reconfigured to a different type, we need to flush LSAs as
they may not be valid (e.g. NSSA-LSA for non-NSSA area). Also, when we
have have just one OSPF area and that changes type, we could restart OSPF
as there is no state to keep anyway. That solves issue with different
handling of external routes exported to OSPF based of main area type.
2019-02-17 23:02:06 +01:00
Ondrej Zajicek (work)
cb8ea2d907 OSPF: Basic support for DN-bit handling (RFC 4576)
External LSAs originated by OSPF routers with VPN-PE behavior enabled are
marked by DN flag and they are ignored by other OSPF routers with VPN-PE
enabled.
2019-02-17 23:02:05 +01:00
Ondrej Zajicek (work)
85646cd46a Nest: Report preferred counters also when 'import keep filtered' is enabled
Thanks to Michal Nowak for reporting the issue.
2019-02-17 23:02:05 +01:00
Ondrej Zajicek (work)
a30b9d2800 OSPF: Opaque LSAs and Router Information LSA
Add support for OSPFv2 Opaque LSAs (RFC 5250) and for Router Information
LSA (RFC 7770). The second part is here mainly for testing opaque LSAs.
2019-02-17 23:02:05 +01:00
Ondrej Zajicek (work)
45426652a2 OSPF: Fix wrong LSA collisions detection
In some circumstances (old LSA flushed but not acknowledged and not
removed) origination of a new LSA may wrongly triggers LSA collision
code. The patch fixes that.

Thanks to Asbjorn Mikkelsen for the bugreport and @mdelagueronniere
for the original patch.
2019-02-17 23:02:05 +01:00
Ondrej Zajicek (work)
210dbc16c2 BGP: implement Adj-RIB-In
The patch implements optional internal import table to a channel and
hooks it to BGP so it can be used as Adj-RIB-In. When enabled, all
received (pre-filtered) routes are stored there and import filters can
be re-evaluated without explicit route refresh. An import table can be
examined using e.g. 'show route import table bgp1.ipv4'.
2019-02-17 23:02:05 +01:00
Ondrej Zajicek (work)
1e5dcb37ac OSPF: Send direct acknowledgements as unicast
Direct acknowledgements should be send as unicast to a corresponding
neighbor. Only delayed acks should be send as multicast to all/designated
routers.
2019-02-03 21:31:53 +01:00
Ondrej Zajicek (work)
99b2d10be0 OSPF: Reject duplicate DBDES packets after dead interval
Master may free last DBDES packet immediately. Slave must wait dead
interval before freeing last DBDES packet and then reject duplicate
DBDES packets with SeqNumberMismatch.
2019-02-03 21:31:15 +01:00
Ondrej Zajicek (work)
bf402c61e6 OSPF: DD seqnum should be initialized only for first attempts
After SeqNumberMismatch/BadLSReq, we should continue with the old
seqnum++. The old code tries to do that by n->adj, but it was set
nowhere.
2019-02-03 21:30:10 +01:00
Ondrej Zajicek (work)
2bbd72863f OSPF: Reject DBDES packets with non-matching MTU
As it is specified in RFC 2328. The old code just provided warning.
2019-02-03 21:27:02 +01:00
Ondrej Zajicek (work)
ccee5a863e BGP: Cleanup channels when going down
When going up, uncleaned old channel state may trigger unexpected
conditions crashing bird.
2019-01-28 15:23:54 +01:00
Maria Matejka
2ba6a02395 Nest: fixed corner cases on deleting from fib 2019-01-17 10:40:45 +01:00
Maria Matejka
eb04b725ef Redblack: fixed special deleting cases and missing parent pointer initialization 2019-01-17 10:40:45 +01:00
Ondrej Zajicek (work)
a80055393e Nest: Add preferred counter 2019-01-16 15:16:51 +01:00
Ondrej Zajicek (work)
c6faca916a OSPF: Add LSA retransmission counter 2018-12-21 14:26:04 +01:00
Jan Maria Matejka
c217fe593a Merge branch 'maarten' into mq-ordered 2018-12-12 13:10:10 +01:00
Jan Maria Matejka
e3e425303a Redblack test fixed to use uint as it was the original intent. 2018-12-12 13:03:13 +01:00
Jan Maria Matejka
4ff9aeb786 Nest: Get hash chain is not deprecated, it is still useful 2018-12-03 14:24:57 +01:00
Jan Maria Matejka
d8bd7b599b The other direction of searching and traversing 2018-12-03 14:24:09 +01:00
Jan Maria Matejka
db1577e902 Redblack: Added macros for partial tree traversal and even more unit tests 2018-12-03 13:55:35 +01:00
Jan Maria Matejka
4067ad1aa4 Nest: Using the brand-new redblack tree to provide an ordered route listing 2018-12-03 10:31:59 +01:00
Jan Maria Matejka
a29de335c7 Red Black Tree: A structure to keep data sorted
This is a quite straightforward implementation of RBT together with
a unit test. It is assumed that all the keys are unique.

Capabilities: find, insert, delete, first, next.
2018-12-03 10:06:59 +01:00
Jan Maria Matejka
a943d1da41 Add a deprecated option 2018-12-03 10:05:40 +01:00
Ondrej Zajicek (work)
1a3aba5677 BGP: Add I/C/E flag for BGP routes to show route output
The flag indicates whether the route is internal (IBGP),
intra-confederation, or external (EBGP).
2018-12-01 18:04:11 +01:00
Ondrej Zajicek (work)
8972a08fab BGP: Statistics
Count message rx/tx, enqueued buckets/prefixes and recoverable
error conditions. Show them in 'show protocol all'
2018-11-30 22:10:14 +01:00
Ondrej Zajicek (work)
80a4c23b1e Unix: Implement log file size limit / log rotation
Allow to specify log file size limit and ensure that log file is rotated
to secondary name to avoid exceeding of log size limit.

The patch also fixes a bug related to keeping old fds open after
reconfiguration and using old fds after 'configure undo'.
2018-11-24 01:52:13 +01:00
Ondrej Zajicek (work)
9861dba523 Static: Allow multiple routes to the same network with different preference 2018-11-23 00:18:11 +01:00
Jan Maria Matejka
a4e825411a No more warnings ...
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-11-15 12:42:50 +01:00
Ondrej Zajicek (work)
8777f29783 Nest: Use 'distance' instead of 'preference' 2018-11-13 14:31:54 +01:00
Ondrej Zajicek (work)
bf58ebc0bb Nest: Update default preference based on Cisco values 2018-11-13 14:18:11 +01:00
Ondrej Zajicek (work)
668be0ffb3 Nest: Change preference to lower-is-better 2018-10-24 16:24:27 +02:00
Ondrej Zajicek (work)
5a96090a5b Nest: Statistics
Adds command 'show table statistics' to show statistics related
to routing tables.
2018-10-24 16:18:36 +02:00
Ondrej Zajicek (work)
60dda81b82 OSPF: Statistics
Count packet rx/tx and error conditions, per iface and globally.
Show them in 'show ospf' / 'show ospf interface'.

Also removee one level of indentation for areas in 'show ospf' command.
2018-10-24 16:15:28 +02:00
Ondrej Filip
4d3d34f599 Date added. 2018-03-22 13:30:10 +01:00
Ondrej Filip
966602602a Merge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-new 2018-03-22 13:25:58 +01:00
Ondrej Zajicek (work)
4841804fff NEWS and version update 2018-03-21 16:33:08 +01:00
Ondrej Zajicek (work)
a177e4dd04 Doc: Minor update 2018-03-21 16:33:08 +01:00
Ondrej Zajicek (work)
3b522a1e5c Doc: Redesign default config file
The old one does not work with 2.0.x.
2018-03-20 19:28:26 +01:00
Ondrej Zajicek (work)
89ac4dd3c4 Merge remote-tracking branch 'birdlab-tmp/int-new' into int-new 2018-03-19 13:29:39 +01:00
Ondrej Zajicek (work)
bcb4af81fc Nest: Fix table reconfiguration when nettype changes
Thanks to Toke Hoiland-Jorgensen for the bugreport.
2018-03-18 13:48:47 +01:00
Ondrej Zajicek (work)
364d5823ea Nest: SADR support for Direct 2018-03-18 02:56:51 +01:00
Ondrej Zajicek (work)
159d619caf Doc: SADR documentation 2018-03-17 22:25:06 +01:00
Ondrej Zajicek (work)
7a8ae228f9 Doc: Update BGP documentation
Thanks to Joshua McQuistan for the bugreport.
2018-03-17 17:14:38 +01:00
Jan Maria Matejka
8a871e890a Merge branch 'master' into int-new 2018-03-14 12:57:16 +01:00
Jan Maria Matejka
e8bc64e308 Filter: make bgpmask literals real constructors
The bgpmask literals can include expressions. This is OK but they have
to be interpreted as soon as the code is run, not in the time the code
is used as value.

This led to strange behavior like rewriting bgpmasks when they shan't
be rewritten:

	function mask_generator(int as)
	{
		return [= * as * =];
	}

	function another()
	bgpmask m1;
	bgpmask m2;
	{
		m1 = mask_generator(10);
		m2 = mask_generator(20);
		if (m1 == m2) {
			print("strange"); # this would happen
		}
	}

Moreover, sending this to CLI would cause stack overflow and knock down the
whole BIRD, as soon as there is at least one route to execute the given
filter on.

	show route filter bgpmask mmm; bgppath ppp; { ppp = +empty+; mmm = [= (ppp ~ mmm) =]; print(mmm); accept; }

The magic match operator (~) inside the bgpmask literal would try to
resolve mmm, which points to the same bgpmask so it would resolve
itself, call the magic match operator and vice versa.

After this patch, the bgpmask literal will get resolved as soon as it's
assigned to mmm and it also will return a type error as bool is not
convertible to ASN in BIRD.
2018-03-14 11:34:29 +01:00