]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
23 months agozebra: ignore unspec RetransTimer in RA validation
Trey Aspelund [Fri, 30 Sep 2022 20:47:54 +0000 (20:47 +0000)]
zebra: ignore unspec RetransTimer in RA validation

Section 6.2.7 of RFC 4861 states that a router SHOULD log
inconsistencies in RA information detected on a given link:
```
    - Cur Hop Limit values (except for the unspecified value of zero
      other inconsistencies SHOULD be logged to system network
      management).

    - Values of the M or O flags.

    - Reachable Time values (except for the unspecified value of zero).

    - Retrans Timer values (except for the unspecified value of zero).

    - Values in the MTU options.

    - Preferred and Valid Lifetimes for the same prefix.  If
      AdvPreferredLifetime and/or AdvValidLifetime decrement in real
      time as specified in Section 6.2.1 then the comparison of the
      lifetimes cannot compare the content of the fields in the Router
      Advertisement, but must instead compare the time at which the
      prefix will become deprecated and invalidated, respectively.  Due
      to link propagation delays and potentially poorly synchronized
      clocks between the routers such comparison SHOULD allow some time
      skew.
```

We were not logging inconsistencies if "the unspecified value of zero"
was used for Reachable Time but were logging them for Retrans Timer.
This updates the validation check to also skip the logging of Retrans
Timer inconsistencies if either local/rx value is 0.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
23 months agozebra: show local/rx values in RA mismatch debugs
Trey Aspelund [Fri, 30 Sep 2022 19:58:31 +0000 (19:58 +0000)]
zebra: show local/rx values in RA mismatch debugs

When we process a received Router Advertisement we have some logic in
place to detect and log mismatches in a handful of flags/values.
However, these logs do not include what the actual values are, which
means it's up to the operator to grab a packet capture and compare that
against the local configuration...
So let's make life a little easier by including those in the log itself.

Before:
```
2022/09/30 20:37:16 ZEBRA: [KV2V1-7GM7G][EC 4043309149] enp1s0(2): Rx RA - our AdvCurHopLimit doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [KS0BP-4GR8K][EC 4043309149] enp1s0(2): Rx RA - our AdvManagedFlag doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [RE4EC-VYEJ2][EC 4043309149] enp1s0(2): Rx RA - our AdvOtherConfigFlag doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [X6794-9MW18][EC 4043309149] enp1s0(2): Rx RA - our AdvReachableTime doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [S1KXC-H8F4W][EC 4043309149] enp1s0(2): Rx RA - our AdvRetransTimer doesn't agree with fe80::5054:ff:feca:b085
```

After:
```
Sep 30 20:45:18 ub20-2 zebra[47487]: [GSW5Z-V7DZN][EC 4043309149] enp1s0(2): Rx RA - our AdvCurHopLimit (14) doesn't agree with fe80::5054:ff:fe9a:e2ca (64)
Sep 30 20:45:18 ub20-2 zebra[47487]: [RHHTS-F96DR][EC 4043309149] enp1s0(2): Rx RA - our AdvManagedFlag (0) doesn't agree with fe80::5054:ff:fe9a:e2ca (1)
Sep 30 20:45:18 ub20-2 zebra[47487]: [MNBY3-FTN6W][EC 4043309149] enp1s0(2): Rx RA - our AdvOtherConfigFlag (0) doesn't agree with fe80::5054:ff:fe9a:e2ca (1)
Sep 30 20:45:18 ub20-2 zebra[47487]: [GG62B-XXWR0][EC 4043309149] enp1s0(2): Rx RA - our AdvReachableTime (20) doesn't agree with fe80::5054:ff:fe9a:e2ca (777)
Sep 30 20:45:18 ub20-2 zebra[47487]: [YG220-D6B4H][EC 4043309149] enp1s0(2): Rx RA - our AdvRetransTimer (13) doesn't agree with fe80::5054:ff:fe9a:e2ca (0)
```

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
23 months agoMerge pull request #12047 from donaldsharp/bgp_nexthop_individual
Russ White [Tue, 4 Oct 2022 11:41:58 +0000 (07:41 -0400)]
Merge pull request #12047 from donaldsharp/bgp_nexthop_individual

bgpd: Fix `show bgp nexthop A.B.C.D`

23 months agoMerge pull request #12043 from donaldsharp/bgp_hate
Donatas Abraitis [Sat, 1 Oct 2022 17:40:15 +0000 (20:40 +0300)]
Merge pull request #12043 from donaldsharp/bgp_hate

Bgp hate

23 months agobgpd: Fix `show bgp nexthop A.B.C.D`
Donald Sharp [Fri, 30 Sep 2022 18:58:21 +0000 (14:58 -0400)]
bgpd: Fix `show bgp nexthop A.B.C.D`

The issuing of `show bgp nexthop A.B.C.D` fails even if that
nexthop exists:

eva# show bgp nexthop 192.168.119.120
specified nexthop does not have entry

Fixed:

eva# show bgp nexthop 192.168.119.120
 192.168.119.120 valid [IGP metric 0], #paths 0, peer 192.168.119.120
  if enp39s0
  Last update: Fri Sep 30 14:55:13 2022

  Paths:

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agobgpd: Ensure FRR has enough data to read 2 bytes in bgp_open_option_parse
Donald Sharp [Fri, 30 Sep 2022 12:57:43 +0000 (08:57 -0400)]
bgpd: Ensure FRR has enough data to read 2 bytes in bgp_open_option_parse

In bgp_open_option_parse the code is checking that the
stream has at least 2 bytes to read ( the opt_type and
the opt_length).  However if BGP_OPEN_EXT_OPT_PARAMS_CAPABLE(peer)
is configured then FRR is reading 3 bytes.  Which is not good
since the packet could be badly formateed.  Ensure that
FRR has the appropriate data length to read the data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agobgpd: Ensure FRR has enough data to read 2 bytes in peek_for_as4_capability
Donald Sharp [Fri, 30 Sep 2022 12:51:45 +0000 (08:51 -0400)]
bgpd: Ensure FRR has enough data to read 2 bytes in peek_for_as4_capability

In peek_for_as4_capability the code is checking that the
stream has at least 2 bytes to read ( the opt_type and the
opt_length ).  However if BGP_OPEN_EXT_OPT_PARAMS_CAPABLE(peer)
is configured then FRR is reading 3 bytes.  Which is not good
since the packet could be badly formated.  Ensure that
FRR has the appropriate data length to read the data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agoMerge pull request #12035 from donaldsharp/pim6_write_non_integrated
Donatas Abraitis [Thu, 29 Sep 2022 11:47:10 +0000 (14:47 +0300)]
Merge pull request #12035 from donaldsharp/pim6_write_non_integrated

pimd: Allow v6 to do non-integrated configuration

23 months agopimd: Remove some unused defines in pimd.h
Donald Sharp [Tue, 27 Sep 2022 16:30:26 +0000 (12:30 -0400)]
pimd: Remove some unused defines in pimd.h

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agopimd: Assign a vty port value for v6
Donald Sharp [Tue, 27 Sep 2022 16:29:36 +0000 (12:29 -0400)]
pimd: Assign a vty port value for v6

Let's use 2620

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agoMerge pull request #12036 from opensourcerouting/fix/show_single_allow-reserved-ranges
Donald Sharp [Wed, 28 Sep 2022 12:24:52 +0000 (08:24 -0400)]
Merge pull request #12036 from opensourcerouting/fix/show_single_allow-reserved-ranges

vtysh: Show allow-reserved-ranges once in config

23 months agoMerge pull request #12028 from mobash-rasool/igmp-querier
Donald Sharp [Tue, 27 Sep 2022 19:45:27 +0000 (15:45 -0400)]
Merge pull request #12028 from mobash-rasool/igmp-querier

pimd: IGMP Querier election is not correct in LAN scenario

23 months agovtysh: Show allow-reserved-ranges once in config
Donatas Abraitis [Tue, 27 Sep 2022 18:39:50 +0000 (21:39 +0300)]
vtysh: Show allow-reserved-ranges once in config

Before:

```
donatas-pc# sh run | include allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
donatas-pc#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
23 months agoMerge pull request #11990 from spk-hebbar/patch-1
Donald Sharp [Tue, 27 Sep 2022 16:40:37 +0000 (12:40 -0400)]
Merge pull request #11990 from spk-hebbar/patch-1

Update setup.rst

23 months agopimd: Allow v6 to do non-integrated configuration
Donald Sharp [Tue, 27 Sep 2022 16:24:16 +0000 (12:24 -0400)]
pimd: Allow v6 to do non-integrated configuration

Proof:
eva# conf
eva(config)# no service integrated-vtysh-config
eva(config)# end
eva# wr mem
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/ripngd.conf
Configuration saved to /etc/frr/ospfd.conf
Configuration saved to /etc/frr/ospf6d.conf
Configuration saved to /etc/frr/bgpd.conf
Configuration saved to /etc/frr/isisd.conf
Configuration saved to /etc/frr/pimd.conf
Configuration saved to /etc/frr/nhrpd.conf
Configuration saved to /etc/frr/eigrpd.conf
Configuration saved to /etc/frr/babeld.conf
Configuration saved to /etc/frr/sharpd.conf
Configuration saved to /etc/frr/fabricd.conf
Configuration saved to /etc/frr/pbrd.conf
Configuration saved to /etc/frr/staticd.conf
Configuration saved to /etc/frr/bfdd.conf
Configuration saved to /etc/frr/vrrpd.conf
Configuration saved to /etc/frr/pim6d.conf
eva#

Fixes: #12011
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agoMerge pull request #12018 from pguibert6WIND/pathd_warning_noted
Donald Sharp [Tue, 27 Sep 2022 15:39:46 +0000 (11:39 -0400)]
Merge pull request #12018 from pguibert6WIND/pathd_warning_noted

pathd: change the vty output, when no ted is enabled on pathd

23 months agoMerge pull request #12029 from donaldsharp/cputime_stats
Donatas Abraitis [Tue, 27 Sep 2022 15:39:06 +0000 (18:39 +0300)]
Merge pull request #12029 from donaldsharp/cputime_stats

Cputime stats

23 months agoMerge pull request #11985 from opensourcerouting/fix/thread_off_llgr
Russ White [Tue, 27 Sep 2022 15:29:54 +0000 (11:29 -0400)]
Merge pull request #11985 from opensourcerouting/fix/thread_off_llgr

bgpd: Stop LLGR thread when deleting a peer and/or GR flags changed

23 months agoMerge pull request #12006 from opensourcerouting/fix/doc_for_rfc9072
Russ White [Tue, 27 Sep 2022 15:28:06 +0000 (11:28 -0400)]
Merge pull request #12006 from opensourcerouting/fix/doc_for_rfc9072

doc: Add `neighbor PEER extended-optional-parameters` command

23 months agoMerge pull request #12010 from opensourcerouting/fix/logging_for_route_refresh
Russ White [Tue, 27 Sep 2022 15:27:12 +0000 (11:27 -0400)]
Merge pull request #12010 from opensourcerouting/fix/logging_for_route_refresh

bgpd: Print hostname for peer as well when marking as stale for route-refresh

23 months agoMerge pull request #12016 from opensourcerouting/fix/route_map_show_json
Russ White [Tue, 27 Sep 2022 15:26:28 +0000 (11:26 -0400)]
Merge pull request #12016 from opensourcerouting/fix/route_map_show_json

lib: Fix `show route-map NAME json` command and memory leak

23 months agodoc: Update setup.rst
Spoorthi K [Tue, 27 Sep 2022 14:21:42 +0000 (19:51 +0530)]
doc: Update setup.rst

Signed-off-by: Spoorthi K <spk@redhat.com>
23 months agovtysh: Properly handle `service cputime-warning XX` in config
Donald Sharp [Tue, 27 Sep 2022 13:05:30 +0000 (09:05 -0400)]
vtysh: Properly handle `service cputime-warning XX` in config

Prevent duplicate lines from each daemon in vtysh output.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agovtysh: Properly handle `[no] service cputime-stats` in config
Donald Sharp [Tue, 27 Sep 2022 13:02:26 +0000 (09:02 -0400)]
vtysh: Properly handle `[no] service cputime-stats` in config

Prevent duplicate lines from each daemon in vtysh output.

Fixes: #12022
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
23 months agopimd: IGMP Querier election is not correct in LAN scenario
Mobashshera Rasool [Tue, 27 Sep 2022 11:49:34 +0000 (04:49 -0700)]
pimd: IGMP Querier election is not correct in LAN scenario

When more than 2 routers are present in LAN and the querier
goes down, the other routers will wait for other querier
present timer to expire to elect a new querier.
This issue will be seen when the router having next lower ip
address expires the other querier present timer first and it
starts sending the query message. Now on the other non-querier
routers it will receive this query and reset its other
querier present timer but the querier is still the old one
and since it is lowest ip, it never gets updated to the newly
elected querier.

Reset the other querier timer only if query is received from
the previously elected querier or a better new querier
This will make sure that non-querier elects the new querier
whose ip address is higher than the old querier
when the old querier goes down via other querier querier
timer expiry

Issue: #12027

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
23 months agoMerge pull request #11989 from maduri111/bgpd-cond-adv-peer-unset
Donatas Abraitis [Tue, 27 Sep 2022 12:03:58 +0000 (15:03 +0300)]
Merge pull request #11989 from maduri111/bgpd-cond-adv-peer-unset

bgpd: conditional advertise-map unset on peer not re-advertising with…

23 months agoMerge pull request #11910 from fdumontet6WIND/NAI_Adj
Olivier Dugeon [Tue, 27 Sep 2022 09:24:53 +0000 (11:24 +0200)]
Merge pull request #11910 from fdumontet6WIND/NAI_Adj

 pathd: nai adjacency fix query type f for IPV6

23 months agoMerge pull request #12009 from AbhishekNR/json_last-member-query-count
Donatas Abraitis [Tue, 27 Sep 2022 06:42:11 +0000 (09:42 +0300)]
Merge pull request #12009 from AbhishekNR/json_last-member-query-count

pim6d: Adding last member query count field in "show ipv6 mld interface [ifname] json" command.

2 years agopathd: change the vty output, when no ted is enabled on pathd
Philippe Guibert [Mon, 26 Sep 2022 15:12:02 +0000 (17:12 +0200)]
pathd: change the vty output, when no ted is enabled on pathd

Change the vty output, in case ted is not enabled.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 years agoMerge pull request #12002 from opensourcerouting/fix/add_doc_missing_bgp_implemented_rf
Donald Sharp [Mon, 26 Sep 2022 13:07:22 +0000 (09:07 -0400)]
Merge pull request #12002 from opensourcerouting/fix/add_doc_missing_bgp_implemented_rf

doc: Update supported BGP RFC list

2 years agoMerge pull request #12000 from opensourcerouting/fix/remove_deprecated_ospf_command
Donald Sharp [Mon, 26 Sep 2022 12:44:40 +0000 (08:44 -0400)]
Merge pull request #12000 from opensourcerouting/fix/remove_deprecated_ospf_command

ospfd: Remove deprecated command `graceful-restart helper-only`

2 years agoMerge pull request #12003 from anlancs/fix/fpm-crash
Donald Sharp [Mon, 26 Sep 2022 12:43:40 +0000 (08:43 -0400)]
Merge pull request #12003 from anlancs/fix/fpm-crash

zebra: fix fpm crash

2 years agolib: Fix `show route-map NAME json` command and memory leak
Donatas Abraitis [Mon, 26 Sep 2022 11:49:54 +0000 (14:49 +0300)]
lib: Fix `show route-map NAME json` command and memory leak

JSON object was generated, but not printed, because the function returned
immediatelly, even without freeing the memory.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Print hostname for peer as well when marking as stale for route-refresh
Donatas Abraitis [Mon, 26 Sep 2022 08:07:01 +0000 (11:07 +0300)]
bgpd: Print hostname for peer as well when marking as stale for route-refresh

Before:

```
2022/09/26 10:13:35.261 BGP: [QCZ1W-VKS36] 192.168.0.1(r0) sending REFRESH_REQ for afi/safi: IPv4/unicast
2022/09/26 10:13:35.262 BGP: [VF3QY-FP1PP] 192.168.0.1: route-refresh for IPv4/unicast, marking prefix 172.16.1.1/32 as stale
2022/09/26 10:13:35.262 BGP: [VF3QY-FP1PP] 192.168.0.1: route-refresh for IPv4/unicast, marking prefix 192.168.0.0/24 as stale
2022/09/26 10:13:35.262 BGP: [SDZS7-XVC4W] 192.168.0.1(r0) rcvd route-refresh (BoRR) for IPv4/unicast, triggering timer for 360 seconds
2022/09/26 10:13:35.362 BGP: [Y6XKR-PF89P] 192.168.0.1(r0) rcvd route-refresh (EoRR) for IPv4/unicast, stopping BoRR timer
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopim6d: Adding last member query count field in "show ipv6 mld interface [ifname]...
Abhishek N R [Mon, 26 Sep 2022 06:58:51 +0000 (23:58 -0700)]
pim6d: Adding last member query count field in "show ipv6 mld interface [ifname] json" command.

Fixes: #12004
Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agodoc: Add `neighbor PEER extended-optional-parameters` command
Donatas Abraitis [Sun, 25 Sep 2022 18:02:06 +0000 (21:02 +0300)]
doc: Add `neighbor PEER extended-optional-parameters` command

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agodoc: Update supported BGP RFC list
Donatas Abraitis [Fri, 23 Sep 2022 19:37:41 +0000 (22:37 +0300)]
doc: Update supported BGP RFC list

Added such RFCs (missing):

https://datatracker.ietf.org/doc/html/rfc2385
https://datatracker.ietf.org/doc/html/rfc2918
https://datatracker.ietf.org/doc/html/rfc4360
https://datatracker.ietf.org/doc/html/rfc4456
https://datatracker.ietf.org/doc/html/rfc4724
https://datatracker.ietf.org/doc/html/rfc4760
https://datatracker.ietf.org/doc/html/rfc5065
https://datatracker.ietf.org/doc/html/rfc5291
https://datatracker.ietf.org/doc/html/rfc5292
https://datatracker.ietf.org/doc/html/rfc6472
https://datatracker.ietf.org/doc/html/rfc5492
https://datatracker.ietf.org/doc/html/rfc7911
https://datatracker.ietf.org/doc/html/rfc6996
https://datatracker.ietf.org/doc/html/rfc6938
https://datatracker.ietf.org/doc/html/rfc8093
https://datatracker.ietf.org/doc/html/rfc7947
https://datatracker.ietf.org/doc/html/rfc9012
https://datatracker.ietf.org/doc/html/rfc8669
https://datatracker.ietf.org/doc/html/rfc8050

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #12001 from donaldsharp/use_integrated
Donatas Abraitis [Sun, 25 Sep 2022 08:44:42 +0000 (11:44 +0300)]
Merge pull request #12001 from donaldsharp/use_integrated

doc: Align docs to recommend integrated config

2 years agobgpd: conditional advertise-map unset on peer fixing warning messages
Madhuri Kuruganti [Sun, 25 Sep 2022 06:07:00 +0000 (11:37 +0530)]
bgpd: conditional advertise-map unset on peer fixing warning messages

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
2 years agobgpd: conditional advertise-map unset on peer not re-advertising withdrawn routes
Madhuri Kuruganti [Wed, 21 Sep 2022 16:14:13 +0000 (21:44 +0530)]
bgpd: conditional advertise-map unset on peer not re-advertising withdrawn routes

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
2 years agozebra: fix fpm crash
anlan_cs [Sat, 24 Sep 2022 23:00:14 +0000 (19:00 -0400)]
zebra: fix fpm crash

Fix issue#11996.

When removing VRF ( all routes of this VRF), zebra mistakenly forgot to check
whether its routes are in update queue of FPM.  So FPM module will crash during
its dealing with these routes, which are already freed.

Add a new HOOK `rib_shutdown()`, `zebra_rtable_node_cleanup()` will use it
to remove these routes from update queue of FPM module before freeing them.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agodoc: Align docs to recommend integrated config
Donald Sharp [Fri, 23 Sep 2022 19:16:40 +0000 (15:16 -0400)]
doc: Align docs to recommend integrated config

Docs were recommending both integrated and non-integrated
config in different sections.  Remove the recommendation
for non-integrated config from vtysh.rst.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospfd: Remove deprecated command `graceful-restart helper-only`
Donatas Abraitis [Fri, 23 Sep 2022 19:10:05 +0000 (22:10 +0300)]
ospfd: Remove deprecated command `graceful-restart helper-only`

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11982 from samanvithab/bgp_mem_fix
Donatas Abraitis [Fri, 23 Sep 2022 14:54:33 +0000 (17:54 +0300)]
Merge pull request #11982 from samanvithab/bgp_mem_fix

bgpd: multiple memory leak issue fixes

2 years agobgpd: Cleanup memory leaks associated with t_deferral_timer
Samanvitha B Bhargav [Wed, 21 Sep 2022 10:18:06 +0000 (03:18 -0700)]
bgpd: Cleanup memory leaks associated with t_deferral_timer

We are allocating temporary memory for information about
what to process in this thread, which is not being cleaned
up on thread cancelling.

Signed-off-by: Samanvitha B Bhargav <bsmanvitha@vmware.com>
2 years agoMerge pull request #11997 from sri-mohan1/sri-zebra-dbg1
Donatas Abraitis [Fri, 23 Sep 2022 07:04:25 +0000 (10:04 +0300)]
Merge pull request #11997 from sri-mohan1/sri-zebra-dbg1

zebra: changes for code maintainability

2 years agozebra: changes for code maintainability
sri-mohan1 [Thu, 22 Sep 2022 18:34:40 +0000 (00:04 +0530)]
zebra: changes for code maintainability

these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2 years agoMerge pull request #11993 from opensourcerouting/feature/printfrr_pRD
Donald Sharp [Thu, 22 Sep 2022 13:30:51 +0000 (09:30 -0400)]
Merge pull request #11993 from opensourcerouting/feature/printfrr_pRD

bgpd: Use %pRD for prefix_rd2str()

2 years agoMerge pull request #11979 from opensourcerouting/fix/stop_conditional_adv_thread
Donald Sharp [Thu, 22 Sep 2022 13:30:01 +0000 (09:30 -0400)]
Merge pull request #11979 from opensourcerouting/fix/stop_conditional_adv_thread

bgpd: Stop conditional advertisements thread when terminating

2 years agobgpd: Use %pRD for prefix_rd2str()
Donatas Abraitis [Thu, 22 Sep 2022 08:17:49 +0000 (11:17 +0300)]
bgpd: Use %pRD for prefix_rd2str()

Convert a bunch of prefix_rd2str() for json/vty stuff.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Stop conditional advertisements thread when terminating
Donatas Abraitis [Tue, 20 Sep 2022 20:47:55 +0000 (23:47 +0300)]
bgpd: Stop conditional advertisements thread when terminating

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11986 from opensourcerouting/fix/drop_outdated_files
Donald Sharp [Wed, 21 Sep 2022 16:56:25 +0000 (12:56 -0400)]
Merge pull request #11986 from opensourcerouting/fix/drop_outdated_files

bgpd: Drop out-of-date files

2 years agobgpd: Drop out-of-date files
Donatas Abraitis [Wed, 21 Sep 2022 14:21:31 +0000 (17:21 +0300)]
bgpd: Drop out-of-date files

Just not maintained for > 18 years.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11977 from opensourcerouting/fix/docker_alpine_apk
Donald Sharp [Wed, 21 Sep 2022 14:15:49 +0000 (10:15 -0400)]
Merge pull request #11977 from opensourcerouting/fix/docker_alpine_apk

docker: Keep and copy .apk files after they are built

2 years agobgpd: Stop LLGR thread when deleting a peer and/or GR flags changed
Donatas Abraitis [Wed, 21 Sep 2022 14:13:28 +0000 (17:13 +0300)]
bgpd: Stop LLGR thread when deleting a peer and/or GR flags changed

Also valid when shutting down a BGP instance.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: memory leak issue fix
Samanvitha B Bhargav [Wed, 21 Sep 2022 08:57:09 +0000 (01:57 -0700)]
bgpd: memory leak issue fix

Memory allocated when 'import vrf route maps <>' is configured,
wasn't being freed when the entire bgp config
was deleted through 'no router bgp'.

Signed-off-by: Samanvitha B Bhargav <bsmanvitha@vmware.com>
2 years agobgpd: memory leak issue fix
Samanvitha B Bhargav [Wed, 21 Sep 2022 08:45:41 +0000 (01:45 -0700)]
bgpd: memory leak issue fix

In ecommunity_del_val(), ecommunity was not being freed
when the last value in the ecommunity was being deleted.

Signed-off-by: Samanvitha B Bhargav <bsmanvitha@vmware.com>
2 years agobgpd: memory leak issue fix
Samanvitha B Bhargav [Wed, 21 Sep 2022 07:54:14 +0000 (00:54 -0700)]
bgpd: memory leak issue fix

When router id is changed through config, new RD is auto generated.
However new export RT was being assigned without freeing
the older RT from VRF.

Signed-off-by: Samanvitha B Bhargav <bsmanvitha@vmware.com>
2 years agoMerge pull request #11802 from AbhishekNR/ttable_pim_state
Donatas Abraitis [Wed, 21 Sep 2022 08:00:40 +0000 (11:00 +0300)]
Merge pull request #11802 from AbhishekNR/ttable_pim_state

pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim state" command output.

2 years agoMerge pull request #11918 from patrasar/show_ipv6_mld_interface_fix
Donatas Abraitis [Wed, 21 Sep 2022 07:19:33 +0000 (10:19 +0300)]
Merge pull request #11918 from patrasar/show_ipv6_mld_interface_fix

pim6d: "show ipv6 mld interface" command

2 years agoMerge pull request #11968 from donaldsharp/isis_plist_mem_leak
mobash-rasool [Wed, 21 Sep 2022 02:52:33 +0000 (08:22 +0530)]
Merge pull request #11968 from donaldsharp/isis_plist_mem_leak

isisd: Fix memory leak on shutdown with prefix lists

2 years agodocker: Keep and copy .apk files after they are built
Donatas Abraitis [Tue, 20 Sep 2022 20:23:55 +0000 (23:23 +0300)]
docker: Keep and copy .apk files after they are built

For debugging purposes and/or to distribute them somewhere else.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11972 from pguibert6WIND/mpls_te_on
Donald Sharp [Tue, 20 Sep 2022 16:16:56 +0000 (12:16 -0400)]
Merge pull request #11972 from pguibert6WIND/mpls_te_on

pathd: 'no mpls-te on' command was not working

2 years agoMerge pull request #11952 from anlancs/fix/cleanup-20
Russ White [Tue, 20 Sep 2022 15:17:32 +0000 (11:17 -0400)]
Merge pull request #11952 from anlancs/fix/cleanup-20

include: clean up some white spaces

2 years agoMerge pull request #11956 from opensourcerouting/fix/bgpd_unlocks
Russ White [Tue, 20 Sep 2022 15:17:03 +0000 (11:17 -0400)]
Merge pull request #11956 from opensourcerouting/fix/bgpd_unlocks

bgpd: Don't forget bgp_dest_unlock_node before return

2 years agoisisd: Fix memory leak on shutdown with prefix lists
Donald Sharp [Mon, 19 Sep 2022 16:34:18 +0000 (12:34 -0400)]
isisd: Fix memory leak on shutdown with prefix lists

==2623619==
==2623619== 6 bytes in 1 blocks are definitely lost in loss record 3 of 75
==2623619==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==2623619==    by 0x4B55E4A: strdup (strdup.c:42)
==2623619==    by 0x493C992: qstrdup (memory.c:128)
==2623619==    by 0x1A9212: isis_instance_fast_reroute_level_1_remote_lfa_prefix_list_modify (isis_nb_config.c:1599)
==2623619==    by 0x494837C: nb_callback_modify (northbound.c:1083)
==2623619==    by 0x4948C6E: nb_callback_configuration (northbound.c:1352)
==2623619==    by 0x494919D: nb_transaction_process (northbound.c:1473)
==2623619==    by 0x4947DA9: nb_candidate_commit_apply (northbound.c:906)
==2623619==    by 0x4947EBA: nb_candidate_commit (northbound.c:938)
==2623619==    by 0x494EB9E: nb_cli_classic_commit (northbound_cli.c:64)
==2623619==    by 0x494F3DC: nb_cli_apply_changes_internal (northbound_cli.c:250)
==2623619==    by 0x494F4E2: nb_cli_apply_changes (northbound_cli.c:268)
==2623619==    by 0x1BEF0F: isis_frr_remote_lfa_plist_magic (isis_cli.c:1899)
==2623619==    by 0x1B7636: isis_frr_remote_lfa_plist (isis_cli_clippy.c:3406)
==2623619==    by 0x48EBA75: cmd_execute_command_real (command.c:997)
==2623619==    by 0x48EBD4E: cmd_execute_command_strict (command.c:1108)
==2623619==    by 0x48EC1E6: command_config_read_one_line (command.c:1268)
==2623619==    by 0x48EC35B: config_from_file (command.c:1313)
==2623619==    by 0x4999CC1: vty_read_file (vty.c:2347)
==2623619==    by 0x499A4AF: vty_read_config (vty.c:2567)
==2623619==    by 0x4924B12: frr_config_read_in (libfrr.c:984)
==2623619==    by 0x498F5E3: thread_call (thread.c:2008)
==2623619==    by 0x49253DA: frr_run (libfrr.c:1198)
==2623619==    by 0x14FC53: main (isis_main.c:273)

Fix this memory leak

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11954 from opensourcerouting/fix/ecommunity_memory_leak
Donald Sharp [Tue, 20 Sep 2022 12:18:47 +0000 (08:18 -0400)]
Merge pull request #11954 from opensourcerouting/fix/ecommunity_memory_leak

bgpd: Free ecommunity before returning on warning/error

2 years agopathd: 'no mpls-te on' command was not working
Philippe Guibert [Thu, 15 Sep 2022 15:18:42 +0000 (17:18 +0200)]
pathd: 'no mpls-te on' command was not working

Fix the 'no mpls-te on' command.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 years agoMerge pull request #11971 from opensourcerouting/fix/coccinelle_route_map_apply
Donald Sharp [Tue, 20 Sep 2022 11:32:22 +0000 (07:32 -0400)]
Merge pull request #11971 from opensourcerouting/fix/coccinelle_route_map_apply

bgpd: Use route_map_result_t for route_map_apply() as return type

2 years agobgpd: Use route_map_result_t for route_map_apply() as return type
Donatas Abraitis [Tue, 20 Sep 2022 07:45:02 +0000 (10:45 +0300)]
bgpd: Use route_map_result_t for route_map_apply() as return type

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11958 from AbhishekNR/ttable_show
Donatas Abraitis [Tue, 20 Sep 2022 06:47:09 +0000 (09:47 +0300)]
Merge pull request #11958 from AbhishekNR/ttable_show

pimd, pim6d: Using ttable for displaying show command outputs

2 years agoMerge pull request #11872 from AbhishekNR/const_igmp_gm
Donatas Abraitis [Mon, 19 Sep 2022 14:48:24 +0000 (17:48 +0300)]
Merge pull request #11872 from AbhishekNR/const_igmp_gm

pimd, pim6d: Changing IGMP to GM in few macro's.

2 years agoMerge pull request #11940 from sri-mohan1/sri-zebra-dbg1
Mark Stapp [Mon, 19 Sep 2022 14:43:38 +0000 (10:43 -0400)]
Merge pull request #11940 from sri-mohan1/sri-zebra-dbg1

zebra: changes for code maintainability

2 years agoMerge pull request #11953 from AbhishekNR/issue_11925
Donatas Abraitis [Mon, 19 Sep 2022 14:37:04 +0000 (17:37 +0300)]
Merge pull request #11953 from AbhishekNR/issue_11925

pim6d: (*,G) mroutes not learnt after pim6d daemon restart

2 years agoMerge pull request #11945 from leonshaw/bgp-refresh-eor
Donatas Abraitis [Mon, 19 Sep 2022 14:32:46 +0000 (17:32 +0300)]
Merge pull request #11945 from leonshaw/bgp-refresh-eor

bgpd: Handle route-refresh request received before EoR

2 years agoMerge pull request #11917 from patrasar/pimv6_clear_mroute_fix
Donald Sharp [Mon, 19 Sep 2022 12:34:37 +0000 (08:34 -0400)]
Merge pull request #11917 from patrasar/pimv6_clear_mroute_fix

pim6d: fix clear ipv6 mroute crash

2 years agopimd, pim6d: Using ttable for displaying "show ip/ipv6 pim local-membership" command...
Abhishek N R [Fri, 16 Sep 2022 17:37:21 +0000 (10:37 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim local-membership" command output

Before:

frr# sh ipv6 pim local-membership
Interface         Address          Source           Group            Membership
ens224            fe80::250:56ff:feb7:9091  *                ff08::1          NOINFO

After:

frr# sh ipv6 pim local-membership
 Interface  Address                   Source  Group    Membership
 ens224     fe80::250:56ff:feb7:9091  *       ff08::1  NOINFO

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopimd, pim6d: Using ttable for displaying "show ip/ipv6 pim neighbor" command output.
Abhishek N R [Fri, 16 Sep 2022 17:11:09 +0000 (10:11 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim neighbor" command output.

Before:

frr# show ipv6 pim neighbor
Interface                Neighbor    Uptime  Holdtime  DR Pri
ens192            fe80::250:56ff:feb7:38de  00:10:47  00:01:28       1
ens224            fe80::250:56ff:feb7:4bad  00:10:47  00:01:28       1

After:

frr# sh ipv6 pim neighbor
 Interface  Neighbor                  Uptime    Holdtime  DR Pri
 ens192     fe80::250:56ff:feb7:38de  00:00:12  00:01:32  1
 ens224     fe80::250:56ff:feb7:4bad  00:00:12  00:01:32  1

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopimd, pim6d: Using ttable for displaying "show ip/ipv6 pim join" command output
Abhishek N R [Fri, 16 Sep 2022 16:49:22 +0000 (09:49 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim join" command output

Before:
frr# sh ipv6 pim join
Interface        Address         Source          Group           State      Uptime   Expire Prune
ens224           fe80::250:56ff:feb7:9091 *               ff08::1         JOIN       00:16:31 03:28  --:--

After:
frr# show ipv6 pim join
 Interface  Address                   Source  Group    State  Uptime    Expire  Prune
 ens224     fe80::250:56ff:feb7:9091  *       ff08::1  JOIN   00:00:51  03:27   --:--

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopimd, pim6d: Changing IGMP to GM in few macro's.
Abhishek N R [Mon, 29 Aug 2022 12:17:08 +0000 (05:17 -0700)]
pimd, pim6d: Changing IGMP to GM in few macro's.

Changing
IGMP_DEFAULT_ROBUSTNESS_VARIABLE to GM_DEFAULT_ROBUSTNESS_VARIABLE,
IGMP_GENERAL_QUERY_INTERVAL to GM_GENERAL_QUERY_INTERVAL,
IGMP_QUERY_MAX_RESPONSE_TIME_DSEC to GM_QUERY_MAX_RESPONSE_TIME_DSEC and
IGMP_SPECIFIC_QUERY_MAX_RESPONSE_TIME_DSEC to GM_SPECIFIC_QUERY_MAX_RESPONSE_TIME_DSEC
to accomodate both igmp and mld. And moved it to common file.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agoMerge pull request #11955 from mobash-rasool/fixes3
Donatas Abraitis [Sat, 17 Sep 2022 20:30:07 +0000 (23:30 +0300)]
Merge pull request #11955 from mobash-rasool/fixes3

pim6d: Fixing coverity issues for pim6_mld.c

2 years agobgpd: Don't forget bgp_dest_unlock_node before return
Donatas Abraitis [Tue, 13 Sep 2022 22:44:23 +0000 (01:44 +0300)]
bgpd: Don't forget bgp_dest_unlock_node before return

Before returning an error, unlock bgp dest which is locked by
bgp_node_lookup()/bgp_node_get().

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11900 from patrasar/pimv6_lmqt
Donatas Abraitis [Fri, 16 Sep 2022 10:51:38 +0000 (03:51 -0700)]
Merge pull request #11900 from patrasar/pimv6_lmqt

pim6d: Update last_member_query_interval and last_member_query_count

2 years agobgpd: Handle route-refresh request received before EoR
Xiao Liang [Wed, 14 Sep 2022 03:13:41 +0000 (11:13 +0800)]
bgpd: Handle route-refresh request received before EoR

See the BGP message sequence:

    R1                  R2
    |      updates      |
    |------------------>|
    |                   |
    |  refresh request  |
    x<------------------|
    |                   |
    |   updates cont.   |
    |------------------>|
    |                   |
    |    end-of-rib     |
    |------------------>|
    |                   |

When R1 and R2 establish BGP session, R1 begins to send initial updates.
If R2 sends a route-refresh request before EoR, it's silently ignored
by R1, and routes received earlier have no chance to be processed again.

RFC7313 says, "for a BGP speaker that supports the BGP Graceful Restart,
it MUST NOT send a BoRR for an <AFI, SAFI> to a neighbor before it sends
the EoR for the <AFI, SAFI> to the neighbor." But it doesn't forbid
route-refresh request to be sent before receiving EoR.

To handle this scenario, postpone response to refresh request until EoR
is sent.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
2 years agopim6d: Fixing coverity issues for pim6_mld.c
Mobashshera Rasool [Fri, 16 Sep 2022 10:11:35 +0000 (03:11 -0700)]
pim6d: Fixing coverity issues for pim6_mld.c

CID 1519843 (#2 of 2): Uninitialized scalar variable (UNINIT)
43. uninit_use_in_call: Using uninitialized value pkt_src->sin6_addr when calling gm_rx_process

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agobgpd: Free ecommunity before returning on warning/error
Donatas Abraitis [Mon, 12 Sep 2022 02:05:42 +0000 (05:05 +0300)]
bgpd: Free ecommunity before returning on warning/error

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopimd, pim6d: Using ttable for displaying "show ip/ipv6 pim state" command output.
Abhishek N R [Sat, 13 Aug 2022 08:03:35 +0000 (01:03 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim state" command output.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: (*,G) mroutes not learnt after pim6d daemon restart
Abhishek N R [Fri, 16 Sep 2022 07:42:39 +0000 (00:42 -0700)]
pim6d: (*,G) mroutes not learnt after pim6d daemon restart

After restart pim dr address was zero due to which pim (*,G) join
could not get propagated towards RP.

While trying to find primary address ll_highest will be zero initially,
since we have not received address from zebra yet.

So we can get the best address at this point and use it as primary address
whenever ll_highest is zero.

Fixes: #11925
Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: fix clear ipv6 mroute crash
Sarita Patra [Wed, 7 Sep 2022 04:31:26 +0000 (21:31 -0700)]
pim6d: fix clear ipv6 mroute crash

Root Cause:
"clear ipv6 mroute" was not deleting the subscribers of gm_if
structure.

Fix:
The command "clear ipv6 mroute" deletes grp_pends, gsq_pends, sgs,
subscribers, expires of gm_if data structure.

Deleted the common code in gm_ifp_teardown() and called
gm_group_delete().

Issue: #11724

Signed-off-by: Sarita Patra <saritap@vmware.com>
2 years agoinclude: clean up some white spaces
anlan_cs [Thu, 15 Sep 2022 09:33:20 +0000 (05:33 -0400)]
include: clean up some white spaces

Found some extra spaces, clean up them with uniform format.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11949 from donaldsharp/plist_deletion_failure
Donatas Abraitis [Thu, 15 Sep 2022 18:32:37 +0000 (11:32 -0700)]
Merge pull request #11949 from donaldsharp/plist_deletion_failure

lib: Fix skip of every other plist deletion

2 years agoMerge pull request #11948 from mobash-rasool/fixes3
Donald Sharp [Thu, 15 Sep 2022 12:04:57 +0000 (08:04 -0400)]
Merge pull request #11948 from mobash-rasool/fixes3

pimd: Fix memleak in bfd profile

2 years agozebra: changes for code maintainability
sri-mohan1 [Tue, 13 Sep 2022 06:28:35 +0000 (11:58 +0530)]
zebra: changes for code maintainability

these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2 years agolib: Fix skip of every other plist deletion
Donald Sharp [Wed, 14 Sep 2022 17:48:31 +0000 (13:48 -0400)]
lib: Fix skip of every other plist deletion

When bulk deleting prefix lists on shutdown the code
was calling plist_delete, which removed the item
from the master->str list, and then popping the next
item on the list and just dropping it on the floor.
The pop is not needed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopimd: Fix memleak in bfd profile
Mobashshera Rasool [Wed, 14 Sep 2022 17:34:10 +0000 (10:34 -0700)]
pimd: Fix memleak in bfd profile

In function pim_if_delete, pim_ifp->bfd_config.profile needs to be
freed.
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agoMerge pull request #11946 from AbhishekNR/debug_igmp_gm
Donald Sharp [Wed, 14 Sep 2022 13:40:25 +0000 (09:40 -0400)]
Merge pull request #11946 from AbhishekNR/debug_igmp_gm

pimd, pim6d: Changing IGMP to GM in debug macros.

2 years agopimd, pim6d: Changing IGMP to GM in debug macros.
Abhishek N R [Wed, 14 Sep 2022 06:29:33 +0000 (23:29 -0700)]
pimd, pim6d: Changing IGMP to GM in debug macros.

Changed PIM_DEBUG_IGMP_TRACE to PIM_DEBUG_GM_TRACE and
PIM_DEBUG_IGMP_TRACE_DETAIL to PIM_DEBUG_GM_TRACE_DETAIL.
Hence, these macros can be used for both v6 and v4.

Issue: #11895

Co-authored-by: Sai Gomathi N <nsaigomathi@vmware.com>
Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: fix "show ipv6 mld interface" command
Sarita Patra [Wed, 7 Sep 2022 06:48:09 +0000 (23:48 -0700)]
pim6d: fix "show ipv6 mld interface" command

Issue:
=====
frr# show ipv6 mld
  interface   All VRFs

Fix:
===
frr# show ipv6 mld
  interface   MLD interface information

Signed-off-by: Sarita Patra <saritap@vmware.com>
2 years agoMerge pull request #11899 from opensourcerouting/feature/route_validation_extended_co...
Russ White [Tue, 13 Sep 2022 15:30:54 +0000 (11:30 -0400)]
Merge pull request #11899 from opensourcerouting/feature/route_validation_extended_community

bgpd: Implement Origin Validation State via extended communities

2 years agoMerge pull request #11926 from mjstapp/fix_bgp_io_race
Donatas Abraitis [Mon, 12 Sep 2022 16:24:18 +0000 (18:24 +0200)]
Merge pull request #11926 from mjstapp/fix_bgp_io_race

bgpd: avoid notify race between io and main pthreads