Commit Graph

23461 Commits

Author SHA1 Message Date
Renato Westphal
45af60f0bb
Merge pull request #8326 from idryzhov/hide-show-config
vtysh: hide "show configuration running" command
2021-03-24 19:40:13 -03:00
Renato Westphal
b1c875d692
Merge pull request #8250 from idryzhov/fix-nb-running-get-entry
Fix aborts when using nb_running_get_entry during validation stage
2021-03-24 19:39:09 -03:00
Quentin Young
da4d67779c doc: document proper config for BGP iface peers
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-03-24 20:53:21 +00:00
Quentin Young
5c47ece45f
Merge pull request #8331 from mjstapp/fix_dev_doc_pip
doc: fix url for pip 2 in dev doc
2021-03-24 20:52:38 +00:00
Mark Stapp
ef0a84eda5 doc: fix url for pip 2 in dev doc
Use updated url for python2 version of pip.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-03-24 16:21:49 -04:00
Patrick Ruddy
67034d7f61
Merge pull request #8290 from adharkar/frr-es_rt
bgpd: Update EVPN type-1 routes when VNI RT changes
2021-03-24 18:10:37 +00:00
Karen Schoener
0889da248b ospf6d: Do not flood unknown LSAs if U-bit is clear
Do not flood unknown LSAs if U-bit is clear.

Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-03-24 13:58:41 -04:00
ckishimo
c317eddbce ospfd: add support for suppress_fa
This command will trigger the OSPF forwarding address suppression in
translated type-5 LSAs, causing a NSSA ABR to use 0.0.0.0 as a forwarding
address instead of copying the address from the type-7 LSA

Example: In a topology like: R1 --- R2(ABR) --- R3(ASBR)

R3 is announcing a type-7 LSA that is translated to type-5 by the R2 ABR.
The forwarding address in the type-5 is by default copied from the type-7

    r1# sh ip os da external

                    AS External Link States

      LS age: 6
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000001
      Checksum: 0xcf99
      Length: 36

      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 10.0.23.3    <--- address copied from type-7 lsa
            External Route Tag: 0

    r2# sh ip os database

                    NSSA-external Link States (Area 0.0.0.1 [NSSA])

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.23.3          8 0x80000001 0x431d E2 3.3.3.3/32 [0x0]

                    AS External Link States

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.25.2          0 0x80000001 0xcf99 E2 3.3.3.3/32 [0x0]

    r2# conf t
    r2(config)# router ospf
    r2(config-router)# area 1 nssa suppress-fa
    r2(config-router)# exit
    r2(config)# exit

    r2# sh ip os database

                    NSSA-external Link States (Area 0.0.0.1 [NSSA])

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.23.3         66 0x80000001 0x431d E2 3.3.3.3/32 [0x0]

                    AS External Link States

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.25.2         16 0x80000002 0x0983 E2 3.3.3.3/32 [0x0]

    r1# sh ip os da external

           OSPF Router with ID (11.11.11.11)

                    AS External Link States

      LS age: 34
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000002
      Checksum: 0x0983
      Length: 36

      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 0.0.0.0       <--- address set to 0
            External Route Tag: 0

    r2# conf t
    r2(config)# router ospf
    r2(config-router)# no area 1 nssa suppress-fa
    r2(config-router)# exit

    r1# sh ip os da external

           OSPF Router with ID (11.11.11.11)

                    AS External Link States

      LS age: 1
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000003
      Checksum: 0xcb9b
      Length: 36
      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 0.0.0.0       <--- address set to 0
            External Route Tag: 0

    r2# conf t
    r2(config)# router ospf
    r2(config-router)# no area 1 nssa suppress-fa
    r2(config-router)# exit

    r1# sh ip os da external

           OSPF Router with ID (11.11.11.11)

                    AS External Link States

      LS age: 1
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000003
      Checksum: 0xcb9b
      Length: 36

      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 10.0.23.3    <--- address copied from type-7 lsa
            External Route Tag: 0

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-24 16:06:38 +01:00
ckishimo
d71494e6a4 doc: add documentation for OSPF suppress-fa
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-24 16:06:31 +01:00
ckishimo
8807d9f759 doc: add documentation for OSPF NSSA
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-24 16:04:43 +01:00
ckishimo
4436ba8d46 ospfd: add topotest for suppress-fa feature
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-24 16:00:35 +01:00
David Lamparter
817f39203c
Merge pull request #8318 from qlyoung/improve-lua-autoconf-detection
configure.ac: better lua detection
2021-03-24 15:05:01 +01:00
Rafael Zalamena
b9f1b4d3d3
Merge pull request #8078 from idryzhov/fix-zebra-vni
zebra: fix vni configuration in default vrf
2021-03-24 13:32:44 +00:00
David Lamparter
755f959915
Merge pull request #8325 from idryzhov/fix-ip-router-isis
isisd: fix extra space after "ip router isis"
2021-03-24 12:13:07 +01:00
Igor Ryzhov
122ee38ab4 vtysh: hide "show configuration running" command
This command is currently useful only for developers.
Let's hide it to not confuse end users by having both
"show runnning-config" and "show configuration running".

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-03-24 13:16:15 +03:00
Igor Ryzhov
09e2d8ed97
Merge pull request #8203 from opensourcerouting/ospf-bfd-napi
ospfd,doc,topotests: rework OSPFv2 BFD integrantion
2021-03-24 10:36:48 +03:00
Igor Ryzhov
c560085f4d
Merge pull request #8184 from opensourcerouting/bfd-bgp-napi
bgpd,lib: rework BGP BFD integration
2021-03-24 10:36:26 +03:00
Igor Ryzhov
2ba0884a65 isisd: fix extra space after "ip router isis"
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-03-24 10:30:36 +03:00
Igor Ryzhov
61290c027c
Merge pull request #8319 from qlyoung/doc-remove-old-index-ospf6-spf-tree
doc: remove extraneous .. index:: in ospf6d.rst
2021-03-24 10:01:16 +03:00
Quentin Young
51d0d8f326 doc: remove extraneous .. index:: in ospf6d.rst
And delete some trailing whitespace

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-03-23 19:36:27 +00:00
Quentin Young
428df07cd5 configure.ac: better lua detection
Make sure to constrain the Lua autoconf search to
Lua 5.3 interpreter and libraries.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-03-23 19:20:38 +00:00
Mark Stapp
f62fd2ac9f tests: use printfrr to use extended format specs
Test was using 'pFX' with printf() - need to use printfrr().

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-03-23 14:50:14 -04:00
Mark Stapp
ff7c213c65 lib: enlarge the local buffer for printfrr extension tokens
Make the local buffer offered to printfrr extension tokens
bigger; existing size wasn't quite enough for some of the
more elaborate struct prefix types.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-03-23 14:48:58 -04:00
Russ White
8baa41e571
Merge pull request #8261 from opensourcerouting/log-ids
lib: output unique IDs in log messages
2021-03-23 11:46:41 -04:00
Ameya Dharkar
9c49ac7424 bgpd: Update EVPN type-1 routes when VNI RT changes
1. When VNI export RT changes, for each local es_evi, update local
EAD/ES and EAD/EVI routes and advertise.

2. When VNI import RT changes, uninstall all type-1 routes imported in
the VNI and import routes carrying the updated RT.

Signed-off-by: Ameya Dharkar <adharkar@vmware.com>
2021-03-23 08:40:29 -07:00
Rafael Zalamena
4a0872fc73 bgpd: improve BFD with timers configuration
Move `bgp_peer_config_apply` outside `bgp_peer_configure_bfd` (and
document it) so we only call the session installation once with one
set of timers. It also makes all calls of that function
equal (e.g. always calls `bgp_peer_config_apply` afterwards).

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 12:40:11 -03:00
Rafael Zalamena
81313f4386 doc: document new BGP debug option
Let user know what the debug knob does.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 12:40:11 -03:00
Rafael Zalamena
259f42367c bgpd: add debug option for BFD
Add new BGP debug option to enable BFD related debugging messages.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 12:40:10 -03:00
Rafael Zalamena
21bfce9827 bgpd: rework BFD integration
Remove old BFD API usage and replace it with the new one.

Highlights:

 - More shared code: the daemon gets notified with callbacks instead of
   having to roll its own code to find the notified sessions.

 - Less code to integrate with BFD.

 - Remove hidden commands to configure single / multi hop. Use
   protocol data instead.

   BGP can determine if a peer is single/multi hop according to the
   following criteria:

    a. If the IP address is a link-local address (single hop)

    b. The network is shared with peer (single hop)

    c. BGP is configured for eBGP multi hop / TTL security (multi hop)

 - Respect the configuration hierarchy:

    a. Peer configuration take precendence over peer-group
       configuration.

    b. When peer group configuration is removed, reset peer
       BFD configurations to defaults (unless peer had specific
       configs).

       Example:

         neighbor foo peer-group
         neighbor foo bfd profile X
         neighbor 192.168.0.2 peer-group foo
         neighbor 192.168.0.2 bfd
         ! If peer-group is removed the profile configuration gets
         ! removed from peer 192.168.0.2, but BFD will still enabled
         ! because of the neighbor specific bfd configuration.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 12:40:10 -03:00
Rafael Zalamena
50bd8995d4 bgpd: remove cumulus specific code
The BFD function `bgp_bfd_is_peer_multihop` will no longer exist and now
both code paths are equal.

Longer explanation:
Cumulus was previously using the BFD function to help determine whether a
peer is multi hop or not, because there is a configuration to set BFD
to use single or multi hop.

Current BFD code can automatically pick between single/multi hop by
using the protocol information and so it is a good idea to have that
tested/used than relying on yet another duplicated information.

(BFD extracts the TTL information from protocol and selects
single/multi hop based on that)

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 12:40:10 -03:00
Rafael Zalamena
3e6376b813 lib: small BFD session notifier improvement
Cache current monotime to avoid unnecessary calls.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 12:40:09 -03:00
Rafael Zalamena
a099abe55b lib: new BFD integration API
New BFD protocol integration API with abstractions to fix most common
protocol integration errors:

 - Set address family together with the source/destination addresses

 - Set the TTL together with the single/multi hop option

 - Set/unset profile/interface easily

 - Keep the arguments so we don't have to rebuild them every time

 - Install/uninstall functions that keep track of current state so the
  daemon doesn't have to

 - Reinstall when critical configuration changes (address, multi hop
   etc...)

 - Reconfigure BFD when the daemon restarts automatically

 - Automatically calls the user defined callback for session update

 - Shutdown handler for all protocols

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 12:40:09 -03:00
Russ White
638fa8dd4e
Merge pull request #8253 from opensourcerouting/topotest-python3-backports
tests: iproute2 VRF capability check for topotests
2021-03-23 11:25:35 -04:00
Russ White
09e623fbe1
Merge pull request #8271 from idryzhov/fix-show-ip-ospf-database
ospfd: fix "show ip ospf database" issues
2021-03-23 11:19:32 -04:00
Donatas Abraitis
7c94e3d606
Merge pull request #8312 from pjdruddy/update-topotest-snmp-install-doc
doc: add libsnmp-dev install line
2021-03-23 16:41:20 +02:00
Russ White
28e16a993b
Merge pull request #8305 from donaldsharp/bgp_ll_ifp_change
bgpd: Reset LLA NHT's interface if there is a change
2021-03-23 10:08:18 -04:00
Russ White
63d4a9708c
Merge pull request #8307 from opensourcerouting/mtypes-cleanup-20210322
isisd, eigrpd, pathd: clean up & drop *_memory.[ch] files, make a whole bunch static
2021-03-23 10:07:28 -04:00
Russ White
38981e4bba
Merge pull request #8120 from ton31337/feature/bgp_ipv6_default_activated
bgpd: Activate ipv6-unicast for peer automatically if globally defined
2021-03-23 09:36:43 -04:00
Rafael Zalamena
b5b3078bec ospfd: fix checkpatch warnings
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
e5c2d3a82e doc: document new OSPF debug option
Let user know what does the BFD debug knob does.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
e4505a2e6d ospfd: add debug option for BFD
Add specialized debug option for BFD which also enables library debugging.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
8d69272b8f topotests: test OSPF BFD profile
Use BFD profiles in test to make sure it doesn't break.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
33082fcfee doc: update OSPF BFD documentation
Tell users that OSPFv2 now supports BFD profiles.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
96b5251038 ospfd: support BFD profiles
Add new command to configure BFD peers to use a specific profile.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
659f4e40dd ospfd: rework BFD integration
Use new BFD API to integrate with OSPFv2.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
cab054bfd2 lib: small BFD session notifier improvement
Cache current monotime to avoid unnecessary calls.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Rafael Zalamena
2176a8d9e5 lib: new BFD integration API
New BFD protocol integration API with abstractions to fix most common
protocol integration errors:

 - Set address family together with the source/destination addresses

 - Set the TTL together with the single/multi hop option

 - Set/unset profile/interface easily

 - Keep the arguments so we don't have to rebuild them every time

 - Install/uninstall functions that keep track of current state so the
  daemon doesn't have to

 - Reinstall when critical configuration changes (address, multi hop
   etc...)

 - Reconfigure BFD when the daemon restarts automatically

 - Automatically calls the user defined callback for session update

 - Shutdown handler for all protocols

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Pat Ruddy
b69bc6fe0d doc: add libsnmp-dev install line
Do not assume libsnmp-dev is installed.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-03-23 10:18:16 +00:00
Igor Ryzhov
7a89002ab6
Merge pull request #8296 from chiragshah6/mdev
bgpd: convert send-community to transactional cli
2021-03-23 00:19:33 +03:00
Igor Ryzhov
a605d719d3 doc: add missing vrf parameter to "show ip ospf database ..." commands
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-03-22 23:37:42 +03:00