0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-24 10:41:54 +00:00
Commit Graph

166 Commits

Author SHA1 Message Date
Ondrej Zajicek (work)
d0e4ba4a31 OSPF: Minor fix in graceful restart
Most LSA origination is blocked in ospf_update_topology(), this fix
blocks LSA origination from ospf_rt_spf().
2019-07-10 18:39:42 +02:00
Ondrej Zajicek (work)
b0eff444e2 OSPF: Fix handling of external routes on graceful restart
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.
2019-07-10 18:38:43 +02:00
Ondrej Zajicek (work)
fc0eaaffed OSPF: Support for graceful restart
Implement OSPFv2 (RFC 3623) and OSPFv3 (RFC 5187) graceful restart,
for both restarting and helper sides. Graceful restart is initiated
by 'graceful down' command.
2019-06-30 22:23:57 +02: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)
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)
b32d557a6e OSPF: Update to new timers
Note that recurrent timers are currently limited to ~1 hour.
2017-12-07 13:53:42 +01:00
Ondrej Zajicek (work)
d3f4f92b0e OSPF: Support of address families in OSPFv3
OSPFv3-AF can handle multiple topologies of diferent address families
(IPv4, IPv6, both unicast and multicast) using separate instances
distinguished by instance ID ranges.
2017-10-10 16:10:02 +02:00
Jan Moskyto Matejka
4e276a8920 Merged multipath and single-path data structures.
Dropped struct mpnh and mpnh_*()
Now struct nexthop exists, nexthop_*(), and also included struct nexthop
into struct rta.

Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is needed
to distinguish between these two cases, RTD_DEVICE is equivalent to
IPA_ZERO(a->nh.gw), RTD_ROUTER is then IPA_NONZERO(a->nh.gw).

From now on, we also explicitely want C99 compatible compiler. We assume
that this 20-year norm should be known almost everywhere.
2016-12-22 13:01:06 +01:00
Ondrej Zajicek (work)
8860e991f6 Merge branch 'master' into int-new 2016-11-08 19:27:58 +01:00
Jan Moskyto Matejka
3e236955c9 Build: switch on -Wextra, get rid of most of the warnings
There are several unresolved -Wmissing-field-initializers on older
versions of GCC than 5.1, all of them false positive.
2016-11-01 14:52:54 +01:00
Jan Moskyto Matejka
7a7ac65682 Merge branch 'master' into int-new-channels 2016-04-08 12:28:33 +02:00
Jan Moskyto Matejka
4bdf1881dc Channelize: rt_notify arg conversion table -> channel 2016-04-07 10:08:23 +02:00
Ondrej Zajicek (work)
39a6b19d6d OSPF: Fix bogus LSA ID collisions between received and originated LSAs
After restart, LSAs locally originated by the previous instance are
received from neighbors. They are installed to LSA db and flushed. If
export of a route triggers origination of a new external LSA before flush
of the received one is complete, the check in ospf_originate_lsa() causes
origination to fail (because en->nf is NULL for the old LSA and non-NULL
for the new LSA). The patch fixes this by updating the en->nf for LSAs
being flushed (as is already done for empty ones). Generally, en->nf
field deserves some better description in the code.

Thanks to Jigar Mehta for analyzing the problem.
2016-03-23 02:21:42 +01:00
Ondrej Zajicek (work)
74c838a870 Move ID allocator to a separate file and use it also in OSPF 2015-12-29 15:42:12 +01:00
Ondrej Zajicek (work)
d44e686e9b Follow-up commit on integrated BIRD
Use net_addr for interface address prefixes, support net_addr in
configuration parser.
2015-11-12 02:03:59 +01:00
Ondrej Zajicek (work)
fe9f1a6ded Initial commit on integrated BIRD
New data types net_addr and variants (in lib/net.h) describing
network addresses (prefix/pxlen). Modifications of FIB structures
to handle these data types and changing everything to use these
data types instead of prefix/pxlen pairs where possible.

The commit is WiP, some protocols are not yet updated (BGP, Kernel),
and the code contains some temporary scaffolding.

Comments are welcome.
2015-11-05 12:48:52 +01:00
Ondrej Zajicek
77edab6409 OSPF: Redesign LSA checksumming
New LSA checksumming code separates generic Fletcher-16 and OSPF-specific
code and avoids back and forth endianity conversions, making it much more
readable and also several times faster.
2015-05-01 14:40:56 +02:00
Ondrej Zajicek
ac9dc669d8 Bugfix in latest OSPF changes. 2014-11-03 20:35:25 +01:00
Ondrej Zajicek
6f8bbaa10b Fininshing integrated OSPF. 2014-11-03 10:42:55 +01:00
Ondrej Zajicek
88a183c6c9 Integrated IP functions. 2014-10-24 11:11:43 +02:00
Ondrej Zajicek
f8fefde318 Refactoring of OSPF messages. 2014-10-24 11:07:38 +02:00
Ondrej Zajicek
742029eb78 Whitespace cleanup in OSPF. 2014-07-19 17:28:38 +02:00
Ondrej Zajicek
a7a7372aa7 Temporary integrated OSPF commit. 2014-07-18 18:24:12 +02:00
Ondrej Zajicek
70945cb645 Temporary integrated OSPF commit. 2014-06-26 11:58:57 +02:00
Ondrej Zajicek
48e5f32db6 Many changes in I/O and OSPF sockets and packet handling.
I/O:
 - BSD: specify src addr on IP sockets by IP_HDRINCL
 - BSD: specify src addr on UDP sockets by IP_SENDSRCADDR
 - Linux: specify src addr on IP/UDP sockets by IP_PKTINFO
 - IPv6: specify src addr on IP/UDP sockets by IPV6_PKTINFO
 - Alternative SKF_BIND flag for binding to IP address
 - Allows IP/UDP sockets without tx_hook, on these
   sockets a packet is discarded when TX queue is full
 - Use consistently SOL_ for socket layer values.

OSPF:
 - Packet src addr is always explicitly set
 - Support for secondary addresses in BSD
 - Dynamic RX/TX buffers
 - Fixes some minor buffer overruns
 - Interface option 'tx length'
 - Names for vlink pseudoifaces (vlinkX)
 - Vlinks use separate socket for TX
 - Vlinks do not use fixed associated iface
 - Fixes TTL for direct unicast packets
 - Fixes DONTROUTE for OSPF sockets
 - Use ifa->ifname instead of ifa->iface->name
2014-02-06 17:46:01 +01:00
Ondrej Zajicek
6a8d3f1c1f BFD work in progress.
Now it compiles and mostly works.
2013-09-16 23:57:40 +02:00
Ondrej Zajicek
f623ab9875 Implements OSPF stub router option (RFC 3137).
Also fixes OSPFv3 routing table calculcation w.r.t.
errata 2078 to RFC 5340.
2013-06-11 12:12:11 +02:00
Ondrej Zajicek
6cadbf325b Change unnamed ptp link description on OSPFv2.
Although it is a slight deviation from the standard, it has no ill
consequences for OSPFv2 and the change fixes a compatibility issue
with some broken implementations.
2012-11-15 14:08:20 +01:00
Ondrej Zajicek
a55a90faec Peer address of stub iface should be announced in OSPF Router LSA. 2012-11-10 14:54:35 +01:00
Ondrej Zajicek
dd4da6f640 Fixes another bug in OSPFv3 vlinks. 2012-10-31 17:14:35 +01:00
Ondrej Zajicek
e4404cef0b Fixes several bugs related to OSPFv3 vlinks. 2012-10-29 20:29:31 +01:00
Ondrej Zajicek
bbcfd5a048 Fixes default route in OSPF multiple area setting. 2012-07-26 13:59:50 +02:00
Ondrej Zajicek
d494df63ac Some minor fixes. 2012-04-27 00:04:51 +02:00
Ondrej Zajicek
74add5df17 Fixes seqnum generation.
Thanks Mohammad Amin Shoaie for notification.
2011-10-27 14:52:28 +02:00
Ondrej Zajicek
35c875f0d1 Fixes some error messages and the NSSA gw lookup.
Thanks to Alexander V. Chernikov for the patch.
2011-10-01 09:57:49 +02:00
Ondrej Zajicek
2918e61046 Fixes for OSPF NSSA handling. 2011-09-03 21:31:26 +02:00
Ondrej Zajicek
ed317862c2 OSPF NSSA support, inter-area LSA translation. 2011-08-08 01:45:31 +02:00
Ondrej Zajicek
4160a9dd94 OSPF NSSA translator election. 2011-07-22 20:00:24 +02:00
Ondrej Zajicek
41b612c31b OSPF NSSA support, part one. 2011-07-20 23:48:06 +02:00
Ondrej Zajicek
52a43ae3b7 Minor changes in addresses.
Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not
show broadcast addr in show interfaces. Nobody cares for that.
2011-03-28 22:46:18 +02:00
Ondrej Zajicek
8e48831a97 Vastly improved OSPF reconfiguration.
Now it can handle a change in iface pattern structure.
It can add, remove and reconfigure interfaces, vlinks and areas.
2011-03-17 15:53:36 +01:00
Ondrej Zajicek
e7b4948cbd A simplification of the next-hop calculation.
Thanks to Joakim Tjernlund for the idea.
2010-12-28 01:43:07 +01:00
Ondrej Zajicek
919f5411c4 Implements Point-to-MultiPoint interface type for OSPF. 2010-12-24 18:08:07 +01:00
Ondrej Zajicek
f0160f0e06 Fixes a minor memory wasting. 2010-12-23 10:25:22 +01:00
Ondrej Zajicek
57c574d82a Multipath support for OSPF 2010-12-07 23:35:39 +01:00
Ondrej Zajicek
d9e7e1b13d Adds support for iface link detection to OSPF. 2010-11-13 14:19:23 +01:00
Ondrej Zajicek
5cdf264f93 Fixes a bug related to implicit backbone on ABR. 2010-11-10 16:43:11 +01:00
Ondrej Zajicek
d395fe4855 Fixes bug in OSPF ext-LSA origination. 2010-07-31 11:37:30 +02:00
Ondrej Filip
4461b89791 Minor bug that appears only in debug mode. 2010-06-02 12:11:20 +02:00