summaryrefslogtreecommitdiff
path: root/proto/bfd/bfd.c
AgeCommit message (Collapse)Author
2022-09-08Table access is now locked.Maria Matejka
2022-07-18Merge commit '94eb0858' into thread-nextMaria Matejka
2022-05-30Merge commit '17f91f9e6e70f7e3f29502e854823c0d48571eaa' into haugesundMaria Matejka
2022-05-30Merge commit '692055e3df6cc9f0d428d3b0dd8cdd8e825eb6f4' into haugesund-to-2.0Maria Matejka
2022-05-04Explicit definition structures of route attributesMaria Matejka
Changes in internal API: * Every route attribute must be defined as struct ea_class somewhere. * Registration of route attributes known at startup must be done by ea_register_init() from protocol build functions. * Every attribute has now its symbol registered in a global symbol table defined as SYM_ATTRIBUTE * All attribute ID's are dynamically allocated. * Attribute value custom formatting hook is defined in the ea_class. * Attribute names are the same for display and filters, always prefixed by protocol name. Also added some unit testing code for filters with route attributes.
2022-04-07BFD: Add 'strict bind' optionOndrej Zajicek (work)
Add BFD protocol option 'strict bind' to use separate listening socket for each BFD interface bound to its address instead of using shared listening sockets.
2022-04-06Protocols have their own explicit init routinesMaria Matejka
2022-04-06Slab allocator can free the blocks without knowing the parent structureMaria Matejka
2021-11-22Converting the former BFD loop to a universal IO loop and protocol loop.Maria Matejka
There is a simple universal IO loop, taking care of events, timers and sockets. Primarily, one instance of a protocol should use exactly one IO loop to do all its work, as is now done in BFD. Contrary to previous versions, the loop is now launched and cleaned by the nest/proto.c code, allowing for a protocol to just request its own loop by setting the loop's lock order in config higher than the_bird. It is not supported nor checked if any protocol changed the requested lock order in reconfigure. No protocol should do it at all.
2021-01-10BFD: Dispatch sessions also by interface indexOndrej Zajicek (work)
Direct BFD sessions needs to be dispatched not only by IP addresses, but also by interfaces, in order to avoid collisions between neighbors with the same IPv6 link-local addresses. Extend BFD session hash_ip key by interface index to handle that. Use 0 for multihop sessions. Thanks to Sebastian Hahn for the original patch.
2020-11-24Some minor sl_allocz() cleanupsOndrej Zajicek (work)
2020-11-12BFD: Fix superfluous reconfiguration of sessionsOndrej Zajicek (work)
2020-11-08BFD: Allow per-request session optionsOndrej Zajicek (work)
BFD session options are configured per interface in BFD protocol. This patch allows to specify them also per-request in protocols requesting sessions (currently limited to BGP).
2020-06-28Show info from multiple protocols when protocol is not specifiedOndrej Zajicek (work)
Most commands like 'show ospf neighbors' fail when protocol is not specified and there are multiple instances of given protocol type. This is annoying in BIRD 2, as many protocols have IPv4 and IPv6 instances. The patch changes that by showing output from all protocol instances of appropriate type. Note that the patch also removes terminating cli_msg() call from these commands and moves it to the common iterating code.
2020-01-28BFD: Option to specify which class of BFD sessions are acceptedOndrej Zajicek (work)
Allows to configure IPv4/IPv6-only or direct/multihop-only BFD protocol instances.
2019-09-30BFD: Fix reconfiguration of neighborsOndrej Zajicek (work)
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-07-25BFD: Fix formatting of 'show bfd sessions'Ondrej Zajicek (work)
The formatting was broken due to longer date in 'since' column.
2019-07-24Nest: VRF of protocol can be explicitly specified as 'default'Ondrej Zajicek (work)
Protocol can have specified VRF, in such case it is restricted to a set of ifaces associated with the VRF, otherwise it can use all interfaces. The patch allows to specify VRF as 'default', in which case it is restricted to a set of iface not associated with any VRF.
2019-07-17BFD: Support for VRFsOndrej Zajicek (work)
Allow multiple BFD instances in separate VRFs, dispatch BFD requests according to VRFs. Thanks to Alexander Zubkov for notice and patches.
2018-06-27Nest: Neighbor cache cleanupsOndrej Zajicek (work)
Simplify neighbor cache code, fix several minor bugs, and improve handling of ONLINK flag.
2018-05-29Protocol: Introducing an enum protocol_classJan Maria Matejka
This supersedes the EAP_* constants.
2017-12-07Timers: Revert temporary names and remove old timer.hOndrej Zajicek (work)
2017-12-07Timers: Show sub-second times in some protocol outputsOndrej Zajicek (work)
2017-12-07Timers: Parse and format functions for microsecond timesOndrej Zajicek (work)
Date/time output (e.g. in logs, show commands) can use %f to specify subsecond time. By default, millisecond precision is used in output.
2016-11-08Merge branch 'master' into int-newOndrej Zajicek (work)
2016-11-02BFD: AuthenticationOndrej Zajicek (work)
Implement BFD authentication (part of RFC 5880). Supports plaintext passwords and cryptographic MD5 / SHA-1 authentication. Based on former commit from Pavel Tvrdik
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-05-17IO: Minor changes in socket AF handingOndrej Zajicek (work)
AF can be specified implicitly by saddr or daddr, flags SKF_V4ONLY and SKF_V6ONLY are to be removed.
2016-04-08Merge branch 'master' into int-new-channelsJan Moskyto Matejka
2016-03-23Birdlib: Do cleanups after remove/freeOndrej Zajicek (work)
To avoid byzantine behavior in case of some errors, linked lists are cleared after rem_node() and resource headers are cleared after rfree().
2016-02-01Channels - explicit links between protocols and tablesOndrej Zajicek (work)
The patch adds support for channels, structures connecting protocols and tables and handling most interactions between them. The documentation is missing yet.
2016-01-11BFD: split of v4/v6 socketsJan Moskyto Matejka
2015-12-24Follow-up work on integrationOndrej Zajicek (work)
2015-07-19BFD: Fixes crash after socket errorOndrej Zajicek
Thanks to Thomas King for the bugreport.
2015-02-21Store protocol config size inside protocol structureOndrej Zajicek
Make proto_config_new() use this info instead of supplied size. Thanks to Alexander V. Chernikov for the patch.
2014-10-02Fixes some warnings.Ondrej Zajicek
2014-04-02Fixes nasty bug in BFD.Ondrej Zajicek
When a BFD session is removed while being scheduled for notification, the session stays in notify list and is removed twice, which leads to a strange crash after a while.
2014-02-06Merge branch 'add-path'Ondrej Zajicek
2013-12-02Fixes problem with source address selection in BGP and BFD.Ondrej Zajicek
2013-12-01Finishes add-path.Ondrej Zajicek
Fixes some bugs and uses generic hash implementation.
2013-11-25Fixes a reply code.Ondrej Zajicek
2013-11-19BFD protocol, ready for release.Ondrej Zajicek
Supports OSPF and BGP and also statically configured sessions.
2013-10-05Fixes some BFD bugs and makes logging thread-safe.Ondrej Zajicek
2013-09-16BFD work in progress.Ondrej Zajicek
Now it compiles and mostly works.
2013-09-10Initial BFD commit, work in progress.Ondrej Zajicek