Ondrej Zajicek (work)
0edf0c8cd9
Support for address family constants
...
We already had them defined on BGP level, but they are more general.
2019-11-03 22:25:44 +01:00
Ondrej Zajicek (work)
759b204be3
Lib: Support for 64-bit numbers in bvsnprintf()
...
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-09 17:53:23 +02:00
Ondrej Zajicek (work)
4fa0e472cf
BGP: Use reallocation for capability structure
...
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-21 17:16:08 +02:00
Ondrej Zajicek (work)
524d253853
BGP: Implement extended optional parameters length
...
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-20 19:15:50 +02:00
Ondrej Zajicek (work)
70a4320bdd
RAdv: Allow solicited RAs to be sent as unicast
...
Add option to send solicited router advertisements as unicast directly
to soliciting nodes instead of as multicast to all-nodes group.
2019-08-12 00:43:19 +02:00
Ondrej Zajicek (work)
cec40a7467
Merge remote-tracking branch 'origin/mq-filter-stack'
2019-07-24 15:38:32 +02:00
Ondrej Zajicek (work)
15b0a92294
RPKI: Fix reconfiguration when ssh parameters are undefined
2019-07-23 01:52:18 +02:00
Ondrej Zajicek (work)
d843c27478
Lib: Improve printf() tests
...
Includes patch from Maximilian Eschenbacher
2019-07-18 02:39:35 +02:00
Ondrej Zajicek (work)
39edf4abca
Lib: Fix print of 64-bit router id
...
Mismatched types to printf(). The old code coincidentally worked on amd64
due to its calling conventions.
Thanks to Maximilian Eschenbacher for the bugreport.
2019-07-18 01:57:26 +02:00
Maria Matejka
3782454e8d
Filter: Simpler filter context allocation
2019-07-15 15:46:36 +02:00
Maria Matejka
2ce25ebbef
Libdmalloc macros fixed
2019-07-08 13:00:13 +02:00
Maria Matejka
b40c0f028f
Filter: Pre-evaluation of constant expressions
2019-07-02 10:45:53 +02:00
Maria Matejka
5c864e2cfa
String: bstrtoul macro expanded to bstrtoul10 and 16
2019-06-13 14:27:58 +02:00
Jan Maria Matejka
6479e403ef
Filters: If somebody doesn't like _Thread_local, don't fail for now, just be a little slower.
...
When the parallel execution comes into place, we'll likely enforce this
C11 feature. It's much simpler and also faster than pthread_[sg]etspecific().
2019-05-23 11:27:24 +00: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
713658798d
GDB pretty printers: f_inst and f_val.
2019-02-20 22:30:54 +01:00
Maria Matejka
4c553c5a5b
Filter refactoring: dropped the recursion from the interpreter
...
This is a major change of how the filters are interpreted. If everything
works how it should, it should not affect you unless you are hacking the
filters themselves.
Anyway, this change should make a huge improvement in the filter performance
as previous benchmarks showed that our major problem lies in the
recursion itself.
There are also some changes in nest and protocols, related mostly to
spreading const declarations throughout the whole BIRD and also to
refactored dynamic attribute definitions. The need of these came up
during the whole work and it is too difficult to split out these
not-so-related changes.
2019-02-20 22:30:54 +01:00
Ondrej Zajicek (work)
5a50a98980
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-01-24 22:45:27 +01:00
Ondrej Zajicek (work)
3a2a3c7325
Doc: Rename code documentation files back to Doc
2018-12-14 02:03:42 +01:00
Jan Maria Matejka
0642fb4d45
Hash: mem_hash doesn't modify the memory, declared constant
2018-12-04 14:00:53 +01:00
Jan Maria Matejka
84661bf6da
Changed IPv4 hash function to simple multiplication.
2018-12-04 14:00:28 +01:00
Ondrej Zajicek (work)
863ecfc785
The MRT protocol
...
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-11-20 17:45:35 +01:00
Ondrej Zajicek (work)
df50598f1c
Lib: Force output type in ip4_addr constructor
...
Fixes type issue when u64 is pushed into it.
2018-10-25 12:39:13 +02:00
Ondrej Zajicek (work)
961671c0f5
Lib: Add and use ev_new_init()
2018-10-01 15:55:23 +02:00
Jan Maria Matejka
d4cebc6bbe
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-09-18 14:21:11 +02:00
Jan Maria Matejka
64c5ad58d2
Lib: recursive printf
...
Use like this:
void func(const char *msg, va_list args) {
...
bvsnprintf(buf, len, "file %s, line %d: %V (foo %d, bar %d)", file, line, msg, &args, foo, bar);
...
}
2018-08-22 15:14:06 +02:00
Ondrej Zajicek (work)
318acb0f6c
BSD: Use MSG_DONTROUTE for unicast packets on FreeBSD
...
BSD systems cannot use SO_DONTROUTE, because it does not work properly
with multicast packets (perhaps it tries to find iface based on multicast
group address). But we can use MSG_DONTROUTE sendmsg() flag for unicast
packets. Works on FreeBSD, is ignored on OpenBSD and is broken on NetBSD
(i guess due to integrated routing table and ARP table).
2018-07-28 16:54:06 +02:00
Ondrej Zajicek (work)
586c1800c4
Nest: Neighbor cache cleanups
...
Simplify neighbor cache code, fix several minor bugs, and improve
handling of ONLINK flag.
2018-06-27 16:57:07 +02:00
Maria Matejka
c2fc4c10ac
Doc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder on case-insensitive filesystems
2018-06-26 17:09:12 +02:00
Jan Maria Matejka
906092534b
Macro: Added a bunch of dirty C preprocessor tricks
...
Included are Makefile implicit rules to show the preprocessed source.
When debugging something around this, it may be handy.
2018-05-29 11:53:51 +02:00
Ondrej Zajicek (work)
b24b781117
Filter: Add support for src filter op to access SADR source prefix
...
The patch allows to use 'net.src' to access SADR source prefix
from filters.
Thanks to Toke Hoiland-Jorgensen for the original patch for srclen.
2018-05-16 11:19:29 +02:00
Ondrej Zajicek (work)
be17805c0b
Add support for source-specific IPv6 routes to BIRD core
...
This patch adds support for source-specific IPv6 routes to BIRD core.
This is based on Dean Luga's original patch, with the review comments
addressed. SADR support is added to network address parsing in confbase.Y
and to the kernel protocol on Linux.
Currently there is no way to mix source-specific and non-source-specific
routes (i.e., SADR tables cannot be connected to non-SADR tables).
Thanks to Toke Hoiland-Jorgensen for the original patch.
Minor changes by Ondrej Santiago Zajicek.
2018-02-13 16:39:07 +01:00
Ondrej Zajicek (work)
a82f692e58
Nest: Trivial whitespace cleanup
2018-02-07 17:12:33 +01:00
Ondrej Zajicek (work)
2e507a7457
Use non-fatal asserts even for regular build
2018-01-10 16:17:37 +01:00
Ondrej Zajicek (work)
abd4367f48
Minor cleanup
2017-12-14 21:52:07 +01:00
Ondrej Zajicek (work)
772beb7308
Lib: Minor fix
2017-12-13 15:27:33 +01:00
Ondrej Zajicek (work)
1e11918c8c
Lib: Save/restore state for linpools
...
Also change linpool.current ptr to really point to thr current chunk.
2017-12-12 19:57:52 +01:00
Ondrej Zajicek (work)
ac48e72bf6
Fix some minor issues
2017-12-12 15:57:14 +01:00
Ondrej Zajicek (work)
67a2eb9177
Lib: Check size of nets
2017-12-10 13:18:36 +01:00
Ondrej Zajicek (work)
a32a7b58ce
Lib: Fix macro/keyword collisions
...
Old code breaks with some versions of bison
2017-12-10 13:16:31 +01:00
Ondrej Zajicek (work)
7fc55925be
Several minor fixes
2017-12-10 00:55:34 +01:00
Ondrej Zajicek (work)
46434a3cad
Merge commit '7b2c5f3d2826e3175bf31b1c36056c9efc587a2b' into int-new
2017-12-07 18:35:46 +01:00
Ondrej Zajicek (work)
4ff15a75c5
Merge commit '98bb80a243b58c43453e9be69d19d0350286549c' into int-new
2017-12-07 17:41:09 +01:00
Ondrej Zajicek (work)
a6f79ca57f
Timers: Revert temporary names and remove old timer.h
2017-12-07 13:54:59 +01:00
Ondrej Zajicek (work)
574b232427
Timers: Fix TBF and some last remains
2017-12-07 13:53:42 +01:00
Ondrej Zajicek (work)
6b5cd7c05f
Sysdep: Remove old timer code
2017-12-07 13:53:42 +01:00
Ondrej Zajicek (work)
ee528fbd5d
Timers: Add typecast to unit-converting macros
2017-12-07 13:53:42 +01:00
Ondrej Zajicek (work)
212eda07c4
Timers: Fix tests after timer change
2017-12-07 13:49:27 +01:00
Ondrej Zajicek (work)
49fc021337
Printf: Add support for microsecond times
...
Use '%t' in bsnprintf() for microsecond times (in btime) with variable
sub-second precision.
2017-12-07 13:49:27 +01:00
Ondrej Zajicek (work)
f047271cb9
Timers: Parse and format functions for microsecond times
...
Date/time output (e.g. in logs, show commands) can use %f to specify
subsecond time. By default, millisecond precision is used in output.
2017-12-07 13:49:27 +01:00