Commit Graph

24865 Commits

Author SHA1 Message Date
Donald Sharp
acb4c44ef8
Merge pull request #8942 from ton31337/fix/cleanups_2
Another round of cleanup
2021-07-06 09:47:41 -04:00
Donald Sharp
4afc321825
Merge pull request #8972 from ton31337/fix/bgp_extended_msg_support
bgpd: Extended message support potential fixes
2021-07-06 09:41:45 -04:00
Donald Sharp
af17728126
Merge pull request #8975 from ton31337/fix/show_ip_route_json_prefix_formatting
zebra: Do not escape forward slashes for `show ip route json`
2021-07-06 09:40:19 -04:00
Donald Sharp
432bb280fb
Merge pull request #8939 from LabNConsulting/chopps/sup-bund-fixes
Speedup support bundles, fix bugs, add CLI timestamp
2021-07-06 07:58:19 -04:00
zyxwvu Shi
3057d1e45a bgpd: Do not delete peer_af when deactivating peer-group.
There is no peer_af allocated in `peer_activate`. Trying to delete
the structure just results in an no-op and a error return value.
The error message "couldn't delete af structure for peer" is
unexpected.

Signed-off-by: zyxwvu Shi <shiyuchen.syc@bytedance.com>
2021-07-06 19:51:39 +08:00
Donatas Abraitis
56fd30a303
Merge pull request #8958 from pguibert6WIND/choose_ipv6_linklocal_nht
bgpd: nht unresolved with global address next-hop
2021-07-06 14:27:15 +03:00
Patrick Ruddy
9c8b904960
Merge pull request #8976 from ton31337/fix/bgp_dest_unlock_node
bgpd: Unlock bgp_dest for bgp_distance_unset if distance does not match
2021-07-06 09:03:40 +01:00
Renato Westphal
b2a2107ade tests: add OSPF graceful restart topotest
Add a new topotest that features a topology with seven routers spread
across four OSPF areas:
* 1 backbone area;
* 1 regular non-backbone area (0.0.0.1);
* 1 stub area (0.0.0.2);
* 1 NSSA area (0.0.0.3).

All routers have both GR and GR helper functionality enabled in
the configuration. The test consists of restarting each router,
one at time, and checking that all forwarding planes (and LSDBs)
are kept intact during those restarts.

A successful run takes about three minutes to finish.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-07-05 11:43:02 -03:00
Renato Westphal
5957a1a11f tests: add "save_config" parameter to kill_router_daemons()
Using "write memory" to save the daemons' configurations before
restarting them can cause log files to stop working correctly. Add
a new "save_config" to the kill_router_daemons() function to prevent
that from happening when saving the configurations isn't necessary.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-07-05 11:43:02 -03:00
Renato Westphal
1051417011 ospfd: introduce support for Graceful Restart (restarting mode)
RFC 3623 specifies the Graceful Restart enhancement to the OSPF
routing protocol. This PR implements support for the restarting mode,
whereas the helper mode was implemented by #6811.

This work is based on #6782, which implemented the pre-restart part
and settled the foundations for the post-restart part (behavioral
changes, GR exit conditions, and on-exit actions).

Here's a quick summary of how the GR restarting mode works:
* GR can be enabled on a per-instance basis using the `graceful-restart
  [grace-period (1-1800)]` command;
* To perform a graceful shutdown, the `graceful-restart prepare ospf`
  EXEC-level command needs to be issued before restarting the ospfd
  daemon (there's no specific requirement on how the daemon should
  be restarted);
* `graceful-restart prepare ospf` will initiate the graceful restart
  for all GR-enabled instances by taking the following actions:
  o Flooding Grace-LSAs over all interfaces
  o Freezing the OSPF routes in the RIB
  o Saving the end of the grace period in non-volatile memory (a JSON
    file stored in `$frr_statedir`)
* Once ospfd is started again, it will follow the procedures
  described in RFC 3623 until it detects it's time to exit the graceful
  restart (either successfully or unsuccessfully).

Testing done:
* New topotest featuring a multi-area OSPF topology (including stub
  and NSSA areas);
* Successful interop tests against IOS-XR routers acting as helpers.

Co-authored-by: GalaxyGorilla <sascha@netdef.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-07-05 11:43:02 -03:00
Renato Westphal
cd52c44c00 ospfd: rename the graceful restart header
Both the GR helper code and the upcoming GR restarting code are going
to share a lot of definitions. As such, rename ospf_gr_helper.h to
ospf_gr.h, which will be the central point of all GR definitions
and prototypes.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-07-05 11:43:02 -03:00
GalaxyGorilla
3f87e1d8b3 ospfd: adjust log config for GR
Remove previous log config

	debug ospf graceful-restart helper

and just use

	debug ospf graceful-restart

for everything related to OSPF GR.

Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-07-05 11:43:02 -03:00
Renato Westphal
e9505bc63a ospfd: print extra LSA information in some log messages
Log the LSA advertising router in addition to the LSA type and
ID in the places where that information is necessary to uniquely
identify the LSA in the LSDB.

This is useful, for example, to know exactly which LSA has changed
when the router is exiting from the GR helper mode when a topology
change was detected.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-07-05 11:43:02 -03:00
Donatas Abraitis
12536067cc
Merge pull request #8979 from opensourcerouting/msdp-topotest-speedup
topotests: speed up MSDP convergence speed
2021-07-05 09:16:27 +03:00
Quentin Young
71bae95e4a
Merge pull request #8888 from dlqs/lua-call 2021-07-05 04:13:20 +00:00
Martin Winter
b09ca18c3f
Merge pull request #7674 from oerdnj/embedded-deb-packages
Convert the packaging to use git-buildpackage
2021-07-04 16:59:19 +02:00
Rafael Zalamena
616bbd94c8 topotests: speed up MSDP convergence speed
Decrease the connection retry time to reduce test duration on connection
failures.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-07-04 11:17:10 -03:00
Christian Hopps
e49199c387
Merge pull request #8974 from FRRouting/revert-8795-fix-ospf6-router-id
Revert "ospf6d: fix LSAs remain in LSDB with an old router-id value"
2021-07-03 19:40:03 -04:00
Donatas Abraitis
89f4bd87dd bgpd: Unlock bgp_dest for bgp_distance_unset if distance does not match
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-03 22:16:31 +03:00
Ondřej Surý
4ebb9e9d20 debian: Merge the official Debian changelog into d/changelog
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:03:56 +02:00
Igor Ryzhov
c54e2a8144 tools: Simplify the script to build Debian binary package
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
1b3fe7ab54 debian: Update the upstream version to 7.7~dev-1
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
c4783c325a doc: Use dpkg-buildpackage to build packages (add note about debuild)
The debuild command fails when we are doing source package only build
because it expects the arch-dependent .changes file to be present.  Thus
in the instructions we switch to using dpkg-buildpackage directly and
add a note about using debuild in more complicated scenarios.

Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
4c65fb08f7 doc: Add instructions on how to build only source packages
In the CI, it's better to build the source package only once and then
instead of checking out the whole repository, only distribute the source
packages to the individual jobs.

Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
f36c3644e7 doc: Update debian packaging instructions
The debian packaging instructions have been updated, so they actually
work.

Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
dfbc6c046e debian: Add support for Debian bullseye to the packaging script
The Debian bullseye is frozen now, so this adds support to this
Debian release to the packaging script.

Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
9ea548cf3c debian: Fix the debian packaging script to build on non-default branch
The packaging script would fail to run on non-master branch, fix that
by pulling original branch name.

Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
33ce95cad0 debian: Make the autopkgtest more resilient (Closes: #980111)
The Debian autopkgtest would fail with new PAM introduced in Debian bullseye.
Add a little loop to wait a little longer for the changes to propagate.

Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
223766ead4 debian: Update the tools/build-debian-package.sh to be example build script
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
aa1e17f5ca debian: Remove now obsolete tarsource.sh script
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
06417e9f18 debian: Remove the changelog-auto automation in favor of dch
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
bcd053ee8d debian: Update tools/build-debian-package.sh to use git-buildpackage
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
25785834af debian: Adjust tarsource.sh to use native debian/changelog
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Ondřej Surý
b7abcded1a debian: Merge various debian changelogs in debian/changelog
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-07-03 17:02:37 +02:00
Donatas Abraitis
24447a70d0 zebra: Show prefixLen in show ip route json output additionally
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-03 14:21:06 +03:00
Donatas Abraitis
45c8ba8fb3 zebra: Do not escape forward slashes for show ip route json
Basically, this is handled by JSON-C library. I've compiled with the
latest release of json-c and it works well.

Didn't test with various distribution versions, but this change is kinda
dependend from the json-c lib version the distra has.

Before:
```
  "192.168.100.1\/32":[
    {
      "prefix":"192.168.100.1\/32",
```

After:
```
  "192.168.100.1/32":[
    {
      "prefix":"192.168.100.1/32",
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-03 14:19:48 +03:00
Donatas Abraitis
0997ee2611 bgpd: Show max packet size per update-group
```
exit1-debian-9# sh ip bgp update-groups
Update-group 2:
  Created: Fri Jul  2 20:47:23 2021
  MRAI value (seconds): 0

  Update-subgroup 2:
    Created: Fri Jul  2 20:47:23 2021
    Join events: 1
    Prune events: 0
    Merge events: 0
    Split events: 0
    Update group switch events: 0
    Peer refreshes combined: 0
    Merge checks triggered: 0
    Coalesce Time: 1200
    Version: 14
    Packet queue length: 0
    Total packets enqueued: 8
    Packet queue high watermark: 1
    Adj-out list count: 11
    Advertise list: empty
    Flags:
    Max packet size: 65535
    Peers:
      - eth1
Update-group 3:
  Created: Fri Jul  2 20:47:43 2021
  MRAI value (seconds): 0

  Update-subgroup 3:
    Created: Fri Jul  2 20:47:43 2021
    Join events: 1
    Prune events: 0
    Merge events: 0
    Split events: 0
    Update group switch events: 0
    Peer refreshes combined: 0
    Merge checks triggered: 0
    Coalesce Time: 1200
    Version: 14
    Packet queue length: 0
    Total packets enqueued: 8
    Packet queue high watermark: 1
    Adj-out list count: 11
    Advertise list: empty
    Flags:
    Max packet size: 4096
    Peers:
      - 192.168.10.17
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-03 11:17:37 +03:00
Donatas Abraitis
0db06e3785 bgpd: Set 4096 instead of 65535 as new max packet size for a new peer
New peers should be initialized with a usual max packet size and later
determined on OPEN messages.

Testing with different peers supporting/not supporting extended support.

2021/07/02 13:48:00 BGP: [WEV7K-2GAQ5] u2:s2 send UPDATE len 8991 (max message len: 65535) numpfx 1788
2021/07/02 13:48:03 BGP: [WEV7K-2GAQ5] u3:s3 send UPDATE len 4096 (max message len: 4096) numpfx 809
2021/07/02 13:48:03 BGP: [WEV7K-2GAQ5] u3:s3 send UPDATE len 4096 (max message len: 4096) numpfx 809

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-03 11:17:37 +03:00
Donatas Abraitis
cecd7358f9 bgpd: Create another update-group depending on max bgp packet size
This should be garuanteed that we create a separate update-group if
bgp max packet size differs.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-03 11:17:37 +03:00
Donald Lee
cd3c3a98e2 doc: space code block
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-03 04:43:50 +08:00
Donald Sharp
30885c7099
Revert "ospf6d: fix LSAs remain in LSDB with an old router-id value" 2021-07-02 12:38:11 -04:00
Donald Sharp
8a0ac82d96
Merge pull request #8969 from opensourcerouting/msdp-timers
pimd: allow MSDP timers to be configured
2021-07-02 11:39:58 -04:00
Mark Stapp
5537beafd1
Merge pull request #8955 from mobash-rasool/ospfv2-fixes
ospfd: show ip ospf route json does not shown metric and tag
2021-07-02 09:03:53 -04:00
Mark Stapp
0a9fcd96d1
Merge pull request #8970 from ton31337/fix/use_IPV6_MAX_BITLEN
*: Do not use 32/128 numbers for prefixlen
2021-07-02 07:52:22 -04:00
Philippe Guibert
1e15822698
Merge pull request #8795 from louis-oui/fix-ospf6-router-id
ospf6d: fix LSAs remain in LSDB with an old router-id value
2021-07-02 11:11:47 +02:00
Donatas Abraitis
8643c2e5f7 *: Replace 4/16 integers to IPV4_MAX_BYTELEN/IPV6_MAX_BYTELEN
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-01 23:54:39 +03:00
Donatas Abraitis
12256b84a5 *: Convert numeric 32 into IPV4_MAX_BITLEN for prefixlen
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-01 23:50:39 +03:00
Igor Ryzhov
5a1b002b60
Merge pull request #8962 from donaldsharp/bgp_ll_must_be_there
bgpd: Ensure v6 LL address is available before establishing peering
2021-07-01 20:20:23 +03:00
Donatas Abraitis
45833edae0 babeld: Drop in_prefix() function
Not used.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-01 17:54:10 +03:00
Donatas Abraitis
13ccce6e7e *: Convert numeric 128 into IPV6_MAX_BITLEN for prefixlen
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-01 17:53:21 +03:00