summaryrefslogtreecommitdiff
path: root/lib/command_py.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2022-05-24 13:33:35 -0400
committerDonald Sharp <sharpd@nvidia.com>2022-05-26 10:45:35 -0400
commit94dc0c4ed4bbca84ad32cb45bbc492e9cae90d73 (patch)
tree287be7af9dbdd0f59323695eefd36ef481e53470 /lib/command_py.c
parentdcf6441e3f277a3ceeae705232c90ac6345e1d14 (diff)
pimd: Allow the LPM match work properly with prefix lists and normal rp's
All rp_info's are being saved in the pim->rp_list and the non prefix-list rp's are supposed to be saved in table pim->rp_table. What was happening, though, is that all the plists were being stored at the 224.0.0.0/4 node of the tree(irrelevant to the fact that we should not be looking up the non-prefix list rp's in the table) and since we can have multiple prefix lists and only one rp_info stored at the 224.0.0.0/4 node of the tree, there can be situations where the 224.0.0.0/4 node can be overwritten due to the order entered. As such there exists situations where command enter ordering will cause what we match to, change in pim_rp_find_match_group. Fixes: a) Do not store prefix list based rp_info's in the pim->rp_table b) In pim_rp_find_match_group, ensure that the node lookup does not correspond to a prefix list based node. c) When in the situation there are both: ip pim rp 4.5.6.7 224.0.0.0/16 ip pim rp 5.6.67.8 prefix-list FOO ip prefix-list FOO permit 224.0.1.0/24 and we receive a group for 224.0.1.5, we were comparing the 224.0.0.0/16 to the 224.0.0.0/4 of the 5.6.67.8 group, when FRR should have been comparing to entry that matched in the prefix-list Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'lib/command_py.c')
0 files changed, 0 insertions, 0 deletions