summaryrefslogtreecommitdiff
path: root/pimd
AgeCommit message (Collapse)Author
2021-01-14pimd: fix multiple memory leakSarita Patra
Memleak: pim_jp_agg_single_upstream_send(), static variable are not released. Signed-off-by: Sarita Patra <saritap@vmware.com>
2021-01-11pimd: SPT-bit is not set to false as per RFC section in one flowMobashshera Rasool
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-09Merge pull request #7751 from mobash-rasool/igmp-fixesDonald Sharp
pimd: IGMP conformance 5.10 test case is failing
2021-01-09Merge pull request #7753 from mobash-rasool/pim-fixesDonald Sharp
pimd: when node changes from non-DR to DR S,G entry not created
2021-01-08pimd : Added the command to clear the pim bsr data.vdhingra
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>
2020-12-24pimd: IGMP conformance 5.10 test case is failingMobashshera Rasool
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-17pimd: when node changes from non-DR to DR S,G entry not createdMobashshera Rasool
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-15Merge pull request #7739 from mobash-rasool/pim-fixesJafar Al-Gharaibeh
pimd: correcting the definition for Mroute flag "R"
2020-12-15Merge pull request #7637 from AnuradhaKaruppiah/evpn-pim-fixesPatrick Ruddy
evpn-pim: cleanup and display fixes
2020-12-15pimd: correcting the definition for Mroute flag "R"Mobashshera Rasool
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-14*: Replace s_addr check agains 0 with INADDR_ANYDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-12-01Merge pull request #7601 from patrasar/pim_fixDonald Sharp
Pim fix
2020-12-01pimd: mesh group not removed when configured for multiple groupsSarita Patra
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-01pimd: rp not removed when configured for multiple groupsSarita Patra
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-01pimd: Remove pim_version.c it is never usedDonald Sharp
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-01Merge pull request #7404 from vishaldhingra/pimDonald Sharp
pimd: (*,G) Prune processing doesn't remove SGRpt ifchannel
2020-11-30pimd: skip displaying pim config on the vxlan termination device ipmr-loAnuradha Karuppiah
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-20pimd: fix formatting in pim_cmd.cMark Stapp
Fix whitespace/indentation in pim_cmd.c Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-20pimd: fix compilation errors in pim_cmd.cMark Stapp
Fix buffer sizes to eliminate compiliation warnings. Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-20pimd: remove duplicate block from subdir.amMark Stapp
Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-20Merge pull request #7569 from patrasar/pim_coverity_fixDonald Sharp
pimd: Fix SA issues found in Coverity Scan
2020-11-20pimd: Fix SA issues found in Coverity ScanSarita Patra
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-19Merge pull request #6145 from patrasar/pim_nb_code_upstreamDonald Sharp
pimd: northbound backend code
2020-11-18pimd: fix indentation issuesSarita Patra
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-18Merge pull request #7556 from donaldsharp/memory_shenanigansMark Stapp
Memory shenanigans
2020-11-18pimd: A buffer may be used uninitedDonald Sharp
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-18Merge pull request #7478 from donaldsharp/bufferMark Stapp
Buffer
2020-11-17Merge pull request #7303 from mobash-rasool/pim-fixesQuentin Young
pimd: checksum must be validated before accepting igmpv2 leave packet
2020-11-17pimd: checksum must be validated before accepting igmp packetsMobashshera Rasool
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*: Replace typo (supress => suppress)Donatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-11-15*: Convert all usage of zclient_send_message to new enumDonald Sharp
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-06pimd: Northbound implementation for rp commands.Sarita Patra
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-06pimd: Northbound implementation for mlag, register-accept-list commandsSarita Patra
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-06pimd: Northbound implementation for msdp mesh group, msdp peer commandsSarita Patra
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-06pimd: Northbound implementation for ssm prefix-list, ssmpingd commandSarita Patra
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-06pimd: Northbound implementation for send-v6-sec and spt switchover cmdsSarita Patra
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-06pimd: Northbound implementation for ecmp, rebalance, KA timer.Sarita Patra
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-06pimd: Northbound implementation for pim router commands.Sarita Patra
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-06pimd: Northbound implementation for mroute, use-source, boundary_oil cmdSarita Patra
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-06pimd: Northbound implementation for pim bfd commands.Sarita Patra
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-06pimd: Northbound implementation for pim commands.Sarita Patra
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-06pimd: Northbound implementation for pim commands.Sarita Patra
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-06pimd: Northbound implementation for igmp commands.Sarita Patra
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-06pimd: Northbound implementations for frr-pim, frr-igmp, frr-pim-rpSarita Patra
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-11-02pimd: (*,G) Prune processing doesn't remove SGRpt ifchannelvdhingra
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-10-29*: Correct spelling stuffDonald Sharp
Pretty obvious. WE R SPELL GOOD Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-10-26Merge pull request #7376 from mjstapp/fix_pim_alignQuentin Young
pimd: Fix pim address-of-unaligned error and use of zlog_warn
2020-10-23*: unify thread/event cancel macrosMark Stapp
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-23pimd: replace some zlog_warn with zlog_debugMark Stapp
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-23pimd: avoid possible unaligned pointerMark Stapp
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>