summaryrefslogtreecommitdiffstats
path: root/pimd/pim_vty.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* pim6d: IPv6-adjust iface primary/DR addrsDavid Lamparter2022-02-141-7/+3
| | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* Merge pull request #10292 from opensourcerouting/pim6-addr-auxDonald Sharp2022-02-081-2/+1
|\ | | | | pimd: start tackling IPv6 address operations
| * pimd: remove PIM_INADDR_IS[NOT]_ANY macrosDavid Lamparter2022-01-171-2/+1
| | | | | | | | | | | | | | These really don't serve much of a purpose, especially with how inconsistently they're used. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | *: do not print vrf name for interface config when using vrf-liteIgor Ryzhov2022-01-241-6/+3
| | | | | | | | | | | | | | VRF name should not be printed in the config since 574445ec. The update was done for NB config output but I missed it for regular vty output. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | Merge pull request #10398 from patrasar/pim_debug_fixQuentin Young2022-01-211-0/+5
|\ \
| * | pimd: debug pim fixessarita patra2022-01-211-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Enable debug commands "debug pim packetdump send" and "debug pim packetdump receive" in config mode. Display "debug pim nht rp" in show running config. Signed-off-by: sarita patra <saritap@vmware.com>
* | | pimd: remove redundant header includeMobashshera Rasool2022-01-181-1/+0
| |/ |/| | | | | | | | | Removing redundant header inclusion of pim_cmd.h Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
* | pimd: Modifying members of pim_interface to accommodate IPv6 changesSai Gomathi2022-01-111-15/+15
|/ | | | | | | | | | | Modifying the members of pim_interface which are to be used for both IPv4 and IPv6 to common names(for both MLD and IGMP). Issues: #10023 Co-authored-by: Mobashshera Rasool <mrasool@vmware.com> Co-authored-by: Sarita Patra <saritap@vmware.com> Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
* Merge pull request #10215 from FRRouting/revert-10164-name_changeStephen Worley2021-12-151-14/+15
|\ | | | | Revert "pimd: Modifying members of pim_interface to accommodate IPv6 changes"
| * Revert "pimd: Modifying members of pim_interface to accommodate IPv6 changes"David Lamparter2021-12-141-14/+15
| |
* | pimd: Modifying name of struct igmp_join to struct gm_join to accomodate ↵Mobashshera Rasool2021-12-031-1/+1
|/ | | | | | | | | | | | IPv6 changes. Fix: ==== Modifying name of struct igmp_join to struct gm_join, which is to be used by both IPv4 and IPv6(for both MLD and IGMP). Co-authored-by: Abhishek N R abnr@vmware.com Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
* pimd: Modifying members of pim_interface to accommodate IPv6 changesSai Gomathi2021-12-031-15/+14
| | | | | | | | | | Modifying the members of pim_interface which are to be used for both IPv4 and IPv6 to common names(for both MLD and IGMP). Issue: #10023 Co-authored-by: Mobashshera Rasool <mrasool@vmware.com> Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
* *: explicitly print "exit" at the end of every node configIgor Ryzhov2021-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a possibility that the same line can be matched as a command in some node and its parent node. In this case, when reading the config, this line is always executed as a command of the child node. For example, with the following config: ``` router ospf network 193.168.0.0/16 area 0 ! mpls ldp discovery hello interval 111 ! ``` Line `mpls ldp` is processed as command `mpls ldp-sync` inside the `router ospf` node. This leads to a complete loss of `mpls ldp` node configuration. To eliminate this issue and all possible similar issues, let's print an explicit "exit" at the end of every node config. This commit also changes indentation for a couple of existing exit commands so that all existing commands are on the same level as their corresponding node-entering commands. Fixes #9206. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* pimd: support MSDP global timers configurationRafael Zalamena2021-07-011-0/+11
| | | | | | | | | | Users can now configure: * Hold time * Keep alive * Connection retry Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* pimd: Remove pim->vrf_id and use pim->vrf->vrf_idDonald Sharp2021-05-121-2/+2
| | | | | | | | | | | | | | | | | | | | 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>
* Merge pull request #8631 from dslicenc/pimd-timer-fixDavid Lamparter2021-05-091-15/+18
|\
| * pimd: stop displaying global parameters in each vrfDon Slice2021-05-051-15/+18
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | pimd: show MSDP configurationRafael Zalamena2021-05-031-0/+1
|/ | | | | | | Display the MSDP peer configuration in `show running-config` so it can be saved on configuration write. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* pimd: skip displaying pim config on the vxlan termination device ipmr-loAnuradha Karuppiah2020-11-301-0/+7
| | | | | | | | | | 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>
* Merge pull request #6262 from qlyoung/remove-sprintfDavid Lamparter2020-04-231-2/+2
|\
| * *: sprintf -> snprintfQuentin Young2020-04-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Replace sprintf with snprintf where straightforward to do so. - sprintf's into local scope buffers of known size are replaced with the equivalent snprintf call - snprintf's into local scope buffers of known size that use the buffer size expression now use sizeof(buffer) - sprintf(buf + strlen(buf), ...) replaced with snprintf() into temp buffer followed by strlcat Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* | pimd: Implement watermark warning for igmp group count and add igmp group countsaravanank2020-04-091-0/+7
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CLI will allow user to configure a igmp group limit which will generate a watermark warning when reached. Though watermark may not make sense without setting a limit, this implementation shall serve as a base to implementing limit in future and helps tracking a particular scale currently. Testing: ======= ip igmp watermark-warn <10-60000> on reaching the configured number of group, pim will issue warning 2019/09/18 18:30:55 PIM: SCALE ALERT: igmp group count reached watermak limit: 210(vrf: default) Also added group count and watermark limit configured on cli - show ip igmp groups [json] <snip> Sw3# sh ip igmp groups json { "Total Groups":221, <===== "Watermark limit":210, <========= "ens224":{ "name":"ens224", "state":"up", "address":"40.0.0.1", "index":6, "flagMulticast":true, "flagBroadcast":true, "lanDelayEnabled":true, "groups":[ { "source":"40.0.0.1", "group":"225.1.1.122", "timer":"00:03:56", "sourcesCount":1, "version":2, "uptime":"00:00:24" <\snip> <snip> Sw3(config)# do sh ip igmp group Total IGMP groups: 221 Watermark warn limit(Set) : 210 Interface Address Group Mode Timer Srcs V Uptime ens224 40.0.0.1 225.1.1.122 ---- 00:04:06 1 2 00:13:22 ens224 40.0.0.1 225.1.1.144 ---- 00:04:02 1 2 00:13:22 ens224 40.0.0.1 225.1.1.57 ---- 00:04:01 1 2 00:13:22 ens224 40.0.0.1 225.1.1.210 ---- 00:04:06 1 2 00:13:22 <\snip> Signed-off-by: Saravanan K <saravanank@vmware.com>
* Merge pull request #5849 from donaldsharp/pim_register_prefix_listRuss White2020-03-171-0/+5
|\ | | | | Pim register prefix list
| * pimd: Add `ip pim register-accept-list PLIST` commandDonald Sharp2020-03-061-0/+5
| | | | | | | | | | | | | | | | | | When pim receives a register packet, we will apply the received source to the prefix list. If accepted normal processing continues. If denied we will send a register stop message to the source. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Add accidently missed code during upstreaming processDonald Sharp2020-03-061-0/+5
|/ | | | | | | | | | There was some code missed during the upstreaming process due to code squash. Identify and put into a commit to keep code consistent and correct. Signed-off-by: Satheesh Kumar K <sathk@cumulusnetworks.com> Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com> Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pim: DF election for tunnel termination mroutes in an anycast-VTEP setupAnuradha Karuppiah2020-02-141-2/+0
| | | | | | | | | | | | | | | | | | | | | | | 1. Upstream entries associated with tunnel termination mroutes are synced to the MLAG peer via the local MLAG daemon. 2. These entries are installed in the peer switch (via an upstream ref flag). 3. DF (Designated Forwarder) election is run per-upstream entry by both the MLAG switches - a. The switch with the lowest RPF cost is the DF winner b. If both switches have the same RPF cost the MLAG role is used as a tie breaker with the MLAG primary becoming the DF winner. 4. The DF winner terminates the multicast traffic by adding the tunnel termination device to the OIL. The non-DF suppresses the termination device from the OIL. Note: Before the PIM-MLAG interface was available hidden config was used to test the EVPN-PIM functionality with MLAG. I have removed the code to persist that config to avoid confusion. The hidden commands are still available. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
* pimd: Add command to join any-source multicast.Liam McBirnie2019-12-121-7/+13
| | | | | | | | | Allow 'ip igmp join' to join group for any source if no source is specified. Disallow joining source "0.0.0.0" as it is used to define an any-source multicast group. Signed-off-by: Liam McBirnie <liam.mcbirnie@boeing.com>
* pimd: sh config is showing detail debug, though not configuredSatheesh Kumar K2019-08-271-2/+2
| | | | | | | | | | | | | | Original Idea is to display normal & detailed debugs when detailed debug alone is configured. because of this "sh debugs" are showing wrong Information, because same macro is used to disply the configured debugs. that means even if Normal debug is configured, detailed macro returns TRUE. To avoid this ambiguity check whetehr detailed debug is configured or not during dumping configured debugs. In all other places using old macro. Signed-off-by: Satheesh Kumar K <sathk@cumulusnetworks.com>
* pimd: Remove output of `debug igmp trace detail` from show commandsDonald Sharp2019-06-201-4/+0
| | | | | | | | | | | | There has never been a `debug igmp trace detail` but we have had code to display this when we had the appropriate flags set. Since we never can accept this, let's remove this. This showed up because of commit:0ab16492d2d9fcc6cba7e001227deed6765ed261 where we re-arranged some debugs to combine them being turned on. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #4369 from patrasar/lmqc_lmqtDonald Sharp2019-05-311-0/+18
|\ | | | | pimd: new cli to configure last-member-query-count & last-member-quer…
| * pimd: new cli to configure last-member-query-count & last-member-query-intervalSarita Patra2019-05-301-0/+18
| | | | | | | | | | | | | | | | | | Introduce new cli commands ip igmp last-member-query-count <1-7> ip igmp last-member-query-interval <1-255> deciseconds. Display the config in show running config and show ip igmp interface Signed-off-by: Sarita Patra <saritap@vmware.com>
* | pimd: interface commands to enable/disable bsm processingsaravanank2019-05-151-0/+9
|/ | | | | | | | | | | | | (intf)ip pim bsm - to enable bsm processing on the interface (intf)no ip pim bsm - to disable bsm processing on the interface (intf)ip pim unicast-bsm - to enable ucast bsm processing on the interface (intf)no ip pim unicast-bsm - to disable ucast bsm processing on the interface Note: bsm processing and ucast bsm processing is enabled by default on a pim interface. The CLI is implemented as a security feature as recommended by RFC 5059 Signed-off-by: Saravanan K <saravanank@vmware.com>
* pimd: hidden command to set MLAG parametersAnuradha Karuppiah2019-04-201-0/+3
| | | | | | | | | | | | The MLAG component on the switch is expected to provide some properties (such as peerlink-rif) to bootstrap the anycast-VTEP functionality. The final interface for this is being defined as a part of the pim-mlag functionality. This commit provides a hidden command to test the anycast-VTEP functionality independent of the MLAG component. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
* pimd: cli changes for pim-debug-vxlanAnuradha Karuppiah2019-04-201-0/+5
| | | | | | | | | | | Sample: root@TORC12:~# vtysh -c "show run" |grep "debug pim vxlan" debug pim vxlan root@TORC12:~# vtysh -c "show debug" |grep "pim vxlan" debug pim vxlan root@TORC12:~# Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
* pimd: Add hidden 'ip pim active-active` commandDonald Sharp2019-01-311-0/+3
| | | | | | | | Add a command to track if an interface should be in active-active mode or not. This command is hidden at this time because it is not finished fully. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Remove pim_msdp_config_write as it was never usedDonald Sharp2019-01-041-1/+1
| | | | | | | This function was never used, additionally rename the _helper function to this name. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Move packet_process variable to pim_routerDonald Sharp2019-01-041-2/+2
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Move register_suppress_time into struct pim routerDonald Sharp2019-01-041-2/+2
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Convert qpim_t_periodic into the `struct pim_router` structureDonald Sharp2019-01-041-2/+2
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: create a new command "ip pim" configuring pim smroot2018-09-111-1/+1
| | | | | | | | | | A new command "ip pim" is created to configure pim sm on an interface, which replaces the existing commands "ip pim sm" and "ip pim ssm" and make "ip pim sm" and "ip pim ssm" as hidden commands. The command "ip multicast-routing" is removed since it is already enabled on FRR by default. Signed-off-by: Sarita Patra saritap@vmware.com
* lib, vtysh: fix inconsistent interface commands in vtyshRenato Westphal2018-08-131-0/+5
| | | | | | | | | | | | | | | | | The definition of the interface commands in vtysh.c were outdated. Currently, all daemons that call if_cmd_init() will have the "no interface IFNAME" command and the "[no] description" commands as well, so there's no need to define exceptions for these commands anymore. To fix this, make extract.pl parse the if.c file so that vtysh can get the interface commands from there automatically. Only the "interface IFNAME [vrf NAME]" must be kept in vtysh.c because it changes the vty node and thus needs special treatment. Finally, make pimd and pbrd display interface descriptions on "sh run" when they are configured. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* pimd: Modify order of command output for vty outputDonald Sharp2018-08-021-9/+9
| | | | | | | | | If `ip igmp query-max-response-time` is set move it to display first as that this command has order dependencies on `ip igmp query-interval`. Ticket: CM-21598 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Fix ecmp_enable and ecmp_rebalance_enableDonald Sharp2018-06-071-2/+2
| | | | | | | | | | | These commands were being accepted in all vrf's and affecting all vrf's behavior globally, since they were global variables. Modify the code to make these two commands work on a per-vrf basis. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Multicast traceroute client and routerMladen Sablic2018-02-191-0/+5
| | | | | | | | This commit is the implementation of weak multicast traceroute. It consists of IGMP module dealing with mtrace type IGMP messages and client program mtrace/mtracebis for initiating mtrace queries. Signed-off-by: Mladen Sablic <mladen.sablic@gmail.com>
* lib, pimd: Remove PIM_NODE as it is not neededDonald Sharp2018-01-301-5/+0
| | | | | | | | The PIM_NODE command is only being used to display default vrf configuration. Move this into the vrf display and remove PIM_NODE. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* *: use the FOR_ALL_INTERFACES abstraction from babeldRenato Westphal2017-10-101-1/+1
| | | | | | | | | | This improves code readability and also future-proofs our codebase against new changes in the data structure used to store interfaces. The FOR_ALL_INTERFACES_ADDRESSES macro was also moved to lib/ but for now only babeld is using it. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* *: use rb-trees to store interfaces instead of sorted linked-listsRenato Westphal2017-10-101-3/+1
| | | | | | | | | | | This is an important optimization for users running FRR on systems with a large number of interfaces (e.g. thousands of tunnels). Red-black trees scale much better than sorted linked-lists and also store the elements in an ordered way (contrary to hash tables). This is a big patch but the interesting bits are all in lib/if.[ch]. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* pimd: Fix multicast boundary commandDonald Sharp2017-10-051-1/+1
| | | | | | | 1) Fix missing newlines 2) Write the correct cli out. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: add support for boundariesQuentin Young2017-09-261-0/+9
| | | | | | | | Adds the ability to filter PIM Joins & IGMP reports on an interface. Enabling a multicast boundary on an interface for a particular group will prevent the interface from appearing in the group's OIL. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* *: use clang's 'ForEachMacros' format style optionRenato Westphal2017-09-151-2/+1
| | | | | | | | | | | | | This fixes the broken indentation of several foreach loops throughout the code. From clang's documentation[1]: ForEachMacros: A vector of macros that should be interpreted as foreach loops instead of as function calls. [1] http://clang.llvm.org/docs/ClangFormatStyleOptions.html Signed-off-by: Renato Westphal <renato@opensourcerouting.org>