summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd/rde_attr.c
AgeCommit message (Collapse)Author
2006-12-21Check for overflow of others_len. This can not happen at the moment becauseClaudio Jeker
less than 255 attributes can be allocated at max. OK claudio@
2006-12-18avoid p = realloc(p idiom, ok claudio, spotted deraadtHenning Brauer
2006-05-27Unfuck community delete. The if () statement to match communities was FUBARClaudio Jeker
instead reverse logic and use the same if statement as in the match function. Issue found and debugged by Leen Besselink. Thanks.
2006-04-12It is no longer allowed to change attributes in place. This corrupts theClaudio Jeker
attribute cache. Instead remove attribute and readd it after beeing changed. This should fix the "att_diff: equal attributes encountered" error seen by Tony Sarendal. OK henning@
2006-03-15Fix a memory leak when communities are set or deleted. This seems to fixClaudio Jeker
Sylvain Coutant memory issues. A lot of patience and testing by Sylvain.
2006-02-09Implement "set community delete 65001:*" and friends. This will removeClaudio Jeker
communities from the path attributes. Useful to make sure that the ones you set later are set by a (evil) peer. OK henning@
2006-02-09When comparing community type, cast to u_int16_t. The same is done for theClaudio Jeker
AS. OK henning@
2006-02-09attr_free() should not modify others_len as it does not resize the othersClaudio Jeker
array. It just clears on entry by setting it to NULL and moving that NULL to the end of the array. With this it will be possible to remove attributes without readding them right afterwards. Because of this attr_diff() needs to be more careful because of passed NULL pointers. OK henning@
2006-01-20No need to calloc() others if others_len is 0. The 0 malloc() does not hurtClaudio Jeker
(we do not access it) but does not help either. Finally it reduces head scratching when debugging the RIB. OK henning@
2006-01-20Doh. > not < and attr_compare() starts to work correctly. OK henning@Claudio Jeker
2006-01-10The attributes cache broke the set community filterset because community_set()Claudio Jeker
modified the attribute data directly and corrupted the cache by doing it. It is no longer allowed to modify attributes via attr_optget() -> change attr->data. Instead remove the old attribute from the aspath and then add a new modifed one again. Included in this change is the removal of a "feature" that allowed only one community per AS. If you had problems to add multiple communities via filters then this was the problem. Looks good Henning.
2006-01-10In attr_diff() compare the attributes flags too. They may be different andClaudio Jeker
especially they are accounted in the hash. While there change a 0 to NULL.
2006-01-05Cache optional BGP attributes (mostly communities) and use a simpleClaudio Jeker
pointer plus a ref counter to link the attributes to the path object. Saves +/- 10M on 11 full feeds. Looks good Henning
2006-01-04Correctly count the number of allocated BGP attributes. Needs a own counter.Claudio Jeker
2006-01-03Track some (memory) statistics in the RDE. Accessible via bgpctl.Claudio Jeker
2006-01-03Move functions shared with bgpctl into new file util.c. Simplifies theClaudio Jeker
link between bgpctl and bgpd mostly because of rde_attr.c.
2005-12-30Remove unused attr_optlen()Claudio Jeker
2005-12-30Use sys/hash.h instead of own built functions that work similar.Claudio Jeker
While there reorder some structs to help with alignment.
2005-12-19Better English in comment.Claudio Jeker
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-04-16Simplify return codes of aspath_asprint().Claudio Jeker
Return -1 on error 0 on success and make sure that in case of an error *ret is set to NULL.
2005-04-15Fix memory leak in case aspath_snprint() returns an error (-1).Claudio Jeker
OK henning@
2004-11-10It is not needed to mask the value wit 0xff as it is < 255. OK henning@Claudio Jeker
2004-08-10style, use sizeof() instead of a hardcoded value.Claudio Jeker
2004-08-06Monster diff to get one step closer to IPv6 support.Claudio Jeker
Cleanup path attribute handling. First of all kill struct attr_flags, all those infos are now in struct rde_aspath. Second move attribute parser functions into rde.c, rde_attr.c is shared between bgpd and bgpctl. Third reimplementation of the nexthop handling. Make it IPv6 ready and fix some major bug relating to "set nexthop". henning@ OK if it breaks nothing
2004-08-05As usual cleanup on exit. OK henning@Claudio Jeker
2004-08-05Cleanup aspath specific functions and api. Mainly switch to a refcnt basedClaudio Jeker
allocation. This helps to save a bit of RAM. looks good henning@
2004-07-28The default localpreference is 100 and not 0. Found and ok henning@Claudio Jeker
2004-07-13fix some typosJared Yanovich
ok henning otto
2004-07-05The rde no longer needs to check if the nexthop is the loopback address.Claudio Jeker
This is now down in the parent. OK henning@
2004-07-05fix a few KNF falloutsHenning Brauer
2004-06-24First step at multiprotocol support, only partially done.Claudio Jeker
OK henning@
2004-06-24Make community set strict aligenment save, remove unneeded ENSUREsClaudio Jeker
OK henning@ djm@
2004-06-22Cleanup. jajaja henning@Claudio Jeker
2004-06-20at least somewhat consistently name the TAILQ_ENTRYs... this confused meHenning Brauer
more than once
2004-05-21RFC 2796 bgp route reflector support. This is very useful in conjunctionClaudio Jeker
with templates. looks good, go for it henning@
2004-05-17extend filter language to allow basic setting of COMMUNITIES attribute.Damien Miller
ok claudio@
2004-05-07add a filter option to dump prefixes learned in UPDATEs into a PF table,Damien Miller
intended for building realtime BGP blacklists (e.g. with spamd); ok claudio & henning
2004-04-30spellingTheo de Raadt
2004-04-08swap the last two parameters to TAILQ_FOREACH_REVERSE. matches what FreeBSDHenning Brauer
and NetBSD do. ok millert@ mcbride@ markus@ ho@, checked to not affect ports by naddy@
2004-03-20comment spelling fixes; ok henning@David Krause
2004-03-12*size is a u_int16_t not a pointer so use 0 instead of NULL.Claudio Jeker
2004-03-12bgpctl has a empty-as keyword so make this actually work. Handle AS_EMPTYClaudio Jeker
in aspath_match().
2004-03-12I modified the print format for AS_SET so keep the aspath_strlen() functionClaudio Jeker
in sync.
2004-03-12tab at EOLClaudio Jeker
2004-03-12Rewrite community_match() for loop. yaya henning@Claudio Jeker
2004-03-11Add basic support for communities. Currently it is only possible to filterClaudio Jeker
on communities, e.g match from any community 24640:* set localpref 666 OK henning@
2004-03-11Ensure that aspath_snprint() returns a zero terminated string also if theClaudio Jeker
aspath is "". Found, OK and tsc tsc tsc henning@