mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-12 20:29:58 +00:00
nhrpd: Display post-nat NBMA for local addresses
Signed-off-by: Reuben Dowle <reuben.dowle@4rf.com>
This commit is contained in:
parent
6baf035ce3
commit
bcf5673d61
@ -645,19 +645,36 @@ static void show_ip_nhrp_cache(struct nhrp_cache *c, void *pctx)
|
|||||||
ctx->count++;
|
ctx->count++;
|
||||||
|
|
||||||
sockunion2str(&c->remote_addr, buf[0], sizeof(buf[0]));
|
sockunion2str(&c->remote_addr, buf[0], sizeof(buf[0]));
|
||||||
if (c->cur.peer)
|
if (c->cur.type == NHRP_CACHE_LOCAL) {
|
||||||
sockunion2str(&c->cur.peer->vc->remote.nbma,
|
struct nhrp_interface *nifp = c->ifp->info;
|
||||||
buf[1], sizeof(buf[1]));
|
|
||||||
else
|
|
||||||
snprintf(buf[1], sizeof(buf[1]), "-");
|
|
||||||
|
|
||||||
if (c->cur.peer
|
if (sockunion_family(&nifp->nbma) != AF_UNSPEC) {
|
||||||
&& sockunion_family(&c->cur.remote_nbma_claimed) != AF_UNSPEC)
|
sockunion2str(&nifp->nbma, buf[1], sizeof(buf[1]));
|
||||||
sockunion2str(&c->cur.remote_nbma_claimed,
|
sockunion2str(&nifp->nbma, buf[2], sizeof(buf[2]));
|
||||||
buf[2], sizeof(buf[2]));
|
}
|
||||||
|
else {
|
||||||
|
snprintf(buf[1], sizeof(buf[1]), "-");
|
||||||
|
snprintf(buf[2], sizeof(buf[2]), "-");
|
||||||
|
}
|
||||||
|
|
||||||
else
|
/* if we are behind NAT then update NBMA field */
|
||||||
snprintf(buf[2], sizeof(buf[2]), "-");
|
if (sockunion_family(&nifp->nat_nbma) != AF_UNSPEC)
|
||||||
|
sockunion2str(&nifp->nat_nbma, buf[1], sizeof(buf[1]));
|
||||||
|
} else {
|
||||||
|
if (c->cur.peer)
|
||||||
|
sockunion2str(&c->cur.peer->vc->remote.nbma,
|
||||||
|
buf[1], sizeof(buf[1]));
|
||||||
|
else
|
||||||
|
snprintf(buf[1], sizeof(buf[1]), "-");
|
||||||
|
|
||||||
|
if (c->cur.peer
|
||||||
|
&& sockunion_family(&c->cur.remote_nbma_claimed)
|
||||||
|
!= AF_UNSPEC)
|
||||||
|
sockunion2str(&c->cur.remote_nbma_claimed,
|
||||||
|
buf[2], sizeof(buf[2]));
|
||||||
|
else
|
||||||
|
snprintf(buf[2], sizeof(buf[2]), "-");
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx->json) {
|
if (ctx->json) {
|
||||||
json = json_object_new_object();
|
json = json_object_new_object();
|
||||||
|
Loading…
Reference in New Issue
Block a user