Skip to content

Conversation

@hhubb22
Copy link
Contributor

@hhubb22 hhubb22 commented Jun 13, 2025

The previous implementation of the PIM DR Register state machine did not immediately transition to Join-Pending after the suppression timer expired. This caused a 5-second "deaf period" where new Register-Stop messages were ignored.

This patch corrects the logic by:

  • Updating the state to PIM_REG_JOIN_PENDING immediately upon suppression timer expiry, as per RFC7761 Figure 1.
  • Ensuring Register-Stop messages are handled correctly in the Join-Pending state.
  • Fix a redundant Null-Register transmission.

This change makes the PIM-SM implementation more robust and compliant.

@hhubb22
Copy link
Contributor Author

hhubb22 commented Jun 13, 2025

Currently, FRR's PIM behavior when the DR receives a Register-Stop message does not conform to the state machine defined in RFC7761.
RFC7761 specifies that if the current state is Prune, when the register stop timer expires, the system should both send a null register and change the state to Register-Pending. However, the current FRR implementation misses this step, causing FRR to ignore and not process Register-Stop messages from the RP when it should actually respond to them.

@hhubb22
Copy link
Contributor Author

hhubb22 commented Jun 13, 2025

ci:rerun

@Jafaral
Copy link
Member

Jafaral commented Jun 17, 2025

Fix style errors reported by frrbot please.

@github-actions github-actions bot added size/XS and removed size/S labels Jun 18, 2025
@hhubb22 hhubb22 force-pushed the fix/pim-register-stop-logic branch from 2af51e9 to 1261dd7 Compare June 18, 2025 03:01
@hhubb22
Copy link
Contributor Author

hhubb22 commented Jun 18, 2025

Fix style errors reported by frrbot please.

Okay, I have completed the style check for frrbot

@Jafaral
Copy link
Member

Jafaral commented Jun 18, 2025

Okay, I have completed the style check for frrbot

Thanks. No need to split the style fixes into a new commit. It is better to just squash that into the previous commit and pretend that you never had style issues ;).

The previous implementation of the PIM DR Register state machine
did not immediately transition to Join-Pending after the suppression
timer expired. This caused a 5-second "deaf period" where new
Register-Stop messages were ignored.

This patch corrects the logic by:
- Updating the state to PIM_REG_JOIN_PENDING immediately upon
  suppression timer expiry, as per RFC7761 Figure 1.
- Ensuring Register-Stop messages are handled correctly in the
  Join-Pending state.
- Fix a redundant Null-Register transmission.

This change makes the PIM-SM implementation more robust and
compliant.

Signed-off-by: Doby Asa <[email protected]>
@hhubb22 hhubb22 force-pushed the fix/pim-register-stop-logic branch from 9f54a2c to 159916d Compare June 18, 2025 16:37
@hhubb22
Copy link
Contributor Author

hhubb22 commented Jun 18, 2025

Okay, I have completed the style check for frrbot

Thanks. No need to split the style fixes into a new commit. It is better to just squash that into the previous commit and pretend that you never had style issues ;).

Okay, thank you very much for your patient advice. I've now squashed it into a single commit. Please let me know if this looks good.

@Jafaral
Copy link
Member

Jafaral commented Jun 19, 2025

Unrelated CI failures, just triggered a re run of the failed tests. also, we should ignore the verify source failure. The reported style issues is consistent with other instances in the file. I.e, inline declaration of that variable doesn't have a new line in other places.

@Jafaral Jafaral merged commit 514e15e into FRRouting:master Jun 19, 2025
12 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants