summaryrefslogtreecommitdiff
path: root/usr.sbin/ospfd/ospfd.h
AgeCommit message (Collapse)Author
2009-01-07Full stub area support. This allows ABRs to announce a default networkClaudio Jeker
summary LSA into stub areas so that these routers are able to reach the outside of the area. OK norby@
2008-12-12Make the kroute code routing priority aware. This solves a few issues andClaudio Jeker
makes to code simpler. While the routing table is somewhat simpler the redistribution code does not allow a much more radical approach. With some additional help of Mr. Kernel and his rtsock it should be possible to rip even more code out of kroute.c. Tested and OK sthen@, gollo@
2008-11-24Initial support for stub areas. The bit still missing is the redistributionClaudio Jeker
of the default summary net lsa on ABRs but that is comming. OK norby@
2007-10-11Bye bye global ospf options. OSPF options are per area (at least the oneClaudio Jeker
flag that we set). So introduce a area_ospf_options() function that will return the correct flags for each area. This makes stub area support a lot easier. OK norby@
2007-09-25Last missing piece in the equal cost multipath support for ospfd.Claudio Jeker
Send all possible nexthops to the parent process and correctly sync the RIB, FIB and kernel routing table. Based on initial work by pyr@. OK pyr@ norby@ PS: don't forget that you need to enable multipath support via a sysctl
2007-09-11Switch some more baudrates to 64 bit and initialize iface->baudrate.Claudio Jeker
2007-06-19add support for mapping route labels to AS-external route tags.Reyk Floeter
manpage bits from jmc@ ok norby@ claudio@
2007-05-29Demote support for ospfd. It is possible to specify a demote group onClaudio Jeker
interfaces and areas. With this carp setups using ospfd are more reliable because we can fail over if the OSPF connectivity is (partially) lost. OK norby@
2007-03-21Add support for RFC 3137: OSPF Stub Router AdvertisementClaudio Jeker
This allows ospfd to announce networks without the need to transit traffic. stub router is enabled if the fib is not coupled, net.inet.ip.forwarding is not 1 or if the stub router global config option is set to yes. OK norby@
2007-02-01Preliminary configuration reload support. Seems to work reasonably wellClaudio Jeker
after fixing many use-after-free errors a couple of days ago. Most cases -- adding/removing of interfaces, adding/removing of areas -- seem to work. Still merge_config() is a behemoth of a function and some edge cases may not be covered correctly (yet). OK norby@ pyr@
2007-02-01kr_reload() -- another helper function for reload support. This oneClaudio Jeker
takes care that redistribution is correct after reload. OK norby@ pyr@
2006-12-21Unbreak redistribute default and make it possible to specify a metric forClaudio Jeker
the default route as well. OK norby@, michele@
2006-12-07Make it possible to set the metric and LSA type for redistributed routes.Claudio Jeker
Mostly based on a diff by Pierre-Yves Ritschard (I just simplified the parser code). OK norby@
2006-11-17Support for multiple networks on one interface. Until now only the mainClaudio Jeker
address of a interface could be used. Now it is possible to specify a interface more than once if multiple networks are configured. An alternative network can be specified via e.g. interface em0:10.0.5.1. The old interface syntax without the IP still works and uses the main/first configured IP address. ospfd now needs to include the IP header on outgoing messages as it is not possible to specifiy the source address in sendto(2). Additionally all multicast joins and leaves have to be tracked. OK norby@
2006-06-28Track the uptime of the ospfd daemon itself.Esben Norby
It is possible to read the uptime of the daemon with the "ospfctl show" command. ok claudio@
2006-05-31More redistribute fun. Add a possibility to deny redistribution of specifiedClaudio Jeker
routes via "no redistribute rtlabel admin". Redistribute rules are parsed in order and the first match is used. Only exception is "redistribute default" Which is independent of the other rules and can't be negated.
2006-05-30Now that rtlabels are accessable via sysctl we can use route lables toClaudio Jeker
define which routes should be redistributed via OSPF. So now you can define the export list on a fine graded basis. More to come... OK norby@
2006-04-25Path the length of the packet as size_t to in_cksum(). Enforce that theClaudio Jeker
passed size is not bigger than 2^16 (limit of the used algorithm). This removes some more lint warnings and makes sense.
2006-04-24Fix parser to match current behaviour and make auth-type et al. part of theClaudio Jeker
global and per area defaults. With this it is now possible to define one set of auth-md keys and use them in every defined interface. OK norby@
2006-04-20Simplify the defaults handling. This is long overdue and necessary to addClaudio Jeker
auth-type et al. to the main and area blocks. OK norby@
2006-03-23List interfaces they way we list neighbors etc.Esben Norby
This makes it much easier to grep in the output. The original format of "show interface" can be seen with "show interface detail". help and ok claudio@
2006-03-22Move the AS external LSA tree out of struct ospfd_config. This simplifiesClaudio Jeker
the code and makes config reloads easier. OK norby@
2006-03-15Looks like auth-type simple was busted since a long time. We bcmp() aClaudio Jeker
c string with a lenght <= 8 with a buffer of size 8. Now in some cases there can be trailing garbage after the c-string and so the bcmp() fails. Found by Sergey Matveychuk who provided a similar patch. OK norby@
2006-03-09Track interface uptime.Esben Norby
ok claudio@
2006-03-09Move *_name functions to log.c and use these for both ospfd and ospfctl.Claudio Jeker
Stuff that is only used in ospfd debug messages is simplified. OK norby@
2006-03-09in_cksum() should return a u_int16_t and not int. Switch a variable toClaudio Jeker
unsigned. Found by lint.
2006-03-09if_event_names is only used by interface.c so move it there.Claudio Jeker
2006-03-08Fix logic of the kroute code. First of all there was a porblem if a prefixClaudio Jeker
is known via kernel and ospf. If the kernel route is removed the ospf one was not added to the FIB. This is an uncommon event so it is OK to request an update from the RIB in this case. Additionally ospfd treated bgpd inserted routes like static routes. This is wrong because IGP routes habe a higher preference over EGP routes. In this case a bgpd route needs to be overridden by a ospfd one. With these to fixes bgpd and ospfd start to play nicely together. OK norby@
2006-02-24Keep track of the uptime of the entries in the RIB.Esben Norby
It is now possible to see the uptime of the individual entries in the RIB. The uptime can be displayed with "ospfctl show rib" ok claudio@
2006-02-19Keep track of the duration of our relationships with neighbors.Esben Norby
Displayed in "ospfctl show neighbor". ok claudio@
2006-02-10ospfd does not need fd passing via the imsg framework so remove that codeClaudio Jeker
and remove other unneeded functions that are only used in bgpd.
2006-02-09Don't calculate all areas every time the link state database is updated,Esben Norby
only calculate the dirty ones. ok claudio@
2006-02-01zap unused function.Esben Norby
ok claudio@
2006-01-12Rewrite the redistribute code. The previous implementation was stupid andClaudio Jeker
resulted in a major bottleneck if bgpd was used on the same box -- not clever to do linear searches over 175k entries :(. This now moves the redistribute code back into kroute duty and kills the linear list. Also default routes are now redistributed without the need for a kernel default route. OK norby@
2006-01-05Make ospfd respect carp(4) interfaces and their weird behaviour. They willClaudio Jeker
not be used to connect to a OSPF cloud and forced to be passive. With this ospfd will only announce the carp interface route if the interface is master. So you can connect a LAN in a redundant way to your ospf backbone. OK norby@
2005-11-04Kill spf_timer in struct ospfd_conf. There is no need for two event structsClaudio Jeker
just use ev for the spf_timer -- ev is unused in the RDE.
2005-10-18The kroute nexthop stuff was removed long time ago. So remove theseClaudio Jeker
function prototypes too.
2005-09-24- add auth_type and auth_keyid to struct ctl_ifaceMathieu Sauve-Frankel
- have ospfctl tell us when we are using authentication with 'show interface' ok claudio@ norby@
2005-09-17- add get_rtr_id() based on bgpd's get_bgpid()Mathieu Sauve-Frankel
- remove rtr_id from struct iface we don't need to keep a copy of this value per interface - replace all references to iface->rtr_id.s_addr with calls to ospfe_rtr_id() ok claudio@ norby@
2005-06-26Do not automaticaly announce routes that have RTF_DYNAMIC set. These routesClaudio Jeker
are e.g. created by the PMTU code and are removed after some time. OK norby@
2005-05-27Preparations for virtual link support.Esben Norby
ok claudio@
2005-05-26Support dumping the configuration the way bgpd(8) does it.Esben Norby
This makes it possible to have ospfd(8) parse a configuration file and display the parsed result. ok claudio@
2005-05-26Remove unused variable.Esben Norby
ok claudio@
2005-05-24Only redistribute networks if the interface they depend on is actuallyClaudio Jeker
up and running. This makes redistribution of carp(4)-ed networks magically work. OK norby@
2005-05-22Handle cost2 for AS-external, and prepare for handling flags inEsben Norby
ospfctl show rib detail. ok claudio@
2005-05-12Add "show database asbr/external/network/router/self-originate/summary"Esben Norby
to ospfctl. Show detailed information about the LSAs in the Link State Database. ok claudio@
2005-05-12If activly connected to more than one area set B flag in the self-originatedClaudio Jeker
router LSA. To do that correctly we need to track the number of active neighbors for each area. If the routers ABR status changes all router LSA need to be updated via orig_rtr_lsa_all(). OK norby@
2005-04-27Sort struct msgbuf by size. From Alexander von Gernler via henning@Claudio Jeker
2005-04-12Support for self originated AS-external LSA.Claudio Jeker
With "redistribute (static|connected|default|none)" it is possible to tell ospfd which external routes should be announced. Connected routes will be announced only if there is no corresponding interface configured, in that case the prefix is not external. Adding and removing of announced prefixes are done automaticaly. OK norby@
2005-04-05Use the dynamic buffer API for packet generation and sending.Claudio Jeker
OK norby@