Commit Graph

28104 Commits

Author SHA1 Message Date
Donald Sharp
61879cab13 *: Fix spelling of Inteface
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
581776faa1 *: Fix spelling of ojbect
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
f89c0aed63 *: Fix spelling of wether
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
d94ee2727b tests: Fix spelling of disbale
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
07b12758be pimd, zebra: Fix spelling of fowarding
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
d534b16ae7 bgpd: Fix spelliing of serach
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
17be83bf99 *: Fix spelling of Gracefull
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:46:19 -04:00
Donald Sharp
f75b916348 bgpd, vtysh: Fix spelliing of explicitely
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:25:18 -04:00
Donald Sharp
3b52866c0f tests: Fix spelling of neigbors
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-02 07:24:03 -04:00
anlan_cs
c52de8c1aa doc: add mh type-0 ESI support
Add type-0 ESI support for `evpn mh es-id` command.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-02 06:24:53 -04:00
Christian Hopps
9a33889d89
Merge pull request #10925 from qlyoung/fix-grpc-wants-installed-frr
tests: skip grpc test if frr not installed
2022-04-02 05:22:53 -04:00
Xiao Liang
7e7639f548 bgpd: Fix memory leak in subgroup_announce_check
Flush dummy attr to release objects allocated by route-map.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
2022-04-02 17:02:35 +08:00
Donatas Abraitis
97a1fdf20f
Merge pull request #10875 from anlancs/doc-mh-esi-1
doc: two minor changes for evpn-mh
2022-04-02 11:54:51 +03:00
Donald Sharp
78dfa0c754 *: Fix spelling of Following
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 16:27:55 -04:00
Donald Sharp
d60a3f0e71 tests: Fix spelling of daemons
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 16:26:38 -04:00
Donald Sharp
953ef1498f tests: Fix spelling of kernel
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 16:25:19 -04:00
Donald Sharp
dea6dce388 tests: Fix perticular spelling
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 16:24:33 -04:00
Donatas Abraitis
2d5bac3f7e
Merge pull request #10950 from donaldsharp/uninit_test
tests: Fix uninitialized usage of variables in tests
2022-04-01 22:26:53 +03:00
Donald Sharp
ef0b66450d
Merge pull request #10942 from opensourcerouting/feature/printfrr_extension_for_peer_hostname
bgpd: Add `%pBP` printfrr() extension to print `IP(hostname)` for BGP peer
2022-04-01 11:28:47 -04:00
Donald Sharp
44b2f303e2
Merge pull request #10944 from pguibert6WIND/isis_misc_fixes
Isis misc fixes
2022-04-01 09:17:05 -04:00
mobash-rasool
04f9041beb
Merge pull request #10945 from taspelund/ra_log_gooder
zebra: don't send RAs w/o LLv6 or on bridge-ports
2022-04-01 18:46:44 +05:30
Donald Sharp
515f5f4d7e tests: Fix uninitialized usage of variables in tests
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 09:14:11 -04:00
Donald Sharp
33ec4015b6 pimd: Send immediate join( with possible SG RPT prune bit set
When pimd has this setup:

src ----- rtr ------ receiver
           |
          rp

And the receiver sends a *,G join to rtr.  When the
src starts sending a S,G, rtr can wait up to one join/prune
interval before sending a S,G rpt prune.  This interval
causes the pimreg device to be in the S,G OIL as that the
RP does not know to prune this leg off.

before:

Timestamp: Thu Mar 31 10:15:18 2022 288767 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:18 2022 288777 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:18 2022 288789 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: pimreg rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:49 2022 324995 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
<31 seconds>

After:

Timestamp: Thu Mar 31 12:56:15 2022 501921 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: pimreg rtr-lan  State: resolved Table: default
Timestamp: Thu Mar 31 12:56:15 2022 501930 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: pimreg rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 12:56:15 2022 502181 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
<sub second>

What is actually happening:

rtr receives a *,G igmp join, sends a *,G join towards the rp
rtr receives a S,G packet <WRVIFWHOLE>
creates the S,G upstream, sends the register packet to the rp
the rp sees that it still has downstream interest so it forwards the packet on
After (up to 60 seconds ) the rtr, sends the normally scheduled join for
the G and sends the S,GRPT prune as part of it.

What is being done to fix it:

In wrvifwhole handling, when pimd detects that this is the FHR
and is not the RP *and* the incoming interface for the *,G
is different than the incomding interface for the S,G immediately
send a single join packet for the G( which will have the S,G RPT
prune in it ).  Only do this on the first time receiving the
WRVIFWHOLE.

Ticket: #2755650
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 09:01:38 -04:00
Donald Sharp
de3d6b4db4 tests: Reduce some pim test timings to more manageable levels
a) Remove the retry mechanism to continue looking for 75%
of the time for pim code.

   This alone saves a bunch of time in tests that use lib/pim.py
   Effectively all the times given for retry are already long
   enough.  Additionally some tests are gathering data with
   the expectation that they will not find data so the entire
   time is being taken up in retry's.  Extending the retry
   mechanism makes this even worse.  This is especially bad
   for pim in that keep alive timers are counting down and
   state can be removed due to excessive time waiting.

b) Reduce verify verify_multicast_traffic from 40 seconds
to 20 seconds to gather traffic data.

   A bunch of tests are doing this:
   a) gather pre test start traffic data( taking about 70
   seconds to run, because a bunch of time it was looking
   for data that does not exist yet)
   b) run a change to introduce a different traffic flow
   c) gather post test traffic data ( taking about 70
   seconds to run )

   Why does this matter?  Tests were iterating through
   all the different routers looking for traffic flow
   as well as different mroute state.  This is against
   the keepalive timer of 210 seconds.  It does not take
   long before the stream can be removed and the test is
   still looking for data that is no longer there due
   to state timeout.

   The multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py
   test reduced run time from 398 seconds to 297 seconds.
   Greatly reducing keepalive timeout problems.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01 09:01:38 -04:00
Donatas Abraitis
896c1174fc
Merge pull request #10947 from donaldsharp/isis_crash
isisd, lib, ospfd, pathd: Null out free'd pointer
2022-04-01 10:29:17 +03:00
anlan_cs
664b6f1851 bgpd: add whitespace after "%%" for prompt
Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-01 03:27:27 -04:00
anlan_cs
21311bc8a0 zebra: add whitespace after "%%" for prompt
Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-01 03:27:20 -04:00
anlan_cs
2e39ebbb09 zebra: adjust the warnings for ESI of evpn-mh
Since there are two kinds of ESI (Type-0 and Type-3), the warnings
should distinguish between the two cases.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-01 03:00:11 -04:00
anlan_cs
e2d3f9166d bgpd: use "assert" for one check on evpn-mh
"no ead-es-route-target export RT":
Since existance is already checked in `bgp_evpn_ead_es_rt_cmd`
with `bgp_evpn_rt_matches_existing()`, there MUST be a deleting
node in evpn's `bgp_mh_info->ead_es_export_rtl` list.

Just modify the check for deleting node to an `assert`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-01 02:51:36 -04:00
anlan_cs
c12d5f2086 doc: two minor changes for evpn-mh
Correct one word - `EAD-per-ES`, and remove one unuseful `index::` line.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-03-31 21:03:47 -04:00
Donald Sharp
aa5ced0ac8 isisd, lib, ospfd, pathd: Null out free'd pointer
The commands:

router isis 1
  mpls-te on
  no mpls-te on
  mpls-te on
  no mpls-te on
!

Will crash

Valgrind gives us this:
==652336== Invalid read of size 8
==652336==    at 0x49AB25C: typed_rb_min (typerb.c:495)
==652336==    by 0x4943B54: vertices_const_first (link_state.h:424)
==652336==    by 0x493DCE4: vertices_first (link_state.h:424)
==652336==    by 0x493DADC: ls_ted_del_all (link_state.c:1010)
==652336==    by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871)
==652336==    by 0x495BE20: nb_callback_destroy (northbound.c:1131)
==652336==    by 0x495B5AC: nb_callback_configuration (northbound.c:1356)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==  Address 0x6f928e0 is 272 bytes inside a block of size 320 free'd
==652336==    at 0x48399AB: free (vg_replace_malloc.c:538)
==652336==    by 0x494BA30: qfree (memory.c:141)
==652336==    by 0x493D99D: ls_ted_del (link_state.c:997)
==652336==    by 0x493DC20: ls_ted_del_all (link_state.c:1018)
==652336==    by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871)
==652336==    by 0x495BE20: nb_callback_destroy (northbound.c:1131)
==652336==    by 0x495B5AC: nb_callback_configuration (northbound.c:1356)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==  Block was alloc'd at
==652336==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==652336==    by 0x494B6F8: qcalloc (memory.c:116)
==652336==    by 0x493D7D2: ls_ted_new (link_state.c:967)
==652336==    by 0x47E4DD: isis_instance_mpls_te_create (isis_nb_config.c:1832)
==652336==    by 0x495BB29: nb_callback_create (northbound.c:1034)
==652336==    by 0x495B547: nb_callback_configuration (northbound.c:1348)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==    by 0x495D23E: nb_cli_apply_changes (northbound_cli.c:268)

Let's null out the pointer.  After this change.  Valgrind no longer reports issues
and isisd no longer crashes.

Fixes: #10939
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-03-31 15:59:46 -04:00
Mark Stapp
db8a0be36d
Merge pull request #10943 from opensourcerouting/build-ldflags-g
build: stick `-g` into LDFLAGS
2022-03-31 15:26:13 -04:00
Donatas Abraitis
f70c91dcef bgpd: Add %pBP printfrr() extension to print IP(hostname) for BGP peer
Replace existing bgp_peer_hostname() function.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-03-31 21:20:11 +03:00
Donatas Abraitis
e27376e492
Merge pull request #10916 from rampxxxx/feat_frr_ubi8_docker
docker: Adding support for ubi-8 images.
2022-03-31 21:18:30 +03:00
Donatas Abraitis
d36b9b078c
Merge pull request #10917 from rampxxxx/fix_fxx_centos8_docker
docker: Centos-8 dockerfile fix.
2022-03-31 21:13:43 +03:00
Trey Aspelund
436a6a3e51 zebra: don't send RAs w/o LLv6 or on bridge-ports
It's confusing for a user to see 'Tx RA failed' in the logs when
they've enabled RAs (either through interface config or BGP unnumbered)
on an interface that can't send them.  Let's avoid sending RAs on
interfaces that are bridge_slaves or don't have a link-local address,
since they are the two of the most common reasons for RA Tx failures.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2022-03-31 16:38:37 +00:00
David Lamparter
baad07c59d build: stick -g into LDFLAGS
Without `-g` in LDFLAGS we won't get debug info even if it's enabled in
CFLAGS.  Since we're controlling debug info through CFLAGS, there's no
harm in always having `-g` in LDFLAGS.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-03-31 17:35:32 +02:00
Igor Ryzhov
f979f3fd21
Merge pull request #10937 from opensourcerouting/fix/bgpd_rmap_match_script
bgpd: Show `match script SCRIPT` in running config
2022-03-31 15:14:20 +03:00
Mark Stapp
f77f21afaf
Merge pull request #10915 from opensourcerouting/printfrr-pzn
doc/developer: daemon-specific printfrr formats
2022-03-31 07:22:14 -04:00
Javier Garcia
d4e5ceae70 docker: Adding support for ubi-8 images.
- Create frr docker container based in new Red Hat Universal Base
  Images.

- This build a docker container based in ubi-8.
- Need to get the devel packages from centos-8 stream repos.
- Centos-8 stream repos added : base, appstream, powertools and epel

Signed-off-by: Javier Garcia <javier.martin.garcia@ibm.com>
2022-03-31 12:12:38 +02:00
Philippe Guibert
cdfb430e2f isisd: fix typo in show debugging
fix typo in show debugging.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-03-31 11:19:26 +02:00
Philippe Guibert
a514ac486a isisd: prevent from accessing a non initialised pointer
When using bfd on a single level, one may access a null pointer
list. Prevent from using it.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-03-31 11:18:45 +02:00
Igor Ryzhov
ab313a9e35
Merge pull request #10934 from opensourcerouting/fix/ospf_state_neighbor_detail 2022-03-31 11:16:43 +03:00
anlan_cs
c4992a2f71 zebra: fix missing vrf change of l2vni on vxlan interface
The bounded vrf of `l2vni/zevpn` have wrong relation with the order
in which vxlan interface and svi interface are set.

If set vxlan interface with vlanid first, then set svi interface with
vrf, it is ok that vxlan interface will get correct `vrf` inherited
from svi. But reverse the set sequence (i.e. set svi first, then vxlan),
vxlan interface can't get correct `vrf`, becasue the handling of
`ZEBRA_VXLIF_VLAN_CHANGE` missed inheritting `vrf` by mistake.

```
host# do show  evpn vni 101
VNI: 101
Type: L2
Tenant VRF: vrf1
```

So update `vrf` ("Tenant VRF") of l2vni in `zebra_vxlan_if_update()`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-03-31 02:51:26 -04:00
Donatas Abraitis
49ecb8b807 bgpd: Show match script SCRIPT in running config
Before:
```
route-map lua permit 10
exit
```

After:
```
route-map lua permit 10
 match script rm
exit
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-03-31 09:39:52 +03:00
Donatas Abraitis
41710ed15e ospfd: Show neighbor state in full format (e.g. Full/DR instead of Full)
Before:
```
$ vtysh -c 'show ip ospf neighbor json' | jq '.neighbors."100.100.200.100"[0].nbrState'
"Full/DR"
$ vtysh -c 'show ip ospf neighbor detail json' | jq '.neighbors."100.100.200.100"[0].nbrState'
"Full"
```

After:
```
$ vtysh -c 'show ip ospf neighbor json' | jq '.neighbors."100.100.200.100"[0].nbrState'
"Full/DR"
$ vtysh -c 'show ip ospf neighbor detail json' | jq '.neighbors."100.100.200.100"[0].nbrState'
"Full/DR"
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-03-30 22:28:39 +03:00
Donatas Abraitis
66da8b5ac8
Merge pull request #10926 from donaldsharp/all_stop
tools: Modify all_stop to actually try to stop all daemons
2022-03-30 21:14:25 +03:00
David Lamparter
c0d6ed6bc4
Merge pull request #10676 from AbhishekNR/pim_showcli_com 2022-03-30 17:15:54 +02:00
Donald Sharp
1bb4a33d05
Merge pull request #10912 from mobash-rasool/fixes2
pimd: Do not create PIM state when an invalid IGMPv3 join is received
2022-03-30 10:34:56 -04:00
David Lamparter
c5c7de20fa doc/developer: daemon-specific printfrr formats
Group together and extend docs on daemon-specific printfrr formats.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-03-30 16:14:28 +02:00