Age | Commit message (Collapse) | Author |
|
flags field. Some systems seem to start sending bad flags around which
cause session failures in bgpd. Make sure that bgpd ignores the must be
zero flags correctly and ensure that they are always reset to zero when
sending updates out.
Reported and patch tested by Laurent CARON, OK henning@
|
|
OK henning@ sthen@
|
|
|
|
the needed bits
ok deraadt@, millert@
|
|
segments. Bgpd does not support confederations but it is too extreme
to close a session because a path contained such elements.
OK henning@, sthen@
|
|
reference in case attr_optadd() errors out.
Found by and diff provided by Igor Zinovik, OK henning@
|
|
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.
ok henning gilles claudio jacekm deraadt
|
|
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@
|
|
the prototype to rde.h
|
|
work but that's already better then nothing. OK sthen@
|
|
indirection.
|
|
extended communities as specified in RFC 4360. No matching implemented yet
and stuff like * and neighbor-as are neither supported but will be soon.
Looks good henning & sthen, manpage fixed by jmc
|
|
a pre allocated piece of memory. Will be used by newer mrt code.
OK henning@
|
|
and we try to prepend. The result was a corrupt AS-PATH and a RDE fatal
later on when some other operation was run on that path.
Found the hard way by henning@ and sthen@. OK henning@, sthen@
|
|
AS4_PATH/AS4_AGGREGATOR. No binary change.
ok claudio
|
|
|
|
AS path and the 2-byte version. If both pathes have the same length don't
try to merge them instead use the new path.
Issue reported by Jon Morby and further analysed by Stuart Henderson.
Tested by Stuart Henderson.
|
|
|
|
|
|
|
|
are now 4-byte instead of the old 2-byte numbers. The only exception are
communities because they can not be switched. The RDE will inflate and deflate
the ASPATH and AGGREGATOR attributes on demand and create the NEW_ASPATH and
NEW_AGGREGATOR field whenever needed. Both old and new stile sessions are
supported and can be mixed. Currently new stile sessions with the 4-byte AS
number capability turned on are only enabled if one of the AS numbers involved
is a 4-byte one.
This is based on an initial diff by Geoff Huston gih (at) apnic (dot) net
Cleanup, testing and bug-fixes by myself (via AS 3.10).
Currently mrt table dumps are producing incompatible output this will be fixed
afterwards -- this diff is already big enough.
"get it in if you think it is ready" henning@
|
|
|
|
|
|
less than 255 attributes can be allocated at max. OK claudio@
|
|
|
|
instead reverse logic and use the same if statement as in the match function.
Issue found and debugged by Leen Besselink. Thanks.
|
|
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@
|
|
Sylvain Coutant memory issues. A lot of patience and testing by Sylvain.
|
|
communities from the path attributes. Useful to make sure that the ones you
set later are set by a (evil) peer. OK henning@
|
|
AS. OK henning@
|
|
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@
|
|
(we do not access it) but does not help either. Finally it reduces head
scratching when debugging the RIB. OK henning@
|
|
|
|
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.
|
|
especially they are accounted in the hash. While there change a 0 to NULL.
|
|
pointer plus a ref counter to link the attributes to the path object.
Saves +/- 10M on 11 full feeds. Looks good Henning
|
|
|
|
|
|
link between bgpctl and bgpd mostly because of rde_attr.c.
|
|
|
|
While there reorder some structs to help with alignment.
|
|
|
|
has been allocated until one knows the allocation has been successful.
|
|
smaller than 255 bytes.
|
|
plus header. Soon needed.
|
|
Return -1 on error 0 on success and make sure that in case of an error
*ret is set to NULL.
|
|
OK henning@
|
|
|
|
|
|
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
|