From: Alberto Leiva Popper Date: Wed, 1 Feb 2023 17:50:38 +0000 (-0600) Subject: Bug #83/#89: Print more data X-Git-Tag: 1.5.4~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0b8449ef6f19be714e59f7b94afc7a13afaf6188;p=thirdparty%2FFORT-validator.git Bug #83/#89: Print more data --- diff --git a/src/rtr/db/db_table.c b/src/rtr/db/db_table.c index 5ebf24be..981e25d9 100644 --- a/src/rtr/db/db_table.c +++ b/src/rtr/db/db_table.c @@ -229,20 +229,27 @@ rtrhandler_handle_router_key(struct db_table *table, */ static int add_roa_deltas(struct hashable_roa *roas1, struct hashable_roa *roas2, - struct deltas *deltas, int op) + struct deltas *deltas, int op, char r1type) { struct hashable_roa *n1; /* A node from @roas1 */ struct hashable_roa *n2; /* A node from @roas2 */ struct hashable_roa *tmp; + unsigned int r; + unsigned int roa1_count; int error; + r = 0; + roa1_count = HASH_COUNT(roas1); + HASH_ITER(hh, roas1, n1, tmp) { HASH_FIND(hh, roas2, &n1->data, sizeof(n1->data), n2); if (n2 == NULL) { - error = deltas_add_roa(deltas, &n1->data, op); + error = deltas_add_roa(deltas, &n1->data, op, + r1type, r, roa1_count); if (error) return error; } + r++; } return 0; @@ -309,10 +316,12 @@ compute_deltas(struct db_table *old, struct db_table *new, if (error) return error; - error = add_roa_deltas(new->roas, old->roas, deltas, FLAG_ANNOUNCEMENT); + error = add_roa_deltas(new->roas, old->roas, deltas, FLAG_ANNOUNCEMENT, + 'n'); if (error) goto fail; - error = add_roa_deltas(old->roas, new->roas, deltas, FLAG_WITHDRAWAL); + error = add_roa_deltas(old->roas, new->roas, deltas, FLAG_WITHDRAWAL, + 'o'); if (error) goto fail; error = add_router_key_deltas(new->router_keys, old->router_keys, diff --git a/src/rtr/db/delta.c b/src/rtr/db/delta.c index 957b0f8d..99dc64ee 100644 --- a/src/rtr/db/delta.c +++ b/src/rtr/db/delta.c @@ -117,7 +117,8 @@ get_deltas_array6(struct deltas *deltas, int op) } int -deltas_add_roa(struct deltas *deltas, struct vrp const *vrp, int op) +deltas_add_roa(struct deltas *deltas, struct vrp const *vrp, int op, + char r1type, unsigned int roa_counter, unsigned int roa_count) { union { struct delta_v4 v4; @@ -140,12 +141,15 @@ deltas_add_roa(struct deltas *deltas, struct vrp const *vrp, int op) return deltas_v6_add(get_deltas_array6(deltas, op), &delta.v6); } - pr_val_err("Unknown protocol: [%u %s/%u-%u %u]", + pr_val_err("Unknown protocol: [%u %s/%u-%u %u] %c %u %u", vrp->asn, addr2str6(&vrp->prefix.v6, buffer), vrp->prefix_length, vrp->max_prefix_length, - vrp->addr_fam); + vrp->addr_fam, + r1type, + roa_counter, + roa_count); return 0; } diff --git a/src/rtr/db/delta.h b/src/rtr/db/delta.h index f88aae34..a2f07fa7 100644 --- a/src/rtr/db/delta.h +++ b/src/rtr/db/delta.h @@ -9,7 +9,8 @@ int deltas_create(struct deltas **); void deltas_refget(struct deltas *); void deltas_refput(struct deltas *); -int deltas_add_roa(struct deltas *, struct vrp const *, int); +int deltas_add_roa(struct deltas *, struct vrp const *, int, + char, unsigned int, unsigned int); int deltas_add_router_key(struct deltas *, struct router_key const *, int); bool deltas_is_empty(struct deltas *);