summaryrefslogtreecommitdiff
path: root/nest/iface.c
AgeCommit message (Collapse)Author
2017-12-16Minor fixes for debug modeOndrej Zajicek (work)
2017-12-10Several minor fixesOndrej Zajicek (work)
2017-12-08Nest: Minor formatting changesOndrej Zajicek (work)
2017-12-07Merge commit '7b2c5f3d2826e3175bf31b1c36056c9efc587a2b' into int-newOndrej Zajicek (work)
2017-12-07Merge commit '98bb80a243b58c43453e9be69d19d0350286549c' into int-newOndrej Zajicek (work)
2017-12-07Nest: Maintain separate IPv4, IPv6 and LLv6 preferred addressesOndrej Zajicek (work)
Also redesign preferred address selection and update protocols to use appropriate preferred address. Based on a previous work by Jan Maria Matejka.
2017-10-17Iface address debug dump fixJan Moskyto Matejka
2017-09-06Basic VRF supportOndrej Zajicek (work)
Add basic VRF (virtual routing and forwarding) support. Protocols can be associated with VRFs, such protocols will be restricted to interfaces assigned to the VRF (as reported by Linux kernel) and will use sockets bound to the VRF. E.g., different multihop BGP instances can use diffent kernel routing tables to handle BGP TCP connections. The VRF support is preliminary, currently there are several limitations: - Recent Linux kernels (4.11) do not handle correctly sockets bound to interaces that are part of VRF, so most protocols other than multihop BGP do not work. This will be fixed by future kernel versions. - Neighbor cache ignores VRFs. Breaks config with the same prefix on local interfaces in different VRFs. Not much problem as single hop protocols do not work anyways. - Olock code ignores VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. - Incoming BGP connections are not dispatched according to VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. Perhaps we would need some kernel API to read VRF of incoming connection? Or probably use multiple listening sockets in int-new branch. - We should handle master VRF interface up/down events and perhaps disable associated protocols when VRF goes down. Or at least disable associated interfaces. - Also we should check if the master iface is really VRF iface and not some other kind of master iface. - BFD session request dispatch should be aware of VRFs. - Perhaps kernel protocol should read default kernel table ID from VRF iface so it is not necessary to configure it. - Perhaps we should have per-VRF default table.
2017-08-10Nicer log outputMichal 'vorner' Vaner
non-primary is ugly, just omit it (and use primary in the other case).
2017-08-10Less confusing log messageMichal 'vorner' Vaner
A non-primary address isn't necessarily secondary, that's an independent flag.
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-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.
2015-12-21Follow-up work on integrationOndrej Zajicek (work)
2015-12-20Integrated address print lengthsJan Moskyto Matejka
Minor changes by Ondrej Santiago Zajicek
2015-11-12Follow-up commit on integrated BIRDOndrej Zajicek (work)
Use net_addr for interface address prefixes, support net_addr in configuration parser.
2014-11-03Changes order of iface/addr/neigh event hooks.Ondrej Zajicek
Now the order is: Up -> iface, addr, neigh Down -> neigh, addr, iface It fixes the case when an iface appears, related static routes are activated and exported to OSPF before the iface notification and therefore forwarding addresses are not encoded in generated external LSAs.
2013-11-24Minor changes to default router ID calculation.Ondrej Zajicek
2013-04-16Allows IP of loopback to be used in automatic router ID selection.Ondrej Zajicek
Thanks to Alexander V. Chernikov for the patch.
2012-12-27Implements interface masks for choosing router id.Ondrej Zajicek
Router ID could be automatically determined based of subset of ifaces/addresses specified by 'router id from' option. The patch also does some minor changes related to router ID reconfiguration. Thanks to Alexander V. Chernikov for most of the work.
2012-01-23Implements handling of BSD iface arrival/departure notifications.Ondrej Zajicek
Thanks to Alexander V. Chernikov for original patch.
2012-01-23Fixes problems with creating/removing/renaming ifaces on BSD.Ondrej Zajicek
2012-01-21Fixes another minor bug in iface scan.Ondrej Zajicek
Iface flags are not updated in some cases.
2012-01-01Allows sticky link-local neighbors.Ondrej Zajicek
Allows using NEF_STICKY neighbors with link-local addresses. This is used for static route nexthops, they can be specified like fe80::1%eth0 .
2011-12-12Fixes problem with sticky neighbors and iface address changes.Ondrej Zajicek
Thanks Matthias Schiffer for the bugreport and the original patch.
2011-05-01There may be more IP address records with the same IP.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.
2010-12-22Remove unnecessary check.Ondrej Zajicek
2010-11-11Adds support for iface link check to static protocol.Ondrej Zajicek
2010-11-11Implements link state detection.Ondrej Zajicek
Also changes some symbol names (IFF_ADMIN_DOWN -> IFF_SHUTDOWN, IFF_LINK_UP -> IFF_ADMIN_UP).
2010-03-19Allow iface pattern matching code to match peer address on ptp links.Ondrej Zajicek
2010-03-14Temporary OSPF commit - sockets.Ondrej Zajicek
2010-02-27Better flushing of interfaces.Ondrej Zajicek
When device protocol goes down, interfaces should be flushed asynchronously (in the same way like routes from protocols are flushed), when protocol goes to DOWN/HUNGRY. This fixes the problem with static routes staying in kernel routing table after BIRD shutdown.
2009-05-29Implements primary address selection base on 'primary' option.Ondrej Zajicek
2009-05-06A change in OSPF and RIP interface patterns.Ondrej Zajicek
Allows to add more interface patterns to one common 'options' section like: interface "eth3", "eth4" { options common to eth3 and eth4 }; Also removes undocumented and unnecessary ability to specify more interface patterns with different 'options' sections: interface "eth3" { options ... }, "eth4" { options ... };
2003-02-22There can be multiple primary addresses with different scopesMartin Mares
and only the highest scope one has IA_PRIMARY set, so report the remaining ones as "Unselected".
2000-11-08Yet another nasty bugfix of iface_patts_equal().Ondrej Filip
2000-11-08Bugfix in iface_patts_equal.Ondrej Filip
When both patterns were NULL strcmp it sigfaulted.
2000-06-05Avoid sentence containing a colon to start new doc subsection.Martin Mares
2000-06-03More documentation.Martin Mares
2000-05-04#ifdef out lots of debugging information.Martin Mares
The long resource/routing table dump printed upon startup is gone now and if you wish to see it, just send bird SIGUSR1 or use the `debug' commands.
2000-05-04Removed a lot of unused variables.Martin Mares
Please try compiling your code with --enable-warnings to see them. (The unused parameter warnings are usually bogus, the unused variable ones are very useful, but gcc is unable to control them separately.)
2000-05-02IPv6 address classification fixes.Martin Mares
2000-04-10Fix stupid bug in neighbor cache.Martin Mares
2000-03-12Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,Martin Mares
several debug() calls converted to DBG().
2000-03-12Added tracing of interface events.Martin Mares
2000-03-01Reimplemented neighbor cache. Now uses real hashing.Martin Mares
2000-02-29Rewrote interface type detection logic. The `unnumbered' flag is now perMartin Mares
address, not per interface (hence it's ifa->flags & IA_UNNUMBERED) and should be set reliably. IF_MULTIACCESS should be fixed now, but it isn't wise to rely on it on interfaces configured with /30 prefix.
2000-01-19Killed a couple of bugs in the neighbor cache.Martin Mares
Manual disable/enable/restart/shutdown/reconfiguration of protocols no longer hangs on loops in neighbor lists :)
2000-01-16Reworked proto lists -- each proto is now in two lists: the global oneMartin Mares
(proto_list) and per-type one (original lists). A lot of things simplified. Implemented `disable', `enable' and `restart' CLI commands.
1999-12-16Minor cleanups.Martin Mares