Status page: tables for the kernel, communities by AS, attributes as text
The kernel section was one run-on line of interfaces and addresses. It is now a small table of the installation state, and a table of interfaces with their IPv4, IPv6 and link-local addresses one per line; ports that are down and have no addresses share one line at the bottom. Communities ran together into one block that wrapped anywhere. Each AS's communities are now a line of their own, kept whole so that they copy, with a hanging indent where a line wraps; pointing at a line names the AS. Where control communities are on (now in /api/status), those of ours that ask for something say what as a tooltip. A rejected route's details were a fold-out that repeated the summary and then dumped the decoded attributes as JSON. Rejected routes now have the same columns as received ones, and both have an "other attributes" column for what the summary had no field for, as text: aggregator, extended communities (route targets and origins by name), AS4_PATH with its sets in braces, originator ID, cluster list, and unknown attributes in hex. The API has them as summary.other; the JSON stays in `attributes`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
89e0c3a3e2
commit
17045a3634
5 files changed
+332
-51
No files matched your search
@@ -22,7 +22,7 @@ with a description of the error.
|
||||
|---|---|
|
||||
| `/` | Redirects to `/statusz`. |
|
||||
| `/statusz` | Status page. |
|
||||
| `/api/status` | Router ID, AS number, uptime, and table sizes. |
|
||||
| `/api/status` | Router ID, AS number, uptime, table sizes, and whether control communities are enabled (`control_communities`). |
|
||||
| `/api/config` | The configuration that was read at startup. |
|
||||
| `/api/peers` | Configured neighbors and their sessions. |
|
||||
| `/api/routes/local` | Originated routes. |
|
||||
@@ -122,7 +122,8 @@ Prefixes are sorted by address, with IPv4 prefixes first.
|
||||
"med": null,
|
||||
"local_pref": null,
|
||||
"communities": ["65001:1"],
|
||||
"large_communities": []
|
||||
"large_communities": [],
|
||||
"other": [{ "name": "aggregator", "value": "AS65001 10.0.0.2" }]
|
||||
},
|
||||
"attributes": [ ... ]
|
||||
}],
|
||||
@@ -137,6 +138,7 @@ Prefixes are sorted by address, with IPv4 prefixes first.
|
||||
| `best` | Whether the route is the best path for the prefix. |
|
||||
| `stale` | Whether the route is retained from a previous session of the neighbor and has not been advertised again (graceful restart). |
|
||||
| `rpki`, `aspa` | Route origin validation and ASPA verification state, if RPKI validation is configured. |
|
||||
| `summary` | The path attributes as text. `other` lists, in received order, the attributes that have no field of their own: atomic aggregate, aggregator, extended communities, AS4_PATH, only to customer, originator ID, cluster list, and unrecognized attributes. |
|
||||
| `attributes` | All path attributes, as received. |
|
||||
|
||||
## Rejected Routes
|
||||
@@ -164,7 +166,8 @@ routes. To return the records for one neighbor, add `?peer=NAME`.
|
||||
"med": null,
|
||||
"local_pref": null,
|
||||
"communities": [],
|
||||
"large_communities": []
|
||||
"large_communities": [],
|
||||
"other": []
|
||||
},
|
||||
"attributes": [
|
||||
{ "Origin": 0 },
|
||||
|
||||
Reference in new issue
Block a user