summaryrefslogtreecommitdiff
path: root/pimd/pim_nb.h
AgeCommit message (Collapse)Author
2025-02-19pimd: allow restricting neighbors per interfaceDavid Lamparter
Just filter incoming packets against a specified prefix-list. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2025-02-13pimd: add IGMPv2/MLDv1 immediate-leaveDavid Lamparter
(Somewhat) useful when dealing with an interface that has only one host attached. Only works for IGMPv2 and MLDv1, other protocol versions have no leave message. Co-authored-by: David Lamparter <equinox@opensourcerouting.org> Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2025-02-10pimd: implement IGMP group/source count limitDavid Lamparter
For groups we can just look at the length of the list, for sources we need to count them on a per-interface level. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2025-01-09pimd,yang: Expand rpf-lookup-mode commandNathan Bahr
Add options for group-list and source-list, both of which take a prefix list name. The prefix list is used to determine the lookup mode for specific sources and/or groups. Any number of lookup modes can be configured as long as the combination of group and source list is unique. A global lookup mode (empty group and source lists) is always added and defaults to mrib-then-urib as it currently functions. The global lookup mode can be changed as it current exists with the command `rpf-lookup-mode MODE`. When determinig which mode to use, match source (and group if provided) against the lists, if they are set. If a lookup does not specify a group, then only use lookup modes that do not have a group list defined. A lookup by definition will have a source, so no special handling there. Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-16Merge pull request #17252 from nabahr/mcast-modeRafael Zalamena
Fix PIMD RPF lookup mode and nexthop tracking
2024-12-13pimd,yang: Reimplement RPF lookup vty in router pimNathan Bahr
Add rpf-lookup-mode MODE vty command under router pim block. Including NB piping and config write. Using the mode still pending. Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-12pimd: support originator id configurationRafael Zalamena
Allow user to specify the RP field for the SA messages. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-12-10Merge pull request #17521 from opensourcerouting/msdp-sa-limitJafar Al-Gharaibeh
pimd: MSDP per peer SA limit
2024-12-06pimd,yang: Extend multicast boundary functionalityCorey Siltala
Add new interface command ip multicast boundary ACCESSLIST4_NAME. This allows filtering on both source and group using the extended access-list syntax vs. group-only as with the existing "ip multicast boundary oil" command, which uses prefix-lists. If both are configured, the prefix- list is evaluated first. The default behavior for both prefix-lists and access-lists remains "deny", so the prefix-list must have a terminating "permit" statement in order to also evaluate against the access-list. The following example denies groups in range 229.1.1.0/24 and groups in range 232.1.1.0/24 with source 10.0.20.2: ! ip prefix-list pim-oil-plist seq 10 deny 229.1.1.0/24 ip prefix-list pim-oil-plist seq 20 permit any ! access-list pim-acl seq 10 deny ip host 10.0.20.2 232.1.1.0 0.0.0.255 access-list pim-acl seq 20 permit ip any any ! interface r1-eth0 ip address 10.0.20.1/24 ip igmp ip pim ip multicast boundary oil pim-oil-plist ip multicast boundary pim-acl ! Signed-off-by: Corey Siltala <csiltala@atcorp.com>
2024-12-05yang,pimd: support shutdown and SA limitRafael Zalamena
Add MSDP shutdown and SA limiting configuration to YANG model. (no implementation, just boiler plate code) Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-25pimd: implement MSDP shutdown commandRafael Zalamena
Allow MSDP protocol to be disabled. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-21Merge pull request #17340 from nabahr/mapping-agentRafael Zalamena
PIMD: Implement AutoRP mapping-agent
2024-11-21pimd,yang: log MSDP SA eventsRafael Zalamena
Add new command to log all SA events. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-21pimd,yang: log MSDP neighbor eventsRafael Zalamena
Move MSDP neighbor events global debug to per PIM instance. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-11-19pimd,yang: Add PIMD northbound/yang for AutoRP mapping agentNathan Bahr
Reuses the candidate selection logic from BSR configuration Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-11-13pim6d: support embedded-rpRafael Zalamena
Implement embedded RP support and configuration commands. Embedded RP is disabled by default and can be globally enabled with the command `embedded-rp` in the PIMv6 configuration node. It supports the following options: - Embedded RP maximum limit - Embedded RP group filtering Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-09-24pimd,yang: Implement AutoRP CLI and NB config pathNathan Bahr
New CLI commands added: router pim [vrf NAME] autorp discovery autorp announce RP-ADDR [GROUP | group-list PREFIX-LIST] autorp announce {scope (1-255) | interval (1-65535) | holdtime (0-65535)} autorp discovery Enables Auto RP discovery for learning dynamic RP information using the AutoRP protocol. autorp announce RP-ADDR [GROUP | group-list PREFIX-LIST] Enable announcements of a candidate RP with the given group range, or prefix list of group ranges, to an AutoRP mapping agent. autorp announce {scope (1-255) | interval (1-65535) | holdtime (0-65535)} Configure the parameters of the AutoRP announcement messages. The scope sets the packet TTL. The interval sets the time between TX of announcements. The holdtime sets the hold time in the message, the time the mapping agent should wait before invalidating the candidate RP information. debug pim autorp Enable debug logging of the AutoRP protocol show ip pim [vrf NAME] autorp [json] Show details of the AutoRP protocol. To view learned RP info, use the existing command 'show ip pim rp-info' Extend pim yang for new configuration: augment /frr-rt:routing/frr-rt:control-plane-protocols/frr-rt:control-plane-protocol/frr-pim:pim/frr-pim:address-family: +--rw rp +--rw auto-rp +--rw discovery-enabled? boolean +--rw announce-scope? uint8 +--rw announce-interval? uint16 +--rw announce-holdtime? uint16 +--rw candidate-rp-list* [rp-address] +--rw rp-address inet:ip-address +--rw (group-or-prefix-list)? +--:(group) | +--rw group? frr-route-types:ip-multicast-group-prefix +--:(prefix-list) +--rw prefix-list? plist-ref Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-09-20pimd, yang: add cli for igmp proxyBarry A. Trent
Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
2024-09-09pimd: Candidate-BSR supportJafar Al-Gharaibeh
Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2024-09-09pimd: Candidate-RP supportJafar Al-Gharaibeh
Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2024-08-22Merge pull request #16450 from nabahr/static_joinsDonald Sharp
PIM: Implement static IGMP joins without an IGMP report
2024-08-15pimd, yang: Implement igmp static-group commandNathan Bahr
This will add a static IGMP group that does not rely on an underlying socket join which sends traffic to the cpu unneccesarily. Instead, the groups are joined directly without any IGMP interactions. New command is under interfaces, 'ip igmp static-group ...'. Added an alias for 'ip igmp join ...' to 'ip igmp join-group'. Moved IGMP join groups to new yang list "join-group" and reused the "static-group" list for the IGMP static groups. Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-07-29pimd: add support for MSDP authenticationRafael Zalamena
Implement MSDP MD5 authentication connection support. Implementation details: - Move the MSDP socket creation code to a generic function so it can be parametrized to be used with/without authentication. - The MSDP peer connection will not change when the configuration is set, instead it will only be applied next connection or when `clear ip msdp peer A.B.C.D` is called. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-07-27pimd: MSDP SA filteringRafael Zalamena
Implement MSDP peer incoming/outgoing SA filter. Note ---- Cisco extended access list has a special meaning: the first address is the source address to filter. Example: ! The rules below filter some LAN prefix to be leaked out access-list filter-lan-source deny ip 192.168.0.0 0.0.255.255 224.0.0.0 0.255.255.255 access-list filter-lan-source permit any router pim msdp peer 192.168.0.1 sa-filter filter-lan-source out ! The rules below filter some special management group from being ! learned access-list filter-management-group deny 230.0.0.0 0.255.255.255 access-list filter-management-group permit any router pim msdp peer 192.168.0.1 sa-filter filter-management-group in Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-07-16pimd, lib, vtysh: Added new 'router pim[6] [vrf NAME]' config nodeNathan Bahr
Moved all existing global/vrf PIM config to the new subnode. Existing configuration updated to be hidden and deprecated. Both versions of configuration still work together. Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2023-02-09*: auto-convert to SPDX License IDsDavid Lamparter
Done with a combination of regex'ing and banging my head against a wall. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-05-12pimd: Northbound support for pim passive enablesarita patra
Added nothbound callbacks for pim-passive-enable Signed-off-by: sarita patra <saritap@vmware.com>
2022-02-28pim6d: moving FRR_PIM_AF_XPATH_VAL into pim_nb.hsarita patra
Signed-off-by: sarita patra <saritap@vmware.com>
2022-01-17pim: Keeping list of address-family under gmp containersarita patra
Renamed frr-igmp.yang to frr-gmp.yang, igmp to gmp container. to support IGMP and MLD protocol. frr-gmp.yang, created a list of address family under mgmd container. For PIMV4 the key is IPV4, where as for PIMV6 the key is IPV6. This is done for PIMV6 development. This commit will have all the northbound changes to support IPV4 address family. Signed-off-by: sarita patra <saritap@vmware.com>
2022-01-13pim: Northbound changes accomodating IPV4 address familysarita patra
frr-pim.yang, created a list of address family under pim container. For PIMV4 the key is IPV4, where as for PIMV6 the key is IPV6. This is done for PIMV6 development. This commit will have all the northbound changes to support IPV4 address family. Signed-off-by: sarita patra <saritap@vmware.com>
2021-07-01pimd: support MSDP global timers configurationRafael Zalamena
Users can now configure: * Hold time * Keep alive * Connection retry Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-06-25pimd: rework MSDP northbound integrationRafael Zalamena
Simplify the MSDP handling functions and allow source changes. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-06-09pimd: rework MSDP mesh-group codeRafael Zalamena
Fully utilize the northbound to hold pointers to our private data instead of searching for data structures every time we need to change a configuration. Highlights: * Support multiple mesh groups per PIM instance (instead of one) * Use DEFPY instead of DEFUN to reduce code complexity * Use northbound private pointers to store data structures * Reduce callback names size 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>
2020-11-06pimd: Northbound implementations for frr-pim, frr-igmp, frr-pim-rpSarita Patra
Signed-off-by: Sarita Patra <saritap@vmware.com>