summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd
AgeCommit message (Collapse)Author
2010-05-26Move imsg into libutil and add a man page.Nicholas Marriott
Minor bump for libutil. Previous versions of this diff and man page looked at by various people. "you should just commit" deraadt
2010-05-26Rename some imsg bits to make namespace collisions less likely buf toNicholas Marriott
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE. ok henning gilles claudio jacekm deraadt
2010-05-24now that we can handle >9 args, put "-D name=value" on one line: it's a bitJason McIntyre
more readable, and fixes a spacing bug we had in smtpd.8;
2010-05-19When installing MPLS VPN routes set the RTF_MPLS bit since those routesClaudio Jeker
have MPLS information connected to them and the kernel requires the flag now. OK michele@
2010-05-19Add softreconfig support for peers changing the RIB. Done by first unloadingClaudio Jeker
the old RIB and then via softreconfig in and a special softreconfig out loading the new RIB. Feature requested and testeded by Elisa Jasinska. OK henning@
2010-05-18Be more careful in ktable_update() and ktable_new() and the fib sync flag.Claudio Jeker
Only existing tables should keep their fib sync state, new ones should set the current fib sync flag to the configured one at the end of the config load. Found the hard way by sthen@, OK sthen@
2010-05-17tweak previous;Jason McIntyre
2010-05-17Implement two new filters, max-as-len and max-as-seq. The first is limitingClaudio Jeker
the length of an AS path (matches if the path is longer then the specified lenght) the second matches when a sequence of the same AS number is longer then the specified length). max-as-len is good to protect crappy comercial bgp boxes from other crappy comercial bgp boxes. max-as-seq was a feature request from SwissIX and maybe EuroIX to find and filter prepends. Additinal testing and OK sthen@
2010-05-17Last bits of MPLS VPN support. Hook kernel routing tables and RIB together.Claudio Jeker
This adds a bit of new config to specify the mapping between an rdomain and the BGP MPLS VPN instance, example: rdomain 1 { descr "CUSTOMER1" rd 65003:1 import-target rt 65003:3 export-target rt 65003:1 depend on mpe0 network 192.168.224/24 } The "depend on mpe0" is a but ugly but for now this is the quickest way to figure out which interface bgp should use to insert the MPLS routes. A big side-effect of this diff is that networks are now internally distributed through kroute.c. This needs some kernel changes that will follow hopefully soon. OK henning@
2010-05-04Assuming that a prefixlen 32 is a host route is not clever when IPv6 comesClaudio Jeker
into play. Check the AID and use 32 or 128 based on the address family. Now bgpctl show rib <IPv6 addr> works like in the IPv4 case. Bug reported and fix made during yesterday's Swinog BE#85
2010-05-04Add some documentation about the last change (nexthop verification andClaudio Jeker
extended rde rib syntax). OK sthen
2010-05-03Make it possible to load multiple routing tables at the same time and useClaudio Jeker
those for alternate RIBs. This allows to use "rde rib TESTIT rtable 1". NOTE: nexthop verification has changed for alternate tables. For now nexthop will only be verified against the main routing table (id 0). Because of this "nexthop qualify via bgp" may now compare the nexthops against bgpd routes from a different RIB. Tested by sthen@, OK to move on by henning@
2010-04-28Allow neighbor-as in AS filter statements like:Claudio Jeker
match from any source-as neighbor-as set localpref 1000 OK henning@
2010-04-27imsg.h does not need sys/tree.h.Nicholas Marriott
ok eric
2010-04-26Add some { } for better readability and to make the code look like theClaudio Jeker
other blocks in this function.
2010-04-26Fix some memory leaks on config reload failure and move one particularClaudio Jeker
cleanup loop to parse.y where it belongs. OK henning@
2010-04-22Including bgpd.h in mrt.h is dumb.Claudio Jeker
2010-04-22Depending on capa.neg.as4byte (bgp session is using 4-byte AS numberClaudio Jeker
extension) we need to switch between _AS4 and non _AS4 types. The non _AS4 mrt types are totaly confused by 4-byte AS_PATH attributes since they expect 2-byte ones (and vice versa). Problem found and fix tested by Xiaoliang Zhao (xzhao at cernet edu cn).
2010-04-22Correct the BGP4MP subtypes according to draft-ietf-grow-mrt-11.Claudio Jeker
The _AS4 types where reversed and the local types are missing even though I'm not sure if bgpd will ever support them.
2010-04-20prefix_unlink() must remove the rib entry. Currently this was only doneClaudio Jeker
in prefix_destroy() but there is another caller of prefix_unlink() which missed the rib_remove() resulting in tree corruption and possible crashes. Doing the remove in prefix_unlink() is better since we do the same with the prefix and rib & prefix are linked. Fix some comments to match code and remove double call to pt_empty()/pt_remove(). Found while hacking on something else.
2010-04-16Memory allocated with calloc() is initialized to zero, no need to do thatClaudio Jeker
explicitly.
2010-04-13Instead of passing AF specific struct kroutes over imsgs use a structClaudio Jeker
kroute_full structure that is AF independent and has all information in it. Simplifies the communication between processes and reduces the number of imsg types. This is another step to add FIB support to BGP MPLS VPNs.
2010-04-07Remove XXX comment and just close received fd if calloc() fails.Nicholas Marriott
If this happens the imsg may no longer be usable as there may be queued messages, but this is a) already the case with the code now, and b) would be the case if recvmsg() fails anyway, so we can document that -1 from imsg_read() invalidates the struct imsgbuf. discussed with and ok eric
2010-04-07Call nexthop_delete() a bit later in nexthop_update(). The nh->state needsClaudio Jeker
to be changed before calling nexthop_delete() or the nexthop will not be correclty removed in the unlikly event when all aspathes move to a different nexthop while the lookup happens. sthen@ agrees with the logic.
2010-04-06Switch to a more address family independent nexthop imsg. Instead of passingClaudio Jeker
struct kroute or kroute6 pack the needed info into a struct bgpd_addr. No flames comming out of my and sthen@'s bgpd routers.
2010-03-31network static and network connected have been superseded by network inetClaudio Jeker
static and network inet connected a long time ago. It is time to remove the old compat code.
2010-03-30Hmpf, aid2af() leftover from the time I did the transition that should notClaudio Jeker
be there. network X set nexthop Y failed because of this.
2010-03-29I'm going to need community_ext_conv() outside of rde_attr.c soon, so moveClaudio Jeker
the prototype to rde.h
2010-03-29Since we always reload the config now there is no need to allocate theClaudio Jeker
filter list head. It is only used temporary in reconfigure(). OK henning
2010-03-29We always allocate rib ids dynamicaly so there is no need for allowingClaudio Jeker
fixed id allocation. Makes code simpler. OK henning
2010-03-29Implement a log_rd() function to print the route destinguisher in a niceClaudio Jeker
way. Use it for now in log_addr() to show VPN routes with a prepended RD. OK henning
2010-03-26pt_add() is not allowed to fail, caller expects this behaviour.Claudio Jeker
2010-03-26Be more careful when walking the tree looking for a non-empty element,Claudio Jeker
we may actually hit the end of the tree (at least in theory).
2010-03-05Allow to filter for ext-community attributes. Currently only perfect matchesClaudio Jeker
work but that's already better then nothing. OK sthen@
2010-03-03Compare against correct flag when printing "network inet6 static"Claudio Jeker
2010-03-03Replace enum rib_state with enum reconf_action since their doing the same.Claudio Jeker
NEW is now REINIT, ACTIVE is KEEP and DELETE and NONE stay the same.
2010-03-03Remove superfluous newlineClaudio Jeker
2010-02-26Fix some minor issues. 0 instead of NULL in one comparison. Set theClaudio Jeker
right flags when protecting the IPv6 loopback addr (instead of reassigning the IPv4 ones) and install the IPv4 loopback blocker as 127/8 and not as 127.0.0.1/8. First two found by Hiroki Sato hrs (at) allbsd org and I found the 127/8 issue all by myself.
2010-02-23Fix .Oo .Xo .Oc .Xc mis-nesting by just dropping the .Xo and .Xc which,Ingo Schwarze
in these cases, is useless anyway. Found by and fixing the build with mandoc; still fine with both old and new groff. ok jmc@
2010-02-23Remove some extra ().Claudio Jeker
2010-02-11Not knowing a AFI/SAFI pair in the MP capability is no reason to failClaudio Jeker
a session. Just print a warning and move on since both side need to announce a pair to use it. Found and OK sthen@
2010-02-11We need to load the config before kr_init() is called or fib-update isClaudio Jeker
ignored. Found and fix tested by Elisa Jasinska.
2010-02-11While looking through this code I figured out that set nexthop self andClaudio Jeker
no-modify are not supported for MP protocols like IPv6. Add support for those and while testing find another bug in the same region. Inverse the check for the return value of memcmp() -- we're interested in equality. Until now IPv6 was running with an implicit set nexthop self on all iBGP sessions. Oups. set nexthop stuff is OK when tested henning@ and sthen@
2010-02-09Don't hardcode the AID to AID_INET6 when sending MP EoR updates.Claudio Jeker
This will allow AID_VPN_IPv4 to do EoRs as well.
2010-02-08Unbreak IPv6 local address lookups. Some idiot aka me optimised a loop andClaudio Jeker
because of that either the IPv4 or IPv6 local address was not set. Because of this prefixes were sent out with all zero nexthops.
2010-02-08It is enough that peer->capa.mp[i] is non zero. It does not need to be 1.Claudio Jeker
2010-01-13Add support for BGP MPLS VPN aka RFC 4364. This is only the RDE part soClaudio Jeker
that it is possible to use OpenBGPD as a route-reflector for VPNv4. Some clean up of the BGP MP code so that multiple protocols are easier supported. kroute/kernel support not yet done but comming. OK henning@, reyk@
2010-01-11Do not crash when starting up with a bad config file. Check thatClaudio Jeker
conf.listen_addr is actually valid before deref.
2010-01-11lex <=, >=, !=, and >< into a single token for correctness and to reduce theTheo de Raadt
lookahead in the parser ok henning
2010-01-11Make sure we do not add trailing garbage while parsing a prefix that has aClaudio Jeker
prefixlen that is not a multiple of 8. Found while reading the RFC. OK henning@