mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
Expand ospf dump information.
This commit is contained in:
parent
97c6fa02e0
commit
226cb2bc3f
@ -861,6 +861,44 @@ ospf_hash_delete(struct top_graph *f, struct top_hash_entry *e)
|
|||||||
bug("ospf_hash_delete() called for invalid node");
|
bug("ospf_hash_delete() called for invalid node");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
ospf_dump_lsa(struct top_hash_entry *he, struct proto *p)
|
||||||
|
{
|
||||||
|
struct ospf_lsa_rt *rt = NULL;
|
||||||
|
struct ospf_lsa_rt_link *rr = NULL;
|
||||||
|
struct ospf_lsa_net *ln = NULL;
|
||||||
|
u32 *rts = NULL;
|
||||||
|
u32 i, max;
|
||||||
|
|
||||||
|
OSPF_TRACE(D_EVENTS, "- %1x %-1I %-1I %4u 0x%08x 0x%04x %-1I",
|
||||||
|
he->lsa.type, he->lsa.id, he->lsa.rt, he->lsa.age,
|
||||||
|
he->lsa.sn, he->lsa.checksum, he->oa ? he->oa->areaid : 0 );
|
||||||
|
|
||||||
|
switch (he->lsa.type)
|
||||||
|
{
|
||||||
|
case LSA_T_RT:
|
||||||
|
rt = he->lsa_body;
|
||||||
|
rr = (struct ospf_lsa_rt_link *) (rt + 1);
|
||||||
|
|
||||||
|
for (i = 0; i < rt->links; i++)
|
||||||
|
OSPF_TRACE(D_EVENTS, " - %1x %-1I %-1I %5u", rr[i].type, rr[i].id, rr[i].data, rr[i].metric);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LSA_T_NET:
|
||||||
|
ln = he->lsa_body;
|
||||||
|
rts = (u32 *) (ln + 1);
|
||||||
|
max = (he->lsa.length - sizeof(struct ospf_lsa_header) -
|
||||||
|
sizeof(struct ospf_lsa_net)) / sizeof(u32);
|
||||||
|
|
||||||
|
for (i = 0; i < max; i++)
|
||||||
|
OSPF_TRACE(D_EVENTS, " - %-1I", rts[i]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ospf_top_dump(struct top_graph *f, struct proto *p)
|
ospf_top_dump(struct top_graph *f, struct proto *p)
|
||||||
{
|
{
|
||||||
@ -869,14 +907,9 @@ ospf_top_dump(struct top_graph *f, struct proto *p)
|
|||||||
|
|
||||||
for (i = 0; i < f->hash_size; i++)
|
for (i = 0; i < f->hash_size; i++)
|
||||||
{
|
{
|
||||||
struct top_hash_entry *e = f->hash_table[i];
|
struct top_hash_entry *e;
|
||||||
while (e)
|
for (e = f->hash_table[i]; e != NULL; e = e->next)
|
||||||
{
|
ospf_dump_lsa(e, p);
|
||||||
OSPF_TRACE(D_EVENTS, "- %1x %-1I %-1I %4u 0x%08x 0x%04x %-1I",
|
|
||||||
e->lsa.type, e->lsa.id, e->lsa.rt, e->lsa.age,
|
|
||||||
e->lsa.sn, e->lsa.checksum, e->oa ? e->oa->areaid : 0 );
|
|
||||||
e = e->next;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user