@tikoci/centrs 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +98 -0
- package/GLOSSARY.txt +284 -0
- package/LICENSE +21 -0
- package/README.md +55 -11
- package/SECURITY.md +3 -3
- package/commands/AGENTS.md +7 -1
- package/commands/api/README.md +46 -27
- package/commands/api/examples.md +124 -6
- package/commands/btest/README.md +21 -32
- package/commands/check/README.md +376 -53
- package/commands/check/examples.md +390 -0
- package/commands/devices/README.md +177 -37
- package/commands/devices/examples.md +148 -0
- package/commands/discover/README.md +5 -11
- package/commands/execute/README.md +73 -26
- package/commands/execute/examples.md +131 -9
- package/commands/explain/README.md +1716 -0
- package/commands/explain/examples.md +606 -0
- package/commands/retrieve/README.md +55 -71
- package/commands/retrieve/examples.md +56 -9
- package/commands/settings/README.md +286 -22
- package/commands/settings/examples.md +408 -0
- package/commands/terminal/README.md +6 -0
- package/commands/transfer/README.md +57 -19
- package/commands/transfer/examples.md +95 -0
- package/docs/CLI.md +353 -0
- package/docs/CONSTITUTION.md +102 -26
- package/docs/MATRIX.md +106 -173
- package/docs/errors/README.md +5 -1
- package/docs/errors/cdb/empty-selection.md +19 -0
- package/docs/errors/input/incomplete-gps.md +9 -0
- package/docs/errors/input/invalid-altitude.md +9 -0
- package/docs/errors/input/invalid-bbox.md +9 -0
- package/docs/errors/input/invalid-coordinate.md +9 -0
- package/docs/errors/input/invalid-radius.md +9 -0
- package/docs/errors/internal/settings-failed.md +9 -0
- package/docs/errors/quickchr/machine-not-found.md +22 -0
- package/docs/errors/quickchr/machine-stopped.md +20 -0
- package/docs/errors/quickchr/package-unavailable.md +27 -0
- package/docs/errors/quickchr/unsupported-via.md +35 -0
- package/docs/errors/quickchr/unsupported.md +35 -0
- package/docs/errors/routeros/version-unsupported.md +26 -0
- package/docs/errors/settings/consequential-value.md +26 -0
- package/docs/errors/settings/invalid-boolean.md +21 -3
- package/docs/errors/settings/invalid-format.md +18 -3
- package/docs/errors/settings/invalid-integer.md +18 -3
- package/docs/errors/settings/invalid-timeout.md +20 -3
- package/docs/errors/settings/invalid-via.md +22 -3
- package/docs/errors/settings/reserved-key.md +29 -0
- package/docs/errors/settings/skip-env-file-active.md +25 -0
- package/docs/errors/settings/unknown-key.md +25 -0
- package/docs/errors/transport/provider-trust.md +29 -0
- package/docs/errors/usage/fanout-not-supported.md +16 -0
- package/docs/errors/usage/stdin-ignored.md +28 -0
- package/docs/errors/validation/unknown-attribute.md +37 -4
- package/package.json +49 -14
- package/src/api-fanout.ts +469 -0
- package/src/api.ts +171 -56
- package/src/cli/api.ts +156 -13
- package/src/cli/btest.ts +38 -4
- package/src/cli/common.ts +11 -0
- package/src/cli/devices.ts +235 -6
- package/src/cli/discover.ts +3 -1
- package/src/cli/execute.ts +129 -9
- package/src/cli/explain.ts +503 -0
- package/src/cli/mcp.ts +8 -1
- package/src/cli/retrieve.ts +167 -90
- package/src/cli/selection.ts +260 -0
- package/src/cli/settings.ts +286 -0
- package/src/cli/terminal.ts +22 -7
- package/src/cli/transfer.ts +192 -51
- package/src/cli.ts +22 -2
- package/src/core/envelope.ts +5 -2
- package/src/core/error-catalog.ts +95 -0
- package/src/core/fanout.ts +143 -2
- package/src/core/preflight.ts +306 -0
- package/src/core/routeros-string.ts +24 -0
- package/src/devices.ts +212 -20
- package/src/discover.ts +7 -2
- package/src/errors.ts +1 -0
- package/src/execute-fanout.ts +453 -0
- package/src/execute.ts +216 -68
- package/src/explain/arg-tokens.ts +114 -0
- package/src/explain/args.ts +1403 -0
- package/src/explain/blocks.ts +132 -0
- package/src/explain/brace-slots.ts +143 -0
- package/src/explain/brace-tokens.ts +38 -0
- package/src/explain/catalog.ts +1345 -0
- package/src/explain/coordinates.ts +329 -0
- package/src/explain/defects.ts +217 -0
- package/src/explain/is-known-menu.ts +17 -0
- package/src/explain/menus.ts +664 -0
- package/src/explain/operator-tokens.ts +310 -0
- package/src/explain/operators.ts +458 -0
- package/src/explain/path-tokens.ts +150 -0
- package/src/explain/pathresolve.ts +1324 -0
- package/src/explain/quoted-string.ts +241 -0
- package/src/explain/scope-brace.ts +308 -0
- package/src/explain/segment.ts +757 -0
- package/src/explain/string-tokens.ts +67 -0
- package/src/explain/symbol-values.ts +520 -0
- package/src/explain/symbols.ts +1597 -0
- package/src/explain/token-ranges.ts +72 -0
- package/src/explain/transport.ts +497 -0
- package/src/explain/value-tokens.ts +80 -0
- package/src/explain/values.ts +357 -0
- package/src/explain/verbs.ts +64 -0
- package/src/explain/verbsplit.ts +813 -0
- package/src/explain/write.ts +815 -0
- package/src/explain.ts +2152 -0
- package/src/index.ts +307 -1
- package/src/mcp/config.ts +12 -2
- package/src/mcp/tools.ts +137 -2
- package/src/protocols/adapter.ts +38 -18
- package/src/protocols/index.ts +11 -5
- package/src/protocols/mac-telnet-console.ts +61 -17
- package/src/resolver/cdb.ts +10 -2
- package/src/resolver/comment-kv.ts +58 -4
- package/src/resolver/config-file.ts +136 -0
- package/src/resolver/facts.ts +78 -0
- package/src/resolver/geo.ts +453 -0
- package/src/resolver/index.ts +65 -0
- package/src/resolver/mac.ts +12 -3
- package/src/resolver/quickchr-provider.ts +597 -0
- package/src/resolver/selection.ts +391 -0
- package/src/resolver/service-endpoint.ts +155 -0
- package/src/resolver/settings.ts +54 -5
- package/src/resolver/target.ts +21 -3
- package/src/retrieve-fanout.ts +239 -133
- package/src/retrieve.ts +120 -25
- package/src/settings.ts +1078 -0
- package/src/terminal.ts +11 -1
- package/src/transfer-fanout.ts +544 -0
- package/src/transfer.ts +133 -40
|
@@ -0,0 +1,1345 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RouterOS path catalog — GENERATED, do not hand-edit.
|
|
3
|
+
*
|
|
4
|
+
* Regenerate with `bun run explain:catalog`; `bun run explain:catalog --check`
|
|
5
|
+
* is the drift gate. The generator (`scripts/gen-explain-catalog.ts`) carries
|
|
6
|
+
* the full rationale, the vendored-ETL provenance, and the alias allowlist with
|
|
7
|
+
* its two safety assertions.
|
|
8
|
+
*
|
|
9
|
+
* Union of two first-order sources (#228):
|
|
10
|
+
*
|
|
11
|
+
* 1. MikroTik's published CLI Reference (`https://manual.mikrotik.com/docs/cli-reference/`),
|
|
12
|
+
* 1,070 pages, 1,077 entries — first-order about the definition
|
|
13
|
+
* structs and their build-time gates. Since #285 every page is a leaf whose
|
|
14
|
+
* slug is the CLI path, so no spelling has to be rewritten to be looked up.
|
|
15
|
+
* 2. Four pinned restraml `/console/inspect` trees
|
|
16
|
+
* (`https://tikoci.github.io/restraml/`) — first-order about the CLI surface:
|
|
17
|
+
*
|
|
18
|
+
* | Tree | Arch | RouterOS | Nodes |
|
|
19
|
+
* | ---- | ---- | -------- | ----- |
|
|
20
|
+
* | `7.10.2/extra/inspect.json` | x86 | 7.10.2 | 29,086 |
|
|
21
|
+
* | `7.16/extra/inspect.json` | x86 | 7.16 | 34,876 |
|
|
22
|
+
* | `7.23.2/extra/deep-inspect.x86.json` | x86 | 7.23.2 | 40,595 |
|
|
23
|
+
* | `7.24rc2/extra/deep-inspect.arm64.json` | arm64 | 7.24rc2 | 42,690 |
|
|
24
|
+
*
|
|
25
|
+
* | Kind | Total | `both` | `inspect` | `published` |
|
|
26
|
+
* | ---- | ----- | ------ | --------- | ----------- |
|
|
27
|
+
* | `menu` | 558 | 454 | 54 | 50 |
|
|
28
|
+
* | `command` | 450 | 407 | 0 | 43 |
|
|
29
|
+
* | `settings` | 116 | 107 | 0 | 9 |
|
|
30
|
+
*
|
|
31
|
+
* Zero navigation-vs-command contradictions between the two sources. Generation
|
|
32
|
+
* aborts if that ever stops holding, rather than picking a winner. Where a path
|
|
33
|
+
* is published twice as a container under different hardware gates — the seven
|
|
34
|
+
* `/interface/ethernet/switch` and `/system/health` variants — the row records
|
|
35
|
+
* what the occurrences agree on.
|
|
36
|
+
*
|
|
37
|
+
* **This table is not a schema.** It says what a path IS — navigation, an
|
|
38
|
+
* executable command, or a settings menu — and never what a command accepts.
|
|
39
|
+
* Arguments, types, enums and `.proplist` stay live-only evidence.
|
|
40
|
+
*
|
|
41
|
+
* **Absence never rejects.** A path in neither source is simply absent, and a
|
|
42
|
+
* caller that does not find one must abstain. A gate never decides anything
|
|
43
|
+
* offline either: it explains why a published path may be missing from a given
|
|
44
|
+
* router ("PoE hardware only"), and no router was consulted to build this.
|
|
45
|
+
*
|
|
46
|
+
* **Gates conjoin down a path, so read them with {@link effectiveGates}, not
|
|
47
|
+
* row by row.** A row states only what the publication stated at that entry.
|
|
48
|
+
* Read row-wise, 2 published-only paths look ungated; read with
|
|
49
|
+
* ancestry, the residue carrying no published explanation for its absence at
|
|
50
|
+
* all is 1.
|
|
51
|
+
*
|
|
52
|
+
* Tree COMMANDS are not enumerated — those are the generic CRUD leaves
|
|
53
|
+
* `verbs.ts` already owns. The command rows here are the published,
|
|
54
|
+
* overwhelmingly non-generic ones.
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
/** What a path IS. `settings` is a menu whose contents are a single record. */
|
|
58
|
+
export type PathKind = "menu" | "command" | "settings";
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Which source carried an entry.
|
|
62
|
+
*
|
|
63
|
+
* `inspect` and `both` are device-confirmed: the path was observed on at least
|
|
64
|
+
* one real `/console/inspect` tree. `published` is documentation evidence only
|
|
65
|
+
* — usually a path gated to hardware no CHR has.
|
|
66
|
+
*/
|
|
67
|
+
export type PathProvenance = "inspect" | "published" | "both";
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* One catalog row. The gate fields are MikroTik's published build-time
|
|
71
|
+
* applicability markers, verbatim; they are provenance for an explanation, never
|
|
72
|
+
* a claim about any particular router.
|
|
73
|
+
*/
|
|
74
|
+
export interface CatalogEntry {
|
|
75
|
+
kind: PathKind;
|
|
76
|
+
provenance: PathProvenance;
|
|
77
|
+
/** Required RouterOS package, e.g. `wireless-qca`. */
|
|
78
|
+
package?: string;
|
|
79
|
+
/** Build conditions, e.g. `!i386, !smips`. */
|
|
80
|
+
conditions?: string;
|
|
81
|
+
/** Required system capability, e.g. `poe`, `lcd`, `multiswitch`. */
|
|
82
|
+
syscap?: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The catalog as text: one line per path, columns separated by `|` —
|
|
87
|
+
* `path|kind|provenance|package|conditions|syscap` — with trailing empty
|
|
88
|
+
* columns trimmed. Lower-cased, slash-led and sorted by path.
|
|
89
|
+
*
|
|
90
|
+
* Text rather than ~1,124 object literals so that one path is one line in a
|
|
91
|
+
* review diff, and so the formatter has nothing to re-wrap.
|
|
92
|
+
*/
|
|
93
|
+
const ROWS = `
|
|
94
|
+
/app|menu|both|container||app
|
|
95
|
+
/app/cleanup|command|both|container||app
|
|
96
|
+
/app/network|menu|both|container||app
|
|
97
|
+
/app/remove|command|both|container||app
|
|
98
|
+
/app/restart|command|both|container||app
|
|
99
|
+
/app/settings|settings|both|container||app
|
|
100
|
+
/app/setup|command|both|container||app
|
|
101
|
+
/app/update|command|both|container||app
|
|
102
|
+
/beep|command|both
|
|
103
|
+
/blink|command|both||!i386
|
|
104
|
+
/caps-man|menu|inspect
|
|
105
|
+
/caps-man/aaa|settings|both|wireless-rep
|
|
106
|
+
/caps-man/access-list|menu|both|wireless-rep
|
|
107
|
+
/caps-man/actual-interface-configuration|menu|both|wireless-rep
|
|
108
|
+
/caps-man/channel|menu|both|wireless-rep
|
|
109
|
+
/caps-man/configuration|menu|both|wireless-rep
|
|
110
|
+
/caps-man/datapath|menu|both|wireless-rep
|
|
111
|
+
/caps-man/interface|menu|both|wireless-rep
|
|
112
|
+
/caps-man/interface/hw-info|command|both|wireless-rep
|
|
113
|
+
/caps-man/interface/possible-channels|command|both|wireless-rep
|
|
114
|
+
/caps-man/interface/reselect-channel|command|both|wireless-rep
|
|
115
|
+
/caps-man/interface/scan|command|both|wireless-rep
|
|
116
|
+
/caps-man/manager|settings|both|wireless-rep
|
|
117
|
+
/caps-man/manager/interface|menu|both|wireless-rep
|
|
118
|
+
/caps-man/provisioning|menu|both|wireless-rep
|
|
119
|
+
/caps-man/radio|menu|both|wireless-rep
|
|
120
|
+
/caps-man/radio/hw-info|command|both|wireless-rep
|
|
121
|
+
/caps-man/radio/provision|command|both|wireless-rep
|
|
122
|
+
/caps-man/rates|menu|both|wireless-rep
|
|
123
|
+
/caps-man/registration-table|menu|both|wireless-rep
|
|
124
|
+
/caps-man/remote-cap|menu|both|wireless-rep
|
|
125
|
+
/caps-man/remote-cap/provision|command|both|wireless-rep
|
|
126
|
+
/caps-man/remote-cap/set-identity|command|both|wireless-rep
|
|
127
|
+
/caps-man/remote-cap/upgrade|command|both|wireless-rep
|
|
128
|
+
/caps-man/security|menu|both|wireless-rep
|
|
129
|
+
/certificate|menu|both
|
|
130
|
+
/certificate/acme-renew|command|both
|
|
131
|
+
/certificate/add-acme|command|both
|
|
132
|
+
/certificate/add-scep|command|both
|
|
133
|
+
/certificate/builtin|menu|both
|
|
134
|
+
/certificate/card-reinstall|command|both
|
|
135
|
+
/certificate/card-verify|command|both
|
|
136
|
+
/certificate/create-certificate-request|command|both
|
|
137
|
+
/certificate/crl|menu|both
|
|
138
|
+
/certificate/crl/download|command|both
|
|
139
|
+
/certificate/crl/flush|command|both
|
|
140
|
+
/certificate/enable-ssl-certificate|command|both
|
|
141
|
+
/certificate/export-certificate|command|both
|
|
142
|
+
/certificate/import|command|both
|
|
143
|
+
/certificate/issued-revoke|command|both
|
|
144
|
+
/certificate/scep-renew|command|both
|
|
145
|
+
/certificate/scep-server|menu|both
|
|
146
|
+
/certificate/scep-server/otp|menu|both
|
|
147
|
+
/certificate/scep-server/otp/generate|command|both
|
|
148
|
+
/certificate/scep-server/ra|menu|both
|
|
149
|
+
/certificate/scep-server/ra/renew|command|both
|
|
150
|
+
/certificate/scep-server/requests|menu|both
|
|
151
|
+
/certificate/scep-server/requests/grant|command|both
|
|
152
|
+
/certificate/settings|settings|both
|
|
153
|
+
/certificate/sign|command|both
|
|
154
|
+
/certificate/sign-certificate-request|command|both
|
|
155
|
+
/console|menu|both
|
|
156
|
+
/console/inspect|command|both
|
|
157
|
+
/console/settings|settings|both
|
|
158
|
+
/container|menu|both|container
|
|
159
|
+
/container/config|settings|both|container
|
|
160
|
+
/container/envs|menu|both|container
|
|
161
|
+
/container/kill|command|both|container
|
|
162
|
+
/container/layers|menu|both|container
|
|
163
|
+
/container/log|menu|both|container
|
|
164
|
+
/container/mounts|menu|both|container
|
|
165
|
+
/container/repull|command|both|container
|
|
166
|
+
/container/restart|command|both|container
|
|
167
|
+
/container/save|command|both|container
|
|
168
|
+
/container/start|command|both|container
|
|
169
|
+
/container/stop|command|both|container
|
|
170
|
+
/container/update|command|both|container
|
|
171
|
+
/disk|menu|both||!smips
|
|
172
|
+
/disk/blink|command|both||!smips
|
|
173
|
+
/disk/btrfs|menu|both||!smips|storage
|
|
174
|
+
/disk/btrfs/filesystem|menu|both||!smips|storage
|
|
175
|
+
/disk/btrfs/filesystem/add-device|command|both||!smips|storage
|
|
176
|
+
/disk/btrfs/filesystem/balance-cancel|command|both||!smips|storage
|
|
177
|
+
/disk/btrfs/filesystem/balance-start|command|both||!smips|storage
|
|
178
|
+
/disk/btrfs/filesystem/remove-device|command|both||!smips|storage
|
|
179
|
+
/disk/btrfs/filesystem/replace-cancel|command|both||!smips|storage
|
|
180
|
+
/disk/btrfs/filesystem/replace-device|command|both||!smips|storage
|
|
181
|
+
/disk/btrfs/filesystem/reset-counters|command|both||!smips|storage
|
|
182
|
+
/disk/btrfs/filesystem/scrub-cancel|command|both||!smips|storage
|
|
183
|
+
/disk/btrfs/filesystem/scrub-start|command|both||!smips|storage
|
|
184
|
+
/disk/btrfs/subvolume|menu|both||!smips|storage
|
|
185
|
+
/disk/btrfs/transfer|menu|both||!smips|storage
|
|
186
|
+
/disk/check|command|both||!smips|storage
|
|
187
|
+
/disk/copy|command|both||!smips
|
|
188
|
+
/disk/eject|command|both||!smips
|
|
189
|
+
/disk/format|command|both||!smips
|
|
190
|
+
/disk/monitor-traffic|command|both||!smips
|
|
191
|
+
/disk/nvme-discover|command|both||!smips|storage
|
|
192
|
+
/disk/raid-scrub|command|both||!smips|storage
|
|
193
|
+
/disk/raid-scrub-cancel|command|both||!smips|storage
|
|
194
|
+
/disk/repair|command|both||!smips|storage
|
|
195
|
+
/disk/reset-counters|command|both||!smips
|
|
196
|
+
/disk/scan|command|both||!smips
|
|
197
|
+
/disk/settings|settings|both||!smips
|
|
198
|
+
/disk/smart-info|command|both||!smips|storage
|
|
199
|
+
/disk/smb-share|menu|inspect
|
|
200
|
+
/disk/smb-user|menu|inspect
|
|
201
|
+
/disk/test|command|both||!smips
|
|
202
|
+
/disk/trim|command|both||!smips
|
|
203
|
+
/dude|settings|both|dude
|
|
204
|
+
/dude/agent|menu|both|dude
|
|
205
|
+
/dude/device|menu|both|dude
|
|
206
|
+
/dude/device-type|menu|both|dude
|
|
207
|
+
/dude/export-db|command|both|dude
|
|
208
|
+
/dude/import-db|command|both|dude
|
|
209
|
+
/dude/notification|menu|both|dude
|
|
210
|
+
/dude/probe|menu|both|dude
|
|
211
|
+
/dude/ros|menu|both|dude
|
|
212
|
+
/dude/ros/address|menu|both|dude
|
|
213
|
+
/dude/ros/arp|menu|both|dude
|
|
214
|
+
/dude/ros/health|menu|both|dude
|
|
215
|
+
/dude/ros/interface|menu|both|dude
|
|
216
|
+
/dude/ros/lease|menu|both|dude
|
|
217
|
+
/dude/ros/neighbor|menu|both|dude
|
|
218
|
+
/dude/ros/queue|menu|both|dude
|
|
219
|
+
/dude/ros/registration-table|menu|both|dude
|
|
220
|
+
/dude/ros/resource|menu|both|dude
|
|
221
|
+
/dude/ros/route|menu|both|dude
|
|
222
|
+
/dude/ros/routerboard|menu|both|dude
|
|
223
|
+
/dude/service|menu|both|dude
|
|
224
|
+
/dude/settings|settings|both|dude
|
|
225
|
+
/dude/vacuum-db|command|both|dude
|
|
226
|
+
/environment|menu|both
|
|
227
|
+
/file|menu|both
|
|
228
|
+
/file/copy|command|both
|
|
229
|
+
/file/head|command|both
|
|
230
|
+
/file/read|command|both
|
|
231
|
+
/file/rsync-daemon|settings|both|rose-storage
|
|
232
|
+
/file/sync|menu|both|rose-storage
|
|
233
|
+
/file/sync/monitor|command|both|rose-storage
|
|
234
|
+
/file/tail|command|both
|
|
235
|
+
/import|command|both
|
|
236
|
+
/interface|menu|both
|
|
237
|
+
/interface/6to4|menu|both
|
|
238
|
+
/interface/blink|command|both
|
|
239
|
+
/interface/bonding|menu|both
|
|
240
|
+
/interface/bonding/monitor|command|both
|
|
241
|
+
/interface/bonding/monitor-slaves|command|both
|
|
242
|
+
/interface/bridge|menu|both||MSRP_ENABLE
|
|
243
|
+
/interface/bridge/calea|menu|both
|
|
244
|
+
/interface/bridge/calea/reset-counters|command|both
|
|
245
|
+
/interface/bridge/calea/reset-counters-all|command|both
|
|
246
|
+
/interface/bridge/filter|menu|both
|
|
247
|
+
/interface/bridge/filter/reset-counters|command|both
|
|
248
|
+
/interface/bridge/filter/reset-counters-all|command|both
|
|
249
|
+
/interface/bridge/host|menu|both
|
|
250
|
+
/interface/bridge/mdb|menu|both
|
|
251
|
+
/interface/bridge/monitor|command|both
|
|
252
|
+
/interface/bridge/msrp|menu|published||MSRP_ENABLE
|
|
253
|
+
/interface/bridge/msrp/attributes|menu|published||MSRP_ENABLE
|
|
254
|
+
/interface/bridge/msrp/domain|menu|published||MSRP_ENABLE
|
|
255
|
+
/interface/bridge/msrp/domain/attributes|menu|published||MSRP_ENABLE
|
|
256
|
+
/interface/bridge/msrp/domain/monitor|command|published||MSRP_ENABLE
|
|
257
|
+
/interface/bridge/msti|menu|both
|
|
258
|
+
/interface/bridge/msti/monitor|command|both
|
|
259
|
+
/interface/bridge/nat|menu|both
|
|
260
|
+
/interface/bridge/nat/reset-counters|command|both
|
|
261
|
+
/interface/bridge/nat/reset-counters-all|command|both
|
|
262
|
+
/interface/bridge/port|menu|both
|
|
263
|
+
/interface/bridge/port-controller|menu|inspect
|
|
264
|
+
/interface/bridge/port-controller/device|menu|inspect
|
|
265
|
+
/interface/bridge/port-controller/port|menu|inspect
|
|
266
|
+
/interface/bridge/port-controller/port/poe|menu|inspect
|
|
267
|
+
/interface/bridge/port-extender|menu|inspect
|
|
268
|
+
/interface/bridge/port/monitor|command|both
|
|
269
|
+
/interface/bridge/port/mst-override|menu|both
|
|
270
|
+
/interface/bridge/port/mst-override/monitor|command|both
|
|
271
|
+
/interface/bridge/settings|settings|both
|
|
272
|
+
/interface/bridge/vlan|menu|both
|
|
273
|
+
/interface/bridge/vlan/mvrp|menu|both
|
|
274
|
+
/interface/detect-internet|settings|both
|
|
275
|
+
/interface/detect-internet/state|menu|both
|
|
276
|
+
/interface/dot1x|menu|both||!smips
|
|
277
|
+
/interface/dot1x/client|menu|both||!smips
|
|
278
|
+
/interface/dot1x/server|menu|both||!smips
|
|
279
|
+
/interface/dot1x/server/active|menu|both||!smips
|
|
280
|
+
/interface/dot1x/server/state|menu|both||!smips
|
|
281
|
+
/interface/eoip|menu|both
|
|
282
|
+
/interface/eoipv6|menu|both
|
|
283
|
+
/interface/ethernet|menu|both||i386
|
|
284
|
+
/interface/ethernet/blink|command|both
|
|
285
|
+
/interface/ethernet/cable-test|command|both
|
|
286
|
+
/interface/ethernet/monitor|command|both||i386
|
|
287
|
+
/interface/ethernet/poe|menu|published|||(poe or poe-in)
|
|
288
|
+
/interface/ethernet/poe/monitor|command|published|||(poe or poe-in)
|
|
289
|
+
/interface/ethernet/poe/power-cycle|command|published|||(poe or poe-in)
|
|
290
|
+
/interface/ethernet/poe/settings|settings|published|||(poe or poe-in) and poesettings
|
|
291
|
+
/interface/ethernet/reset-counters|command|both
|
|
292
|
+
/interface/ethernet/reset-mac-address|command|both
|
|
293
|
+
/interface/ethernet/switch|menu|both
|
|
294
|
+
/interface/ethernet/switch/acl|menu|published|||musicswitch
|
|
295
|
+
/interface/ethernet/switch/acl/policer|menu|published|||musicswitch
|
|
296
|
+
/interface/ethernet/switch/dscp-qos-map|menu|published|||musicswitch
|
|
297
|
+
/interface/ethernet/switch/dscp-to-dscp|menu|published|||musicswitch
|
|
298
|
+
/interface/ethernet/switch/egress-vlan-tag|menu|published|||musicswitch
|
|
299
|
+
/interface/ethernet/switch/egress-vlan-translation|menu|published|||musicswitch
|
|
300
|
+
/interface/ethernet/switch/host|menu|both|||rbswitch and oldswitch
|
|
301
|
+
/interface/ethernet/switch/ingress-port-policer|menu|published|||musicswitch
|
|
302
|
+
/interface/ethernet/switch/ingress-vlan-translation|menu|published|||musicswitch
|
|
303
|
+
/interface/ethernet/switch/l3hw-settings|settings|published|||rbswitch and crs_prestera
|
|
304
|
+
/interface/ethernet/switch/l3hw-settings/advanced|settings|published|||rbswitch and crs_prestera
|
|
305
|
+
/interface/ethernet/switch/l3hw-settings/advanced/monitor|command|published|||rbswitch and crs_prestera
|
|
306
|
+
/interface/ethernet/switch/l3hw-settings/monitor|command|published|||rbswitch and crs_prestera
|
|
307
|
+
/interface/ethernet/switch/mac-based-vlan|menu|published|||musicswitch
|
|
308
|
+
/interface/ethernet/switch/multicast-fdb|menu|published|||musicswitch
|
|
309
|
+
/interface/ethernet/switch/one2one-vlan-switching|menu|published|||musicswitch
|
|
310
|
+
/interface/ethernet/switch/policer-qos-map|menu|published|||musicswitch
|
|
311
|
+
/interface/ethernet/switch/port|menu|both
|
|
312
|
+
/interface/ethernet/switch/port-isolation|menu|both
|
|
313
|
+
/interface/ethernet/switch/port-leakage|menu|published|||musicswitch
|
|
314
|
+
/interface/ethernet/switch/port/reset-counters|command|both
|
|
315
|
+
/interface/ethernet/switch/protocol-based-vlan|menu|published|||musicswitch
|
|
316
|
+
/interface/ethernet/switch/qos|menu|published|||rbswitch and crs_prestera
|
|
317
|
+
/interface/ethernet/switch/qos-group|menu|published|||musicswitch
|
|
318
|
+
/interface/ethernet/switch/qos/map|menu|published|||rbswitch and crs_prestera
|
|
319
|
+
/interface/ethernet/switch/qos/map/ip|menu|published|||rbswitch and crs_prestera
|
|
320
|
+
/interface/ethernet/switch/qos/map/vlan|menu|published|||rbswitch and crs_prestera
|
|
321
|
+
/interface/ethernet/switch/qos/monitor|command|published|||rbswitch and crs_prestera
|
|
322
|
+
/interface/ethernet/switch/qos/port|menu|published|||rbswitch and crs_prestera
|
|
323
|
+
/interface/ethernet/switch/qos/port/reset-counters|command|published|||rbswitch and crs_prestera
|
|
324
|
+
/interface/ethernet/switch/qos/priority-flow-control|menu|published|||rbswitch and crs_prestera and !prestera-ac3
|
|
325
|
+
/interface/ethernet/switch/qos/profile|menu|published|||rbswitch and crs_prestera
|
|
326
|
+
/interface/ethernet/switch/qos/settings|settings|published|||rbswitch and crs_prestera
|
|
327
|
+
/interface/ethernet/switch/qos/tx-manager|menu|published|||rbswitch and crs_prestera
|
|
328
|
+
/interface/ethernet/switch/qos/tx-manager/queue|menu|published|||rbswitch and crs_prestera
|
|
329
|
+
/interface/ethernet/switch/reserved-fdb|menu|published|||musicswitch
|
|
330
|
+
/interface/ethernet/switch/reset-counters|command|both
|
|
331
|
+
/interface/ethernet/switch/rule|menu|both|||rbswitch
|
|
332
|
+
/interface/ethernet/switch/shaper|menu|published|||musicswitch
|
|
333
|
+
/interface/ethernet/switch/stats|settings|published||!smips|musicswitch
|
|
334
|
+
/interface/ethernet/switch/trunk|menu|published|||musicswitch
|
|
335
|
+
/interface/ethernet/switch/unicast-fdb|menu|published|||musicswitch
|
|
336
|
+
/interface/ethernet/switch/unicast-fdb/flush|command|published|||musicswitch
|
|
337
|
+
/interface/ethernet/switch/vlan|menu|both
|
|
338
|
+
/interface/gre|menu|both
|
|
339
|
+
/interface/gre6|menu|both
|
|
340
|
+
/interface/ipip|menu|both
|
|
341
|
+
/interface/ipipv6|menu|both
|
|
342
|
+
/interface/l2tp-client|menu|both
|
|
343
|
+
/interface/l2tp-client/monitor|command|both
|
|
344
|
+
/interface/l2tp-ether|menu|both
|
|
345
|
+
/interface/l2tp-ether/monitor|command|both
|
|
346
|
+
/interface/l2tp-server|menu|both
|
|
347
|
+
/interface/l2tp-server/monitor|command|both
|
|
348
|
+
/interface/l2tp-server/server|settings|both
|
|
349
|
+
/interface/list|menu|both
|
|
350
|
+
/interface/list/member|menu|both
|
|
351
|
+
/interface/lte|menu|both||!smips
|
|
352
|
+
/interface/lte/apn|menu|both||!smips
|
|
353
|
+
/interface/lte/at-chat|command|both||!smips
|
|
354
|
+
/interface/lte/cell-monitor|command|both||!smips
|
|
355
|
+
/interface/lte/esim|menu|both||!smips
|
|
356
|
+
/interface/lte/esim/activate|command|both||!smips
|
|
357
|
+
/interface/lte/esim/deactivate|command|both||!smips
|
|
358
|
+
/interface/lte/esim/delete|command|both||!smips
|
|
359
|
+
/interface/lte/esim/esim-id|command|both||!smips
|
|
360
|
+
/interface/lte/esim/provision|command|both||!smips
|
|
361
|
+
/interface/lte/esim/refresh-profile-list|command|both||!smips
|
|
362
|
+
/interface/lte/esim/send-notifications|command|both||!smips
|
|
363
|
+
/interface/lte/esim/set-nickname|command|both||!smips
|
|
364
|
+
/interface/lte/firmware-upgrade|command|both||!smips
|
|
365
|
+
/interface/lte/monitor|command|both||!smips
|
|
366
|
+
/interface/lte/run-modem-update|command|published||!smips
|
|
367
|
+
/interface/lte/scan|command|both||!smips
|
|
368
|
+
/interface/lte/settings|settings|both||!smips, !i386, !mips, !powerpc
|
|
369
|
+
/interface/lte/show-capabilities|command|both||!smips
|
|
370
|
+
/interface/macsec|menu|both||!smips
|
|
371
|
+
/interface/macsec/monitor|command|both||!smips
|
|
372
|
+
/interface/macsec/profile|menu|both||!smips
|
|
373
|
+
/interface/macvlan|menu|both
|
|
374
|
+
/interface/mesh|menu|both
|
|
375
|
+
/interface/mesh/fdb|menu|both
|
|
376
|
+
/interface/mesh/port|menu|both
|
|
377
|
+
/interface/mesh/traceroute|command|both
|
|
378
|
+
/interface/monitor-traffic|command|both
|
|
379
|
+
/interface/ovpn-client|menu|both
|
|
380
|
+
/interface/ovpn-client/import-ovpn-configuration|command|both
|
|
381
|
+
/interface/ovpn-client/monitor|command|both
|
|
382
|
+
/interface/ovpn-server|menu|both
|
|
383
|
+
/interface/ovpn-server/monitor|command|both
|
|
384
|
+
/interface/ovpn-server/server|menu|both
|
|
385
|
+
/interface/ovpn-server/server/export-client-configuration|command|both
|
|
386
|
+
/interface/ppp-client|menu|both
|
|
387
|
+
/interface/ppp-client/at-chat|command|both
|
|
388
|
+
/interface/ppp-client/firmware-upgrade|command|both
|
|
389
|
+
/interface/ppp-client/info|command|both
|
|
390
|
+
/interface/ppp-client/monitor|command|both
|
|
391
|
+
/interface/ppp-client/scan|command|both
|
|
392
|
+
/interface/ppp-server|menu|both
|
|
393
|
+
/interface/ppp-server/monitor|command|both
|
|
394
|
+
/interface/pppoe-client|menu|both
|
|
395
|
+
/interface/pppoe-client/monitor|command|both
|
|
396
|
+
/interface/pppoe-client/scan|command|both
|
|
397
|
+
/interface/pppoe-server|menu|both
|
|
398
|
+
/interface/pppoe-server/monitor|command|both
|
|
399
|
+
/interface/pppoe-server/server|menu|both
|
|
400
|
+
/interface/pptp-client|menu|both
|
|
401
|
+
/interface/pptp-client/monitor|command|both
|
|
402
|
+
/interface/pptp-server|menu|both
|
|
403
|
+
/interface/pptp-server/monitor|command|both
|
|
404
|
+
/interface/pptp-server/server|settings|both
|
|
405
|
+
/interface/pwr-line|menu|published|||pwrlink
|
|
406
|
+
/interface/pwr-line/blink|command|published|||pwrlink
|
|
407
|
+
/interface/pwr-line/configure|command|published|||pwrlink
|
|
408
|
+
/interface/pwr-line/join|command|published|||pwrlink
|
|
409
|
+
/interface/pwr-line/leave|command|published|||pwrlink
|
|
410
|
+
/interface/pwr-line/monitor|command|published|||pwrlink
|
|
411
|
+
/interface/pwr-line/reset-counters|command|published|||pwrlink
|
|
412
|
+
/interface/pwr-line/reset-mac-address|command|published|||pwrlink
|
|
413
|
+
/interface/pwr-line/upgrade-firmware|command|published|||pwrlink
|
|
414
|
+
/interface/reset-counters|command|both
|
|
415
|
+
/interface/sstp-client|menu|both
|
|
416
|
+
/interface/sstp-client/monitor|command|both
|
|
417
|
+
/interface/sstp-server|menu|both
|
|
418
|
+
/interface/sstp-server/monitor|command|both
|
|
419
|
+
/interface/sstp-server/server|settings|both
|
|
420
|
+
/interface/veth|menu|both||!smips|container
|
|
421
|
+
/interface/vlan|menu|both||!smips
|
|
422
|
+
/interface/vpls|menu|both||!smips
|
|
423
|
+
/interface/vpls/monitor|command|both||!smips
|
|
424
|
+
/interface/vrrp|menu|both
|
|
425
|
+
/interface/vxlan|menu|both
|
|
426
|
+
/interface/vxlan/fdb|menu|both
|
|
427
|
+
/interface/vxlan/vteps|menu|both
|
|
428
|
+
/interface/w60g|menu|published|wireless-rep||60ghz
|
|
429
|
+
/interface/w60g/align|command|published|wireless-rep||60ghz
|
|
430
|
+
/interface/w60g/monitor|command|published|wireless-rep||60ghz
|
|
431
|
+
/interface/w60g/reset-configuration|command|published|wireless-rep||60ghz
|
|
432
|
+
/interface/w60g/scan|command|published|wireless-rep||60ghz
|
|
433
|
+
/interface/w60g/station|menu|published|wireless-rep||60ghz
|
|
434
|
+
/interface/w60g/station/monitor|command|published|wireless-rep||60ghz
|
|
435
|
+
/interface/wifi|menu|both
|
|
436
|
+
/interface/wifi/aaa|menu|both
|
|
437
|
+
/interface/wifi/access-list|menu|both
|
|
438
|
+
/interface/wifi/cap|settings|both
|
|
439
|
+
/interface/wifi/capsman|settings|both
|
|
440
|
+
/interface/wifi/capsman/remote-cap|menu|both
|
|
441
|
+
/interface/wifi/capsman/remote-cap/provision|command|both
|
|
442
|
+
/interface/wifi/capsman/remote-cap/set-identity|command|both
|
|
443
|
+
/interface/wifi/capsman/remote-cap/upgrade|command|both
|
|
444
|
+
/interface/wifi/channel|menu|both
|
|
445
|
+
/interface/wifi/configuration|menu|both
|
|
446
|
+
/interface/wifi/datapath|menu|both
|
|
447
|
+
/interface/wifi/devel|command|both
|
|
448
|
+
/interface/wifi/flat-snoop|command|both
|
|
449
|
+
/interface/wifi/frequency-scan|command|both
|
|
450
|
+
/interface/wifi/interworking|menu|both
|
|
451
|
+
/interface/wifi/liberate|command|both
|
|
452
|
+
/interface/wifi/monitor|command|both
|
|
453
|
+
/interface/wifi/network|menu|both
|
|
454
|
+
/interface/wifi/network/radio|menu|both
|
|
455
|
+
/interface/wifi/provisioning|menu|both
|
|
456
|
+
/interface/wifi/radio|menu|both
|
|
457
|
+
/interface/wifi/radio/provision|command|both
|
|
458
|
+
/interface/wifi/radio/reg-info|command|both
|
|
459
|
+
/interface/wifi/radio/settings|settings|both
|
|
460
|
+
/interface/wifi/registration-table|menu|both
|
|
461
|
+
/interface/wifi/reset-mac-address|command|both
|
|
462
|
+
/interface/wifi/roam|command|both
|
|
463
|
+
/interface/wifi/scan|command|both
|
|
464
|
+
/interface/wifi/security|menu|both
|
|
465
|
+
/interface/wifi/security/multi-passphrase|menu|both
|
|
466
|
+
/interface/wifi/sniffer|command|both
|
|
467
|
+
/interface/wifi/spectral-scan|command|both
|
|
468
|
+
/interface/wifi/steering|menu|both
|
|
469
|
+
/interface/wifi/steering/neighbor-group|menu|both
|
|
470
|
+
/interface/wifi/trigger-radar|command|published|||dfstest
|
|
471
|
+
/interface/wifi/wps-client|command|both
|
|
472
|
+
/interface/wifi/wps-push-button|command|both
|
|
473
|
+
/interface/wifiwave2|menu|inspect
|
|
474
|
+
/interface/wifiwave2/aaa|menu|inspect
|
|
475
|
+
/interface/wifiwave2/access-list|menu|inspect
|
|
476
|
+
/interface/wifiwave2/actual-configuration|menu|inspect
|
|
477
|
+
/interface/wifiwave2/cap|menu|inspect
|
|
478
|
+
/interface/wifiwave2/capsman|menu|inspect
|
|
479
|
+
/interface/wifiwave2/capsman/remote-cap|menu|inspect
|
|
480
|
+
/interface/wifiwave2/channel|menu|inspect
|
|
481
|
+
/interface/wifiwave2/configuration|menu|inspect
|
|
482
|
+
/interface/wifiwave2/datapath|menu|inspect
|
|
483
|
+
/interface/wifiwave2/interworking|menu|inspect
|
|
484
|
+
/interface/wifiwave2/provisioning|menu|inspect
|
|
485
|
+
/interface/wifiwave2/radio|menu|inspect
|
|
486
|
+
/interface/wifiwave2/registration-table|menu|inspect
|
|
487
|
+
/interface/wifiwave2/security|menu|inspect
|
|
488
|
+
/interface/wireguard|menu|both
|
|
489
|
+
/interface/wireguard/peers|menu|both
|
|
490
|
+
/interface/wireguard/peers/show-client-config|command|both
|
|
491
|
+
/interface/wireguard/wg-export|command|both
|
|
492
|
+
/interface/wireguard/wg-import|command|both
|
|
493
|
+
/interface/wireless|menu|both|wireless-rep
|
|
494
|
+
/interface/wireless/access-list|menu|both|wireless-rep
|
|
495
|
+
/interface/wireless/align|settings|both|wireless-rep
|
|
496
|
+
/interface/wireless/align/monitor|command|both|wireless-rep
|
|
497
|
+
/interface/wireless/align/test-audio|command|both|wireless-rep
|
|
498
|
+
/interface/wireless/cap|settings|both|wireless-rep
|
|
499
|
+
/interface/wireless/channels|menu|both|wireless-rep
|
|
500
|
+
/interface/wireless/connect-list|menu|both|wireless-rep
|
|
501
|
+
/interface/wireless/frequency-monitor|command|both|wireless-rep
|
|
502
|
+
/interface/wireless/info|menu|both|wireless-rep
|
|
503
|
+
/interface/wireless/info/allowed-channels|command|both|wireless-rep
|
|
504
|
+
/interface/wireless/info/country-info|command|both|wireless-rep
|
|
505
|
+
/interface/wireless/info/country-list|command|both|wireless-rep
|
|
506
|
+
/interface/wireless/info/default-scan-list|command|both|wireless-rep
|
|
507
|
+
/interface/wireless/info/hw-info|command|both|wireless-rep
|
|
508
|
+
/interface/wireless/info/scan-list|command|both|wireless-rep
|
|
509
|
+
/interface/wireless/interworking-profiles|menu|both|wireless-rep
|
|
510
|
+
/interface/wireless/manual-tx-power-table|menu|both|wireless-rep
|
|
511
|
+
/interface/wireless/monitor|command|both|wireless-rep
|
|
512
|
+
/interface/wireless/nstreme|menu|both|wireless-rep
|
|
513
|
+
/interface/wireless/nstreme-dual|menu|both|wireless-rep
|
|
514
|
+
/interface/wireless/nstreme-dual/monitor|command|both|wireless-rep
|
|
515
|
+
/interface/wireless/nstreme-dual/reset-counters|command|both|wireless-rep
|
|
516
|
+
/interface/wireless/registration-table|menu|both|wireless-rep
|
|
517
|
+
/interface/wireless/registration-table/reset-counters|command|both|wireless-rep
|
|
518
|
+
/interface/wireless/reset-configuration|command|both|wireless-rep
|
|
519
|
+
/interface/wireless/reset-mac-address|command|both|wireless-rep
|
|
520
|
+
/interface/wireless/scan|command|both|wireless-rep
|
|
521
|
+
/interface/wireless/security-profiles|menu|both|wireless-rep
|
|
522
|
+
/interface/wireless/setup-repeater|command|both|wireless-rep
|
|
523
|
+
/interface/wireless/sniffer|settings|both|wireless-rep
|
|
524
|
+
/interface/wireless/sniffer/packet|menu|both|wireless-rep
|
|
525
|
+
/interface/wireless/sniffer/save|command|both|wireless-rep
|
|
526
|
+
/interface/wireless/sniffer/sniff|command|both|wireless-rep
|
|
527
|
+
/interface/wireless/snooper|settings|both|wireless-rep
|
|
528
|
+
/interface/wireless/snooper/flat-snoop|command|both|wireless-rep
|
|
529
|
+
/interface/wireless/spectral-scan|command|both|wireless-rep
|
|
530
|
+
/interface/wireless/wds|menu|both|wireless-rep
|
|
531
|
+
/interface/wireless/wds/monitor|command|both|wireless-rep
|
|
532
|
+
/interface/wireless/wps-client|command|both|wireless-rep
|
|
533
|
+
/interface/wireless/wps-push-button|command|both|wireless-rep
|
|
534
|
+
/interface/xfrm|menu|published
|
|
535
|
+
/iot|menu|inspect
|
|
536
|
+
/iot/bluetooth|menu|both|iot
|
|
537
|
+
/iot/bluetooth/advertisers|menu|both|iot
|
|
538
|
+
/iot/bluetooth/advertisers/ad-structures|menu|both|iot
|
|
539
|
+
/iot/bluetooth/connections|menu|both|iot
|
|
540
|
+
/iot/bluetooth/connections/async-data|menu|both|iot
|
|
541
|
+
/iot/bluetooth/connections/async-data/clear|command|both|iot
|
|
542
|
+
/iot/bluetooth/connections/characteristics|menu|both|iot
|
|
543
|
+
/iot/bluetooth/connections/connect|command|both|iot
|
|
544
|
+
/iot/bluetooth/connections/disconnect|command|both|iot
|
|
545
|
+
/iot/bluetooth/connections/read|command|both|iot
|
|
546
|
+
/iot/bluetooth/connections/subscribe|command|both|iot
|
|
547
|
+
/iot/bluetooth/connections/unsubscribe|command|both|iot
|
|
548
|
+
/iot/bluetooth/connections/write|command|both|iot
|
|
549
|
+
/iot/bluetooth/connections/write-no-resp|command|both|iot
|
|
550
|
+
/iot/bluetooth/decode-ad|command|both|iot
|
|
551
|
+
/iot/bluetooth/peripheral-devices|menu|both|iot
|
|
552
|
+
/iot/bluetooth/reset-counters|command|both|iot
|
|
553
|
+
/iot/bluetooth/scanners|menu|both|iot
|
|
554
|
+
/iot/bluetooth/scanners/advertisements|menu|both|iot
|
|
555
|
+
/iot/bluetooth/scanners/advertisements/clear|command|both|iot
|
|
556
|
+
/iot/bluetooth/whitelist|menu|both|iot
|
|
557
|
+
/iot/gpio|menu|published|iot||gpio
|
|
558
|
+
/iot/gpio/analog|menu|published|iot||gpio
|
|
559
|
+
/iot/gpio/digital|menu|published|iot||gpio
|
|
560
|
+
/iot/lora|menu|both|iot
|
|
561
|
+
/iot/lora/channels|menu|both|iot
|
|
562
|
+
/iot/lora/joineui|menu|both|iot
|
|
563
|
+
/iot/lora/netid|menu|both|iot
|
|
564
|
+
/iot/lora/radios|menu|both|iot
|
|
565
|
+
/iot/lora/reset-devices|command|both|iot
|
|
566
|
+
/iot/lora/send|command|both|iot
|
|
567
|
+
/iot/lora/servers|menu|both|iot
|
|
568
|
+
/iot/lora/servers/reset-servers|command|both|iot
|
|
569
|
+
/iot/lora/traffic|menu|both|iot
|
|
570
|
+
/iot/lora/traffic/clear|command|both|iot
|
|
571
|
+
/iot/lora/traffic/options|settings|both|iot
|
|
572
|
+
/iot/modbus|settings|both|iot
|
|
573
|
+
/iot/modbus/read-holding-registers|command|both|iot
|
|
574
|
+
/iot/modbus/security-rules|menu|both|iot
|
|
575
|
+
/iot/modbus/transceive|command|both|iot
|
|
576
|
+
/iot/mqtt|settings|both|iot
|
|
577
|
+
/iot/mqtt/brokers|menu|both|iot
|
|
578
|
+
/iot/mqtt/connect|command|both|iot
|
|
579
|
+
/iot/mqtt/disconnect|command|both|iot
|
|
580
|
+
/iot/mqtt/publish|command|both|iot
|
|
581
|
+
/iot/mqtt/subscribe|command|both|iot
|
|
582
|
+
/iot/mqtt/subscriptions|menu|both|iot
|
|
583
|
+
/iot/mqtt/subscriptions/monitor-data|command|both|iot
|
|
584
|
+
/iot/mqtt/subscriptions/recv|menu|both|iot
|
|
585
|
+
/iot/mqtt/subscriptions/recv/clear|command|both|iot
|
|
586
|
+
/iot/mqtt/unsubscribe|command|both|iot
|
|
587
|
+
/iot/wiliot|settings|both|iot
|
|
588
|
+
/iot/wiliot/bluetooth-traffic|menu|both|iot
|
|
589
|
+
/iot/wiliot/bluetooth-traffic/clear|command|both|iot
|
|
590
|
+
/iot/wiliot/clear|command|both|iot
|
|
591
|
+
/iot/wiliot/disable|command|both|iot
|
|
592
|
+
/iot/wiliot/enable|command|both|iot
|
|
593
|
+
/iot/wiliot/mqtt-traffic|menu|both|iot
|
|
594
|
+
/iot/wiliot/mqtt-traffic/clear|command|both|iot
|
|
595
|
+
/iot/wiliot/options|settings|both|iot
|
|
596
|
+
/iot/wiliot/servers|menu|both|iot
|
|
597
|
+
/iot/wiliot/servers/defaults|command|both|iot
|
|
598
|
+
/ip|menu|inspect
|
|
599
|
+
/ip/address|menu|both
|
|
600
|
+
/ip/arp|menu|both
|
|
601
|
+
/ip/cloud|settings|both
|
|
602
|
+
/ip/cloud/advanced|settings|both
|
|
603
|
+
/ip/cloud/back-to-home-file|menu|both|||cloud-vpn
|
|
604
|
+
/ip/cloud/back-to-home-file/settings|settings|both|||cloud-vpn
|
|
605
|
+
/ip/cloud/back-to-home-file/settings/remove-certificate|command|published|||cloud-vpn
|
|
606
|
+
/ip/cloud/back-to-home-user|menu|both|||cloud-vpn
|
|
607
|
+
/ip/cloud/back-to-home-user/show-client-config|command|both|||cloud-vpn
|
|
608
|
+
/ip/cloud/force-update|command|both
|
|
609
|
+
/ip/dhcp-client|menu|both
|
|
610
|
+
/ip/dhcp-client/option|menu|both
|
|
611
|
+
/ip/dhcp-client/release|command|both
|
|
612
|
+
/ip/dhcp-client/renew|command|both
|
|
613
|
+
/ip/dhcp-relay|menu|both
|
|
614
|
+
/ip/dhcp-relay/monitor|command|both
|
|
615
|
+
/ip/dhcp-relay/reset-counters|command|both
|
|
616
|
+
/ip/dhcp-server|menu|both
|
|
617
|
+
/ip/dhcp-server/alert|menu|both
|
|
618
|
+
/ip/dhcp-server/alert/reset-alert|command|both
|
|
619
|
+
/ip/dhcp-server/config|settings|both
|
|
620
|
+
/ip/dhcp-server/lease|menu|both
|
|
621
|
+
/ip/dhcp-server/lease/check-status|command|both
|
|
622
|
+
/ip/dhcp-server/lease/make-static|command|both
|
|
623
|
+
/ip/dhcp-server/lease/send-reconfigure|command|both
|
|
624
|
+
/ip/dhcp-server/matcher|menu|both
|
|
625
|
+
/ip/dhcp-server/network|menu|both
|
|
626
|
+
/ip/dhcp-server/option|menu|both
|
|
627
|
+
/ip/dhcp-server/option/sets|menu|both
|
|
628
|
+
/ip/dhcp-server/setup|command|both
|
|
629
|
+
/ip/dns|settings|both
|
|
630
|
+
/ip/dns/adlist|menu|both
|
|
631
|
+
/ip/dns/adlist/pause|command|both
|
|
632
|
+
/ip/dns/adlist/reload|command|both
|
|
633
|
+
/ip/dns/cache|menu|both
|
|
634
|
+
/ip/dns/cache/all|menu|both
|
|
635
|
+
/ip/dns/cache/flush|command|both
|
|
636
|
+
/ip/dns/forwarders|menu|both
|
|
637
|
+
/ip/dns/static|menu|both
|
|
638
|
+
/ip/firewall|menu|inspect
|
|
639
|
+
/ip/firewall/address-list|menu|both
|
|
640
|
+
/ip/firewall/calea|menu|both
|
|
641
|
+
/ip/firewall/calea/reset-counters|command|both
|
|
642
|
+
/ip/firewall/calea/reset-counters-all|command|both
|
|
643
|
+
/ip/firewall/connection|menu|both
|
|
644
|
+
/ip/firewall/connection/tracking|settings|both
|
|
645
|
+
/ip/firewall/filter|menu|both
|
|
646
|
+
/ip/firewall/filter/reset-counters|command|both
|
|
647
|
+
/ip/firewall/filter/reset-counters-all|command|both
|
|
648
|
+
/ip/firewall/layer7-protocol|menu|both
|
|
649
|
+
/ip/firewall/mangle|menu|both
|
|
650
|
+
/ip/firewall/mangle/reset-counters|command|both
|
|
651
|
+
/ip/firewall/mangle/reset-counters-all|command|both
|
|
652
|
+
/ip/firewall/nat|menu|both
|
|
653
|
+
/ip/firewall/nat/reset-counters|command|both
|
|
654
|
+
/ip/firewall/nat/reset-counters-all|command|both
|
|
655
|
+
/ip/firewall/raw|menu|both
|
|
656
|
+
/ip/firewall/raw/reset-counters|command|both
|
|
657
|
+
/ip/firewall/raw/reset-counters-all|command|both
|
|
658
|
+
/ip/firewall/service-port|menu|both
|
|
659
|
+
/ip/hotspot|menu|both
|
|
660
|
+
/ip/hotspot/active|menu|both
|
|
661
|
+
/ip/hotspot/active/login|command|both
|
|
662
|
+
/ip/hotspot/cookie|menu|both
|
|
663
|
+
/ip/hotspot/host|menu|both
|
|
664
|
+
/ip/hotspot/host/make-binding|command|both
|
|
665
|
+
/ip/hotspot/ip-binding|menu|both
|
|
666
|
+
/ip/hotspot/profile|menu|both
|
|
667
|
+
/ip/hotspot/reset-html|command|both
|
|
668
|
+
/ip/hotspot/service-port|menu|both
|
|
669
|
+
/ip/hotspot/setup|command|both
|
|
670
|
+
/ip/hotspot/user|menu|both
|
|
671
|
+
/ip/hotspot/user/profile|menu|both
|
|
672
|
+
/ip/hotspot/user/reset-counters|command|both
|
|
673
|
+
/ip/hotspot/walled-garden|menu|both
|
|
674
|
+
/ip/hotspot/walled-garden/ip|menu|both
|
|
675
|
+
/ip/hotspot/walled-garden/reset-counters|command|both
|
|
676
|
+
/ip/hotspot/walled-garden/reset-counters-all|command|both
|
|
677
|
+
/ip/ipsec|menu|both
|
|
678
|
+
/ip/ipsec/active-peers|menu|both
|
|
679
|
+
/ip/ipsec/active-peers/kill-connections|command|both
|
|
680
|
+
/ip/ipsec/identity|menu|both
|
|
681
|
+
/ip/ipsec/installed-sa|menu|both
|
|
682
|
+
/ip/ipsec/installed-sa/flush|command|both
|
|
683
|
+
/ip/ipsec/key|menu|both
|
|
684
|
+
/ip/ipsec/key/psk|menu|both
|
|
685
|
+
/ip/ipsec/key/psk/generate|command|both
|
|
686
|
+
/ip/ipsec/key/qkd|menu|inspect
|
|
687
|
+
/ip/ipsec/key/rsa|menu|both
|
|
688
|
+
/ip/ipsec/key/rsa/export-pub-key|command|both
|
|
689
|
+
/ip/ipsec/key/rsa/generate-key|command|both
|
|
690
|
+
/ip/ipsec/key/rsa/import|command|both
|
|
691
|
+
/ip/ipsec/mode-config|menu|both
|
|
692
|
+
/ip/ipsec/peer|menu|both
|
|
693
|
+
/ip/ipsec/policy|menu|both
|
|
694
|
+
/ip/ipsec/policy/group|menu|both
|
|
695
|
+
/ip/ipsec/profile|menu|both
|
|
696
|
+
/ip/ipsec/proposal|menu|both
|
|
697
|
+
/ip/ipsec/settings|settings|both
|
|
698
|
+
/ip/ipsec/statistics|settings|both
|
|
699
|
+
/ip/kid-control|menu|both
|
|
700
|
+
/ip/kid-control/device|menu|both
|
|
701
|
+
/ip/kid-control/device/reset-counters|command|both
|
|
702
|
+
/ip/kid-control/pause|command|both
|
|
703
|
+
/ip/kid-control/resume|command|both
|
|
704
|
+
/ip/media|menu|both||!smips
|
|
705
|
+
/ip/media/settings|settings|both||!smips
|
|
706
|
+
/ip/nat-pmp|settings|both
|
|
707
|
+
/ip/nat-pmp/interfaces|menu|both
|
|
708
|
+
/ip/neighbor|menu|both
|
|
709
|
+
/ip/neighbor/discovery-settings|settings|both
|
|
710
|
+
/ip/neighbor/lldp|menu|both
|
|
711
|
+
/ip/packing|menu|both
|
|
712
|
+
/ip/pool|menu|both
|
|
713
|
+
/ip/pool/used|menu|both
|
|
714
|
+
/ip/proxy|settings|both
|
|
715
|
+
/ip/proxy/access|menu|both
|
|
716
|
+
/ip/proxy/access/reset-counters|command|both
|
|
717
|
+
/ip/proxy/access/reset-counters-all|command|both
|
|
718
|
+
/ip/proxy/cache|menu|both
|
|
719
|
+
/ip/proxy/cache-contents|menu|both
|
|
720
|
+
/ip/proxy/cache/reset-counters|command|both
|
|
721
|
+
/ip/proxy/cache/reset-counters-all|command|both
|
|
722
|
+
/ip/proxy/clear-cache|command|both
|
|
723
|
+
/ip/proxy/connections|menu|both
|
|
724
|
+
/ip/proxy/direct|menu|both
|
|
725
|
+
/ip/proxy/direct/reset-counters|command|both
|
|
726
|
+
/ip/proxy/direct/reset-counters-all|command|both
|
|
727
|
+
/ip/proxy/inserts|settings|both
|
|
728
|
+
/ip/proxy/lookups|settings|both
|
|
729
|
+
/ip/proxy/monitor|command|both
|
|
730
|
+
/ip/proxy/refreshes|settings|both
|
|
731
|
+
/ip/proxy/reset-html|command|both
|
|
732
|
+
/ip/reverse-proxy|menu|both||!smips
|
|
733
|
+
/ip/route|menu|both
|
|
734
|
+
/ip/route/check|command|both
|
|
735
|
+
/ip/service|menu|both
|
|
736
|
+
/ip/service/webserver|settings|both
|
|
737
|
+
/ip/settings|settings|both
|
|
738
|
+
/ip/smb|settings|both||!smips
|
|
739
|
+
/ip/smb/shares|menu|both||!smips
|
|
740
|
+
/ip/smb/users|menu|both||!smips
|
|
741
|
+
/ip/socks|settings|both
|
|
742
|
+
/ip/socks/access|menu|both
|
|
743
|
+
/ip/socks/connections|menu|both
|
|
744
|
+
/ip/socks/users|menu|both
|
|
745
|
+
/ip/socksify|menu|both
|
|
746
|
+
/ip/ssh|settings|both
|
|
747
|
+
/ip/ssh/export-host-key|command|both
|
|
748
|
+
/ip/ssh/import-host-key|command|both
|
|
749
|
+
/ip/ssh/regenerate-host-key|command|both
|
|
750
|
+
/ip/tftp|menu|both
|
|
751
|
+
/ip/tftp/settings|settings|both
|
|
752
|
+
/ip/traffic-flow|settings|both
|
|
753
|
+
/ip/traffic-flow/ipfix|settings|both
|
|
754
|
+
/ip/traffic-flow/monitor|command|both
|
|
755
|
+
/ip/traffic-flow/target|menu|both
|
|
756
|
+
/ip/upnp|settings|both
|
|
757
|
+
/ip/upnp/interfaces|menu|both
|
|
758
|
+
/ip/vrf|menu|both
|
|
759
|
+
/ipv6|menu|inspect
|
|
760
|
+
/ipv6/address|menu|both
|
|
761
|
+
/ipv6/dhcp-client|menu|both
|
|
762
|
+
/ipv6/dhcp-client/option|menu|both
|
|
763
|
+
/ipv6/dhcp-client/release|command|both
|
|
764
|
+
/ipv6/dhcp-client/renew|command|both
|
|
765
|
+
/ipv6/dhcp-relay|menu|both
|
|
766
|
+
/ipv6/dhcp-relay/monitor|command|both
|
|
767
|
+
/ipv6/dhcp-relay/option|menu|both
|
|
768
|
+
/ipv6/dhcp-relay/reset-counters|command|both
|
|
769
|
+
/ipv6/dhcp-relay/routes|menu|both
|
|
770
|
+
/ipv6/dhcp-server|menu|both
|
|
771
|
+
/ipv6/dhcp-server/binding|menu|both
|
|
772
|
+
/ipv6/dhcp-server/binding/make-static|command|both
|
|
773
|
+
/ipv6/dhcp-server/binding/send-reconfigure|command|both
|
|
774
|
+
/ipv6/dhcp-server/option|menu|both
|
|
775
|
+
/ipv6/dhcp-server/option/sets|menu|both
|
|
776
|
+
/ipv6/firewall|menu|inspect
|
|
777
|
+
/ipv6/firewall/address-list|menu|both
|
|
778
|
+
/ipv6/firewall/connection|menu|both
|
|
779
|
+
/ipv6/firewall/filter|menu|both
|
|
780
|
+
/ipv6/firewall/filter/reset-counters|command|both
|
|
781
|
+
/ipv6/firewall/filter/reset-counters-all|command|both
|
|
782
|
+
/ipv6/firewall/mangle|menu|both
|
|
783
|
+
/ipv6/firewall/mangle/reset-counters|command|both
|
|
784
|
+
/ipv6/firewall/mangle/reset-counters-all|command|both
|
|
785
|
+
/ipv6/firewall/nat|menu|both
|
|
786
|
+
/ipv6/firewall/nat/reset-counters|command|both
|
|
787
|
+
/ipv6/firewall/nat/reset-counters-all|command|both
|
|
788
|
+
/ipv6/firewall/raw|menu|both
|
|
789
|
+
/ipv6/firewall/raw/reset-counters|command|both
|
|
790
|
+
/ipv6/firewall/raw/reset-counters-all|command|both
|
|
791
|
+
/ipv6/nd|menu|both
|
|
792
|
+
/ipv6/nd/prefix|menu|both
|
|
793
|
+
/ipv6/nd/prefix/default|settings|both
|
|
794
|
+
/ipv6/nd/proxy|menu|both
|
|
795
|
+
/ipv6/nd/settings|settings|both
|
|
796
|
+
/ipv6/neighbor|menu|both
|
|
797
|
+
/ipv6/pool|menu|both
|
|
798
|
+
/ipv6/pool/used|menu|both
|
|
799
|
+
/ipv6/route|menu|both
|
|
800
|
+
/ipv6/settings|settings|both
|
|
801
|
+
/lcd|settings|published||!smips|lcd
|
|
802
|
+
/lcd/backlight|command|published||!smips|lcd
|
|
803
|
+
/lcd/interface|menu|published||!smips|lcd
|
|
804
|
+
/lcd/interface/default-wireless|command|published||!smips|lcd
|
|
805
|
+
/lcd/interface/display|command|published||!smips|lcd
|
|
806
|
+
/lcd/interface/pages|menu|published||!smips|lcd
|
|
807
|
+
/lcd/pin|settings|published||!smips|lcd
|
|
808
|
+
/lcd/recalibrate|command|published||!smips|lcd
|
|
809
|
+
/lcd/screen|menu|published||!smips|lcd
|
|
810
|
+
/lcd/show|command|published||!smips|lcd
|
|
811
|
+
/lcd/take-screenshot|command|published||!smips|lcd
|
|
812
|
+
/log|menu|both
|
|
813
|
+
/lora|menu|inspect
|
|
814
|
+
/lora/channels|menu|inspect
|
|
815
|
+
/lora/joineui|menu|inspect
|
|
816
|
+
/lora/netid|menu|inspect
|
|
817
|
+
/lora/radios|menu|inspect
|
|
818
|
+
/lora/servers|menu|inspect
|
|
819
|
+
/mpls|menu|inspect
|
|
820
|
+
/mpls/forwarding-table|menu|both||!smips
|
|
821
|
+
/mpls/interface|menu|both||!smips
|
|
822
|
+
/mpls/ldp|menu|both||!smips
|
|
823
|
+
/mpls/ldp/accept-filter|menu|both||!smips
|
|
824
|
+
/mpls/ldp/advertise-filter|menu|both||!smips
|
|
825
|
+
/mpls/ldp/interface|menu|both||!smips
|
|
826
|
+
/mpls/ldp/local-mapping|menu|both||!smips
|
|
827
|
+
/mpls/ldp/neighbor|menu|both||!smips
|
|
828
|
+
/mpls/ldp/remote-mapping|menu|both||!smips
|
|
829
|
+
/mpls/mangle|menu|both
|
|
830
|
+
/mpls/mangle/reset-counters|command|both
|
|
831
|
+
/mpls/mangle/reset-counters-all|command|both
|
|
832
|
+
/mpls/settings|settings|both||!smips
|
|
833
|
+
/mpls/traffic-eng|menu|both||!smips
|
|
834
|
+
/mpls/traffic-eng/flow|menu|both||!smips
|
|
835
|
+
/mpls/traffic-eng/interface|menu|both||!smips
|
|
836
|
+
/mpls/traffic-eng/path|menu|both||!smips
|
|
837
|
+
/mpls/traffic-eng/tunnel|menu|both||!smips
|
|
838
|
+
/mpls/traffic-eng/tunnel/reoptimize|command|both||!smips
|
|
839
|
+
/openflow|menu|both|openflow
|
|
840
|
+
/openflow/flow|menu|both|openflow
|
|
841
|
+
/openflow/group|menu|both|openflow
|
|
842
|
+
/openflow/meter|menu|both|openflow
|
|
843
|
+
/openflow/port|menu|both|openflow
|
|
844
|
+
/partitions|menu|published||!i386, !smips, !mmips|partitions
|
|
845
|
+
/partitions/activate|command|published||!i386, !smips, !mmips|partitions
|
|
846
|
+
/partitions/copy-to|command|published||!i386, !smips, !mmips|partitions
|
|
847
|
+
/partitions/repartition|command|published||!i386, !smips, !mmips|partitions
|
|
848
|
+
/partitions/restore-config-from|command|published||!i386, !smips, !mmips|partitions
|
|
849
|
+
/partitions/save-config-to|command|published||!i386, !smips, !mmips|partitions
|
|
850
|
+
/password|command|both
|
|
851
|
+
/port|menu|both
|
|
852
|
+
/port/remote-access|menu|both
|
|
853
|
+
/ppp|menu|both
|
|
854
|
+
/ppp/aaa|settings|both
|
|
855
|
+
/ppp/active|menu|both
|
|
856
|
+
/ppp/l2tp-secret|menu|both
|
|
857
|
+
/ppp/profile|menu|both
|
|
858
|
+
/ppp/secret|menu|both
|
|
859
|
+
/queue|menu|inspect
|
|
860
|
+
/queue/interface|menu|both
|
|
861
|
+
/queue/monitor|command|both
|
|
862
|
+
/queue/simple|menu|both
|
|
863
|
+
/queue/simple/reset-counters|command|both
|
|
864
|
+
/queue/simple/reset-counters-all|command|both
|
|
865
|
+
/queue/tree|menu|both
|
|
866
|
+
/queue/tree/reset-counters|command|both
|
|
867
|
+
/queue/tree/reset-counters-all|command|both
|
|
868
|
+
/queue/type|menu|both
|
|
869
|
+
/quit|command|both
|
|
870
|
+
/radius|menu|both
|
|
871
|
+
/radius/incoming|settings|both
|
|
872
|
+
/radius/incoming/monitor|command|both
|
|
873
|
+
/radius/incoming/reset-counters|command|both
|
|
874
|
+
/radius/monitor|command|both
|
|
875
|
+
/radius/reset-counters|command|both
|
|
876
|
+
/redo|command|both
|
|
877
|
+
/root|menu|published||CONSOLE_DEBUG
|
|
878
|
+
/root/terminal|menu|published
|
|
879
|
+
/routing|menu|inspect
|
|
880
|
+
/routing/bfd|menu|both||BFD_AUTHENTICATION
|
|
881
|
+
/routing/bfd/authentication|menu|published||BFD_AUTHENTICATION
|
|
882
|
+
/routing/bfd/configuration|menu|both||BFD_AUTHENTICATION
|
|
883
|
+
/routing/bfd/session|menu|both
|
|
884
|
+
/routing/bgp|menu|both||!smips
|
|
885
|
+
/routing/bgp/advertisements|menu|both||!smips
|
|
886
|
+
/routing/bgp/connection|menu|both||!smips
|
|
887
|
+
/routing/bgp/evpn|menu|both||!smips
|
|
888
|
+
/routing/bgp/instance|menu|both||!smips
|
|
889
|
+
/routing/bgp/session|menu|both||!smips
|
|
890
|
+
/routing/bgp/session/clear|command|both||!smips
|
|
891
|
+
/routing/bgp/session/dump-saved-advertisements|command|both||!smips
|
|
892
|
+
/routing/bgp/session/refresh|command|both||!smips
|
|
893
|
+
/routing/bgp/session/resend|command|both||!smips
|
|
894
|
+
/routing/bgp/session/stop|command|both||!smips
|
|
895
|
+
/routing/bgp/template|menu|both||!smips
|
|
896
|
+
/routing/bgp/vpls|menu|both||!smips
|
|
897
|
+
/routing/bgp/vpn|menu|both||!smips
|
|
898
|
+
/routing/discourse|command|both
|
|
899
|
+
/routing/fantasy|menu|both
|
|
900
|
+
/routing/filter|menu|both
|
|
901
|
+
/routing/filter/chain|menu|both
|
|
902
|
+
/routing/filter/community-ext-list|menu|both
|
|
903
|
+
/routing/filter/community-large-list|menu|both
|
|
904
|
+
/routing/filter/community-list|menu|both
|
|
905
|
+
/routing/filter/filter-wizard|command|both
|
|
906
|
+
/routing/filter/num-list|menu|both
|
|
907
|
+
/routing/filter/rule|menu|both
|
|
908
|
+
/routing/filter/select-rule|menu|both
|
|
909
|
+
/routing/filter/sync|command|both
|
|
910
|
+
/routing/filter/test-as-path-regexp|command|both
|
|
911
|
+
/routing/gmp|menu|both
|
|
912
|
+
/routing/id|menu|both
|
|
913
|
+
/routing/igmp-proxy|settings|both
|
|
914
|
+
/routing/igmp-proxy/interface|menu|both
|
|
915
|
+
/routing/igmp-proxy/mfc|menu|both
|
|
916
|
+
/routing/isis|menu|both
|
|
917
|
+
/routing/isis/instance|menu|both
|
|
918
|
+
/routing/isis/interface|menu|both
|
|
919
|
+
/routing/isis/interface-template|menu|both
|
|
920
|
+
/routing/isis/lsp|menu|both
|
|
921
|
+
/routing/isis/neighbor|menu|both
|
|
922
|
+
/routing/nexthop|menu|both
|
|
923
|
+
/routing/nexthop/dump-dot|command|both
|
|
924
|
+
/routing/ospf|menu|both
|
|
925
|
+
/routing/ospf/area|menu|both
|
|
926
|
+
/routing/ospf/area/range|menu|both
|
|
927
|
+
/routing/ospf/instance|menu|both
|
|
928
|
+
/routing/ospf/interface|menu|both
|
|
929
|
+
/routing/ospf/interface-template|menu|both
|
|
930
|
+
/routing/ospf/lsa|menu|both
|
|
931
|
+
/routing/ospf/neighbor|menu|both
|
|
932
|
+
/routing/ospf/static-neighbor|menu|both
|
|
933
|
+
/routing/pimsm|menu|both||!smips
|
|
934
|
+
/routing/pimsm/bsr|menu|both||!smips
|
|
935
|
+
/routing/pimsm/bsr/candidate|menu|both||!smips
|
|
936
|
+
/routing/pimsm/bsr/rp-candidate|menu|both||!smips
|
|
937
|
+
/routing/pimsm/bsr/rp-set|menu|both||!smips
|
|
938
|
+
/routing/pimsm/igmp-interface-template|menu|both||!smips
|
|
939
|
+
/routing/pimsm/instance|menu|both||!smips
|
|
940
|
+
/routing/pimsm/interface|menu|both||!smips
|
|
941
|
+
/routing/pimsm/interface-template|menu|both||!smips
|
|
942
|
+
/routing/pimsm/neighbor|menu|both||!smips
|
|
943
|
+
/routing/pimsm/static-rp|menu|both||!smips
|
|
944
|
+
/routing/pimsm/uib-g|menu|both||!smips
|
|
945
|
+
/routing/pimsm/uib-sg|menu|both||!smips
|
|
946
|
+
/routing/rip|menu|both
|
|
947
|
+
/routing/rip/instance|menu|both
|
|
948
|
+
/routing/rip/interface|menu|both
|
|
949
|
+
/routing/rip/interface-template|menu|both
|
|
950
|
+
/routing/rip/keys|menu|both
|
|
951
|
+
/routing/rip/neighbor|menu|both
|
|
952
|
+
/routing/rip/static-neighbor|menu|both
|
|
953
|
+
/routing/route|menu|both
|
|
954
|
+
/routing/route/rule|menu|inspect
|
|
955
|
+
/routing/rpki|menu|both
|
|
956
|
+
/routing/rpki/rpki-check|command|both
|
|
957
|
+
/routing/rpki/rpki-query|command|both
|
|
958
|
+
/routing/rpki/session|menu|both
|
|
959
|
+
/routing/rule|menu|both
|
|
960
|
+
/routing/settings|settings|both
|
|
961
|
+
/routing/stats|menu|both||!smips
|
|
962
|
+
/routing/stats/memory|menu|both
|
|
963
|
+
/routing/stats/origin|menu|both
|
|
964
|
+
/routing/stats/pcap|menu|both||!smips
|
|
965
|
+
/routing/stats/process|menu|both
|
|
966
|
+
/routing/stats/process/kill|command|both
|
|
967
|
+
/routing/stats/step|menu|both
|
|
968
|
+
/routing/table|menu|both
|
|
969
|
+
/rsync-daemon|menu|inspect
|
|
970
|
+
/safe-mode|settings|both
|
|
971
|
+
/snmp|settings|both
|
|
972
|
+
/snmp/community|menu|both
|
|
973
|
+
/snmp/send-trap|command|both
|
|
974
|
+
/special-login|menu|both
|
|
975
|
+
/system|menu|inspect
|
|
976
|
+
/system/backup|menu|both
|
|
977
|
+
/system/backup/cloud|menu|both
|
|
978
|
+
/system/backup/cloud/download-file|command|both
|
|
979
|
+
/system/backup/cloud/remove-file|command|both
|
|
980
|
+
/system/backup/cloud/upload-file|command|both
|
|
981
|
+
/system/backup/load|command|both
|
|
982
|
+
/system/backup/save|command|both
|
|
983
|
+
/system/check-disk|command|both||i386
|
|
984
|
+
/system/check-installation|command|both
|
|
985
|
+
/system/clock|settings|both
|
|
986
|
+
/system/clock/manual|settings|both
|
|
987
|
+
/system/console|menu|both
|
|
988
|
+
/system/console/screen|settings|both||i386
|
|
989
|
+
/system/default-configuration|settings|both
|
|
990
|
+
/system/default-configuration/caps-mode-script|settings|both
|
|
991
|
+
/system/default-configuration/custom-script|settings|both
|
|
992
|
+
/system/default-configuration/script|settings|both
|
|
993
|
+
/system/default-configuration/wps-sync-mode-script|settings|published|||wpssync
|
|
994
|
+
/system/device-mode|settings|both
|
|
995
|
+
/system/device-mode/update|command|both
|
|
996
|
+
/system/gps|settings|both|gps|mmips
|
|
997
|
+
/system/gps/monitor|command|both|gps
|
|
998
|
+
/system/hardware|menu|inspect
|
|
999
|
+
/system/health|menu|both||!i386
|
|
1000
|
+
/system/health/settings|settings|both||!i386, tile|health and health-settings
|
|
1001
|
+
/system/health/settings/detect-fans|command|both||!i386|health and health-settings
|
|
1002
|
+
/system/history|menu|both
|
|
1003
|
+
/system/identity|settings|both
|
|
1004
|
+
/system/keymat-provider|menu|both
|
|
1005
|
+
/system/keymat-provider/qkd-get-key|command|both
|
|
1006
|
+
/system/keymat-provider/qkd-get-key-with-ids|command|both
|
|
1007
|
+
/system/keymat-provider/qkd-get-status|command|both
|
|
1008
|
+
/system/leds|menu|both
|
|
1009
|
+
/system/leds/settings|settings|both
|
|
1010
|
+
/system/license|settings|both
|
|
1011
|
+
/system/license/generate-new-id|command|both|||chr
|
|
1012
|
+
/system/license/output|command|published|||nochr
|
|
1013
|
+
/system/license/renew|command|both|||chr
|
|
1014
|
+
/system/logging|menu|both
|
|
1015
|
+
/system/logging/action|menu|both
|
|
1016
|
+
/system/logging/action/clear|command|both
|
|
1017
|
+
/system/note|settings|both
|
|
1018
|
+
/system/ntp|menu|both
|
|
1019
|
+
/system/ntp/client|settings|both
|
|
1020
|
+
/system/ntp/client/reset-freq-drift|command|both
|
|
1021
|
+
/system/ntp/client/servers|menu|both
|
|
1022
|
+
/system/ntp/key|menu|both
|
|
1023
|
+
/system/ntp/monitor-peers|command|both
|
|
1024
|
+
/system/ntp/server|settings|both
|
|
1025
|
+
/system/package|menu|both
|
|
1026
|
+
/system/package/apply-changes|command|both
|
|
1027
|
+
/system/package/disable|command|both
|
|
1028
|
+
/system/package/downgrade|command|both
|
|
1029
|
+
/system/package/enable|command|both
|
|
1030
|
+
/system/package/local-update|menu|both
|
|
1031
|
+
/system/package/local-update/download|command|both
|
|
1032
|
+
/system/package/local-update/download-all|command|both
|
|
1033
|
+
/system/package/local-update/mirror|settings|both
|
|
1034
|
+
/system/package/local-update/mirror/force-check|command|both
|
|
1035
|
+
/system/package/local-update/refresh|command|both
|
|
1036
|
+
/system/package/local-update/update-package-source|menu|both
|
|
1037
|
+
/system/package/uninstall|command|both
|
|
1038
|
+
/system/package/unschedule|command|both
|
|
1039
|
+
/system/package/update|settings|both
|
|
1040
|
+
/system/package/update/cancel|command|both
|
|
1041
|
+
/system/package/update/check-for-updates|command|both
|
|
1042
|
+
/system/package/update/download|command|both
|
|
1043
|
+
/system/package/update/install|command|both
|
|
1044
|
+
/system/ptp|menu|published||!smips|ptp
|
|
1045
|
+
/system/ptp/monitor|command|published||!smips|ptp
|
|
1046
|
+
/system/ptp/port|menu|published||!smips|ptp
|
|
1047
|
+
/system/ptp/status|menu|published||!smips|ptp
|
|
1048
|
+
/system/reboot|command|both
|
|
1049
|
+
/system/regulatory|settings|both
|
|
1050
|
+
/system/reset-configuration|command|both
|
|
1051
|
+
/system/resource|settings|both||!powerpc, !smips
|
|
1052
|
+
/system/resource/cpu|menu|both
|
|
1053
|
+
/system/resource/hardware|menu|both||!powerpc, !smips, i386
|
|
1054
|
+
/system/resource/hardware/authorize|command|both||!powerpc, !smips
|
|
1055
|
+
/system/resource/hardware/usb-power-reset|command|both||!powerpc, !smips, i386
|
|
1056
|
+
/system/resource/hardware/usb-settings|settings|both||!powerpc, !smips
|
|
1057
|
+
/system/resource/irq|menu|both
|
|
1058
|
+
/system/resource/irq/rps|menu|both|||rps
|
|
1059
|
+
/system/resource/monitor|command|both
|
|
1060
|
+
/system/resource/pci|menu|inspect
|
|
1061
|
+
/system/resource/usb|menu|inspect
|
|
1062
|
+
/system/resource/usb/settings|menu|inspect
|
|
1063
|
+
/system/routerboard|settings|both||!i386, !i386, !mipsel, !powerpc
|
|
1064
|
+
/system/routerboard/mode-button|settings|both||!i386
|
|
1065
|
+
/system/routerboard/reset-button|settings|both||!i386
|
|
1066
|
+
/system/routerboard/settings|settings|both||!i386, !i386
|
|
1067
|
+
/system/routerboard/settings/keep-frequency|command|published||!i386, mipsel
|
|
1068
|
+
/system/routerboard/upgrade|command|both||!i386
|
|
1069
|
+
/system/routerboard/usb|settings|both||!i386, !i386, !mipsel, !powerpc
|
|
1070
|
+
/system/routerboard/usb/power-reset|command|both||!i386, !i386, !mipsel, !powerpc
|
|
1071
|
+
/system/routerboard/wps-button|settings|both||!i386
|
|
1072
|
+
/system/rtrace|settings|both
|
|
1073
|
+
/system/rtrace/start|command|both
|
|
1074
|
+
/system/rtrace/stop|command|both
|
|
1075
|
+
/system/scheduler|menu|both
|
|
1076
|
+
/system/script|menu|both
|
|
1077
|
+
/system/script/environment|menu|both
|
|
1078
|
+
/system/script/job|menu|both
|
|
1079
|
+
/system/serial-terminal|command|both
|
|
1080
|
+
/system/shutdown|command|both
|
|
1081
|
+
/system/ssh|command|both
|
|
1082
|
+
/system/ssh-exec|command|both
|
|
1083
|
+
/system/sup-output|command|both
|
|
1084
|
+
/system/swos|settings|published||!i386, !mmips, !powerpc, !tile, !smips|swos
|
|
1085
|
+
/system/swos/load-config|command|published||!i386, !mmips, !powerpc, !tile, !smips|swos
|
|
1086
|
+
/system/swos/password|command|published||!i386, !mmips, !powerpc, !tile, !smips|swos
|
|
1087
|
+
/system/swos/reset-config|command|published||!i386, !mmips, !powerpc, !tile, !smips|swos
|
|
1088
|
+
/system/swos/save-config|command|published||!i386, !mmips, !powerpc, !tile, !smips|swos
|
|
1089
|
+
/system/swos/upgrade|command|published||!i386, !mmips, !powerpc, !tile, !smips|swos
|
|
1090
|
+
/system/telnet|command|both
|
|
1091
|
+
/system/upgrade|menu|inspect
|
|
1092
|
+
/system/upgrade/mirror|menu|inspect
|
|
1093
|
+
/system/upgrade/upgrade-package-source|menu|inspect
|
|
1094
|
+
/system/ups|menu|both|ups
|
|
1095
|
+
/system/ups/beep|command|both|ups
|
|
1096
|
+
/system/ups/monitor|command|both|ups
|
|
1097
|
+
/system/ups/rtc|command|both|ups
|
|
1098
|
+
/system/ups/self-test|command|both|ups
|
|
1099
|
+
/system/watchdog|settings|both
|
|
1100
|
+
/task|menu|both
|
|
1101
|
+
/task/add|command|both
|
|
1102
|
+
/task/next|command|both
|
|
1103
|
+
/task/terminate|command|both
|
|
1104
|
+
/terminal|menu|inspect
|
|
1105
|
+
/tool|menu|inspect
|
|
1106
|
+
/tool/bandwidth-server|settings|both
|
|
1107
|
+
/tool/bandwidth-server/session|menu|both
|
|
1108
|
+
/tool/bandwidth-test|command|both
|
|
1109
|
+
/tool/calea|menu|both|calea
|
|
1110
|
+
/tool/dns-update|command|both
|
|
1111
|
+
/tool/e-mail|settings|both
|
|
1112
|
+
/tool/e-mail/send|command|both
|
|
1113
|
+
/tool/fetch|command|both||arm64
|
|
1114
|
+
/tool/flood-ping|command|both||!smips
|
|
1115
|
+
/tool/graphing|settings|both
|
|
1116
|
+
/tool/graphing/interface|menu|both
|
|
1117
|
+
/tool/graphing/queue|menu|both
|
|
1118
|
+
/tool/graphing/resource|menu|both
|
|
1119
|
+
/tool/ip-scan|command|both||!smips
|
|
1120
|
+
/tool/mac-scan|command|both||!smips
|
|
1121
|
+
/tool/mac-server|settings|both
|
|
1122
|
+
/tool/mac-server/mac-winbox|settings|both
|
|
1123
|
+
/tool/mac-server/ping|settings|both
|
|
1124
|
+
/tool/mac-server/sessions|menu|both
|
|
1125
|
+
/tool/mac-telnet|command|both
|
|
1126
|
+
/tool/netinstall|menu|inspect
|
|
1127
|
+
/tool/netinstall/cache|menu|inspect
|
|
1128
|
+
/tool/netinstall/devices|menu|inspect
|
|
1129
|
+
/tool/netinstall/settings|menu|inspect
|
|
1130
|
+
/tool/netwatch|menu|both
|
|
1131
|
+
/tool/ping|command|both
|
|
1132
|
+
/tool/ping-speed|command|both||!smips
|
|
1133
|
+
/tool/profile|command|both
|
|
1134
|
+
/tool/romon|settings|both
|
|
1135
|
+
/tool/romon/discover|command|both
|
|
1136
|
+
/tool/romon/ping|command|both
|
|
1137
|
+
/tool/romon/port|menu|both
|
|
1138
|
+
/tool/romon/ssh|command|both|||security
|
|
1139
|
+
/tool/sms|settings|both||!smips
|
|
1140
|
+
/tool/sms/inbox|menu|both||!smips
|
|
1141
|
+
/tool/sms/send|command|both||!smips
|
|
1142
|
+
/tool/sniffer|settings|both
|
|
1143
|
+
/tool/sniffer/connection|menu|both
|
|
1144
|
+
/tool/sniffer/host|menu|both
|
|
1145
|
+
/tool/sniffer/packet|menu|both
|
|
1146
|
+
/tool/sniffer/protocol|menu|both
|
|
1147
|
+
/tool/sniffer/quick|command|both
|
|
1148
|
+
/tool/sniffer/save|command|both
|
|
1149
|
+
/tool/sniffer/start|command|both
|
|
1150
|
+
/tool/sniffer/stop|command|both
|
|
1151
|
+
/tool/snmp-get|command|both
|
|
1152
|
+
/tool/snmp-walk|command|both
|
|
1153
|
+
/tool/speed-test|command|both
|
|
1154
|
+
/tool/torch|command|both
|
|
1155
|
+
/tool/traceroute|command|both
|
|
1156
|
+
/tool/traffic-generator|settings|both
|
|
1157
|
+
/tool/traffic-generator/inject|command|both
|
|
1158
|
+
/tool/traffic-generator/inject-pcap|command|both
|
|
1159
|
+
/tool/traffic-generator/packet-template|menu|both
|
|
1160
|
+
/tool/traffic-generator/port|menu|both
|
|
1161
|
+
/tool/traffic-generator/quick|command|both
|
|
1162
|
+
/tool/traffic-generator/raw-packet-template|menu|both
|
|
1163
|
+
/tool/traffic-generator/start|command|both
|
|
1164
|
+
/tool/traffic-generator/stats|menu|both
|
|
1165
|
+
/tool/traffic-generator/stats/latency-distribution|menu|both
|
|
1166
|
+
/tool/traffic-generator/stats/port|menu|both
|
|
1167
|
+
/tool/traffic-generator/stats/raw|menu|both
|
|
1168
|
+
/tool/traffic-generator/stats/stream|menu|both
|
|
1169
|
+
/tool/traffic-generator/stop|command|both
|
|
1170
|
+
/tool/traffic-generator/stream|menu|both
|
|
1171
|
+
/tool/traffic-monitor|menu|both
|
|
1172
|
+
/tool/wol|command|both
|
|
1173
|
+
/tr069-client|settings|both|tr069-client
|
|
1174
|
+
/tr069-client/reset-tr069-config|command|both|tr069-client
|
|
1175
|
+
/undo|command|both
|
|
1176
|
+
/user|menu|both
|
|
1177
|
+
/user-manager|settings|both|userman-5
|
|
1178
|
+
/user-manager/advanced|settings|both|userman-5
|
|
1179
|
+
/user-manager/attribute|menu|both|userman-5
|
|
1180
|
+
/user-manager/database|settings|both|userman-5
|
|
1181
|
+
/user-manager/database/load|command|both|userman-5
|
|
1182
|
+
/user-manager/database/migrate-legacy-db|command|both|userman-5
|
|
1183
|
+
/user-manager/database/optimize-db|command|both|userman-5
|
|
1184
|
+
/user-manager/database/save|command|both|userman-5
|
|
1185
|
+
/user-manager/generate-report|command|both|userman-5
|
|
1186
|
+
/user-manager/limitation|menu|both|userman-5
|
|
1187
|
+
/user-manager/monitor|command|both|userman-5
|
|
1188
|
+
/user-manager/payment|menu|both|userman-5
|
|
1189
|
+
/user-manager/profile|menu|both|userman-5
|
|
1190
|
+
/user-manager/profile-limitation|menu|both|userman-5
|
|
1191
|
+
/user-manager/router|menu|both|userman-5
|
|
1192
|
+
/user-manager/router/monitor|command|both|userman-5
|
|
1193
|
+
/user-manager/router/reset-counters|command|both|userman-5
|
|
1194
|
+
/user-manager/session|menu|both|userman-5
|
|
1195
|
+
/user-manager/session/close-session|command|both|userman-5
|
|
1196
|
+
/user-manager/user|menu|both|userman-5
|
|
1197
|
+
/user-manager/user-profile|menu|both|userman-5
|
|
1198
|
+
/user-manager/user-profile/activate-user-profile|command|both|userman-5
|
|
1199
|
+
/user-manager/user/add-batch-users|command|both|userman-5
|
|
1200
|
+
/user-manager/user/generate-voucher|command|both|userman-5
|
|
1201
|
+
/user-manager/user/group|menu|both|userman-5
|
|
1202
|
+
/user-manager/user/monitor|command|both|userman-5
|
|
1203
|
+
/user/aaa|settings|both
|
|
1204
|
+
/user/active|menu|both
|
|
1205
|
+
/user/expire-password|command|both
|
|
1206
|
+
/user/group|menu|both
|
|
1207
|
+
/user/settings|settings|both
|
|
1208
|
+
/user/ssh-keys|menu|both
|
|
1209
|
+
/user/ssh-keys/import|command|both
|
|
1210
|
+
/user/ssh-keys/private|menu|both
|
|
1211
|
+
/user/ssh-keys/private/import|command|both
|
|
1212
|
+
/zerotier|menu|both|zerotier
|
|
1213
|
+
/zerotier/controller|menu|both|zerotier
|
|
1214
|
+
/zerotier/controller/member|menu|both|zerotier
|
|
1215
|
+
/zerotier/interface|menu|both|zerotier
|
|
1216
|
+
/zerotier/peer|menu|both|zerotier
|
|
1217
|
+
/zerotier/peer/hint|menu|both|zerotier
|
|
1218
|
+
`;
|
|
1219
|
+
|
|
1220
|
+
const KINDS = new Set<string>(["menu", "command", "settings"]);
|
|
1221
|
+
const PROVENANCES = new Set<string>(["inspect", "published", "both"]);
|
|
1222
|
+
|
|
1223
|
+
/**
|
|
1224
|
+
* Decode {@link ROWS} once, at module load.
|
|
1225
|
+
*
|
|
1226
|
+
* Throws rather than skipping a malformed row: this file is generated, so a row
|
|
1227
|
+
* that does not decode means the generator and this loader disagree, and a
|
|
1228
|
+
* silently shorter catalog would look exactly like a correct one.
|
|
1229
|
+
*/
|
|
1230
|
+
function decodeRows(text: string): Map<string, CatalogEntry> {
|
|
1231
|
+
const catalog = new Map<string, CatalogEntry>();
|
|
1232
|
+
for (const line of text.split("\n")) {
|
|
1233
|
+
if (line === "") continue;
|
|
1234
|
+
const [path, kind, provenance, ...gates] = line.split("|");
|
|
1235
|
+
if (
|
|
1236
|
+
path === undefined ||
|
|
1237
|
+
kind === undefined ||
|
|
1238
|
+
provenance === undefined ||
|
|
1239
|
+
!KINDS.has(kind) ||
|
|
1240
|
+
!PROVENANCES.has(provenance)
|
|
1241
|
+
)
|
|
1242
|
+
throw new Error(`catalog row is malformed: ${JSON.stringify(line)}`);
|
|
1243
|
+
const [packageName, conditions, syscap] = gates;
|
|
1244
|
+
const entry: CatalogEntry = {
|
|
1245
|
+
kind: kind as PathKind,
|
|
1246
|
+
provenance: provenance as PathProvenance,
|
|
1247
|
+
};
|
|
1248
|
+
if (packageName) entry.package = packageName;
|
|
1249
|
+
if (conditions) entry.conditions = conditions;
|
|
1250
|
+
if (syscap) entry.syscap = syscap;
|
|
1251
|
+
catalog.set(path, entry);
|
|
1252
|
+
}
|
|
1253
|
+
return catalog;
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
/** Every catalog path, lower-cased and slash-led. */
|
|
1257
|
+
export const PATH_CATALOG: ReadonlyMap<string, CatalogEntry> = decodeRows(ROWS);
|
|
1258
|
+
|
|
1259
|
+
/**
|
|
1260
|
+
* Look a path up by its SEGMENTS, so callers pass what they already parsed
|
|
1261
|
+
* rather than re-splitting a statement and re-deriving which spelling
|
|
1262
|
+
* (`/ip/address` or `/ip address`) it used. Both reduce to the same segments.
|
|
1263
|
+
*
|
|
1264
|
+
* Empty input is never a catalog entry: the bare `/` and `..` forms are decided
|
|
1265
|
+
* by their own rule.
|
|
1266
|
+
*/
|
|
1267
|
+
export function lookupPath(
|
|
1268
|
+
segments: readonly string[],
|
|
1269
|
+
): CatalogEntry | undefined {
|
|
1270
|
+
if (segments.length === 0) return undefined;
|
|
1271
|
+
return PATH_CATALOG.get(`/${segments.join("/").toLowerCase()}`);
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
/**
|
|
1275
|
+
* Where a published COMMAND ends inside a path run: the index of the run
|
|
1276
|
+
* segment that is the VERB, or `null` when no prefix of `segments` is one.
|
|
1277
|
+
*
|
|
1278
|
+
* This is the command half of V4. `menus.ts` answers "is this bare path a
|
|
1279
|
+
* menu?"; nothing answered "is it a command?", so `/system/reboot` and
|
|
1280
|
+
* `/system/gps/monitor once` were read by punctuation — which puts the verb on
|
|
1281
|
+
* `once`, not on `monitor`. A published command names its own boundary, so the
|
|
1282
|
+
* segments before it are the menu and everything after it is an argument.
|
|
1283
|
+
*
|
|
1284
|
+
* At most ONE prefix can match: no command row has a descendant (R3, asserted at
|
|
1285
|
+
* generation), so the walk direction cannot change the answer.
|
|
1286
|
+
*
|
|
1287
|
+
* Presence is load-bearing in one direction only, exactly as in `menus.ts`.
|
|
1288
|
+
* A hit is decisive — both catalog sources are first-order, and the 439 command
|
|
1289
|
+
* rows are `both` or `published`, never inspect-only. A MISS says nothing:
|
|
1290
|
+
* generic CRUD leaves are deliberately not enumerated here, so absence must
|
|
1291
|
+
* fall through to the schema-free rule rather than deny that a command exists.
|
|
1292
|
+
*
|
|
1293
|
+
* A gate is not consulted. Whether this router HAS the hardware is a live
|
|
1294
|
+
* question; what the segment IS is not.
|
|
1295
|
+
*/
|
|
1296
|
+
export function commandVerbIndex(segments: readonly string[]): number | null {
|
|
1297
|
+
for (let depth = 1; depth <= segments.length; depth++)
|
|
1298
|
+
if (
|
|
1299
|
+
PATH_CATALOG.get(`/${segments.slice(0, depth).join("/").toLowerCase()}`)
|
|
1300
|
+
?.kind === "command"
|
|
1301
|
+
)
|
|
1302
|
+
return depth - 1;
|
|
1303
|
+
return null;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
/** One published gate, and the path that published it. */
|
|
1307
|
+
export interface CatalogGate {
|
|
1308
|
+
path: string;
|
|
1309
|
+
package?: string;
|
|
1310
|
+
conditions?: string;
|
|
1311
|
+
syscap?: string;
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
/**
|
|
1315
|
+
* Every gate that applies to a path, root-first — its own and its ancestors'.
|
|
1316
|
+
*
|
|
1317
|
+
* A row carries only what the publication stated AT that entry, which is the
|
|
1318
|
+
* honest thing for a row to carry but the wrong thing to read alone. Reaching
|
|
1319
|
+
* `/interface/ethernet/poe/monitor` requires `/interface/ethernet/poe`, so the
|
|
1320
|
+
* parent's `syscap` applies even though the child entry states none: the gates
|
|
1321
|
+
* up a path CONJOIN, they do not override.
|
|
1322
|
+
*
|
|
1323
|
+
* Read row-wise, 2 published-only paths look ungated; read with
|
|
1324
|
+
* ancestry the residue is 1. The gap between the two is the
|
|
1325
|
+
* conjunction, and it is what a caller has to reproduce: a child's silence about
|
|
1326
|
+
* a gate is not the absence of one. #228's finding — that a published-only path
|
|
1327
|
+
* almost always explains its own absence — is about the ancestry-aware number.
|
|
1328
|
+
*
|
|
1329
|
+
* Still not a claim about any router. This says what MikroTik published about
|
|
1330
|
+
* applicability; only a live device knows what it has.
|
|
1331
|
+
*/
|
|
1332
|
+
export function effectiveGates(segments: readonly string[]): CatalogGate[] {
|
|
1333
|
+
const gates: CatalogGate[] = [];
|
|
1334
|
+
for (let depth = 1; depth <= segments.length; depth++) {
|
|
1335
|
+
const path = `/${segments.slice(0, depth).join("/").toLowerCase()}`;
|
|
1336
|
+
const entry = PATH_CATALOG.get(path);
|
|
1337
|
+
if (entry === undefined) continue;
|
|
1338
|
+
const gate: CatalogGate = { path };
|
|
1339
|
+
if (entry.package !== undefined) gate.package = entry.package;
|
|
1340
|
+
if (entry.conditions !== undefined) gate.conditions = entry.conditions;
|
|
1341
|
+
if (entry.syscap !== undefined) gate.syscap = entry.syscap;
|
|
1342
|
+
if (Object.keys(gate).length > 1) gates.push(gate);
|
|
1343
|
+
}
|
|
1344
|
+
return gates;
|
|
1345
|
+
}
|