Mobashshera Rasool
195427c8fd
pimd: SPT-bit is not set to false as per RFC section in one flow
...
1. As per RFC 4601 Sec 4.5.7:
* JoinDesired(S,G) -> False, set SPTbit to false.
2. Change the debug type.
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-01-11 05:23:41 +00:00
Donald Sharp
f467218fd6
Merge pull request #7751 from mobash-rasool/igmp-fixes
...
pimd: IGMP conformance 5.10 test case is failing
2021-01-09 17:40:31 -05:00
Donald Sharp
bdfc5f45bd
Merge pull request #7753 from mobash-rasool/pim-fixes
...
pimd: when node changes from non-DR to DR S,G entry not created
2021-01-09 17:36:08 -05:00
vdhingra
e7016ceb4c
pimd : Added the command to clear the pim bsr data.
...
This command has been added in the context of
PIM BSM functionality. This command will clear the
data structs having bsr information.
Co-authored-by: Sarita Patra <saritap@vmware.com>
Signed-off-by: vishaldhingra <vdhingra@vmware.com>
2021-01-08 04:45:49 -08:00
Mobashshera Rasool
d1b61cb92d
pimd: IGMP conformance 5.10 test case is failing
...
Test case 5.10 sends leave message to unicast address, the leave
packet is accepted and a query message is sent in response to this.
No validation for address is present in the function
Add check for addresses as per RFC. Leave messages are allowed only
sent to either ALL-ROUTERS (224.0.0.2) or group address.
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2020-12-24 06:39:12 +00:00
Mobashshera Rasool
9046b17006
pimd: when node changes from non-DR to DR S,G entry not created
...
1. When a node changes from non-DR to DR in the given topology,
the node was receiving both PIM Join as well as IGMP join.
Since it was already receiving PIM Join previously, ifchannel was
already present. Hence when it becomes DR, the IGMP source flag is not
set due to issue in the code. Hence it never creates S,G entry thinking
that it is not DR.
2. When pim join expires, the pim flag is not reset when ifchannel is not
deleted.
Issue: #7752
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2020-12-17 13:14:29 +00:00
Jafar Al-Gharaibeh
d1e82cfd18
Merge pull request #7739 from mobash-rasool/pim-fixes
...
pimd: correcting the definition for Mroute flag "R"
2020-12-15 16:14:32 -06:00
Patrick Ruddy
a119a429e4
Merge pull request #7637 from AnuradhaKaruppiah/evpn-pim-fixes
...
evpn-pim: cleanup and display fixes
2020-12-15 17:36:24 +00:00
Mobashshera Rasool
e9376c880a
pimd: correcting the definition for Mroute flag "R"
...
The flag "R" in below display description denotes the
SGRpt Pruned but the description shows something else
hence correcting the definition.
R2(config)# do show ip mroute
IP Multicast Routing Table
Flags: S- Sparse, C - Connected, P - Pruned
R - RP-bit set, F - Register flag
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2020-12-15 12:36:34 +00:00
Donatas Abraitis
3a6290bdd1
*: Replace s_addr check agains 0 with INADDR_ANY
...
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-12-14 21:03:38 +02:00
Donald Sharp
9a4e959bd3
Merge pull request #7601 from patrasar/pim_fix
...
Pim fix
2020-12-01 15:53:53 -05:00
Sarita Patra
851cb2e5de
pimd: mesh group not removed when configured for multiple groups
...
Issue:
Configure msdp mesh mg1 for 2 groups.
ip msdp mesh-group mg1 member 1.1.1.1
ip msdp mesh-group mg1 member 1.1.1.2
Remove mg1 for 1.1.1.1
no ip msdp mesh-group mg1 member 1.1.1.1
mg1 for 1.1.1.1 still present. This is fixed.
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-12-01 05:35:57 -08:00
Sarita Patra
e224558939
pimd: rp not removed when configured for multiple groups
...
Issue:
Configure RP.
ip pim rp 20.0.0.1 239.1.1.1/32
ip pim rp 20.0.0.1 239.1.1.2/32
Remove RP.
no ip pim rp 20.0.0.1 239.1.1.1/32
Rp is not removed. This is fixed now.
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-12-01 05:34:54 -08:00
Donald Sharp
91f20e5cd5
pimd: Remove pim_version.c it is never used
...
The pim_version.[c|h] files are never used and we are getting
warnings about PIM_VERSION changing pointer sizes from
newer versions of the compiler. I see no reason to keep this
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-12-01 07:57:45 -05:00
Donald Sharp
fc54da0966
Merge pull request #7404 from vishaldhingra/pim
...
pimd: (*,G) Prune processing doesn't remove SGRpt ifchannel
2020-12-01 07:48:54 -05:00
Anuradha Karuppiah
d149c75aa1
pimd: skip displaying pim config on the vxlan termination device ipmr-lo
...
pim is enabled internally/implicitly on the vxlan termination device
and displaying that can confuse the admin and tools (such as
frr-reload).
Ticket: CM-30180
Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
2020-11-30 12:50:33 -08:00
Mark Stapp
521c5b9de8
pimd: fix formatting in pim_cmd.c
...
Fix whitespace/indentation in pim_cmd.c
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-20 16:43:42 -05:00
Mark Stapp
5c90f56906
pimd: fix compilation errors in pim_cmd.c
...
Fix buffer sizes to eliminate compiliation warnings.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-20 15:45:32 -05:00
Mark Stapp
40de528b77
pimd: remove duplicate block from subdir.am
...
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-20 15:37:11 -05:00
Donald Sharp
2332790973
Merge pull request #7569 from patrasar/pim_coverity_fix
...
pimd: Fix SA issues found in Coverity Scan
2020-11-20 07:40:06 -05:00
Sarita Patra
e1d1e95123
pimd: Fix SA issues found in Coverity Scan
...
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-20 01:47:04 -08:00
Donald Sharp
cac886dd53
Merge pull request #6145 from patrasar/pim_nb_code_upstream
...
pimd: northbound backend code
2020-11-19 11:03:00 -05:00
Sarita Patra
1dac87c88d
pimd: fix indentation issues
...
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-18 23:20:26 -08:00
Mark Stapp
abed797ef5
Merge pull request #7556 from donaldsharp/memory_shenanigans
...
Memory shenanigans
2020-11-18 17:31:03 -05:00
Donald Sharp
f8ca1bb935
pimd: A buffer may be used uninited
...
If we screw up and don't have the right flags we'll print
out garbage. At the very least just print out nothing.
Signed-off-by: Donald Sharp <sharp@nvidia.com>
2020-11-18 11:42:06 -05:00
Mark Stapp
926bc58f78
Merge pull request #7478 from donaldsharp/buffer
...
Buffer
2020-11-18 08:30:47 -05:00
Quentin Young
68e0bf1aea
Merge pull request #7303 from mobash-rasool/pim-fixes
...
pimd: checksum must be validated before accepting igmpv2 leave packet
2020-11-17 11:41:33 -05:00
Mobashshera Rasool
9041c30ad1
pimd: checksum must be validated before accepting igmp packets
...
Issue: When an IGMPv2 leave packet is received, it did not validate
the checksum and hence the packet is accepted and group specific
query is sent out in response to this.
Due to this IGMP conformance test case 6.1 failed.
https://github.com/FRRouting/frr/issues/6868
Fix: Validate the checksum for all IGMP packets
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2020-11-17 13:34:12 +00:00
Donatas Abraitis
7c98d487b8
*: Replace typo (supress => suppress)
...
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-11-17 12:13:38 +02:00
Donald Sharp
7cfdb48554
*: Convert all usage of zclient_send_message to new enum
...
The `enum zclient_send_status` enum needs to be extended
throughout the code base to use the new states and
to fix up places where we tested against the return
value being non zero.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-11-15 15:04:52 -05:00
Sarita Patra
7003f63613
pimd: Northbound implementation for rp commands.
...
ip_pim_rp
ip_pim_rp_prefix_list
no_ip_pim_rp
no_ip_pim_rp_prefix_list
module: frr-pim-rp
augment /frr-routing:routing/frr-routing:control-plane-protocols/frr-routing:control-plane-protocol/frr-pim:pim/frr-pim:address-family:
+--rw rp
+--rw static-rp
+--rw rp-list* [rp-address]
+--rw rp-address ietf-inet-types:ip-address
+--rw (group-list-or-prefix-list)?
+--:(group-list)
| +--rw group-list* ip-multicast-group-address-prefix
+--:(prefix-list)
+--rw prefix-list? plist-ref
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:42:00 -08:00
Sarita Patra
0c949724d3
pimd: Northbound implementation for mlag, register-accept-list commands
...
pim_register_accept_list
ip_pim_mlag
no_ip_pim_mlag
Yang Model:
augment /frr-routing:routing/frr-routing:control-plane-protocols/frr-routing:control-plane-protocol:
+--rw pim
+--rw address-family* [address-family]
+--rw address-family identityref
+--rw mlag!
| +--rw peerlink-rif? frr-interface:interface-ref
| +--rw reg-address? ietf-inet-types:ip-address
| +--rw my-role? enumeration <MLAG_ROLE_NONE>
| +--rw peer-state? boolean <false>
+--rw register-accept-list? plist-ref
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:42:00 -08:00
Sarita Patra
cf740d2e72
pimd: Northbound implementation for msdp mesh group, msdp peer commands
...
ip_msdp_peer
no_ip_msdp_peer
ip_msdp_mesh_group_member
no_ip_msdp_mesh_group_member
ip_msdp_mesh_group_source
no_ip_msdp_mesh_group_source
no_ip_msdp_mesh_group
Yang Model:
augment /frr-routing:routing/frr-routing:control-plane-protocols/frr-routing:control-plane-protocol:
+--rw pim
+--rw address-family* [address-family]
+--rw address-family identityref
+--rw msdp-mesh-group!
| +--rw mesh-group-name? string
| +--rw member-ip* ietf-inet-types:ip-address
| +--rw source-ip? ietf-inet-types:ip-address
+--rw msdp-peer* [peer-ip]
| +--rw peer-ip ietf-inet-types:ip-address
| +--rw source-ip? ietf-inet-types:ip-address
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:42:00 -08:00
Sarita Patra
f206085e19
pimd: Northbound implementation for ssm prefix-list, ssmpingd command
...
ip_pim_ssm_prefix_list
no_ip_pim_ssm_prefix_list
no_ip_pim_ssm_prefix_list_name
no_ip_ssmpingd
ip_ssmpingd
Yang Model:
augment /frr-routing:routing/frr-routing:control-plane-protocols/frr-routing:control-plane-protocol:
+--rw pim
+--rw address-family* [address-family]
+--rw address-family identityref
+--rw ssm-prefix-list? plist-ref
+--rw ssm-pingd-source-ip* ietf-inet-types:ip-address
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:42:00 -08:00
Sarita Patra
db9cca95be
pimd: Northbound implementation for send-v6-sec and spt switchover cmds
...
ip_pim_v6_secondary
no_ip_pim_v6_secondary
ip_pim_spt_switchover_infinity
ip_pim_spt_switchover_infinity_plist
no_ip_pim_spt_switchover_infinity
no_ip_pim_spt_switchover_infinity_plist
Yang Model:
augment /frr-routing:routing/frr-routing:control-plane-protocols/frr-routing:control-plane-protocol:
+--rw pim
+--rw address-family* [address-family]
+--rw address-family identityref
+--rw send-v6-secondary? boolean <true>
+--rw spt-switchover
| +--rw spt-action? enumeration <PIM_SPT_IMMEDIATE>
| +--rw spt-infinity-prefix-list? plist-ref
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
49c6b2aac8
pimd: Northbound implementation for ecmp, rebalance, KA timer.
...
ip_pim_ecmp
no_ip_pim_ecmp
ip_pim_ecmp_rebalance
no_ip_pim_ecmp_rebalance
ip_pim_rp_keep_alive
no_ip_pim_rp_keep_alive
ip_pim_keep_alive
no_ip_pim_keep_alive
Yang Model:
augment /frr-routing:routing/frr-routing:control-plane-protocols/frr-routing:control-plane-protocol:
+--rw pim
+--rw ecmp? boolean <false>
+--rw ecmp-rebalance? boolean <false>
+--rw keep-alive-timer? uint16 <210>
+--rw rp-keep-alive-timer? uint16 <210>
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
d27b7884fb
pimd: Northbound implementation for pim router commands.
...
ip_pim_joinprune_time
no_ip_pim_joinprune_time
ip_pim_register_suppress
no_ip_pim_register_suppress
ip_pim_packets
no_ip_pim_packets
Yang Model:
module: frr-pim
+--rw pim
+--rw packets? uint8 <3>
+--rw join-prune-interval? uint16 <60>
+--rw register-suppress-time? uint16 <60>
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
675c8fdef0
pimd: Northbound implementation for mroute, use-source, boundary_oil cmd
...
interface_ip_pim_boundary_oil
interface_no_ip_pim_boundary_oil
interface_ip_mroute
interface_no_ip_mroute
interface_pim_use_source
interface_no_pim_use_source
Yang Model:
augment /frr-interface:lib/frr-interface:interface:
+--rw pim!
+--rw address-family* [address-family]
+--rw address-family identityref
+--rw use-source? ietf-inet-types:ip-address
+--rw multicast-boundary-oil? plist-ref
+--rw mroute* [source-addr group-addr]
+--rw oif? frr-interface:interface-ref
+--rw source-addr ietf-inet-types:ip-address
+--rw group-addr ietf-routing-types:ip-multicast-group-address
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
b73779d3d0
pimd: Northbound implementation for pim bfd commands.
...
ip_pim_bfd
ip_pim_bfd_param
no_ip_pim_bfd
no_ip_pim_bfd_param
Yang Model:
augment /frr-interface:lib/frr-interface:interface:
+--rw pim!
+--rw bfd!
| +--rw min-rx-interval? uint16 <300>
| +--rw min-tx-interval? uint16 <300>
| +--rw detect_mult? uint8 <3>
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
e3eb2bab27
pimd: Northbound implementation for pim commands.
...
interface_ip_pim_drprio
interface_no_ip_pim_drprio
interface_ip_pim_activeactive
interface_ip_pim_hello
interface_no_ip_pim_hello
ip_pim_bsm
no_ip_pim_bsm
ip_pim_ucast_bsm
no_ip_pim_ucast_bsm
Yang Model:
augment /frr-interface:lib/frr-interface:interface:
+--rw pim!
+--rw hello-interval? uint8 <30>
+--rw hello-holdtime? uint8
+--rw bsm? boolean <false>
+--rw unicast-bsm? boolean <false>
+--rw active-active? boolean <false>
+--rw dr-priority? uint32 <1>
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
50d194f8c8
pimd: Northbound implementation for pim commands.
...
interface_ip_pim_ssm
interface_ip_pim_sm
interface_ip_pim
interface_no_ip_pim_ssm
interface_no_ip_pim_sm
interface_no_ip_pim
Yang Model:
augment /frr-interface:lib/frr-interface:interface:
+--rw pim!
+--rw pim-enable? boolean <false>
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
b0475d5a52
pimd: Northbound implementation for igmp commands.
...
interface_ip_igmp
interface_no_ip_igmp
interface_ip_igmp_join
interface_no_ip_igmp_join
interface_ip_igmp_query_interval
interface_no_ip_igmp_query_interval
interface_ip_igmp_version
interface_no_ip_igmp_version
interface_ip_igmp_query_max_response_time
interface_no_ip_igmp_query_max_response_time
interface_ip_igmp_query_max_response_time_dsec
interface_no_ip_igmp_query_max_response_time_dsec
interface_ip_igmp_last_member_query_count
interface_no_ip_igmp_last_member_query_count
interface_ip_igmp_last_member_query_interval
interface_no_ip_igmp_last_member_query_interval
IGMP yang tree:
module: frr-igmp
augment /frr-interface:lib/frr-interface:interface:
+--rw igmp!
+--rw igmp-enable? boolean <false>
+--rw version? uint8
+--rw query-interval? uint16 <125>
+--rw query-max-response-time? uint8 <100>
+--rw last-member-query-interval? uint8 <10>
+--rw robustness-variable? uint8 <2>
+--rw address-family* [address-family]
+--rw address-family identityref
+--rw static-group* [group-addr source-addr]
+--rw group-addr ietf-routing-types:ip-multicast-group-address
+--rw source-addr ietf-inet-types:ip-address
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:59 -08:00
Sarita Patra
299c66b3b6
pimd: Northbound implementations for frr-pim, frr-igmp, frr-pim-rp
...
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-06 03:41:51 -08:00
vdhingra
99f9518b4a
pimd: (*,G) Prune processing doesn't remove SGRpt ifchannel
...
problem :
=========
When (*,G) prune received where we have SGRpt state,
ifchannel goes to NO_INFO state and doesn't get removed.
Root cause :
============
During the processing of (*,G) prune, we are not removing the
ifchannel on PruneTmp or PrunePendingTmp state.
Fix :
=====
In that scenario, stop joinExpiry timer and delete the ifchannel.
issue #7347
Co-authored-by: Saravanan K <saravanank@vmware.com>
Signed-off-by: vishaldhingra <vdhingra@vmware.com>
2020-11-02 01:06:59 -08:00
Donald Sharp
02c671af40
*: Correct spelling stuff
...
Pretty obvious. WE R SPELL GOOD
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-10-29 16:16:00 -04:00
Quentin Young
d878460c8c
Merge pull request #7376 from mjstapp/fix_pim_align
...
pimd: Fix pim address-of-unaligned error and use of zlog_warn
2020-10-26 16:24:00 -04:00
Mark Stapp
5047884528
*: unify thread/event cancel macros
...
Replace all lib/thread cancel macros, use thread_cancel()
everywhere. Only the THREAD_OFF macro and thread_cancel() api are
supported. Also adjust thread_cancel_async() to NULL caller's pointer (if
present).
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-23 12:16:52 -04:00
Mark Stapp
e7be2bd719
pimd: replace some zlog_warn with zlog_debug
...
A pim module had a number of warnings being used instead of
debugs - use debugs.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-23 08:35:57 -04:00
Mark Stapp
e9f934853c
pimd: avoid possible unaligned pointer
...
Use inet_ntop instead of %pI4 in one place - clang doesn't like
the struct's address being taken that way.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-23 08:34:41 -04:00
Mark Stapp
ee2bbf7ce2
pimd: replace inet_ntoa
...
Replace all use of inet_ntoa, using %pI4 or inet_ntoa instead
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-22 10:13:56 -04:00