| Age | Commit message (Collapse) | Author |
|
pimd: There exists a path where on vrf bringup we do not create the p…
|
|
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>
|
|
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>
|
|
|
|
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: MSDP trivial fixes
|
|
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
|
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>
|
|
Standardize a function to get the current VRF node name.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
|
|
Allow users to pre configure BFD sessions with a profile.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
|
|
Rewrite the BFD integration code to use the new library.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
|
|
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>
|
|
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>
|
|
Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
|
|
pimd: json support added
|
|
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>
|
|
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
|
|
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>
|
|
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>
|
|
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
|
|
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>
|
|
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>
|
|
Fix whitespace/indentation in pim_cmd.c
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|
Fix buffer sizes to eliminate compiliation warnings.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|
pimd: northbound backend code
|
|
Signed-off-by: Sarita Patra <saritap@vmware.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Replace all use of inet_ntoa, using %pI4 or inet_ntoa instead
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
|
|
fix debug commands node inconsistencies
|
|
* 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>
|
|
Use the same node for "show debugging" commands in all daemons.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
|
|
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>
|
|
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>
|
|
pimd: Providing json support for few pim commands
|
|
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>
|
|
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>
|