Ondrej Zajicek (work)
e0835db4f1
BGP: Dynamic BGP
...
Support for dynamically spawning BGP protocols for incoming connections.
Use 'neighbor range' to specify range of valid neighbor addresses, then
incoming connections from these addresses spawn new BGP instances.
2019-04-30 13:32:39 +02:00
Ondrej Filip
df092aa1de
Small type in doc.
2019-04-24 13:49:18 +02:00
Ondrej Zajicek (work)
6ff8119765
OSPFv3: Fix some overlooked cases in IPv4 mode
...
Prefixes with max length (/32) were not handled properly.
Thanks to bauen1 for the bugreport.
2019-04-12 14:11:23 +02:00
Ondrej Zajicek (work)
4a50c8bd03
BGP: Handle corner cases in event ordering
...
When BGP connection is opened, it may happen that rx hook (with remote
OPEN) is called before tx hook (for local OPEN). Therefore, we need to do
internal changes (like setting local_caps) synchronously with OPENSENT
transition and we need to ensure that OPEN is sent before KEEPALIVE.
2019-04-08 16:56:56 +02:00
Ondrej Zajicek (work)
23ee6b1cd6
BGP: Promiscuous ASN mode
...
Allow to specify just 'internal' or 'external' for remote neighbor
instead of specific ASN. In the second case that means BGP peers with
any non-local ASNs are accepted.
2019-04-03 15:54:50 +02:00
Ondrej Zajicek (work)
a22c3e5968
BGP: Separate runtime and config usage of local/remote ip and as fields
2019-04-02 17:22:31 +02:00
Maria Matejka
fe503c7c06
Filter: fixed error-checking bug in !~ operator
2019-03-23 13:32:14 +01:00
Maria Matejka
7078aa63ae
Fixed one warning and one undefined value.
2019-03-22 21:40:35 +01:00
Maria Matejka
2ab680c697
Fixed an undefined symbol bug in CLI introduced by filter refactoring
2019-03-20 16:50:58 +01:00
Ondrej Zajicek (work)
3a22a6e858
Doc: Route attribute cleanups
2019-03-19 19:38:32 +01:00
Ondrej Zajicek (work)
3c3605818f
BGP: Mandatory option for channels
...
Allow to mark channel to be mandatory, and do not allow BGP sessions if
no common AFI/SAFI is established.
2019-03-19 17:44:50 +01:00
Ondrej Zajicek (work)
7e5f769d91
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-18 14:29:12 +01:00
Maria Matejka
8d65add626
Merge branch 'master' into HEAD
2019-03-18 12:54:40 +01:00
Maria Matejka
5d511948cd
Build: Automatic dependency tracking for generated files
2019-03-18 12:32:11 +01:00
Maria Matejka
2f02c25e36
Perf: fixed stupid allocation bug
2019-03-15 16:34:26 +01:00
Maria Matejka
d638c1794a
Gitlab CI: Drop CentOS 6 test build as unsupported.
...
If someone wants to maintain BIRD for CentOS 6,
feel free to send patches.
2019-03-15 16:34:19 +01:00
Ondrej Zajicek (work)
875cc073b0
Nest: Update handling of temporary attributes
...
The temporary atttributes are no longer removed by ea_do_prune(), but
they are undefined by store_tmp_attrs() protocol hooks. This fixes
several bugs where temporary attributes were removed when they should
not or not removed when they should be. The flag EAF_TEMP is no longer
needed and was removed.
Update all protocol make_tmp_attrs() / store_tmp_attrs() hooks to use
helper functions and to handle unset attributes properly.
Also fix some related bugs like improper handling of empty eattr list.
2019-03-14 17:31:40 +01:00
Ondrej Zajicek (work)
9aa77fcceb
OSPF: Improved handling of tmpattrs
...
Keep track of whether OSPF tmpattrs are actually defined for given route
(using flags in rte->pflags). That makes them behave more like real
eattrs so a protocol can define just a subset of them or they can be
undefined by filters.
Do not set ospf_metric2 for other than type 2 external OSPF routes and do
not set ospf_tag for non-external OSPF routes. That also fixes a bug
where internal/inter-area route propagated from one OSPF instance to
another is initiated with infinity ospf_metric2.
Thanks to Yaroslav Dronskii for the bugreport.
2019-03-06 18:28:00 +01:00
Maria Matejka
e1ac6f1e30
Faster filters: documentation on what is happening there
2019-03-06 15:01:39 +01:00
Maria Matejka
a68442e056
Fixed link time optimizer check for FreeBSD
2019-02-27 14:40:05 +01:00
Ondrej Zajicek (work)
b9deced219
NEWS and version update
2019-02-26 18:21:39 +01:00
Maria Matejka
f249d0b84c
Filters: comparison of functions and filters caching
2019-02-26 16:44:24 +01:00
Maria Matejka
0d12aa4836
Build: No link time optimization when debug is enabled
2019-02-26 16:11:40 +01:00
Maria Matejka
2915e711f7
Custom number parser to speed up config parsing
...
The glibc's generic parser is slow due to its versatility. Specialized
parsers for base-10 and base-16 are much faster and we don't use other
bases.
2019-02-25 23:28:36 +01:00
Maria Matejka
99911873a1
Conf: Lexer parses quoted strings in a more descriptive way
2019-02-25 17:22:59 +01:00
Maria Matejka
7c36eb3e8b
Conf: Switch for faster (and slightly bigger) lexer
2019-02-22 12:43:43 +01:00
Maria Matejka
412614c700
Conf: Switch for faster (and slightly bigger) lexer
2019-02-22 12:41:51 +01:00
Ondrej Zajicek (work)
93af78d2d2
Nest: Do not compare rte.flags during rte_update()
...
Route flags are mosty internal state of rtable, they are not significant
to whether a route has changed. With the old code, all routes received as
a part of enhanced route refresh are always re-announced to other peers
due to change in REF_STALE.
2019-02-22 02:16:39 +01:00
Maria Matejka
ad702bae0c
Enabled link time optimization.
2019-02-20 22:30:55 +01:00
Maria Matejka
d1039926f5
Filter: Interpreter merged into the common m4 generator.
...
The config-time partial evaluation of constant expressions in filters is nearby.
2019-02-20 22:30:55 +01:00
Maria Matejka
32793ab685
Filter: Fixed bugs in FI_CALL and FI_SWITCH
2019-02-20 22:30:55 +01:00
Maria Matejka
d348a916f5
Test: Added -d flag to die directly after first error.
2019-02-20 22:30:55 +01:00
Maria Matejka
d4bf74816f
GDB: Added more pretty printers for filters
2019-02-20 22:30:55 +01:00
Maria Matejka
ea4f55e3dc
Filter: More cleanup -- customized structures also in struct f_line_item
2019-02-20 22:30:55 +01:00
Maria Matejka
0b39b1cbb7
Conf: Symbol implementation converted from void pointers to union
...
... and consted some declarations.
2019-02-20 22:30:55 +01:00
Maria Matejka
132529ce89
Filter: merged filter compare functions into common M4 file
2019-02-20 22:30:55 +01:00
Maria Matejka
dd4d409551
Filter: Merged postfixify routine
2019-02-20 22:30:54 +01:00
Maria Matejka
de12cd18fb
Filter: Merged filter line item dumpers into common generated source
2019-02-20 22:30:54 +01:00
Maria Matejka
b256f24145
Filter: auto-generating enum-to-string
2019-02-20 22:30:54 +01:00
Maria Matejka
041608129a
Filter generator: workaround for M4 claiming all the put-around code be on one line
2019-02-20 22:30:54 +01:00
Maria Matejka
5289304519
Filter data manipulation functions separated to their file
2019-02-20 22:30:54 +01:00
Maria Matejka
87bd7cd7b0
Filter: split the constructors to a separate file
2019-02-20 22:30:54 +01:00
Maria Matejka
75206f266f
Conf: Fixed makefiles
2019-02-20 22:30:54 +01:00
Maria Matejka
4f082dfa89
Filter: merged filter instruction constructors, counting line size on instruction construct
2019-02-20 22:30:54 +01:00
Maria Matejka
0a793ebc60
Test: Fixed annoying warnings (and possible obscure bugs).
2019-02-20 22:30:54 +01:00
Maria Matejka
8bdb05edb2
Filters: split the large filter.h file to smaller files.
...
This should be revised, there are still ugly things in the filter API.
2019-02-20 22:30:54 +01:00
Maria Matejka
c1e97169cd
Filter: M4 convertors polished a bit.
2019-02-20 22:30:54 +01:00
Maria Matejka
c0e958e022
Filter + Config: Fix bugs, tests and split symbols by type
2019-02-20 22:30:54 +01:00
Maria Matejka
713658798d
GDB pretty printers: f_inst and f_val.
2019-02-20 22:30:54 +01:00
Maria Matejka
9b46748d5b
Filter: refactoring of instruction constructors
2019-02-20 22:30:54 +01:00