From 32dbbf1a10f18c382c3a3f967af3de8151050312 Mon Sep 17 00:00:00 2001 From: Amol Lad Date: Wed, 24 Mar 2021 16:38:20 +1300 Subject: [PATCH] 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 --- nhrpd/nhrp_shortcut.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nhrpd/nhrp_shortcut.c b/nhrpd/nhrp_shortcut.c index 56861551ea..0905ceb72a 100644 --- a/nhrpd/nhrp_shortcut.c +++ b/nhrpd/nhrp_shortcut.c @@ -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,