<feed xmlns='http://www.w3.org/2005/Atom'>
<title>quagga/lib, branch master</title>
<subtitle>Quagga routing suite</subtitle>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/'/>
<entry>
<title>zebra: add ZEBRA_IFC_QUEUED to keep track of kernel state</title>
<updated>2013-09-19T15:51:16+00:00</updated>
<author>
<name>Christian Franke</name>
<email>chris@opensourcerouting.org</email>
</author>
<published>2013-01-24T14:04:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=f7f740fe58fb838fc87e82dc7e1e2d4e5ccf085c'/>
<id>f7f740fe58fb838fc87e82dc7e1e2d4e5ccf085c</id>
<content type='text'>
As there are timeframes when we don't get a notification from the kernel
about new addresses. (e.g. while Linux performs IPv6 DAD), we need to
have some information whether an address has been sent to the kernel or
not.

One case where this is relevant would be a user adding an IPv6 address,
but deleting it before DAD has been complete. With the next patch which
removes some (ill assuming) synchronous parts in address setup,
ipv6_address_uninstall would not know whether or not it has to actually
delete the prefix from the kernel. Resolving these windows where we lack
information is what the flag ZEBRA_IFC_QUEUED is intended for.

Signed-off-by: Christian Franke &lt;chris@opensourcerouting.org&gt;
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As there are timeframes when we don't get a notification from the kernel
about new addresses. (e.g. while Linux performs IPv6 DAD), we need to
have some information whether an address has been sent to the kernel or
not.

One case where this is relevant would be a user adding an IPv6 address,
but deleting it before DAD has been complete. With the next patch which
removes some (ill assuming) synchronous parts in address setup,
ipv6_address_uninstall would not know whether or not it has to actually
delete the prefix from the kernel. Resolving these windows where we lack
information is what the flag ZEBRA_IFC_QUEUED is intended for.

Signed-off-by: Christian Franke &lt;chris@opensourcerouting.org&gt;
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: unconditionally include stddef.h</title>
<updated>2013-07-30T16:14:13+00:00</updated>
<author>
<name>David Lamparter</name>
<email>equinox@opensourcerouting.org</email>
</author>
<published>2013-07-30T13:36:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=c423d413e464913ee88c1ee700e2c4037e6bdb24'/>
<id>c423d413e464913ee88c1ee700e2c4037e6bdb24</id>
<content type='text'>
I've used offsetof() in the previous commit to paper over the security
problems in ospf_api.c.  This blows the build on FreeBSD 7.0, missing
offsetof().  Let's add that to zebra's generally used includes.

stddef.h (and offsetof) is defined in C89 section 4.1.5 (and not
deprecated/removed by any later standard).  If this causes problems, the
bug report should go against the host OS/compiler...

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I've used offsetof() in the previous commit to paper over the security
problems in ospf_api.c.  This blows the build on FreeBSD 7.0, missing
offsetof().  Let's add that to zebra's generally used includes.

stddef.h (and offsetof) is defined in C89 section 4.1.5 (and not
deprecated/removed by any later standard).  If this causes problems, the
bug report should go against the host OS/compiler...

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lib/vty: register vtysh socket in server socket vector (BZ#754)</title>
<updated>2013-04-09T20:35:29+00:00</updated>
<author>
<name>Christian Franke</name>
<email>chris@opensourcerouting.org</email>
</author>
<published>2013-02-27T13:47:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=677bcbbf153fe73e57cb44f668977cbd26661fd4'/>
<id>677bcbbf153fe73e57cb44f668977cbd26661fd4</id>
<content type='text'>
Register the vtysh socket in Vvty_serv_thread so it will be
correctly closed on vty_reset instead of being leaked.

Signed-off-by: Christian Franke &lt;chris@opensourcerouting.org&gt;
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Register the vtysh socket in Vvty_serv_thread so it will be
correctly closed on vty_reset instead of being leaked.

Signed-off-by: Christian Franke &lt;chris@opensourcerouting.org&gt;
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: reference libcap from libzebra (BZ#393,626)</title>
<updated>2013-04-09T15:07:07+00:00</updated>
<author>
<name>David Lamparter</name>
<email>equinox@opensourcerouting.org</email>
</author>
<published>2013-03-01T11:03:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=8df55970b64984e5071afd510caad5e778569bc1'/>
<id>8df55970b64984e5071afd510caad5e778569bc1</id>
<content type='text'>
While the actual build failures have been fixed independently by
d1d3ac9 "build: reorder libraries to address linker error", libzebra
still does not reference libcap.  This will lead to more build failures
if someone else tries to use libzebra and doesn't add libcap.

Let's just add libcap here and be done with it.

I've not added libcap to the _DEPENDENCIES variable above since libcap
is a system library.  Actually, the whole _DEPENDENCIES thing is rather
fishy; automake automatically sets _DEPENDENCIES from _LIBADD.  For the
sake of not breaking stuff that works (especially since most autotools
stuff is arcane magic), I'm leaving it alone...

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While the actual build failures have been fixed independently by
d1d3ac9 "build: reorder libraries to address linker error", libzebra
still does not reference libcap.  This will lead to more build failures
if someone else tries to use libzebra and doesn't add libcap.

Let's just add libcap here and be done with it.

I've not added libcap to the _DEPENDENCIES variable above since libcap
is a system library.  Actually, the whole _DEPENDENCIES thing is rather
fishy; automake automatically sets _DEPENDENCIES from _LIBADD.  For the
sake of not breaking stuff that works (especially since most autotools
stuff is arcane magic), I'm leaving it alone...

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: fix minimal mixup in gitinfo suffix</title>
<updated>2013-04-09T15:05:08+00:00</updated>
<author>
<name>David Lamparter</name>
<email>equinox@opensourcerouting.org</email>
</author>
<published>2013-02-27T10:24:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=4a014580ff85428aa41b28503554b2ce982805be'/>
<id>4a014580ff85428aa41b28503554b2ce982805be</id>
<content type='text'>
the original version of this had issues with tagless repositories; to
fix that I removed the "-g" part from one of the regexes.  I then failed
to add those 2 characters back, leading to version numbers like
"0.99.220123456" instead of "0.99.22-ga123456".  Let's put the "-g"
back...

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the original version of this had issues with tagless repositories; to
fix that I removed the "-g" part from one of the regexes.  I then failed
to add those 2 characters back, leading to version numbers like
"0.99.220123456" instead of "0.99.22-ga123456".  Let's put the "-g"
back...

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hash: dynamically grow hash table</title>
<updated>2013-02-24T19:48:16+00:00</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@vyatta.com</email>
</author>
<published>2013-01-11T18:25:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=97c84db00c01b808337bedf69f696a1517e3d8c0'/>
<id>97c84db00c01b808337bedf69f696a1517e3d8c0</id>
<content type='text'>
Dynamically grow the hash table index if the chains get too long.
If expansion doesn't help keep chain length short, then stop expanding,
to avoid bad behavior if there is a poor hash function.
Not a new idea, based on concepts in uthash.

Depends on my previous patch to restrict hash to power of 2.

Signed-off-by: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
[profiling results: sum of cycles spent in hash_get/jhash with RIPE RIS
 test data (single simple BGP peer) improved to 69% of previously spent]
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Dynamically grow the hash table index if the chains get too long.
If expansion doesn't help keep chain length short, then stop expanding,
to avoid bad behavior if there is a poor hash function.
Not a new idea, based on concepts in uthash.

Depends on my previous patch to restrict hash to power of 2.

Signed-off-by: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
[profiling results: sum of cycles spent in hash_get/jhash with RIPE RIS
 test data (single simple BGP peer) improved to 69% of previously spent]
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hash: force size to be a power of 2</title>
<updated>2013-02-24T19:42:40+00:00</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@vyatta.com</email>
</author>
<published>2013-01-04T22:29:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=90645f5598ca8b25cd2692f2ac0d2778a3fd2755'/>
<id>90645f5598ca8b25cd2692f2ac0d2778a3fd2755</id>
<content type='text'>
By forcing the hash table size to be a power of 2, a potentially
expensive divide can be replaced by a mask operation. Almost all
usage of the hash table was using default size of 1024. Only places
with different size was thread library (1011) and bgp aspath.

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By forcing the hash table size to be a power of 2, a potentially
expensive divide can be replaced by a mask operation. Almost all
usage of the hash table was using default size of 1024. Only places
with different size was thread library (1011) and bgp aspath.

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>zebra: fix sockaddr_dl length assumptions (BZ#737)</title>
<updated>2013-01-16T00:45:57+00:00</updated>
<author>
<name>David Lamparter</name>
<email>equinox@opensourcerouting.org</email>
</author>
<published>2012-09-26T12:52:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=ca3ccd8748434719e4670ce812d1310013fad518'/>
<id>ca3ccd8748434719e4670ce812d1310013fad518</id>
<content type='text'>
Quagga makes bad assumptions about sockaddr_dl (on NetBSD, but possibly
on other systems as well).  Particularly, sizeof(struct sockaddr_dl)
returns a size that does not include the full sdl_data field, leading to
not enough data being copied.  This breaks IPv6 RAs in particular, as
a broken mac address from sockaddr_dl will be included in the packets.

From: Matthias-Christian Ott &lt;ott@mirix.org&gt;
Tested-by: Uwe Toenjes &lt;6bone@6bone.informatik.uni-leipzig.de&gt;
[further simplified + more comments]
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Quagga makes bad assumptions about sockaddr_dl (on NetBSD, but possibly
on other systems as well).  Particularly, sizeof(struct sockaddr_dl)
returns a size that does not include the full sdl_data field, leading to
not enough data being copied.  This breaks IPv6 RAs in particular, as
a broken mac address from sockaddr_dl will be included in the packets.

From: Matthias-Christian Ott &lt;ott@mirix.org&gt;
Tested-by: Uwe Toenjes &lt;6bone@6bone.informatik.uni-leipzig.de&gt;
[further simplified + more comments]
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: Fix build on MacOSX 10.8 (Mountain Lion)</title>
<updated>2013-01-15T16:57:03+00:00</updated>
<author>
<name>Hasso Tepper</name>
<email>hasso.tepper@gmail.com</email>
</author>
<published>2013-01-13T17:45:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=ea05767770d759d46f97d1dc33423de72ae20ccd'/>
<id>ea05767770d759d46f97d1dc33423de72ae20ccd</id>
<content type='text'>
Newer MacOSX versions have support for both IPv6 advanced socket API
RFCs (2292 and 3542) switchable in compile time, but neither of these
is default for some strange reason. RFC3542 will be default in future,
but for now we have to declare that we want to use the RFC3542 API
before including &lt;netinet/in.h&gt;.

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Newer MacOSX versions have support for both IPv6 advanced socket API
RFCs (2292 and 3542) switchable in compile time, but neither of these
is default for some strange reason. RFC3542 will be default in future,
but for now we have to declare that we want to use the RFC3542 API
before including &lt;netinet/in.h&gt;.

Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bgpd: improve logging of invalid BGP Notifications</title>
<updated>2013-01-15T16:22:01+00:00</updated>
<author>
<name>Leonid Rosenboim</name>
<email>lrosenbo@wrs.com</email>
</author>
<published>2012-12-07T21:31:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sublab.org/quagga/commit/?id=1e0ce7caa622f07c20bb74414a4a5b4cbd732c75'/>
<id>1e0ce7caa622f07c20bb74414a4a5b4cbd732c75</id>
<content type='text'>
Invalid BGP Notification messages should be logged locally, cf.
RFC4271, Sect. 6.4, p 34,
  NOTIFICATION Message Error Handling

Current notification for invalid Notification code:

  2012/10/10 02:17:54 BGP: message index 10 not found in bgp_notify_msg (max is 8)
  2012/10/10 02:17:54 BGP: 192.168.1.1 received NOTIFICATION 10/0 ((no item found)) 0 bytes

the logging should be a bit more clear. The above logging really doesn't
explain much and looks more like a programming error.

[rewrote most of it to get in something I can call a shape -David]
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Invalid BGP Notification messages should be logged locally, cf.
RFC4271, Sect. 6.4, p 34,
  NOTIFICATION Message Error Handling

Current notification for invalid Notification code:

  2012/10/10 02:17:54 BGP: message index 10 not found in bgp_notify_msg (max is 8)
  2012/10/10 02:17:54 BGP: 192.168.1.1 received NOTIFICATION 10/0 ((no item found)) 0 bytes

the logging should be a bit more clear. The above logging really doesn't
explain much and looks more like a programming error.

[rewrote most of it to get in something I can call a shape -David]
Signed-off-by: David Lamparter &lt;equinox@opensourcerouting.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
