Commit Graph

2799 Commits

Author SHA1 Message Date
Donald Sharp
d139e9e842 pimd: Remove pim_br vestiges
If PIM had received a register packet with the Border Router
bit set, pimd would have crashed.  Since I wrote this code
in 2015 and really have pretty much no memory of this and
no-one has ever reported this crash, let's just remove this
code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-10-27 15:51:47 -04:00
Donatas Abraitis
5a2a5f19ad
Merge pull request #12211 from SaiGomathiN/coverity
pimd: fixing some coverity issues
2022-10-27 18:04:21 +01:00
Donatas Abraitis
1bdc92fab3
Merge pull request #12200 from patrasar/pimv6_rp_iif_fix
pimd, pim6d: Fix rp-info OIF having PIM disabled interface
2022-10-27 17:59:50 +01:00
Sai Gomathi N
b6467a4274 pimd: Dereference before null check
In pim_ecmp_nexthop_search: All paths that lead to this null pointer comparison already dereference the pointer earlier
There may be a null pointer dereference, or else the comparison against null is unnecessary.

Coverity CID-1519749

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-10-27 03:58:18 -07:00
Sai Gomathi N
f13530f23a pimd: Unchecked return value
In tib_sg_oil_setup: Value returned from a function is not checked for errors before being used.
If the function returns an error value, the error value may be mistaken for a normal value.
Here, only the nexthop value is being used. So casted the return type to void.

Coverity CID-1519816

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-10-27 03:57:55 -07:00
David Lamparter
89cb86aeb0 build, vtysh: extract vtysh commands from .xref
Rather than running selected source files through the preprocessor and a
bunch of perl regex'ing to get the list of all DEFUNs, use the data
collected in frr.xref.

This not only eliminates issues we've been having with preprocessor
failures due to nonexistent header files, but is also much faster.
Where extract.pl would take 5s, this now finishes in 0.2s.  And since
this is a non-parallelizable build step towards the end of the build
(dependent on a lot of other things being done already), the speedup is
actually noticeable.

Also files containing CLI no longer need to be listed in `vtysh_scan`
since the .xref data covers everything.  `#ifndef VTYSH_EXTRACT_PL`
checks are equally obsolete.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-26 17:12:34 +01:00
Donald Sharp
00fb4b9dcd pimd: Make pimd happy with clang-16
Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
2022-10-26 07:39:47 -04:00
Sarita Patra
43a18948d5 pimd, pim6d: Fix rp-info OIF having PIM disabled interface
Problem:
frr(config)# show ip pim rp-info
RP address group/prefix-list OIF I am RP Source Group-Type
109.0.0.3 224.0.0.0/4 ens192 no Static ASM

frr(config)# int ens192
frr(config-if)# no ip pim

frr(config) show ip pim rp-info
RP address group/prefix-list OIF I am RP Source Group-Type
109.0.0.3 224.0.0.0/4 ens192 no Static ASM

rp-info OIF is still having ens192 which is PIM disabled.
Fixing this as part of this PR.

Issue: #12044

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-25 21:25:23 -07:00
Donatas Abraitis
e1a14d4700
Merge pull request #12094 from patrasar/pimv6_rp_linklocal
pimd, pim6d: Don't configure link-local, Multicast, Unspecified address as RP
2022-10-21 10:34:28 +03:00
Donatas Abraitis
8e9729cc72
Merge pull request #11600 from patrasar/pimv6_bsm_clis
pim6d:  BSM CLIs implementation
2022-10-21 09:41:22 +03:00
Sarita Patra
aae2af98ca pimd, pim6d: Don't configure link-local, Multicast, Unspecified address as RP
Problem:
=======
frr(config)# do show ipv6 pim interface
 Interface  State  Address                   PIM Nbrs  PIM DR  FHR  IfChannels
 ens192     up     fe80::250:56ff:feb7:3619  0         local   0    1

Configure ens192 interface link-local address as RP.
frr(config)# ipv6 pim rp fe80::250:56ff:feb7:3619
No Path to RP address specified: fe80::250:56ff:feb7:3619

frr(config)# do show ipv6 pim rp-info
 RP address                group/prefix-list  OIF      I am RP  Source  Group-Type
 fe80::250:56ff:feb7:3619  ff00::/8           Unknown  yes      Static  ASM

Fix:
===
RP should not be link-local, multicast and unspecified address.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 02:37:28 -07:00
Sarita Patra
dce0f7468d pimd, pim6d: Define pim_addr_is_multicast API
pim_addr_is_multicast API will check if the address is multicast
address or not.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:11:52 -07:00
Sarita Patra
997f2f1522 pim6d: Add "show ipv6 pim bsrp-info [vrf NAME] [json]" cli
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:48 -07:00
Sarita Patra
4d6ca7913f pim6d: Add "[no] debug pimv6 bsm" cli
The cli "[no] debug pimv6 bsm" is used to enable/
disable bsm debugs for PIMV6

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:48 -07:00
Sarita Patra
2792bff145 pim6d: Add "show ipv6 show ip pim bsm-database [vrf NAME] [json]" cli
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:48 -07:00
Sarita Patra
a0299f87cf pimd: Move "show ip pim bsm-database" cmd to DEFPY
Added common pim_show_bsm_db_helper to suppport both PIM and
PIMV6.
pim_show_bsm_db is moved to pim_cmd_common.c file.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:48 -07:00
Sarita Patra
a07e7dfaee pimd: Move "show ip pim bsrp-info [vrf] [json]" cmd to DEFPY
Added pim_show_group_rp_mappings_info_helper to suppport both PIM and
PIMV6.
pim_show_group_rp_mappings_info() is moved to pim_cmd_common.c file.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:48 -07:00
Sarita Patra
0cb98fcd81 pim6d: Add "show ipv6 pim bsr [vrf NAME] [json] cmd"
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:48 -07:00
Sarita Patra
aaf46b1edc pimd: Add vrf optional parameter in "show ip pim bsr" cmd
Added common API pim_show_bsr_helper to suppport both PIM and
PIMV6.
pim_show_bsr() is moved to pim_cmd_common.c file.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:48 -07:00
Sarita Patra
dfeda85c4b pim6d: Add [no] ipv6 pim unicast-bsm" command
Introduced common api pim_process_unicast_bsm_cmd,
pim_process_no_unicast_bsm_cmd which will process
both "[no] ip pim unicast-bsm" command and "[no] ipv6 pim
unicast-bsm" command.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:07:46 -07:00
Sarita Patra
5e651c3699 pim6d: Add [no] ipv6 pim bsm" command
Introduced common api pim_process_bsm_cmd,
pim_process_no_bsm_cmd which will process
both "[no] ip pim bsm" command and "[no] ipv6 pim
bsm" command.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-20 01:06:30 -07:00
Sarita Patra
e0a75e7001 pimd: Fix v4-over-v6 nexthop handling
In the current code, if_lookup_by_index()
is called for un-initialized ifindex value.

This issue is introduced after 11098 PR.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-17 14:13:33 -07:00
Donald Sharp
e3e3d729c4
Merge pull request #12066 from opensourcerouting/cleanup-cli-xref
*: clean up various CLI-related bits
2022-10-13 13:47:04 -04:00
Donatas Abraitis
69c736ec06
Merge pull request #12074 from donaldsharp/lib_debugs
*: Create and use infrastructure to show debugs in lib
2022-10-12 10:38:21 +03:00
Sarita Patra
7e371efb85 pim6d: Fix RpAddress in "show ipv6 pim bsm-database"
RpAddress is showing wrong value in
"show ipv6 pim bsm-database" cli. This is fixed now.

Issue: #12089

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-10-10 22:10:43 -07:00
Donald Sharp
cf00164b69 *: Create and use infrastructure to show debugs in lib
There are lib debugs being set but never show up in
`show debug` commands because there was no way to show
that they were being used.  Add a bit of infrastructure
to allow this and then use it for `debug route-map`

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-10-07 12:39:05 -04:00
David Lamparter
a0dfca37b5 *: fix some malformed CLI docstrings
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:39:56 +02:00
Donald Sharp
81552b9774
Merge pull request #12017 from patrasar/pimv6_hello
pimd, pim6d: send secondary address in PIM hello packet
2022-10-05 08:25:28 -04:00
Donatas Abraitis
4b8a9e74a2
Merge pull request #12013 from SaiGomathiN/11895
pim6d: Adding new Debug CLI for MLD
2022-10-05 14:09:39 +03:00
Sarita Patra
6ea2a7fb4f pimd, pim6d: send secondary address in PIM hello packet
Fixed as per rfc7761 section 4.3.1.
"""
Sending Hello Messages
The Address List option advertises all the secondary addresses
associated with the source interface of the router originating the
message.  The option MUST be included in all Hello messages if there
are secondary addresses associated with the source interface and MAY
be omitted if no secondary addresses exist.
"""

Issue: #12015

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-09-30 03:35:49 -07:00
Donatas Abraitis
5ae96447d7
Merge pull request #12035 from donaldsharp/pim6_write_non_integrated
pimd: Allow v6 to do non-integrated configuration
2022-09-29 14:47:10 +03:00
Donald Sharp
9f8df438e8 pimd: Remove some unused defines in pimd.h
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-09-28 08:27:02 -04:00
Donald Sharp
8a86ada12d pimd: Assign a vty port value for v6
Let's use 2620

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-09-28 08:27:02 -04:00
Donald Sharp
661798c670 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>
2022-09-27 12:24:16 -04:00
Mobashshera Rasool
a0625bb356 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>
2022-09-27 05:04:24 -07:00
Abhishek N R
6b94500dba 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>
2022-09-26 00:10:58 -07:00
Sai Gomathi N
a25597611d pimd,pim6d: Change the show running commands based on address family
Change the show running commands for igmp and mld debug commands
based on the address family.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-26 00:09:45 -07:00
Sai Gomathi N
f187700545 pim6d: Add 'debug mld trace detail'
Implementing debug mld trace detail for MLD activity.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-25 23:46:37 -07:00
Sai Gomathi N
e0a7a5ebe3 pim6d: Add 'debug mld trace'
Implementing mld trace for MLD protocol activity.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-25 23:33:59 -07:00
Sai Gomathi N
beecba6e17 pim6d: Add 'debug mld packets'
Implementing mld packets debug to information about packet generation for sending
and about packet handling from a received packet.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-25 23:22:31 -07:00
Sai Gomathi N
b92f5c2ecc pim6d: Add 'debug mld events'
Implementing debug mld events command for debugging MLD system events.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-25 23:07:42 -07:00
Sai Gomathi N
de00db38aa pim6d: Add 'debug mld'
Implementing debug mld command for MLD protocol activity.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-25 22:29:37 -07:00
Donatas Abraitis
383a873495
Merge pull request #11802 from AbhishekNR/ttable_pim_state
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim state" command output.
2022-09-21 11:00:40 +03:00
Donatas Abraitis
96e8d5fb04
Merge pull request #11918 from patrasar/show_ipv6_mld_interface_fix
pim6d: "show ipv6 mld interface" command
2022-09-21 10:19:33 +03:00
Donatas Abraitis
c4d75d0275
Merge pull request #11958 from AbhishekNR/ttable_show
pimd, pim6d: Using ttable for displaying show command outputs
2022-09-20 09:47:09 +03:00
Donatas Abraitis
e09ce4b894
Merge pull request #11872 from AbhishekNR/const_igmp_gm
pimd, pim6d: Changing IGMP to GM in few macro's.
2022-09-19 17:48:24 +03:00
Donatas Abraitis
7877eaf65b
Merge pull request #11953 from AbhishekNR/issue_11925
pim6d: (*,G) mroutes not learnt after pim6d daemon restart
2022-09-19 17:37:04 +03:00
Donald Sharp
81d6a47bf0
Merge pull request #11917 from patrasar/pimv6_clear_mroute_fix
pim6d: fix clear ipv6 mroute crash
2022-09-19 08:34:37 -04:00
Abhishek N R
ad994e7a8a 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>
2022-09-19 02:11:23 -07:00
Abhishek N R
c3cd01eb06 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>
2022-09-19 02:11:13 -07:00
Abhishek N R
bae90f95d1 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>
2022-09-19 02:03:24 -07:00
Abhishek N R
de5dc09238 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>
2022-09-18 22:15:19 -07:00
Donatas Abraitis
d1bf3d9aea
Merge pull request #11955 from mobash-rasool/fixes3
pim6d: Fixing coverity issues for pim6_mld.c
2022-09-17 23:30:07 +03:00
Donatas Abraitis
377369d45e
Merge pull request #11900 from patrasar/pimv6_lmqt
pim6d: Update last_member_query_interval and last_member_query_count
2022-09-16 03:51:38 -07:00
Mobashshera Rasool
5784a87811 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>
2022-09-16 03:12:13 -07:00
Abhishek N R
5eac8aa3fb pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim state" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-09-16 02:39:47 -07:00
Abhishek N R
b4460a6b33 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>
2022-09-16 00:42:39 -07:00
Sarita Patra
e309780f12 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>
2022-09-15 20:32:49 -07:00
Mobashshera Rasool
2ce3c8ec58 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>
2022-09-14 10:34:10 -07:00
Abhishek N R
a96d64b0d6 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>
2022-09-13 23:29:33 -07:00
Sarita Patra
ad56b07c09 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>
2022-09-13 20:36:07 -07:00
Donatas Abraitis
6a26823c88
Merge pull request #11896 from AbhishekNR/issue_11891
pim6d: Adding additional details for "show ipv6 mld interface [ifname] json" command.
2022-09-08 16:35:44 +02:00
Sai Gomathi N
b40990228f pimd: Fixing alignment
Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-06 00:15:38 -07:00
Sai Gomathi N
d891fa78e4 pimd, pim6d: Changing IGMP to GM in debug macros
Changing
PIM_DO_DEBUG_IGMP_EVENTS to PIM_DO_DEBUG_GM_EVENTS
PIM_DO_DEBUG_IGMP_PACKETS to PIM_DO_DEBUG_GM_PACKETS
PIM_DO_DEBUG_IGMP_TRACE to PIM_DO_DEBUG_GM_TRACE
PIM_DO_DEBUG_IGMP_TRACE_DETAIL to PIM_DO_DEBUG_GM_TRACE_DETAIL
PIM_DONT_DEBUG_IGMP_EVENTS to PIM_DONT_DEBUG_GM_EVENTS
PIM_DONT_DEBUG_IGMP_PACKETS to PIM_DONT_DEBUG_GM_PACKETS
PIM_DONT_DEBUG_IGMP_TRACE to PIM_DONT_DEBUG_GM_TRACE
PIM_DONT_DEBUG_IGMP_TRACE_DETAIL to PIM_DONT_DEBUG_GM_TRACE_DETAIL
PIM_MASK_IGMP_EVENTS to PIM_MASK_GM_EVENTS
PIM_MASK_IGMP_PACKETS to PIM_MASK_GM_PACKETS
PIM_MASK_IGMP_TRACE to PIM_MASK_GM_TRACE
PIM_MASK_IGMP_TRACE_DETAIL to PIM_MASK_GM_TRACE_DETAIL
to be used for both IGMP and MLD debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-06 00:15:38 -07:00
Abhishek N R
cb406d5cd7 pim6d: Adding additional details for "show ipv6 mld interface [ifname] json" command.
Added Robustness value, Query interval, Query response timer
and Last member query interval field in json output.

Issue: #11891

Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-09-05 22:51:03 -07:00
Sai Gomathi N
55eb347de9 pimd,pim6d: Modifying IGMP to GM in PIM_DEBUG_IGMP_PACKETS to PIM_DEBUG_GM_PACKETS
Changing the macros to common so that it can be used for pimv6 debugs as well
to be used for both IGMP and MLD debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-04 22:46:09 -07:00
Sai Gomathi N
95b13dc512 pimd,pim6d: Modifying IGMP to GM in PIM_DEBUG_IGMP_EVENTS to PIM_DEBUG_GM_EVENTS
Changing the macros to common so that it can be used for pimv6 debugs as well
to be used for both IGMP and MLD debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-09-04 22:46:09 -07:00
Sarita Patra
deda3f27d3 pim6d: Update last_member_query_interval and last_member_query_count
When there is update in the configuration of last_member_query_interval
and last_member_query_count, call gm_ifp_update().
This will update cur_query_intv_trig and cur_lmqc of gm_ifp structure.

Issue: #11901

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-09-04 16:53:03 -07:00
Mobashshera Rasool
79c0c50db9 pimd: Removal of unused function pim_neighbor_find_prefix
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-09-02 09:50:28 -07:00
Mobashshera Rasool
e73f7bf256 pim6d: Fix the Code for MLD in the show pim state command
show ip pim state should show IGMP Report while
show ipv6 pim state should show MLD Report.

Output After Fix:
frr# do sh ip pim state
Codes: J -> Pim Join, I -> IGMP Report, S -> Source, * -> Inherited from (*,G), V -> VxLAN, M -> Muted
Active Source           Group            RPT  IIF               OIL

frr# do sh ipv6 pim state
Codes: J -> Pim Join, I -> MLD Report, S -> Source, * -> Inherited from (*,G), V -> VxLAN, M -> Muted
Active Source           Group            RPT  IIF               OIL

frr#

Issue: #11249

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-08-30 03:13:42 -07:00
Abhishek N R
4cc5d80965 pimd, pim6d: deleting the memory malloced for json.
Problem Statement:
=================
2022-08-18 04:57:32,376 - ERROR: Found memory leak in daemon pimd
2022-08-18 04:57:32,377 - ERROR: ==12100== 18,978 (144 direct, 18,834 indirect) bytes in 2 blocks are definitely lost in loss record 45 of 45
2022-08-18 04:57:32,377 - ERROR: ==12100==    at 0x4C31FAC: calloc (vg_replace_malloc.c:762)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x532F51F: json_object_new_object (in /lib/x86_64-linux-gnu/libjson-c.so.3.0.1)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x128B5C: pim_show_interfaces (pim_cmd_common.c:3395)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x15A86B: show_ip_pim_interface_magic (pim_cmd.c:3127)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x15A86B: show_ip_pim_interface (pim_cmd_clippy.c:324)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E672B2: cmd_execute_command_real.isra.2 (command.c:1005)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E696FE: cmd_execute_command (command.c:1064)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E698F1: cmd_execute (command.c:1227)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EBC814: vty_command (vty.c:530)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EBC9EF: vty_execute (vty.c:1295)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EBF1F7: vtysh_read (vty.c:2142)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EB739B: thread_call (thread.c:1692)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E85B17: frr_run (libfrr.c:1068)
2022-08-18 04:57:32,377 - ERROR: ==12100==

Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-29 08:46:19 -07:00
Donatas Abraitis
6a501480c2
Merge pull request #11581 from AbhishekNR/mld_hardcode_value
pim6d: Completing mld config commands.
2022-08-29 13:27:28 +03:00
Donatas Abraitis
ca500e231c
Merge pull request #11857 from mobash-rasool/fixes2
pim6d: mroute stuck in register state, multicast traffic getting drops
2022-08-29 10:14:34 +03:00
Abhishek N R
707a9e9a90 pim6d: Completing "ipv6 mld last-member-query-interval" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-28 23:33:07 -07:00
Abhishek N R
51b4991feb pim6d: Completing "ipv6 mld last-member-query-count" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-28 23:33:07 -07:00
Abhishek N R
914710d79e pim6d: Completing "ipv6 mld query-max-response-time" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-28 23:33:07 -07:00
Donatas Abraitis
b5132009fc
Merge pull request #11718 from SaiGomathiN/mldgroups
pim6d: Implementing "show ipv6 mld groups" CLI
2022-08-26 15:19:32 +03:00
Sai Gomathi N
cdc1b7709f pim6d: Implementing "show mld groups" CLI
To Display MLD Group information

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-26 01:14:08 -07:00
Sai Gomathi N
8934215f65 pimd: Modifying member of pim_instance to accomodate IPv6 changes
Modifying igmp_group_count of struct pim_instance
to gm_group_count which is to be used for both IGMP and MLD.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-26 01:14:08 -07:00
Sai Gomathi N
d250853af7 pimd, pim6d: Using ttable for displaying "show ip|ipv6 pim jp-agg" CLI
Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-24 09:25:55 -07:00
Sai Gomathi N
7d11f1996e pimd, pim6d: Using ttable for displaying "show ip|ipv6 pim channel" CLI
Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-24 09:25:55 -07:00
Donald Sharp
bce18b18fe pimd: Intentionally downcast to a uint32_t value
When calling time(NULL), FRR is intentionally throwing
away the upper 32 bits of value returned.  Let's explicitly
call it out so that coverity understands this is intentional
and ok.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 08:28:51 -04:00
Mobashshera Rasool
e23b5d868a pim6d: mroute stuck in register state, multicast traffic getting drops
IPv4 and IPv6 behaves a little bit differently with the socket
options.
IPPROTO_RAW socket option is only for IPv4.
Therefore the register packet was not properly getting encapculated
for PIMv6 and was working fine for PIMv4.

So have used IPPROTO_PIM for PIMv6.

Fixes: #11846

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-08-23 00:09:20 -07:00
Donald Sharp
e9c599ca72
Merge pull request #11830 from AbhishekNR/unused_var
pimd, pim6d: Removing unused parameter
2022-08-18 06:28:51 -04:00
Donatas Abraitis
b32cf39d45
Merge pull request #11485 from AbhishekNR/ipv6_mld_todo
pim6d: Completing "ipv6 mld" config command.
2022-08-18 09:47:03 +03:00
Donatas Abraitis
5b87f38def
Merge pull request #11817 from AbhishekNR/ttable_pim_rp-info
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim rp-info"  command output.
2022-08-18 09:16:00 +03:00
Donatas Abraitis
547ce0b97e
Merge pull request #11783 from AbhishekNR/ttbale_show_cli
pimd, pim6d: Using ttable for displaying show ip/ipv6 pim CLI's output
2022-08-18 09:15:34 +03:00
Abhishek N R
38ec10a14a pimd, pim6d: Removing unused parameter
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-17 23:12:09 -07:00
Abhishek N R
f1ebd3dbd0 pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim rp-info" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-16 21:51:58 -07:00
Abhishek N R
802ba0fb94 pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim upstream-rpf" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-16 09:12:10 -07:00
Abhishek N R
090f833975 pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim upstream-join-desired" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-16 09:12:10 -07:00
Mobashshera Rasool
e9cb0d510d pim6d: Register message getting dropped in source node, mroute stuck in RegJ
The socket created for pimv6 was created using AF_INET for PIMV6
too.
Since the api pim_reg_sock is common to both PIMv4 and PIMv6,
need to use PIM_AF instead of AF_INET.

Fixes: #11815

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-08-16 07:20:52 -07:00
Mobashshera Rasool
ca8cbecd5c pim6d: Add debug mroute6 and detail commands
Adding below debug CLIs:
debug mroute6
debug mroute6 detail

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-08-16 00:55:51 -07:00
Donald Sharp
bddd6bb95e pimd: vrf may be NULL from pim_cmd_lookup_vrf
The call into pim_cmd_lookup_vrf may be NULL
and dereferencing it before ensuring that the
vrf pointer is non-NULL is a good way to crash.

A crash can be initiated in pim:

eva# show ip msdp vrf NOEXIST mesh-group
vtysh: error reading from pimd: Permission denied (13)Warning: closing connection to pimd because of an I/O error!
eva# 2022/08/15 11:47:38 [PHJDC-499N2][EC 100663314] STARVATION: task vtysh_rl_read (560b77f76de6) ran for 16777ms (cpu time 0ms)

eva#

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-15 15:45:05 -04:00
Donald Sharp
e89de02895 pimd: pim_upstream_add up must exist
When calling pim_upstream_add, the lookup for upstream
or the creation of the upstream cannot fail.  As such
up is never NULL.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-15 15:45:05 -04:00
Donald Sharp
29b458ef1f pimd: ch->upstream cannot be NULL
in pim_ifchannel.c there exists several spots where
the ch->upstream is assumed to be NULL.  This is not
possible.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-15 15:45:05 -04:00
Abhishek N R
a8f7d5de6b pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim upstream" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-14 08:29:11 -07:00
Abhishek N R
0148e53f3b pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim secondary" command output
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-14 08:29:11 -07:00
Abhishek N R
1b6dbdcd1e pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim rpf" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-14 08:29:11 -07:00
Donald Sharp
23f85c8dad
Merge pull request #11778 from AbhishekNR/ttable_mroute
pimd, pim6d:  Using ttable for displaying output of show mroute commands
2022-08-11 08:32:32 -04:00
Abhishek N R
88e9f3a009 pimd, pim6d: Using ttable for displaying "show ip/ipv6 mroute count" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-11 04:03:11 -07:00
Abhishek N R
cb990f3819 pimd, pim6d: Using ttable for displaying "show ip/ipv6 mroute" command output.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-10 09:05:40 -07:00
Abhishek N R
7f0dc57f8e pimd, pim6d: Using ttable for displaying "show ip/ipv6 multicast count" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-10 02:09:00 -07:00
Donatas Abraitis
8e2eb5935a
Merge pull request #11720 from SaiGomathiN/pimv6debugfix
pim6d: Add 'show debugging [pimv6]' CLI and some fixes
2022-08-08 10:11:38 +03:00
Donald Sharp
b993483876
Merge pull request #11636 from AbhishekNR/clear_cmd
pim6d: Implementing "clear ipv6 pim interface traffic" command.
2022-08-05 07:45:47 -04:00
Donald Sharp
ddfc81f3de
Merge pull request #11559 from patrasar/fix_clear_ipv6_mroute
pim6d: fix clear ipv6 mroute
2022-08-05 07:43:12 -04:00
Donald Sharp
f07b1a9fb4
Merge pull request #11716 from mobash-rasool/fixes2
pimd, pim6d: Send register msg via reg socket, solve FHR/RP same node issue
2022-08-04 22:06:49 -04:00
Donald Sharp
41e5409857
Merge pull request #11705 from Jafaral/pim-static
pimd: fix static mroute to also take into account the input interface
2022-08-04 22:04:02 -04:00
Sai Gomathi N
7d1b675857 pimd, pim6d: Using ttable for displaying
Using termtable for show ip|ipv6 pim interface
for dynamic space alignments

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-04 04:35:42 -07:00
Mobashshera Rasool
9461953914 pimd, pim6d: Send register msg via register socket
The problem here is when the same node is FHR as well as RP,
then the node keeps on sending the register packet.
Register-stop is not sent as well.

This problem has occurred because the RP is the same node
and there is no socket created on loopback interface, so the
packet is never send out and never received back on the same
node, so register recv could not be processed on the node and
hence no register-stop is sent.

Since register packets are unicast packets, its better to handle
the send of register packet via a separate register socket.
This fixes the problem mentioned above as well.

Fixes: #11331
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-08-04 00:49:10 -07:00
Sarita Patra
4459f499c4 pim6d: fix clear ipv6 mroute
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-08-03 07:47:36 -07:00
Sai Gomathi N
614b77fef5 pim6d: Change the show running commands for pimv6 debugs
Change the show running commands for bsm and vxlan pimv4 and pimv6
debug commands based on the address family.
Including bsm and vxlan in no debug pimv6 debug.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-02 06:34:30 -07:00
Sai Gomathi N
2af7b0450b pim6d: Removing the to-do item in pimv6 debug
Removing the temporary enabling of all debugs for pimv6

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-02 05:50:02 -07:00
Sai Gomathi N
1f2ecfe5ab pim6d: Add 'show debugging [pimv6]' CLI
Adding show debugging CLI for pimv6 debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-02 05:36:02 -07:00
Abhishek N R
8656814dac pim6d: Implementing "clear ipv6 pim interface traffic" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-01 22:08:40 -07:00
Mobashshera Rasool
0c7f978ec9 pimd: Simply the code a bit, reduce code complexity
Combine all the if conditions in api pim_if_addr_add_all to
reduce nested loops.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-31 23:43:28 -07:00
Jafar Al-Gharaibeh
90937e420c pimd: fix static mroute to also take into account the input interface
Allow the same group/source route to be configured on more than one interface.
Currently FRR doesn't allow adding the same mroute on different input interfaces.

Current behavior, if we have the following config:

```
interface eth1
   ip mroute eth0 239.0.0.1

interface eth2
   ip mroute eth0 239.0.0.1
```

Only one multicast route will be installed with an input interface of the last
interface configured.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2022-07-28 16:27:19 -05:00
Sarita Patra
f789683690 pimd: Update mroute IIF based on Nexthop received from Zebra
Topology:
R1(LHR) ---- R2 ----R4(FHR)
        ---- R3 ----

R2 = RP

Steps to reproduce:
1. R1(LHR) sends IGMP join, R4(FHR) sends multicast traffic.
   Verify traffic is flowing from FHR to LHR.
2. Restart R1(LHR).
3. Below sequence of events are happening after FRR restart in R1(LHR).
4. R1(LHR) Register RP address to Zebra.
5. R1(LHR) Receive update from Zebra that R2(RP) is reachable via R3.
6. R1(LHR) Receive IGMP join for group 225.1.1.1, will create pim upstream
   and (*,G) mroute with IIF towards R3.
7. R1(LHR) Receive update from Zebra that RP is reachable via R2(RP).
8. R1(LHR) Update the PIM upstream IIF, but not updating the (*,G) IIF
   even there is RPF change.
9. R1(LHR) receives IGMP join for group 225.1.1.2, will create (*,G) with
   IIF towards R2(RP), both upstream and (,G) created with IIF towards R2(RP).

Root Cause:
Mroute IIF is not getting updated when better route update
received. It is still pointing to the older nexthop.

Fix:
Update the mroute IIF when there is change in nexthop.

Fixing Issue #11675

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-28 13:03:46 -07:00
Donald Sharp
3816a65da3 pimd: Fix a couple coverity issues with mtracebis_netlink.c
Coverity is complaining that buf has not been initialized.
It has and coverity appears to be confused so let's help it
find the initialization.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-07-26 13:45:27 -04:00
Abhishek N R
23db4cbd3d pim6d: Implementing "clear ipv6 pim interfaces" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-07-19 05:48:52 -07:00
Donatas Abraitis
c1f8c2172e
Merge pull request #11633 from mobash-rasool/fixes3
pim6d: clear interface stats on interface shutdown
2022-07-18 21:20:27 +03:00
Mobashshera Rasool
6fe9b9d600 pim6d: clear interface stats on interface shutdown
The clear was happening only for PIMv4. Removed the PIMv4
check.

Fixes: #11628

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-18 01:18:16 -07:00
Mobashshera Rasool
3f3a6cc53c pimd: Remove the api from .h file since there is no definition of it
Removing the api pim_scan_individual_oil from .h since there is
no definition of it.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-17 23:01:52 -07:00
Jafar Al-Gharaibeh
6286ce45bc
Merge pull request #11536 from mobash-rasool/temp1
pimd: During prune pending, behave as NOINFO state (conformance issue)
2022-07-14 12:24:35 -05:00
David Lamparter
1004137bf3
Merge pull request #11598 from patrasar/pim_get_instance 2022-07-13 16:54:39 +02:00
David Lamparter
c9aa57dcf1
Merge pull request #11585 from patrasar/sg_str 2022-07-13 16:51:10 +02:00
David Lamparter
69de2a1c88
Merge pull request #11593 from mobash-rasool/fixes 2022-07-13 16:49:27 +02:00
mobash-rasool
9d8dc1b901
Merge pull request #11597 from opensourcerouting/pimd-packed-member
pimd: fix unaligned accesses
2022-07-13 17:29:30 +05:30
Mobashshera Rasool
c6c615c12b pimd,pim6d: Set RP to true if the address matches, ignore prefix-length
The API pim_rp_check_interface_addrs checks if the RP address matches
with the primary address then it returns true.
In case of PIMv4 this condition is true, therefore the router becomes RP.
But in case of PIMv6, this condition does not pass because primary address
for PIMv6 is link-local address.

Also PIMv4 allows secondary addresses to be used as RP
if it is a host route in case primary does not match.

Fixing it by only checking the configured
RP address with the interface address and ignoring the prefix
length since it does not matter.

Fixes: #11335

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-12 22:51:27 -07:00
Mark Stapp
b33396cb75
Merge pull request #11461 from mobash-rasool/pimv6-enable
pim6d: Enable/disable pim6d daemons on different platforms based on flags
2022-07-12 11:44:29 -04:00
Sarita Patra
db79e6ba84 pimd: Remove pim_get_pim_instance defination in pim_cmd_common.h
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-12 06:09:06 -07:00
Sarita Patra
af9c8e7666 pimd: Avoid unnecessary vrf lookup
In several places, we are getting the vrf structure using
vrf_lookup_by_name(). Again we are passing vrf->vrf_id to
pim_get_pim_instance() to get the pim_instance.

The API pim_get_pim_instance() again get the VRF structure using
vrf_lookup_by_id(). This is avoided in this PR.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-12 06:09:04 -07:00
Sarita Patra
4d69e1ca61 pim6d: Longest possible length of a (S,G) string is 94 bytes
Longest possible length of a IPV6 (S,G) string is 94 bytes
INET6_ADDRSTRLEN * 2 = 46 * 2
(,) = 1
NULL Character at end = 1

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-12 04:46:57 -07:00
Sarita Patra
9deed2ad77 pimd: Fix description for PIM_SG_LEN
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-12 04:46:56 -07:00
David Lamparter
554350c87a
Merge pull request #11580 from patrasar/remove_pim_addr.h
pimd: removal double inclusion of pim_addr.h
2022-07-12 12:55:42 +02:00
David Lamparter
cefb7247f0 pimd: fix unaligned accesses
These are in packed structs at weird offsets (e.g. 2 bytes), and as such
need a memcpy to get them into proper alignment.

It'd be even better if the pimd code used proper de/serialization, but
let's get this improved one step at a time.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-12 12:48:04 +02:00
Sarita Patra
9362da2dff pimd: removal double inclusion of pim_addr.h
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-11 04:51:03 -07:00
Mobashshera Rasool
e638968324 pimd: Correct the order of show json for interface traffic
"show ip pim interface traffic json" shows pruneTx first and then
pruneRx stats
where as
"show ip pim interface <ifname> json" shows pruneRx first and then
pruneTx stats.

Although the values are right but the display looks odd.

Making it same as other stats, first display Rx and then Tx.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-11 04:37:46 -07:00
David Lamparter
b08967fbbc pim6d: add clear ipv6 pim bsr-data
This is needed for ANVL between testruns, and already in IPv4 too.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-08 14:58:38 +02:00
David Lamparter
bc0e6b1993
Merge pull request #10592 from patrasar/master_pimv6_bsm 2022-07-08 10:46:35 +02:00
Donatas Abraitis
4ccacc3a40
Merge pull request #11553 from patrasar/clear_ip_mroute
pimd, pim6d: Fix description for clear ip[v6] mroute command
2022-07-08 09:50:44 +03:00
sarita patra
691a58faa1 pim6d: removed pim6_stubs.c file
pim6_stub.c file is no more needed.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
7b56b13fc7 pim6d: Adjust pim_show_bsm_db for IPV6
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
c0590b1c59 pim6d: IPV6 adjust in hash_calc_on_grp_rp
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
f0e91749df Revert "pim6d: IPv6-adjust BSM code"
This reverts commit 809c11a9d8.
2022-07-07 10:56:45 -07:00
sarita patra
cefd2343d6 pim6d: remove unused variable neigh_src_str
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
17dd168097 pim6d: running pim_bsm.c for pimv6
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
81a688bc7b pim6d: add pimv6 support for bsmmsg_grpinfo
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
1407e40fc8 pim6d: add pimv6 support for bsmmsg_rpinfo
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
1ae87bdd38 pim6d: add pimv6 support for bsm_hdr
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:45 -07:00
sarita patra
11e1593f9f pim6d: Add pim_addr rp_addr in bsm_rpinfo
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 10:56:43 -07:00
sarita patra
53bbfd535a pim6d: bsr nht handling for IPV6
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 07:53:40 -07:00
sarita patra
e309769ae7 pim6d: modify in_addr current_bsr to pim_addr current_bsr
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 07:51:33 -07:00
Mobashshera Rasool
7e08c08069 pim6d: Disable pim6d compilation by default
By default, disable pim6d compilation. If someone
wants to enable the compilation, should use ./configure option
with --enable-pim6d.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-07 07:14:27 -07:00
David Lamparter
3eade02f13
Merge pull request #10715 from patrasar/pim_rpf_prefix_to_pimaddr
pim6d: modify pim_rpf from struct prefix to pim_addr
2022-07-07 15:36:57 +02:00
Sarita Patra
14a3e390e9 pim6d: Fix description for "clear ipv6 mroute" cmd
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-07 06:12:03 -07:00
Sarita Patra
215d10a104 pimd: Fix description for "clear ip mroute" cmd
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-07 06:06:06 -07:00
Abhishek N R
5c1b3cd2d9 pim6d: Completing "ipv6 mld" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-07-07 04:36:33 -07:00
Mobashshera Rasool
8d0f0b02f3 pimd: During prune pending, behave as NOINFO state
Fixed ANVL Conformance PIM-SM 16.3 test case.

When (S,G,rpt) prune is received, we were installing
the mroute immediately with none as OIF.
This leads to dropping the (S,G) traffic during prune
pending time as well.

Also we should not install the mroute if there is no
change in the rpf update.

These 2 things lead to the failure of the test case.

Fixed it by blocking the installation in this scenario.
When prune pending timer pops, it will take care of
installing the mroute with  none as OIF.

Fixes: #11535

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-06 05:18:38 -07:00
sarita patra
e6e5300636 pim6d: Pass pim_addr for pim_nht callbacks.
For pim callbacks, we pass pim_addr as value, not pointer.
So making it consistent for pim_nht callbacks.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:56:43 -07:00
sarita patra
b502add84f pimd: Adjust rpf_addr in show commands
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:56:42 -07:00
David Lamparter
d1757dd5cd
Merge pull request #11521 from patrasar/pimv6_drpriority
pim6d: Fix [no] ipv6 pim drpriority command
2022-07-06 11:43:05 +02:00
sarita patra
8d61ad0f17 pimd: Handle rpf_addr in pim_ifchannel code
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
6288ebcf22 pimd: Handle rpf_addr in pim nht
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
5d58abc161 pimd: Handle rpf_addr in register send/recv
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
fc9f6f88e5 pimd: Handle rpf_addr in join/prune processing
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
5262018dbf pim6d: Handle rpf_addr in pim_msg_build_jp_groups()
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
bad81cbc7b pim6d: Handle rpf_addr in on_neighbor_jp_timer()
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
4a8336cfa8 pim6d: Handle rpf_addr in pim_if_addr_add()
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
6b362f9fb1 pim6d: Adjust rpf_addr in pim_tib code
In this PR, we are handling the pim_tib code
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
122c31403e pim6d: Adjust rpf_addr in pim_vxlan_orig_mr_up_add
In this PR, we are handling the pim_vxlan_orig_mr_up_add()
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
144035b741 pim6d: Adjust rpf_addr in pim_zebra
In this PR, we are handling the pim_zebra code
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
028583e9e0 pim6d: Adjust rpf_addr in pim_upstream
In this PR, we are handling the pim_upstream
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
b63192cfc2 pim6d: Adjust rpf_addr in rp_info
In this PR, we are handling the rp_info
after rpf_addr modified from prefix
to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
66344d3d52 pim6d: Adjust rpf_addr rpf code
In this PR, we are handling the pim_rpf code
after rpf_addr modified from prefix
to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
490e5b181c pimd: modify rpf_addr from prefix to pim_addr
Currently rpf_addr is of type struct prefix, but it's always
a /32 host prefix. So changing it to pim_addr in order to support both
IPV4 and IPV6.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
Donatas Abraitis
7650a8d638
Merge pull request #9307 from SaiGomathiN/sai-nht
pimd: json support for nexthop
2022-07-06 12:32:48 +03:00
Mobashshera Rasool
a626be65c5 pimd: Remove unused extern pim_channel_oil_list
Removing the extern declaration of pim_channel_oil_list since
its not required anymore.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-05 02:25:03 -07:00
Sarita Patra
891b1d8fb7 pim6d: fix no ipv6 pim drpriority
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-03 23:07:23 -07:00
Sarita Patra
596b5a8a4c pim6d: configure ipv6 pim drpriority
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-03 23:05:23 -07:00
Donatas Abraitis
1db8b179e4
Merge pull request #11505 from SaiGomathiN/watermark
pim6d: Fix the todo items in ipv6 watermark limit CLI
2022-07-02 21:36:42 +03:00
Sai Gomathi N
fc19632faa pimd, pim6d: Adding json support for show ipv6 nexthop
Moving the reusable code of pim_show_nexthop apis to common file
pim_cmd_common.c file and adding the json support for show ipv6 pim nexthop

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-30 04:09:14 -07:00
nsaigomathi
573a01ba19 pimd: json support for nexthop
Problems Identified:
show ip pim nexthop cli didn't have json extension and
show ip pim vrf all upstream have improper json format

Description:
show ip pim nexthop command shows the nexthops that are being used.
Added json support for the command.
show ip pim vrf all upstream displays upstream information for all vrfs about a S,G mroute.
Formatted the json structure for this command.

Signed-off-by: nsaigomathi <nsaigomathi@vmware.com>
2022-06-30 03:22:19 -07:00
Sai Gomathi N
889d43b1e6 pim6d: Implementing mld watermark-warn CLI completely
Implementing the TBD of watermark-warn CLI for IPv6 MLD
This command can be use to warn the user
when more than the desired limit of groups gets configured.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-30 02:05:13 -07:00
Sai Gomathi N
229a20e2ad pimd: Modifying member of pim_instance to accomodate IPv6 changes
Modifying igmp_watermark_limit of struct pim_instance
to gm_watermark_limit which is to be used for both IGMP and MLD.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-30 01:49:54 -07:00
Donald Sharp
03c95c540f
Merge pull request #11493 from patrasar/pim_reg_stop_fix
pimd: Register stop message sent with mask 32
2022-06-29 13:02:27 -04:00
Sarita Patra
8e51ca271e pimd: Register stop message sent with mask 32
As per RFC 4601 section 4.9.4, For Register-Stops,
the Mask Len field contains full address length * 8
(e.g. 32 for IPv4 native encoding) (e.g. 128 for IPv6),
if the message is sent for a single group

The issue is seen after 10356, so fixed now.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-06-29 06:34:19 -07:00
Donatas Abraitis
fd878267a3
Merge pull request #11428 from SaiGomathiN/pimdebug
pimd,pim6d: Change the show running commands based on address family
2022-06-29 14:27:45 +03:00
Mobashshera Rasool
8d9e46a727 pimd: Querier to non-querier transition to be ignored
Fixing IGMPv2 ANVL Conformance issue 3.10

As per RFC 2236 section 3, when the leave message is received at a querier,
it starts sending Query messages for "last Member Query Interval*query count"
During this time there should not be any querier to non-querier
transition and the same router needs to send the remaning queries.

Currently the code is handling this scenario only when leave is receive
for a group and the query is received for the same group.
But we need to handle it irrespective of group since the querier
election is based on interface and not group.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-28 05:07:27 -07:00
Abhishek N R
4fecac21cb pim6d: Changing igmp_enable to gm_enable.
Modified variable name so that it can be reused in mld.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-06-27 05:52:02 -07:00
Sai Gomathi N
68a7caf4bf pimd,pim6d: Change the show running commands based on address family
Change the show running commands for pimv4 and pimv6 debug commands
based on the address family.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-06-26 23:42:47 -07:00
Donald Sharp
9a18e71314
Merge pull request #11475 from patrasar/pim_if_delete
pimd: fix pim interface deletion flow
2022-06-24 14:49:55 -04:00
Donald Sharp
348d4d7545
Merge pull request #11471 from mobash-rasool/fixes
pimd: Clean up mroute_socket when pim terminates.
2022-06-24 12:02:35 -04:00
Donald Sharp
3e905d92c4
Merge pull request #11468 from patrasar/pim_valgrind_fix
pimd: Fixing invalid memory access
2022-06-24 11:53:43 -04:00
Donald Sharp
4d3fb2bf42
Merge pull request #11242 from patrasar/pimv6_issue_11233
pim6d: Fixing repeated group source field in show ipv6 mroute
2022-06-24 10:56:48 -04:00
Sarita Patra
1925ca8f4e pimd: fix pim interface deletion flow
Deletion of pim interface(pim_if_delete) should
do the below things before cleanup.
1. Send a hello message with zero hold time.
2. Delete all the neighbors.
3. Close the pim socket.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-06-24 07:48:03 -07:00
Donald Sharp
ff97a24bc3
Merge pull request #11467 from mobash-rasool/fixes2
pimd: Avoid accessing freed memory
2022-06-24 10:05:42 -04:00
Sarita Patra
bc26d1bb61 pimd: fix invalid memory access join_timer_stop
Issue:
==16837== Invalid read of size 8
==16837==    at 0x17971C: pim_neighbor_find (pim_neighbor.c:431)
==16837==    by 0x186439: join_timer_stop (pim_upstream.c:348)
==16837==    by 0x186794: pim_upstream_del (pim_upstream.c:231)
==16837==    by 0x189A66: pim_upstream_terminate (pim_upstream.c:1951)
==16837==    by 0x17111B: pim_instance_terminate (pim_instance.c:54)
==16837==    by 0x17111B: pim_vrf_delete (pim_instance.c:172)
==16837==    by 0x4F1D6C8: vrf_delete (vrf.c:264)
==16837==    by 0x19006F: pim_terminate (pimd.c:160)
==16837==    by 0x1B2E4D: pim_sigterm (pim_signals.c:51)
==16837==    by 0x4F08FA2: frr_sigevent_process (sigevent.c:130)
==16837==    by 0x4F1A2CC: thread_fetch (thread.c:1771)
==16837==    by 0x4ED4F92: frr_run (libfrr.c:1197)
==16837==    by 0x15D81A: main (pim_main.c:176)

Root Cause:
In the pim_terminate flow, the interface is deleted
before the pim_interface clean up. Because of this,
the pim_interface is having garbage value.

Fix:
Release the pim interface memory and then delete the
interface.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-06-24 05:37:18 -07:00
Mobashshera Rasool
3b2f2aa146 pimd: Clean up mroute_socket when pim terminates.
pim_mroute_socket_disable api is present but nowhere called.
This should be called when pim instance is terminated.
Fixed it.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-24 05:36:15 -07:00
mobash-rasool
8771cdcb94
Merge pull request #11462 from donaldsharp/random_stuff_right
Random stuff right
2022-06-24 17:23:31 +05:30
sarita patra
fd07e88b75 pim6d: Fixing repeated group source field in show ipv6 mroute
The command "show ip[v6] mroute" displaying group and source
field for every OIL.

Fix:
Display group and source for the first OIL only.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-06-24 04:41:51 -07:00
Donald Sharp
c315b87c4f
Merge pull request #11457 from plsaranya/pim_mroute
Pim6d: Mroute file duplication removal
2022-06-24 07:07:03 -04:00
Mobashshera Rasool
30247bd637 pimd: Avoid reading freed memory.
If the upstream is freed in pim_upstream_del, then trying to
call pim_upstream_timers_stop will lead to accessing freed memory.

Fix:
Stop the timer only if upstream is not deleted.

Co-authored-by: Sarita Patra <saritap@vmware.com>
Co-authored-by: Mobashshera Rasool <mrasool@vmware.com>
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-24 03:50:45 -07:00
Donald Sharp
f4e8f5d496 pimd: Checks imply that pim is not properly configured
The call to gm_update_ll checks for null pointers and
implies to SA that things could not be configured correctly
This is not true with the code flow.  Remove the confusing code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-23 13:43:25 -04:00
Donald Sharp
6f55b4ae24 pimd: Let end operator know the ifindex as well in failure case
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-23 13:43:25 -04:00
Donald Sharp
75700af602 pimd: Limit pim's ecmp to what zebra tells us is the multipath
Zebra can be setup to use a value that is less than MULTIPATH_NUM.
When pimd connects to zebra, zebra will inform pim about the MULTIPATH_NUM
used.  Let's use that value for figuring out our multipath value.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-23 13:29:19 -04:00
mobash-rasool
5b9ffc923d
Merge pull request #11182 from g-balaji1/pimv6-sock-hdrincl
pim6d: Removal of IPV6_HDRINCL option
2022-06-23 22:16:47 +05:30
plsaranya
1ce957d66d Pim6d: Mroute file duplication removal
Mroute duplicate functions removed and made us hybrid for v4 and v6

Signed-off-by: plsaranya <Saranya_Panjarathina@dell.com>
2022-06-23 06:59:03 -07:00
Mobashshera Rasool
4b603761c1 pim6d: Send register msg with IPv6 global address
Use global unicast IPv6 address to send the register
packet.

Fixes: #11235

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-21 20:44:10 -07:00
Donald Sharp
f3d6bfd13e
Merge pull request #11272 from AbhishekNR/flag_removal
pim6d: Removed PIM_IPV == 4 flag
2022-06-15 20:19:34 -04:00
Donald Sharp
77c98a18b9
Merge pull request #11412 from mobash-rasool/fixes
pimd: Fix the setting of oif_flags in channel oil
2022-06-15 20:17:16 -04:00
Donald Sharp
668bbbce51
Merge pull request #11355 from patrasar/pim6reg
pim6d: creating pim6reg
2022-06-15 11:29:25 -04:00
Sarita Patra
ee1c4ba977 pim6d: creating pim6reg interface for pim6d
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-06-15 06:10:47 -07:00
mobash-rasool
677106de01
Merge pull request #11404 from donaldsharp/pim_rpf_debug_improvement
pimd: Cleanup rpf lookup debug to help us figure out what is going on
2022-06-15 18:40:37 +05:30
Mobashshera Rasool
692b118698 pimd: Fix the setting of oif_flags in channel oil
When pim_upstream_inherited_olist_decide calls the api
pim_channel_add_oif, it can pass PIM_OIF_FLAG_PROTO_GM,
PIM_OIF_FLAG_PROTO_PIM and/or PIM_OIF_FLAG_PROTO_STAR.
Now a consider a case where PIM flag was already set
but STAR flag was not set and this api tries to set
both STAR + PIM and passes the same. The api pim_channel_add_oif
returns since it sees that PIM is already set without
setting the STAR flag.

So basically this will lead to issues in scenarios where for the
same OIF multiple flags(IGMP, PIM, STAR) needs to be set.

Fixing it for all combinations.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-15 00:55:55 -07:00
Donald Sharp
a1340e6de4
Merge pull request #11243 from patrasar/pimv6_issue_11240
pim6d: Don't enable mld on pimreg interface by default
2022-06-14 11:59:42 -04:00
Donald Sharp
cf568522d5 pimd: Cleanup rpf lookup debug to help us figure out what is going on
The rpf lookup debug was not taking into account the fact that a prefix-list
might be applied and also we might need to make a choice between the two.
So let's give ourselves a bit more data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-14 09:50:54 -04:00
Balaji Gurudoss
529f52252c pim6d: Removal of IPV6_HDRINCL option
1. Removal of IPV6_HDRINCL option
2. Removal of IPv6 headers in TX
3. Addition of IPV6_PKTINFO and setting of source ipv6 address for TX.

Signed-off-by: Balaji Gurudoss <G_Balaji1@dell.com>
2022-06-13 16:51:01 +05:30
Mobashshera Rasool
858c3dee04 pim6d: Implement show ipv6 pim interface traffic
This CLI shows the number of PIM protocol packets
sent/received on each interface.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-12 21:31:09 -07:00
Mobashshera Rasool
52770b79a8 pimd: Change to DEFPY and make the api common
For show ip pim interface traffic cli, doing the below changes
1. Changing DEFUN to DEFPY
2. Move the whole code to a common api and modify it so that can
be reused for pimv6.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-12 21:24:01 -07:00
Mobashshera Rasool
36cec27cd9 pim6d: Moving show apis to common file
Moving pim_show_interface_traffic and pim_show_interface_traffic_single
to pim_cmd_common.c from pim_cmd.c to make it common to
pimd and pim6d.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-06-12 21:17:54 -07:00
Donald Sharp
db28205528
Merge pull request #11385 from AbhishekNR/show_cli
pimd, pim6d: Moving reusable code to common api for show CLI's.
2022-06-12 08:06:01 -04:00
Donald Sharp
769cdf5654
Merge pull request #11387 from SaiGomathiN/pimshow
pimd, pim6d: Moving the reusable code to common api for PIM show CLIs
2022-06-12 08:00:01 -04:00
Sai Gomathi N
94c691ba40 pim6d: Moving the reusable code of pim_show_join cli
Moving the common lines of pim_show_join_vrf and pim_show_join_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 22:43:52 -07: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
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
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
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
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