Commit Graph

30195 Commits

Author SHA1 Message Date
Donatas Abraitis
a433c49cc6
Merge pull request #12371 from proelbtn/fix-frr-reload-doesnot-work
bgpd: Fix the order of SRv6 locator parameters
2022-11-25 09:20:50 +02:00
Sarita Patra
5abe4eef2c pim6d: Fix RpAddress in "show ipv6 pim bsm-database"
The fix for issue #12089 was reverted while resolving conflict
for PR https://github.com/FRRouting/frr/pull/11600/.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-11-24 22:43:15 -08:00
Renato Westphal
4dfe15200a ospf6d: fix infinite loop when adding ASBR route
Commit 8f359e1593 removed a check that prevented the same route
from being added twice. In certain topologies, that change resulted in
the following infinite loop when adding an ASBR route:

ospf6_route_add
 ospf6_top_brouter_hook_add
  ospf6_abr_examin_brouter
   ospf6_abr_examin_summary
    ospf6_route_add
     (repeat until stack overflow)

Revert the offending commit and update `ospf6_route_is_identical()` to
not do comparison using `memcmp()`.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2022-11-24 13:08:26 -03:00
Russ White
d15c84fa22
Merge pull request #12317 from mobash-rasool/ospf-fixes
ospfd: Fix RFC conformance test cases 25.19 and 27.6
2022-11-24 10:21:25 -05:00
Donatas Abraitis
7718ba25e0 bgpd: Implement BGP4V2-MIB (bgp4V2PeerErrorsTable)
```
iso.3.6.1.3.5.1.1.3.1.1.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.1.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.1.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.2.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.2.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.2.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.3.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.3.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.3.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.3.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.3.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.4.1.4.192.168.10.64 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.4.1.4.192.168.10.65 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.4.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.4.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.4.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.5.1.4.192.168.10.64 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.5.1.4.192.168.10.65 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.5.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.5.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.5.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.6.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.6.1.4.192.168.10.65 = Gauge32: 6
iso.3.6.1.3.5.1.1.3.1.6.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.6.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.6.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.7.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.7.1.4.192.168.10.65 = Gauge32: 2
iso.3.6.1.3.5.1.1.3.1.7.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.7.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.7.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.3.1.8.1.4.192.168.10.64 = Gauge32: 22223
iso.3.6.1.3.5.1.1.3.1.8.1.4.192.168.10.65 = Gauge32: 22227
iso.3.6.1.3.5.1.1.3.1.8.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 22223
iso.3.6.1.3.5.1.1.3.1.8.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 22223
iso.3.6.1.3.5.1.1.3.1.8.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 22223
iso.3.6.1.3.5.1.1.3.1.9.1.4.192.168.10.64 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.9.1.4.192.168.10.65 = Hex-STRING: 4F 4B 00
iso.3.6.1.3.5.1.1.3.1.9.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.9.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.9.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.10.1.4.192.168.10.64 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.10.1.4.192.168.10.65 = Hex-STRING: 02 4F 4B 00
iso.3.6.1.3.5.1.1.3.1.10.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.10.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00
iso.3.6.1.3.5.1.1.3.1.10.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-24 16:57:03 +02:00
Donatas Abraitis
3573b171e0 bgpd: Keep the notification data under peer's struct when sending
Before this patch, data is flushed, and we can't see the data after we send
the notification.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-24 16:57:02 +02:00
Rafael Zalamena
f68114c1c3 bfdd: fix IPv4 socket source selection
The imported BFD code had some logic to ignore the source address when
using single hop IPv4. The BFD peer socket function should allow the
source to be selected so we can:
1. Select the source address in the outgoing packets
2. Only receive packets from that specific source

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2022-11-24 11:16:18 -03:00
Ryoga Saito
4d0ee77eaf tests: Correct srv6 locator testcases
Previous commit changes the order of srv6 locator parameters. So, this
PR reflect the previous changes.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
2022-11-24 17:19:53 +09:00
Abhishek N R
86fb444df6 pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim bsrp-info" command output
Fixes: #11246

Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-11-23 23:56:33 -08:00
Donatas Abraitis
f6ebf84d43
Merge pull request #12374 from sworleys/VRF-Disable
lib: disable vrf before terminating interfaces
2022-11-24 09:28:42 +02:00
Donatas Abraitis
c58e9095bf
Merge pull request #12365 from chiragshah6/fdev2
bgpd: JSON support for show ip bgp vrf all update-group
2022-11-24 09:03:47 +02:00
Ashwini Reddy
fa5a9276d1 bgpd: JSON support for show ip bgp vrf all update-group
Ticket:#3229030
Testing Done: UT

Changes:

 - JSON support for the update group command.

Testing:

torc-11# show ip bgp vrf all ipv6 update-groups json

torc-12# show bgp vrf all update-groups json
{
  "default":{
    "2":{
      "groupCreateTime":{
        "epoch":1669225617,
        "epochString":"Wed Nov 23 17:46:57 2022\n"
      },
      "afi":"IPv6",
      "safi":"unicast",
      "outRouteMap":"MY_ORIGIN_ASPATH_ONLY",
      "minRouteAdvInt":0,
      "subGroup":[
        {
          "subGroupId":2,
          "groupCreateTime":{
            "epoch":1669225617,
            "epochString":"Wed Nov 23 17:46:57 2022\n"
          },
          "statistics":{
            "joinEvents":2,
            "pruneEvents":0,
            "mergeEvents":0,
            "splitEvents":0,
            "switchEvents":0,
            "peerRefreshEvents":0,
            "mergeCheckEvents":2
          },
          "coalesceTime":1100,
          "version":12,
          "packetQueueInfo":{
            "qeueueLen":0,
            "queuedTotal":1,
            "queueHwmLen":1,
            "totalEnqueued":1
          },
          "adjListCount":1,
          "needsRefresh":false,
          "peers":[
            "uplink_1",
            "uplink_2"
          ]
        }
      ]
    }
  }
}
{
  "sym_3":{
  }
}
{
  "sym_5":{
  }
}
{
  "sym_2":{
  }
}
{
  "sym_4":{
  }
}
{
  "sym_1":{
  }
}

Co-authored-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Ashwini Reddy <ashred@nvidia.com>
2022-11-23 19:04:00 -08:00
Mark Stapp
a86afb3e0e
Merge pull request #12377 from opensourcerouting/fix/enable_scripting
zebra: Replace TC definitions for dplane
2022-11-23 15:53:50 -05:00
mobash-rasool
7fa0639372
Merge pull request #12260 from opensourcerouting/pim-plist-masklen
pimd: consistently ignore prefix list mask len
2022-11-23 23:32:17 +05:30
Donatas Abraitis
2272627571 zebra: Replace TC definitions for dplane
They were replaced, but forgot for `--enable-scripting`.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-23 17:35:33 +02:00
Michal Ruprich
d8743c28ea doc: Adding a description for a new option
Documentation for FRR_NO_ROOT option added to the
/etc/frr/daemons file

Signed-off-by: Michal Ruprich <mruprich@redhat.com>
2022-11-23 10:19:33 +01:00
Michal Ruprich
1d42fb941a tools: Enable start of FRR for non-root user
There might be use cases when this would make sense, for example
running FRR in a container as a designated user.

Signed-off-by: Michal Ruprich <mruprich@redhat.com>
2022-11-23 10:19:10 +01:00
Donatas Abraitis
89f74214e7
Merge pull request #12355 from mobash-rasool/pim6-conformance
pim6d, pimd: RFC conformance - Discard join/prune msg when WC bit is set but RPT bit is unset
2022-11-23 11:07:05 +02:00
Abhishek N R
774d8ad38b pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim nexthop" command output
Before:

R4(config)# do show ipv6 pim nexthop
Number of registered addresses: 6
Address         Interface        Nexthop
---------------------------------------------
3700🔢1234🔢1234🔢1234:1234 ens161           fe80::250:56ff:feb7:d8d5
5101::10        ens224.51        5101::10
3300::5555      ens161           fe80::250:56ff:feb7:d8d5
4400::1         ens161           fe80::250:56ff:feb7:d8d5
1020::10        ens257           1020::10
3000::1         ens192.4010      fe80::250:56ff:feb7:493b
3000::1         ens193.4015      fe80::250:56ff:feb7:b12a

After:

frr# show ipv6 pim nexthop
Number of registered addresses: 2
Address         Interface        Nexthop
---------------------------------------------
105::105        lo               105::105
12::1           ens192           fe80::250:56ff:feb7:38de

Issue: #11246

Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-11-22 22:59:30 -08:00
Stephen Worley
b14fa9c4dc lib: disable vrf before terminating interfaces
We must disable the vrf before we start terminating interfaces.

On termination, we free the 'zebra_if' struct from the interface ->info
pointer. We rely on that for subsystems like vxlan for cleanup when
shutting down.

'''
==497406== Invalid read of size 8
==497406==    at 0x47E70A: zebra_evpn_del (zebra_evpn.c:1103)
==497406==    by 0x47F004: zebra_evpn_cleanup_all (zebra_evpn.c:1363)
==497406==    by 0x4F2404: zebra_evpn_vxlan_cleanup_all (zebra_vxlan.c:1158)
==497406==    by 0x4917041: hash_iterate (hash.c:267)
==497406==    by 0x4F25E2: zebra_vxlan_cleanup_tables (zebra_vxlan.c:5676)
==497406==    by 0x4D52EC: zebra_vrf_disable (zebra_vrf.c:209)
==497406==    by 0x49A247F: vrf_disable (vrf.c:340)
==497406==    by 0x49A2521: vrf_delete (vrf.c:245)
==497406==    by 0x49A2E2B: vrf_terminate_single (vrf.c:533)
==497406==    by 0x49A2D8F: vrf_terminate (vrf.c:561)
==497406==    by 0x441240: sigint (main.c:192)
==497406==    by 0x4981F6D: frr_sigevent_process (sigevent.c:130)
==497406==  Address 0x6d68c68 is 200 bytes inside a block of size 272 free'd
==497406==    at 0x48470E4: free (vg_replace_malloc.c:872)
==497406==    by 0x4942CF0: qfree (memory.c:141)
==497406==    by 0x49196A9: if_delete (if.c:293)
==497406==    by 0x491C54C: if_terminate (if.c:1031)
==497406==    by 0x49A2E22: vrf_terminate_single (vrf.c:532)
==497406==    by 0x49A2D8F: vrf_terminate (vrf.c:561)
==497406==    by 0x441240: sigint (main.c:192)
==497406==    by 0x4981F6D: frr_sigevent_process (sigevent.c:130)
==497406==    by 0x499A5F0: thread_fetch (thread.c:1775)
==497406==    by 0x492850E: frr_run (libfrr.c:1197)
==497406==    by 0x441746: main (main.c:476)
==497406==  Block was alloc'd at
==497406==    at 0x4849464: calloc (vg_replace_malloc.c:1328)
==497406==    by 0x49429A5: qcalloc (memory.c:116)
==497406==    by 0x491D971: if_new (if.c:174)
==497406==    by 0x491ACC8: if_create_name (if.c:228)
==497406==    by 0x491ABEB: if_get_by_name (if.c:613)
==497406==    by 0x427052: netlink_interface (if_netlink.c:1178)
==497406==    by 0x43BC18: netlink_parse_info (kernel_netlink.c:1188)
==497406==    by 0x4266D7: interface_lookup_netlink (if_netlink.c:1288)
==497406==    by 0x42B634: interface_list (if_netlink.c:2368)
==497406==    by 0x4ABF83: zebra_ns_enable (zebra_ns.c:127)
==497406==    by 0x4AC17E: zebra_ns_init (zebra_ns.c:216)
==497406==    by 0x44166C: main (main.c:408)
'''

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2022-11-22 17:42:29 -05:00
Russ White
2387dca4dc
Merge pull request #12311 from opensourcerouting/feature/bgp_snmp_bgp4v2-mib
bgpd: Implement SNMP BGP4V2-MIB (bgp4V2PeerEntry)
2022-11-22 14:58:22 -05:00
Stephen Worley
f5a6f8202d
Merge pull request #11908 from sigeryang/tc-state-mgmt
zebra: traffic control state management & ZAPI
2022-11-22 12:02:15 -05:00
Stephen Worley
c8b92cd80a
Merge pull request #12340 from opensourcerouting/fix/rfc5549_vpn_set_ip_nexthop
bgpd: Allow overriding MPLS VPN next-hops via route-maps
2022-11-22 11:41:48 -05:00
Siger Yang
f2ae263bb7
tests: traffic control PoC topotests
This commit adds a basic test for sharpd traffic control PoC, which will check
interface TC info from iproute2 `tc` cli.

Signed-off-by: Siger Yang <siger.yang@outlook.com>
2022-11-22 22:35:35 +08:00
Siger Yang
04bc334e7a
sharpd: traffic control PoC
This commit adds a command to sharpd to validate the proof of concept for
traffic control on specific interface with specific filters.

Signed-off-by: Siger Yang <siger.yang@outlook.com>
2022-11-22 22:35:35 +08:00
Siger Yang
dfacea4ae7
zebra: traffic control ZAPI
This commit adds ZAPI encoders & decoders for traffic control operations, which
include tc_qdisc, tc_class and tc_filter.

Signed-off-by: Siger Yang <siger.yang@outlook.com>
2022-11-22 22:35:35 +08:00
Siger Yang
c317d3f246
zebra: traffic control state management
This allows Zebra to manage QDISC, TCLASS, TFILTER in kernel and do cleaning
jobs when it starts up.

Signed-off-by: Siger Yang <siger.yang@outlook.com>
2022-11-22 22:35:35 +08:00
Siger Yang
daa602b593
zebra: update tc netlink / socket license header
Update license header.

Signed-off-by: Siger Yang <siger.yang@outlook.com>
2022-11-22 22:35:34 +08:00
Siger Yang
28ed33e40f
include: add pkt_cls.h to automake headers
Add pkt_cls.h to subdir.am under include.

Signed-off-by: Siger Yang <siger.yang@outlook.com>
2022-11-22 22:35:34 +08:00
Ryoga Saito
3afb06d324 bgpd: Fix the other of SR locator parameters
The latest FRR's frr-reload.py is broken and we can't reload FRR
gracefully with segment routing locator configuration (if we
execute frr-reload.py, FRR will stop suddenly).

The root cause of this issue is very simple. FRR will display the
current configuration like this (the below is the result of
"show running-configuration").

``
segment-routing
 srv6
  locators
   locator default
    prefix fd00:1:0:1::/64 block-len 40 node-len 24 func-bits 16
   exit
   !
  exit
  !
 exit
 !
exit
```

However, FRR doesn't accept segment routing locator parameters
if we specify block-len and node-len earlier than func-bits.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
2022-11-22 22:59:46 +09:00
Donatas Abraitis
7be9666f9a bgpd: Fix crash for set ipv4/ipv6 vpn next-hop command
Crash when using for example:

```
route-map test permit 10
 set ipv6 vpn next-hop 10.10.10.10
```

```
bgpd[30843]: libyang: Unsatisfied pattern - "1.1.1.1" does not conform to "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\p{N}\p{L}]+)?". (Schema location /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/set-action/frr-bgp-route-map:ipv6-address/ipv6-address.)
bgpd[30843]: [JEA2K-29RPH][EC 100663345] nb_candidate_edit: lyd_new_path(/frr-route-map:lib/route-map[name='belekas']/entry[sequence='109']/set-action[action='frr-bgp-route-map:ipv6-vpn-address']/rmap-set-action/frr-bgp-route-map:ipv6-address) failed: 7
bgpd[30843]: [ZDEA9-V1X7W][EC 100663341] nb_cli_apply_changes_internal: failed to edit candidate configuration: operation [modify] xpath [/frr-route-map:lib/route-map[name='belekas']/entry[sequence='109']/set-action[action='frr-bgp-route-map:ipv6-vpn-address']/rmap-set-action/frr-bgp-route-map:ipv6-address]
bgpd[30843]: [SZNR8-V24R3][EC 100663326] yang_dnode_xpath_get_canon: couldn't find ./rmap-set-action/frr-bgp-route-map:ipv6-address
bgpd[30843]: Backtrace for 20 stack frames:
bgpd[30843]: [bt 0] /usr/local/lib/libfrr.so.0(zlog_backtrace+0x3a) [0x7f539c87c95a]
bgpd[30843]: [bt 1] /usr/local/lib/libfrr.so.0(+0xed022) [0x7f539c8c8022]
bgpd[30843]: [bt 2] /usr/local/lib/libfrr.so.0(yang_dnode_get_string+0x96) [0x7f539c8c9ea6]
bgpd[30843]: [bt 3] /usr/local/lib/libfrr.so.0(route_map_action_show+0xc40) [0x7f539c8a4540]
bgpd[30843]: [bt 4] /usr/local/lib/libfrr.so.0(nb_cli_show_dnode_cmds+0x5c) [0x7f539c88fa8c]
bgpd[30843]: [bt 5] /usr/local/lib/libfrr.so.0(nb_cli_show_dnode_cmds+0x159) [0x7f539c88fb89]
bgpd[30843]: [bt 6] /usr/local/lib/libfrr.so.0(nb_cli_show_dnode_cmds+0x1a3) [0x7f539c88fbd3]
bgpd[30843]: [bt 7] /usr/local/lib/libfrr.so.0(nb_cli_show_dnode_cmds+0x159) [0x7f539c88fb89]
bgpd[30843]: [bt 8] /usr/local/lib/libfrr.so.0(+0xc4d47) [0x7f539c89fd47]
bgpd[30843]: [bt 9] /usr/local/lib/libfrr.so.0(+0x7274a) [0x7f539c84d74a]
bgpd[30843]: [bt 10] /usr/local/lib/libfrr.so.0(+0x72cb0) [0x7f539c84dcb0]
bgpd[30843]: [bt 11] /usr/local/lib/libfrr.so.0(+0x74c40) [0x7f539c84fc40]
bgpd[30843]: [bt 12] /usr/local/lib/libfrr.so.0(cmd_execute_command+0xa4) [0x7f539c84fd74]
bgpd[30843]: [bt 13] /usr/local/lib/libfrr.so.0(cmd_execute+0x142) [0x7f539c84ffe2]
bgpd[30843]: [bt 14] /usr/local/lib/libfrr.so.0(+0xe51b7) [0x7f539c8c01b7]
bgpd[30843]: [bt 15] /usr/local/lib/libfrr.so.0(+0xe53f0) [0x7f539c8c03f0]
bgpd[30843]: [bt 16] /usr/local/lib/libfrr.so.0(+0xe8078) [0x7f539c8c3078]
bgpd[30843]: [bt 17] /usr/local/lib/libfrr.so.0(thread_call+0x7d) [0x7f539c8bacbd]
bgpd[30843]: [bt 18] /usr/local/lib/libfrr.so.0(frr_run+0xe8) [0x7f539c8749b8]
bgpd[30843]: [bt 19] /usr/lib/frr/bgpd(main+0x3f1) [0x55f887e97d71]
BGP[30843]: Received signal 6 at 1669121170 (si_addr 0x7f0000787b, PC 0x7f539ba58e87); aborting...
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-22 14:50:09 +02:00
Donatas Abraitis
d3a6af081e tests: Set minimum wait time for tests to 5 seconds
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-22 13:38:10 +02:00
rgirada
594f80c83f ospfd: Fixing memleak.
Description:
	As part of signal handler ospf_finish_final(),  lsas are originated
	and added to refresh queues are not freed.

	One such leak is :
	==2869285== 432 (40 direct, 392 indirect) bytes in 1 blocks are definitely lost in loss record 159 of 221
	==2869285==    at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
	==2869285==    by 0x4910EC3: qcalloc (memory.c:116)
	==2869285==    by 0x199024: ospf_refresher_register_lsa (ospf_lsa.c:4017)
	==2869285==    by 0x199024: ospf_refresher_register_lsa (ospf_lsa.c:3979)
	==2869285==    by 0x19A37F: ospf_network_lsa_install (ospf_lsa.c:2680)
	==2869285==    by 0x19A37F: ospf_lsa_install (ospf_lsa.c:2941)
	==2869285==    by 0x19C18F: ospf_network_lsa_update (ospf_lsa.c:1099)
	==2869285==    by 0x1931ED: ism_change_state (ospf_ism.c:556)
	==2869285==    by 0x1931ED: ospf_ism_event (ospf_ism.c:596)
	==2869285==    by 0x494E0B0: thread_call (thread.c:2006)
	==2869285==    by 0x494E395: _thread_execute (thread.c:2098)
	==2869285==    by 0x19FBC6: nsm_change_state (ospf_nsm.c:695)
	==2869285==    by 0x19FBC6: ospf_nsm_event (ospf_nsm.c:861)
	==2869285==    by 0x494E0B0: thread_call (thread.c:2006)
	==2869285==    by 0x494E395: _thread_execute (thread.c:2098)
	==2869285==    by 0x19020B: ospf_if_cleanup (ospf_interface.c:322)
	==2869285==    by 0x192D0C: ism_interface_down (ospf_ism.c:393)
	==2869285==    by 0x193028: ospf_ism_event (ospf_ism.c:584)
	==2869285==    by 0x494E0B0: thread_call (thread.c:2006)
	==2869285==    by 0x494E395: _thread_execute (thread.c:2098)
	==2869285==    by 0x190F10: ospf_if_down (ospf_interface.c:851)
	==2869285==    by 0x1911D6: ospf_if_free (ospf_interface.c:341)
	==2869285==    by 0x1E6E98: ospf_finish_final (ospfd.c:748)
	==2869285==    by 0x1E6E98: ospf_deferred_shutdown_finish (ospfd.c:578)
	==2869285==    by 0x1E7727: ospf_finish (ospfd.c:682)
	==2869285==    by 0x1E7727: ospf_terminate (ospfd.c:652)
	==2869285==    by 0x18852B: sigint (ospf_main.c:105)
	==2869285==    by 0x493BE12: frr_sigevent_process (sigevent.c:130)
	==2869285==    by 0x494DCD4: thread_fetch (thread.c:1775)
	==2869285==    by 0x4905022: frr_run (libfrr.c:1197)
	==2869285==    by 0x187891: main (ospf_main.c:235)

	Added a fix to cleanup all these queue pointers and corresponing lsas in it.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2022-11-22 09:59:40 +00:00
Donatas Abraitis
a5722d5a78 tests: Fail tests immediately if they use too low wait/count values
This is for run_and_expect_type and run_and_expect topotests method.

Some contributions unintentionally get merged with very low values, that leads
to CI failures, let's guard this a bit.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-22 11:17:04 +02:00
Mobashshera Rasool
a23a485cbf pim6d, pimd: Discard (*,G) prune if WC bit is set but RPT bit is unset.
As per RFC 7761, Section 4.9.1
The RPT (or Rendezvous Point Tree) bit is a 1-bit value for use
with PIM Join/Prune messages (see Section 4.9.5.1). If the
WC bit is 1, the RPT bit MUST be 1.

ANVL conformance test case is trying to verify this and is failing.

Issue: #12354

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-11-21 22:00:10 -08:00
Mobashshera Rasool
c6950cb343 pim6d, pimd: Discard (*,G) join if WC bit is set but RPT bit is unset.
As per RFC 7761, Section 4.9.1
The RPT (or Rendezvous Point Tree) bit is a 1-bit value for use
with PIM Join/Prune messages (see Section 4.9.5.1). If the
WC bit is 1, the RPT bit MUST be 1.

ANVL conformance test case is trying to verify this and is failing.

Issue: #12354

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-11-21 21:57:39 -08:00
Donatas Abraitis
c90ff0c4db
Merge pull request #12348 from donaldsharp/expand_timings
tests: Expand minimum run_and_expect to 5 seconds
2022-11-22 07:43:49 +02:00
Donald Sharp
2312648dc1
Merge pull request #12361 from opensourcerouting/fix/use_another_labaler
github: Use `action-regex-match` action for adding `backport` label
2022-11-21 20:07:46 -05:00
Donald Sharp
4f42298dc5
Merge pull request #12362 from opensourcerouting/pkg-pim6-defaults
Enable pim6d in rpm and debian packages by default
2022-11-21 20:07:23 -05:00
Donald Sharp
c6653ab2eb tests: Expand minimum run_and_expect to 5 seconds
Ensure that the minimum time spent run and expecting is
5 seconds.  Heavy load is not a reason to fail a test.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-11-21 19:42:18 -05:00
Donatas Abraitis
0709fdb6d8 github: Create size label for every PR
Examples: size/XS, size/S, size/M, size/L, ...

Inspired by kubernetes/kubernetes.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-21 22:22:27 +02:00
Donatas Abraitis
6d48dfcb71
Merge pull request #12357 from donaldsharp/watchfrr_receive_start_end
lib, vtysh: Allow watchfrr to receive start/end lines
2022-11-21 22:11:08 +02:00
Martin Winter
43364c5a99
doc: Update doc to reflect default pim6d in packaging
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-11-21 20:09:41 +01:00
Martin Winter
57cb276d36
debian: Enable pim6d build by default
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-11-21 20:07:33 +01:00
Donatas Abraitis
3160e84254 github: Use action-regex-match action for adding backport label
Seems that labeler does not work properly with comments, tested on my own
local repository.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-21 21:06:40 +02:00
Martin Winter
b0db3467f4
redhat: Enable pim6d build by default
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-11-21 20:04:24 +01:00
Donald Sharp
e6648f01be lib, vtysh: Allow watchfrr to receive start/end lines
Watchfrr really should receive notification about start/end
read of configuration.  Let's fix that.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-11-21 12:04:12 -05:00
Donald Sharp
9d44fb97a1
Merge pull request #12313 from louis-6wind/fix-lfa-topo
tests: fix bfd in isis_lfa_topo1 step24
2022-11-21 12:03:14 -05:00
Louis Scalbert
f2393c7553 tests: do not use a custom expect function in isis_lfa_topo1
Replace the custom run and expect function by one from the library.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-11-21 13:48:51 +01:00
Louis Scalbert
17e8fa831a tests: fix bfd in isis_lfa_topo1 step24
isis_lfa_topo1 topotests regularly fails at step 24. The test expects
that the BFD session between rt1 and rt2 comes down after shutting the
link between rt1 and rt2.

Since the BFD is multihop, the BFD can get back through rt3.

Set the BFD type to single-hop.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-11-21 13:48:51 +01:00