summaryrefslogtreecommitdiff
path: root/usr.sbin/ospfd/interface.c
AgeCommit message (Collapse)Author
2006-09-27Use IP_RECVIF to get the incomming interface of OSPF packets. Now we useClaudio Jeker
the source address and the interface index to find the corresponding struct interface which is less error prone. OK norby@
2006-08-18Correctly leave the all AllDRouters group (224.0.0.6) if the interface wasClaudio Jeker
in state DR or BACKUP. Found while analizing PR5192 with norby@ -- seems to help but there is still a issue left. OK norby@
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-16KNFHenning Brauer
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-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-13The return value of the start/stop timer functions is almost never checked.Claudio Jeker
Switch them to void functions and check if evtimer_add/del fails -- in which case we fatal() as there is no useful way to recover in such an event. 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-09KNF, remove some unneded type casts and add some ARGSUSED. This makes lintClaudio Jeker
almost happy.
2006-03-09if_event_names is only used by interface.c so move it there.Claudio Jeker
2006-03-08Spaces and other minor cleanup.Claudio Jeker
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-12-15Simpify iface_del() and nbr_del(). make them void funtions as they can not failClaudio Jeker
and do not remove a element twice in iface_del(). OK norby@
2005-12-04Increase the receive buffer of the raw socket.Esben Norby
Prevents some of the retransmitting during bulk ls update transfers. ok claudio@
2005-10-19fix some spellings in comments.Claudio Jeker
2005-10-18Cleanup interface code a minimal bit. There is no need for if_shutdown(),Claudio Jeker
especially it got called in the wrong place. OK norby@
2005-10-12If router is DR or BDR join the AllDRouter list (and leave it if otherwise).Claudio Jeker
OK norby@
2005-09-28- use proper function name in log messageMathieu Sauve-Frankel
ok norby@
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-09-15Correctly handle loopback interfaces. Mark them as point-to-point networksClaudio Jeker
that are in loopback mode. With this it is possible to use lo1 to hold the loopback address of the router as done often on ciscos etc. Problem found and fix tested by jakob@ OK norby@
2005-08-30Fix one of the most fragile part of ospfd -- the interface election code.Claudio Jeker
One of the main problems is that the RFC is very unprecise about the process and so a bit of guessing and "violating" the RFC is needed. The problem was that on fast restarts ospfd computed wrong DR and BDR routers. OK norby@ deraadt@
2005-06-21Backout/Disable the change introduced in rev. 1.26. Don't start the helloClaudio Jeker
timer in IF_STA_WAITING. We are not ready for this because the RFC is totaly fucked up in that specific area causing many issues on fast reloads. OK norby@
2005-06-13One additional if_act_elect bug. Neighbors in preliminary state (down, attemptClaudio Jeker
and init) are not electable not only neighbors that are in state down. OK norby@
2005-06-13Doh. Fix another stupid copy paste typo. Once again BDR != DR.Claudio Jeker
OK norby@
2005-06-13add a new fsm transition for IF_EVT_WTIMER in state IF_STA_ANY that simplyClaudio Jeker
ignores the event. This removes the warning "fsm_if: interface em0, event WAITTIMER not expected in state DROTHER" in case of a quick startup. OK norby@
2005-06-13start hello timer even if in state IF_STA_WAITING (this makes the startup muchClaudio Jeker
faster and follows the RFC more closely). OK norby@
2005-05-27Virtual link support.Esben Norby
ok claudio@
2005-05-26Make interface election less verbose.Esben Norby
2005-05-26Simplify and cleanup passive interface handling.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-12Fix multiple bugs in if_act_elect(). In some cases DR were set wronglyClaudio Jeker
because of a stupid typo that I fixed in rev. 1.6 but forgot to fix the bug I introduced before because of that typo. Also reset the DR/BDR fields of iface->self when going to round two. Without the reset it is e.g. not possible to drop from DR to BDR. Issue found and patch tested by Stephen Marley OK norby@
2005-04-25Call if_init() later and for each interface separately.Claudio Jeker
Move code from if_act_start() to if_init() that needs to be called only once per interface. Especially event_set should be called only once as it initializes struct event and so may cause corruption of the event queue if called twice.
2005-04-25Move the creation of the ospf_socket from if_init() directly into ospfe().Claudio Jeker
This makes it possible to call if_init() at a much later time.
2005-04-25Call if_init() in ospfe only, neither the rde nor the parent need it.Claudio Jeker
2005-04-25Change order of execution in if_act_reset(). First notify all neighborClaudio Jeker
that the interface gets reset (NBR_EVT_KILL_NBR) and than clear all timers of the interface. The nbr_fsm() may start some of the timers which has strange results. Tested by Philip Olsson.
2005-04-19Don't call event_set() before event_init().Claudio Jeker
OK norby@
2005-03-31Better crypt sequence number initialization.Esben Norby
Suggested by henning@ ok henning@
2005-03-31Add support for crypt authentication (MD5).Esben Norby
ok and input claudio@
2005-03-29The RFC never mentions anything about transfer, this should be transmit.Esben Norby
From Jason Ackley (thanks). ok claudio@
2005-03-22Remove bool cruft.Esben Norby
ok claudio@
2005-03-11KNFHenning Brauer
2005-03-07Track interface state (up/down) and media status. Simplify the code a bitClaudio Jeker
by using the kif/kroute info while allocating interfaces.
2005-02-16Support point to point links.Esben Norby
ok claudio@
2005-02-09Rework of self originated LSA. First of all the code to generate the LSAClaudio Jeker
is rewritten to use the dynamic buffer api introduced lately. Add missing parts in the RDE to merge these LSA originated from the OE into the LSDB with correct seq_num, etc. Add hooks to the neighbor and interface fsm so that the LSA get updated if needed. This is not perfect, still many things are missing. OK norby@
2005-02-09Fix interface fsm by inserting dummy events and actions as placeholderClaudio Jeker
for 0. Action 0 was IF_ACT_STRT and that's why if_act_start() got called multiple times. The inappropriate hack from the previous commit is no longer needed.
2005-02-09Don't elect neighbors that are down and fix a stupid copy-pasto.Claudio Jeker
2005-02-09Initialize iface->self only once. if_act_start() may be called multipleClaudio Jeker
times for a interface.
2005-02-07spelling fixesDavid Krause