summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd
AgeCommit message (Collapse)Author
2005-11-01Switch from the per peer filter set list to a filter-only solution.Claudio Jeker
The default filter_sets are converted into match filter rules that get evaluated first. Simplifies code massively -- mainly the config reload part -- and makes softreconfig out a piece of cake. "get it in" henning@
2005-10-31Missing space in printf for unknown peers.Claudio Jeker
2005-10-31Print group names in rules in double quotes. Makes the output more parsable.Claudio Jeker
2005-10-19for "bgpctl neighbor foo up/down/clear", make bgpctl not exit after sendingHenning Brauer
the request, but wait for the new IMSG_CTL_RESULT message, which contains a status code to indicate wether the request was processed successfully or wether an error occured and if so what kind of error. no more "IMSG_CTL_NEIGHBOR_ with unknown neighbor foobaz" in the log when you mistyped foobar - no bgpctl itself complains claudio ok
2005-10-19tsc tsc tsc, tabs are not always holyHenning Brauer
2005-10-19new keyword "down" in neighbor spec, when givenm, the session is notHenning Brauer
started on bgpd startup but stays in IDLE. requested by claudio
2005-10-19on "bgpctl neighbor foo clear", we used to send a STOP event immediatelyHenning Brauer
followed by a START event. Instead of sending START immediately, start the IdleHoldTimer with a very low value (5 seconds) so that we restart the session these seconds later. some other implementations deal poorly with our previously superfast reconnects, namely, that commercial one from san jose, claudio ok
2005-10-19only allow connects in IDLE when the ConnectRetryTimer is running, akaHenning Brauer
we intend to reconnect. fallout from fast reconnect. misbehaviour noticed by claudio
2005-10-13Simplify poll loop as well. "grrr, OK" henning@Claudio Jeker
2005-10-13Simplify poll loop, there is no need for nfds tracking. While there killClaudio Jeker
some comments that are totaly wrong. OK henning@
2005-09-21Make sure that "updates" with only MP withdraws (MP_UNREACH_NRLI) stopClaudio Jeker
processing after the MP withdraw block. OK henning@
2005-09-21when the route to a nexthop is a reject or blackhole route, the nexthopHenning Brauer
is invalid. add check for these flags. shows up with v6, many reject routes there. claudio ok
2005-09-20allow "show rib" to be limited to an address family tooHenning Brauer
2005-09-20let "bgpctl network show" print v6 addresses correctlyHenning Brauer
2005-09-19implement fast reconnectsHenning Brauer
when a peer drops to IDLE, we have to force him in IDLE for some time to prevent fast flapping. however, the forced idle time is annoying when the connection could be re-established immediately, i. e. bgpctl nei $peer clear or similar. implement an error counter per peer, increased every time we receive a notification. when we are in state IDLE and get a connection from the peer in question, check if the error counter is 1 or smaller. if so, change state to active and accept the connection, otherwise keep the current behaviour and reject the connection. the error counter gets scaled back by the IdleHoldResetTimer that scales the IdleHoldTime back as well
2005-09-19KNFHenning Brauer
2005-09-08fix reloads where capbilities changeHenning Brauer
when a new peer in initialized, the configured capailities are copied. this copy is modified as part of the capabilities negotiation. now if teh session drops we want to re-negotiate capabilities at the next establishment, last not least because the configured capabilities might have changed in between (that's how I stumbled over it, added v6 shitz) so copy the configured capabilities over every time a session goes to IDLE state, unless the reason is EVNT_RCVD_OPEN, because then we're in capabilities negotiation.
2005-08-11two missing EINTR here tooHenning Brauer
2005-08-10- comapared -> comparedJason McIntyre
- correct word order - grammar
2005-08-10Pass the correct peer to rde_apply_set(). rde_apply_set() needs to knowClaudio Jeker
the peer where the prefix came from so that prepend-neighbor works. Extend rde_filter() and make sure that the correct peer is passed. Until now most cases resulted in a NULL peer causing a nasty crash that was found by David Ulevitch. OK henning@
2005-08-09Introduce new route decision tunable "rde med compare (always|strict)".Claudio Jeker
If set to always the med will also be compared between different AS. The default is strict which is the way the RFC specifies it. OK henning@
2005-07-29Debugging session at WTH. Fix many bugs in the IPv6 support -- some copy pasteClaudio Jeker
and some more obscure ones. With this is it possible to run IPv6 sessions between two bgpd. OK if it does not break IPv4 hummpa barman Henning
2005-07-29Add another piece to the IPv6 puzzle. This time code to generate MP updates.Claudio Jeker
Does not affect IPv4 minimaly tested for IPv6 because we still don't have an IPv6 capable neighbor. henning@ ya
2005-07-28document the v4/v6 safi control buttonsHenning Brauer
(and of course it is marc balmer who's spreading the kaesefondue here, not marcm) claudio ok
2005-07-28print the v4/v6 safi announce stuff, from wthHenning Brauer
2005-07-28keywords have to be sorted, and I can't sort properlyHenning Brauer
2005-07-28allow the to be announced SAFIs to be specified per peer, that is part of theHenning Brauer
multiprotocol shitz claudi needs this to proceed with v6 stuff in the RIB, print stuff and manpage later from whatthehack, claudio ok, marcm schnell schnell schnell
2005-07-24we must start the ConnectRetry timer before calling session_connect inHenning Brauer
all cases, since session_connect can in turn cause events that cause state changes in the FSM that reset the ConnectRetryTimer. debugged with Leen Besselink <leen@consolejunkie.net> who was seeing errnously running ConnectRetryTimers in a case with localhost connections
2005-07-18fix a block that was indented too far.David Gwynne
ok claudio@, king bula sez ok
2005-07-18minor nits in session.c, add an additional nconf == NULL check and switchClaudio Jeker
some fatal()s to fatalx(). All done by dlg@. OK henning@
2005-07-14free commitz from pascoes kitchen. fix an error messageDavid Gwynne
ok henning@
2005-07-04New function filterset_cmp() used two compare two struct filter_set forClaudio Jeker
equality. This function is a bit more complicated than a memcmp() because there are types that need to be considered equal e.g. ACTION_SET_MED and ACTION_SET_RELATIVE_MED. Also ACTION_SET_COMMUNITY and ACTION_SET_NEXTHOP need some special care. OK henning@
2005-07-04Switch some parser rules from "string" to "STRING". "string" is to greedyClaudio Jeker
and hides possible typos. e.g. set { rtlabel foo localperf 100 } was a valid syntax but the result was a route label with name "foo localperf 100". OK henning@
2005-07-01More spacesClaudio Jeker
2005-07-01tab after spaceClaudio Jeker
2005-07-01Switch filter_sets form SIMPLEQ to TAILQ, needed for upcomming stuff.Claudio Jeker
2005-07-01The newly introduced function filterset_free() existed already asClaudio Jeker
rde_free_set(), I just missed it when I was looking for it. Kill rde_free_set() and use the more correct filterset_free() from now on.
2005-07-01Make the pftable filter set use the name2id "cache" like the route labels.Claudio Jeker
This saves 14 bytes per aspath. OK henning@
2005-06-29rtlabel support via filter sets. Just use "set rtlabel foobar" in filtersClaudio Jeker
network and neighbor statements and the routes are labeled accordingly. While doing that fix some mem-leaks by introducing filterset_free() and remove the free on send option of send_filterset(). This took a bit longer because we need to carefully track the rtlabel id refcnts or bad things may happen on reloads. henning@ looks fine
2005-06-28Try to fit 0x200 into an u_int8_t is not so clever. Pass the flags asClaudio Jeker
u_int16_t so that "bgpctl show rib 4/8 all" works again.
2005-06-25name2id prototypesHenning Brauer
2005-06-25Make the name2id/id2name code generically usable. This will be needed byClaudio Jeker
the upcomming filter rewrite. OK henning@
2005-06-24Do 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 henning@
2005-06-16use prefixlen2mask() instead of doing the bitshifting by hand; fixes theHenning Brauer
zero prefixlen case (32 bit shift on 32 bit val -> undefined result) spotted by Moritz Grimm and otto
2005-06-14Don't unref something that is used later. send_rtmsg() will callClaudio Jeker
rtlabel_id2name() so call rtlable_unref() after that. OK henning@
2005-06-13route label support, kroute part and ID allocator as well as the internalHenning Brauer
interface changes. support in the filter language and rde to come. claudio ok
2005-06-13realloc(3) correctly. Do not adjust the variable describing how much memoryClaudio Jeker
has been allocated until one knows the allocation has been successful.
2005-06-10Make sure that the ATTR_EXTLEN flag is unset if the attribute length isClaudio Jeker
smaller than 255 bytes.
2005-06-10Introduce attr_optlen() to get the total lenght of an optional attributeClaudio Jeker
plus header. Soon needed.
2005-06-10Simplify show rib upcalls. Kill one mostly unused function.Claudio Jeker