map: BR rule lookup update 15/40515/10
authorDan Geist <dan@polter.net>
Wed, 13 Mar 2024 15:24:05 +0000 (11:24 -0400)
committerOle Tr�an <otroan@employees.org>
Tue, 2 Apr 2024 06:56:04 +0000 (06:56 +0000)
commite53e29684151330811777135be2d62a564e3664d
treeb6ffcb4079b98c674a25b3041328f8810938fce5
parent3a0d7d2c95e8b8087c20b99fed5bcf62fac027d9
map: BR rule lookup update

Update to the MAP rule lookup (in IPv6) based on the rule's source
prefix instead of DMR

Type: improvement

Per RFC, the DMR is allowed to serve multiple MAP Basic Mapping Rules, but this
capability was prevented by the above logic.

Updates to the code include populating a new hash table based on the MAP rule
ip6 prefix and length, changing several functions to reference this new table,
and slight alterations to a few functions regarding pre-lookup bitmasking.

All changes are commented with [dgeist] and are in need of peer review,
especially the bitmask alterations.

An attempt was made at generating an additonal MAP rule in the test_map_br test
harness, but the coding appears very much oriented towards testing just one
rule. I would appreciate suggestions on how to test multi-rule cases.

Issue: VPP-2111
Change-Id: Id1fea280eba625e23cd893575d9b63aac7f48405
Signed-off-by: Dan Geist <dan@polter.net>
src/plugins/map/ip6_map_t.c
src/plugins/map/lpm.c
src/plugins/map/map.c
src/plugins/map/map.h