Commit Graph

30591 Commits

Author SHA1 Message Date
Antonio Quartulli
0747643e03
bgpd: Allow statistics gathering to give more data about prefix Lengths
When using json output for `show bgp statistics json` gather the
number of prefixes of each prefix Length.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Antonio Quartulli <a@unstable.cc>
2022-06-09 21:02:11 +02:00
Russ White
e7407efd0c
Merge pull request #11328 from opensourcerouting/fix/drop_label_pton_ntop
bgpd: Drop label_ntop/label_pton functions
2022-06-09 14:11:11 -04:00
Russ White
aaca054dac
Merge pull request #11259 from kuldeepkash/multicast_pim_dr_nondr
tests: [Topojson] Enhance CLI logging
2022-06-09 13:42:29 -04:00
mobash-rasool
a6a28b5f23
Merge pull request #11372 from donaldsharp/pim_if_cmp_bug
pimd: Fix pim_channel_oil_empty tests
2022-06-09 22:45:49 +05:30
Jafar Al-Gharaibeh
51c2e87cb9
Merge pull request #11377 from donaldsharp/pim_show_interface_traffic
pimd: Show interface traffic even if interface is currently `down`
2022-06-09 12:00:58 -05:00
Donatas Abraitis
981b254297 lib: Require at least 2.1.42 version of sysrepo when compiling
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-06-09 18:03:22 +03:00
Donatas Abraitis
1dd5ce9b93 lib: Update sysrepo code with the latest API changes
* sr_event_notif_send -> sr_notif_send
* sr_process_events -> sr_subscription_process_events
* sr_oper_get_items_subscribe -> sr_oper_get_subscribe
* Removed SR_SUBSCR_CTX_REUSE flag from the code at all

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-06-09 17:33:22 +03:00
Donald Sharp
a64543e3e8 pimd: Show interface traffic even if interface is currently down
the `show ip pim interface [x] traffic` command was deciding
to skip display of interfaces if they happened to be down at
that moment.  This of course does not make a bunch of sense
to limit the output for a interface that may have sent data
in the past.

This fixes this test crash:
rnode = <lib.topogen.TopoRouter object at 0x7fc755be3880>, dut = 'c1', input_dict = {'c1': {'c1-l1-eth2': ['helloTx', 'helloRx']}}, output_dict = {'c1': {}}

    def show_pim_intf_traffic(rnode, dut, input_dict, output_dict):
        show_pim_intf_traffic_json = run_frr_cmd(
            rnode, "show ip pim interface traffic json", isjson=True
        )

        output_dict[dut] = {}
        for intf, data in input_dict[dut].items():
>           interface_json = show_pim_intf_traffic_json[intf]
E           KeyError: 'c1-l1-eth2'

/home/sharpd/frr8/tests/topotests/lib/pim.py:1496: KeyError

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-09 10:29:04 -04:00
Donald Sharp
aa0bb312b1 pimd: Fixup oil_if_has and oil_if_set to be consistent
the v4 and v6 versions were different.  Make them the same.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-09 09:37:33 -04:00
Donald Sharp
b2e37a56f6 tests: Clarify what test_pim_dr_nondr_with_static_routes_topo1.py is doing
There are a couple steps listing what is being done that are both inprecise
and missleading.  Fix to actually say what is going on.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-09 09:36:11 -04:00
Donald Sharp
30b82c7af7 pimd: Fix pim_channel_oil_empty tests
The pim_channel_oil_empty() function was setting
the pimreg if it ever existed for NULL comparison
but of course the pimreg device is never pulled back
out again when it was needed to be when the pimreg
is not present.

Commit: a5fa982256
broke this.

Fixes: #11368
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-09 09:36:11 -04:00
Abhishek N R
789d0ec4de pim6d: Moving reusable code to common api for "show mroute summary" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 04:53:12 -07:00
Abhishek N R
1c1077c200 pim6d: Moving reusable code to common api for "show ip/ipv6 mroute count" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 04:43:28 -07:00
Abhishek N R
4f1f8ff9aa pim6d: Moving reusable code to common api for "show ip/ipv6 mroute" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 04:27:20 -07:00
Sai Gomathi N
fe7eaf4065 pim6d: Moving the common lines of pim_show_nexthop_lookup cli
Moving the common lines of pim_show_nexthop_lookup cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-09 04:22:42 -07:00
Abhishek N R
334d2f8c3d pim6d: Moving reusable code to common api for "show ip/ipv6 multicast count" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 04:04:14 -07:00
Donald Sharp
a76cf7e49e babeld: Ignore sub-tlv's with mandatory bit set
RFC 8966 4.4

   If the mandatory bit is set, then the
   whole enclosing TLV MUST be silently ignored (except for updating the
   parser state by a Router-Id, Next Hop, or Update TLV, as described in
   the next section).

Fixes: #11349
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-09 07:04:01 -04:00
Donald Sharp
54a3e60b3e babeld: Update to ignore unicast hellos
RFC 8966 requires a bit of work to make FRR forward compabitble with
it for the moment.

tl;dr -> Flags of hellos should be 0 except the main bit and
The Unicast Hello bit if set should cause the packet to be ignored.
Additionally FRR needs to ignore Hello packets with the interval field
set to 0.

Fixes: #11349
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-09 07:04:01 -04:00
Abhishek N R
8e15c9aa06 pim6d: Moving reusable code to common api for "show ip/ipv6 multicast" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 03:51:41 -07:00
Abhishek N R
e7c01c6769 pim6d: Moving reusable code to common api for "show pim state" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 03:29:02 -07:00
Sai Gomathi N
cefa37cf41 pim6d: Moving the common lines of pim_show_nexthop cli
Moving the common lines of pim_show_nexthop cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-09 03:23:28 -07:00
Abhishek N R
c630970866 pim6d: Moving reusable code to common api for "show pim upstream rpf" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 03:10:21 -07:00
Abhishek N R
622da92f35 pim6d: Moving reusable code to common api for "show pim upstream join desired" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 02:57:49 -07:00
Abhishek N R
9aa0569d6e pim6d: Moving reusable code to common api for "show pim upstream" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 02:40:21 -07:00
Sai Gomathi N
78b0e69073 pim6d: Moving the common lines of pim_show_neighbors_vrf_all cli
Moving the common lines of pim_show_neighbors_vrf_all cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-09 02:36:08 -07:00
Abhishek N R
19296b58e4 pim6d: Moving reusable code to common api for "show pim statistics" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 01:59:58 -07:00
Sai Gomathi N
154aa4fcd4 pim6d: Moving the common lines of pim_show_neighbors cli
Moving the common lines of pim_show_neighbors cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-09 01:34:06 -07:00
Abhishek N R
5e52c8d5c8 pim6d: Moving reusable code to common api for "show pim secondary" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 01:33:01 -07:00
Abhishek N R
e21c4e9075 pim6d: Moving resuable code to common api for "show pim rp-info" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-09 00:49:38 -07:00
Sai Gomathi N
bec5bdbe7f pim6d: Moving the common lines of pim_local_membership cli
Moving the common lines of pim_local_membership cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-09 00:34:33 -07:00
Sai Gomathi N
3ca4082343 pim6d: Moving the common lines of pim_show_jp_agg cli
Moving the common lines of pim_show_jp_agg cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-09 00:34:24 -07:00
Donatas Abraitis
121903bd01
Merge pull request #11370 from donaldsharp/lib_zebra_cleanup
Lib zebra cleanup
2022-06-09 10:17:24 +03:00
Sai Gomathi N
342ba5f3bd pim6d: Moving the common lines of pim_show_interface_vrf_all cli
Moving the common lines of pim_show_interface_vrf_all cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-08 23:56:17 -07:00
Sai Gomathi N
8282b98838 pim6d: Moving the common lines of pim_show_interface cli
Moving the common lines of pim_show_interface cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-08 23:27:00 -07:00
Sai Gomathi N
b6bf33775d pim6d: Moving the common lines of pim_show_channel cli
Moving the common lines of pim_show_channel cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-08 23:25:51 -07:00
Abhishek N R
6d1bd8c28a pim6d: Moving resuable code to common api for "show pim rpf" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-08 22:49:16 -07:00
Jafar Al-Gharaibeh
71da1da0c8
Merge pull request #11360 from opensourcerouting/fix/distro_changelogs
redhat, debian: Update packaging releases
2022-06-08 23:56:21 -05:00
mobash-rasool
4a3879b89b
Merge pull request #11369 from donaldsharp/pim_addr_cmp
pimd: pim_addr_cmp returns 0 for same not -1 or 1
2022-06-09 07:57:24 +05:30
Donald Sharp
2d4093ee30 ospfd: Fixup ospfd.h to declare variable names
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-08 11:38:22 -04:00
Donald Sharp
0b96b8288a lib: Cleanup workqueue.h to have variable declarations
Cleanup workqueue.h to have variable declarations as per
our standard.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-08 11:38:22 -04:00
Donald Sharp
d1c276681f lib: Fixup workqueue.c to use proper thread.h semantics
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-08 11:38:22 -04:00
Donald Sharp
e0220703d1 pimd: pim_addr_cmp returns 0 for same not -1 or 1
The test for setting pimDesignatedRouterLocal was comparing
the result of pim_addr_cmp to non zero to say that the
pim_dr_addr and primary_address are the same.  This is
not correct in that pim_addr_cmp returns 0 for being the
same, so the correct test is !pim_addr_cmp

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-08 11:36:48 -04:00
Donald Sharp
71623b304e
Merge pull request #11356 from mobash-rasool/pim-rfc-conform
pimd: Handle receive of (*,G) register stop with src addr as 0
2022-06-08 08:15:58 -04:00
Sarita Patra
d8cace8772 pim6d: Introduced PIMREG macro
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-06-08 01:59:37 -07:00
Donatas Abraitis
8bf53b1594 debian: Update changelog for new release (8.4)
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-06-07 23:26:58 +03:00
Donatas Abraitis
fb30d88928 redhat: Update changelog for new release (8.4)
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-06-07 23:26:56 +03:00
Donatas Abraitis
ba9dce1c87 bgpd: Print source VRF name when leaking to another VRF
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-06-07 22:50:25 +03:00
Donatas Abraitis
3840a8193e bgpd: Withdraw implicitly old paths from VRFs when import/export list changes
If we overwrite import/export RT list via route-maps or even flush by using
`set extcommunity none`, then we must withdraw old paths from VRFs to avoid
stale paths.

For example using:

```
router bgp 65500 vrf vrf1
 bgp router-id 10.180.1.1
 !
 address-family ipv4 unicast
  network 192.168.100.100/32 route-map rm
  rd vpn export 65500:10001
  rt vpn import 65500:10000 65500:10990
  rt vpn export 65500:10000
  export vpn
  import vpn
 exit-address-family
exit
!
router bgp 65500 vrf vrf2
 bgp router-id 10.180.1.1
 !
 address-family ipv4 unicast
  rd vpn export 65500:11001
  rt vpn import 65500:11000 65500:11990
  rt vpn export 65500:11000
  export vpn
  import vpn
 exit-address-family
exit
!
route-map rm permit 10
 set extcommunity rt 65500:10100 65500:12990 65500:13990 65500:11990
exit
```

If we strip extcommunities using:

```
route-map rm permit 10
 set extcommunity none
exit
```

or

```
route-map rm permit 10
 set extcommunity rt 65500:10100 65500:12990 65500:13990
```

Routes that are imported with 65500:11990 (192.168.100.100/32 from vrf1)
becomes stale.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-06-07 22:50:24 +03:00
Donatas Abraitis
087350d968 build: FRR 8.4 development version
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-06-07 22:47:17 +03:00
Pushpasis Sarkar
aa800819cd
Merge pull request #11312 from opensourcerouting/feature/draft-ietf-idr-bfd-subcode
bgpd: Add Notification CEASE BFD Down message
2022-06-07 21:27:12 +05:30