summaryrefslogtreecommitdiff
path: root/pimd/pim_cmd.c
AgeCommit message (Collapse)Author
2021-05-20Merge pull request #8616 from donaldsharp/pim_orderingMartin Winter
pimd: There exists a path where on vrf bringup we do not create the p…
2021-05-13lib: adapt to version 2 of libyangChristian Hopps
Compile with v2.0.0 tag of `libyang2` branch of: https://github.com/CESNET/libyang staticd init load time of 10k routes now 6s vs ly1 time of 150s Signed-off-by: Christian Hopps <chopps@labn.net>
2021-05-12pimd: Remove pim->vrf_id and use pim->vrf->vrf_idDonald Sharp
VRF creation can happen from either cli or from knowledged about the vrf learned from zebra. In the case where we learn about the vrf from the cli, the vrf id is UNKNOWN. Upon actual creation of the vrf, lib/vrf.c touches up the vrf_id and calls pim_vrf_enable to turn it on properly. At this point in time we have a pim->vrf_id of UNKNOWN and the vrf->vrf_id of the right value. There is no point in duplicating this data. So just remove all pim->vrf_id and use the vrf->vrf_id instead since we keep a copy of the pim->vrf pointer. This will remove some crashes where we expect the pim->vrf_id to be usable and it's not. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-05-09Merge pull request #8631 from dslicenc/pimd-timer-fixDavid Lamparter
2021-05-05pimd: stop displaying global parameters in each vrfDon Slice
Problem reported that when certain pim commands were entered, they showed up duplicated in the configuration both under default instance and every vrf (whether pim was used there or not.) This was because these particular parameters are global only and the function doing the display would repeat for each vrf. This fix only displays those in the default case (and removes them from the help for entering under a vrf.) Signed-off-by: Don Slice <dslice@nvidia.com>
2021-05-04Merge pull request #8614 from opensourcerouting/msdp-fixesDonald Sharp
pimd: MSDP trivial fixes
2021-05-03pimd: cleanup & convert bsm_rpinfo to TS listDavid Lamparter
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-05-03pimd: cleanup & convert bsm_info to TS listDavid Lamparter
Just some cleanup before I touch this code; switching to typesafe list macros & putting the data directly inline. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-05-03pimd: reduce code duplicationRafael Zalamena
Standardize a function to get the current VRF node name. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-04-23pimd: support BFD profiles configurationRafael Zalamena
Allow users to pre configure BFD sessions with a profile. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-04-23pimd: rework BFD integrationRafael Zalamena
Rewrite the BFD integration code to use the new library. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-25pimd: in 'no ip pim hello' add hold time as optional when hello interval givenMobashshera Rasool
Issue: User is allowed to configure only hello without hold timer but when undo config, the hold timer is mandatory as shown below: FRR-4(config-if)# ip pim hello 10 <cr> (1-180) Time in seconds for Hold Interval FRR-4(config-if)# ip pim hello 10 FRR-4(config-if)# no ip pim hello 10 (1-180) Time in seconds for Hold Interval FRR-4(config-if)# no ip pim hello 10 % Command incomplete: no ip pim hello 20 Fix: Making the hold timer as optional when undo config. Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-03-25pimd: Validation that hello should be less than hold time config.Mobashshera Rasool
Also included display of hold time in CLI 'show ip pim int <intf>' cmd and json commands. Issue: PIM neighbor not coming up if hold time is less than hello timer since hello is sent every 4 sec and hold is 1 sec, because of this nbr is flapping Fix: Do not allow configuration of hold timer less than hello timer Also reset the value of hold timer to 3.5 times to hello whenever only hello is modified so that the relationship holds good. Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-03-02pimd: show ip mroute column realignWesley Coakley
Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
2021-02-15Merge pull request #8044 from SaiGomathiN/nsgDonald Sharp
pimd: json support added
2021-02-09pimd: json support addednsaigomathi
Modify code to add JSON format output in show command. "show ip igmp [vrf NAME] join" and "show ip igmp vrf all join" with proper formatting Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
2021-02-02*: fix all backetsIgor Ryzhov
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
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-15Merge pull request #7739 from mobash-rasool/pim-fixesJafar Al-Gharaibeh
pimd: correcting the definition for Mroute flag "R"
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-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-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-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-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-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-10-22pimd: replace inet_ntoaMark Stapp
Replace all use of inet_ntoa, using %pI4 or inet_ntoa instead Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-22:* Convert prefix2str to %pFXDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-10-09Merge pull request #7222 from idryzhov/fix-debugRenato Westphal
fix debug commands node inconsistencies
2020-10-06pimd: MSDP SA forwardingAdriano Marto Reis
* If the MSDP peer receives the SA from a non-RPF peer towards the originating RP, it will drop the message. * SA messages are forwarded away from the RP address only. * SA messages are not forwarded within the mesh group. * Preventing the MSDP connection from being dropped due to RPF check failure (RFC3618, section 13 "MSDP Error Handling") Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com> Signed-off-by: Adriano Reis <areis@barrukka.local>
2020-10-02*: move "show debugging ..." commands to enable nodeIgor Ryzhov
Use the same node for "show debugging" commands in all daemons. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-07-18pimd: Prevent Null string %s issuesDonald Sharp
There are couple spots where group may be NULL and when we output strings associated with it we should ensure we are not doing something stupid. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-07-14*: un-split strings across linesDavid Lamparter
Remove mid-string line breaks, cf. workflow doc: .. [#tool_style_conflicts] For example, lines over 80 characters are allowed for text strings to make it possible to search the code for them: please see `Linux kernel style (breaking long lines and strings) <https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings>`_ and `Issue #1794 <https://github.com/FRRouting/frr/issues/1794>`_. Scripted commit, idempotent to running: ``` python3 tools/stringmangle.py --unwrap `git ls-files | egrep '\.[ch]$'` ``` Signed-off-by: David Lamparter <equinox@diac24.net>
2020-07-06Merge pull request #6114 from rgirada/frr-staticQuentin Young
pimd: Providing json support for few pim commands
2020-05-30pimd: Modifying "show ip mroute json" o/p.rgirada
Description: "show ip mroute" displays only installed(kernel) mroutes, where as "show ip mroute json" diplays both installed and not installed mroutes in the o/p.To make this consistant, diplaying only valid routes in json o/p. Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2020-05-30pimd: Providing json support for few pim commands.rgirada
Description: Added json support for the following PIM commands. 1. show ip mroute [vrf NAME] count [json] 2. show ip mroute vrf all count [json] 3. show ip mroute [vrf NAME] summary [json] 4. show ip mroute vrf all summary [json] Signed-off-by: Rajesh Girada <rgirada@vmware.com>