-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
pimd,pim6d: Set RP to true if the address matches, ignore prefix-length #11593
Conversation
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-6415/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings
|
Only the address should be checked for both IPv4 & IPv6, the prefix length should always have been ignored. It's a plain bug that the prefix length was ever checked. Can you change it to just use |
Yeah I too feel the same way. Thanks @eqvinox for the inputs. |
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-6420/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings
|
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-6421/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings
|
The API pim_rp_check_interface_addrs checks if the RP address matches with the primary address then it returns true. In case of PIMv4 this condition is true, therefore the router becomes RP. But in case of PIMv6, this condition does not pass because primary address for PIMv6 is link-local address. Also PIMv4 allows secondary addresses to be used as RP if it is a host route in case primary does not match. Fixing it by only checking the configured RP address with the interface address and ignoring the prefix length since it does not matter. Fixes: FRRouting#11335 Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
Rebased on top of master. |
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-6450/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings
|
I would like to discuss on this before moving further. Have raised it temporarily to ease the discussion.EitherOR
2. Make this fix only specific to PIMv6 as done in this PR.The API pim_rp_check_interface_addrs checks if the RP address matches
with the primary address then it returns true.
In case of PIMv4 this condition is true, therefore the router becomes RP.
But in case of PIMv6, this condition does not pass because primary address
for PIMv6 is link-local address.
Also PIMv4 allows secondary addresses to be used as RP
if it is a host route in case primary does not match.
This behaviour is same for PIMv6.
Fixing it by only checking the configured RP address with the interface
address and ignoring the prefix length since it does not matter.
Fixes: #11335
Signed-off-by: Mobashshera Rasool mrasool@vmware.com