odhcp6c_find_entry: exclude priority from the list of fields that must match
authorAlin Nastac <alin.nastac@gmail.com>
Thu, 15 Oct 2020 15:12:15 +0000 (17:12 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Sat, 17 Oct 2020 19:17:17 +0000 (21:17 +0200)
commitf5728e40ff797f692fa80f8dcef257681a978cc7
tree2a24815a7bdf3b13c9d64c11fcc5a8cdef84b8f0
parentf575351cbb3defc0bf52680c9082912a6c264374
odhcp6c_find_entry: exclude priority from the list of fields that must match

Priority of an entry can vary from one RA to another, but the entry
identity should be the same regardless of the priority declared in the
RA message handled in ra_process() at a time.

CDRouter for instance tests compliance of the device  to requirement
G-5 of RFC 7084 by provisioning initially the CPE with a valid default
route that has a medium preference after which it sends a low preference
RA with lifetime 0 to check that CPE will start sending RAs with
lifetime 0 on the LAN side. Because odhcp6c didn't matched the low
precedence default router entry with the odhcp6c_entry that was
previously stored with medium precedence, it will fail to remove the
existing STATE_RA_ROUTE default route, hence preventing odhcpd from
advertising RAs with lifetime 0 to LAN.

Signed-off-by: Alin Nastac <alin.nastac@gmail.com>
src/dhcpv6.c
src/odhcp6c.h