summaryrefslogtreecommitdiff
path: root/proto/ospf/topology.c
AgeCommit message (Collapse)Author
2018-12-17OSPF: Fix wrong LSA collisions detectionOndrej Zajicek (work)
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.
2018-07-19OSPF: Fix crash during route removalOndrej Zajicek (work)
The bug was introduced by an earler patch which removed additional eattr argument to rt_notify hook.
2018-05-30Nest: Removing separate tmpa from route propagationJan Maria Matejka
This is a fundamental change of an original (1999) concept of route processing inside BIRD. During import/export, there was a temporary ea_list created which was to be used instead of the another one inside the route itself. This led to some confusion, quirks, and strange filter code that handled extended route attributes. Dropping it now. The protocol interface has changed in an uniform way -- the `struct ea_list *attrs` argument has been removed from store_tmp_attrs(), import_control(), rt_notify() and get_route_info().
2018-05-24Do not initialize route metrics in import_control hookOndrej Zajicek (work)
During route export, the receiving protocol often initialized route metrics to default value in its import_control hook before export filter was executed. This is inconsistent with the expectation that an export filter would process the same route as one in the routing table and it breaks setting these metrics before (e.g. for static routes directly in static protocol). The patch removes the initialization of route metrics in import_control hook, the default values are already handled in rt_notify hook called after export filters. The patch also changed the behavior of OSPF to keep metrics when a route is reannounced between OSPF instances (to be consistent with other protocols) and the behavior when both ospf_metric1 and ospf_metric2 are specified (to have more expected behavior).
2017-12-07OSPF: Update to new timersOndrej Zajicek (work)
Note that recurrent timers are currently limited to ~1 hour.
2017-10-10OSPF: Support of address families in OSPFv3Ondrej Zajicek (work)
OSPFv3-AF can handle multiple topologies of diferent address families (IPv4, IPv6, both unicast and multicast) using separate instances distinguished by instance ID ranges.
2016-12-22Merged multipath and single-path data structures.Jan Moskyto Matejka
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-11-08Merge branch 'master' into int-newOndrej Zajicek (work)
2016-11-01Build: switch on -Wextra, get rid of most of the warningsJan Moskyto Matejka
There are several unresolved -Wmissing-field-initializers on older versions of GCC than 5.1, all of them false positive.
2016-04-08Merge branch 'master' into int-new-channelsJan Moskyto Matejka
2016-04-07Channelize: rt_notify arg conversion table -> channelJan Moskyto Matejka
2016-03-23OSPF: Fix bogus LSA ID collisions between received and originated LSAsOndrej Zajicek (work)
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.
2015-12-29Move ID allocator to a separate file and use it also in OSPFOndrej Zajicek (work)
2015-11-12Follow-up commit on integrated BIRDOndrej Zajicek (work)
Use net_addr for interface address prefixes, support net_addr in configuration parser.
2015-11-05Initial commit on integrated BIRDOndrej Zajicek (work)
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-05-01OSPF: Redesign LSA checksummingOndrej Zajicek
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.
2014-11-03Bugfix in latest OSPF changes.Ondrej Zajicek
2014-11-03Fininshing integrated OSPF.Ondrej Zajicek
2014-10-24Integrated IP functions.Ondrej Zajicek
2014-10-24Refactoring of OSPF messages.Ondrej Zajicek
2014-07-19Whitespace cleanup in OSPF.Ondrej Zajicek
2014-07-18Temporary integrated OSPF commit.Ondrej Zajicek
2014-06-26Temporary integrated OSPF commit.Ondrej Zajicek
2014-02-06Many changes in I/O and OSPF sockets and packet handling.Ondrej Zajicek
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
2013-09-16BFD work in progress.Ondrej Zajicek
Now it compiles and mostly works.
2013-06-11Implements OSPF stub router option (RFC 3137).Ondrej Zajicek
Also fixes OSPFv3 routing table calculcation w.r.t. errata 2078 to RFC 5340.
2012-11-15Change unnamed ptp link description on OSPFv2.Ondrej Zajicek
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-10Peer address of stub iface should be announced in OSPF Router LSA.Ondrej Zajicek
2012-10-31Fixes another bug in OSPFv3 vlinks.Ondrej Zajicek
2012-10-29Fixes several bugs related to OSPFv3 vlinks.Ondrej Zajicek
2012-07-26Fixes default route in OSPF multiple area setting.Ondrej Zajicek
2012-04-27Some minor fixes.Ondrej Zajicek
2011-10-27Fixes seqnum generation.Ondrej Zajicek
Thanks Mohammad Amin Shoaie for notification.
2011-10-01Fixes some error messages and the NSSA gw lookup.Ondrej Zajicek
Thanks to Alexander V. Chernikov for the patch.
2011-09-03Fixes for OSPF NSSA handling.Ondrej Zajicek
2011-08-08OSPF NSSA support, inter-area LSA translation.Ondrej Zajicek
2011-07-22OSPF NSSA translator election.Ondrej Zajicek
2011-07-20OSPF NSSA support, part one.Ondrej Zajicek
2011-03-28Minor changes in addresses.Ondrej Zajicek
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-17Vastly improved OSPF reconfiguration.Ondrej Zajicek
Now it can handle a change in iface pattern structure. It can add, remove and reconfigure interfaces, vlinks and areas.
2010-12-28A simplification of the next-hop calculation.Ondrej Zajicek
Thanks to Joakim Tjernlund for the idea.
2010-12-24Implements Point-to-MultiPoint interface type for OSPF.Ondrej Zajicek
2010-12-23Fixes a minor memory wasting.Ondrej Zajicek
2010-12-07Multipath support for OSPFOndrej Zajicek
2010-11-13Adds support for iface link detection to OSPF.Ondrej Zajicek
2010-11-10Fixes a bug related to implicit backbone on ABR.Ondrej Zajicek
2010-07-31Fixes bug in OSPF ext-LSA origination.Ondrej Zajicek
2010-06-02Minor bug that appears only in debug mode.Ondrej Filip
2010-05-23Check for OSPF seqnum wraparound and handle it.Ondrej Zajicek
2010-05-16Do not originate summary or external LSA if it already here and not changed.Ondrej Zajicek