Skip to content

pimd: fix NOCACHE forwarding for non-connected sources and static mroute upcalls (backport #22466) - #22487

Merged
Jafaral merged 4 commits into
stable/10.7from
mergify/bp/stable/10.7/pr-22466
Jun 25, 2026
Merged

pimd: fix NOCACHE forwarding for non-connected sources and static mroute upcalls (backport #22466)#22487
Jafaral merged 4 commits into
stable/10.7from
mergify/bp/stable/10.7/pr-22466

Conversation

@mergify

@mergify mergify Bot commented Jun 25, 2026

Copy link
Copy Markdown

Align with RFC 4601 4.2 data forwarding when multicast arrives on
RPF_interface(S) with existing (S,G) state, even if source S is not on a
connected prefix of the ingress interface. Previously pimd dropped these
NOCACHE upcalls breaking LHR/transit and edge paths where
sources are routed or NAT’d off-subnet.

Also install static ip mroute MFC entries on NOCACHE/WRONGVIF kernel upcalls
so configured ingress policy is honored before sparse/dense handling.


This is an automatic backport of pull request #22466 done by Mergify.

Jafaral added 4 commits June 25, 2026 15:36
…tate

RFC 4601 allows forwarding when iif matches RPF_interface(S) and local
receivers exist; register encapsulation still requires a directly connected
source at the DR.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
(cherry picked from commit 8730c54)
Re-install interface static MFC entries (ip mroute OIF GROUP [SOURCE])
on matching kernel upcalls, including deferred boot configs.  For dynamic
(S,G) forwarding, use a live RPF lookup so MRIB static routes override
stale upstream RPF state.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
(cherry picked from commit 4adf9b7)
When pim_nht_lookup_ecmp() is given a non-NULL ingress interface and it
is listed among valid nexthops, select it instead of default first
ECMP selection.  Use this for NOCACHE non-connected forwarding so
multiple interfaces with duplicate addressing picks the correct iif.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
(cherry picked from commit 61c32b1)
Cover LHR transit, static ip mroute forwarding, passive-edge
foreign-source paths, and ECMP RPF ingress preference on NOCACHE
that depend on NOCACHE and static MFC handling.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
(cherry picked from commit 35b1a2a)
@greptile-apps

greptile-apps Bot commented Jun 25, 2026

Copy link
Copy Markdown

Target branch is not in the allowed branches list.

@frrbot frrbot Bot added pim tests Topotests, make check, etc labels Jun 25, 2026
@Jafaral
Jafaral merged commit 7d8f61e into stable/10.7 Jun 25, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pim size/XXL stable/10.7 tests Topotests, make check, etc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant