diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 7c3dd234a2..e142d96618 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -9361,9 +9361,18 @@ static void route_vty_short_status_out(struct vty *vty, const struct prefix *p, json_object *json_path) { - enum rpki_states rpki_state = RPKI_NOT_BEING_USED; + enum rpki_states rpki_state; + + /* RPKI validation state */ + rpki_state = hook_call(bgp_rpki_prefix_status, path->peer, path->attr, p); if (json_path) { + if (rpki_state == RPKI_VALID) + json_object_boolean_true_add(json_path, "rpkiValid"); + else if (rpki_state == RPKI_INVALID) + json_object_boolean_true_add(json_path, "rpkiInvalid"); + else if (rpki_state == RPKI_NOTFOUND) + json_object_boolean_true_add(json_path, "rpkiNotFound"); /* Route status display. */ if (CHECK_FLAG(path->flags, BGP_PATH_REMOVED)) @@ -9411,10 +9420,6 @@ static void route_vty_short_status_out(struct vty *vty, return; } - /* RPKI validation state */ - rpki_state = - hook_call(bgp_rpki_prefix_status, path->peer, path->attr, p); - if (rpki_state == RPKI_VALID) vty_out(vty, "V"); else if (rpki_state == RPKI_INVALID)