summaryrefslogtreecommitdiff
path: root/pimd/pim_cmd.c
AgeCommit message (Collapse)Author
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>
2020-05-26Merge pull request #5881 from patrasar/2386420Donald Sharp
pimd: add show ip multicast count [json] command
2020-05-05pimd: add show ip multicast count [json] commandSarita Patra
Added a new show command "show ip multicast", display the multicast data packet in and out on interface level. Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-04-28pimd: Add a needed space for formattingDonald Sharp
Display a space in the output. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-04-23Merge pull request #6262 from qlyoung/remove-sprintfDavid Lamparter
2020-04-21Merge pull request #6126 from sarav511/watermarkDonald Sharp
pimd: Implement watermark warning for igmp group count and add igmp group count
2020-04-21pimd, lib: suppress compiler warnings on snprintfQuentin Young
truncation warnings on old compilers Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-20*: sprintf -> snprintfQuentin Young
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>
2020-04-16*: move CLI node names to cmd_node->nameDavid Lamparter
And again for the name. Why on earth would we centralize this, just so people can forget to update it? Signed-off-by: David Lamparter <equinox@diac24.net>
2020-04-16*: move CLI parent data to cmd_node->parent_nodeDavid Lamparter
Same as before, instead of shoving this into a big central list we can just put the parent node in cmd_node. Signed-off-by: David Lamparter <equinox@diac24.net>
2020-04-16*: remove second parameter on install_node()David Lamparter
There is really no reason to not put this in the cmd_node. And while we're add it, rename from pointless ".func" to ".config_write". [v2: fix forgotten ldpd config_write] Signed-off-by: David Lamparter <equinox@diac24.net>
2020-04-16*: remove cmd_node->vtyshDavid Lamparter
The only nodes that have this as 0 don't have a "->func" anyway, so the entire thing is really just pointless. Signed-off-by: David Lamparter <equinox@diac24.net>
2020-04-16*: clean up cmd_node initializersDavid Lamparter
... and use named assignments everywhere (so I can change the struct.) Signed-off-by: David Lamparter <equinox@diac24.net>
2020-04-14Merge pull request #6011 from patrasar/pim-no-msdp-group-cmdDonald Sharp
pimd: added no ip msdp mesh-group <word>
2020-04-13pimd: added no ip msdp mesh-group <word>Sarita Patra
Issue: no ip msdp mesh-group <word> source command deleting the mesh group, which might be used by the member. Solution: no ip msdp mesh-group <word> source command, deletes the mesh-group source. Add a new cli command "no ip msdp mesh-group <word>" to delete the mesh group. Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-04-08pimd: show ip igmp groups json output - Make group array for each interfacesaravanank
JSON output for igmp group display is modified as follows for better python handling. 1. Under each interface make array of group as an object 2. Include source and group inside each group object These improvements are required for the set of topotest cases which will be upstreamed shortly. Signed-off-by: Saravanan K <saravanank@vmware.com>
2020-04-08pimd: Implement watermark warning for igmp group count and add igmp group countsaravanank
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>
2020-04-05pimd: fix BSM JSON keysQuentin Young
We use camelCase keys in FRR. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-03-24Merge pull request #6080 from sarav511/buf_incQuentin Young
pimd: increase buffer size for prefix str while printing bsrp-info
2020-03-24Merge pull request #6024 from patrasar/mroute_reshapeRuss White
pimd: re-shaping show ip mroute outout
2020-03-24pimd: increase buffer size for prefix str while printing bsrp-infosaravanank
Problem: output is cut short when prefix string all octets are 3 digit. RCA: Buffer was allocated only to hold ip addr str. Fix: Added 3 bytes more to hold prefix length and a /. Modified buffer in 'show ip pim bsrp-info' and 'show ip pim bsm database' Signed-off-by: Saravanan K <saravanank@vmware.com>
2020-03-23Merge pull request #6008 from sarav511/max_vifDonald Sharp
pimd: Do not allow to configure multicast on more than MAXVIF interfaces
2020-03-18Merge pull request #5882 from patrasar/2386429Donatas Abraitis
pimd: fix pim interface traffic & pim rp-info json command
2020-03-17pimd: re-shaping show ip mroute outoutSarita Patra
Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-03-17Merge pull request #5849 from donaldsharp/pim_register_prefix_listRuss White
Pim register prefix list
2020-03-17Merge pull request #5880 from patrasar/2371558Donald Sharp
pimd: fix OIL not removed after IGMP prune
2020-03-17Merge pull request #5940 from patrasar/214257Donald Sharp
pimd: add flags in show ip mroute command
2020-03-16pimd: fix OIL not removed after IGMP pruneSarita Patra
Issue: Client1------LHR-----(int-1)RP(int-2)------client2 Client2 send IGMP join for group G. Client1 send IGMP join for group G. verify show ip mroute in RP, will have 2 OIL. Client2 send IGMP leave. Verify show ip mroute in RP, will still have 2. Root cause: When RP receives IGMP join from client2, it creates a (s,g) channel oil and add the interface int-2 into oil list and set the flag PIM_OIF_FLAG_PROTO_IGMP to int-2 Client1 send IGMP join, LHR will send a (*,G) join to RP. RP will add the interface int-1 into the oil list of (s,g) channel_oil and will set the flag PIM_OIF_FLAG_PROTO_IGMP and PIM_OIF_FLAG_PROTO_PIM to the int-1 and set PIM_OIF_FLAG_PROTO_PIM to int-2 as well. It is happening because of the pim_upstream_inherited_olist_decide() and forward_on() get all the oil and update the flag wrongly. So now when client 2 sends IGMP prune, RP will not remove the int-2 from oil list since both PIM_OIF_FLAG_PROTO_PIM & PIM_OIF_FLAG_PROTO_IGMP are set, it just unset the flag PIM_OIF_FLAG_PROTO_IGMP. Fix: Introduced new flags in if_channel, PIM_IF_FLAG_MASK_PROTO_PIM & PIM_IF_FLAG_MASK_PROTO_IGMP. If a if_channel is created because of pim join or pim (s,g,rpt) prune received, then set the flag PIM_IF_FLAG_MASK_PROTO_PIM. If a if_channel is created becuase of IGMP join received, then set the flag PIM_IF_FLAG_MASK_PROTO_IGMP. When an interface needs to be added into the oil list check if PIM_IF_FLAG_MASK_PROTO_PIM or PIM_IF_FLAG_MASK_PROTO_IGMP is set, then update oil flag accordingly. Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-03-16pimd: fix pim interface traffic & pim rp-info json commandSarita Patra
Issue 1: "show ip pim interface traffic" not show prune TX/RX Rootcause : not added the variable in the json Fix : add prune TX/RX in show ip pim interface traffic json Issue 2: "show ip pim rp-info" not shows the key iAmRp when it is false Rootcause: Only display the key when the value is true. Fix: add iAmRp as false in show ip pim rp-info json Issue 3: "show ip pim rp-info" not showing outbound interface if it is empty Rootcause: Only display when there is any OIL Fix: When RP is not reachable then, the outbound interface is Unknown The command "show ip pim rp-info json" not displaying the outbound interafce if it is unknown Signed-off-by: Sarita Patra <saritap@vmware.com>
2020-03-16pimd: add flags in show ip mroute commandSarita Patra
S - Sparse Mode C - indicates there is a member of the group directly connected to the router. R -set on an (S, G) by the receipt of an (S, G) RP bit prune message. F -This indicates that this router is a FHR and send register messages to RP to inform RP of this active source P - OIL list is NULL. That means the router will send a prune. T - At least one packet received via SPT. Signed-off-by: Sarita Patra <saritap@vmware.com>