FRR
FRRouting
Tests: 7311 passed
Duration: 113 minutes
Changes: Who: David Lamparter
Why: Merge pull request #3017 from pacovn/devbuild_Wshadow_flag
build: add -Wshadow to the dev build
Changes by David Lamparter
FRR Release 2.0 Build
FRRouting
Tests: 346 passed
Duration: 69 minutes
Changes: No changes
Manual run by Martin Winter
FRR Release 3.0 Build
FRRouting
Tests: 383 passed
Duration: 79 minutes
Changes: No changes
Rebuilt by Martin Winter
FRR Release 4.0 Build
FRRouting
Tests: 412 passed
Duration: 83 minutes
Changes: No changes
Manual run by Martin Winter
FRR Release 5.0 Build
FRRouting
Tests: 421 passed
Duration: 136 minutes
Changes: Who: Philippe Guibert
Why: zebra: add show pbr iptable dscp information
The iptable configured with dscp displays the dscp value configured.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>

Who: Philippe Guibert
Why: bgpd: fix recursive call combination
The recursive algorithm was taking into account the fact that all the
bpof structures were filled in. Because the dscp value was not given,
the pkt_len parsing could not be achieved. Now the iteration takes into
account each type according to the previous one, thus guaranting all
parameters to be parsed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>

Who: Pascal Mathis <mail@pascalmathis.com>
Why: bgpd: Fix AF-attribute overrides when binding peer
The current implementation of the overrides for peer address-family
attributes suffered a bug, which caused all peer-specific attributes to
be lost when the peer was added to a peer-group which already had that
specific address-family active.

This commit extends the *peer_group2peer_config_copy_af* function to
respect overridden flags properly. Additionally, the arguments of the
macros *PEER_ATTR_INHERIT* and *PEER_STR_ATTR_INHERIT* have been
reordered to be more consistent and easy to read.

This commit also adds further test cases to the BGP peer attributes test
suite, so that this kind of error is being caught in future commits. The
missing AF-attribute *distribute-list* has also been added to the test
suite.

Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
(cherry picked from commit e7103a9644f32a70a10be8f6372aa9084aa33c2f)

Who: Philippe Guibert
Why: bgpd: align fragment flowspec decoding with tcpflags
As fragment bitmask and tcpflags bitmask in flowspec protocol is encoded
in the same way, it is not necessary to differentiate those two fields.
Moreover, it overrides the initial fragment limit set to 1. It is now
possible to handle multiple framgent values.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>

Who: Philippe Guibert
Why: bgpd: handle ICMP type and code from flowspec
It is possible for flowspec entries containing ICMP rule to insert PBR
entries based on ICMP type and ICMP code.
Flowspec ICMP filtering can either have icmp type or icmp code or both.
Not all combinations are permitted:
- if icmp code is provided, then it is not possible to derive the
  correct icmp value. This will not be installed
- range of ICMP is authorised or list of ICMP, but not both.
- on receiving a list of ICMPtype/code, each ICMP type is attempted to
  be associated to ICMP code. If not found, then ICMPtype is combined
  with all known ICMP code values associated to that ICMP type.
- if a specific ICMP type/code is needed, despite the ICMP code/type
  combination does not exist, then it is possible to do it by forging a
  FS ICMP type/code specific for that.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>

...
Manual run by Martin Winter
FRR-3.0-Snapcraft
FRRouting
Tests: 1322 passed
Duration: 934 minutes
Changes: No changes
Rebuilt by Martin Winter
FRR-4.0-Snapcraft
FRRouting
Tests: 1322 passed
Duration: 944 minutes
Changes: No changes
Rebuilt by Martin Winter
FRR-6.0-Snapcraft
FRRouting
Tests: 1172 passed
Duration: 973 minutes
Changes: No changes
Rebuilt by Martin Winter
FRR-Pull-Requests
FRRouting
Tests: 6312 passed
Duration: 61 minutes
Changes: Who: David Lamparter
Why: Merge pull request #3017 from pacovn/devbuild_Wshadow_flag
build: add -Wshadow to the dev build
Custom build by Github Hook with revision master
FRR-RPKI
FRRouting
Tests: Testless build
Duration: 57 minutes
Changes: Who: David Lamparter
Why: Merge pull request #3017 from pacovn/devbuild_Wshadow_flag
build: add -Wshadow to the dev build
Child of FRR-FRR-1548
OpenFabric
FRRouting
Tests: 6046 passed
Duration: 169 minutes
Changes: Who: David Lamparter
Why: isisd: silence SA warnings
As suggested by Renato Westphal.

Signed-off-by: David Lamparter <equinox@diac24.net>
Changes by David Lamparter
Snapcraft
FRRouting
Tests: 1323 passed
Duration: 920 minutes
Changes: Who: David Lamparter
Why: pimd: fix clang warning
pimd/pim_sock.c:178:13: error: implicit conversion from
        "int" to "char" changes value from 148 to -108
        [-Werror,-Wconstant-conversion]
    ra[0] = 148;

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>

Who: Jafar Al-Gharaibeh <Jafaral@users.noreply.github.com>
Why: Merge pull request #461 from donaldsharp/poll_2.0
Poll 2.0

Who: Donald Sharp
Why: lib: Rename HAVE_POLL to prevent conflicting #defines
Rename HAVE_POLL to HAVE_POLL_CALL, when compiling with
snmp and poll enabled this was causing issues.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>

Who: Sam Tannous <stannous@cumulusnetworks.com>
Why: Remove uncalled function causing compiler error
Ticket: CM-16086
Reviewed By: sharpd
Testing Done: Built debs and tested on hardnode

With snmp enabled, this function was causing compiler
errors since it was not being called.  Removed it.

Signed-off-by: Sam Tannous <stannous@cumulusnetworks.com>
Rebuilt by Martin Winter
TopoTest PullReq
5
FRRouting
Tests: 12 of 1080 failed
Duration: 36 minutes
Changes: Who: Rafael Zalamena <rzalamena@users.noreply.github.com>
Why: Merge pull request #132 from opensourcerouting/ospf_routerid_fixed
Clean up deprecated usage of router-id (fixed)

Who: David Lamparter
Why: vtysh: make RPKI node non-conditional
Whether or not RPKI is enabled during build shouldn"t really influence
vtysh; the user can always manually install bgpd_rpki.so later and it
should work.  This also means that the behaviour of "RPKI module not
loaded" is consistent regardless of whether it was a compile-time or
runtime decision.

Signed-off-by: David Lamparter <equinox@diac24.net>

Who: David Lamparter
Why: lib, ldpd: fix SA warnings from TAILQ oddness
Add a TAILQ_POP_FIRST so Clang understands it"s the same item that is
getting removed from the list.

Signed-off-by: David Lamparter <equinox@diac24.net>

Who: Donald Sharp
Why: staticd: Allow table_id to be a distinguisher for installation
The table_id should be a discriminator in the installation of
static routes into zebra from staticd.  Add this to allow the end
user to do something like this:

ip route 4.5.6.7/32 192.168.209.44
ip route 4.5.6.7/32 192.168.209.44 table 3000
ip route 4.5.6.7/32 192.168.209.45 table 3000

robot# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 [0/101] via 192.168.201.1, enp0s3, 00:01:40
S>* 4.3.2.1/32 [1/0] via 192.168.210.4, enp0s10, 00:01:35
S>* 4.3.2.2/32 [1/0] via 192.168.209.4, enp0s9, 00:01:35
S>* 4.5.6.0/26 [1/0] via 192.168.210.4, enp0s10, 00:01:35
S>* 4.5.6.7/32 [1/0] via 192.168.209.44, enp0s9, 00:01:35
C>* 192.168.201.0/24 is directly connected, enp0s3, 00:01:40
C>* 192.168.208.0/24 is directly connected, enp0s8, 00:01:40
C>* 192.168.209.0/24 is directly connected, enp0s9, 00:01:40
C>* 192.168.210.0/24 is directly connected, enp0s10, 00:01:40
robot# show ip route table 3000
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

S>* 4.5.6.7/32 [1/0] via 192.168.209.44, enp0s9, 00:00:55
  *                  via 192.168.209.45, enp0s9, 00:00:55
robot#

Fixes: #2954
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>

Who: Donald Sharp
Why: zebra: Print out netlink message type instead of number
When we are displaying data about a netlink message
in debugs or errors, print out the message type
as a string instead of a number.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>

...
Rebuilt by Rafael Zalamena
MASTER
5
QUAGGA
Tests: Testless build
Duration: 55 minutes
Changes: Who: Balaji Gurudoss <balajig81@gmail.com>
Why: Bumped up the version to 1.2.2
PATCHWORK
QUAGGA
Tests: 2539 passed
Duration: 53 minutes
Changes: No changes
Rebuilt by Martin Winter
QUAGGA-RPKI-DISABLED
QUAGGA
Tests: 2532 passed
Duration: 51 minutes
Changes: Who: Colin Sames <sames.colin@gmail.com>
Why: Build Quagga without SSH support of RTRlib
If the RTRlib was compiled without SSH support, check certain blocks of code whether they
should be compiled or not. This is experimental and most certainly causes unexpected
behavior. Compiles without errors on Ubuntu 16.04.

Who: Colin Sames <sames.colin@gmail.com>
Why: Merge branch "feature/rtrlib" of https://github.com/ColinBS/quagga-rtrlib into feature/rtrlib

Who: Andreas Reuter <andreas.router@googlemail.com>
Why: Merge pull request #6 from ColinBS/feature/rtrlib
Build Quagga without SSH support of RTRlib
RTRLIB
RPKI
Tests: Testless build
Duration: 8 minutes
Changes: Who: Marcel Röthke <marcel.roethke@haw-hamburg.de>
Why: Symbol visibility (#176)
* reduce size of dynamic symbol table

This patch changes the default symbol visibility to hidden and
explicitly exports public symbols.

* tests: link normal tests against static lib and enable coverage

This is necessary because the dynamic version does not export all the
necessary symbols.
Coverage is necessary because the static lib needs coverage symbols, the
dynamic one loads them via the dynamic linker.

* lib: make alloc funtions pointers static

They are not and should not be used outside of the alloc_utils
compilations utils.

* Restructure headers to split public from private functions

Private functions now live in a header suffixed with _private.h, they
must include the corresponding public header and rtrlib.h must include
every public header to ensure that users of rtrlib do not have to
include anything else.

* doxygen: only build full doc in debug mode

In release mode only public symbols should be documented.

* ci: check exported symbols

This runs a check during the ci run that checks if the functions marked
for export, functions in the public headers and the symbols in the SOs
symbol table are the same.