Maria Matejka
0c0253a3a9
Preexport: No route modification, no linpool needed
2020-04-30 16:16:35 +02:00
Maria Matejka
1967fe4fa6
Route: moved rte_src pointer from rta to rte
...
It is an auxiliary key in the routing table, not a route attribute.
2020-04-30 16:15:59 +02:00
Maria Matejka
52b6e35251
Route export: Common export function.
...
Also:
* Feeding request by net.
* Passing only net_addr in export structure.
* Cleanup of krt_replace_rte() call.
2020-04-30 16:15:59 +02:00
Maria Matejka
e64fd37675
Route export: rejected by filter bitmap
...
If a route has been rejected by filter, store that information
to avoid repeated export filter runs on rejected routes.
2020-04-30 16:15:12 +02:00
Maria Matejka
eb5298f3e1
Internal API change: passing all the rt_notify() data as a single structure.
2020-04-30 16:14:26 +02:00
Maria Matejka
1eae8266e0
Dropping the tmp_attrs mechanism as obsolete
...
There are no protocol-specific fields in rte now.
2020-04-30 16:14:26 +02:00
Maria Matejka
93c5a314da
Dropping the RTS_DUMMY temporary route storage.
...
Kernel route sync is done by other ways now and this code is not used
currently.
2020-04-30 16:14:26 +02:00
Maria Matejka
adebcd5e0a
Babel: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
083e0dbb36
OSPF: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
0bb56d9b1b
RIP: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
6942e20d97
BGP: Moved the suppressed and stale flags to pflags
2020-04-30 16:14:26 +02:00
Maria Matejka
1fd32f9562
Preference moved to RTA and set explicitly in protocols
2020-04-30 16:14:26 +02:00
Maria Matejka
86dbe0980c
Route import API redefinition.
...
Hidden rte_get_temp() into rte_update().
Split rte_update() / rte_withdraw().
2020-04-30 16:14:25 +02:00
Maria Matejka
684caacd4f
Nest: Added const to ea_show just to declare that this shouldn't really change anything
2020-04-28 16:25:14 +02:00
Maria Matejka
1115be1264
OSPF: Zero-initialization of a temporary neighbor
2020-04-28 16:25:14 +02:00
Maria Matejka
21532cdb14
RPKI: fixed rare va_list leak
2020-04-28 16:25:14 +02:00
Maria Matejka
144ee6cea5
OSPF: Adding a note about a static analyzer result.
2020-04-28 16:25:14 +02:00
Maria Matejka
3c1ac36126
OSPF: variable-length array of size 0 replaced by alloca()'d pointer
...
NULL pointer is safer than a random pointer onto stack if this function
gets changed and eventually broken.
2020-04-28 16:25:14 +02:00
Maria Matejka
d607205486
Not calling memcpy with n=0.
2020-04-28 16:21:06 +02:00
Nasato Goto
a6548d5b5b
BGP: Fix handling of 16bit-only ASN translation
...
The bug generated invalid AGGREGATOR attribute during translation of
32bit ASN to 16bit-only BGP peer. The patch fixes that.
2020-04-15 03:46:53 +02:00
Maria Matejka
fd9f0c0640
Configuration strings are constant.
...
This is merely a const propagation. There was no problem in there.
2020-04-09 15:37:14 +02:00
Ondrej Zajicek (work)
d516c68ad8
RIP: Improvements to demand circuit mode
...
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-14 17:04:49 +01:00
Maria Matejka
dc042d87cb
Perf: changed route update pattern to be more like common protocols
2020-03-12 09:26:05 +01:00
Ondrej Zajicek (work)
78e4a123bb
BGP: Handle flowspec rules without dst part
...
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-03-03 17:45:16 +01:00
Ondrej Zajicek (work)
757cab18d6
BGP: Support for MD5SIG together with remote range
...
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-27 17:29:17 +01:00
Ondrej Zajicek (work)
22c3cf955d
RIP: Demand circuit support (RFC 2091)
2020-02-21 02:35:50 +01:00
Ondrej Zajicek (work)
3343088a71
RIP: Fix crash when interface is removed
...
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-14 22:43:27 +01:00
Maria Matejka
027a3e66f7
RPKI: Allow build without libSSH
2020-02-04 10:15:35 +01:00
Ondrej Zajicek (work)
7f9adafc10
BFD: Option to specify which class of BFD sessions are accepted
...
Allows to configure IPv4/IPv6-only or direct/multihop-only BFD protocol
instances.
2020-01-28 18:07:25 +01:00
Ondrej Zajicek (work)
9f2670277c
OSPF: Fix bad initialization of tx_hdrlen field
...
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.
2020-01-09 03:02:15 +01:00
Ondrej Zajicek (work)
21d09632a5
BGP: Add some statistics
...
Add some statistic counters to BGP consistent with BGP MIB (RFC 4273),
including persistent 'FSM established transitions'.
2019-12-03 18:05:41 +01:00
Ondrej Zajicek (work)
0f88200247
BGP: Fix processing of IPv6 Flowspec
...
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-18 17:56:51 +01:00
Ondrej Zajicek (work)
0b228fca04
BGP: Add option to enforce first AS in AS_PATH
...
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-10 02:06:07 +01:00
Ondrej Zajicek (work)
a52476c9be
BGP: Add option to reject AS_SETs
...
There is a pending draft to make them obsolete
2019-11-04 22:09:35 +01:00
Ondrej Zajicek (work)
be7c1aef42
BGP: RFC 8654 got released
2019-10-26 01:32:24 +02:00
Ondrej Zajicek (work)
ec331acf48
BGP: Fix handling of transitive extended communities
...
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-24 17:50:19 +02:00
Ondrej Zajicek (work)
4e23b49969
RPKI: Fix handling of IPv6 cache addresses
...
The old code used just sizeof(struct sockaddr) bytes of IP address.
2019-10-19 03:39:07 +02:00
Ondrej Zajicek (work)
6c9cda6f92
BGP: Fix reconfiguration with import table
...
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-10 23:33:40 +02:00
Ondrej Zajicek (work)
09ee846d92
BGP: AIGP metric support (RFC 7311)
2019-10-09 17:53:23 +02: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
Maria Matejka
6dda6931d1
Perf: allow testing with cached route attributes.
2019-10-09 17:47:14 +02:00
Ondrej Zajicek (work)
4821251ebb
BFD: Fix reconfiguration of neighbors
...
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-30 19:10:14 +02:00
Ondrej Zajicek (work)
eb1e43a9af
BGP: Fix setup with multiple dynamic BGP ranges
...
Based on a patch from Liam Nattrass, thanks.
2019-09-17 14:45:14 +02:00
Ondrej Zajicek (work)
1127887a8b
BGP: Fix handling of bgp_aggregator atttribute
...
The attribute should not be modifiable by filters as we do not
support its type.
2019-09-09 13:17:30 +02:00
Ondrej Zajicek (work)
8388f5a7e1
BGP: Fix bugs in handling of shutdown messages
...
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-09-09 03:13:35 +02:00
Ondrej Zajicek (work)
56d8b1e7f6
OSPF: Fix 'show ospf lsadb' cmd without proto arg
...
It crashed when used without protocol argument.
Thanks to Alexander for the bugreport.
2019-08-29 20:58:16 +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)
b7d7599ce3
BGP: implement Adj-RIB-Out
...
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-14 06:02:33 +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