]> git.puffer.fish Git - mirror/frr.git/commitdiff
nhrpd: Add CIE to NAT extension in resolution requests
authorGaurav Goyal <gaurav.goyal@4rf.com>
Thu, 11 Mar 2021 03:40:14 +0000 (16:40 +1300)
committerReuben Dowle <reuben.dowle@4rf.com>
Thu, 18 Mar 2021 03:35:41 +0000 (16:35 +1300)
Signed-off-by: Reuben Dowle <reuben.dowle@4rf.com>
nhrpd/nhrp_shortcut.c

index adc878d1e09ece8fed043ad483e7be4e84d65d67..56a669944532cbd66e7fbe2e23b9b166f81a91d1 100644 (file)
@@ -377,6 +377,7 @@ static void nhrp_shortcut_send_resolution_req(struct nhrp_shortcut *s)
        struct nhrp_afi_data *if_ad;
        struct nhrp_peer *peer;
        struct nhrp_cie_header *cie;
+       struct nhrp_extension_header *ext;
 
        if (nhrp_route_address(NULL, &s->addr, NULL, &peer)
            != NHRP_ROUTE_NBMA_NEXTHOP)
@@ -420,7 +421,13 @@ static void nhrp_shortcut_send_resolution_req(struct nhrp_shortcut *s)
 
        /* Cisco NAT detection extension */
        hdr->flags |= htons(NHRP_FLAG_RESOLUTION_NAT);
-       nhrp_ext_push(zb, hdr, NHRP_EXTENSION_NAT_ADDRESS);
+       ext = nhrp_ext_push(zb, hdr, NHRP_EXTENSION_NAT_ADDRESS);
+       if (sockunion_family(&nifp->nat_nbma) != AF_UNSPEC)
+       {
+               nhrp_cie_push(zb, NHRP_CODE_SUCCESS,
+                                                   &nifp->nat_nbma, &nifp->afi[family2afi(sockunion_family(&s->addr))].addr);
+               nhrp_ext_complete(zb, ext);
+       }
 
        nhrp_packet_complete(zb, hdr);