Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package bird3 for openSUSE:Factory checked 
in at 2026-03-23 17:13:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bird3 (Old)
 and      /work/SRC/openSUSE:Factory/.bird3.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bird3"

Mon Mar 23 17:13:21 2026 rev:6 rq:1341906 version:3.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/bird3/bird3.changes      2025-09-23 
17:45:53.825723417 +0200
+++ /work/SRC/openSUSE:Factory/.bird3.new.8177/bird3.changes    2026-03-23 
17:14:32.864617890 +0100
@@ -1,0 +2,11 @@
+Tue Mar  3 23:33:29 UTC 2026 - Blake Purdie <[email protected]>
+
+- Update to version 3.2.0
+  * BGP: Listening socket rework
+  * IGP metric: Split out local_metric again
+  * Table: Optimal and Any Export refactoring
+  * Various race condition fixes
+  * All fixes included in 3.1.0 -- 3.1.5
+  * Merged 2.18 
+
+-------------------------------------------------------------------

Old:
----
  bird-3.1.4.tar.gz
  bird-doc-3.1.4.tar.gz

New:
----
  bird-3.2.0.tar.gz
  bird-doc-3.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bird3.spec ++++++
--- /var/tmp/diff_new_pack.fxYQHh/_old  2026-03-23 17:14:33.568647171 +0100
+++ /var/tmp/diff_new_pack.fxYQHh/_new  2026-03-23 17:14:33.568647171 +0100
@@ -17,7 +17,7 @@
 
 %define bird_runtimedir %{_rundir}/bird
 Name:           bird3
-Version:        3.1.4
+Version:        3.2.0
 Release:        0
 Summary:        The BIRD Internet Routing Daemon
 License:        GPL-2.0-or-later

++++++ bird-3.1.4.tar.gz -> bird-3.2.0.tar.gz ++++++
++++ 19800 lines of diff (skipped)

++++++ bird-doc-3.1.4.tar.gz -> bird-doc-3.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird-1.html 
new/bird-doc-3.2.0/doc/bird-1.html
--- old/bird-doc-3.1.4/doc/bird-1.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird-1.html  2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide: Introduction</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide: Introduction</TITLE>
  <LINK HREF="bird-2.html" REL=next>
 
  <LINK HREF="bird.html#toc1" REL=contents>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird-2.html 
new/bird-doc-3.2.0/doc/bird-2.html
--- old/bird-doc-3.1.4/doc/bird-2.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird-2.html  2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide: Architecture</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide: Architecture</TITLE>
  <LINK HREF="bird-3.html" REL=next>
  <LINK HREF="bird-1.html" REL=previous>
  <LINK HREF="bird.html#toc2" REL=contents>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird-3.html 
new/bird-doc-3.2.0/doc/bird-3.html
--- old/bird-doc-3.1.4/doc/bird-3.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird-3.html  2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide: Configuration</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide: Configuration</TITLE>
  <LINK HREF="bird-4.html" REL=next>
  <LINK HREF="bird-2.html" REL=previous>
  <LINK HREF="bird.html#toc3" REL=contents>
@@ -35,6 +35,13 @@
 and than you can use any combination of numbers, letters, underscores, hyphens,
 dots and colons (e.g.  <CODE>'1:strange-name'</CODE>, <CODE>'-NAME-'</CODE>, 
<CODE>'cool::name'</CODE>).
 <P>
+<P>In most cases where options use an argument that is a basic data type (e.g.
+number, string, IP address) it is possible to use a named constant (defined
+by 
+<A HREF="#opt-define">define</A> statement), or a constant expression
+enclosed in parenthesis (e.g. <CODE>(2 + 2)</CODE>). These expressions use
+<A HREF="bird-5.html#filters">the BIRD filter language</A>.
+<P>
 <P>Here is an example of a simple config file. It enables synchronization of
 routing tables with OS kernel, learns network interfaces and runs RIP on all
 network interfaces found.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird-4.html 
new/bird-doc-3.2.0/doc/bird-4.html
--- old/bird-doc-3.1.4/doc/bird-4.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird-4.html  2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide: Remote control</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide: Remote control</TITLE>
  <LINK HREF="bird-5.html" REL=next>
  <LINK HREF="bird-3.html" REL=previous>
  <LINK HREF="bird.html#toc4" REL=contents>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird-5.html 
new/bird-doc-3.2.0/doc/bird-5.html
--- old/bird-doc-3.1.4/doc/bird-5.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird-5.html  2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide: Filters</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide: Filters</TITLE>
  <LINK HREF="bird-6.html" REL=next>
  <LINK HREF="bird-4.html" REL=previous>
  <LINK HREF="bird.html#toc5" REL=contents>
@@ -148,17 +148,20 @@
 <A NAME="type-string"></A> string</CODE><DD><P>This is a string of characters. 
There are no ways to modify strings in
 filters. You can pass them between functions, assign them to variables
 of type <CODE>string</CODE>, print such variables, use standard string
-comparison operations (e.g. <CODE>=, !=, &lt;, &gt;, &lt;=, &gt;=</CODE>), but
-you can't concatenate two strings. String literals are written as
-<CODE>"This is a string constant"</CODE>. Additionally matching (<CODE>~,
-!~</CODE>) operators could be used to match a string value against
-a shell pattern (represented also as a string).
+comparison operations (e.g. <CODE>=, !=, &lt;, &gt;, &lt;=, &gt;=</CODE>), and
+concatenate two strings with <CODE>append(<I>A</I>, <I>B</I>)</CODE> function 
or
+<CODE>++</CODE> operator.
+<P>String literals are written as <CODE>"This is a string constant"</CODE>.
+Additionally matching (<CODE>~, !~</CODE>) operators could be used
+to match a string value against a shell pattern (represented also as a
+string).
 <P>
 <DT><CODE>
 <A NAME="type-bytestring"></A> bytestring</CODE><DD><P>This is a sequence of 
arbitrary bytes. There are no ways to modify
 bytestrings in filters. You can pass them between functions, assign
-them to variables of type <CODE>bytestring</CODE>, print such values, and
-compare bytestings (<CODE>=, !=</CODE>).
+them to variables of type <CODE>bytestring</CODE>, print such values, compare
+bytestings (<CODE>=, !=</CODE>), and concatenate two bytestrings with
+<CODE>append(<I>A</I>, <I>B</I>)</CODE> function or <CODE>++</CODE> operator.
 <P>Bytestring literals are written as a sequence of hexadecimal digit
 pairs, optionally colon-separated. A bytestring specified this way
 must be either at least 16 bytes (32 digits) long, or prefixed by the
@@ -416,6 +419,7 @@
 parentheses <CODE>(a*(b+c))</CODE>, comparison <CODE>(a=b, a!=b, a&lt;b, 
a&gt;=b)</CODE>.
 <P>Logical operations include unary not (<CODE>!</CODE>), and 
(<CODE>&amp;&amp;</CODE>), and or
 (<CODE>||</CODE>).
+<P>Strings and bytestrings can be concatenated with <CODE>++</CODE> operator.
 <P>Special operators include (<CODE>~</CODE>, <CODE>!~</CODE>) for "is (not) 
element
 of a set" operation - it can be used on:
 <UL>
@@ -643,8 +647,21 @@
 <DT><CODE>
 <A NAME="rta-igp-metric"></A> <I>int</I> igp_metric</CODE><DD><P>The optional 
attribute that can be used to specify a distance to the
 network for routes that do not have a native protocol metric attribute
-(like <CODE>ospf_metric1</CODE> for OSPF routes). It is used mainly by BGP to
-compare internal distances to boundary routers (see below).
+(like <CODE>ospf_metric1</CODE> for OSPF routes). It is used to fill in
+<A HREF="#rta-local-metric">local_metric</A> attribute when recursive
+nexthops are resolved, so that BGP can compare internal distances
+to boundary routers (see below).
+<P>
+<DT><CODE>
+<A NAME="rta-local-metric"></A> <I>int</I> local_metric</CODE><DD><P>Attribute 
storing the route's metric to the resolved recursive nexthop,
+mainly used by BGP best route selection. Also known as "interior cost"
+in RFC 4271.
+It's the copy of the underlying protocol's metric, e.g.
+<CODE>ospf_metric1</CODE>, or the generic <CODE>igp_metric</CODE>. For 
recursive nexthops,
+setting the <CODE>local_metric</CODE> attribute in the import filters is 
futile,
+as the nexthop resolver overwrites it.
+Note: In versions 3.0.x and 3.1.x, the <CODE>igp_metric</CODE> attribute was 
confusingly
+used for this purpose.
 <P>
 <DT><CODE>
 <A NAME="rta-mpls-label"></A> <I>int</I> mpls_label</CODE><DD><P>Local MPLS 
label attached to the route. This attribute is produced by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird-6.html 
new/bird-doc-3.2.0/doc/bird-6.html
--- old/bird-doc-3.1.4/doc/bird-6.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird-6.html  2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide: Protocols</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide: Protocols</TITLE>
  <LINK HREF="bird-7.html" REL=next>
  <LINK HREF="bird-5.html" REL=previous>
  <LINK HREF="bird.html#toc6" REL=contents>
@@ -691,7 +691,8 @@
 <LI>Prefer IGP origin over EGP and EGP origin over incomplete.</LI>
 <LI>Prefer the lowest value of the Multiple Exit Discriminator.</LI>
 <LI>Prefer routes received via eBGP over ones received via iBGP.</LI>
-<LI>Prefer routes with lower internal distance to a boundary router.</LI>
+<LI>Prefer routes with lower 
+<A HREF="bird-5.html#rta-local-metric">internal distance</A> to a boundary 
router.</LI>
 <LI>Prefer the route with the lowest value of router ID of the
 advertising router.</LI>
 </UL>
@@ -743,8 +744,10 @@
                 max long lived stale time &lt;number>;
         };
         local [&lt;ip>] [port &lt;number>] [as &lt;number>];
-        neighbor [&lt;ip> | range &lt;prefix>] [port &lt;number>] [as 
&lt;number>] [internal|external];
+        neighbor [&lt;ip> | range &lt;prefix>] [onlink] [port &lt;number>] [as 
&lt;number>] [internal|external];
         interface "&lt;text>";
+        interface range &lt;interface pattern>;
+        onlink &lt;switch>;
         direct;
         multihop [&lt;number>];
         source address &lt;ip>;
@@ -857,7 +860,13 @@
 instances are spawned for incoming BGP connections (if source address
 matches the network prefix). It is possible to mix regular BGP instances
 with dynamic BGP instances and have multiple dynamic BGP instances with
-different ranges.
+different ranges. These spawned dynamic BGP instances share the parent
+configuration, therefore by reconfiguring the parent protocol forces
+reconfiguration of the spawned protocols.
+<P>When the neighbor range is changed, all the spawned dynamic instances
+shut down. Reconfiguration clears all dynamic instances which were
+previously disabled by the <CODE>disable</CODE> CLI command. This may re-enable
+connection of some clients otherwise blocked by the disabled instance.
 <P>
 <DT><CODE>
 <A NAME="bgp-iface"></A> interface "<I>text</I>"</CODE><DD><P>Define interface 
we should use for link-local BGP IPv6 sessions.
@@ -867,6 +876,33 @@
 specify an interface, but only for direct (not multihop) sessions.
 <P>
 <DT><CODE>
+<A NAME="bgp-iface-range"></A> interface range <I>interface 
pattern</I></CODE><DD><P>Set interface pattern to which the connection will be 
bound. This is
+mostly useful with the <CODE>neighbor range</CODE> option and either link-local
+addresses or with the <CODE>onlink</CODE> option where it's not known up front
+which interface the connection comes on but it needs to stay there.
+<P>This option requires <CODE>strict bind</CODE> to be on and creates a 
separate
+listening socket for every single interface matching the pattern. If the
+local address is set, it also requires this exact address to be set on
+that interface to create a listening socket.
+<P>Also see <CODE>strict bind</CODE> and <CODE>free bind</CODE>.
+<P>
+<DT><CODE>
+<A NAME="bgp-onlink"></A> onlink <I>switch</I></CODE><DD><P>For a direct 
neighbor, the BGP session starts immediately without
+waiting for the neighbor's address to appear on any interface.
+This option requires an interface to be configured. Next hops
+of all routes from this session also have the <CODE>onlink</CODE> attribute.
+<P>This option may generally lead to weird behavior without other
+configuration in place. One may e.g. need to insert a working route
+for the given neighbor manually to allow for ACKs from the incoming
+connection to be routed back correctly. That route may also need to
+be announced via IGP, or <CODE>next hop self</CODE> in iBGP may be needed.
+<P>When trying setups with no neighbor route in containerized environments,
+we got some results with <CODE>strict bind</CODE>. As of Linux 6.12, we can't
+recommend running that setup though.
+<P>Onlink behavior may also be specified inside the <CODE>neighbor</CODE> 
option.
+Default: disabled.
+<P>
+<DT><CODE>
 <A NAME="bgp-direct"></A> direct</CODE><DD><P>Specify that the neighbor is 
directly connected. The IP address of the
 neighbor must be from a directly reachable IP range (i.e. associated
 with one of your router's interfaces), otherwise the BGP session
@@ -902,19 +938,29 @@
 <P>
 <DT><CODE>
 <A NAME="bgp-strict-bind"></A> strict bind <I>switch</I></CODE><DD><P>Specify 
whether BGP listening socket should be bound to a specific local
-address (the same as the <CODE>source address</CODE>) and associated interface,
+address (the same as the <CODE>source address</CODE>) and associated interface
 or to all addresses. Binding to a specific address could be useful in
 cases like running multiple BIRD instances on a machine, each using its
-IP address. Note that listening sockets bound to a specific address and
-to all addresses collide, therefore either all BGP protocols (of the
-same address family and using the same local port) should have set
-<CODE>strict bind</CODE>, or none of them. Default: disabled.
+IP address.
+<P>Note that listening sockets bound to a specific address and
+to all addresses collide. Also listening sockets bound
+to a specific interface and to all interfaces may behave weirdly.
+Therefore, all BGP protocols (of the same address family and using
+the same local port) should have set <CODE>strict bind</CODE>, or none of them,
+and in the same way, all should have a <CODE>interface</CODE> or 
<CODE>interface range</CODE>
+or none of them.
+<P>Default: disabled.
 <P>
 <DT><CODE>
 <A NAME="bgp-free-bind"></A> free bind <I>switch</I></CODE><DD><P>Use 
IP_FREEBIND socket option for the listening socket, which allows
 binding to an IP address not (yet) assigned to an interface. Note that
 all BGP instances that share a listening socket should have the same
-value of the <CODE>freebind</CODE> option. Default: disabled.
+value of the <CODE>free bind</CODE> option.
+<P>If <CODE>interface range</CODE> is set together with a local address
+and <CODE>free bind</CODE> as well, it creates a free-bind listening socket
+for every interface regardless of the assigned address. This is
+an experimental feature.
+<P>Default: disabled.
 <P>
 <DT><CODE>
 <A NAME="bgp-check-link"></A> check link <I>switch</I></CODE><DD><P>BGP could 
use hardware link state into consideration.  If enabled,
@@ -1084,14 +1130,15 @@
 other means. Default: 0 (no local AS number allowed).
 <P>
 <DT><CODE>
-<A NAME="bgp-allow-as-sets"></A> allow as sets <I>switch</I></CODE><DD><P>AS 
path attribute received with BGP routes may contain not only
-sequences of AS numbers, but also sets of AS numbers. These rarely used
-artifacts are results of inter-AS route aggregation. AS sets are
-deprecated (<A HREF="http://www.rfc-editor.org/info/rfc6472";>RFC 6472</A>), 
and likely to be rejected in the future,
-as they complicate security features like RPKI validation. When this
-option is disabled, then received AS paths with AS sets are rejected as
-malformed and corresponding BGP updates are treated as withdraws.
-Default: on.
+<A NAME="bgp-allow-as-sets"></A> allow as sets 
<I>switch</I></CODE><DD><P>Historically, AS path attribute received with BGP 
routes may have
+contained not only sequences of AS numbers, but also sets of AS numbers.
+These rarely used artifacts were results of inter-AS route aggregation.
+AS sets are deprecated (<A HREF="http://www.rfc-editor.org/info/rfc6472";>RFC 
6472</A>, <A HREF="http://www.rfc-editor.org/info/rfc9774";>RFC 9774</A>) and AS 
paths
+containing them (or AS confed sets) are considered malformed.
+Corresponding BGP updates are therefore treated as withdraws.
+When this option is enabled, then received AS paths containing these
+deprecated AS sets or AS confed sets are accepted.
+Default: off (since 2.18 and 3.2).
 <P>
 <DT><CODE>
 <A NAME="bgp-enforce-first-as"></A> enforce first as 
<I>switch</I></CODE><DD><P>Routes received from an EBGP neighbor are generally 
expected to have the
@@ -1481,19 +1528,23 @@
 interface.
 <P>
 <DT><CODE>
-<A NAME="bgp-next-hop-prefer"></A> next hop prefer global</CODE><DD><P>Prefer 
global IPv6 address to link-local IPv6 address for immediate next
-hops of received routes. For IPv6 routes, the Next Hop attribute may
-contain both a global IP address and a link-local IP address. For IBGP
-sessions, the global IP address is resolved (
-<A HREF="#bgp-gateway">gateway recursive</A>) through an IGP routing table
-(
-<A HREF="#bgp-igp-table">igp table</A>) to get an immediate next
-hop. If the resulting IGP route is a direct route (i.e., the next hop is
-a direct neighbor), then the link-local IP address from the Next Hop
-attribute is used as the immediate next hop. This option change it to
-use the global IP address instead. Note that even with this option
-enabled a route may end with a link-local immediate next hop when the
-IGP route has one. Default: disabled.
+<A NAME="bgp-next-hop-prefer"></A> next hop prefer 
global|local</CODE><DD><P>For IPv6 routes, the Next Hop attribute may contain 
both a global IP
+address and a link-local IP address. For IBGP sessions, the global IP
+address is resolved (
+<A HREF="#bgp-gateway">gateway recursive</A>)
+through an IGP routing table (
+<A HREF="#bgp-igp-table">igp table</A>)
+to get an immediate next hop. If the resulting IGP route is a direct
+route (i.e., the next hop is a direct neighbor), then the link-local
+IP address from the Next Hop attribute is used as the immediate next hop.
+This option changes it to prefer global or link-local IP address,
+respectively. Note that even with this option set to global, route may
+end with a link-local immediate next hop when the IGP route has one.
+<P>When set to <CODE>local</CODE>, prefer link-local IPv6 addresses over global
+addresses for immediate next hops of received routes. When set to
+<CODE>global</CODE>, prefer global IPv6 address to link-local IPv6 address for
+immediate next hops of received routes. Default: global in direct mode
+(EBGP), local in recursive mode (IBGP).
 <P>
 <DT><CODE>
 <A NAME="bgp-link-local-next-hop-format"></A> link local next hop format 
native|single|double</CODE><DD><P>For IPv6 routes, BGP assumes that the Next 
Hop attribute contains a
@@ -1731,7 +1782,6 @@
 <P>
 <UL>
 <LI><CODE>export</CODE></LI>
-<LI><CODE>next hop address</CODE></LI>
 <LI><CODE>next hop self</CODE></LI>
 <LI><CODE>next hop keep</CODE></LI>
 <LI><CODE>link local next hop format</CODE></LI>
@@ -1758,6 +1808,7 @@
 <LI><CODE>require hostname</CODE></LI>
 <LI><CODE>require graceful restart</CODE></LI>
 <LI><CODE>require long lived graceful restart</CODE></LI>
+<LI><CODE>interface range</CODE> if the already existing option is updated to 
another value.</LI>
 </UL>
 <P>
 <P>Channel options that cause a restart when changed:
@@ -1768,6 +1819,7 @@
 <LI><CODE>graceful restart</CODE></LI>
 <LI><CODE>long lived graceful restart</CODE></LI>
 <LI><CODE>long lived stale time</CODE></LI>
+<LI><CODE>next hop address</CODE></LI>
 <LI><CODE>extended next hop</CODE></LI>
 <LI><CODE>add paths</CODE></LI>
 <LI><CODE>import table</CODE></LI>
@@ -1784,6 +1836,10 @@
 <LI><CODE>max long lived stale time</CODE></LI>
 </UL>
 <P>
+<P>All these configuration changes apply also to the spawned dynamic BGP 
sessions
+and therefore reconfiguring the parent protocol may lead to shutdown of some 
or all
+of the dynamic BGP sessions.
+<P>
 <H3><A NAME="bgp-attr"></A> Attributes</H3>
 
 <P>BGP defines several route attributes. Some of them (those marked with
@@ -2353,18 +2409,18 @@
 <A NAME="l3vpn-rd"></A> rd <I>rd</I></CODE><DD><P>A shorthand for the option 
<CODE>route distinguisher</CODE>.
 <P>
 <DT><CODE>
-<A NAME="l3vpn-import-target"></A> import target 
<I>ec</I>|<I>ec-set</I></CODE><DD><P>Route target extended communities 
specifying which routes should be
+<A NAME="l3vpn-import-target"></A> import target 
<I>ec</I>|<I>ec-set</I>|none|all</CODE><DD><P>Route target extended communities 
specifying which routes should be
 imported. Either one community or a set. A route is imported if there is
 non-empty intersection between extended communities of the route and the
 import target of the L3VPN protocol. Mandatory.
 <P>
 <DT><CODE>
-<A NAME="l3vpn-export-target"></A> export target 
<I>ec</I>|<I>ec-set</I></CODE><DD><P>Route target extended communities that are 
attached to the route in the
+<A NAME="l3vpn-export-target"></A> export target 
<I>ec</I>|<I>ec-set</I>|none</CODE><DD><P>Route target extended communities 
that are attached to the route in the
 export direction. Either one community or a set. Other route target
 extended communities are removed. Mandatory.
 <P>
 <DT><CODE>
-<A NAME="l3vpn-route-target"></A> route target 
<I>ec</I>|<I>ec-set</I></CODE><DD><P>A shorthand for both <CODE>import 
target</CODE> and <CODE>export target</CODE>.
+<A NAME="l3vpn-route-target"></A> route target 
<I>ec</I>|<I>ec-set</I>|none</CODE><DD><P>A shorthand for both <CODE>import 
target</CODE> and <CODE>export target</CODE>.
 </DL>
 <P>
 <H3><A NAME="l3vpn-attr"></A> Attributes</H3>
@@ -3489,6 +3545,11 @@
 stateless autoconfiguration. Default: yes
 <P>
 <DT><CODE>
+<A NAME="radv-prefix-pd-preferred"></A> pd 
preferred<I>switch</I></CODE><DD><P>This option specifies whether hosts should 
use prefix delegation in DHCPv6
+instead of using stateless address autoconfiguration (SLAAC).
+Default: no.
+<P>
+<DT><CODE>
 <A NAME="radv-prefix-valid-lifetime"></A> valid lifetime <I>expr</I> 
[sensitive <I>switch</I>]</CODE><DD><P>This option specifies the time (in 
seconds) how long (after the
 receipt of RA) the prefix information is valid, i.e., autoconfigured
 IP addresses can be assigned and hosts with that IP addresses are
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird-7.html 
new/bird-doc-3.2.0/doc/bird-7.html
--- old/bird-doc-3.1.4/doc/bird-7.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird-7.html  2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide: Conclusions</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide: Conclusions</TITLE>
  <LINK HREF="bird-6.html" REL=previous>
  <LINK HREF="bird.html#toc7" REL=contents>
 </HEAD>
@@ -35,22 +35,21 @@
 (<A HREF="mailto:[email protected]";>[email protected]</A>)
 where you can share your experiences with the other users and consult
 your problems with the authors. To subscribe to the list, visit
-<A HREF="http://bird.network.cz/?m_list";>http://bird.network.cz/?m_list</A>.
-The home page of BIRD can be found at <A 
HREF="http://bird.network.cz/";>http://bird.network.cz/</A>.
+<A 
HREF="https://bird.network.cz/mailman/listinfo/bird-users";>https://bird.network.cz/mailman/listinfo/bird-users</A>.
+The home page of BIRD can be found at <A 
HREF="http://bird.nic.cz/";>http://bird.nic.cz/</A>.
 <P>
 <P>BIRD is a relatively young system and it probably contains some bugs. You 
can
 report any problems to the bird-users list and the authors will be glad to 
solve
 them, but before you do so, please make sure you have read the available
 documentation and that you are running the latest version (available at
-<A HREF="ftp://bird.network.cz/pub/bird";>bird.network.cz:/pub/bird</A>).
+<A HREF="https://bird.nic.cz/get-bird";>https://bird.nic.cz/get-bird</A>).
 (Of course, a patch which fixes the bug is always welcome as an attachment.)
 <P>
 <P>If you want to understand what is going inside, Internet standards are a 
good
 and interesting reading. You can get them from
-<A HREF="ftp://ftp.rfc-editor.org/";>ftp.rfc-editor.org</A> (or a
-nicely sorted version from <A 
HREF="ftp://atrey.karlin.mff.cuni.cz/pub/rfc";>atrey.karlin.mff.cuni.cz:/pub/rfc</A>).
+<A HREF="ftp://ftp.rfc-editor.org/";>ftp.rfc-editor.org</A>.
 <P>
-<P><I>Good luck!</I>
+<P><I>Good luck and happy routing!</I>
 <P>
 <HR>
 Next
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/bird.html 
new/bird-doc-3.2.0/doc/bird.html
--- old/bird-doc-3.1.4/doc/bird.html    2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/bird.html    2025-12-26 17:16:05.000000000 +0100
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
- <TITLE>BIRD 3.1.4 User's Guide</TITLE>
+ <TITLE>BIRD 3.2.0 User's Guide</TITLE>
  <LINK HREF="bird-1.html" REL=next>
 
 
@@ -12,12 +12,12 @@
 Previous
 Contents
 <HR>
-<H1>BIRD 3.1.4 User's Guide</H1>
+<H1>BIRD 3.2.0 User's Guide</H1>
 
 <H2>Ondrej Filip <I>&lt;[email protected]&gt;</I>,
 Martin Mares <I>&lt;[email protected]&gt;</I>,
 Maria Matejka <I>&lt;[email protected]&gt;</I>,
-Ondrej Zajicek <I>&lt;[email protected]&gt;</I></H2>
+Ondrej Zajicek <I>&lt;[email protected]&gt;</I></H2>Fri, 26 Dec 2025 
17:16:05 +0100bird-userdoc
 <P><HR>
 <EM>This document contains user documentation for the BIRD Internet Routing 
Daemon project.</EM>
 <HR>
Binary files old/bird-doc-3.1.4/doc/bird.pdf and 
new/bird-doc-3.2.0/doc/bird.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/prog-2.html 
new/bird-doc-3.2.0/doc/prog-2.html
--- old/bird-doc-3.1.4/doc/prog-2.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/prog-2.html  2025-12-26 17:16:05.000000000 +0100
@@ -301,6 +301,77 @@
 
 
 <HR><H3>Function</H3>
+<P><I>bool</I>
+<B>export_filter</B>
+(<I>struct channel *</I> <B>c</B>, <I>rte *</I> <B>rt</B>, <I>int</I> 
<B>silent</B>) --     evaluate export filters
+<P>
+<H3>Arguments</H3>
+<P>
+<DL>
+<DT><I>struct channel *</I> <B>c</B><DD><P>related channel
+<DT><I>rte *</I> <B>rt</B><DD><P>route to evaluate; mutable, may be modified 
by the filters (!)
+<DT><I>int</I> <B>silent</B><DD><P>no logging, reuse old results
+</DL>
+<H3>Description</H3>
+<P>Evaluate the filters on the export, including the preexport hook
+of the exporting protocol. Returns the result of the filter, i.e.
+true if accept, false if reject.
+
+
+<HR><H3>Function</H3>
+<P><I>void</I>
+<B>do_rt_notify</B>
+(<I>struct channel *</I> <B>c</B>, <I>const net_addr *</I> <B>net</B>, <I>rte 
*</I> <B>new</B>, <I>const rte *</I> <B>old</B>) --     actually export the 
route to the protocol
+<P>
+<H3>Arguments</H3>
+<P>
+<DL>
+<DT><I>struct channel *</I> <B>c</B><DD><P>channel to use
+<DT><I>const net_addr *</I> <B>net</B><DD><P>related network
+<DT><I>rte *</I> <B>new</B><DD><P>announced route
+<DT><I>const rte *</I> <B>old</B><DD><P>withdrawn route
+</DL>
+<H3>Description</H3>
+<P>This function does all the common things which must happen before the
+protocol's <B>rt_notify()</B> hook is called, most notably channel limit 
checks,
+stats update and logging.
+
+
+<HR><H3>Function</H3>
+<P><I>void</I>
+<B>rt_notify_basic</B>
+(<I>struct channel *</I> <B>c</B>, <I>const rte *</I> <B>new</B>, <I>const rte 
*</I> <B>old</B>, <I>const rte *</I> <B>trte</B>) --     common route exporter 
for RA_OPTIMAL and RA_ANY
+<P>
+<H3>Arguments</H3>
+<P>
+<DL>
+<DT><I>struct channel *</I> <B>c</B><DD><P>channel to use
+<DT><I>const rte *</I> <B>new</B><DD><P>announced route
+<DT><I>const rte *</I> <B>old</B><DD><P>withdrawn route
+<DT><I>const rte *</I> <B>trte</B><DD><P>-- undescribed --
+</DL>
+<H3>Description</H3>
+<P>This function expects to get refined pairs of announced and withdrawn route
+which have already been selected so that the old route has been seen before.
+
+
+<HR><H3>Function</H3>
+<P><I>void</I>
+<B>channel_notify_optimal</B>
+(<I>void *</I> <B>_channel</B>) --     process the export queue for RA_OPTIMAL
+<P>
+<H3>Arguments</H3>
+<P>
+<DL>
+<DT><I>void *</I> <B>_channel</B><DD><P>channel to use
+</DL>
+<H3>Description</H3>
+<P>Actually an event hook. Walks the export journal and distills pairs of
+announced and withdrawn routes for <B>rt_notify_basic()</B>. Scheduled when the
+journal gets some new items.
+
+
+<HR><H3>Function</H3>
 <P><I>void</I>
 <B>rt_refresh_begin</B>
 (<I>struct rt_import_request *</I> <B>req</B>) --     start a refresh cycle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/prog-4.html 
new/bird-doc-3.2.0/doc/prog-4.html
--- old/bird-doc-3.1.4/doc/prog-4.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/prog-4.html  2025-12-26 17:16:05.000000000 +0100
@@ -127,11 +127,12 @@
 <HR><H3>Function</H3>
 <P><I>struct f_tree *</I>
 <B>build_tree</B>
-(<I>struct f_tree *</I> <B>from</B>)
+(<I>struct f_tree *</I> <B>from</B>, <I>bool</I> <B>merge</B>)
 <H3>Arguments</H3>
 <P>
 <DL>
 <DT><I>struct f_tree *</I> <B>from</B><DD><P>degenerated tree (linked by 
<B>tree</B>-&gt;left) to be transformed into form suitable for 
<B>find_tree()</B>
+<DT><I>bool</I> <B>merge</B><DD><P>-- undescribed --
 </DL>
 <H3>Description</H3>
 <P>Transforms degenerated tree into balanced tree.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/prog-5.html 
new/bird-doc-3.2.0/doc/prog-5.html
--- old/bird-doc-3.1.4/doc/prog-5.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/prog-5.html  2025-12-26 17:16:05.000000000 +0100
@@ -518,6 +518,37 @@
 <P>
 <P><HR><H3>Function</H3>
 <P><I>int</I>
+<B>bgp_open</B>
+(<I>struct bgp_proto *</I> <B>p</B>) --     open a BGP instance
+<P>
+<H3>Arguments</H3>
+<P>
+<DL>
+<DT><I>struct bgp_proto *</I> <B>p</B><DD><P>BGP instance
+</DL>
+<H3>Description</H3>
+<P>This function allocates and configures shared BGP resources, mainly 
listening
+sockets. Should be called as the last step during initialization (when lock
+is acquired and neighbor is ready). When error, caller should change state to
+PS_DOWN and return immediately.
+
+
+<HR><H3>Function</H3>
+<P><I>void</I>
+<B>bgp_close</B>
+(<I>struct bgp_proto *</I> <B>p</B>) --     close a BGP instance
+<P>
+<H3>Arguments</H3>
+<P>
+<DL>
+<DT><I>struct bgp_proto *</I> <B>p</B><DD><P>BGP instance
+</DL>
+<H3>Description</H3>
+<P>This function frees and deconfigures shared BGP resources.
+
+
+<HR><H3>Function</H3>
+<P><I>int</I>
 <B>bgp_enable_ao_keys</B>
 (<I>struct bgp_proto *</I> <B>p</B>) --     Enable TCP-AO keys
 <P>
@@ -572,37 +603,6 @@
 
 <HR><H3>Function</H3>
 <P><I>void</I>
-<B>bgp_close</B>
-(<I>struct bgp_proto *</I> <B>p</B>) --     close a BGP instance
-<P>
-<H3>Arguments</H3>
-<P>
-<DL>
-<DT><I>struct bgp_proto *</I> <B>p</B><DD><P>BGP instance
-</DL>
-<H3>Description</H3>
-<P>This function frees and deconfigures shared BGP resources.
-
-
-<HR><H3>Function</H3>
-<P><I>void</I>
-<B>bgp_open</B>
-(<I>struct bgp_proto *</I> <B>p</B>) --     open a BGP instance
-<P>
-<H3>Arguments</H3>
-<P>
-<DL>
-<DT><I>struct bgp_proto *</I> <B>p</B><DD><P>BGP instance
-</DL>
-<H3>Description</H3>
-<P>This function allocates and configures shared BGP resources, mainly 
listening
-sockets. Should be called as the last step during initialization (when lock
-is acquired and neighbor is ready). When error, caller should change state to
-PS_DOWN and return immediately.
-
-
-<HR><H3>Function</H3>
-<P><I>void</I>
 <B>bgp_start_timer</B>
 (<I>struct bgp_proto *</I> <B>p</B>, <I>timer *</I> <B>t</B>, <I>uint</I> 
<B>value</B>) --     start a BGP timer
 <P>
@@ -756,13 +756,14 @@
 
 
 <HR><H3>Function</H3>
-<P><I>struct bgp_proto *</I>
+<P><I>struct bgp_listen_request *</I>
 <B>bgp_find_proto</B>
-(<I>sock *</I> <B>sk</B>) --     find existing proto for incoming connection
+(<I>struct bgp_socket_private *</I> <B>bs</B>, <I>sock *</I> <B>sk</B>) --     
find existing proto for incoming connection
 <P>
 <H3>Arguments</H3>
 <P>
 <DL>
+<DT><I>struct bgp_socket_private *</I> <B>bs</B><DD><P>-- undescribed --
 <DT><I>sock *</I> <B>sk</B><DD><P>TCP socket
 </DL>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/prog-7.html 
new/bird-doc-3.2.0/doc/prog-7.html
--- old/bird-doc-3.1.4/doc/prog-7.html  2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/prog-7.html  2025-12-26 17:16:05.000000000 +0100
@@ -790,7 +790,7 @@
 </DL>
 <H3>Description</H3>
 <P>Finish MAC computation and return a pointer to the result. No more
-<B>mac_update</B>() calls could be done, but the context may be reinitialized
+<B>mac_update()</B> calls could be done, but the context may be reinitialized
 later.
 <P>Note that the returned pointer points into data in the <B>ctx</B> context. 
If it
 ceases to exist, the pointer becomes invalid.
@@ -809,7 +809,7 @@
 <H3>Description</H3>
 <P>Cleanup MAC context after computation (by filling with zeros). Not strictly
 necessary, just to erase sensitive data from stack. This also invalidates the
-pointer returned by <B>mac_final</B>().
+pointer returned by <B>mac_final()</B>.
 
 
 <HR><H3>Function</H3>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bird-doc-3.1.4/doc/prog.html 
new/bird-doc-3.2.0/doc/prog.html
--- old/bird-doc-3.1.4/doc/prog.html    2025-09-22 21:35:49.000000000 +0200
+++ new/bird-doc-3.2.0/doc/prog.html    2025-12-26 17:16:05.000000000 +0100
@@ -17,7 +17,7 @@
 <H2>Ondrej Filip <I>&lt;[email protected]&gt;</I>,
 Martin Mares <I>&lt;[email protected]&gt;</I>,
 Ondrej Zajicek <I>&lt;[email protected]&gt;</I>
-Maria Matejka <I>&lt;[email protected]&gt;</I>,</H2>
+Maria Matejka <I>&lt;[email protected]&gt;</I>,</H2>bird-progdoc
 <P><HR>
 <EM>This document contains programmer's documentation for the BIRD Internet 
Routing Daemon project.</EM>
 <HR>
Binary files old/bird-doc-3.1.4/doc/prog.pdf and 
new/bird-doc-3.2.0/doc/prog.pdf differ

Reply via email to