Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix PIMD RPF lookup mode and nexthop tracking #17252

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Commits on Oct 29, 2024

  1. zebra,pimd,lib: Modify ZEBRA_NEXTHOP_LOOKUP_MRIB

    Modified ZEBRA_NEXTHOP_LOOKUP_MRIB to include the SAFI from which to do the lookup.
    This generalizes the API away from MRIB specifically and allows the user to decide how it should do lookups.
    Rename ZEBRA_NEXTHOP_LOOKUP_MRIB to ZEBRA_NEXTHOP_LOOKUP now that it is more generalized.
    This change is in preperation to remove multicast lookup mode completely from zebra.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    24d6854 View commit details
    Browse the repository at this point in the history
  2. zebra,yang: Completely remove multicast mode from zebra

    Multicast mode belongs in PIM, so removing it completely from zebra.
    Modified `show (ip|ipv6) rpf ADDRESS` to always lookup from SAFI_MULTICAST.
    This means this command is now specific to the multicast table and does
    not necessarily reflect the PIM RPF lookup, but that should be implemented
    in PIM instead.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    bac759a View commit details
    Browse the repository at this point in the history
  3. zebra: Improve multicast safi route show commands

    Add `mrib` flag to existing "show ip route" commands which then use
    the multicast safi rather than the unicast safi. Updated the vty output
    to include the AFI and SAFI string when printing the table.
    Deprecate `show ip rpf` command, aliased to `show ip route mrib`.
    Removed `show ip rpf A.B.C.D`.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    4251443 View commit details
    Browse the repository at this point in the history
  4. test: Fix tests for zebra changes

    Remove use of `ip multicast rpf-lookup-mode` from unrelated tests.
    Looks like this test was just unlucky enough to pick that command as an
    example for use here. Just changed it to something less likely to be
    removed in the future.
    Update route table output to include AFI SAFI output.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    62baa32 View commit details
    Browse the repository at this point in the history
  5. pimd,yang: Reimplement RPF lookup vty in router pim

    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>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    9ed7d4b View commit details
    Browse the repository at this point in the history
  6. pimd: Refactor synchronous nexthop lookup

    Add prefix length in nexthop response.
    Apply lookup mode to the sychronous lookups, where we may lookup
    the MRIB, URIB, or both and make a decision based on the nexthop.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    0ad036f View commit details
    Browse the repository at this point in the history
  7. pimd: Refactor pim NHT

    Refactor the next hop tracking in PIM to fully support the configured RPF lookup mode.
    Moved many NHT related functions to pim_nht.h/c
    NHT now tracks both MRIB and URIB tables and makes nexthop decisions based on the configured lookup mode.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    be6606a View commit details
    Browse the repository at this point in the history
  8. pimd: Update nexthops when lookup mode changes

    Link up the RPF lookup mode changing to a force update to RP's and
    upstreams registered for nexthop lookup cache updates.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    93e437c View commit details
    Browse the repository at this point in the history
  9. pimd: Clean up pim RPF/NHT show commands

    Moved `show ip rpf A.B.C.D` command here from zebra, deprecated and aliased
    to `show ip pim nexthop-lookup`.
    Allow group to be optional in the lookup command. Only validate group if
    source is ANY. Documented setting source via RP if not provided.
    Added new output if ANY source + group lookup is performed and no
    RP is found for the group. Updated output to include souce and
    group for lookup.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    25b686f View commit details
    Browse the repository at this point in the history
  10. tests: Add new pim mrib tests

    Test mrib overrides and rpf lookup mode changes.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    8156ae9 View commit details
    Browse the repository at this point in the history
  11. doc: Clean up Multicast RIB documentation

    Moved it all to PIM section and updated docs for recent changes.
    
    Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
    nabahr committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    98a5ff6 View commit details
    Browse the repository at this point in the history