nhrpd: Set prefix correctly in resolution request

RFC2332 requires prefix length be 0xFF only when uniqueness bit is set.

Without this change Cisco spokes will reject resolution request messages

Signed-off-by: Reuben Dowle <reuben.dowle@4rf.com>
This commit is contained in:
Amol Lad 2021-03-24 16:38:20 +13:00 committed by Reuben Dowle
parent f07757ae1e
commit 32dbbf1a10

View File

@ -427,8 +427,10 @@ static void nhrp_shortcut_send_resolution_req(struct nhrp_shortcut *s)
* */
/* FIXME: push CIE for each local protocol address */
cie = nhrp_cie_push(zb, NHRP_CODE_SUCCESS, NULL, NULL);
cie->prefix_length = 0xff;
if_ad = &nifp->afi[family2afi(sockunion_family(&s->addr))];
cie->prefix_length = (if_ad->flags & NHRP_IFF_REG_NO_UNIQUE)
? 8 * sockunion_get_addrlen(&s->addr)
: 0xff;
cie->holding_time = htons(if_ad->holdtime);
cie->mtu = htons(if_ad->mtu);
debugf(NHRP_DEBUG_COMMON,