diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c7dd48c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# YAML is the product (schema + wire). Linguist hides data languages by default. +*.yaml linguist-detectable=true +*.yml linguist-detectable=true diff --git a/README.md b/README.md index cee6acb..103d410 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,13 @@ No feature-specific Python. Wire YAMLs (generated from MIB) declare device truth ## Installation +Not on PyPI yet (first publish is 2.10.0). From this repo: + ``` -pip install crude-engine +pip install -e . ``` -For NAPALM integration: `pip install napalm-hios` (installs crude-engine as a dependency). +NAPALM integration is the separate `napalm-hios` 2.0 shim — not on PyPI yet. ## Usage @@ -66,7 +68,7 @@ for operation in ['create', 'read', 'upsert', 'delete', 'execute']: | [status.html](docs/status.html) | Program poster — where we are, next task, proofs | | [SEED.md](docs/program/SEED.md) | Why + how work is allowed to happen | | [ROADMAP.md](docs/ROADMAP.md) | Versions and exit criteria (2.10 = first PyPI) | -| [TODO.md](docs/TODO.md) | Current cycle tasks | +| [GitHub issues](https://github.com/AdamRickards/crude-engine/issues) | Leftover work (prove-then-file or comment-close) | | [METHOD_REFERENCE.md](docs/METHOD_REFERENCE.md) | Quick reference — methods, return keys, one line each | | [API_REFERENCE.md](docs/API_REFERENCE.md) | Full reference — return schemas, per-protocol sources, wire detail | | [SCHEMA_MODEL.md](docs/SCHEMA_MODEL.md) | Canonical schema contract — structural rules + shape rules | diff --git a/crude_engine/drivers/SSH_state.yaml b/crude_engine/drivers/SSH_state.yaml index 5048ef4..c2ae519 100644 --- a/crude_engine/drivers/SSH_state.yaml +++ b/crude_engine/drivers/SSH_state.yaml @@ -13,6 +13,9 @@ levels: user: prompt_pattern: '[^#]>\s*$' exit: {command: "logout", to: null} + # Gate detect strings are literal prompt fragments (not regex). + # ssh_transport.close() re.escapes them for Netmiko read_until_pattern + # so "(Y/N)" matches the live logout confirm (#224 / session_log). gates: - {detect: "Are you sure (Y/N)", response: "y", read_timeout: 2} - {detect: "do you want to save", response: "n", read_timeout: 1} diff --git a/crude_engine/drivers/base.py b/crude_engine/drivers/base.py index cd6355f..3923b11 100644 --- a/crude_engine/drivers/base.py +++ b/crude_engine/drivers/base.py @@ -1,5 +1,5 @@ """ -base.py — Base driver interface for napalm-hios. +base.py — Base driver interface for crude-engine. Layer: Driver (abstract). The contract between engine and transport. Engine calls gather() and set_values(). Driver calls transport. Nothing @@ -72,6 +72,11 @@ def wire_type_defaults(self) -> Dict[str, str]: """Schema type → default tag from driver YAML.""" return self._driver_config.get("wire_type_defaults", {}) + @staticmethod + def _tag_name(tag): + """Bare registry function name from a _resolve_tag() result.""" + return tag[0] if isinstance(tag, tuple) else tag + @property def protocol_defaults(self) -> Dict[str, Any]: """Protocol-level source defaults (e.g. method: walk).""" diff --git a/crude_engine/drivers/mops_client.py b/crude_engine/drivers/mops_client.py index a1dc03e..a56b1f1 100644 --- a/crude_engine/drivers/mops_client.py +++ b/crude_engine/drivers/mops_client.py @@ -7,7 +7,7 @@ - HTTP Basic auth (same credentials as SSH/SNMP) - No net-snmp/pysnmp dependency — just requests + xml.etree -Adapted from Hirschy-MOPS/lib/mops.py for use as a napalm-hios transport. +Adapted from Hirschy-MOPS/lib/mops.py for use as a crude-engine transport. Usage: from crude_engine.drivers.mops_client import MOPSClient diff --git a/crude_engine/drivers/mops_driver.py b/crude_engine/drivers/mops_driver.py index a59deba..1cdcc3a 100644 --- a/crude_engine/drivers/mops_driver.py +++ b/crude_engine/drivers/mops_driver.py @@ -1,5 +1,5 @@ """ -MOPS.py — MOPS protocol driver for napalm-hios. +MOPS.py — MOPS protocol driver for crude-engine. Layer: Driver. Translates wire YAML source dicts into MOPS operations. Owns: get_multi batching, index keying, row filtering, tag dispatch. diff --git a/crude_engine/drivers/mops_transport.py b/crude_engine/drivers/mops_transport.py index 7902012..ae85ac4 100644 --- a/crude_engine/drivers/mops_transport.py +++ b/crude_engine/drivers/mops_transport.py @@ -1,5 +1,5 @@ """ -mops_transport.py — MOPS transport for napalm-hios. +mops_transport.py — MOPS transport for crude-engine. Layer: Transport. Owns HTTPS session and raw MIB operations via XML. Cannot: interpret data meaning, decide what to gather, know about features. diff --git a/crude_engine/drivers/offline_client.py b/crude_engine/drivers/offline_client.py index 99ea580..a983ba5 100644 --- a/crude_engine/drivers/offline_client.py +++ b/crude_engine/drivers/offline_client.py @@ -326,13 +326,10 @@ def get(self, mib_name, node_name, attributes, decode_strings=True): def get_multi(self, queries, decode_strings=True): """Multi-node lookup from in-memory data. - Returns: full parsed response dict (same as MOPSClient.get_multi) + Returns: dict keyed by MIB name, then node name: {mib: {node: [rows]}} + — same shape as MOPSClient.get_multi (parsed["mibs"]). """ - result = { - "message_id": "0", - "mibs": {}, - "errors": [], - } + mibs = {} for mib_name, node_name, attrs in queries: mib_data = self._data.get(mib_name) @@ -354,11 +351,11 @@ def get_multi(self, queries, decode_strings=True): filtered[attr] = value filtered_entries.append(filtered) - if mib_name not in result["mibs"]: - result["mibs"][mib_name] = {} - result["mibs"][mib_name][node_name] = filtered_entries + if mib_name not in mibs: + mibs[mib_name] = {} + mibs[mib_name][node_name] = filtered_entries - return result + return mibs # ------------------------------------------------------------------ # MOPSClient interface — write diff --git a/crude_engine/drivers/offline_hios.py b/crude_engine/drivers/offline_hios.py index 844845b..293f906 100644 --- a/crude_engine/drivers/offline_hios.py +++ b/crude_engine/drivers/offline_hios.py @@ -1,5 +1,5 @@ """ -offline_hios.py — Offline transport for napalm-hios. +offline_hios.py — Offline transport for crude-engine. Layer: Transport. Loads config XML files via MOPS interface. Inherits MOPSHIOS — offline uses the same driver/engine path as MOPS. diff --git a/crude_engine/drivers/snmp_driver.py b/crude_engine/drivers/snmp_driver.py index 11ecb5f..7510cc6 100644 --- a/crude_engine/drivers/snmp_driver.py +++ b/crude_engine/drivers/snmp_driver.py @@ -1,5 +1,5 @@ """ -SNMP.py — SNMP protocol driver for napalm-hios. +SNMP.py — SNMP protocol driver for crude-engine. Layer: Driver. Translates wire YAML source dicts into SNMP operations. Owns: walk batching, scalar normalization, index decomposition, tag dispatch. diff --git a/crude_engine/drivers/snmp_transport.py b/crude_engine/drivers/snmp_transport.py index 2a12583..dcbdd23 100644 --- a/crude_engine/drivers/snmp_transport.py +++ b/crude_engine/drivers/snmp_transport.py @@ -1,5 +1,5 @@ """ -snmp_transport.py — SNMP transport for napalm-hios. +snmp_transport.py — SNMP transport for crude-engine. Layer: Transport. Owns session, auth, and raw OID GET/SET/WALK. Cannot: interpret data meaning, decide what to gather, know about features. diff --git a/crude_engine/drivers/ssh_driver.py b/crude_engine/drivers/ssh_driver.py index a305873..690d8d4 100644 --- a/crude_engine/drivers/ssh_driver.py +++ b/crude_engine/drivers/ssh_driver.py @@ -1,5 +1,5 @@ """ -SSH_gather.py — SSH protocol driver for napalm-hios. +SSH_gather.py — SSH protocol driver for crude-engine. Layer: Driver. Translates wire YAML source dicts into SSH CLI operations. Owns: command dedup, level navigation, CLI parsing, response caching. @@ -84,6 +84,18 @@ def gather(self, sources: List[Tuple[str, Dict]], logger.debug("SSH command failed: %s — %s", cmd, str(e)[:80]) ssh_cache[(cmd, level)] = "" + # Keep the command text for inspect/sidecar trace. Does not change + # parse or what was sent. Cap each blob so a poll body stays usable. + _cli = [] + for (cmd, level), resp in ssh_cache.items(): + text = resp if isinstance(resp, str) else str(resp) + if len(text) > 32768: + text = text[:32768] + "\n…truncated" + _cli.append({"command": cmd, "level": level, "response": text}) + self.last_cli = _cli + if getattr(self, "transport", None) is not None: + self.transport.last_cli = _cli + # Phase 3: Each attribute parses from cached response for name, source in sources: if source.get("iterate_from"): @@ -97,7 +109,7 @@ def gather(self, sources: List[Tuple[str, Dict]], if val is None: continue tag = self._resolve_tag(source.get("tag", ""), source, attr_name=name) - if isinstance(val, dict) and tag in AGGREGATE_TAGS: + if isinstance(val, dict) and self._tag_name(tag) in AGGREGATE_TAGS: # Aggregate tag: pass whole dict to transform results[name] = self._apply_pipeline(val, source, tag, value_maps) elif isinstance(val, dict): @@ -177,7 +189,7 @@ def gather(self, sources: List[Tuple[str, Dict]], resp = iterate_cache[cache_key] val = self._parse_response(resp, source) if val is not None: - if isinstance(val, dict) and tag in AGGREGATE_TAGS: + if isinstance(val, dict) and self._tag_name(tag) in AGGREGATE_TAGS: val = self._apply_pipeline(val, source, tag, value_maps) elif isinstance(val, dict): val = {k: self._apply_pipeline(v, source, tag, value_maps) diff --git a/crude_engine/drivers/ssh_transport.py b/crude_engine/drivers/ssh_transport.py index 060c659..9cc306b 100644 --- a/crude_engine/drivers/ssh_transport.py +++ b/crude_engine/drivers/ssh_transport.py @@ -10,6 +10,7 @@ import re import logging import yaml +from collections import deque from typing import Dict, List, Union, Any, Optional from netmiko import ConnectHandler @@ -17,6 +18,11 @@ logger = logging.getLogger(__name__) +# Bounded append-only inspect session log (#222). Hang never returns last_cli; +# progress snaps this tail on phase=call timeout without waiting for the thread. +_SESSION_RING_MAX = 200 +_SESSION_LOG_TAIL_CHARS = 8192 + class SSHDriver: """SSH transport with YAML-driven CLI state machine.""" @@ -46,6 +52,12 @@ def __init__(self, hostname, username, password, timeout, port=22, proto_defaults = yaml.safe_load(f).get('defaults', {}) self._cmd_verify = proto_defaults.get('cmd_verify', True) + # Append-only session ring for inspect hang diagnosis (#222). + # Prefer Netmiko SessionLog on the live connection; ring always + # records structured open/nav/send/recv so offline mocks still work. + self._session_ring: deque = deque(maxlen=_SESSION_RING_MAX) + self._netmiko_session_log = None + # ------------------------------------------------------------------ # YAML loading # ------------------------------------------------------------------ @@ -65,6 +77,54 @@ def _build_prompt_re(self): patterns.append(level_def['prompt_pattern']) return '|'.join(f'(?:{p})' for p in patterns) + # ------------------------------------------------------------------ + # Inspect session log (#222) + # ------------------------------------------------------------------ + + def _session_append(self, line: str) -> None: + """Record one append-only session event; publish progress tail.""" + if not line: + return + # Never put credentials in the ring (auth password is noted as marker). + self._session_ring.append(line) + self._publish_session_log_tail() + + def session_log_tail(self, max_chars: int = _SESSION_LOG_TAIL_CHARS) -> str: + """Bounded tail: structured ring + Netmiko SessionLog buffer if any. + + Safe to call from the harness poller while the worker thread is hung — + StringIO.getvalue / deque copy are the snapshot surface. + """ + parts = list(self._session_ring) + buf = self._netmiko_session_log + if buf is not None: + raw = "" + try: + # netmiko.SessionLog keeps an in-memory slog_buffer + slog = getattr(buf, "slog_buffer", None) + if slog is not None: + raw = slog.getvalue() or "" + elif hasattr(buf, "getvalue"): + raw = buf.getvalue() or "" + except Exception: + raw = "" + if raw: + parts.append("--- netmiko ---") + parts.append(raw if len(raw) <= max_chars else raw[-max_chars:]) + text = "\n".join(parts) + if len(text) > max_chars: + text = text[-max_chars:] + return text + + def _publish_session_log_tail(self) -> None: + prog = getattr(self, "_inspect_progress", None) + if not isinstance(prog, dict): + return + try: + prog["session_log_tail"] = self.session_log_tail() + except Exception as e: + logger.debug("session_log_tail publish failed: %s", e) + # ------------------------------------------------------------------ # Connection lifecycle # ------------------------------------------------------------------ @@ -81,26 +141,53 @@ def open(self): 'timeout': self.timeout, 'fast_cli': False, } + # Prefer Netmiko SessionLog (in-memory) on the same transport path. + try: + from netmiko.session_log import SessionLog + no_log = {} + if self.password: + no_log["password"] = self.password + self._netmiko_session_log = SessionLog( + record_writes=True, no_log=no_log or None + ) + device["session_log"] = self._netmiko_session_log + except Exception as e: + logger.debug("SSH session_log unavailable: %s", e) + self._netmiko_session_log = None + + self._session_append("open") self.connection = ConnectHandler(**device) self.connection.set_base_prompt() output = self.connection.read_channel() + self._session_append( + f"open: read_channel {len(output or '')} bytes" + ) # Check factory default gate factory_gate = self._state.get('gates', {}).get('factory_default', {}) if factory_gate and factory_gate.get('detect') in (output or ''): self._factory_default = True + self._session_append("open: factory_default gate") return self._current_level = self._state['initial_level'] self.navigate_to('priv') + self._session_append("open: at priv") except ConnectionException: raise except Exception as e: raise ConnectionException(f"SSH connection failed: {str(e)}") def close(self): - """Disconnect, handling logout gates from YAML.""" + """Disconnect, handling logout gates from YAML. + + Gate `detect` strings in SSH_state.yaml are literal prompt fragments + (e.g. ``Are you sure (Y/N)``). Netmiko ``read_until_pattern`` compiles + them as regex, so parentheses must be escaped or the live logout + confirm never matches and teardown hangs under the inspect call + wall (#224). + """ if self.connection: try: # Navigate to user level first, then logout @@ -115,14 +202,27 @@ def close(self): gates = user_def.get('gates', []) if exit_def and exit_def.get('command'): - self.connection.write_channel(exit_def['command'] + '\n') + logout_cmd = exit_def['command'] + # Publish logout as last_command so close hang receipts + # are not stuck on a stale show (#224). + self.last_command = logout_cmd + prog = getattr(self, "_inspect_progress", None) + if isinstance(prog, dict): + prog["last_command"] = logout_cmd + self._session_append(f"send: {logout_cmd}") + self.connection.write_channel(logout_cmd + '\n') for gate in gates: try: + detect = gate['detect'] gate_timeout = gate.get('read_timeout', 1) output = self.connection.read_until_pattern( - gate['detect'], read_timeout=gate_timeout + re.escape(detect), read_timeout=gate_timeout ) - if gate['detect'] in output: + if detect in (output or ''): + self._session_append( + f"close gate: {detect!r} -> " + f"{gate.get('response')!r}" + ) self.connection.write_channel( gate['response'] + '\n' ) @@ -187,10 +287,24 @@ def cli(self, commands: Union[List[str], str], verify = cmd_verify if cmd_verify is not None else self._cmd_verify results = {} for cmd in commands: + # Inspect hang never returns, so last_cli is empty on call-timeout. + # Publish last_command + session_log_tail before send so the + # harness can snapshot from shared progress without waiting + # for this thread (#218 / #222). + self.last_command = cmd + prog = getattr(self, "_inspect_progress", None) + if isinstance(prog, dict): + prog["last_command"] = cmd + self._session_append(f"send: {cmd}") output = self.connection.send_command( cmd, expect_string=self._prompt_re, read_timeout=10, cmd_verify=verify ) + # Recv note (only reached if prompt matched / send returned). + preview = (output or "").strip().replace("\n", " ")[:160] + self._session_append( + f"recv: {len((output or '').strip())}B {preview!r}" + ) results[cmd] = output.strip() return results @@ -221,12 +335,17 @@ def navigate_to(self, target: str, params: Optional[Dict] = None): if self._current_level == target and not is_parameterized: return + self._session_append( + f"navigate: {self._current_level} -> {target}" + ) + # For parameterized levels at the same level, exit first so we # re-enter with new params (e.g. switching from interface 1/1 # to interface 1/2) if self._current_level == target and is_parameterized: exit_def = target_def.get('exit', {}) if exit_def and exit_def.get('command'): + self._session_append(f"nav exit: {exit_def['command']}") self.connection.send_command( exit_def['command'], expect_string=self._prompt_re, @@ -262,6 +381,7 @@ def navigate_to(self, target: str, params: Optional[Dict] = None): level_def = levels[level] exit_def = level_def.get('exit', {}) if exit_def and exit_def.get('command'): + self._session_append(f"nav exit: {exit_def['command']}") self.connection.send_command( exit_def['command'], expect_string=self._prompt_re, @@ -290,20 +410,23 @@ def navigate_to(self, target: str, params: Optional[Dict] = None): if enter_def.get('auth'): # Auth transition: send command, wait for password prompt, - # send password + # send password (never log the password itself). auth_pattern = enter_def.get('auth_pattern', 'Password:') + self._session_append(f"nav enter: {cmd} (auth)") output = self.connection.send_command( cmd, expect_string=f'{auth_pattern}|{self._prompt_re}', read_timeout=5 ) if auth_pattern in output: + self._session_append("nav enter: (password)") self.connection.send_command( self.password, expect_string=self._prompt_re, read_timeout=5 ) else: + self._session_append(f"nav enter: {cmd}") self.connection.send_command( cmd, expect_string=self._prompt_re, @@ -315,6 +438,7 @@ def navigate_to(self, target: str, params: Optional[Dict] = None): # Run on_enter setup commands (once per session) if level not in self._setup_done: for setup_cmd in level_def.get('on_enter', []): + self._session_append(f"nav on_enter: {setup_cmd}") self.connection.send_command( setup_cmd, expect_string=self._prompt_re, diff --git a/crude_engine/engine/interpreter.py b/crude_engine/engine/interpreter.py index dfeaadd..4a735bf 100644 --- a/crude_engine/engine/interpreter.py +++ b/crude_engine/engine/interpreter.py @@ -212,7 +212,7 @@ def _shape_table_output(self, method_def: Dict, schema_attrs: Dict, # Build keyed rows result = {} for idx, pk_value in pk_data.items(): - output_key = pk_value + output_key = idx if key_map else pk_value entry = dict(defaults) all_data = {} output_type = method_def.get("type", "dict") diff --git a/crude_engine/schemas/arp.yaml b/crude_engine/schemas/arp.yaml index 5086f24..ef97e55 100644 --- a/crude_engine/schemas/arp.yaml +++ b/crude_engine/schemas/arp.yaml @@ -5,6 +5,8 @@ methods: get_arp_table: type: dict primary_key: ip + # IP-MIB ipNetToMediaTable (1.17 same-wire). Not ipNetToPhysical*. + # Accessible Media columns; SNMP suffix is ifIndex.ip. defaults: interface: '' mac: '' @@ -57,19 +59,18 @@ methods: type: upsert fields: [dai_vlan_enabled, dai_vlan_logging, dai_vlan_binding_check, dai_vlan_acl_static, dai_vlan_acl_name] attributes: - # ARP table (get_arp_table) + # ARP table (get_arp_table) — ipNetToMediaTable, not Physical. + # Media has no lastUpdated; age stays default 0.0 (1.17 same). interface: - wire: ipnettophysicalifindex + wire: ipnettomediaifindex source: ip mac: - wire: ipnettophysicalphysaddress + wire: ipnettomediaphysaddress source: ip ip: - wire: ipnettophysicalnetaddress - source: ip - age: - wire: ipnettophysicallastupdated + wire: ipnettomedianetaddress source: ip + age: {} # DAI global validate_src_mac: wire: hm2agentdaisrcmacvalidate diff --git a/crude_engine/schemas/config.yaml b/crude_engine/schemas/config.yaml index bf37936..3ca228a 100644 --- a/crude_engine/schemas/config.yaml +++ b/crude_engine/schemas/config.yaml @@ -11,7 +11,6 @@ methods: type: dict defaults: saved: true - last_changed: '' nvm: ok aca: absent boot: ok @@ -20,6 +19,13 @@ methods: defaults: url: '' status: idle + attributes: + url: + wire: hm2fmconfigremotesavedestination + source: filemgmt + status: + wire: hm2fmconfigremotesaveadminstatus + source: filemgmt set_config_remote: type: upsert get_watchdog_status: @@ -31,6 +37,9 @@ methods: set_watchdog: type: upsert attributes: + # 1.17 get_config is SSH execute (show running-config). No overlay in this ticket. + running: {} + startup: {} nvm: wire: hm2fmnvmstate source: filemgmt diff --git a/crude_engine/schemas/interface.yaml b/crude_engine/schemas/interface.yaml index fdab70d..d7d4d84 100644 --- a/crude_engine/schemas/interface.yaml +++ b/crude_engine/schemas/interface.yaml @@ -28,6 +28,11 @@ methods: type: dict primary_key: name key_map: ifindex + # SSH identity from show interface counters (ifdescr), not show port ifname + attributes: + name: + wire: ifdescr + source: if defaults: tx_errors: 0 rx_errors: 0 diff --git a/crude_engine/schemas/ipv6.yaml b/crude_engine/schemas/ipv6.yaml index 742c885..71b4294 100644 --- a/crude_engine/schemas/ipv6.yaml +++ b/crude_engine/schemas/ipv6.yaml @@ -5,6 +5,8 @@ methods: get_ipv6_neighbors: type: dict primary_key: ip + # Same table as get_ipv6_neighbors_table and ARP family (#75): + # ipNetToMediaTable, not Physical INDEX (1.17 has no ND getter). defaults: interface: '' ip: '' @@ -25,23 +27,15 @@ attributes: ipv6_state: wire: hm2netipv6adminstatus source: netconfig + # ipNetToMediaTable (accessible columns; suffix ifIndex.ip). + # Physical 4.35 is empty on SNMP. Media has no ND state; default reachable. interface: - wire: ipnettophysicalifindex + wire: ipnettomediaifindex source: ip ip: - wire: ipnettophysicalnetaddress + wire: ipnettomedianetaddress source: ip mac: - wire: ipnettophysicalphysaddress + wire: ipnettomediaphysaddress source: ip - state: - wire: ipnettophysicalstate - source: ip - value_map: - '1': reachable - '2': stale - '3': delay - '4': probe - '5': invalid - '6': unknown - '7': incomplete + state: {} diff --git a/crude_engine/schemas/management.yaml b/crude_engine/schemas/management.yaml index e26ecbd..dc43c70 100644 --- a/crude_engine/schemas/management.yaml +++ b/crude_engine/schemas/management.yaml @@ -15,11 +15,14 @@ methods: type: upsert get_management_priority: type: dict + # HM2-NETCONFIG-MIB management-reply priorities (wire already in netconfig.yaml). + # napalm-hios names: dot1p / ip_dscp. Stub source/priority had no attrs → both_absent (#240). defaults: - source: local - priority: 1 + dot1p: 0 + ip_dscp: 0 set_management_priority: type: upsert + fields: [dot1p, ip_dscp] attributes: ip_address: wire: hm2netlocalipaddr @@ -44,3 +47,10 @@ attributes: '1': static '2': bootp '3': dhcp + # Management reply priorities (get/set_management_priority) + dot1p: + wire: hm2netvlanpriority + source: netconfig + ip_dscp: + wire: hm2netipdscppriority + source: netconfig diff --git a/crude_engine/schemas/optics.yaml b/crude_engine/schemas/optics.yaml index 61df3e9..85602a9 100644 --- a/crude_engine/schemas/optics.yaml +++ b/crude_engine/schemas/optics.yaml @@ -6,14 +6,24 @@ methods: type: dict primary_key: name key_map: ifindex + index_filter: '^\d+/\d+$' defaults: tx_power: 0.0 rx_power: 0.0 temperature: 0.0 attributes: + # Identity is detected-SFP ifIndex from hm2SfpDiagEntry (MIB: "Entry for + # a detected SFP"), not if.ifname (full ifTable). Drive rows from an + # accessible walked column — same pattern as get_users / trap dests. + # Do NOT use scalar hm2sfpdiagtable + lookup resolve:"key": SNMP/MOPS + # GET of the table OID returns {} (dict), so _apply_lookup takes the + # dict-match branch and yields n=0; SSH parser:none returns a string + # and the non-dict branch works (HITL on #76 tip). key_map remaps + # ifIndex → ifName. Defaults 0.0 cannot manufacture cpu/vlan/empty-cage + # rows because they are not in hm2SfpDiagEntry. name: - wire: ifname - source: if + wire: hm2sfpcurrenttxpower + source: devmgmt tx_power: wire: hm2sfpcurrenttxpower source: devmgmt diff --git a/crude_engine/schemas/poe.yaml b/crude_engine/schemas/poe.yaml index 6749479..bfc491a 100644 --- a/crude_engine/schemas/poe.yaml +++ b/crude_engine/schemas/poe.yaml @@ -4,7 +4,9 @@ description: Power over Ethernet (PoE) status and configuration methods: get_poe: type: dict - primary_key: name + # Wired primary + key_map ifindex (storm_control / #244). bare name pk → Offline {} (#245) + primary_key: enabled + key_map: ifindex defaults: enabled: false power_limit: 0.0 diff --git a/crude_engine/schemas/protection.yaml b/crude_engine/schemas/protection.yaml index c0515d3..15cbc9d 100644 --- a/crude_engine/schemas/protection.yaml +++ b/crude_engine/schemas/protection.yaml @@ -19,19 +19,94 @@ methods: enabled: false transmission_interval: 2 rx_threshold: 0 + attributes: + enabled: + wire: hm2agentswitchkeepalivestate + source: platform-switching + transmission_interval: + wire: hm2agentswitchkeepalivetransmitinterval + source: platform-switching + rx_threshold: + wire: hm2agentswitchkeepaliverxthreshold + source: platform-switching set_loop_protection: type: upsert get_auto_disable: type: dict - primary_key: name + # Wired primary + key_map (storm_control sibling). name: {} → empty pk → Offline {} (#244) + primary_key: enabled key_map: ifindex defaults: enabled: false reason: none remaining_time: 0 + timer: 0 + attributes: + enabled: + wire: hm2autodisableintfoperstate + source: devmgmt + value_map: + '1': true + '2': false + reason: + wire: hm2autodisableintferrorreason + source: devmgmt + value_map: + '0': none + '1': link-flap + '2': crc-error + '3': duplex-mismatch + '4': dhcp-snooping + '5': arp-rate + '6': bpdu-rate + '7': mac-based-port-security + '8': overload-detection + '9': speed-duplex + '10': loop-protection + remaining_time: + wire: hm2autodisableintfremainingtime + source: devmgmt + timer: + wire: hm2autodisableintftimer + source: devmgmt set_auto_disable: type: upsert index_filter: '^\d+/\d+$' + get_auto_disable_reasons: + type: dict + primary_key: reason + # INDEX hm2AutoDisableReasons is not-accessible. Drive from accessible + # ReasonOperation; suffix is the reason enum. + index_fields: [reason] + defaults: + enabled: false + category: '' + attributes: + reason: + wire: hm2autodisablereasonoperation + source: devmgmt + value_map: + '1': link-flap + '2': crc-error + '3': duplex-mismatch + '4': dhcp-snooping + '5': arp-rate + '6': bpdu-rate + '7': mac-based-port-security + '8': overload-detection + '9': speed-duplex + '10': loop-protection + enabled: + wire: hm2autodisablereasonoperation + source: devmgmt + category: + wire: hm2autodisablereasoncategory + source: devmgmt + value_map: + '1': other + '2': port-monitor + '3': network-security + '4': l2-redundancy set_auto_disable_reason: type: upsert index_key: auto_disable_reason @@ -39,6 +114,10 @@ methods: enabled: wire: hm2autodisablereasonoperation source: devmgmt + auto_disable_reset: + type: upsert + fields: [auto_disable_reset] + index_filter: '^\d+/\d+$' attributes: broadcast_enabled: wire: hm2trafficmgmtifingressstormctlbcastmode diff --git a/crude_engine/schemas/qos_mapping.yaml b/crude_engine/schemas/qos_mapping.yaml index 789d227..9e31943 100644 --- a/crude_engine/schemas/qos_mapping.yaml +++ b/crude_engine/schemas/qos_mapping.yaml @@ -8,12 +8,15 @@ methods: dot1p: {} dscp: {} sub_tables: + # Drive rows from the accessible value column. SNMP walk suffix is the + # INDEX (hm2TrafficClassPriority 0..7 / hm2CosMapIpDscpValue 0..63). + # Do not walk the not-accessible INDEX objects (1.17 same-wire). dot1p: - primary_key: dot1p_priority + primary_key: dot1p_traffic_class field_map: value: dot1p_traffic_class dscp: - primary_key: dscp_value + primary_key: dscp_traffic_class field_map: value: dscp_traffic_class set_qos_mapping: diff --git a/crude_engine/schemas/sflow.yaml b/crude_engine/schemas/sflow.yaml index 3d87f79..581830b 100644 --- a/crude_engine/schemas/sflow.yaml +++ b/crude_engine/schemas/sflow.yaml @@ -5,6 +5,8 @@ methods: get_sflow_receiver: type: dict primary_key: receiver_index + # SNMP: accessible sFlowRcvrOwner, index from walk suffix (1.17). + # Not INDEX sFlowRcvrIndex. Sampler/poller DataSource is a different suffix. defaults: receiver_index: 0 owner: '' @@ -19,6 +21,7 @@ methods: type: dict primary_key: sampler_datasource key_map: ifindex + # SNMP: accessible FsReceiver; DataSource suffix {oid_len}.…ifIndex.instance. defaults: sampler_datasource: '' sampler_receiver: 0 @@ -30,6 +33,7 @@ methods: type: dict primary_key: poller_datasource key_map: ifindex + # Same DataSource suffix encoding as sampler (1.17 _sflow_suffix_to_ifindex). defaults: poller_datasource: '' poller_receiver: 0 @@ -63,7 +67,8 @@ attributes: sampler_datasource: wire: sflowfsdatasource source: sflow - regex: '(\d+)$' + # ifIndex in ifEntry DataSource (MOPS OID or SNMP suffix+instance). + regex: '2\.2\.1\.1\.(\d+)' sampler_receiver: wire: sflowfsreceiver source: sflow @@ -77,7 +82,7 @@ attributes: poller_datasource: wire: sflowcpdatasource source: sflow - regex: '\.(\d+)$' + regex: '2\.2\.1\.1\.(\d+)' poller_receiver: wire: sflowcpreceiver source: sflow diff --git a/crude_engine/schemas/snmp.yaml b/crude_engine/schemas/snmp.yaml index adb7dbf..ff302f0 100644 --- a/crude_engine/schemas/snmp.yaml +++ b/crude_engine/schemas/snmp.yaml @@ -17,11 +17,20 @@ methods: get_snmp_trap_destinations: type: dict primary_key: name + # Drive rows from accessible snmpTargetAddrTAddress. + # INDEX snmpTargetAddrName (1.3.6.1.6.3.12.1.2.1.1) is not-accessible; + # 1.17 never walks it. Suffix is IMPLIED dest name (e.g. 4.116.114.97.112 → trap). + index_fields: [name] + index_type: implied_string defaults: address: '' security_model: '' security_name: '' security_level: '' + attributes: + name: + wire: snmptargetaddrtaddress + source: snmp-target create_snmp_trap_dest: type: create required: [name, address] diff --git a/crude_engine/schemas/system_health.yaml b/crude_engine/schemas/system_health.yaml index 5156332..e599ccb 100644 --- a/crude_engine/schemas/system_health.yaml +++ b/crude_engine/schemas/system_health.yaml @@ -8,6 +8,31 @@ methods: oper_state: '' status_index: 0 trap_cause: '' + attributes: + oper_state: + wire: hm2devmonoperstate + source: diagnostic + value_map: + '1': noerror + '2': error + status_index: + wire: hm2devmonstatusindex + source: diagnostic + trap_cause: + wire: hm2devmontrapcause + source: diagnostic + value_map: + '1': none + '2': power-supply + '3': link-failure + '4': temperature + '5': fan-failure + '6': module-removal + '7': ext-nvm-removal + '8': ext-nvm-not-in-sync + '9': ring-redundancy + '28': humidity + '30': stp-port-blocked set_device_monitor: type: upsert get_devsec_status: @@ -16,12 +41,55 @@ methods: oper_state: '' status_index: 0 trap_cause: '' + attributes: + oper_state: + wire: hm2devsecoperstate + source: diagnostic + value_map: + '1': noerror + '2': error + status_index: + wire: hm2devsecstatusindex + source: diagnostic + trap_cause: + wire: hm2devsectrapcause + source: diagnostic + value_map: + '1': none + '10': password-change + '11': password-min-length + '12': password-policy-not-configured + '13': password-policy-inactive + '14': telnet-enabled + '15': http-enabled + '16': snmp-unsecure + '17': sysmon-enabled + '18': ext-nvm-update-enabled + '19': no-link + '20': hidisc-enabled + '21': ext-nvm-config-load-unsecure + '22': iec61850-mms-enabled + '23': https-certificate-warning + '24': modbus-tcp-enabled + '25': ethernet-ip-enabled + '26': profinet-io-enabled + '29': pml-disabled + '31': secure-boot-disabled + '32': dev-mode-enabled set_devsec_status: type: upsert get_fan_status: type: dict defaults: status: running + attributes: + status: + wire: hm2fanmgmtstatus + source: fan + value_map: + '1': normal + '2': defective + '3': not-present attributes: monitor_state: wire: hm2devmonoperstate diff --git a/crude_engine/schemas/tracking.yaml b/crude_engine/schemas/tracking.yaml new file mode 100644 index 0000000..aa20e51 --- /dev/null +++ b/crude_engine/schemas/tracking.yaml @@ -0,0 +1,53 @@ +version: 2.7.0 +feature: tracking +description: Object tracking config table (hm2TrackingConfigEntry) +methods: + get_tracking: + type: dict + primary_key: name + # INDEX { hm2TrackType, hm2TrackId } — both accessible-for-notify. + # Drive rows from accessible hm2TrackName. Sibling tables (interface / + # ping / logical / application / static-route / interface-status) are + # leftover, not this schema. + index_fields: [type, id] + defaults: + name: '' + description: '' + operstate: '' + changes: 0 + last_change: '' + trap: false + status: 0 +attributes: + # Compound INDEX — not getter defaults. + type: + value_map: + '1': interface + '2': ping + '3': logical + id: {} + name: + wire: hm2trackname + source: tracking + description: + wire: hm2trackdescription + source: tracking + operstate: + wire: hm2trackoperstate + source: tracking + value_map: + '1': up + '2': down + '3': notReady + changes: + wire: hm2tracknumberofchanges + source: tracking + last_change: + wire: hm2tracktimelastchange + source: tracking + trap: + wire: hm2tracksendstatechangetrap + source: tracking + status: + wire: hm2trackstatus + source: tracking diff --git a/crude_engine/schemas/user.yaml b/crude_engine/schemas/user.yaml index 85bb13b..ae48081 100644 --- a/crude_engine/schemas/user.yaml +++ b/crude_engine/schemas/user.yaml @@ -5,6 +5,11 @@ methods: get_users: type: dict primary_key: username + # Drive rows from an accessible hm2UserConfigTable column. + # INDEX hm2UserName is accessible-for-notify; 1.17 never walks it. + # SNMP walk suffix is IMPLIED hm2UserName (e.g. 97.100.109.105.110 → admin). + index_fields: [username] + index_type: implied_string defaults: level: guest locked: false @@ -12,6 +17,10 @@ methods: snmp_auth: '' snmp_enc: '' default_password: false + attributes: + username: + wire: hm2useraccessrole + source: usermgmt set_user: type: upsert create_user: @@ -29,6 +38,10 @@ methods: min_length: 8 max_attempts: 3 lockout_time: 300 + min_uppercase: 0 + min_lowercase: 0 + min_numeric: 0 + min_special: 0 set_login_policy: type: upsert attributes: @@ -43,16 +56,16 @@ attributes: wire: hm2pwdmgmtloginattemptstimeperiod source: usermgmt min_uppercase: - wire: hm2pwdmgmtminuppercasechar + wire: hm2pwdmgmtminuppercase source: usermgmt min_lowercase: - wire: hm2pwdmgmtminlowercasechar + wire: hm2pwdmgmtminlowercase source: usermgmt min_numeric: - wire: hm2pwdmgmtminnumericchar + wire: hm2pwdmgmtminnumericnumbers source: usermgmt min_special: - wire: hm2pwdmgmtminspecialchar + wire: hm2pwdmgmtminspecialcharacters source: usermgmt # --- User table --- username: diff --git a/crude_engine/schemas/vlan.yaml b/crude_engine/schemas/vlan.yaml index 895f94a..17f2cf4 100644 --- a/crude_engine/schemas/vlan.yaml +++ b/crude_engine/schemas/vlan.yaml @@ -5,6 +5,8 @@ methods: get_vlans: type: dict primary_key: vlan_id + # SNMP: accessible dot1qVlanStaticTable, vlan_id from walk suffix. + # Not CurrentTable INDEX (1.17 same-wire). defaults: name: '' ports: {} @@ -36,6 +38,17 @@ methods: defaults: egress_ports: [] untagged_ports: [] + attributes: + # wire+compute on same name loses to defaults←all_data overwrite; + # gather raw, coerce None/'None' (ifindex miss) to []. + untagged_ports_raw: + wire: dot1qvlanstaticuntaggedports + source: q-bridge + value_map: ifindex + untagged_ports: + compute: + from: [untagged_ports_raw] + expr: "untagged_ports_raw if untagged_ports_raw not in (None, 'None') else []" set_vlan_egress: type: upsert attributes: @@ -59,7 +72,7 @@ attributes: ports: compute: from: [egress_ports, untagged_ports, forbidden_ports] - expr: "{**{p: 'U' for p in untagged_ports}, **{p: 'T' for p in egress_ports if p not in untagged_ports}, **{p: 'F' for p in forbidden_ports}}" + expr: "{**{p: 'U' for p in (untagged_ports if untagged_ports not in (None, 'None') else [])}, **{p: 'T' for p in (egress_ports if egress_ports not in (None, 'None') else []) if p not in (untagged_ports if untagged_ports not in (None, 'None') else [])}, **{p: 'F' for p in (forbidden_ports if forbidden_ports not in (None, 'None') else [])}}" sort: natural interface_name: wire: ifname @@ -76,6 +89,8 @@ attributes: value_map: '1': admitAll '2': admitOnlyVlanTagged + 'admit all': admitAll + vlanonly: admitOnlyVlanTagged vlan_status: wire: dot1qvlanstaticrowstatus source: q-bridge diff --git a/crude_engine/wire/bridge.yaml b/crude_engine/wire/bridge.yaml index 05228ce..b117a38 100644 --- a/crude_engine/wire/bridge.yaml +++ b/crude_engine/wire/bridge.yaml @@ -31,7 +31,7 @@ schemas: dot1dstpportdesignatedcost: 0 dot1dstpportdesignatedport: '' dot1dstpportdesignatedroot: '' - dot1dstpportenable: 0 + dot1dstpportenable: false dot1dstpportforwardtransitions: 0 dot1dstpportpathcost: 0 dot1dstpportpathcost32: 0 @@ -481,7 +481,7 @@ attributes: index_field: dot1dStpPort dot1dstpportenable: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: diff --git a/crude_engine/wire/devmgmt.yaml b/crude_engine/wire/devmgmt.yaml index bb46b44..251d922 100644 --- a/crude_engine/wire/devmgmt.yaml +++ b/crude_engine/wire/devmgmt.yaml @@ -1768,13 +1768,21 @@ attributes: field: hm2ExtNvmTable hm2extnvmtableindex: syntax: Hm2DeviceExtNVMType - type: string + type: integer access: r sources: snmp: read: - oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.1 + # Accessible hm2ExtNvmStatus. INDEX hm2ExtNvmTableIndex is + # not-accessible; walk of .8.2.1.1 returns empty → slots n=0. + # Suffix is Hm2DeviceExtNVMType (none/sd/usb/serial = 0..3). + oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.2 method: walk + index_fields: + - name: hm2ExtNvmTableIndex + type: integer + key_field: hm2ExtNvmTableIndex + value_from_index: hm2ExtNvmTableIndex mops: read: mib: HM2-DEVMGMT-MIB @@ -1821,9 +1829,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.5 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.5 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DEVMGMT-MIB @@ -1842,9 +1849,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DEVMGMT-MIB @@ -2108,9 +2114,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DEVMGMT-MIB diff --git a/crude_engine/wire/diagnostic.yaml b/crude_engine/wire/diagnostic.yaml index da04972..541632a 100644 --- a/crude_engine/wire/diagnostic.yaml +++ b/crude_engine/wire/diagnostic.yaml @@ -1385,8 +1385,16 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.1 + # Accessible hm2DevSecStatusTimeStamp. INDEX hm2DevSecStatusIndex + # (.10.1.1) is not-accessible; 1.17 never walks it. Suffix is + # the history index (integer). + oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.2 method: walk + index_fields: + - name: history_index + type: integer + key_field: history_index + value_from_index: history_index mops: read: mib: HM2-DIAGNOSTIC-MIB @@ -1895,9 +1903,8 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DIAGNOSTIC-MIB @@ -1913,9 +1920,8 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DIAGNOSTIC-MIB @@ -1932,9 +1938,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.3 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.3 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DIAGNOSTIC-MIB @@ -1950,9 +1955,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DIAGNOSTIC-MIB @@ -1968,9 +1972,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DIAGNOSTIC-MIB @@ -2404,9 +2407,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-DIAGNOSTIC-MIB @@ -3592,14 +3594,19 @@ attributes: sources: snmp: read: + # INDEX {hm2SigConID, hm2PSID}; key by contact for get_signal_contact (#235) oid: 1.3.6.1.4.1.248.11.22.1.3.1.2.1.1 method: walk + index_fields: + - {name: hm2SigConID, type: integer} + - {name: hm2PSID, type: integer} + key_field: hm2SigConID mops: read: mib: HM2-DIAGNOSTIC-MIB table: hm2SigConPSEntry field: hm2SigConSensePSState - index_field: hm2PSID + index_field: hm2SigConID index_fields: - hm2SigConID - hm2PSID diff --git a/crude_engine/wire/dns.yaml b/crude_engine/wire/dns.yaml index 42eb47d..3eba746 100644 --- a/crude_engine/wire/dns.yaml +++ b/crude_engine/wire/dns.yaml @@ -205,7 +205,7 @@ attributes: index_field: hm2DnsClientServerIndex hm2dnsclientserveraddresstype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: diff --git a/crude_engine/wire/efm-cu.yaml b/crude_engine/wire/efm-cu.yaml index eec5bc7..c58efa6 100644 --- a/crude_engine/wire/efm-cu.yaml +++ b/crude_engine/wire/efm-cu.yaml @@ -9,7 +9,7 @@ schemas: efmcufltstatus: [] efmculowratecrossingenable: false efmcunumpmes: 0 - efmcupafadminstate: 0 + efmcupafadminstate: false efmcupafcapacity: 0 efmcupafdiscoverycode: '' efmcupafinbadfragments: 0 @@ -192,7 +192,7 @@ attributes: max: 32 efmcupafadminstate: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: diff --git a/crude_engine/wire/etherlike.yaml b/crude_engine/wire/etherlike.yaml index 1b01b75..6331b64 100644 --- a/crude_engine/wire/etherlike.yaml +++ b/crude_engine/wire/etherlike.yaml @@ -7,6 +7,5 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.2.1.10.7.2.1.8 - method: walk + write: + oid: 1.3.6.1.2.1.10.7.2.1.8 # #264: no gather walk (call-budget); SET keeps oid diff --git a/crude_engine/wire/ieee8021-pae.yaml b/crude_engine/wire/ieee8021-pae.yaml index 75e9796..39cf170 100644 --- a/crude_engine/wire/ieee8021-pae.yaml +++ b/crude_engine/wire/ieee8021-pae.yaml @@ -72,7 +72,7 @@ schemas: dot1xpaeportprotocolversion: 0 dot1xpaeportreauthenticate: false dot1xpaeporttable: '' - dot1xpaesystemauthcontrol: 0 + dot1xpaesystemauthcontrol: false dot1xsuppauthperiod: 0 dot1xsuppconfigentry: '' dot1xsuppconfigtable: '' @@ -1146,7 +1146,7 @@ attributes: field: dot1xPaePortTable dot1xpaesystemauthcontrol: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: diff --git a/crude_engine/wire/ip-forward.yaml b/crude_engine/wire/ip-forward.yaml index 7a57eca..5dbdbd9 100644 --- a/crude_engine/wire/ip-forward.yaml +++ b/crude_engine/wire/ip-forward.yaml @@ -92,8 +92,29 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.4.24.7.1.2 + # Accessible inetCidrRouteIfIndex. INDEX inetCidrRouteDest + # (1.3.6.1.2.1.4.24.7.1.2) is not-accessible. Suffix is RFC 4292 + # destType.dest.pfxLen.policy.nextHopType.nextHop; dest/nextHop + # are length-prefixed InetAddress. IPv4 only (dest_type 1). + oid: 1.3.6.1.2.1.4.24.7.1.7 method: walk + index_fields: + - name: dest_type + type: integer + - name: destination + type: octet_string + - name: pfx_len + type: integer + - name: policy + type: octet_string + - name: nexthop_type + type: integer + - name: next_hop + type: octet_string + value_from_index: destination + value_format: ipv4 + index_filter: + dest_type: 1 mops: read: mib: IP-FORWARD-MIB @@ -248,8 +269,27 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.4.24.7.1.6 + # INDEX inetCidrRouteNextHop is not-accessible. Same IfIndex walk + # as dest; next_hop comes from the suffix. + oid: 1.3.6.1.2.1.4.24.7.1.7 method: walk + index_fields: + - name: dest_type + type: integer + - name: destination + type: octet_string + - name: pfx_len + type: integer + - name: policy + type: octet_string + - name: nexthop_type + type: integer + - name: next_hop + type: octet_string + value_from_index: next_hop + value_format: ipv4 + index_filter: + dest_type: 1 mops: read: mib: IP-FORWARD-MIB diff --git a/crude_engine/wire/ipmroute-std.yaml b/crude_engine/wire/ipmroute-std.yaml index fbd1ac4..21ec4a0 100644 --- a/crude_engine/wire/ipmroute-std.yaml +++ b/crude_engine/wire/ipmroute-std.yaml @@ -11,7 +11,7 @@ schemas: ipmrouteboundarystatus: 0 ipmrouteboundarytable: '' ipmroutedifferentinifpackets: 0 - ipmrouteenable: 0 + ipmrouteenable: false ipmrouteentry: '' ipmrouteentrycount: 0 ipmrouteexpirytime: 0 @@ -178,7 +178,7 @@ attributes: - ipMRouteSource ipmrouteenable: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: diff --git a/crude_engine/wire/l2redundancy.yaml b/crude_engine/wire/l2redundancy.yaml index 15e240a..9ff1200 100644 --- a/crude_engine/wire/l2redundancy.yaml +++ b/crude_engine/wire/l2redundancy.yaml @@ -9,11 +9,11 @@ schemas: hm2mrpdomainname: '' hm2mrpentry: '' hm2mrpfastmrp: 0 - hm2mrpmrcblockedsupported: 0 + hm2mrpmrcblockedsupported: false hm2mrpmrmlastringopenchange: 0 - hm2mrpmrmnonblockingmrcsupported: 0 + hm2mrpmrmnonblockingmrcsupported: false hm2mrpmrmpriority: 0 - hm2mrpmrmreactonlinkchange: 0 + hm2mrpmrmreactonlinkchange: false hm2mrpmrmringopencount: 0 hm2mrpmrmroundtripdelaymax: 0 hm2mrpmrmroundtripdelaymin: 0 @@ -184,7 +184,7 @@ attributes: - notSupported hm2mrpmrcblockedsupported: syntax: INTEGER - type: integer + type: boolean access: r sources: snmp: @@ -220,7 +220,7 @@ attributes: key_tag: to_hex_decode hm2mrpmrmnonblockingmrcsupported: syntax: INTEGER - type: integer + type: boolean access: r sources: snmp: @@ -255,7 +255,7 @@ attributes: max: 65535 hm2mrpmrmreactonlinkchange: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: diff --git a/crude_engine/wire/lldp-ext-dot1.yaml b/crude_engine/wire/lldp-ext-dot1.yaml index 5aefb18..47ec06e 100644 --- a/crude_engine/wire/lldp-ext-dot1.yaml +++ b/crude_engine/wire/lldp-ext-dot1.yaml @@ -516,7 +516,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.32962.1.3.1.1.1 + oid: 1.0.8802.1.1.2.1.5.32962.1.3.1.1.1 method: walk mops: read: diff --git a/crude_engine/wire/lldp-ext-dot3.yaml b/crude_engine/wire/lldp-ext-dot3.yaml index cf87c94..d1b4be7 100644 --- a/crude_engine/wire/lldp-ext-dot3.yaml +++ b/crude_engine/wire/lldp-ext-dot3.yaml @@ -455,7 +455,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.2 + oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.2 method: walk mops: read: @@ -475,7 +475,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.1 + oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.1 method: walk mops: read: @@ -574,7 +574,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.2 + oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.2 method: walk mops: read: @@ -594,7 +594,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.1 + oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.1 method: walk mops: read: @@ -628,7 +628,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.4 + oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.4 method: walk mops: read: diff --git a/crude_engine/wire/lldp.yaml b/crude_engine/wire/lldp.yaml index 0b24293..45525e6 100644 --- a/crude_engine/wire/lldp.yaml +++ b/crude_engine/wire/lldp.yaml @@ -721,7 +721,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.5 + oid: 1.0.8802.1.1.2.1.4.1.1.5 method: walk mops: read: @@ -789,8 +789,22 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.2 + # Accessible lldpRemSysName. INDEX lldpRemLocalPortNum + # (1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.2) is not-accessible; + # 1.17 never walks it. Suffix is timeMark.localPortNum.remIndex. + # IEEE tree 1.0.8802 matches 1.17 (not 1.3.6.1.2.1.0.8802). + # No key_field: join key stays the full suffix so list_append + # can keep multiple remIndex on the same local port. + oid: 1.0.8802.1.1.2.1.4.1.1.9 method: walk + index_fields: + - name: time_mark + type: integer + - name: local_port + type: integer + - name: rem_index + type: integer + value_from_index: local_port mops: read: mib: LLDP-MIB @@ -1029,7 +1043,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.8 + oid: 1.0.8802.1.1.2.1.4.1.1.8 method: walk mops: read: @@ -1048,7 +1062,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.7 + oid: 1.0.8802.1.1.2.1.4.1.1.7 method: walk mops: read: @@ -1081,7 +1095,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.12 + oid: 1.0.8802.1.1.2.1.4.1.1.12 method: walk mops: read: @@ -1098,7 +1112,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.11 + oid: 1.0.8802.1.1.2.1.4.1.1.11 method: walk mops: read: @@ -1114,7 +1128,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.10 + oid: 1.0.8802.1.1.2.1.4.1.1.10 method: walk mops: read: @@ -1133,7 +1147,7 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.9 + oid: 1.0.8802.1.1.2.1.4.1.1.9 method: walk mops: read: diff --git a/crude_engine/wire/logging.yaml b/crude_engine/wire/logging.yaml index 9b0d602..5004833 100644 --- a/crude_engine/wire/logging.yaml +++ b/crude_engine/wire/logging.yaml @@ -503,7 +503,7 @@ attributes: max: 5 hm2logemailsmtpaddrtype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: @@ -1255,7 +1255,7 @@ attributes: index_field: hm2LogSyslogServerIndex hm2logsyslogserveripaddrtype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: diff --git a/crude_engine/wire/mau.yaml b/crude_engine/wire/mau.yaml index 28804ad..7416554 100644 --- a/crude_engine/wire/mau.yaml +++ b/crude_engine/wire/mau.yaml @@ -15,7 +15,7 @@ schemas: ifjackindex: 0 ifjacktable: '' ifjacktype: '' - ifmauautonegadminstatus: 0 + ifmauautonegadminstatus: false ifmauautonegcapadvertised: 0 ifmauautonegcapadvertisedbits: '' ifmauautonegcapreceived: 0 @@ -243,13 +243,12 @@ attributes: index_fields: *id002 ifmauautonegadminstatus: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: - read: - oid: 1.3.6.1.2.1.26.5.1.1.1 - method: walk + write: + oid: 1.3.6.1.2.1.26.5.1.1.1 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: MAU-MIB @@ -459,9 +458,8 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.2.1.26.2.1.1.12 - method: walk + write: + oid: 1.3.6.1.2.1.26.2.1.1.12 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: MAU-MIB @@ -495,9 +493,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.2.1.26.2.1.1.11 - method: walk + write: + oid: 1.3.6.1.2.1.26.2.1.1.11 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: MAU-MIB @@ -624,9 +621,8 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.2.1.26.2.1.1.5 - method: walk + write: + oid: 1.3.6.1.2.1.26.2.1.1.5 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: MAU-MIB diff --git a/crude_engine/wire/mgmtaccess.yaml b/crude_engine/wire/mgmtaccess.yaml index e3a5eb4..4b89511 100644 --- a/crude_engine/wire/mgmtaccess.yaml +++ b/crude_engine/wire/mgmtaccess.yaml @@ -566,7 +566,7 @@ attributes: index_field: hm2RmaIndex hm2rmaipaddrtype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: @@ -1166,7 +1166,7 @@ attributes: index_field: hm2SshKnownHostIndex hm2sshknownhostaddresstype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: @@ -1284,7 +1284,7 @@ attributes: field: hm2SshLastLoginInetAddress hm2sshlastlogininetaddresstype: syntax: InetAddressType - type: integer + type: string access: r sources: snmp: @@ -1530,7 +1530,7 @@ attributes: field: hm2TelnetLastLoginInetAddress hm2telnetlastlogininetaddresstype: syntax: InetAddressType - type: integer + type: string access: r sources: snmp: @@ -1924,7 +1924,7 @@ attributes: field: hm2WebLastLoginInetAddress hm2weblastlogininetaddresstype: syntax: InetAddressType - type: integer + type: string access: r sources: snmp: diff --git a/crude_engine/wire/netconfig.yaml b/crude_engine/wire/netconfig.yaml index 08c5cf8..7a17075 100644 --- a/crude_engine/wire/netconfig.yaml +++ b/crude_engine/wire/netconfig.yaml @@ -1,5 +1,13 @@ version: 2.6.0 feature: netconfig +value_maps: + hidiscovery_mode: + read-write: readWrite + read-only: readOnly + # SSH Protocol none/local; schema MIB 1→static (#54). + management_protocol: + none: static + local: static schemas: read_netconfig: type: dict @@ -1079,7 +1087,7 @@ attributes: field: hm2NetOobMgmtOperState hm2netoobmgmtprefixlength: syntax: InetAddressPrefixLength - type: integer + type: string access: ru sources: snmp: @@ -1195,7 +1203,7 @@ attributes: field: hm2NetOobUsbMgmtIPAddrType hm2netoobusbmgmtprefixlength: syntax: InetAddressPrefixLength - type: integer + type: string access: ru sources: snmp: @@ -1209,7 +1217,7 @@ attributes: field: hm2NetOobUsbMgmtPrefixLength hm2netprefixlength: syntax: InetAddressPrefixLength - type: integer + type: string access: ru sources: snmp: diff --git a/crude_engine/wire/platform-radius.yaml b/crude_engine/wire/platform-radius.yaml index d9e15f0..c3e8523 100644 --- a/crude_engine/wire/platform-radius.yaml +++ b/crude_engine/wire/platform-radius.yaml @@ -179,7 +179,7 @@ attributes: index_field: hm2AgentRadiusAccountingServerIndex hm2agentradiusaccountingserveraddrtype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: @@ -209,7 +209,7 @@ attributes: index_field: hm2AgentRadiusAccountingServerIndex hm2agentradiusaccountingserveraddresstype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: @@ -380,7 +380,7 @@ attributes: field: hm2AgentRadiusNasIpAddress hm2agentradiusserveraddresstype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: @@ -503,7 +503,7 @@ attributes: index_field: hm2AgentRadiusServerIndex hm2agentradiusserverinetaddrtype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: diff --git a/crude_engine/wire/platform-routing.yaml b/crude_engine/wire/platform-routing.yaml index 9b3ee40..a54d7c3 100644 --- a/crude_engine/wire/platform-routing.yaml +++ b/crude_engine/wire/platform-routing.yaml @@ -5155,7 +5155,7 @@ attributes: field: hm2AgentSwitchIpVlanEntry hm2agentswitchipvlanid: syntax: VlanId - type: integer + type: string access: r sources: snmp: diff --git a/crude_engine/wire/platform-switching.yaml b/crude_engine/wire/platform-switching.yaml index 165c797..b45588c 100644 --- a/crude_engine/wire/platform-switching.yaml +++ b/crude_engine/wire/platform-switching.yaml @@ -1,5 +1,9 @@ version: 2.6.0 feature: platform-switching +value_maps: + # SSH Location local/tftp-loc; RemoteFileName empty when local (#44). + dhcp_snooping_db_location: + local: '' schemas: read_platform-switching: type: dict @@ -211,7 +215,7 @@ schemas: hm2agentportvoicevlanid: 0 hm2agentportvoicevlanmode: 0 hm2agentportvoicevlannonemode: 0 - hm2agentportvoicevlanoperationalstatus: 0 + hm2agentportvoicevlanoperationalstatus: false hm2agentportvoicevlanpriority: 0 hm2agentportvoicevlanuntagged: 0 hm2agentprivatevlanassociate: '' @@ -1065,8 +1069,13 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1 + # INDEX not-accessible (.1); walk DynArpInspEnable (.2) + value_from_index (#233 / #39 sibling) + oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.2 method: walk + index_fields: + - {name: hm2AgentDaiVlanIndex, type: integer} + key_field: hm2AgentDaiVlanIndex + value_from_index: hm2AgentDaiVlanIndex mops: read: mib: HM2-PLATFORM-SWITCHING-MIB @@ -3198,9 +3207,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.12.1.2.13.1.19 - method: walk + write: + oid: 1.3.6.1.4.1.248.12.1.2.13.1.19 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-PLATFORM-SWITCHING-MIB @@ -3839,7 +3847,7 @@ attributes: index_field: hm2AgentPortDot1dBasePort hm2agentportvoicevlanoperationalstatus: syntax: INTEGER - type: integer + type: boolean access: r sources: snmp: diff --git a/crude_engine/wire/platform-tacacsclient.yaml b/crude_engine/wire/platform-tacacsclient.yaml index 93b1d91..ca666e1 100644 --- a/crude_engine/wire/platform-tacacsclient.yaml +++ b/crude_engine/wire/platform-tacacsclient.yaml @@ -161,7 +161,7 @@ attributes: field: hm2AgentTacacsServerEntry hm2agenttacacsserveripaddrtype: syntax: InetAddressType - type: integer + type: string access: r sources: snmp: diff --git a/crude_engine/wire/q-bridge.yaml b/crude_engine/wire/q-bridge.yaml index f64d08e..0d639b8 100644 --- a/crude_engine/wire/q-bridge.yaml +++ b/crude_engine/wire/q-bridge.yaml @@ -936,8 +936,16 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.17.7.1.2.2.1.1 + # Address INDEX not-accessible (.1); walk Port (.2) + value_from_index mac (#234 / #39) + oid: 1.3.6.1.2.1.17.7.1.2.2.1.2 method: walk + index_fields: &id004snmp + - {name: dot1qFdbId, type: integer} + - {name: dot1qTpFdbAddress, type: fixed_string, size: 6} + key_field: dot1qTpFdbAddress + key_format: mac + value_from_index: dot1qTpFdbAddress + value_format: mac mops: read: mib: Q-BRIDGE-MIB @@ -970,6 +978,9 @@ attributes: read: oid: 1.3.6.1.2.1.17.7.1.2.2.1.2 method: walk + index_fields: *id004snmp + key_field: dot1qTpFdbAddress + key_format: mac mops: read: mib: Q-BRIDGE-MIB @@ -989,6 +1000,9 @@ attributes: read: oid: 1.3.6.1.2.1.17.7.1.2.2.1.3 method: walk + index_fields: *id004snmp + key_field: dot1qTpFdbAddress + key_format: mac mops: read: mib: Q-BRIDGE-MIB @@ -1352,15 +1366,23 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.2.1.17.7.1.4.2.1.2 + # Accessible StaticTable column. CurrentTable INDEX + # (1.3.6.1.2.1.17.7.1.4.2.1.2) is not-accessible; 1.17 never walks it. + # Walk suffix is vlan_id. + oid: 1.3.6.1.2.1.17.7.1.4.3.1.1 method: walk + index_fields: + - name: vlan_id + type: integer + key_field: vlan_id + value_from_index: vlan_id mops: read: + # Offline seeds StaticEntry only; CurrentEntry → noSuchName / n=0 (#243) mib: Q-BRIDGE-MIB - table: dot1qVlanCurrentEntry + table: dot1qVlanStaticEntry field: dot1qVlanIndex index_field: dot1qVlanIndex - index_fields: *id008 validation: min: 1 max: 4094 diff --git a/crude_engine/wire/remote-authentication.yaml b/crude_engine/wire/remote-authentication.yaml index 0ab8e6a..f5439ed 100644 --- a/crude_engine/wire/remote-authentication.yaml +++ b/crude_engine/wire/remote-authentication.yaml @@ -112,7 +112,7 @@ attributes: field: hm2LdapClientServerAddrTable hm2ldapclientserveraddrtype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: diff --git a/crude_engine/wire/rmon.yaml b/crude_engine/wire/rmon.yaml index 893ad95..a78a88d 100644 --- a/crude_engine/wire/rmon.yaml +++ b/crude_engine/wire/rmon.yaml @@ -1308,9 +1308,8 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.2.1.16.1.1.1.8 - method: walk + write: + oid: 1.3.6.1.2.1.16.1.1.1.8 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: RMON-MIB @@ -1323,9 +1322,8 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.2.1.16.1.1.1.13 - method: walk + write: + oid: 1.3.6.1.2.1.16.1.1.1.13 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: RMON-MIB @@ -1368,9 +1366,8 @@ attributes: access: r sources: snmp: - read: - oid: 1.3.6.1.2.1.16.1.1.1.11 - method: walk + write: + oid: 1.3.6.1.2.1.16.1.1.1.11 # #264: no gather walk (call-budget); SET keeps oid mops: read: mib: RMON-MIB diff --git a/crude_engine/wire/sflow.yaml b/crude_engine/wire/sflow.yaml index a8f8d45..7c671ad 100644 --- a/crude_engine/wire/sflow.yaml +++ b/crude_engine/wire/sflow.yaml @@ -66,8 +66,11 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.4.1.14706.1.1.6.1.1 + # Accessible sFlowCpReceiver. INDEX DataSource is not-accessible. + # Suffix is {oid_len}.1.3.6.1.2.1.2.2.1.1.{ifIndex}.{instance}. + oid: 1.3.6.1.4.1.14706.1.1.6.1.3 method: walk + key_tag: crude_text mops: read: mib: SFLOW-MIB @@ -160,8 +163,11 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.4.1.14706.1.1.5.1.1 + # Accessible sFlowFsReceiver. INDEX DataSource is not-accessible. + # Suffix is {oid_len}.1.3.6.1.2.1.2.2.1.1.{ifIndex}.{instance}. + oid: 1.3.6.1.4.1.14706.1.1.5.1.3 method: walk + key_tag: crude_text mops: read: mib: SFLOW-MIB @@ -329,8 +335,15 @@ attributes: sources: snmp: read: - oid: 1.3.6.1.4.1.14706.1.1.4.1.1 + # Accessible sFlowRcvrOwner. INDEX sFlowRcvrIndex is + # not-accessible; 1.17 never walks it. Suffix is 1-8. + oid: 1.3.6.1.4.1.14706.1.1.4.1.2 method: walk + index_fields: + - name: receiver_index + type: integer + key_field: receiver_index + value_from_index: receiver_index mops: read: mib: SFLOW-MIB diff --git a/crude_engine/wire/snmpv2.yaml b/crude_engine/wire/snmpv2.yaml index 2350b66..e0b129e 100644 --- a/crude_engine/wire/snmpv2.yaml +++ b/crude_engine/wire/snmpv2.yaml @@ -4,7 +4,7 @@ schemas: read_snmpv2: type: dict defaults: - snmpenableauthentraps: 0 + snmpenableauthentraps: false snmpinasnparseerrs: 0 snmpinbadcommunitynames: 0 snmpinbadcommunityuses: 0 @@ -54,7 +54,7 @@ schemas: attributes: snmpenableauthentraps: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: diff --git a/crude_engine/wire/ssh/devmgmt.yaml b/crude_engine/wire/ssh/devmgmt.yaml index 779c6f1..2e27c55 100644 --- a/crude_engine/wire/ssh/devmgmt.yaml +++ b/crude_engine/wire/ssh/devmgmt.yaml @@ -76,3 +76,21 @@ attributes: sources: ssh: write: {command: "auto-power-down {value}", level: config_interface} + + # get_optics (#55): show sfp is plugged modules, not show port / ifname. + # Line layout (napalm-hios 1.17): Intf Part-ID ModType Temp TxPower RxPower + # Part-ID is variable width; regex_extract, not column index. + hm2sfpcurrenttxpower: + sources: + ssh: + read: {command: "show sfp", parser: paired_rows, lines_per_record: 1, key_column: 0, regex_extract: '(-?\d+\.\d+)\s*/\s*\d+\.\d+', index: 0} + + hm2sfpcurrentrxpower: + sources: + ssh: + read: {command: "show sfp", parser: paired_rows, lines_per_record: 1, key_column: 0, regex_extract: '(-?\d+\.\d+)\s*/\s*\d+\.\d+', index: 1} + + hm2sfpcurrenttemperature: + sources: + ssh: + read: {command: "show sfp", parser: paired_rows, lines_per_record: 1, key_column: 0, regex_extract: '(\d+)/\d+', index: 1} diff --git a/crude_engine/wire/ssh/dns.yaml b/crude_engine/wire/ssh/dns.yaml index 46a95a1..e0cfc68 100644 --- a/crude_engine/wire/ssh/dns.yaml +++ b/crude_engine/wire/ssh/dns.yaml @@ -43,14 +43,14 @@ attributes: hm2dnsclientserveraddress: sources: ssh: - read: {command: "show dns client servers", parser: table, column: 1} + read: {command: "show dns client servers", parser: table, column: 1, key_column: 0} create: {command: "dns client servers add {index} ip {address}", level: config} delete: {command: "dns client servers delete {index}", level: config, confirm: "y"} hm2dnsclientserverindex: sources: ssh: - read: {command: "show dns client servers", parser: table, column: 0} + read: {command: "show dns client servers", parser: table, column: 0, key_column: 0} hm2dnsclientserverrowstatus: sources: diff --git a/crude_engine/wire/ssh/filemgmt.yaml b/crude_engine/wire/ssh/filemgmt.yaml index 553f5af..6389619 100644 --- a/crude_engine/wire/ssh/filemgmt.yaml +++ b/crude_engine/wire/ssh/filemgmt.yaml @@ -25,7 +25,7 @@ attributes: hm2fmprofileswmajorrelnum: sources: ssh: - read: {command: "show config profiles nvm", parser: paired_rows, lines_per_record: 3, line: 0, column: 4, regex: '0*(\d+)\.(\d+)\.(\d+)', regex_format: "{0}.{1}.{2:0>2}", tag: to_str} + read: {command: "show config profiles nvm", parser: paired_rows, lines_per_record: 3, line: 0, column: 4, regex: '0*(\d+)\.\d+\.\d+', tag: to_str} hm2fmprofileswminorrelnum: sources: diff --git a/crude_engine/wire/ssh/if.yaml b/crude_engine/wire/ssh/if.yaml index 880fe35..cdee735 100644 --- a/crude_engine/wire/ssh/if.yaml +++ b/crude_engine/wire/ssh/if.yaml @@ -2,6 +2,14 @@ version: "2.9.0" feature: if-ssh description: "SSH CLI sources for IF-MIB" +# show port — get_interfaces identity + admin/alias (unchanged) +# show interface counters — 3 lines per interface (1.17 / fixture layout): +# line0 tokens: Intf RxUcast RxMcast RxBcast RxOctets RxDiscard RxErrors +# line1 tokens: TxUcast TxMcast TxBcast TxOctets TxDiscard TxErrors +# line2 tokens: RxUnknPro (ignored) +# Wide Counter64-looking values overflow dash columns; paired_rows +# regex_extract \S+ + index matches napalm-hios-1.17 whitespace split. + attributes: ifname: sources: @@ -21,3 +29,69 @@ attributes: ssh: read: {command: "show port", parser: paired_rows, line: 1, column: 0} write: {command: "name {value}", level: config_interface} + + # Identity for get_interface_statistics (method-scoped name → ifdescr) + ifdescr: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 0} + + ifhcinucastpkts: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 1} + + ifhcinmulticastpkts: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 2} + + ifhcinbroadcastpkts: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 3} + + ifinoctets: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 4} + + ifindiscards: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 5} + + ifinerrors: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 6} + + ifhcoutucastpkts: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 7} + + ifhcoutmulticastpkts: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 8} + + ifhcoutbroadcastpkts: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 9} + + ifoutoctets: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 10} + + ifoutdiscards: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 11} + + ifouterrors: + sources: + ssh: + read: {command: "show interface counters", parser: paired_rows, lines_per_record: 3, regex_extract: '\S+', index: 12} diff --git a/crude_engine/wire/ssh/l2forwarding.yaml b/crude_engine/wire/ssh/l2forwarding.yaml index c1f107e..5374713 100644 --- a/crude_engine/wire/ssh/l2forwarding.yaml +++ b/crude_engine/wire/ssh/l2forwarding.yaml @@ -3,14 +3,14 @@ feature: l2forwarding-ssh description: "SSH CLI sources for L2 forwarding (QoS mapping)" attributes: - hm2trafficclasspriority: + hm2trafficclass: type: string sources: ssh: - read: {command: "show classofservice dot1p-mapping", parser: table, column: 0} + read: {command: "show classofservice dot1p-mapping", parser: table, column: 1, key_column: 0} - hm2trafficclass: + hm2cosmapipdscptrafficclass: type: string sources: ssh: - read: {command: "show classofservice dot1p-mapping", parser: table, column: 1} + read: {command: "show classofservice ip-dscp-mapping", parser: table, column: 1, key_column: 0} diff --git a/crude_engine/wire/ssh/mgmtaccess.yaml b/crude_engine/wire/ssh/mgmtaccess.yaml index 2a45d40..1ac1582 100644 --- a/crude_engine/wire/ssh/mgmtaccess.yaml +++ b/crude_engine/wire/ssh/mgmtaccess.yaml @@ -85,9 +85,15 @@ attributes: type: string sources: ssh: - read: {command: "show system pre-login-banner", field: "Login banner text"} + # CLI puts the body on the next line after empty dots (1.17 + # _parse_banner_text). field: is same-line only → "". + read: + command: "show system pre-login-banner" + parser: regex + pattern: 'Login banner text\.+\n?(.*)' write: {command: "system pre-login-banner text {value}", level: config} + # SNMP global config (snmp schema uses mgmtaccess wire) hm2snmpv1adminstatus: sources: diff --git a/crude_engine/wire/ssh/netconfig.yaml b/crude_engine/wire/ssh/netconfig.yaml index 55f1e41..f7db012 100644 --- a/crude_engine/wire/ssh/netconfig.yaml +++ b/crude_engine/wire/ssh/netconfig.yaml @@ -26,7 +26,7 @@ attributes: type: string sources: ssh: - read: {command: "show network parms", field: "Protocol"} + read: {command: "show network parms", field: "Protocol", tag: value_map, map: management_protocol} # HiDiscovery: show network hidiscovery hm2nethidiscoveryoperation: @@ -39,7 +39,7 @@ attributes: type: string sources: ssh: - read: {command: "show network hidiscovery", field: "Operating mode"} + read: {command: "show network hidiscovery", field: "Operating mode", tag: value_map, map: hidiscovery_mode} write: {command: "network hidiscovery mode {value}", level: priv} hm2nethidiscoveryblinking: diff --git a/crude_engine/wire/ssh/platform-portsecurity.yaml b/crude_engine/wire/ssh/platform-portsecurity.yaml index 8a3489a..6e74eaa 100644 --- a/crude_engine/wire/ssh/platform-portsecurity.yaml +++ b/crude_engine/wire/ssh/platform-portsecurity.yaml @@ -33,39 +33,20 @@ attributes: ssh: write: {command: "port-security mode {value}", level: config} - hm2agentportsecurityautodisable: - sources: - ssh: - read: {command: "show port-security interface {index}", field: "Automatic disable"} + # #56: dropped N× `show port-security interface {index}` read fanout (call-budget). + # Prefer global + table `show port-security interface` above. Port counters / auto-disable / + # trap / last-MAC stay on MOPS/SNMP for get_port_security.read. Writes below unchanged. hm2agentportsecurityviolationtrapmode: sources: ssh: - read: {command: "show port-security interface {index}", field: "Violation trap mode"} write: {command: "port-security violation-traps operation", level: config_interface} hm2agentportsecurityviolationtrapfrequency: sources: ssh: - read: {command: "show port-security interface {index}", field: "Violation trap frequency"} write: {command: "port-security violation-traps operation frequency {value}", level: config_interface} - hm2agentportsecuritydynamiccount: - sources: - ssh: - read: {command: "show port-security interface {index}", field: "Current dynamic"} - - hm2agentportsecuritystaticcount: - sources: - ssh: - read: {command: "show port-security interface {index}", field: "Current static"} - - hm2agentportsecuritylastdiscardedmac: - type: string - sources: - ssh: - read: {command: "show port-security interface {index}", field: "Last violating VLAN ID/MAC"} - hm2agentportsecuritymacaddressadd: sources: ssh: diff --git a/crude_engine/wire/ssh/platform-switching.yaml b/crude_engine/wire/ssh/platform-switching.yaml index 3a7970c..e6836ba 100644 --- a/crude_engine/wire/ssh/platform-switching.yaml +++ b/crude_engine/wire/ssh/platform-switching.yaml @@ -5,16 +5,14 @@ description: "SSH CLI sources for platform-switching attrs" attributes: # IP Source Guard: show ip source-guard interfaces hm2agentipsgifverifysource: - type: string sources: ssh: - read: {command: "show ip source-guard interfaces", parser: table, column: 1} + read: {command: "show ip source-guard interfaces", parser: table, column: 1, key_column: 0} hm2agentipsgifportsecurity: - type: string sources: ssh: - read: {command: "show ip source-guard interfaces", parser: table, column: 2} + read: {command: "show ip source-guard interfaces", parser: table, column: 2, key_column: 0} # RSTP global: show spanning-tree global hm2agentstpadminmode: @@ -114,7 +112,7 @@ attributes: type: string sources: ssh: - read: {command: "show ip dhcp-snooping global", field: "Bindings Database Location"} + read: {command: "show ip dhcp-snooping global", field: "Bindings Database Location", tag: value_map, map: dhcp_snooping_db_location} write: {command: "ip dhcp-snooping database storage {value}", level: config} hm2agentdhcpsnoopingiftrustenable: diff --git a/crude_engine/wire/ssh/q-bridge.yaml b/crude_engine/wire/ssh/q-bridge.yaml index e5f2a31..25d4172 100644 --- a/crude_engine/wire/ssh/q-bridge.yaml +++ b/crude_engine/wire/ssh/q-bridge.yaml @@ -16,18 +16,18 @@ attributes: dot1qpvid: sources: ssh: - read: {command: "show vlan port", parser: table, column: 1} + read: {command: "show vlan port", parser: table, column: 1, key_column: 0} dot1qportingressfiltering: sources: ssh: - read: {command: "show vlan port", parser: table, column: 3} + read: {command: "show vlan port", parser: table, column: 3, key_column: 0} dot1qportacceptableframetypes: type: string sources: ssh: - read: {command: "show vlan port", parser: table, column: 2} + read: {command: "show vlan port", parser: table, column: 2, key_column: 0} # MAC address table dot1qtpfdbaddress: diff --git a/crude_engine/wire/ssh/trafficmgmt.yaml b/crude_engine/wire/ssh/trafficmgmt.yaml index 7569940..dfe0c0c 100644 --- a/crude_engine/wire/ssh/trafficmgmt.yaml +++ b/crude_engine/wire/ssh/trafficmgmt.yaml @@ -3,29 +3,28 @@ feature: trafficmgmt-ssh description: "SSH CLI sources for traffic management (storm control, flow control)" attributes: + # Dash-range is 4 groups (Intf | B Mode+Level | M blob | U blob), not 7 + # whitespace fields. Mode and threshold share a cell; regex splits them. + # Unicast blob (col 3) is unused by get_storm_control. Egress stays #129. hm2trafficmgmtifingressstormctlbcastmode: - type: string sources: ssh: - read: {command: "show storm-control ingress", parser: table, column: 1} + read: {command: "show storm-control ingress", parser: table, column: 1, key_column: 0, regex: '^(\S+)'} hm2trafficmgmtifingressstormctlbcastthreshold: - type: string sources: ssh: - read: {command: "show storm-control ingress", parser: table, column: 2} + read: {command: "show storm-control ingress", parser: table, column: 1, key_column: 0, regex: '(\d+)'} hm2trafficmgmtifingressstormctlmcastmode: - type: string sources: ssh: - read: {command: "show storm-control ingress", parser: table, column: 3} + read: {command: "show storm-control ingress", parser: table, column: 2, key_column: 0, regex: '^(\S+)'} hm2trafficmgmtifingressstormctlmcastthreshold: - type: string sources: ssh: - read: {command: "show storm-control ingress", parser: table, column: 4} + read: {command: "show storm-control ingress", parser: table, column: 2, key_column: 0, regex: '(\d+)'} # Flow control (interface write) hm2trafficmgmtifflowcontrol: diff --git a/crude_engine/wire/ssh/usermgmt.yaml b/crude_engine/wire/ssh/usermgmt.yaml index 9b87b3a..7f59570 100644 --- a/crude_engine/wire/ssh/usermgmt.yaml +++ b/crude_engine/wire/ssh/usermgmt.yaml @@ -59,22 +59,22 @@ attributes: ssh: read: {command: "show passwords", field: "Login attempts period [min]"} - hm2pwdmgmtminuppercasechar: + hm2pwdmgmtminuppercase: sources: ssh: read: {command: "show passwords", field: "Minimum upper case characters"} - hm2pwdmgmtminlowercasechar: + hm2pwdmgmtminlowercase: sources: ssh: read: {command: "show passwords", field: "Minimum lower case characters"} - hm2pwdmgmtminnumericchar: + hm2pwdmgmtminnumericnumbers: sources: ssh: read: {command: "show passwords", field: "Minimum numeric characters"} - hm2pwdmgmtminspecialchar: + hm2pwdmgmtminspecialcharacters: sources: ssh: read: {command: "show passwords", field: "Minimum special characters"} diff --git a/crude_engine/wire/timesync.yaml b/crude_engine/wire/timesync.yaml index e9dffe1..ca9084d 100644 --- a/crude_engine/wire/timesync.yaml +++ b/crude_engine/wire/timesync.yaml @@ -2198,7 +2198,7 @@ attributes: field: hm2SntpClientServerAddrTable hm2sntpclientserveraddrtype: syntax: InetAddressType - type: integer + type: string access: ru sources: snmp: diff --git a/crude_engine/wire/tracking.yaml b/crude_engine/wire/tracking.yaml index df68a9d..3bfd515 100644 --- a/crude_engine/wire/tracking.yaml +++ b/crude_engine/wire/tracking.yaml @@ -241,9 +241,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-TRACKING-MIB diff --git a/crude_engine/wire/trafficmgmt.yaml b/crude_engine/wire/trafficmgmt.yaml index 31be914..d1b497c 100644 --- a/crude_engine/wire/trafficmgmt.yaml +++ b/crude_engine/wire/trafficmgmt.yaml @@ -87,9 +87,8 @@ attributes: access: ru sources: snmp: - read: - oid: 1.3.6.1.4.1.248.11.31.1.1.1.1 - method: walk + write: + oid: 1.3.6.1.4.1.248.11.31.1.1.1.1 # #47: no gather walk (call-budget); SET keeps oid mops: read: mib: HM2-TRAFFICMGMT-MIB diff --git a/crude_engine/wire/vrrp.yaml b/crude_engine/wire/vrrp.yaml index eb09fa9..87d0de2 100644 --- a/crude_engine/wire/vrrp.yaml +++ b/crude_engine/wire/vrrp.yaml @@ -10,7 +10,7 @@ schemas: vrrpassoipaddrrowstatus: 0 vrrpassoipaddrtable: '' vrrpnodeversion: 0 - vrrpnotificationcntl: 0 + vrrpnotificationcntl: false vrrpoperacceptmode: false vrrpoperadminstate: 0 vrrpoperadvertisementinterval: 0 @@ -144,7 +144,7 @@ attributes: field: vrrpNodeVersion vrrpnotificationcntl: syntax: INTEGER - type: integer + type: boolean access: ru sources: snmp: diff --git a/docs/API_REFERENCE.md b/docs/API_REFERENCE.md index ab96b3a..ca19890 100644 --- a/docs/API_REFERENCE.md +++ b/docs/API_REFERENCE.md @@ -2,12 +2,12 @@ Automatically generated from schema, wire, and protocol YAMLs. -**45 features** | **189 methods** (16C 75R 68U 16D 12E) | **Protocols:** MOPS, SNMP, SSH +**46 features** | **192 methods** (16C 77R 69U 16D 12E) | **Protocols:** MOPS, SNMP, SSH ## Table of Contents - **[aca](#aca)** — `get_aca` (Read, MOPS/SNMP/SSH), `set_aca` (Update, MOPS/SNMP/SSH) -- **[arp](#arp)** — `get_arp_table` (Read, MOPS/SNMP/SSH), `get_arp_inspection` (Read, MOPS/SNMP/SSH), `set_arp_inspection` (Update, MOPS/SNMP/SSH), `set_arp_inspection_port` (Update, MOPS/SNMP/SSH), `set_arp_inspection_vlan` (Update, MOPS/SNMP/SSH) +- **[arp](#arp)** — `get_arp_table` (Read, MOPS/SNMP), `get_arp_inspection` (Read, MOPS/SNMP/SSH), `set_arp_inspection` (Update, MOPS/SNMP/SSH), `set_arp_inspection_port` (Update, MOPS/SNMP/SSH), `set_arp_inspection_vlan` (Update, MOPS/SNMP/SSH) - **[banner](#banner)** — `get_banner` (Read, MOPS/SNMP/SSH), `set_banner` (Update, MOPS/SNMP/SSH) - **[config](#config)** — `get_config` (Read, Composed), `get_config_status` (Read, MOPS/SNMP/SSH), `get_config_remote` (Read, Composed), `set_config_remote` (Update, MOPS/SNMP/SSH), `get_watchdog_status` (Read, MOPS/SNMP/SSH), `set_watchdog` (Update, MOPS/SNMP/SSH) - **[dai_global](#dai_global)** — `get_dai_global` (Read, MOPS/SNMP/SSH), `set_dai_global` (Update, MOPS/SNMP/SSH) @@ -20,7 +20,7 @@ Automatically generated from schema, wire, and protocol YAMLs. - **[interface](#interface)** — `get_interfaces` (Read, MOPS/SNMP/SSH), `get_interface_statistics` (Read, MOPS/SNMP/SSH), `set_interface_utilization` (Update, MOPS/SNMP/SSH), `clear_interface_statistics` (Update, MOPS/SNMP/SSH), `get_ip_addresses` (Read, Composed), `get_interfaces_ip` (Read, MOPS/SNMP/SSH), `set_interface` (Update, MOPS/SNMP/SSH) - **[ip_restrict](#ip_restrict)** — `get_ip_restrict` (Read, MOPS/SNMP/SSH), `create_ip_restrict_rule` (Create, MOPS/SNMP/SSH), `delete_ip_restrict_rule` (Delete, MOPS/SNMP/SSH), `set_ip_restrict` (Update, MOPS/SNMP/SSH) - **[ip_source_guard](#ip_source_guard)** — `get_ip_source_guard_port` (Read, MOPS/SNMP/SSH), `set_ip_source_guard_port` (Update, MOPS/SNMP/SSH), `get_ip_source_guard_bindings` (Read, MOPS/SNMP), `set_ip_source_guard_binding` (Update, MOPS/SNMP/SSH), `create_static_binding` (Create, MOPS/SNMP), `delete_static_binding` (Delete, MOPS/SNMP/SSH) -- **[ipv6](#ipv6)** — `get_ipv6_neighbors` (Read, MOPS/SNMP/SSH), `get_ipv6_neighbors_table` (Read, MOPS/SNMP/SSH) +- **[ipv6](#ipv6)** — `get_ipv6_neighbors` (Read, MOPS/SNMP), `get_ipv6_neighbors_table` (Read, MOPS/SNMP) - **[lldp](#lldp)** — `get_lldp_neighbors` (list_append, MOPS/SNMP), `get_lldp_neighbors_detail` (list_append, MOPS/SNMP), `get_lldp_neighbors_detail_extended` (Read, MOPS/SNMP/SSH), `set_lldp` (Update, MOPS/SNMP/SSH) - **[mac](#mac)** — `get_mac_address_table` (Read, MOPS/SNMP/SSH) - **[management](#management)** — `get_management` (Read, MOPS/SNMP/SSH), `set_management` (Update, MOPS/SNMP/SSH), `get_management_priority` (Read, Composed), `set_management_priority` (Update, MOPS/SNMP/SSH) @@ -31,7 +31,7 @@ Automatically generated from schema, wire, and protocol YAMLs. - **[poe](#poe)** — `get_poe` (Read, MOPS/SNMP/SSH), `set_poe` (Update, MOPS/SNMP/SSH) - **[port_security](#port_security)** — `get_port_security` (Read, MOPS/SNMP/SSH), `set_port_security` (Update, MOPS/SNMP/SSH), `create_port_security` (Update, MOPS/SNMP/SSH), `delete_port_security` (Update, MOPS/SNMP/SSH) - **[profile](#profile)** — `get_profiles` (Read, MOPS/SNMP/SSH), `activate_profile` (Update, MOPS/SNMP/SSH), `delete_profile` (Update, MOPS/SNMP/SSH) -- **[protection](#protection)** — `get_storm_control` (Read, MOPS/SNMP/SSH), `set_storm_control` (Update, MOPS/SNMP/SSH), `get_loop_protection` (Read, Composed), `set_loop_protection` (Update, MOPS/SNMP/SSH), `get_auto_disable` (Read, Composed), `set_auto_disable` (Update, MOPS/SNMP/SSH), `set_auto_disable_reason` (Update, MOPS/SNMP/SSH) +- **[protection](#protection)** — `get_storm_control` (Read, MOPS/SNMP/SSH), `set_storm_control` (Update, MOPS/SNMP/SSH), `get_loop_protection` (Read, Composed), `set_loop_protection` (Update, MOPS/SNMP/SSH), `get_auto_disable` (Read, Composed), `set_auto_disable` (Update, MOPS/SNMP/SSH), `get_auto_disable_reasons` (Read, Composed), `set_auto_disable_reason` (Update, MOPS/SNMP/SSH), `auto_disable_reset` (Update, MOPS/SNMP/SSH) - **[qos](#qos)** — `get_qos` (Read, MOPS/SNMP/SSH), `set_qos` (Update, MOPS/SNMP/SSH) - **[qos_mapping](#qos_mapping)** — `get_qos_mapping` (Read, MOPS/SNMP/SSH), `set_qos_mapping` (Update, MOPS/SNMP/SSH) - **[remote_auth](#remote_auth)** — `get_remote_auth` (Read, MOPS/SNMP/SSH), `set_remote_auth` (Update, MOPS/SNMP/SSH), `create_radius_server` (Create, MOPS/SNMP/SSH), `delete_radius_server` (Delete, MOPS/SNMP/SSH), `create_ldap_server` (Create, MOPS/SNMP/SSH), `delete_ldap_server` (Delete, MOPS/SNMP/SSH), `create_tacacs_server` (Create, MOPS/SNMP/SSH), `delete_tacacs_server` (Delete, MOPS/SNMP) @@ -48,6 +48,7 @@ Automatically generated from schema, wire, and protocol YAMLs. - **[syslog](#syslog)** — `get_syslog` (Read, MOPS/SNMP/SSH), `set_syslog` (Update, MOPS/SNMP/SSH), `create_syslog_server` (Create, MOPS/SNMP/SSH), `delete_syslog_server` (Delete, MOPS/SNMP/SSH) - **[system](#system)** — `get_system_info` (Read, MOPS/SNMP/SSH), `get_facts` (Read, MOPS/SNMP/SSH), `get_environment` (Read, MOPS/SNMP/SSH), `get_system_health` (Read, MOPS/SNMP/SSH), `set_system_info` (Update, MOPS/SNMP/SSH) - **[system_health](#system_health)** — `get_device_monitor` (Read, Composed), `set_device_monitor` (Update, MOPS/SNMP/SSH), `get_devsec_status` (Read, Composed), `set_devsec_status` (Update, MOPS/SNMP/SSH), `get_fan_status` (Read, Composed) +- **[tracking](#tracking)** — `get_tracking` (Read, MOPS/SNMP) - **[user](#user)** — `get_users` (Read, MOPS/SNMP/SSH), `set_user` (Update, MOPS/SNMP/SSH), `create_user` (Create, MOPS/SNMP/SSH), `delete_user` (Delete, MOPS/SNMP/SSH), `get_login_policy` (Read, MOPS/SNMP/SSH), `set_login_policy` (Update, MOPS/SNMP/SSH) - **[vlan](#vlan)** — `get_vlans` (Read, MOPS/SNMP/SSH), `create_vlan` (Create, MOPS/SNMP/SSH), `set_vlan` (Update, MOPS/SNMP/SSH), `delete_vlan` (Delete, MOPS/SNMP/SSH), `get_vlan_ingress` (Read, MOPS/SNMP/SSH), `set_vlan_ingress` (Update, MOPS/SNMP/SSH), `set_access_port` (Update, MOPS/SNMP/SSH), `get_vlan_egress` (Read, MOPS/SNMP/SSH), `set_vlan_egress` (Update, MOPS/SNMP/SSH) - **[vrrp](#vrrp)** — `get_vrrp` (Read, MOPS/SNMP/SSH), `get_vrrp_instances` (Read, MOPS/SNMP/SSH), `set_vrrp` (Update, MOPS/SNMP/SSH), `set_vrrp_instance` (Update, MOPS/SNMP/SSH), `create_vrrp` (Create, MOPS/SNMP/SSH), `delete_vrrp` (Delete, Composed), `get_vrrp_tracking` (Read, MOPS/SNMP/SSH), `create_vrrp_tracking` (Create, MOPS/SNMP/SSH), `delete_vrrp_tracking` (Delete, Composed), `set_vrrp_tracking` (Update, MOPS/SNMP/SSH), `get_vrrp_stats` (Read, MOPS/SNMP/SSH) @@ -86,16 +87,16 @@ get_aca() -> { ``` MOPS { - auto_ssh_key: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSshKeyLoad} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_serial: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmSerialNum} # DisplayString, access=r - slot_status: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmStatus} # INTEGER, access=r - selected_memory: {HM2-DEVMGMT-MIB / hm2ExtNvmGeneralGroup.hm2ExtNvmChooseActive} # Hm2DeviceExtNVMType, access=ru + slot_type: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmTableIndex} # Hm2DeviceExtNVMType, access=r + config_save: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmConfigSave} # HmEnabledStatus, access=ru, allowed=[True, False] slot_name: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmProductName} # DisplayString, access=r - auto_update: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSoftwareLoad} # HmEnabledStatus, access=ru, allowed=[True, False] + selected_memory: {HM2-DEVMGMT-MIB / hm2ExtNvmGeneralGroup.hm2ExtNvmChooseActive} # Hm2DeviceExtNVMType, access=ru slot_writable: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmWritable} # HmEnabledStatus, access=r, allowed=[True, False] - config_save: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmConfigSave} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_type: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmTableIndex} # Hm2DeviceExtNVMType, access=r + auto_ssh_key: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSshKeyLoad} # HmEnabledStatus, access=ru, allowed=[True, False] config_load_priority: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmConfigLoadPriority} # INTEGER, access=ru, allowed=['disable', 'first', 'second', 'third'] + slot_serial: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmSerialNum} # DisplayString, access=r + auto_update: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSoftwareLoad} # HmEnabledStatus, access=ru, allowed=[True, False] + slot_status: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmStatus} # INTEGER, access=r envm_state: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMEnvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ``` @@ -105,16 +106,16 @@ MOPS { ``` SNMP { - auto_ssh_key: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_serial: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.7} # DisplayString, access=r - slot_status: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.2} # INTEGER, access=r - selected_memory: {oid: 1.3.6.1.4.1.248.11.10.1.8.1.1, method: get} # Hm2DeviceExtNVMType, access=ru + slot_type: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.1} # Hm2DeviceExtNVMType, access=r + config_save: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] slot_name: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.5} # DisplayString, access=r - auto_update: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] + selected_memory: {oid: 1.3.6.1.4.1.248.11.10.1.8.1.1, method: get} # Hm2DeviceExtNVMType, access=ru slot_writable: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.11} # HmEnabledStatus, access=r, allowed=[True, False] - config_save: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_type: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.1} # Hm2DeviceExtNVMType, access=r + auto_ssh_key: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] config_load_priority: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.9} # INTEGER, access=ru, allowed=['disable', 'first', 'second', 'third'] + slot_serial: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.7} # DisplayString, access=r + auto_update: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] + slot_status: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.2} # INTEGER, access=r envm_state: {oid: 1.3.6.1.4.1.248.11.21.1.3.2, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ``` @@ -137,16 +138,16 @@ SSH { ``` MOPS { - auto_ssh_key: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSshKeyLoad} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_serial: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmSerialNum} # DisplayString, access=r - slot_status: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmStatus} # INTEGER, access=r - selected_memory: {HM2-DEVMGMT-MIB / hm2ExtNvmGeneralGroup.hm2ExtNvmChooseActive} # Hm2DeviceExtNVMType, access=ru + slot_type: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmTableIndex} # Hm2DeviceExtNVMType, access=r + config_save: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmConfigSave} # HmEnabledStatus, access=ru, allowed=[True, False] slot_name: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmProductName} # DisplayString, access=r - auto_update: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSoftwareLoad} # HmEnabledStatus, access=ru, allowed=[True, False] + selected_memory: {HM2-DEVMGMT-MIB / hm2ExtNvmGeneralGroup.hm2ExtNvmChooseActive} # Hm2DeviceExtNVMType, access=ru slot_writable: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmWritable} # HmEnabledStatus, access=r, allowed=[True, False] - config_save: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmConfigSave} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_type: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmTableIndex} # Hm2DeviceExtNVMType, access=r + auto_ssh_key: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSshKeyLoad} # HmEnabledStatus, access=ru, allowed=[True, False] config_load_priority: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmConfigLoadPriority} # INTEGER, access=ru, allowed=['disable', 'first', 'second', 'third'] + slot_serial: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmSerialNum} # DisplayString, access=r + auto_update: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmAutomaticSoftwareLoad} # HmEnabledStatus, access=ru, allowed=[True, False] + slot_status: {HM2-DEVMGMT-MIB / hm2ExtNvmEntry.hm2ExtNvmStatus} # INTEGER, access=r envm_state: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMEnvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ``` @@ -156,16 +157,16 @@ MOPS { ``` SNMP { - auto_ssh_key: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_serial: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.7} # DisplayString, access=r - slot_status: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.2} # INTEGER, access=r - selected_memory: {oid: 1.3.6.1.4.1.248.11.10.1.8.1.1, method: get} # Hm2DeviceExtNVMType, access=ru + slot_type: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.1} # Hm2DeviceExtNVMType, access=r + config_save: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] slot_name: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.5} # DisplayString, access=r - auto_update: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] + selected_memory: {oid: 1.3.6.1.4.1.248.11.10.1.8.1.1, method: get} # Hm2DeviceExtNVMType, access=ru slot_writable: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.11} # HmEnabledStatus, access=r, allowed=[True, False] - config_save: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] - slot_type: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.1} # Hm2DeviceExtNVMType, access=r + auto_ssh_key: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] config_load_priority: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.9} # INTEGER, access=ru, allowed=['disable', 'first', 'second', 'third'] + slot_serial: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.7} # DisplayString, access=r + auto_update: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] + slot_status: {oid: 1.3.6.1.4.1.248.11.10.1.8.2.1.2} # INTEGER, access=r envm_state: {oid: 1.3.6.1.4.1.248.11.21.1.3.2, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ``` @@ -188,7 +189,7 @@ _ARP table and Dynamic ARP Inspection (DAI) configuration_ ### `get_arp_table()` -**Read** | **Protocols:** MOPS, SNMP, SSH +**Read** | **Protocols:** MOPS, SNMP Primary key: `ip` ``` @@ -201,38 +202,24 @@ get_arp_table() -> { ``` -
MOPS sources (4/4 attrs) +
MOPS sources (3/4 attrs) ``` MOPS { - age: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalLastUpdated} # TimeStamp, access=r - mac: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalPhysAddress} # PhysAddress, access=ru, range=0–65535 - ip: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalNetAddress} # InetAddress, access=r - interface: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalIfIndex} # InterfaceIndex, access=r + mac: {IP-MIB / ipNetToMediaEntry.ipNetToMediaPhysAddress} # PhysAddress, access=ru, range=0–65535 + interface: {IP-MIB / ipNetToMediaEntry.ipNetToMediaIfIndex} # INTEGER, access=ru, range=1–2147483647 + ip: {IP-MIB / ipNetToMediaEntry.ipNetToMediaNetAddress} # IpAddress, access=ru } ```
-
SNMP sources (4/4 attrs) +
SNMP sources (3/4 attrs) ``` SNMP { - age: {oid: 1.3.6.1.2.1.4.35.1.5} # TimeStamp, access=r - mac: {oid: 1.3.6.1.2.1.4.35.1.4} # PhysAddress, access=ru, range=0–65535 - ip: {oid: 1.3.6.1.2.1.4.35.1.3} # InetAddress, access=r - interface: {oid: 1.3.6.1.2.1.4.35.1.1} # InterfaceIndex, access=r -} -``` -
- -
SSH sources (4/4 attrs) - -``` -SSH { - age: {read: "show arp"} # TimeStamp, access=r - mac: {read: "show arp"} # PhysAddress, access=ru, range=0–65535 - ip: {read: "show arp"} # InetAddress, access=r - interface: {read: "show arp"} # InterfaceIndex, access=r + mac: {oid: 1.3.6.1.2.1.4.22.1.2} # PhysAddress, access=ru, range=0–65535 + interface: {oid: 1.3.6.1.2.1.4.22.1.1} # INTEGER, access=ru, range=1–2147483647 + ip: {oid: 1.3.6.1.2.1.4.22.1.3} # IpAddress, access=ru } ```
@@ -259,21 +246,21 @@ get_arp_inspection() -> { ``` MOPS { + validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanDynArpInspEnable} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + dai_vlan_logging: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanLoggingEnable} # TruthValue, access=ru, allowed=[True, False] + dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] - dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 - validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_logging: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanLoggingEnable} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] dai_vlan_acl_name: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclName} # DisplayString, access=ru, range=0–31 dai_rate_limit: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfRateLimit} # Integer32, access=ru - dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] auto_disable: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] dai_port_auto_disable: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfAutoDisable} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 } ```
@@ -282,21 +269,21 @@ MOPS { ``` SNMP { + validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.2} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + dai_vlan_logging: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.3} # TruthValue, access=ru, allowed=[True, False] + dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] - dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 - validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_logging: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.3} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] dai_vlan_acl_name: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.4} # DisplayString, access=ru, range=0–31 dai_rate_limit: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.2} # Integer32, access=ru - dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] auto_disable: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] + dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] dai_port_auto_disable: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 } ```
@@ -305,10 +292,10 @@ SNMP { ``` SSH { + validate_src_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify src-mac"} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {read: "show port"} # DisplayString, access=r - validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify dst-mac"} # TruthValue, access=ru, allowed=[True, False] - validate_src_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify src-mac"} # TruthValue, access=ru, allowed=[True, False] + validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -317,72 +304,66 @@ SSH { **Update** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (19/19 attrs) +
MOPS sources (18/19 attrs) ``` MOPS { - dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 - dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] + validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] dai_rate_limit: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfRateLimit} # Integer32, access=ru - interface: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalIfIndex} # InterfaceIndex, access=r auto_disable: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] - age: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalLastUpdated} # TimeStamp, access=r + dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] + validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanDynArpInspEnable} # TruthValue, access=ru, allowed=[True, False] - ip: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalNetAddress} # InetAddress, access=r - validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_acl_name: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclName} # DisplayString, access=ru, range=0–31 dai_vlan_logging: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanLoggingEnable} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] - validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_name: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclName} # DisplayString, access=ru, range=0–31 - mac: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalPhysAddress} # PhysAddress, access=ru, range=0–65535 + validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] + interface: {IP-MIB / ipNetToMediaEntry.ipNetToMediaIfIndex} # INTEGER, access=ru, range=1–2147483647 + dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + mac: {IP-MIB / ipNetToMediaEntry.ipNetToMediaPhysAddress} # PhysAddress, access=ru, range=0–65535 + ip: {IP-MIB / ipNetToMediaEntry.ipNetToMediaNetAddress} # IpAddress, access=ru dai_port_auto_disable: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfAutoDisable} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 } ```
-
SNMP sources (19/19 attrs) +
SNMP sources (18/19 attrs) ``` SNMP { - dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 - dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] + validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] dai_rate_limit: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.2} # Integer32, access=ru - interface: {oid: 1.3.6.1.2.1.4.35.1.1} # InterfaceIndex, access=r auto_disable: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - age: {oid: 1.3.6.1.2.1.4.35.1.5} # TimeStamp, access=r + dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] + validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.2} # TruthValue, access=ru, allowed=[True, False] - ip: {oid: 1.3.6.1.2.1.4.35.1.3} # InetAddress, access=r - validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_acl_name: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.4} # DisplayString, access=ru, range=0–31 dai_vlan_logging: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.3} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] - validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_name: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.4} # DisplayString, access=ru, range=0–31 - mac: {oid: 1.3.6.1.2.1.4.35.1.4} # PhysAddress, access=ru, range=0–65535 + validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] + interface: {oid: 1.3.6.1.2.1.4.22.1.1} # INTEGER, access=ru, range=1–2147483647 + dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + mac: {oid: 1.3.6.1.2.1.4.22.1.2} # PhysAddress, access=ru, range=0–65535 + ip: {oid: 1.3.6.1.2.1.4.22.1.3} # IpAddress, access=ru dai_port_auto_disable: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 } ```
-
SSH sources (8/19 attrs) +
SSH sources (4/19 attrs) ``` SSH { - interface: {read: "show arp"} # InterfaceIndex, access=r - age: {read: "show arp"} # TimeStamp, access=r - ip: {read: "show arp"} # InetAddress, access=r - validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] - port_ifindex: {read: "show port"} # DisplayString, access=r validate_dst_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify dst-mac"} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify src-mac"} # TruthValue, access=ru, allowed=[True, False] - mac: {read: "show arp"} # PhysAddress, access=ru, range=0–65535 + port_ifindex: {read: "show port"} # DisplayString, access=r + validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] } ```
@@ -391,72 +372,66 @@ SSH { **Update** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (19/19 attrs) +
MOPS sources (18/19 attrs) ``` MOPS { - dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 - dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] + validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] dai_rate_limit: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfRateLimit} # Integer32, access=ru - interface: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalIfIndex} # InterfaceIndex, access=r auto_disable: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] - age: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalLastUpdated} # TimeStamp, access=r + dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] + validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanDynArpInspEnable} # TruthValue, access=ru, allowed=[True, False] - ip: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalNetAddress} # InetAddress, access=r - validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_acl_name: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclName} # DisplayString, access=ru, range=0–31 dai_vlan_logging: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanLoggingEnable} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] - validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_name: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclName} # DisplayString, access=ru, range=0–31 - mac: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalPhysAddress} # PhysAddress, access=ru, range=0–65535 + validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] + interface: {IP-MIB / ipNetToMediaEntry.ipNetToMediaIfIndex} # INTEGER, access=ru, range=1–2147483647 + dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + mac: {IP-MIB / ipNetToMediaEntry.ipNetToMediaPhysAddress} # PhysAddress, access=ru, range=0–65535 + ip: {IP-MIB / ipNetToMediaEntry.ipNetToMediaNetAddress} # IpAddress, access=ru dai_port_auto_disable: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfAutoDisable} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 } ```
-
SNMP sources (19/19 attrs) +
SNMP sources (18/19 attrs) ``` SNMP { - dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 - dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] + validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] dai_rate_limit: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.2} # Integer32, access=ru - interface: {oid: 1.3.6.1.2.1.4.35.1.1} # InterfaceIndex, access=r auto_disable: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - age: {oid: 1.3.6.1.2.1.4.35.1.5} # TimeStamp, access=r + dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] + validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.2} # TruthValue, access=ru, allowed=[True, False] - ip: {oid: 1.3.6.1.2.1.4.35.1.3} # InetAddress, access=r - validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_acl_name: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.4} # DisplayString, access=ru, range=0–31 dai_vlan_logging: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.3} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] - validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_name: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.4} # DisplayString, access=ru, range=0–31 - mac: {oid: 1.3.6.1.2.1.4.35.1.4} # PhysAddress, access=ru, range=0–65535 + validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] + interface: {oid: 1.3.6.1.2.1.4.22.1.1} # INTEGER, access=ru, range=1–2147483647 + dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + mac: {oid: 1.3.6.1.2.1.4.22.1.2} # PhysAddress, access=ru, range=0–65535 + ip: {oid: 1.3.6.1.2.1.4.22.1.3} # IpAddress, access=ru dai_port_auto_disable: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 } ```
-
SSH sources (8/19 attrs) +
SSH sources (4/19 attrs) ``` SSH { - interface: {read: "show arp"} # InterfaceIndex, access=r - age: {read: "show arp"} # TimeStamp, access=r - ip: {read: "show arp"} # InetAddress, access=r - validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] - port_ifindex: {read: "show port"} # DisplayString, access=r validate_dst_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify dst-mac"} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify src-mac"} # TruthValue, access=ru, allowed=[True, False] - mac: {read: "show arp"} # PhysAddress, access=ru, range=0–65535 + port_ifindex: {read: "show port"} # DisplayString, access=r + validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] } ```
@@ -465,72 +440,66 @@ SSH { **Update** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (19/19 attrs) +
MOPS sources (18/19 attrs) ``` MOPS { - dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 - dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] + validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] dai_rate_limit: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfRateLimit} # Integer32, access=ru - interface: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalIfIndex} # InterfaceIndex, access=r auto_disable: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] - age: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalLastUpdated} # TimeStamp, access=r + dai_vlan_acl_static: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclStaticFlag} # TruthValue, access=ru, allowed=[True, False] + validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanDynArpInspEnable} # TruthValue, access=ru, allowed=[True, False] - ip: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalNetAddress} # InetAddress, access=r - validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_acl_name: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclName} # DisplayString, access=ru, range=0–31 dai_vlan_logging: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanLoggingEnable} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + dai_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] - validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_name: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanArpAclName} # DisplayString, access=ru, range=0–31 - mac: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalPhysAddress} # PhysAddress, access=ru, range=0–65535 + validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] + interface: {IP-MIB / ipNetToMediaEntry.ipNetToMediaIfIndex} # INTEGER, access=ru, range=1–2147483647 + dai_vlan_index: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanIndex} # VlanIndex, access=r, range=1–4094 + mac: {IP-MIB / ipNetToMediaEntry.ipNetToMediaPhysAddress} # PhysAddress, access=ru, range=0–65535 + ip: {IP-MIB / ipNetToMediaEntry.ipNetToMediaNetAddress} # IpAddress, access=ru dai_port_auto_disable: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfAutoDisable} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiVlanConfigEntry.hm2AgentDaiVlanBindingCheckEnable} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiIfConfigEntry.hm2AgentDaiIfBurstInterval} # Unsigned32, access=ru, range=1–15 } ```
-
SNMP sources (19/19 attrs) +
SNMP sources (18/19 attrs) ``` SNMP { - dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 - dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] - dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] + validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] dai_rate_limit: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.2} # Integer32, access=ru - interface: {oid: 1.3.6.1.2.1.4.35.1.1} # InterfaceIndex, access=r auto_disable: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - age: {oid: 1.3.6.1.2.1.4.35.1.5} # TimeStamp, access=r + dai_vlan_acl_static: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.5} # TruthValue, access=ru, allowed=[True, False] + validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] dai_vlan_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.2} # TruthValue, access=ru, allowed=[True, False] - ip: {oid: 1.3.6.1.2.1.4.35.1.3} # InetAddress, access=r - validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_acl_name: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.4} # DisplayString, access=ru, range=0–31 dai_vlan_logging: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.3} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + dai_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.1} # TruthValue, access=ru, allowed=[True, False] port_ifindex: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] - validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] - dai_vlan_acl_name: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.4} # DisplayString, access=ru, range=0–31 - mac: {oid: 1.3.6.1.2.1.4.35.1.4} # PhysAddress, access=ru, range=0–65535 + validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] + interface: {oid: 1.3.6.1.2.1.4.22.1.1} # INTEGER, access=ru, range=1–2147483647 + dai_vlan_index: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.1} # VlanIndex, access=r, range=1–4094 + mac: {oid: 1.3.6.1.2.1.4.22.1.2} # PhysAddress, access=ru, range=0–65535 + ip: {oid: 1.3.6.1.2.1.4.22.1.3} # IpAddress, access=ru dai_port_auto_disable: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_vlan_binding_check: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.4.1.248} # TruthValue, access=ru, allowed=[True, False] + dai_burst_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.7.1.3} # Unsigned32, access=ru, range=1–15 } ```
-
SSH sources (8/19 attrs) +
SSH sources (4/19 attrs) ``` SSH { - interface: {read: "show arp"} # InterfaceIndex, access=r - age: {read: "show arp"} # TimeStamp, access=r - ip: {read: "show arp"} # InetAddress, access=r - validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] - port_ifindex: {read: "show port"} # DisplayString, access=r validate_dst_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify dst-mac"} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify src-mac"} # TruthValue, access=ru, allowed=[True, False] - mac: {read: "show arp"} # PhysAddress, access=ru, range=0–65535 + port_ifindex: {read: "show port"} # DisplayString, access=r + validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] } ```
@@ -557,8 +526,8 @@ get_banner() -> { ``` MOPS { - pre_login_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessPreLoginBannerGroup.hm2PreLoginBannerAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] pre_login_text: {HM2-MGMTACCESS-MIB / hm2MgmtAccessPreLoginBannerGroup.hm2PreLoginBannerText} # HmLargeDisplayString, access=ru, range=0–512 + pre_login_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessPreLoginBannerGroup.hm2PreLoginBannerAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] } ```
@@ -567,8 +536,8 @@ MOPS { ``` SNMP { - pre_login_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] pre_login_text: {oid: 1.3.6.1.4.1.248.11.25.1.5.2, method: get} # HmLargeDisplayString, access=ru, range=0–512 + pre_login_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] } ```
@@ -577,8 +546,8 @@ SNMP { ``` SSH { - pre_login_enabled: {read: "show system pre-login-banner", write: "system pre-login-banner operation"} # HmEnabledStatus, access=ru, allowed=[True, False] pre_login_text: {read: "show system pre-login-banner", write: "system pre-login-banner text {value}"} # HmLargeDisplayString, access=ru, range=0–512 + pre_login_enabled: {read: "show system pre-login-banner", write: "system pre-login-banner operation"} # HmEnabledStatus, access=ru, allowed=[True, False] } ```
@@ -591,8 +560,8 @@ SSH { ``` MOPS { - pre_login_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessPreLoginBannerGroup.hm2PreLoginBannerAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] pre_login_text: {HM2-MGMTACCESS-MIB / hm2MgmtAccessPreLoginBannerGroup.hm2PreLoginBannerText} # HmLargeDisplayString, access=ru, range=0–512 + pre_login_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessPreLoginBannerGroup.hm2PreLoginBannerAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] } ```
@@ -601,8 +570,8 @@ MOPS { ``` SNMP { - pre_login_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] pre_login_text: {oid: 1.3.6.1.4.1.248.11.25.1.5.2, method: get} # HmLargeDisplayString, access=ru, range=0–512 + pre_login_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] } ```
@@ -611,8 +580,8 @@ SNMP { ``` SSH { - pre_login_enabled: {read: "show system pre-login-banner", write: "system pre-login-banner operation"} # HmEnabledStatus, access=ru, allowed=[True, False] pre_login_text: {read: "show system pre-login-banner", write: "system pre-login-banner text {value}"} # HmLargeDisplayString, access=ru, range=0–512 + pre_login_enabled: {read: "show system pre-login-banner", write: "system pre-login-banner operation"} # HmEnabledStatus, access=ru, allowed=[True, False] } ```
@@ -642,7 +611,6 @@ get_config() -> { ``` get_config_status() -> { saved: True // bool (computed) - last_changed: "" // str nvm: "ok" // "ok" | "outOfSync" | "busy" aca: "absent" // "ok" | "outOfSync" | "absent" boot: "ok" // "ok" | "outOfSync" @@ -654,9 +622,9 @@ get_config_status() -> { ``` MOPS { - nvm: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMNvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] boot: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMBootParamState} # INTEGER, access=r, allowed=['ok', 'outOfSync'] aca: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMEnvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] + nvm: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMNvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] } ```
@@ -665,9 +633,9 @@ MOPS { ``` SNMP { - nvm: {oid: 1.3.6.1.4.1.248.11.21.1.3.1, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] boot: {oid: 1.3.6.1.4.1.248.11.21.1.3.3, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync'] aca: {oid: 1.3.6.1.4.1.248.11.21.1.3.2, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] + nvm: {oid: 1.3.6.1.4.1.248.11.21.1.3.1, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] } ```
@@ -676,9 +644,9 @@ SNMP { ``` SSH { - nvm: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] boot: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync'] aca: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] + nvm: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] } ```
@@ -699,44 +667,44 @@ get_config_remote() -> { **Update** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (6/7 attrs) +
MOPS sources (6/9 attrs) ``` MOPS { + boot: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMBootParamState} # INTEGER, access=r, allowed=['ok', 'outOfSync'] + aca: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMEnvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] nvm: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMNvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] - watchdog_remaining: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimerValue} # Integer32, access=r watchdog_interval: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimeInterval} # Integer32 (30..600), access=ru, range=30–600 + watchdog_remaining: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimerValue} # Integer32, access=r watchdog_enabled: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - boot: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMBootParamState} # INTEGER, access=r, allowed=['ok', 'outOfSync'] - aca: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMEnvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ```
-
SNMP sources (6/7 attrs) +
SNMP sources (6/9 attrs) ``` SNMP { + boot: {oid: 1.3.6.1.4.1.248.11.21.1.3.3, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync'] + aca: {oid: 1.3.6.1.4.1.248.11.21.1.3.2, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] nvm: {oid: 1.3.6.1.4.1.248.11.21.1.3.1, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] - watchdog_remaining: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.4, method: get} # Integer32, access=r watchdog_interval: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.3, method: get} # Integer32 (30..600), access=ru, range=30–600 + watchdog_remaining: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.4, method: get} # Integer32, access=r watchdog_enabled: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - boot: {oid: 1.3.6.1.4.1.248.11.21.1.3.3, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync'] - aca: {oid: 1.3.6.1.4.1.248.11.21.1.3.2, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ```
-
SSH sources (6/7 attrs) +
SSH sources (6/9 attrs) ``` SSH { + boot: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync'] + aca: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] nvm: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] - watchdog_remaining: {read: "show config watchdog"} # Integer32, access=r watchdog_interval: {read: "show config watchdog", write: "config watchdog timeout {value}"} # Integer32 (30..600), access=ru, range=30–600 + watchdog_remaining: {read: "show config watchdog"} # Integer32, access=r watchdog_enabled: {read: "show config watchdog", write: "config watchdog admin-state"} # HmEnabledStatus, access=ru, allowed=[True, False] - boot: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync'] - aca: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ```
@@ -759,8 +727,8 @@ get_watchdog_status() -> { ``` MOPS { watchdog_remaining: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimerValue} # Integer32, access=r - watchdog_interval: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimeInterval} # Integer32 (30..600), access=ru, range=30–600 watchdog_enabled: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + watchdog_interval: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimeInterval} # Integer32 (30..600), access=ru, range=30–600 } ```
@@ -770,8 +738,8 @@ MOPS { ``` SNMP { watchdog_remaining: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.4, method: get} # Integer32, access=r - watchdog_interval: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.3, method: get} # Integer32 (30..600), access=ru, range=30–600 watchdog_enabled: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + watchdog_interval: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.3, method: get} # Integer32 (30..600), access=ru, range=30–600 } ```
@@ -781,8 +749,8 @@ SNMP { ``` SSH { watchdog_remaining: {read: "show config watchdog"} # Integer32, access=r - watchdog_interval: {read: "show config watchdog", write: "config watchdog timeout {value}"} # Integer32 (30..600), access=ru, range=30–600 watchdog_enabled: {read: "show config watchdog", write: "config watchdog admin-state"} # HmEnabledStatus, access=ru, allowed=[True, False] + watchdog_interval: {read: "show config watchdog", write: "config watchdog timeout {value}"} # Integer32 (30..600), access=ru, range=30–600 } ```
@@ -791,44 +759,44 @@ SSH { **Update** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (6/7 attrs) +
MOPS sources (6/9 attrs) ``` MOPS { + boot: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMBootParamState} # INTEGER, access=r, allowed=['ok', 'outOfSync'] + aca: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMEnvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] nvm: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMNvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] - watchdog_remaining: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimerValue} # Integer32, access=r watchdog_interval: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimeInterval} # Integer32 (30..600), access=ru, range=30–600 + watchdog_remaining: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogTimerValue} # Integer32, access=r watchdog_enabled: {HM2-FILEMGMT-MIB / hm2FileMgmtConfigWatchdogControl.hm2ConfigWatchdogAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - boot: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMBootParamState} # INTEGER, access=r, allowed=['ok', 'outOfSync'] - aca: {HM2-FILEMGMT-MIB / hm2FileMgmtStatusGroup.hm2FMEnvmState} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ```
-
SNMP sources (6/7 attrs) +
SNMP sources (6/9 attrs) ``` SNMP { + boot: {oid: 1.3.6.1.4.1.248.11.21.1.3.3, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync'] + aca: {oid: 1.3.6.1.4.1.248.11.21.1.3.2, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] nvm: {oid: 1.3.6.1.4.1.248.11.21.1.3.1, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] - watchdog_remaining: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.4, method: get} # Integer32, access=r watchdog_interval: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.3, method: get} # Integer32 (30..600), access=ru, range=30–600 + watchdog_remaining: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.4, method: get} # Integer32, access=r watchdog_enabled: {oid: 1.3.6.1.4.1.248.11.21.1.4.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - boot: {oid: 1.3.6.1.4.1.248.11.21.1.3.3, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync'] - aca: {oid: 1.3.6.1.4.1.248.11.21.1.3.2, method: get} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ```
-
SSH sources (6/7 attrs) +
SSH sources (6/9 attrs) ``` SSH { + boot: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync'] + aca: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] nvm: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'busy'] - watchdog_remaining: {read: "show config watchdog"} # Integer32, access=r watchdog_interval: {read: "show config watchdog", write: "config watchdog timeout {value}"} # Integer32 (30..600), access=ru, range=30–600 + watchdog_remaining: {read: "show config watchdog"} # Integer32, access=r watchdog_enabled: {read: "show config watchdog", write: "config watchdog admin-state"} # HmEnabledStatus, access=ru, allowed=[True, False] - boot: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync'] - aca: {read: "show config status"} # INTEGER, access=r, allowed=['ok', 'outOfSync', 'absent'] } ```
@@ -856,9 +824,9 @@ get_dai_global() -> { ``` MOPS { - validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] + validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] } ```
@@ -867,9 +835,9 @@ MOPS { ``` SNMP { - validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] + validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] } ```
@@ -878,9 +846,9 @@ SNMP { ``` SSH { - validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify src-mac"} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify dst-mac"} # TruthValue, access=ru, allowed=[True, False] + validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] } ```
@@ -893,9 +861,9 @@ SSH { ``` MOPS { - validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiSrcMacValidate} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiDstMacValidate} # TruthValue, access=ru, allowed=[True, False] + validate_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDaiConfigGroup.hm2AgentDaiIPValidate} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -904,9 +872,9 @@ MOPS { ``` SNMP { - validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.1, method: get} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.2, method: get} # TruthValue, access=ru, allowed=[True, False] + validate_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.21.3, method: get} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -915,9 +883,9 @@ SNMP { ``` SSH { - validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] validate_src_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify src-mac"} # TruthValue, access=ru, allowed=[True, False] validate_dst_mac: {read: "show ip arp-inspection global", write: "ip arp-inspection verify dst-mac"} # TruthValue, access=ru, allowed=[True, False] + validate_ip: {read: "show ip arp-inspection global", write: "ip arp-inspection verify ip"} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -947,27 +915,27 @@ get_devsec() -> { ``` MOPS { - trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_hidiscovery: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHiDiscoveryEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_dev_mode: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseDevModeEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_modbus_tcp: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseModbusTcpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_no_link: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseNoLinkEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_profinet_io: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseProfinetIOEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_policy: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordStrengthNotConfigured} # HmEnabledStatus, access=ru, allowed=[True, False] mon_iec61850_mms: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseIec61850MmsEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecOperState} # INTEGER, access=r, allowed=['noerror', 'error'] - mon_sysmon: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSysmonEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_snmp_unsecure: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSnmpUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_hidiscovery: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHiDiscoveryEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] mon_secure_boot: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSecureBootDisabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_policy: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordStrengthNotConfigured} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_no_link: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseNoLinkEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_snmp_unsecure: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSnmpUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] mon_telnet: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseTelnetEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_https_cert_warning: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHttpsCertificateWarning} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_update: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmUpdateEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_change: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordChange} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecOperState} # INTEGER, access=r, allowed=['noerror', 'error'] + trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_config_load: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmConfigLoadUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_pml_disabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePMLDisabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_sysmon: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSysmonEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] mon_http: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHttpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_https_cert_warning: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHttpsCertificateWarning} # HmEnabledStatus, access=ru, allowed=[True, False] mon_password_min_length: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordMinLength} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_pml_disabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePMLDisabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_profinet_io: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseProfinetIOEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_update: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmUpdateEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] mon_ethernet_ip: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseEtherNetIpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_change: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordChange} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_dev_mode: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseDevModeEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_modbus_tcp: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseModbusTcpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_config_load: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmConfigLoadUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -976,27 +944,27 @@ MOPS { ``` SNMP { - trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_hidiscovery: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.16, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_dev_mode: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.25, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_modbus_tcp: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.20, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_no_link: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.15, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_profinet_io: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.22, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_policy: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.8, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_iec61850_mms: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.18, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.4, method: get} # INTEGER, access=r, allowed=['noerror', 'error'] - mon_sysmon: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_snmp_unsecure: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.12, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_hidiscovery: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.16, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_secure_boot: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.24, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_policy: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.8, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_no_link: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.15, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_snmp_unsecure: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.12, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_telnet: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.10, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_https_cert_warning: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.19, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_update: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.14, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_change: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.4, method: get} # INTEGER, access=r, allowed=['noerror', 'error'] + trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_config_load: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.17, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_pml_disabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.23, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_sysmon: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_http: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.11, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_https_cert_warning: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.19, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_password_min_length: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.7, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_pml_disabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.23, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_profinet_io: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.22, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_update: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.14, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_ethernet_ip: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.21, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_change: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_dev_mode: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.25, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_modbus_tcp: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.20, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_config_load: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.17, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -1005,25 +973,25 @@ SNMP { ``` SSH { - mon_hidiscovery: {read: "show security-status monitor", write: "security-status monitor hidisc-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_dev_mode: {read: "show security-status monitor", write: "security-status monitor support-mode-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_modbus_tcp: {read: "show security-status monitor", write: "security-status monitor modbus-tcp-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_no_link: {read: "show security-status monitor", write: "security-status monitor no-link-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_profinet_io: {read: "show security-status monitor", write: "security-status monitor profinet-io-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_policy: {read: "show security-status monitor", write: "security-status monitor pwd-str-not-config"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_iec61850_mms: {read: "show security-status monitor", write: "security-status monitor iec61850-mms-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_sysmon: {read: "show security-status monitor", write: "security-status monitor sysmon-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_snmp_unsecure: {read: "show security-status monitor", write: "security-status monitor snmp-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_hidiscovery: {read: "show security-status monitor", write: "security-status monitor hidisc-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_secure_boot: {read: "show security-status monitor", write: "security-status monitor secure-boot-disabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_policy: {read: "show security-status monitor", write: "security-status monitor pwd-str-not-config"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_no_link: {read: "show security-status monitor", write: "security-status monitor no-link-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_snmp_unsecure: {read: "show security-status monitor", write: "security-status monitor snmp-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_telnet: {read: "show security-status monitor", write: "security-status monitor telnet-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_https_cert_warning: {read: "show security-status monitor", write: "security-status monitor https-cert-warning"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_update: {read: "show security-status monitor", write: "security-status monitor extnvm-upd-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_change: {read: "show security-status monitor", write: "security-status monitor pwd-change"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_config_load: {read: "show security-status monitor", write: "security-status monitor extnvm-load-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_pml_disabled: {write: "security-status monitor pml-disabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_sysmon: {read: "show security-status monitor", write: "security-status monitor sysmon-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_http: {read: "show security-status monitor", write: "security-status monitor http-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_https_cert_warning: {read: "show security-status monitor", write: "security-status monitor https-cert-warning"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_password_min_length: {read: "show security-status monitor", write: "security-status monitor pwd-min-length"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_pml_disabled: {write: "security-status monitor pml-disabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_profinet_io: {read: "show security-status monitor", write: "security-status monitor profinet-io-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_update: {read: "show security-status monitor", write: "security-status monitor extnvm-upd-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_ethernet_ip: {read: "show security-status monitor", write: "security-status monitor ethernet-ip-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_change: {read: "show security-status monitor", write: "security-status monitor pwd-change"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_dev_mode: {read: "show security-status monitor", write: "security-status monitor support-mode-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_modbus_tcp: {read: "show security-status monitor", write: "security-status monitor modbus-tcp-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_config_load: {read: "show security-status monitor", write: "security-status monitor extnvm-load-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -1036,30 +1004,30 @@ SSH { ``` MOPS { - mon_hidiscovery: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHiDiscoveryEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_iec61850_mms: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseIec61850MmsEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecOperState} # INTEGER, access=r, allowed=['noerror', 'error'] - mon_sysmon: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSysmonEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_snmp_unsecure: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSnmpUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] history_cause: {HM2-DIAGNOSTIC-MIB / hm2DevSecStatusEntry.hm2DevSecStatusTrapCause} # INTEGER, access=r, allowed=['none', 'password-change', 'password-min-length', 'password-policy-not-configured', 'password-policy-inactive', 'telnet-enabled', 'http-enabled', 'snmp-unsecure', 'sysmon-enabled', 'ext-nvm-update-enabled', 'no-link', 'hidisc-enabled', 'ext-nvm-config-load-unsecure', 'iec61850-mms-enabled', 'https-certificate-warning', 'modbus-tcp-enabled', 'ethernet-ip-enabled', 'profinet-io-enabled', 'pml-disabled', 'secure-boot-disabled', 'dev-mode-enabled'] - mon_secure_boot: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSecureBootDisabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_policy: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordStrengthNotConfigured} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_dev_mode: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseDevModeEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_modbus_tcp: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseModbusTcpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] mon_no_link: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseNoLinkEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_profinet_io: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseProfinetIOEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_policy: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordStrengthNotConfigured} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_iec61850_mms: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseIec61850MmsEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_hidiscovery: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHiDiscoveryEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_secure_boot: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSecureBootDisabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_snmp_unsecure: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSnmpUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] mon_telnet: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseTelnetEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_https_cert_warning: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHttpsCertificateWarning} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_update: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmUpdateEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_change: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordChange} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecOperState} # INTEGER, access=r, allowed=['noerror', 'error'] + trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_config_load: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmConfigLoadUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_pml_disabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePMLDisabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_sysmon: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseSysmonEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] mon_http: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHttpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_https_cert_warning: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseHttpsCertificateWarning} # HmEnabledStatus, access=ru, allowed=[True, False] mon_password_min_length: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordMinLength} # HmEnabledStatus, access=ru, allowed=[True, False] - history_index: {HM2-DIAGNOSTIC-MIB / hm2DevSecStatusEntry.hm2DevSecStatusIndex} # Integer32, access=r - mon_pml_disabled: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePMLDisabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_profinet_io: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseProfinetIOEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_update: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmUpdateEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] mon_ethernet_ip: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseEtherNetIpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_change: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSensePasswordChange} # HmEnabledStatus, access=ru, allowed=[True, False] history_timestamp: {HM2-DIAGNOSTIC-MIB / hm2DevSecStatusEntry.hm2DevSecStatusTimeStamp} # HmTimeSeconds1970, access=r - mon_dev_mode: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseDevModeEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_modbus_tcp: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseModbusTcpEnabled} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_config_load: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecSenseExtNvmConfigLoadUnsecure} # HmEnabledStatus, access=ru, allowed=[True, False] + history_index: {HM2-DIAGNOSTIC-MIB / hm2DevSecStatusEntry.hm2DevSecStatusIndex} # Integer32, access=r } ``` @@ -1068,30 +1036,30 @@ MOPS { ``` SNMP { - mon_hidiscovery: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.16, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_iec61850_mms: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.18, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.4, method: get} # INTEGER, access=r, allowed=['noerror', 'error'] - mon_sysmon: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_snmp_unsecure: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.12, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] history_cause: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.3} # INTEGER, access=r, allowed=['none', 'password-change', 'password-min-length', 'password-policy-not-configured', 'password-policy-inactive', 'telnet-enabled', 'http-enabled', 'snmp-unsecure', 'sysmon-enabled', 'ext-nvm-update-enabled', 'no-link', 'hidisc-enabled', 'ext-nvm-config-load-unsecure', 'iec61850-mms-enabled', 'https-certificate-warning', 'modbus-tcp-enabled', 'ethernet-ip-enabled', 'profinet-io-enabled', 'pml-disabled', 'secure-boot-disabled', 'dev-mode-enabled'] - mon_secure_boot: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.24, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_policy: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.8, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_dev_mode: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.25, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_modbus_tcp: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.20, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_no_link: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.15, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_profinet_io: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.22, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_policy: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.8, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_iec61850_mms: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.18, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_hidiscovery: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.16, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_secure_boot: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.24, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_snmp_unsecure: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.12, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_telnet: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.10, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_https_cert_warning: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.19, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_update: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.14, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_change: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.4, method: get} # INTEGER, access=r, allowed=['noerror', 'error'] + trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_config_load: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.17, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_pml_disabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.23, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_sysmon: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_http: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.11, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_https_cert_warning: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.19, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_password_min_length: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.7, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - history_index: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.1} # Integer32, access=r - mon_pml_disabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.23, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_profinet_io: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.22, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_update: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.14, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] mon_ethernet_ip: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.21, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_change: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] history_timestamp: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.2} # HmTimeSeconds1970, access=r - mon_dev_mode: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.25, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_modbus_tcp: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.20, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_config_load: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.17, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + history_index: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.2} # Integer32, access=r } ``` @@ -1100,25 +1068,25 @@ SNMP { ``` SSH { - mon_hidiscovery: {read: "show security-status monitor", write: "security-status monitor hidisc-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_dev_mode: {read: "show security-status monitor", write: "security-status monitor support-mode-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_modbus_tcp: {read: "show security-status monitor", write: "security-status monitor modbus-tcp-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_no_link: {read: "show security-status monitor", write: "security-status monitor no-link-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_profinet_io: {read: "show security-status monitor", write: "security-status monitor profinet-io-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_policy: {read: "show security-status monitor", write: "security-status monitor pwd-str-not-config"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_iec61850_mms: {read: "show security-status monitor", write: "security-status monitor iec61850-mms-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_sysmon: {read: "show security-status monitor", write: "security-status monitor sysmon-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_snmp_unsecure: {read: "show security-status monitor", write: "security-status monitor snmp-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_hidiscovery: {read: "show security-status monitor", write: "security-status monitor hidisc-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_secure_boot: {read: "show security-status monitor", write: "security-status monitor secure-boot-disabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_policy: {read: "show security-status monitor", write: "security-status monitor pwd-str-not-config"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_no_link: {read: "show security-status monitor", write: "security-status monitor no-link-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_snmp_unsecure: {read: "show security-status monitor", write: "security-status monitor snmp-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_telnet: {read: "show security-status monitor", write: "security-status monitor telnet-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_https_cert_warning: {read: "show security-status monitor", write: "security-status monitor https-cert-warning"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_update: {read: "show security-status monitor", write: "security-status monitor extnvm-upd-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_password_change: {read: "show security-status monitor", write: "security-status monitor pwd-change"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_config_load: {read: "show security-status monitor", write: "security-status monitor extnvm-load-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_pml_disabled: {write: "security-status monitor pml-disabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_sysmon: {read: "show security-status monitor", write: "security-status monitor sysmon-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_http: {read: "show security-status monitor", write: "security-status monitor http-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_https_cert_warning: {read: "show security-status monitor", write: "security-status monitor https-cert-warning"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_password_min_length: {read: "show security-status monitor", write: "security-status monitor pwd-min-length"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_pml_disabled: {write: "security-status monitor pml-disabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_profinet_io: {read: "show security-status monitor", write: "security-status monitor profinet-io-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] + mon_ext_nvm_update: {read: "show security-status monitor", write: "security-status monitor extnvm-upd-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] mon_ethernet_ip: {read: "show security-status monitor", write: "security-status monitor ethernet-ip-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_password_change: {read: "show security-status monitor", write: "security-status monitor pwd-change"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_dev_mode: {read: "show security-status monitor", write: "security-status monitor support-mode-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_modbus_tcp: {read: "show security-status monitor", write: "security-status monitor modbus-tcp-enabled"} # HmEnabledStatus, access=ru, allowed=[True, False] - mon_ext_nvm_config_load: {read: "show security-status monitor", write: "security-status monitor extnvm-load-unsecure"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -1149,7 +1117,7 @@ MOPS { ``` SNMP { - history_index: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.1} # Integer32, access=r + history_index: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.2} # Integer32, access=r } ``` @@ -1178,8 +1146,8 @@ get_dhcp_snooping() -> { ``` MOPS { - verify_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingVerifyMac} # TruthValue, access=ru, allowed=[True, False] database_file: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingRemoteFileName} # DisplayString, access=ru, range=0–255 + verify_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingVerifyMac} # TruthValue, access=ru, allowed=[True, False] enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingAdminMode} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -1189,8 +1157,8 @@ MOPS { ``` SNMP { - verify_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.2, method: get} # TruthValue, access=ru, allowed=[True, False] database_file: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.12, method: get} # DisplayString, access=ru, range=0–255 + verify_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.2, method: get} # TruthValue, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.1, method: get} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -1200,8 +1168,8 @@ SNMP { ``` SSH { - verify_mac: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping verify-mac"} # TruthValue, access=ru, allowed=[True, False] database_file: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping database storage {value}"} # DisplayString, access=ru, range=0–255 + verify_mac: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping verify-mac"} # TruthValue, access=ru, allowed=[True, False] enabled: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping mode"} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -1215,10 +1183,10 @@ SSH { ``` MOPS { - port_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingIfConfigEntry.hm2AgentDhcpSnoopingIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] - verify_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingVerifyMac} # TruthValue, access=ru, allowed=[True, False] database_file: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingRemoteFileName} # DisplayString, access=ru, range=0–255 + verify_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingVerifyMac} # TruthValue, access=ru, allowed=[True, False] enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingConfigGroup.hm2AgentDhcpSnoopingAdminMode} # TruthValue, access=ru, allowed=[True, False] + port_trusted: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentDhcpSnoopingIfConfigEntry.hm2AgentDhcpSnoopingIfTrustEnable} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -1227,10 +1195,10 @@ MOPS { ``` SNMP { - port_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.4.1.1} # TruthValue, access=ru, allowed=[True, False] - verify_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.2, method: get} # TruthValue, access=ru, allowed=[True, False] database_file: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.12, method: get} # DisplayString, access=ru, range=0–255 + verify_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.2, method: get} # TruthValue, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.1, method: get} # TruthValue, access=ru, allowed=[True, False] + port_trusted: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.4.1.1} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -1239,10 +1207,10 @@ SNMP { ``` SSH { - port_trusted: {read: "show ip dhcp-snooping interfaces"} # TruthValue, access=ru, allowed=[True, False] - verify_mac: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping verify-mac"} # TruthValue, access=ru, allowed=[True, False] database_file: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping database storage {value}"} # DisplayString, access=ru, range=0–255 + verify_mac: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping verify-mac"} # TruthValue, access=ru, allowed=[True, False] enabled: {read: "show ip dhcp-snooping global", write: "ip dhcp-snooping mode"} # TruthValue, access=ru, allowed=[True, False] + port_trusted: {read: "show ip dhcp-snooping interfaces"} # TruthValue, access=ru, allowed=[True, False] } ``` @@ -1275,15 +1243,15 @@ get_dns() -> { ``` MOPS { - timeout: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestTimeout} # Integer32, access=ru, range=0–3600 - enabled: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientConfigSource} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {HM2-DNS-MIB / hm2DnsCacheGroup.hm2DnsCacheAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru servers: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddress} # InetAddress, access=ru - domain_name: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientDefaultDomainName} # SnmpAdminString, access=ru, range=0–255 retransmits: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestRetransmits} # Integer32, access=ru, range=0–100 + enabled: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientConfigSource} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddress} # InetAddress, access=ru - addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru + domain_name: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientDefaultDomainName} # SnmpAdminString, access=ru, range=0–255 + timeout: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestTimeout} # Integer32, access=ru, range=0–3600 } ``` @@ -1292,15 +1260,15 @@ MOPS { ``` SNMP { - timeout: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.2, method: get} # Integer32, access=ru, range=0–3600 - enabled: {oid: 1.3.6.1.4.1.248.11.90.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {oid: 1.3.6.1.4.1.248.11.90.1.1.2, method: get} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {oid: 1.3.6.1.4.1.248.11.90.1.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru servers: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.3} # InetAddress, access=ru - domain_name: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.1, method: get} # SnmpAdminString, access=ru, range=0–255 retransmits: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.3, method: get} # Integer32, access=ru, range=0–100 + enabled: {oid: 1.3.6.1.4.1.248.11.90.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {oid: 1.3.6.1.4.1.248.11.90.1.1.2, method: get} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.3} # InetAddress, access=ru - addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru + domain_name: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.1, method: get} # SnmpAdminString, access=ru, range=0–255 + timeout: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.2, method: get} # Integer32, access=ru, range=0–3600 } ``` @@ -1309,14 +1277,14 @@ SNMP { ``` SSH { - timeout: {read: "show dns client info", write: "dns client timeout {value}"} # Integer32, access=ru, range=0–3600 - enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {read: "show dns client info", write: "dns client source {value}"} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client cache adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] servers: {read: "show dns client servers", write: "dns client servers add {index} ip {address}"} # InetAddress, access=ru - domain_name: {read: "show dns client info", write: "dns client domain-name {value}"} # SnmpAdminString, access=ru, range=0–255 retransmits: {read: "show dns client info", write: "dns client retry {value}"} # Integer32, access=ru, range=0–100 + enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {read: "show dns client info", write: "dns client source {value}"} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {read: "show dns client servers", write: "dns client servers add {index} ip {address}"} # InetAddress, access=ru + domain_name: {read: "show dns client info", write: "dns client domain-name {value}"} # SnmpAdminString, access=ru, range=0–255 + timeout: {read: "show dns client info", write: "dns client timeout {value}"} # Integer32, access=ru, range=0–3600 } ``` @@ -1329,17 +1297,17 @@ SSH { ``` MOPS { - timeout: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestTimeout} # Integer32, access=ru, range=0–3600 - enabled: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientConfigSource} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {HM2-DNS-MIB / hm2DnsCacheGroup.hm2DnsCacheAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru servers: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddress} # InetAddress, access=ru - domain_name: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientDefaultDomainName} # SnmpAdminString, access=ru, range=0–255 - server_index: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerIndex} # Integer32, access=r, range=1–4 retransmits: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestRetransmits} # Integer32, access=ru, range=0–100 + enabled: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientConfigSource} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddress} # InetAddress, access=ru + domain_name: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientDefaultDomainName} # SnmpAdminString, access=ru, range=0–255 + server_index: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerIndex} # Integer32, access=r, range=1–4 + timeout: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestTimeout} # Integer32, access=ru, range=0–3600 server_status: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerRowStatus} # RowStatus, access=crud - addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru } ``` @@ -1348,17 +1316,17 @@ MOPS { ``` SNMP { - timeout: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.2, method: get} # Integer32, access=ru, range=0–3600 - enabled: {oid: 1.3.6.1.4.1.248.11.90.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {oid: 1.3.6.1.4.1.248.11.90.1.1.2, method: get} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {oid: 1.3.6.1.4.1.248.11.90.1.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru servers: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.3} # InetAddress, access=ru - domain_name: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.1, method: get} # SnmpAdminString, access=ru, range=0–255 - server_index: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.1} # Integer32, access=r, range=1–4 retransmits: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.3, method: get} # Integer32, access=ru, range=0–100 + enabled: {oid: 1.3.6.1.4.1.248.11.90.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {oid: 1.3.6.1.4.1.248.11.90.1.1.2, method: get} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.3} # InetAddress, access=ru + domain_name: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.1, method: get} # SnmpAdminString, access=ru, range=0–255 + server_index: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.1} # Integer32, access=r, range=1–4 + timeout: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.2, method: get} # Integer32, access=ru, range=0–3600 server_status: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.4} # RowStatus, access=crud - addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru } ``` @@ -1367,15 +1335,15 @@ SNMP { ``` SSH { - timeout: {read: "show dns client info", write: "dns client timeout {value}"} # Integer32, access=ru, range=0–3600 - enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {read: "show dns client info", write: "dns client source {value}"} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client cache adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] servers: {read: "show dns client servers", write: "dns client servers add {index} ip {address}"} # InetAddress, access=ru - domain_name: {read: "show dns client info", write: "dns client domain-name {value}"} # SnmpAdminString, access=ru, range=0–255 - server_index: {read: "show dns client servers"} # Integer32, access=r, range=1–4 retransmits: {read: "show dns client info", write: "dns client retry {value}"} # Integer32, access=ru, range=0–100 + enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {read: "show dns client info", write: "dns client source {value}"} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {read: "show dns client servers", write: "dns client servers add {index} ip {address}"} # InetAddress, access=ru + domain_name: {read: "show dns client info", write: "dns client domain-name {value}"} # SnmpAdminString, access=ru, range=0–255 + server_index: {read: "show dns client servers"} # Integer32, access=r, range=1–4 + timeout: {read: "show dns client info", write: "dns client timeout {value}"} # Integer32, access=ru, range=0–3600 server_status: {write: "dns client servers add {index} ip {address}"} # RowStatus, access=crud } ``` @@ -1397,8 +1365,8 @@ create_dns_server() -> { ``` MOPS { - addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru address: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddress} # InetAddress, access=ru + addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru } ``` @@ -1407,8 +1375,8 @@ MOPS { ``` SNMP { - addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru address: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.3} # InetAddress, access=ru + addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru } ``` @@ -1430,17 +1398,17 @@ SSH { ``` MOPS { - timeout: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestTimeout} # Integer32, access=ru, range=0–3600 - enabled: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientConfigSource} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {HM2-DNS-MIB / hm2DnsCacheGroup.hm2DnsCacheAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru servers: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddress} # InetAddress, access=ru - domain_name: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientDefaultDomainName} # SnmpAdminString, access=ru, range=0–255 - server_index: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerIndex} # Integer32, access=r, range=1–4 retransmits: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestRetransmits} # Integer32, access=ru, range=0–100 + enabled: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {HM2-DNS-MIB / hm2DnsClientGroup.hm2DnsClientConfigSource} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddress} # InetAddress, access=ru + domain_name: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientDefaultDomainName} # SnmpAdminString, access=ru, range=0–255 + server_index: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerIndex} # Integer32, access=r, range=1–4 + timeout: {HM2-DNS-MIB / hm2DnsClientGlobalGroup.hm2DnsClientRequestTimeout} # Integer32, access=ru, range=0–3600 server_status: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerRowStatus} # RowStatus, access=crud - addr_type: {HM2-DNS-MIB / hm2DnsClientServerCfgEntry.hm2DnsClientServerAddressType} # InetAddressType, access=ru } ``` @@ -1449,17 +1417,17 @@ MOPS { ``` SNMP { - timeout: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.2, method: get} # Integer32, access=ru, range=0–3600 - enabled: {oid: 1.3.6.1.4.1.248.11.90.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {oid: 1.3.6.1.4.1.248.11.90.1.1.2, method: get} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {oid: 1.3.6.1.4.1.248.11.90.1.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru servers: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.3} # InetAddress, access=ru - domain_name: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.1, method: get} # SnmpAdminString, access=ru, range=0–255 - server_index: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.1} # Integer32, access=r, range=1–4 retransmits: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.3, method: get} # Integer32, access=ru, range=0–100 + enabled: {oid: 1.3.6.1.4.1.248.11.90.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {oid: 1.3.6.1.4.1.248.11.90.1.1.2, method: get} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.3} # InetAddress, access=ru + domain_name: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.1, method: get} # SnmpAdminString, access=ru, range=0–255 + server_index: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.1} # Integer32, access=r, range=1–4 + timeout: {oid: 1.3.6.1.4.1.248.11.90.1.1.5.2, method: get} # Integer32, access=ru, range=0–3600 server_status: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.4} # RowStatus, access=crud - addr_type: {oid: 1.3.6.1.4.1.248.11.90.1.1.3.1.2} # InetAddressType, access=ru } ``` @@ -1468,15 +1436,15 @@ SNMP { ``` SSH { - timeout: {read: "show dns client info", write: "dns client timeout {value}"} # Integer32, access=ru, range=0–3600 - enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] - config_source: {read: "show dns client info", write: "dns client source {value}"} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] cache_enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client cache adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] servers: {read: "show dns client servers", write: "dns client servers add {index} ip {address}"} # InetAddress, access=ru - domain_name: {read: "show dns client info", write: "dns client domain-name {value}"} # SnmpAdminString, access=ru, range=0–255 - server_index: {read: "show dns client servers"} # Integer32, access=r, range=1–4 retransmits: {read: "show dns client info", write: "dns client retry {value}"} # Integer32, access=ru, range=0–100 + enabled: {read: "show dns client info", write: "{'' if value else 'no '}dns client adminstate"} # HmEnabledStatus, access=ru, allowed=[True, False] + config_source: {read: "show dns client info", write: "dns client source {value}"} # INTEGER, access=ru, allowed=['user', 'mgmt-dhcp', 'provider'] address: {read: "show dns client servers", write: "dns client servers add {index} ip {address}"} # InetAddress, access=ru + domain_name: {read: "show dns client info", write: "dns client domain-name {value}"} # SnmpAdminString, access=ru, range=0–255 + server_index: {read: "show dns client servers"} # Integer32, access=r, range=1–4 + timeout: {read: "show dns client info", write: "dns client timeout {value}"} # Integer32, access=ru, range=0–3600 server_status: {write: "dns client servers add {index} ip {address}"} # RowStatus, access=crud } ``` @@ -1506,9 +1474,9 @@ get_gmrp() -> { ``` MOPS { - port_enabled: {P-BRIDGE-MIB / dot1dPortGmrpEntry.dot1dPortGmrpStatus} # EnabledStatus, access=ru unknown_multicast: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchGARPGroup.hm2AgentSwitchGmrpUnknownMulticastFilterMode} # INTEGER, access=ru, allowed=['flood', 'discard'] enabled: {P-BRIDGE-MIB / dot1dExtBase.dot1dGmrpStatus} # EnabledStatus, access=ru + port_enabled: {P-BRIDGE-MIB / dot1dPortGmrpEntry.dot1dPortGmrpStatus} # EnabledStatus, access=ru } ``` @@ -1517,9 +1485,9 @@ MOPS { ``` SNMP { - port_enabled: {oid: 1.3.6.1.2.1.17.6.1.4.1.1.1} # EnabledStatus, access=ru unknown_multicast: {oid: 1.3.6.1.4.1.248.12.1.2.8.249.1, method: get} # INTEGER, access=ru, allowed=['flood', 'discard'] enabled: {oid: 1.3.6.1.2.1.17.6.1.1.3, method: get} # EnabledStatus, access=ru + port_enabled: {oid: 1.3.6.1.2.1.17.6.1.4.1.1.1} # EnabledStatus, access=ru } ``` @@ -1532,8 +1500,8 @@ SNMP { ``` MOPS { - port_enabled: {P-BRIDGE-MIB / dot1dPortGmrpEntry.dot1dPortGmrpStatus} # EnabledStatus, access=ru unknown_multicast: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchGARPGroup.hm2AgentSwitchGmrpUnknownMulticastFilterMode} # INTEGER, access=ru, allowed=['flood', 'discard'] + port_enabled: {P-BRIDGE-MIB / dot1dPortGmrpEntry.dot1dPortGmrpStatus} # EnabledStatus, access=ru enabled: {P-BRIDGE-MIB / dot1dExtBase.dot1dGmrpStatus} # EnabledStatus, access=ru } ``` @@ -1543,8 +1511,8 @@ MOPS { ``` SNMP { - port_enabled: {oid: 1.3.6.1.2.1.17.6.1.4.1.1.1} # EnabledStatus, access=ru unknown_multicast: {oid: 1.3.6.1.4.1.248.12.1.2.8.249.1, method: get} # INTEGER, access=ru, allowed=['flood', 'discard'] + port_enabled: {oid: 1.3.6.1.2.1.17.6.1.4.1.1.1} # EnabledStatus, access=ru enabled: {oid: 1.3.6.1.2.1.17.6.1.1.3, method: get} # EnabledStatus, access=ru } ``` @@ -1558,8 +1526,8 @@ SNMP { ``` MOPS { - port_enabled: {P-BRIDGE-MIB / dot1dPortGmrpEntry.dot1dPortGmrpStatus} # EnabledStatus, access=ru unknown_multicast: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchGARPGroup.hm2AgentSwitchGmrpUnknownMulticastFilterMode} # INTEGER, access=ru, allowed=['flood', 'discard'] + port_enabled: {P-BRIDGE-MIB / dot1dPortGmrpEntry.dot1dPortGmrpStatus} # EnabledStatus, access=ru enabled: {P-BRIDGE-MIB / dot1dExtBase.dot1dGmrpStatus} # EnabledStatus, access=ru } ``` @@ -1569,8 +1537,8 @@ MOPS { ``` SNMP { - port_enabled: {oid: 1.3.6.1.2.1.17.6.1.4.1.1.1} # EnabledStatus, access=ru unknown_multicast: {oid: 1.3.6.1.4.1.248.12.1.2.8.249.1, method: get} # INTEGER, access=ru, allowed=['flood', 'discard'] + port_enabled: {oid: 1.3.6.1.2.1.17.6.1.4.1.1.1} # EnabledStatus, access=ru enabled: {oid: 1.3.6.1.2.1.17.6.1.1.3, method: get} # EnabledStatus, access=ru } ``` @@ -1599,8 +1567,8 @@ get_gvrp() -> { ``` MOPS { - port_enabled: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortGvrpStatus} # EnabledStatus, access=ru enabled: {Q-BRIDGE-MIB / dot1qBase.dot1qGvrpStatus} # EnabledStatus, access=ru + port_enabled: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortGvrpStatus} # EnabledStatus, access=ru } ``` @@ -1609,8 +1577,8 @@ MOPS { ``` SNMP { - port_enabled: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.4} # EnabledStatus, access=ru enabled: {oid: 1.3.6.1.2.1.17.7.1.1.5, method: get} # EnabledStatus, access=ru + port_enabled: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.4} # EnabledStatus, access=ru } ``` @@ -1687,10 +1655,10 @@ get_hidiscovery() -> { ``` MOPS { - mode: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryMode} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] - relay_enabled: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryRelay} # HmEnabledStatus, access=ru, allowed=[True, False] blinking: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryBlinking} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + relay_enabled: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryRelay} # HmEnabledStatus, access=ru, allowed=[True, False] + mode: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryMode} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] } ``` @@ -1699,10 +1667,10 @@ MOPS { ``` SNMP { - mode: {oid: 1.3.6.1.4.1.248.11.20.1.4.2, method: get} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] - relay_enabled: {oid: 1.3.6.1.4.1.248.11.20.1.4.5, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] blinking: {oid: 1.3.6.1.4.1.248.11.20.1.4.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.11.20.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + relay_enabled: {oid: 1.3.6.1.4.1.248.11.20.1.4.5, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mode: {oid: 1.3.6.1.4.1.248.11.20.1.4.2, method: get} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] } ``` @@ -1711,10 +1679,10 @@ SNMP { ``` SSH { - mode: {read: "show network hidiscovery", write: "network hidiscovery mode {value}"} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] - relay_enabled: {read: "show network hidiscovery", write: "network hidiscovery relay"} # HmEnabledStatus, access=ru, allowed=[True, False] blinking: {read: "show network hidiscovery", write: "network hidiscovery blinking"} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {read: "show network hidiscovery", write: "network hidiscovery operation {value}"} # HmEnabledStatus, access=ru, allowed=[True, False] + relay_enabled: {read: "show network hidiscovery", write: "network hidiscovery relay"} # HmEnabledStatus, access=ru, allowed=[True, False] + mode: {read: "show network hidiscovery", write: "network hidiscovery mode {value}"} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] } ``` @@ -1727,10 +1695,10 @@ SSH { ``` MOPS { - mode: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryMode} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] - relay_enabled: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryRelay} # HmEnabledStatus, access=ru, allowed=[True, False] blinking: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryBlinking} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + relay_enabled: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryRelay} # HmEnabledStatus, access=ru, allowed=[True, False] + mode: {HM2-NETCONFIG-MIB / hm2NetHiDiscoveryGroup.hm2NetHiDiscoveryMode} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] } ``` @@ -1739,10 +1707,10 @@ MOPS { ``` SNMP { - mode: {oid: 1.3.6.1.4.1.248.11.20.1.4.2, method: get} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] - relay_enabled: {oid: 1.3.6.1.4.1.248.11.20.1.4.5, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] blinking: {oid: 1.3.6.1.4.1.248.11.20.1.4.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.11.20.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + relay_enabled: {oid: 1.3.6.1.4.1.248.11.20.1.4.5, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mode: {oid: 1.3.6.1.4.1.248.11.20.1.4.2, method: get} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] } ``` @@ -1751,10 +1719,10 @@ SNMP { ``` SSH { - mode: {read: "show network hidiscovery", write: "network hidiscovery mode {value}"} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] - relay_enabled: {read: "show network hidiscovery", write: "network hidiscovery relay"} # HmEnabledStatus, access=ru, allowed=[True, False] blinking: {read: "show network hidiscovery", write: "network hidiscovery blinking"} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {read: "show network hidiscovery", write: "network hidiscovery operation {value}"} # HmEnabledStatus, access=ru, allowed=[True, False] + relay_enabled: {read: "show network hidiscovery", write: "network hidiscovery relay"} # HmEnabledStatus, access=ru, allowed=[True, False] + mode: {read: "show network hidiscovery", write: "network hidiscovery mode {value}"} # INTEGER, access=ru, allowed=['readWrite', 'readOnly'] } ``` @@ -1797,24 +1765,24 @@ get_interfaces() -> { ``` MOPS { - speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r - cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r - manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru - power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] - oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru - alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 - admin_status: {IF-MIB / ifEntry.ifAdminStatus} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + autoneg_supported: {MAU-MIB / ifMauEntry.ifMauAutoNegSupported} # TruthValue, access=r, allowed=[True, False] flow_control: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfFlowControl} # HmEnabledStatus, access=ru, allowed=[True, False] + speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r + manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru + oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] - track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru - phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - autoneg_supported: {MAU-MIB / ifMauEntry.ifMauAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru + admin_status: {IF-MIB / ifEntry.ifAdminStatus} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 + cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r } ``` @@ -1823,24 +1791,24 @@ MOPS { ``` SNMP { - speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r - cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - media_type: {oid: 1.3.6.1.2.1.26.2.1.1.5} # IANAifMauMediaAvailable, access=r - manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru - power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru - alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 - admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r + manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru power_save: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.5} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru + oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] - track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru - phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] + track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru + admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 + cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + media_type: {oid: 1.3.6.1.2.1.26.2.1.1.5} # IANAifMauMediaAvailable, access=r } ``` @@ -1849,13 +1817,13 @@ SNMP { ``` SSH { - cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] - alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 - admin_status: {read: "show port", write: "shutdown"} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] flow_control: {write: "storm-control flow-control"} # HmEnabledStatus, access=ru, allowed=[True, False] power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] name: {read: "show port"} # DisplayString, access=r + admin_status: {read: "show port", write: "shutdown"} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 + cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] } ``` @@ -1896,27 +1864,27 @@ get_interface_statistics() -> { ``` MOPS { - fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r - rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r - tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r - rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r - tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r - utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 - utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 - tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r - collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r - utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 - rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r - tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r rx_unicast_packets: {IF-MIB / ifXEntry.ifHCInUcastPkts} # Counter64, access=r - tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r - tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r - utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 - rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r - name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r + collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r + utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r + name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r + tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r + utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 crc_errors: {RMON-MIB / etherStatsEntry.etherStatsCRCAlignErrors} # Counter32, access=r + tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r + utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 utilization_alarm: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmCondition} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r + rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r + tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r + tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r + rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r + rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r + utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 + rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r + tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r + fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r } ``` @@ -1925,36 +1893,36 @@ MOPS { ``` SNMP { - fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r - rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r - tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r - rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r - tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r - utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 + rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r utilization_interval: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2} # Integer32, access=ru, range=1–3600 + rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r + name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r + tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r + utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 + crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r late_collisions: {oid: 1.3.6.1.2.1.10.7.2.1.8} # Counter32, access=r tx_octets: {oid: 1.3.6.1.2.1.2.2.1.16} # Counter32, access=r - collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r - utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 - rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r - tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r - rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r - tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r - tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r utilization_alarm_lower: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.3} # Integer32, access=ru, range=0–10000 - rx_octets: {oid: 1.3.6.1.2.1.2.2.1.10} # Counter32, access=r - name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r - crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] -} -``` - - -
SSH sources (1/22 attrs) - -``` -SSH { + tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r + rx_octets: {oid: 1.3.6.1.2.1.2.2.1.10} # Counter32, access=r + tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r + tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r + rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r + rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r + utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 + rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r + tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r + fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r +} +``` +
+ +
SSH sources (1/22 attrs) + +``` +SSH { name: {read: "show port"} # DisplayString, access=r } ``` @@ -1968,48 +1936,48 @@ SSH { ``` MOPS { - cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r - rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r - tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r - rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r - flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru - tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r - utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 - alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 - mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru - signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] - ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru - utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 - tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r - track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru - collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r - phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r - utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 - rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r - speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r - tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r rx_unicast_packets: {IF-MIB / ifXEntry.ifHCInUcastPkts} # Counter64, access=r - media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r - power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] - tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r - oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r - utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 flow_control: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfFlowControl} # HmEnabledStatus, access=ru, allowed=[True, False] - rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r - ipv4_prefix: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru + speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r + collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r + utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 + rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru - manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru - power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru admin_status: {IF-MIB / ifEntry.ifAdminStatus} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r + ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru + manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru + tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r + utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 + link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] crc_errors: {RMON-MIB / etherStatsEntry.etherStatsCRCAlignErrors} # Counter32, access=r + tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r + alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 + cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r + utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 utilization_alarm: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmCondition} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r autoneg_supported: {MAU-MIB / ifMauEntry.ifMauAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r + flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru + tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r + tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r + ipv4_prefix: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru + power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r + autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r + ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru + rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r + mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru + utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 + oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r + tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r + fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r } ```
@@ -2018,49 +1986,49 @@ MOPS { ``` SNMP { - cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r - rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r - tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r - rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r - flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru - tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r - utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 - alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 - mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru - signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] - ipv4_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru + rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r + collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r utilization_interval: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2} # Integer32, access=ru, range=1–3600 + rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r + name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r + track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru + admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru + manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru + tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r + utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 + link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] + crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r late_collisions: {oid: 1.3.6.1.2.1.10.7.2.1.8} # Counter32, access=r tx_octets: {oid: 1.3.6.1.2.1.2.2.1.16} # Counter32, access=r - track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru - collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r - phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r - utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 - rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r - speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r - tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r - rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 + cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] media_type: {oid: 1.3.6.1.2.1.26.2.1.1.5} # IANAifMauMediaAvailable, access=r - power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r - oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r utilization_alarm_lower: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.3} # Integer32, access=ru, range=0–10000 - flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r + autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] rx_octets: {oid: 1.3.6.1.2.1.2.2.1.10} # Counter32, access=r + flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru + tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r + tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r ipv4_prefix: {oid: 1.3.6.1.4.1.248.11.20.1.1.4, method: get} # InetAddressPrefixLength, access=ru - name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru - manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru power_save: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.5} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] - admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r - crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r - utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] - autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] + phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r + autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r + ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru + rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r + mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru + utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 + oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r + tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r + fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r } ``` @@ -2069,15 +2037,15 @@ SNMP { ``` SSH { - cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 - ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru - power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] flow_control: {write: "storm-control flow-control"} # HmEnabledStatus, access=ru, allowed=[True, False] name: {read: "show port"} # DisplayString, access=r - ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru - power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] admin_status: {read: "show port", write: "shutdown"} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru + power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] + alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 + cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru } ``` @@ -2090,48 +2058,48 @@ SSH { ``` MOPS { - cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r - rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r - tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r - rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r - flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru - tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r - utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 - alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 - mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru - signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] - ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru - utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 - tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r - track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru - collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r - phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r - utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 - rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r - speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r - tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r rx_unicast_packets: {IF-MIB / ifXEntry.ifHCInUcastPkts} # Counter64, access=r - media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r - power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] - tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r - oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r - utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 flow_control: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfFlowControl} # HmEnabledStatus, access=ru, allowed=[True, False] - rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r - ipv4_prefix: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru + speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r + collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r + utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 + rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru - manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru - power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru admin_status: {IF-MIB / ifEntry.ifAdminStatus} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r + ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru + manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru + tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r + utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 + link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] crc_errors: {RMON-MIB / etherStatsEntry.etherStatsCRCAlignErrors} # Counter32, access=r + tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r + alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 + cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r + utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 utilization_alarm: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmCondition} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r autoneg_supported: {MAU-MIB / ifMauEntry.ifMauAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r + flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru + tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r + tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r + ipv4_prefix: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru + power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r + autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r + ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru + rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r + mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru + utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 + oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r + tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r + fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r } ``` @@ -2140,49 +2108,49 @@ MOPS { ``` SNMP { - cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r - rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r - tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r - rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r - flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru - tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r - utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 - alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 - mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru - signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r + collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r + utilization_interval: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2} # Integer32, access=ru, range=1–3600 + rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r + name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r + track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru + admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] ipv4_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru - utilization_interval: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2} # Integer32, access=ru, range=1–3600 + manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru + tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r + utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 + link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] + crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r late_collisions: {oid: 1.3.6.1.2.1.10.7.2.1.8} # Counter32, access=r tx_octets: {oid: 1.3.6.1.2.1.2.2.1.16} # Counter32, access=r - track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru - collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r - phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r - utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 - rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r - speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r - tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r - rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 + cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] media_type: {oid: 1.3.6.1.2.1.26.2.1.1.5} # IANAifMauMediaAvailable, access=r - power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r - oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r utilization_alarm_lower: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.3} # Integer32, access=ru, range=0–10000 - flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r + autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] rx_octets: {oid: 1.3.6.1.2.1.2.2.1.10} # Counter32, access=r + flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru + tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r + tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r ipv4_prefix: {oid: 1.3.6.1.4.1.248.11.20.1.1.4, method: get} # InetAddressPrefixLength, access=ru - name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru - manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru power_save: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.5} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] - admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r - crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r - utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] - autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] + phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r + autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r + ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru + rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r + mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru + utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 + oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r + tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r + fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r } ``` @@ -2191,15 +2159,15 @@ SNMP { ``` SSH { - cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 - ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru - power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] flow_control: {write: "storm-control flow-control"} # HmEnabledStatus, access=ru, allowed=[True, False] name: {read: "show port"} # DisplayString, access=r - ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru - power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] admin_status: {read: "show port", write: "shutdown"} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru + power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] + alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 + cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru } ``` @@ -2223,48 +2191,48 @@ get_ip_addresses() -> { ``` MOPS { - cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r - rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r - tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r - rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r - flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru - tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r - utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 - alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 - mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru - signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] - ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru - utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 - tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r - track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru - collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r - phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r - utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 - rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r - speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r - tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r rx_unicast_packets: {IF-MIB / ifXEntry.ifHCInUcastPkts} # Counter64, access=r - media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r - power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] - tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r - oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r - utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 flow_control: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfFlowControl} # HmEnabledStatus, access=ru, allowed=[True, False] - rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r - ipv4_prefix: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru + speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r + collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r + utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 + rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru - manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru - power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru admin_status: {IF-MIB / ifEntry.ifAdminStatus} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r + ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru + manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru + tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r + utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 + link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] crc_errors: {RMON-MIB / etherStatsEntry.etherStatsCRCAlignErrors} # Counter32, access=r + tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r + alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 + cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r + utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 utilization_alarm: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmCondition} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r autoneg_supported: {MAU-MIB / ifMauEntry.ifMauAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r + flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru + tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r + tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r + ipv4_prefix: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru + power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r + autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r + ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru + rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r + mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru + utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 + oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r + tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r + fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r } ``` @@ -2273,49 +2241,49 @@ MOPS { ``` SNMP { - cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r - rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r - tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r - rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r - flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru - tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r - utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 - alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 - mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru - signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] - ipv4_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru + rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r + collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r utilization_interval: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2} # Integer32, access=ru, range=1–3600 + rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r + name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r + track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru + admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru + manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru + tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r + utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 + link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] + crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r late_collisions: {oid: 1.3.6.1.2.1.10.7.2.1.8} # Counter32, access=r tx_octets: {oid: 1.3.6.1.2.1.2.2.1.16} # Counter32, access=r - track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru - collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r - phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r - utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 - rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r - speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r - tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r - rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 + cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] media_type: {oid: 1.3.6.1.2.1.26.2.1.1.5} # IANAifMauMediaAvailable, access=r - power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r - oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r utilization_alarm_lower: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.3} # Integer32, access=ru, range=0–10000 - flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r + autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] rx_octets: {oid: 1.3.6.1.2.1.2.2.1.10} # Counter32, access=r + flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru + tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r + tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r ipv4_prefix: {oid: 1.3.6.1.4.1.248.11.20.1.1.4, method: get} # InetAddressPrefixLength, access=ru - name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru - manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru power_save: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.5} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] - admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r - crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r - utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] - autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] + phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r + autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r + ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru + rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r + mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru + utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 + oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r + tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r + fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r } ``` @@ -2324,15 +2292,15 @@ SNMP { ``` SSH { - cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 - ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru - power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] flow_control: {write: "storm-control flow-control"} # HmEnabledStatus, access=ru, allowed=[True, False] name: {read: "show port"} # DisplayString, access=r - ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru - power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] admin_status: {read: "show port", write: "shutdown"} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru + power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] + alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 + cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru } ``` @@ -2345,48 +2313,48 @@ SSH { ``` MOPS { - cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r - rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r - tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r - rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r - flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru - tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r - utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 - alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 - mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru - signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] - ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru + rx_unicast_packets: {IF-MIB / ifXEntry.ifHCInUcastPkts} # Counter64, access=r + flow_control: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfFlowControl} # HmEnabledStatus, access=ru, allowed=[True, False] + speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r + collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r utilization_interval: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationControlInterval} # Integer32, access=ru, range=1–3600 - tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r + rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r + name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r track_name: {HM2-TRACKING-MIB / hm2TrackInterfaceStatusEntry.hm2TrackInterfaceStatusTrackId} # SnmpAdminString, access=ru - collisions: {RMON-MIB / etherStatsEntry.etherStatsCollisions} # Counter32, access=r - phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r - utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 - rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r - speed: {IF-MIB / ifXEntry.ifHighSpeed} # Gauge32, access=r - tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r - rx_unicast_packets: {IF-MIB / ifXEntry.ifHCInUcastPkts} # Counter64, access=r - media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r - power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] + admin_status: {IF-MIB / ifEntry.ifAdminStatus} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru + manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru tx_discards: {IF-MIB / ifEntry.ifOutDiscards} # Counter32, access=r - oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r + utilization_alarm_upper: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmUpperThreshold} # Integer32, access=ru, range=0–10000 + link_trap: {IF-MIB / ifXEntry.ifLinkUpDownTrapEnable} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfacePowerState} # HmEnabledStatus, access=ru, allowed=[True, False] + crc_errors: {RMON-MIB / etherStatsEntry.etherStatsCRCAlignErrors} # Counter32, access=r + tx_octets: {IF-MIB / ifEntry.ifOutOctets} # Counter32, access=r + alias: {IF-MIB / ifXEntry.ifAlias} # DisplayString, access=ru, range=0–64 + cable_crossing: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceCableCrossing} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + media_type: {MAU-MIB / ifMauEntry.ifMauMediaAvailable} # IANAifMauMediaAvailable, access=r utilization_alarm_lower: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmLowerThreshold} # Integer32, access=ru, range=0–10000 - flow_control: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfFlowControl} # HmEnabledStatus, access=ru, allowed=[True, False] + utilization_alarm: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmCondition} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {IF-MIB / ifXEntry.ifHCOutMulticastPkts} # Counter64, access=r + autoneg_supported: {MAU-MIB / ifMauEntry.ifMauAutoNegSupported} # TruthValue, access=r, allowed=[True, False] rx_octets: {IF-MIB / ifEntry.ifInOctets} # Counter32, access=r + flush_statistics: {HM2-DEVMGMT-MIB / hm2DeviceMgmtActionGroup.hm2DevMgmtActionFlushPortStats} # INTEGER, access=ru + tx_unicast_packets: {IF-MIB / ifXEntry.ifHCOutUcastPkts} # Counter64, access=r + tx_broadcast_packets: {IF-MIB / ifXEntry.ifHCOutBroadcastPkts} # Counter64, access=r ipv4_prefix: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru - name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru - manual_config: {MAU-MIB / ifMauEntry.ifMauDefaultType} # AutonomousType, access=ru power_save: {HM2-DEVMGMT-MIB / hm2IfaceEntry.hm2IfaceAutoPowerDown} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] - admin_status: {IF-MIB / ifEntry.ifAdminStatus} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {IF-MIB / ifEntry.ifInDiscards} # Counter32, access=r - crc_errors: {RMON-MIB / etherStatsEntry.etherStatsCRCAlignErrors} # Counter32, access=r - utilization_alarm: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilizationAlarmCondition} # TruthValue, access=r, allowed=[True, False] - autoneg_supported: {MAU-MIB / ifMauEntry.ifMauAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + phys_address: {IF-MIB / ifEntry.ifPhysAddress} # PhysAddress, access=r + autoneg_enabled: {MAU-MIB / ifMauAutoNegEntry.ifMauAutoNegAdminStatus} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {IF-MIB / ifEntry.ifInErrors} # Counter32, access=r + ipv4_gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru + rx_broadcast_packets: {IF-MIB / ifXEntry.ifHCInBroadcastPkts} # Counter64, access=r + mtu: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentPortConfigEntry.hm2AgentPortMaxFrameSize} # Integer32, access=ru + utilization: {HM2-DIAGNOSTIC-MIB / hm2DiagIfaceUtilizationEntry.hm2DiagIfaceUtilization} # Integer32, access=r, range=0–10000 + oper_status: {IF-MIB / ifEntry.ifOperStatus} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {HM2-DIAGNOSTIC-MIB / hm2LedPortEntry.hm2LedPortSignaling} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {IF-MIB / ifXEntry.ifHCInMulticastPkts} # Counter64, access=r + tx_errors: {IF-MIB / ifEntry.ifOutErrors} # Counter32, access=r + fragments: {RMON-MIB / etherStatsEntry.etherStatsFragments} # Counter32, access=r } ``` @@ -2395,49 +2363,49 @@ MOPS { ``` SNMP { - cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r - rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r - tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r - rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r - flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru - tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r - utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 - alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 - mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru - signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] - ipv4_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru + rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r + collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r utilization_interval: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.2} # Integer32, access=ru, range=1–3600 + rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r + name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r + track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru + admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru + manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru + tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r + utilization_alarm_upper: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.4} # Integer32, access=ru, range=0–10000 + link_trap: {oid: 1.3.6.1.2.1.31.1.1.1.14} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] + crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r late_collisions: {oid: 1.3.6.1.2.1.10.7.2.1.8} # Counter32, access=r tx_octets: {oid: 1.3.6.1.2.1.2.2.1.16} # Counter32, access=r - track_name: {oid: 1.3.6.1.4.1.248.11.115.1.8.1.1.1} # SnmpAdminString, access=ru - collisions: {oid: 1.3.6.1.2.1.16.1.1.1.13} # Counter32, access=r - phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r - utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 - rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r - speed: {oid: 1.3.6.1.2.1.31.1.1.1.15} # Gauge32, access=r - tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r - rx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.7} # Counter64, access=r + alias: {oid: 1.3.6.1.2.1.31.1.1.1.18} # DisplayString, access=ru, range=0–64 + cable_crossing: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.3} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] media_type: {oid: 1.3.6.1.2.1.26.2.1.1.5} # IANAifMauMediaAvailable, access=r - power_state: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - tx_discards: {oid: 1.3.6.1.2.1.2.2.1.19} # Counter32, access=r - oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] - autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] - tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r utilization_alarm_lower: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.3} # Integer32, access=ru, range=0–10000 - flow_control: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] + tx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.12} # Counter64, access=r + autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] rx_octets: {oid: 1.3.6.1.2.1.2.2.1.10} # Counter32, access=r + flush_statistics: {oid: 1.3.6.1.4.1.248.11.10.1.2.5, method: get} # INTEGER, access=ru + tx_unicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.11} # Counter64, access=r + tx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.13} # Counter64, access=r ipv4_prefix: {oid: 1.3.6.1.4.1.248.11.20.1.1.4, method: get} # InetAddressPrefixLength, access=ru - name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru - manual_config: {oid: 1.3.6.1.2.1.26.2.1.1.11} # AutonomousType, access=ru power_save: {oid: 1.3.6.1.4.1.248.11.10.1.6.1.1.5} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] - admin_status: {oid: 1.3.6.1.2.1.2.2.1.7} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] - rx_discards: {oid: 1.3.6.1.2.1.2.2.1.13} # Counter32, access=r - crc_errors: {oid: 1.3.6.1.2.1.16.1.1.1.8} # Counter32, access=r - utilization_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.5} # TruthValue, access=r, allowed=[True, False] - autoneg_supported: {oid: 1.3.6.1.2.1.26.2.1.1.12} # TruthValue, access=r, allowed=[True, False] + phys_address: {oid: 1.3.6.1.2.1.2.2.1.6} # PhysAddress, access=r + autoneg_enabled: {oid: 1.3.6.1.2.1.26.5.1.1.1} # INTEGER, access=ru, allowed=['enabled', 'disabled'] + rx_errors: {oid: 1.3.6.1.2.1.2.2.1.14} # Counter32, access=r + ipv4_gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru + rx_broadcast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.9} # Counter64, access=r + mtu: {oid: 1.3.6.1.4.1.248.12.1.2.13.1.19} # Integer32, access=ru + utilization: {oid: 1.3.6.1.4.1.248.11.22.1.5.1.1.1} # Integer32, access=r, range=0–10000 + oper_status: {oid: 1.3.6.1.2.1.2.2.1.8} # INTEGER, access=r, allowed=['up', 'down', 'testing', 'unknown', 'dormant', 'notPresent', 'lowerLayerDown'] + signal: {oid: 1.3.6.1.4.1.248.11.22.1.4.2.1.3} # HmEnabledStatus, access=ru, allowed=[True, False] + rx_multicast_packets: {oid: 1.3.6.1.2.1.31.1.1.1.8} # Counter64, access=r + tx_errors: {oid: 1.3.6.1.2.1.2.2.1.20} # Counter32, access=r + fragments: {oid: 1.3.6.1.2.1.16.1.1.1.11} # Counter32, access=r } ``` @@ -2446,15 +2414,15 @@ SNMP { ``` SSH { - cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] - alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 - ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru - power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] flow_control: {write: "storm-control flow-control"} # HmEnabledStatus, access=ru, allowed=[True, False] name: {read: "show port"} # DisplayString, access=r - ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru - power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] admin_status: {read: "show port", write: "shutdown"} # INTEGER, access=ru, allowed=['up', 'down', 'testing'] + ipv4_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru + power_state: {write: "power-state"} # HmEnabledStatus, access=ru, allowed=[True, False] + alias: {read: "show port", write: "name {value}"} # DisplayString, access=ru, range=0–64 + cable_crossing: {write: "cable-crossing {value}"} # INTEGER, access=ru, allowed=['mdi', 'mdix', 'auto-mdix', 'unsupported'] + power_save: {write: "auto-power-down {value}"} # INTEGER, access=ru, allowed=['auto-power-down', 'no-power-save', 'energy-efficient-ethernet', 'unsupported'] + ipv4_gateway: {read: "show network parms"} # InetAddress, access=ru } ``` @@ -2483,21 +2451,21 @@ get_ip_restrict() -> { ``` MOPS { - ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIndex} # Integer32, access=r, range=1–16 + logging: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaLoggingGlobal} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] per_rule_logging: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaLogging} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru + http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru + https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSnmp} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru iec61850: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvIEC61850} # HmEnabledStatus, access=ru, allowed=[True, False] profinet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvProfinetIO} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIndex} # Integer32, access=r, range=1–16 telnet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvTelnet} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvModbusTcp} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru - logging: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaLoggingGlobal} # HmEnabledStatus, access=ru, allowed=[True, False] - https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2506,21 +2474,21 @@ MOPS { ``` SNMP { - ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.1} # Integer32, access=r, range=1–16 + logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] per_rule_logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.16} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru + http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.11.25.1.7.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru + https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru iec61850: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] profinet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.14} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.1} # Integer32, access=r, range=1–16 telnet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.9} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru - logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2529,19 +2497,19 @@ SNMP { ``` SSH { - ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {read: "show network management access rules"} # Integer32, access=r, range=1–16 + ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] http: {write: "network management access modify {_row_index} http {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {read: "show network management access rules"} # InetAddress, access=ru enabled: {read: "show network management access global"} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru + https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {write: "network management access modify {_row_index} snmp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {read: "show network management access rules"} # InetAddress, access=ru iec61850: {write: "network management access modify {_row_index} iec61850-mms {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] profinet: {write: "network management access modify {_row_index} profinet-io {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {read: "show network management access rules"} # Integer32, access=r, range=1–16 telnet: {write: "network management access modify {_row_index} telnet {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {write: "network management access modify {_row_index} modbus-tcp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru - https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2573,19 +2541,19 @@ create_ip_restrict_rule() -> { ``` MOPS { - ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddrType} # InetAddressType, access=ru per_rule_logging: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaLogging} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru + http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] + https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru snmp: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSnmp} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] iec61850: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvIEC61850} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru profinet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvProfinetIO} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvTelnet} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvModbusTcp} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru - https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddrType} # InetAddressType, access=ru } ``` @@ -2594,19 +2562,19 @@ MOPS { ``` SNMP { - ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.3} # InetAddressType, access=ru per_rule_logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.16} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru + http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru snmp: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] iec61850: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru profinet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.14} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.9} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru - https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.3} # InetAddressType, access=ru } ``` @@ -2615,17 +2583,17 @@ SNMP { ``` SSH { - ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] http: {write: "network management access modify {_row_index} http {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {read: "show network management access rules"} # InetAddress, access=ru + https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru snmp: {write: "network management access modify {_row_index} snmp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] iec61850: {write: "network management access modify {_row_index} iec61850-mms {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {read: "show network management access rules"} # InetAddress, access=ru profinet: {write: "network management access modify {_row_index} profinet-io {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {write: "network management access modify {_row_index} telnet {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {write: "network management access modify {_row_index} modbus-tcp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru - https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2638,24 +2606,24 @@ SSH { ``` MOPS { - ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIndex} # Integer32, access=r, range=1–16 + rule_status: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaRowStatus} # RowStatus, access=crud + logging: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaLoggingGlobal} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddrType} # InetAddressType, access=ru per_rule_logging: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaLogging} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru + http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru + https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSnmp} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru iec61850: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvIEC61850} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIndex} # Integer32, access=r, range=1–16 profinet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvProfinetIO} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvTelnet} # HmEnabledStatus, access=ru, allowed=[True, False] - modbus: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvModbusTcp} # HmEnabledStatus, access=ru, allowed=[True, False] interface: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaInterface} # InterfaceIndexOrZero, access=ru - prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru - logging: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaLoggingGlobal} # HmEnabledStatus, access=ru, allowed=[True, False] - https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddrType} # InetAddressType, access=ru - rule_status: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaRowStatus} # RowStatus, access=crud + ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] + modbus: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvModbusTcp} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2664,24 +2632,24 @@ MOPS { ``` SNMP { - ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.1} # Integer32, access=r, range=1–16 + rule_status: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.2} # RowStatus, access=crud + logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.3} # InetAddressType, access=ru per_rule_logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.16} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru + http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.11.25.1.7.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru + https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru iec61850: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.1} # Integer32, access=r, range=1–16 profinet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.14} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.9} # HmEnabledStatus, access=ru, allowed=[True, False] - modbus: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] interface: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.15} # InterfaceIndexOrZero, access=ru - prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru - logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.3} # InetAddressType, access=ru - rule_status: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.2} # RowStatus, access=crud + ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] + modbus: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2690,20 +2658,20 @@ SNMP { ``` SSH { - ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {read: "show network management access rules"} # Integer32, access=r, range=1–16 + rule_status: {write: "network management access add {index} ip {ip}"} # RowStatus, access=crud + ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] http: {write: "network management access modify {_row_index} http {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {read: "show network management access rules"} # InetAddress, access=ru enabled: {read: "show network management access global"} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru + https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {write: "network management access modify {_row_index} snmp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {read: "show network management access rules"} # InetAddress, access=ru iec61850: {write: "network management access modify {_row_index} iec61850-mms {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {read: "show network management access rules"} # Integer32, access=r, range=1–16 profinet: {write: "network management access modify {_row_index} profinet-io {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {write: "network management access modify {_row_index} telnet {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {write: "network management access modify {_row_index} modbus-tcp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru - https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - rule_status: {write: "network management access add {index} ip {ip}"} # RowStatus, access=crud } ``` @@ -2716,24 +2684,24 @@ SSH { ``` MOPS { - ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIndex} # Integer32, access=r, range=1–16 + rule_status: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaRowStatus} # RowStatus, access=crud + logging: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaLoggingGlobal} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddrType} # InetAddressType, access=ru per_rule_logging: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaLogging} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru + http: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttp} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru + https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSnmp} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvSsh} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddr} # InetAddress, access=ru iec61850: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvIEC61850} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIndex} # Integer32, access=r, range=1–16 profinet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvProfinetIO} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvTelnet} # HmEnabledStatus, access=ru, allowed=[True, False] - modbus: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvModbusTcp} # HmEnabledStatus, access=ru, allowed=[True, False] interface: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaInterface} # InterfaceIndexOrZero, access=ru - prefix_length: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaPrefixLength} # InetAddressPrefixLength, access=ru - logging: {HM2-MGMTACCESS-MIB / hm2RestrictedMgmtAccessGroup.hm2RmaLoggingGlobal} # HmEnabledStatus, access=ru, allowed=[True, False] - https: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvHttps} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaIpAddrType} # InetAddressType, access=ru - rule_status: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaRowStatus} # RowStatus, access=crud + ethernet_ip: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvEthernetIP} # HmEnabledStatus, access=ru, allowed=[True, False] + modbus: {HM2-MGMTACCESS-MIB / hm2RmaEntry.hm2RmaSrvModbusTcp} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2742,24 +2710,24 @@ MOPS { ``` SNMP { - ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] - http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.1} # Integer32, access=r, range=1–16 + rule_status: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.2} # RowStatus, access=crud + logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_type: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.3} # InetAddressType, access=ru per_rule_logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.16} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru + http: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.11.25.1.7.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru + https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.4} # InetAddress, access=ru iec61850: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.1} # Integer32, access=r, range=1–16 profinet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.14} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.9} # HmEnabledStatus, access=ru, allowed=[True, False] - modbus: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] interface: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.15} # InterfaceIndexOrZero, access=ru - prefix_length: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.5} # InetAddressPrefixLength, access=ru - logging: {oid: 1.3.6.1.4.1.248.11.25.1.7.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - https: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.3} # InetAddressType, access=ru - rule_status: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.2} # RowStatus, access=crud + ethernet_ip: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] + modbus: {oid: 1.3.6.1.4.1.248.11.25.1.7.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -2768,20 +2736,20 @@ SNMP { ``` SSH { - ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + index: {read: "show network management access rules"} # Integer32, access=r, range=1–16 + rule_status: {write: "network management access add {index} ip {ip}"} # RowStatus, access=crud + ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] http: {write: "network management access modify {_row_index} http {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ip: {read: "show network management access rules"} # InetAddress, access=ru enabled: {read: "show network management access global"} # HmEnabledStatus, access=ru, allowed=[True, False] + prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru + https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp: {write: "network management access modify {_row_index} snmp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh: {write: "network management access modify {_row_index} ssh {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ip: {read: "show network management access rules"} # InetAddress, access=ru iec61850: {write: "network management access modify {_row_index} iec61850-mms {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - index: {read: "show network management access rules"} # Integer32, access=r, range=1–16 profinet: {write: "network management access modify {_row_index} profinet-io {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] telnet: {write: "network management access modify {_row_index} telnet {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] + ethernet_ip: {write: "network management access modify {_row_index} ethernet-ip {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] modbus: {write: "network management access modify {_row_index} modbus-tcp {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - prefix_length: {read: "show network management access rules"} # InetAddressPrefixLength, access=ru - https: {write: "network management access modify {_row_index} https {'enable' if value else 'disable'}"} # HmEnabledStatus, access=ru, allowed=[True, False] - rule_status: {write: "network management access add {index} ip {ip}"} # RowStatus, access=crud } ``` @@ -2843,15 +2811,15 @@ SSH { ``` MOPS { - binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 + binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud binding_ifindex: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIfIndex} # InterfaceIndex, access=ru + binding_hw_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingHwStatus} # TruthValue, access=r, allowed=[True, False] binding_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentIpsgIfConfigEntry.hm2AgentIpsgIfVerifySource} # TruthValue, access=ru, allowed=[True, False] port_security: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentIpsgIfConfigEntry.hm2AgentIpsgIfPortSecurity} # TruthValue, access=ru, allowed=[True, False] - binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud - binding_hw_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingHwStatus} # TruthValue, access=r, allowed=[True, False] - binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru binding_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIpAddr} # IpAddress, access=ru + binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru + binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 } ``` @@ -2860,15 +2828,15 @@ MOPS { ``` SNMP { - binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 + binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud binding_ifindex: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.1} # InterfaceIndex, access=ru + binding_hw_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.248} # TruthValue, access=r, allowed=[True, False] binding_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.5.1.1} # TruthValue, access=ru, allowed=[True, False] port_security: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.5.1.2} # TruthValue, access=ru, allowed=[True, False] - binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud - binding_hw_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.248} # TruthValue, access=r, allowed=[True, False] - binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru binding_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.4} # IpAddress, access=ru + binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru + binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 } ``` @@ -2904,12 +2872,12 @@ get_ip_source_guard_bindings() -> { ``` MOPS { - binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 + binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud binding_ifindex: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIfIndex} # InterfaceIndex, access=ru binding_hw_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingHwStatus} # TruthValue, access=r, allowed=[True, False] - binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud - binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru binding_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIpAddr} # IpAddress, access=ru + binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru + binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 } ``` @@ -2918,12 +2886,12 @@ MOPS { ``` SNMP { - binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 + binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud binding_ifindex: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.1} # InterfaceIndex, access=ru binding_hw_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.248} # TruthValue, access=r, allowed=[True, False] - binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud - binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru binding_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.4} # IpAddress, access=ru + binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru + binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 } ``` @@ -2936,15 +2904,15 @@ SNMP { ``` MOPS { - binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 + binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud binding_ifindex: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIfIndex} # InterfaceIndex, access=ru + binding_hw_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingHwStatus} # TruthValue, access=r, allowed=[True, False] binding_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentIpsgIfConfigEntry.hm2AgentIpsgIfVerifySource} # TruthValue, access=ru, allowed=[True, False] port_security: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentIpsgIfConfigEntry.hm2AgentIpsgIfPortSecurity} # TruthValue, access=ru, allowed=[True, False] - binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud - binding_hw_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingHwStatus} # TruthValue, access=r, allowed=[True, False] - binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru binding_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIpAddr} # IpAddress, access=ru + binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru + binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 } ``` @@ -2953,15 +2921,15 @@ MOPS { ``` SNMP { - binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 + binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud binding_ifindex: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.1} # InterfaceIndex, access=ru + binding_hw_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.248} # TruthValue, access=r, allowed=[True, False] binding_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.5.1.1} # TruthValue, access=ru, allowed=[True, False] port_security: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.5.1.2} # TruthValue, access=ru, allowed=[True, False] - binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud - binding_hw_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.248} # TruthValue, access=r, allowed=[True, False] - binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru binding_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.4} # IpAddress, access=ru + binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru + binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 } ``` @@ -2992,8 +2960,8 @@ create_static_binding() -> { ``` MOPS { - binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 binding_ifindex: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIfIndex} # InterfaceIndex, access=ru + binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 } ``` @@ -3002,8 +2970,8 @@ MOPS { ``` SNMP { - binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 binding_ifindex: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.1} # InterfaceIndex, access=ru + binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 } ``` @@ -3016,15 +2984,15 @@ SNMP { ``` MOPS { - binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 + binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud binding_ifindex: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIfIndex} # InterfaceIndex, access=ru + binding_hw_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingHwStatus} # TruthValue, access=r, allowed=[True, False] binding_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentIpsgIfConfigEntry.hm2AgentIpsgIfVerifySource} # TruthValue, access=ru, allowed=[True, False] port_security: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentIpsgIfConfigEntry.hm2AgentIpsgIfPortSecurity} # TruthValue, access=ru, allowed=[True, False] - binding_active: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingRowStatus} # RowStatus, access=crud - binding_hw_status: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingHwStatus} # TruthValue, access=r, allowed=[True, False] - binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru binding_ip: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingIpAddr} # IpAddress, access=ru + binding_mac: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingMacAddr} # MacAddress, access=ru + binding_vlan: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStaticIpsgBindingEntry.hm2AgentStaticIpsgBindingVlanId} # VlanIndex, access=ru, range=1–4094 } ``` @@ -3033,15 +3001,15 @@ MOPS { ``` SNMP { - binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 + binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud binding_ifindex: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.1} # InterfaceIndex, access=ru + binding_hw_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.248} # TruthValue, access=r, allowed=[True, False] binding_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.5.1.1} # TruthValue, access=ru, allowed=[True, False] port_security: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.5.1.2} # TruthValue, access=ru, allowed=[True, False] - binding_active: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.5} # RowStatus, access=crud - binding_hw_status: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.248} # TruthValue, access=r, allowed=[True, False] - binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru binding_ip: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.4} # IpAddress, access=ru + binding_mac: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.3} # MacAddress, access=ru + binding_vlan: {oid: 1.3.6.1.4.1.248.12.1.2.8.23.8.1.2} # VlanIndex, access=ru, range=1–4094 } ``` @@ -3064,7 +3032,7 @@ _IPv6 configuration and neighbor discovery_ ### `get_ipv6_neighbors()` -**Read** | **Protocols:** MOPS, SNMP, SSH +**Read** | **Protocols:** MOPS, SNMP Primary key: `ip` ``` @@ -3072,49 +3040,36 @@ get_ipv6_neighbors() -> { interface: "" // str ip: "" // str mac: "" // str - state: "reachable" // "reachable" | "stale" | "delay" | "probe" | "invalid" | "unknown" | "incomplete" + state: "reachable" // str } ``` -
MOPS sources (4/4 attrs) +
MOPS sources (3/4 attrs) ``` MOPS { - mac: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalPhysAddress} # PhysAddress, access=ru, range=0–65535 - state: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalState} # INTEGER, access=r, allowed=['reachable', 'stale', 'delay', 'probe', 'invalid', 'unknown', 'incomplete'] - ip: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalNetAddress} # InetAddress, access=r - interface: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalIfIndex} # InterfaceIndex, access=r + mac: {IP-MIB / ipNetToMediaEntry.ipNetToMediaPhysAddress} # PhysAddress, access=ru, range=0–65535 + interface: {IP-MIB / ipNetToMediaEntry.ipNetToMediaIfIndex} # INTEGER, access=ru, range=1–2147483647 + ip: {IP-MIB / ipNetToMediaEntry.ipNetToMediaNetAddress} # IpAddress, access=ru } ```
-
SNMP sources (4/4 attrs) +
SNMP sources (3/4 attrs) ``` SNMP { - mac: {oid: 1.3.6.1.2.1.4.35.1.4} # PhysAddress, access=ru, range=0–65535 - state: {oid: 1.3.6.1.2.1.4.35.1.7} # INTEGER, access=r, allowed=['reachable', 'stale', 'delay', 'probe', 'invalid', 'unknown', 'incomplete'] - ip: {oid: 1.3.6.1.2.1.4.35.1.3} # InetAddress, access=r - interface: {oid: 1.3.6.1.2.1.4.35.1.1} # InterfaceIndex, access=r -} -``` -
- -
SSH sources (3/4 attrs) - -``` -SSH { - mac: {read: "show arp"} # PhysAddress, access=ru, range=0–65535 - ip: {read: "show arp"} # InetAddress, access=r - interface: {read: "show arp"} # InterfaceIndex, access=r + mac: {oid: 1.3.6.1.2.1.4.22.1.2} # PhysAddress, access=ru, range=0–65535 + interface: {oid: 1.3.6.1.2.1.4.22.1.1} # INTEGER, access=ru, range=1–2147483647 + ip: {oid: 1.3.6.1.2.1.4.22.1.3} # IpAddress, access=ru } ```
### `get_ipv6_neighbors_table()` -**Read** | **Protocols:** MOPS, SNMP, SSH +**Read** | **Protocols:** MOPS, SNMP Primary key: `ip` ``` @@ -3122,42 +3077,29 @@ get_ipv6_neighbors_table() -> { interface: "" // str ip: "" // str mac: "" // str - state: "reachable" // "reachable" | "stale" | "delay" | "probe" | "invalid" | "unknown" | "incomplete" + state: "reachable" // str } ``` -
MOPS sources (4/4 attrs) +
MOPS sources (3/4 attrs) ``` MOPS { - mac: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalPhysAddress} # PhysAddress, access=ru, range=0–65535 - state: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalState} # INTEGER, access=r, allowed=['reachable', 'stale', 'delay', 'probe', 'invalid', 'unknown', 'incomplete'] - ip: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalNetAddress} # InetAddress, access=r - interface: {IP-MIB / ipNetToPhysicalEntry.ipNetToPhysicalIfIndex} # InterfaceIndex, access=r + mac: {IP-MIB / ipNetToMediaEntry.ipNetToMediaPhysAddress} # PhysAddress, access=ru, range=0–65535 + interface: {IP-MIB / ipNetToMediaEntry.ipNetToMediaIfIndex} # INTEGER, access=ru, range=1–2147483647 + ip: {IP-MIB / ipNetToMediaEntry.ipNetToMediaNetAddress} # IpAddress, access=ru } ```
-
SNMP sources (4/4 attrs) +
SNMP sources (3/4 attrs) ``` SNMP { - mac: {oid: 1.3.6.1.2.1.4.35.1.4} # PhysAddress, access=ru, range=0–65535 - state: {oid: 1.3.6.1.2.1.4.35.1.7} # INTEGER, access=r, allowed=['reachable', 'stale', 'delay', 'probe', 'invalid', 'unknown', 'incomplete'] - ip: {oid: 1.3.6.1.2.1.4.35.1.3} # InetAddress, access=r - interface: {oid: 1.3.6.1.2.1.4.35.1.1} # InterfaceIndex, access=r -} -``` -
- -
SSH sources (3/4 attrs) - -``` -SSH { - mac: {read: "show arp"} # PhysAddress, access=ru, range=0–65535 - ip: {read: "show arp"} # InetAddress, access=r - interface: {read: "show arp"} # InterfaceIndex, access=r + mac: {oid: 1.3.6.1.2.1.4.22.1.2} # PhysAddress, access=ru, range=0–65535 + interface: {oid: 1.3.6.1.2.1.4.22.1.1} # INTEGER, access=ru, range=1–2147483647 + ip: {oid: 1.3.6.1.2.1.4.22.1.3} # IpAddress, access=ru } ```
@@ -3185,9 +3127,9 @@ get_lldp_neighbors() -> { ``` MOPS { - local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r sys_name: {LLDP-MIB / lldpRemEntry.lldpRemSysName} # SnmpAdminString, access=r, range=0–255 port_id: {LLDP-MIB / lldpRemEntry.lldpRemPortId} # LldpPortId, access=r + local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r } ```
@@ -3196,9 +3138,9 @@ MOPS { ``` SNMP { - local_port: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.2} # LldpPortNumber, access=r - sys_name: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 - port_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r + sys_name: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 + port_id: {oid: 1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r + local_port: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # LldpPortNumber, access=r } ```
@@ -3232,19 +3174,19 @@ get_lldp_neighbors_detail() -> { ``` MOPS { port_description: {LLDP-MIB / lldpRemEntry.lldpRemPortDesc} # SnmpAdminString, access=r, range=0–255 - sys_description: {LLDP-MIB / lldpRemEntry.lldpRemSysDesc} # SnmpAdminString, access=r, range=0–255 - aggregation_port_id: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggPortId} # Integer32, access=r - sys_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapSupported} # LldpSystemCapabilitiesMap, access=r - chassis_id: {LLDP-MIB / lldpRemEntry.lldpRemChassisId} # LldpChassisId, access=r - sys_enabled_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapEnabled} # LldpSystemCapabilitiesMap, access=r - local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r - sys_name: {LLDP-MIB / lldpRemEntry.lldpRemSysName} # SnmpAdminString, access=r, range=0–255 autoneg_enabled: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegEnabled} # TruthValue, access=r, allowed=[True, False] - mau_type: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortOperMauType} # Integer32, access=r, range=0–2147483647 pvid: {LLDP-EXT-DOT1-MIB / lldpXdot1RemEntry.lldpXdot1RemPortVlanId} # Integer32, access=r + autoneg_supported: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + chassis_id: {LLDP-MIB / lldpRemEntry.lldpRemChassisId} # LldpChassisId, access=r + sys_name: {LLDP-MIB / lldpRemEntry.lldpRemSysName} # SnmpAdminString, access=r, range=0–255 + sys_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapSupported} # LldpSystemCapabilitiesMap, access=r + aggregation_port_id: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggPortId} # Integer32, access=r + local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r port_id: {LLDP-MIB / lldpRemEntry.lldpRemPortId} # LldpPortId, access=r + mau_type: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortOperMauType} # Integer32, access=r, range=0–2147483647 + sys_description: {LLDP-MIB / lldpRemEntry.lldpRemSysDesc} # SnmpAdminString, access=r, range=0–255 aggregation_enabled: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggStatus} # LldpLinkAggStatusMap, access=r - autoneg_supported: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + sys_enabled_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapEnabled} # LldpSystemCapabilitiesMap, access=r } ```
@@ -3253,20 +3195,20 @@ MOPS { ``` SNMP { - port_description: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.8} # SnmpAdminString, access=r, range=0–255 - sys_description: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.10} # SnmpAdminString, access=r, range=0–255 - aggregation_port_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.2} # Integer32, access=r - sys_capabilities: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.11} # LldpSystemCapabilitiesMap, access=r - chassis_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.5} # LldpChassisId, access=r - sys_enabled_capabilities: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.12} # LldpSystemCapabilitiesMap, access=r - local_port: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.2} # LldpPortNumber, access=r - sys_name: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 - autoneg_enabled: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.2} # TruthValue, access=r, allowed=[True, False] - mau_type: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.4} # Integer32, access=r, range=0–2147483647 - pvid: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.32962.1.3.1.1.1} # Integer32, access=r - port_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r - aggregation_enabled: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.1} # LldpLinkAggStatusMap, access=r - autoneg_supported: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.1} # TruthValue, access=r, allowed=[True, False] + port_description: {oid: 1.0.8802.1.1.2.1.4.1.1.8} # SnmpAdminString, access=r, range=0–255 + autoneg_enabled: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.2} # TruthValue, access=r, allowed=[True, False] + pvid: {oid: 1.0.8802.1.1.2.1.5.32962.1.3.1.1.1} # Integer32, access=r + autoneg_supported: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.1} # TruthValue, access=r, allowed=[True, False] + chassis_id: {oid: 1.0.8802.1.1.2.1.4.1.1.5} # LldpChassisId, access=r + sys_name: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 + sys_capabilities: {oid: 1.0.8802.1.1.2.1.4.1.1.11} # LldpSystemCapabilitiesMap, access=r + aggregation_port_id: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.2} # Integer32, access=r + local_port: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # LldpPortNumber, access=r + port_id: {oid: 1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r + mau_type: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.4} # Integer32, access=r, range=0–2147483647 + sys_description: {oid: 1.0.8802.1.1.2.1.4.1.1.10} # SnmpAdminString, access=r, range=0–255 + aggregation_enabled: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.1} # LldpLinkAggStatusMap, access=r + sys_enabled_capabilities: {oid: 1.0.8802.1.1.2.1.4.1.1.12} # LldpSystemCapabilitiesMap, access=r } ```
@@ -3280,22 +3222,22 @@ SNMP { ``` MOPS { port_description: {LLDP-MIB / lldpRemEntry.lldpRemPortDesc} # SnmpAdminString, access=r, range=0–255 - sys_description: {LLDP-MIB / lldpRemEntry.lldpRemSysDesc} # SnmpAdminString, access=r, range=0–255 - aggregation_port_id: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggPortId} # Integer32, access=r - sys_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapSupported} # LldpSystemCapabilitiesMap, access=r - enabled: {HM2-LLDP-MIB / hm2LLDPConfigGroup.hm2LLDPAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r - chassis_id: {LLDP-MIB / lldpRemEntry.lldpRemChassisId} # LldpChassisId, access=r - sys_enabled_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapEnabled} # LldpSystemCapabilitiesMap, access=r - hello_interval: {LLDP-MIB / lldpConfiguration.lldpMessageTxInterval} # Integer32, access=ru, range=5–32768 - sys_name: {LLDP-MIB / lldpRemEntry.lldpRemSysName} # SnmpAdminString, access=r, range=0–255 + hold_multiplier: {LLDP-MIB / lldpConfiguration.lldpMessageTxHoldMultiplier} # Integer32, access=ru, range=2–10 autoneg_enabled: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegEnabled} # TruthValue, access=r, allowed=[True, False] - mau_type: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortOperMauType} # Integer32, access=r, range=0–2147483647 pvid: {LLDP-EXT-DOT1-MIB / lldpXdot1RemEntry.lldpXdot1RemPortVlanId} # Integer32, access=r + autoneg_supported: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + hello_interval: {LLDP-MIB / lldpConfiguration.lldpMessageTxInterval} # Integer32, access=ru, range=5–32768 + local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r + sys_name: {LLDP-MIB / lldpRemEntry.lldpRemSysName} # SnmpAdminString, access=r, range=0–255 + chassis_id: {LLDP-MIB / lldpRemEntry.lldpRemChassisId} # LldpChassisId, access=r + sys_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapSupported} # LldpSystemCapabilitiesMap, access=r + aggregation_port_id: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggPortId} # Integer32, access=r + enabled: {HM2-LLDP-MIB / hm2LLDPConfigGroup.hm2LLDPAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] port_id: {LLDP-MIB / lldpRemEntry.lldpRemPortId} # LldpPortId, access=r + mau_type: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortOperMauType} # Integer32, access=r, range=0–2147483647 + sys_description: {LLDP-MIB / lldpRemEntry.lldpRemSysDesc} # SnmpAdminString, access=r, range=0–255 aggregation_enabled: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggStatus} # LldpLinkAggStatusMap, access=r - hold_multiplier: {LLDP-MIB / lldpConfiguration.lldpMessageTxHoldMultiplier} # Integer32, access=ru, range=2–10 - autoneg_supported: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + sys_enabled_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapEnabled} # LldpSystemCapabilitiesMap, access=r } ``` @@ -3304,23 +3246,23 @@ MOPS { ``` SNMP { - port_description: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.8} # SnmpAdminString, access=r, range=0–255 - sys_description: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.10} # SnmpAdminString, access=r, range=0–255 - aggregation_port_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.2} # Integer32, access=r - sys_capabilities: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.11} # LldpSystemCapabilitiesMap, access=r - enabled: {oid: 1.3.6.1.4.1.248.11.34.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - local_port: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.2} # LldpPortNumber, access=r - chassis_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.5} # LldpChassisId, access=r - sys_enabled_capabilities: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.12} # LldpSystemCapabilitiesMap, access=r - hello_interval: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.1.1, method: get} # Integer32, access=ru, range=5–32768 - sys_name: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 - autoneg_enabled: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.2} # TruthValue, access=r, allowed=[True, False] - mau_type: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.4} # Integer32, access=r, range=0–2147483647 - pvid: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.32962.1.3.1.1.1} # Integer32, access=r - port_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r - aggregation_enabled: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.1} # LldpLinkAggStatusMap, access=r + port_description: {oid: 1.0.8802.1.1.2.1.4.1.1.8} # SnmpAdminString, access=r, range=0–255 hold_multiplier: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.1.2, method: get} # Integer32, access=ru, range=2–10 - autoneg_supported: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.1} # TruthValue, access=r, allowed=[True, False] + autoneg_enabled: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.2} # TruthValue, access=r, allowed=[True, False] + pvid: {oid: 1.0.8802.1.1.2.1.5.32962.1.3.1.1.1} # Integer32, access=r + autoneg_supported: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.1} # TruthValue, access=r, allowed=[True, False] + hello_interval: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.1.1, method: get} # Integer32, access=ru, range=5–32768 + local_port: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # LldpPortNumber, access=r + sys_name: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 + chassis_id: {oid: 1.0.8802.1.1.2.1.4.1.1.5} # LldpChassisId, access=r + sys_capabilities: {oid: 1.0.8802.1.1.2.1.4.1.1.11} # LldpSystemCapabilitiesMap, access=r + aggregation_port_id: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.2} # Integer32, access=r + enabled: {oid: 1.3.6.1.4.1.248.11.34.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + port_id: {oid: 1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r + mau_type: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.4} # Integer32, access=r, range=0–2147483647 + sys_description: {oid: 1.0.8802.1.1.2.1.4.1.1.10} # SnmpAdminString, access=r, range=0–255 + aggregation_enabled: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.1} # LldpLinkAggStatusMap, access=r + sys_enabled_capabilities: {oid: 1.0.8802.1.1.2.1.4.1.1.12} # LldpSystemCapabilitiesMap, access=r } ``` @@ -3329,9 +3271,9 @@ SNMP { ``` SSH { - enabled: {write: "lldp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - hello_interval: {write: "lldp config chassis tx-interval {value}"} # Integer32, access=ru, range=5–32768 hold_multiplier: {write: "lldp config chassis tx-hold-multiplier {value}"} # Integer32, access=ru, range=2–10 + hello_interval: {write: "lldp config chassis tx-interval {value}"} # Integer32, access=ru, range=5–32768 + enabled: {write: "lldp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -3345,22 +3287,22 @@ SSH { ``` MOPS { port_description: {LLDP-MIB / lldpRemEntry.lldpRemPortDesc} # SnmpAdminString, access=r, range=0–255 - sys_description: {LLDP-MIB / lldpRemEntry.lldpRemSysDesc} # SnmpAdminString, access=r, range=0–255 - aggregation_port_id: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggPortId} # Integer32, access=r - sys_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapSupported} # LldpSystemCapabilitiesMap, access=r - enabled: {HM2-LLDP-MIB / hm2LLDPConfigGroup.hm2LLDPAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r - chassis_id: {LLDP-MIB / lldpRemEntry.lldpRemChassisId} # LldpChassisId, access=r - sys_enabled_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapEnabled} # LldpSystemCapabilitiesMap, access=r - hello_interval: {LLDP-MIB / lldpConfiguration.lldpMessageTxInterval} # Integer32, access=ru, range=5–32768 - sys_name: {LLDP-MIB / lldpRemEntry.lldpRemSysName} # SnmpAdminString, access=r, range=0–255 + hold_multiplier: {LLDP-MIB / lldpConfiguration.lldpMessageTxHoldMultiplier} # Integer32, access=ru, range=2–10 autoneg_enabled: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegEnabled} # TruthValue, access=r, allowed=[True, False] - mau_type: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortOperMauType} # Integer32, access=r, range=0–2147483647 pvid: {LLDP-EXT-DOT1-MIB / lldpXdot1RemEntry.lldpXdot1RemPortVlanId} # Integer32, access=r + autoneg_supported: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + hello_interval: {LLDP-MIB / lldpConfiguration.lldpMessageTxInterval} # Integer32, access=ru, range=5–32768 + local_port: {LLDP-MIB / lldpRemEntry.lldpRemLocalPortNum} # LldpPortNumber, access=r + sys_name: {LLDP-MIB / lldpRemEntry.lldpRemSysName} # SnmpAdminString, access=r, range=0–255 + chassis_id: {LLDP-MIB / lldpRemEntry.lldpRemChassisId} # LldpChassisId, access=r + sys_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapSupported} # LldpSystemCapabilitiesMap, access=r + aggregation_port_id: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggPortId} # Integer32, access=r + enabled: {HM2-LLDP-MIB / hm2LLDPConfigGroup.hm2LLDPAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] port_id: {LLDP-MIB / lldpRemEntry.lldpRemPortId} # LldpPortId, access=r + mau_type: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortOperMauType} # Integer32, access=r, range=0–2147483647 + sys_description: {LLDP-MIB / lldpRemEntry.lldpRemSysDesc} # SnmpAdminString, access=r, range=0–255 aggregation_enabled: {LLDP-EXT-DOT3-MIB / lldpXdot3RemLinkAggEntry.lldpXdot3RemLinkAggStatus} # LldpLinkAggStatusMap, access=r - hold_multiplier: {LLDP-MIB / lldpConfiguration.lldpMessageTxHoldMultiplier} # Integer32, access=ru, range=2–10 - autoneg_supported: {LLDP-EXT-DOT3-MIB / lldpXdot3RemPortEntry.lldpXdot3RemPortAutoNegSupported} # TruthValue, access=r, allowed=[True, False] + sys_enabled_capabilities: {LLDP-MIB / lldpRemEntry.lldpRemSysCapEnabled} # LldpSystemCapabilitiesMap, access=r } ``` @@ -3369,23 +3311,23 @@ MOPS { ``` SNMP { - port_description: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.8} # SnmpAdminString, access=r, range=0–255 - sys_description: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.10} # SnmpAdminString, access=r, range=0–255 - aggregation_port_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.2} # Integer32, access=r - sys_capabilities: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.11} # LldpSystemCapabilitiesMap, access=r - enabled: {oid: 1.3.6.1.4.1.248.11.34.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - local_port: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.2} # LldpPortNumber, access=r - chassis_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.5} # LldpChassisId, access=r - sys_enabled_capabilities: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.12} # LldpSystemCapabilitiesMap, access=r - hello_interval: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.1.1, method: get} # Integer32, access=ru, range=5–32768 - sys_name: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 - autoneg_enabled: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.2} # TruthValue, access=r, allowed=[True, False] - mau_type: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.4} # Integer32, access=r, range=0–2147483647 - pvid: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.32962.1.3.1.1.1} # Integer32, access=r - port_id: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r - aggregation_enabled: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.3.1.1} # LldpLinkAggStatusMap, access=r + port_description: {oid: 1.0.8802.1.1.2.1.4.1.1.8} # SnmpAdminString, access=r, range=0–255 hold_multiplier: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.1.2, method: get} # Integer32, access=ru, range=2–10 - autoneg_supported: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.5.4623.1.3.1.1.1} # TruthValue, access=r, allowed=[True, False] + autoneg_enabled: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.2} # TruthValue, access=r, allowed=[True, False] + pvid: {oid: 1.0.8802.1.1.2.1.5.32962.1.3.1.1.1} # Integer32, access=r + autoneg_supported: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.1} # TruthValue, access=r, allowed=[True, False] + hello_interval: {oid: 1.3.6.1.2.1.0.8802.1.1.2.1.1.1, method: get} # Integer32, access=ru, range=5–32768 + local_port: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # LldpPortNumber, access=r + sys_name: {oid: 1.0.8802.1.1.2.1.4.1.1.9} # SnmpAdminString, access=r, range=0–255 + chassis_id: {oid: 1.0.8802.1.1.2.1.4.1.1.5} # LldpChassisId, access=r + sys_capabilities: {oid: 1.0.8802.1.1.2.1.4.1.1.11} # LldpSystemCapabilitiesMap, access=r + aggregation_port_id: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.2} # Integer32, access=r + enabled: {oid: 1.3.6.1.4.1.248.11.34.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + port_id: {oid: 1.0.8802.1.1.2.1.4.1.1.7} # LldpPortId, access=r + mau_type: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.1.1.4} # Integer32, access=r, range=0–2147483647 + sys_description: {oid: 1.0.8802.1.1.2.1.4.1.1.10} # SnmpAdminString, access=r, range=0–255 + aggregation_enabled: {oid: 1.0.8802.1.1.2.1.5.4623.1.3.3.1.1} # LldpLinkAggStatusMap, access=r + sys_enabled_capabilities: {oid: 1.0.8802.1.1.2.1.4.1.1.12} # LldpSystemCapabilitiesMap, access=r } ``` @@ -3394,9 +3336,9 @@ SNMP { ``` SSH { - enabled: {write: "lldp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - hello_interval: {write: "lldp config chassis tx-interval {value}"} # Integer32, access=ru, range=5–32768 hold_multiplier: {write: "lldp config chassis tx-hold-multiplier {value}"} # Integer32, access=ru, range=2–10 + hello_interval: {write: "lldp config chassis tx-interval {value}"} # Integer32, access=ru, range=5–32768 + enabled: {write: "lldp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -3426,8 +3368,8 @@ get_mac_address_table() -> { ``` MOPS { - mac: {Q-BRIDGE-MIB / dot1qTpFdbEntry.dot1qTpFdbAddress} # MacAddress, access=r status: {Q-BRIDGE-MIB / dot1qTpFdbEntry.dot1qTpFdbStatus} # INTEGER, access=r + mac: {Q-BRIDGE-MIB / dot1qTpFdbEntry.dot1qTpFdbAddress} # MacAddress, access=r interface: {Q-BRIDGE-MIB / dot1qTpFdbEntry.dot1qTpFdbPort} # INTEGER, access=r, range=0–65535 vlan: {Q-BRIDGE-MIB / dot1qFdbEntry.dot1qFdbId} # Unsigned32, access=r } @@ -3438,8 +3380,8 @@ MOPS { ``` SNMP { - mac: {oid: 1.3.6.1.2.1.17.7.1.2.2.1.1} # MacAddress, access=r status: {oid: 1.3.6.1.2.1.17.7.1.2.2.1.3} # INTEGER, access=r + mac: {oid: 1.3.6.1.2.1.17.7.1.2.2.1.1} # MacAddress, access=r interface: {oid: 1.3.6.1.2.1.17.7.1.2.2.1.2} # INTEGER, access=r, range=0–65535 vlan: {oid: 1.3.6.1.2.1.17.7.1.2.1.1.1} # Unsigned32, access=r } @@ -3450,8 +3392,8 @@ SNMP { ``` SSH { - mac: {read: "show mac-addr-table"} # MacAddress, access=r status: {read: "show mac-addr-table"} # INTEGER, access=r + mac: {read: "show mac-addr-table"} # MacAddress, access=r interface: {read: "show mac-addr-table"} # INTEGER, access=r, range=0–65535 vlan: {read: "show mac-addr-table"} # Unsigned32, access=r } @@ -3484,11 +3426,11 @@ get_management() -> { ``` MOPS { - gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru vlan_id: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetVlanID} # Integer32, access=ru, range=1–4042 - ip_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru prefix_length: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru protocol: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetConfigProtocol} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru + ip_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru } ``` @@ -3497,11 +3439,11 @@ MOPS { ``` SNMP { - gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru vlan_id: {oid: 1.3.6.1.4.1.248.11.20.1.1.7, method: get} # Integer32, access=ru, range=1–4042 - ip_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru prefix_length: {oid: 1.3.6.1.4.1.248.11.20.1.1.4, method: get} # InetAddressPrefixLength, access=ru protocol: {oid: 1.3.6.1.4.1.248.11.20.1.1.1, method: get} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru + ip_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru } ``` @@ -3510,10 +3452,10 @@ SNMP { ``` SSH { - gateway: {read: "show network parms"} # InetAddress, access=ru vlan_id: {read: "show network parms", write: "network management vlan {value}"} # Integer32, access=ru, range=1–4042 - ip_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru protocol: {read: "show network parms"} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {read: "show network parms"} # InetAddress, access=ru + ip_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru } ``` @@ -3526,11 +3468,11 @@ SSH { ``` MOPS { - gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru vlan_id: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetVlanID} # Integer32, access=ru, range=1–4042 - ip_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru prefix_length: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru protocol: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetConfigProtocol} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru + ip_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru } ``` @@ -3539,11 +3481,11 @@ MOPS { ``` SNMP { - gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru vlan_id: {oid: 1.3.6.1.4.1.248.11.20.1.1.7, method: get} # Integer32, access=ru, range=1–4042 - ip_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru prefix_length: {oid: 1.3.6.1.4.1.248.11.20.1.1.4, method: get} # InetAddressPrefixLength, access=ru protocol: {oid: 1.3.6.1.4.1.248.11.20.1.1.1, method: get} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru + ip_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru } ``` @@ -3552,10 +3494,10 @@ SNMP { ``` SSH { - gateway: {read: "show network parms"} # InetAddress, access=ru vlan_id: {read: "show network parms", write: "network management vlan {value}"} # Integer32, access=ru, range=1–4042 - ip_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru protocol: {read: "show network parms"} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {read: "show network parms"} # InetAddress, access=ru + ip_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru } ``` @@ -3580,11 +3522,11 @@ get_management_priority() -> { ``` MOPS { - gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru vlan_id: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetVlanID} # Integer32, access=ru, range=1–4042 - ip_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru prefix_length: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetPrefixLength} # InetAddressPrefixLength, access=ru protocol: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetConfigProtocol} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetGatewayIPAddr} # InetAddress, access=ru + ip_address: {HM2-NETCONFIG-MIB / hm2NetStaticGroup.hm2NetLocalIPAddr} # InetAddress, access=ru } ``` @@ -3593,11 +3535,11 @@ MOPS { ``` SNMP { - gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru vlan_id: {oid: 1.3.6.1.4.1.248.11.20.1.1.7, method: get} # Integer32, access=ru, range=1–4042 - ip_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru prefix_length: {oid: 1.3.6.1.4.1.248.11.20.1.1.4, method: get} # InetAddressPrefixLength, access=ru protocol: {oid: 1.3.6.1.4.1.248.11.20.1.1.1, method: get} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {oid: 1.3.6.1.4.1.248.11.20.1.1.6, method: get} # InetAddress, access=ru + ip_address: {oid: 1.3.6.1.4.1.248.11.20.1.1.3, method: get} # InetAddress, access=ru } ``` @@ -3606,10 +3548,10 @@ SNMP { ``` SSH { - gateway: {read: "show network parms"} # InetAddress, access=ru vlan_id: {read: "show network parms", write: "network management vlan {value}"} # Integer32, access=ru, range=1–4042 - ip_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru protocol: {read: "show network parms"} # INTEGER, access=ru, allowed=['none', 'bootp', 'dhcp'] + gateway: {read: "show network parms"} # InetAddress, access=ru + ip_address: {read: "show network parms", write: "network parms {value} {netmask} {gateway}"} # InetAddress, access=ru } ``` @@ -3648,20 +3590,20 @@ get_mrp() -> { ``` MOPS { - ring_port1: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1IfIndex} # Integer32, access=ru - ring_port2_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + ring_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingOperState} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] advanced_mode: {HM2-L2REDUNDANCY-MIB / hm2MrpMibGroup.hm2MrpFastMrp} # INTEGER, access=r, allowed=['supported', 'notSupported'] - vlan: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpVlanID} # Integer32, access=ru role: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRoleAdminState} # INTEGER, access=ru, allowed=['client', 'manager'] - ring_port2: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2IfIndex} # Integer32, access=ru + vlan: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpVlanID} # Integer32, access=ru + manager_priority: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpMRMPriority} # Integer32 (0..65535), access=ru, range=0–65535 + ring_port1: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1IfIndex} # Integer32, access=ru + ring_port1_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + fixed_backup: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2FixedBackup} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + operation: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRowStatus} # RowStatus, access=crud domain_name: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpDomainName} # SnmpAdminString, access=ru recovery_delay: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRecoveryDelay} # INTEGER, access=ru, allowed=['delay500', 'delay200', 'delay30', 'delay10'] domain_id: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpDomainID} # OCTET STRING, access=r - ring_port1_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] - operation: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRowStatus} # RowStatus, access=crud - manager_priority: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpMRMPriority} # Integer32 (0..65535), access=ru, range=0–65535 - ring_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingOperState} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] - fixed_backup: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2FixedBackup} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2IfIndex} # Integer32, access=ru } ``` @@ -3670,20 +3612,20 @@ MOPS { ``` SNMP { - ring_port1: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.4} # Integer32, access=ru - ring_port2_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.8} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.23} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] advanced_mode: {oid: 1.3.6.1.4.1.248.11.40.1.1.3, method: get} # INTEGER, access=r, allowed=['supported', 'notSupported'] - vlan: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.13} # Integer32, access=ru role: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.9} # INTEGER, access=ru, allowed=['client', 'manager'] - ring_port2: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.7} # Integer32, access=ru + vlan: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.13} # Integer32, access=ru + manager_priority: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.14} # Integer32 (0..65535), access=ru, range=0–65535 + ring_port1: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.4} # Integer32, access=ru + ring_port1_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.5} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + fixed_backup: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.27} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.8} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + operation: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.26} # RowStatus, access=crud domain_name: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.2} # SnmpAdminString, access=ru recovery_delay: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.11} # INTEGER, access=ru, allowed=['delay500', 'delay200', 'delay30', 'delay10'] domain_id: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.1} # OCTET STRING, access=r - ring_port1_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.5} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] - operation: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.26} # RowStatus, access=crud - manager_priority: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.14} # Integer32 (0..65535), access=ru, range=0–65535 - ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.23} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] - fixed_backup: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.27} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.7} # Integer32, access=ru } ``` @@ -3692,20 +3634,20 @@ SNMP { ``` SSH { - ring_port1: {read: "show mrp", write: "mrp domain modify port primary {value}"} # Integer32, access=ru - ring_port2_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + ring_state: {read: "show mrp"} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] advanced_mode: {read: "show mrp", write: "mrp domain modify advanced-mode {value}"} # INTEGER, access=r, allowed=['supported', 'notSupported'] - vlan: {read: "show mrp", write: "mrp domain modify vlan {value}"} # Integer32, access=ru role: {read: "show mrp", write: "mrp domain modify mode {value}"} # INTEGER, access=ru, allowed=['client', 'manager'] - ring_port2: {read: "show mrp", write: "mrp domain modify port secondary {value}"} # Integer32, access=ru + vlan: {read: "show mrp", write: "mrp domain modify vlan {value}"} # Integer32, access=ru + manager_priority: {read: "show mrp", write: "mrp domain modify manager-priority {value}"} # Integer32 (0..65535), access=ru, range=0–65535 + ring_port1: {read: "show mrp", write: "mrp domain modify port primary {value}"} # Integer32, access=ru + ring_port1_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + fixed_backup: {read: "show mrp"} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + operation: {read: "show mrp", write: "mrp domain modify operation {value}"} # RowStatus, access=crud domain_name: {read: "show mrp", write: "mrp domain modify name {value}"} # SnmpAdminString, access=ru recovery_delay: {read: "show mrp", write: "mrp domain modify recovery-delay {value}"} # INTEGER, access=ru, allowed=['delay500', 'delay200', 'delay30', 'delay10'] domain_id: {read: "show mrp"} # OCTET STRING, access=r - ring_port1_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] - operation: {read: "show mrp", write: "mrp domain modify operation {value}"} # RowStatus, access=crud - manager_priority: {read: "show mrp", write: "mrp domain modify manager-priority {value}"} # Integer32 (0..65535), access=ru, range=0–65535 - ring_state: {read: "show mrp"} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] - fixed_backup: {read: "show mrp"} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2: {read: "show mrp", write: "mrp domain modify port secondary {value}"} # Integer32, access=ru } ``` @@ -3718,21 +3660,21 @@ SSH { ``` MOPS { - ring_port1: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1IfIndex} # Integer32, access=ru - ring_port2_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + ring_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingOperState} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] advanced_mode: {HM2-L2REDUNDANCY-MIB / hm2MrpMibGroup.hm2MrpFastMrp} # INTEGER, access=r, allowed=['supported', 'notSupported'] + role: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRoleAdminState} # INTEGER, access=ru, allowed=['client', 'manager'] vlan: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpVlanID} # Integer32, access=ru + manager_priority: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpMRMPriority} # Integer32 (0..65535), access=ru, range=0–65535 + ring_port1: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1IfIndex} # Integer32, access=ru + ring_port1_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + fixed_backup: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2FixedBackup} # HmEnabledStatus, access=ru, allowed=[True, False] mrp_status: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRowStatus} # RowStatus, access=crud - role: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRoleAdminState} # INTEGER, access=ru, allowed=['client', 'manager'] - ring_port2: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2IfIndex} # Integer32, access=ru + ring_port2_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + operation: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRowStatus} # RowStatus, access=crud domain_id: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpDomainID} # OCTET STRING, access=r domain_name: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpDomainName} # SnmpAdminString, access=ru recovery_delay: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRecoveryDelay} # INTEGER, access=ru, allowed=['delay500', 'delay200', 'delay30', 'delay10'] - ring_port1_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport1OperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] - operation: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRowStatus} # RowStatus, access=crud - manager_priority: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpMRMPriority} # Integer32 (0..65535), access=ru, range=0–65535 - ring_state: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingOperState} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] - fixed_backup: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2FixedBackup} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2: {HM2-L2REDUNDANCY-MIB / hm2MrpEntry.hm2MrpRingport2IfIndex} # Integer32, access=ru } ``` @@ -3741,21 +3683,21 @@ MOPS { ``` SNMP { - ring_port1: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.4} # Integer32, access=ru - ring_port2_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.8} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.23} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] advanced_mode: {oid: 1.3.6.1.4.1.248.11.40.1.1.3, method: get} # INTEGER, access=r, allowed=['supported', 'notSupported'] + role: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.9} # INTEGER, access=ru, allowed=['client', 'manager'] vlan: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.13} # Integer32, access=ru + manager_priority: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.14} # Integer32 (0..65535), access=ru, range=0–65535 + ring_port1: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.4} # Integer32, access=ru + ring_port1_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.5} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + fixed_backup: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.27} # HmEnabledStatus, access=ru, allowed=[True, False] mrp_status: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.26} # RowStatus, access=crud - role: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.9} # INTEGER, access=ru, allowed=['client', 'manager'] - ring_port2: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.7} # Integer32, access=ru + ring_port2_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.8} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + operation: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.26} # RowStatus, access=crud domain_id: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.1} # OCTET STRING, access=r domain_name: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.2} # SnmpAdminString, access=ru recovery_delay: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.11} # INTEGER, access=ru, allowed=['delay500', 'delay200', 'delay30', 'delay10'] - ring_port1_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.5} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] - operation: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.26} # RowStatus, access=crud - manager_priority: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.14} # Integer32 (0..65535), access=ru, range=0–65535 - ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.23} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] - fixed_backup: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.27} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2: {oid: 1.3.6.1.4.1.248.11.40.1.1.1.1.7} # Integer32, access=ru } ``` @@ -3764,21 +3706,21 @@ SNMP { ``` SSH { - ring_port1: {read: "show mrp", write: "mrp domain modify port primary {value}"} # Integer32, access=ru - ring_port2_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + ring_state: {read: "show mrp"} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] advanced_mode: {read: "show mrp", write: "mrp domain modify advanced-mode {value}"} # INTEGER, access=r, allowed=['supported', 'notSupported'] + role: {read: "show mrp", write: "mrp domain modify mode {value}"} # INTEGER, access=ru, allowed=['client', 'manager'] vlan: {read: "show mrp", write: "mrp domain modify vlan {value}"} # Integer32, access=ru + manager_priority: {read: "show mrp", write: "mrp domain modify manager-priority {value}"} # Integer32 (0..65535), access=ru, range=0–65535 + ring_port1: {read: "show mrp", write: "mrp domain modify port primary {value}"} # Integer32, access=ru + ring_port1_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + fixed_backup: {read: "show mrp"} # HmEnabledStatus, access=ru, allowed=[True, False] mrp_status: {read: "show mrp", write: "mrp domain modify operation {value}"} # RowStatus, access=crud - role: {read: "show mrp", write: "mrp domain modify mode {value}"} # INTEGER, access=ru, allowed=['client', 'manager'] - ring_port2: {read: "show mrp", write: "mrp domain modify port secondary {value}"} # Integer32, access=ru + ring_port2_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] + operation: {read: "show mrp", write: "mrp domain modify operation {value}"} # RowStatus, access=crud domain_id: {read: "show mrp"} # OCTET STRING, access=r domain_name: {read: "show mrp", write: "mrp domain modify name {value}"} # SnmpAdminString, access=ru recovery_delay: {read: "show mrp", write: "mrp domain modify recovery-delay {value}"} # INTEGER, access=ru, allowed=['delay500', 'delay200', 'delay30', 'delay10'] - ring_port1_state: {read: "show mrp"} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'notConnected'] - operation: {read: "show mrp", write: "mrp domain modify operation {value}"} # RowStatus, access=crud - manager_priority: {read: "show mrp", write: "mrp domain modify manager-priority {value}"} # Integer32 (0..65535), access=ru, range=0–65535 - ring_state: {read: "show mrp"} # INTEGER, access=r, allowed=['open', 'closed', 'undefined'] - fixed_backup: {read: "show mrp"} # HmEnabledStatus, access=ru, allowed=[True, False] + ring_port2: {read: "show mrp", write: "mrp domain modify port secondary {value}"} # Integer32, access=ru } ``` @@ -3882,18 +3824,18 @@ get_mrp_sub_ring() -> { ``` MOPS { - sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru admin_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmAdminState} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru + vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 oper_enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmConfigOperState} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru + sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmMibGroup.hm2SrmGlobalAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortOperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r + oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmMRPDomainID} # OCTET STRING, access=ru redundancy: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRedundancyOperState} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru - ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r } ``` @@ -3902,18 +3844,18 @@ MOPS { ``` SNMP { - sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru admin_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.2} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru + vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 oper_enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.13} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru + sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.10} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r + oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.5} # OCTET STRING, access=ru redundancy: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.12} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru - ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r } ``` @@ -3926,19 +3868,19 @@ SNMP { ``` MOPS { - sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru admin_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmAdminState} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru + vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 oper_enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmConfigOperState} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru + sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmMibGroup.hm2SrmGlobalAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortOperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - srm_status: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRowStatus} # RowStatus, access=crud - sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r + oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmMRPDomainID} # OCTET STRING, access=ru redundancy: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRedundancyOperState} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru - ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r + srm_status: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRowStatus} # RowStatus, access=crud } ``` @@ -3947,19 +3889,19 @@ MOPS { ``` SNMP { - sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru admin_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.2} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru + vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 oper_enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.13} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru + sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.10} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - srm_status: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.20} # RowStatus, access=crud - sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r + oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.5} # OCTET STRING, access=ru redundancy: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.12} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru - ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r + srm_status: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.20} # RowStatus, access=crud } ``` @@ -3972,19 +3914,19 @@ SNMP { ``` MOPS { - sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru admin_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmAdminState} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru + vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 oper_enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmConfigOperState} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru + sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmMibGroup.hm2SrmGlobalAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortOperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - srm_status: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRowStatus} # RowStatus, access=crud - sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r + oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmMRPDomainID} # OCTET STRING, access=ru redundancy: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRedundancyOperState} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru - ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r + srm_status: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRowStatus} # RowStatus, access=crud } ``` @@ -3993,19 +3935,19 @@ MOPS { ``` SNMP { - sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru admin_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.2} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru + vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 oper_enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.13} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru + sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.10} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - srm_status: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.20} # RowStatus, access=crud - sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r + oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.5} # OCTET STRING, access=ru redundancy: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.12} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru - ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r + srm_status: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.20} # RowStatus, access=crud } ``` @@ -4018,19 +3960,19 @@ SNMP { ``` MOPS { - sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru admin_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmAdminState} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru + vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 oper_enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmConfigOperState} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortIfIndex} # Integer32, access=ru + sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {HM2-L2REDUNDANCY-MIB / hm2SrmMibGroup.hm2SrmGlobalAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmVlanID} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingPortOperState} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - srm_status: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRowStatus} # RowStatus, access=crud - sub_ring_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingOperState} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r + oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmMRPDomainID} # OCTET STRING, access=ru redundancy: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRedundancyOperState} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmOperState} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmSubRingName} # SnmpAdminString, access=ru - ring_id: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRingID} # Integer32, access=r + srm_status: {HM2-L2REDUNDANCY-MIB / hm2SrmEntry.hm2SrmRowStatus} # RowStatus, access=crud } ``` @@ -4039,19 +3981,19 @@ MOPS { ``` SNMP { - sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru admin_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.2} # INTEGER, access=ru, allowed=['manager', 'redundantManager', 'singleManager'] + sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru + vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 oper_enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.13} # INTEGER, access=r, allowed=['noError', 'ringPortLinkError', 'multipleSRM', 'noPartnerManager', 'concurrentVLAN', 'concurrentPort', 'concurrentRedundancy', 'trunkMember', 'sharedVLAN'] + sub_ring_port: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.9} # Integer32, access=ru + sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] enabled: {oid: 1.3.6.1.4.1.248.11.40.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vlan: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.4} # Integer32, access=ru, range=0–4042 sub_ring_port_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.10} # INTEGER, access=r, allowed=['disabled', 'blocked', 'forwarding', 'not-connected'] - srm_status: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.20} # RowStatus, access=crud - sub_ring_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.11} # INTEGER, access=r, allowed=['undefined', 'open', 'closed'] + ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r + oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] domain_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.5} # OCTET STRING, access=ru redundancy: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.12} # INTEGER, access=r, allowed=['redGuaranteed', 'redNotGuaranteed'] - oper_state: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.3} # INTEGER, access=r, allowed=['manager', 'redundantManager', 'singleManager', 'disabled'] - sub_ring_name: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.8} # SnmpAdminString, access=ru - ring_id: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.1} # Integer32, access=r + srm_status: {oid: 1.3.6.1.4.1.248.11.40.1.4.3.1.20} # RowStatus, access=crud } ``` @@ -4082,15 +4024,15 @@ get_ntp() -> { ``` MOPS { - server_oper_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r - description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru - servers: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - enabled: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - server_stratum: {HM2-TIMESYNC-MIB / hm2NtpServerConfigGroup.hm2NtpServerLocalClockStratum} # Integer32 (1..16), access=ru, range=1–16 request_interval: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientRequestInterval} # Integer32, access=ru, range=5–3600 port: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerPort} # InetPortNumber, access=ru, range=1–65535 + server_stratum: {HM2-TIMESYNC-MIB / hm2NtpServerConfigGroup.hm2NtpServerLocalClockStratum} # Integer32 (1..16), access=ru, range=1–16 + servers: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru + server_oper_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r + enabled: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] address: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru server_enabled: {HM2-TIMESYNC-MIB / hm2SntpServerGroup.hm2SntpServerAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] + description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru } ``` @@ -4099,15 +4041,15 @@ MOPS { ``` SNMP { - server_oper_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r - description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru - servers: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - enabled: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - server_stratum: {oid: 1.3.6.1.4.1.248.11.50.1.3.2.1.3, method: get} # Integer32 (1..16), access=ru, range=1–16 request_interval: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.4, method: get} # Integer32, access=ru, range=5–3600 port: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.4} # InetPortNumber, access=ru, range=1–65535 + server_stratum: {oid: 1.3.6.1.4.1.248.11.50.1.3.2.1.3, method: get} # Integer32 (1..16), access=ru, range=1–16 + servers: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru + server_oper_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r + enabled: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] address: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru server_enabled: {oid: 1.3.6.1.4.1.248.11.50.1.4.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru } ``` @@ -4116,14 +4058,14 @@ SNMP { ``` SSH { - server_oper_status: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r - description: {read: "show sntp client server"} # DisplayString, access=ru - servers: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru - enabled: {read: "show sntp global", write: "{'' if value else 'no '}sntp client operation"} # HmEnabledStatus, access=ru, allowed=[True, False] request_interval: {read: "show sntp global"} # Integer32, access=ru, range=5–3600 port: {read: "show sntp client server"} # InetPortNumber, access=ru, range=1–65535 + servers: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru + server_oper_status: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r + enabled: {read: "show sntp global", write: "{'' if value else 'no '}sntp client operation"} # HmEnabledStatus, access=ru, allowed=[True, False] address: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru server_enabled: {read: "show sntp global"} # HmEnabledStatus, access=ru, allowed=[True, False] + description: {read: "show sntp client server"} # DisplayString, access=ru } ``` @@ -4155,8 +4097,8 @@ get_ntp_stats() -> { ``` MOPS { remote: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 synchronized: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r + server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 } ``` @@ -4166,8 +4108,8 @@ MOPS { ``` SNMP { remote: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 synchronized: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r + server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 } ``` @@ -4177,8 +4119,8 @@ SNMP { ``` SSH { remote: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru - server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 synchronized: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r + server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 } ``` @@ -4191,21 +4133,21 @@ SSH { ``` MOPS { - server_oper_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r - description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru - enabled: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - servers: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - server_stratum: {HM2-TIMESYNC-MIB / hm2NtpServerConfigGroup.hm2NtpServerLocalClockStratum} # Integer32 (1..16), access=ru, range=1–16 request_interval: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientRequestInterval} # Integer32, access=ru, range=5–3600 port: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerPort} # InetPortNumber, access=ru, range=1–65535 - remote: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 + server_stratum: {HM2-TIMESYNC-MIB / hm2NtpServerConfigGroup.hm2NtpServerLocalClockStratum} # Integer32 (1..16), access=ru, range=1–16 + addr_type: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddrType} # InetAddressType, access=ru server_row_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerRowStatus} # RowStatus, access=crud + servers: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru + remote: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru + server_oper_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r + enabled: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] synchronized: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r address: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - client_status: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientStatus} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] server_enabled: {HM2-TIMESYNC-MIB / hm2SntpServerGroup.hm2SntpServerAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddrType} # InetAddressType, access=ru + client_status: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientStatus} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] + server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 + description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru } ``` @@ -4214,21 +4156,21 @@ MOPS { ``` SNMP { - server_oper_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r - description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru - enabled: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - servers: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - server_stratum: {oid: 1.3.6.1.4.1.248.11.50.1.3.2.1.3, method: get} # Integer32 (1..16), access=ru, range=1–16 request_interval: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.4, method: get} # Integer32, access=ru, range=5–3600 port: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.4} # InetPortNumber, access=ru, range=1–65535 - remote: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 + server_stratum: {oid: 1.3.6.1.4.1.248.11.50.1.3.2.1.3, method: get} # Integer32 (1..16), access=ru, range=1–16 + addr_type: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.2} # InetAddressType, access=ru server_row_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.7} # RowStatus, access=crud + servers: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru + remote: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru + server_oper_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r + enabled: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] synchronized: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r address: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - client_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.5, method: get} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] server_enabled: {oid: 1.3.6.1.4.1.248.11.50.1.4.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.2} # InetAddressType, access=ru + client_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.5, method: get} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] + server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 + description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru } ``` @@ -4237,20 +4179,20 @@ SNMP { ``` SSH { - server_oper_status: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r - description: {read: "show sntp client server"} # DisplayString, access=ru - enabled: {read: "show sntp global", write: "{'' if value else 'no '}sntp client operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - servers: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru request_interval: {read: "show sntp global"} # Integer32, access=ru, range=5–3600 port: {read: "show sntp client server"} # InetPortNumber, access=ru, range=1–65535 - remote: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru - server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 + addr_type: {read: "show sntp client server"} # InetAddressType, access=ru server_row_status: {write: "sntp client server add {index} {address}"} # RowStatus, access=crud + servers: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru + remote: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru + server_oper_status: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r + enabled: {read: "show sntp global", write: "{'' if value else 'no '}sntp client operation"} # HmEnabledStatus, access=ru, allowed=[True, False] synchronized: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r address: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru - client_status: {read: "show sntp global"} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] server_enabled: {read: "show sntp global"} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {read: "show sntp client server"} # InetAddressType, access=ru + client_status: {read: "show sntp global"} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] + server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 + description: {read: "show sntp client server"} # DisplayString, access=ru } ``` @@ -4274,10 +4216,10 @@ get_ntp_servers() -> { ``` MOPS { - description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru port: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerPort} # InetPortNumber, access=ru, range=1–65535 - server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 address: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru + server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 + description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru } ``` @@ -4286,10 +4228,10 @@ MOPS { ``` SNMP { - description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru port: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.4} # InetPortNumber, access=ru, range=1–65535 - server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 address: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru + server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 + description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru } ``` @@ -4298,10 +4240,10 @@ SNMP { ``` SSH { - description: {read: "show sntp client server"} # DisplayString, access=ru port: {read: "show sntp client server"} # InetPortNumber, access=ru, range=1–65535 - server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 address: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru + server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 + description: {read: "show sntp client server"} # DisplayString, access=ru } ``` @@ -4322,8 +4264,8 @@ create_ntp_server() -> { ``` MOPS { - addr_type: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddrType} # InetAddressType, access=ru address: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru + addr_type: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddrType} # InetAddressType, access=ru } ``` @@ -4332,8 +4274,8 @@ MOPS { ``` SNMP { - addr_type: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.2} # InetAddressType, access=ru address: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru + addr_type: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.2} # InetAddressType, access=ru } ``` @@ -4342,8 +4284,8 @@ SNMP { ``` SSH { - addr_type: {read: "show sntp client server"} # InetAddressType, access=ru address: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru + addr_type: {read: "show sntp client server"} # InetAddressType, access=ru } ``` @@ -4356,21 +4298,21 @@ SSH { ``` MOPS { - server_oper_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r - description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru - enabled: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - servers: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - server_stratum: {HM2-TIMESYNC-MIB / hm2NtpServerConfigGroup.hm2NtpServerLocalClockStratum} # Integer32 (1..16), access=ru, range=1–16 request_interval: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientRequestInterval} # Integer32, access=ru, range=5–3600 port: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerPort} # InetPortNumber, access=ru, range=1–65535 - remote: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 + server_stratum: {HM2-TIMESYNC-MIB / hm2NtpServerConfigGroup.hm2NtpServerLocalClockStratum} # Integer32 (1..16), access=ru, range=1–16 + addr_type: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddrType} # InetAddressType, access=ru server_row_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerRowStatus} # RowStatus, access=crud + servers: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru + remote: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru + server_oper_status: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r + enabled: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] synchronized: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerStatus} # HmSntpClientServerStatus, access=r address: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddr} # InetAddress, access=ru - client_status: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientStatus} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] server_enabled: {HM2-TIMESYNC-MIB / hm2SntpServerGroup.hm2SntpServerAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerAddrType} # InetAddressType, access=ru + client_status: {HM2-TIMESYNC-MIB / hm2SntpClientGroup.hm2SntpClientStatus} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] + server_index: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerIndex} # Integer32, access=r, range=1–4 + description: {HM2-TIMESYNC-MIB / hm2SntpClientServerAddrEntry.hm2SntpClientServerDescr} # DisplayString, access=ru } ``` @@ -4379,21 +4321,21 @@ MOPS { ``` SNMP { - server_oper_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r - description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru - enabled: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - servers: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - server_stratum: {oid: 1.3.6.1.4.1.248.11.50.1.3.2.1.3, method: get} # Integer32 (1..16), access=ru, range=1–16 request_interval: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.4, method: get} # Integer32, access=ru, range=5–3600 port: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.4} # InetPortNumber, access=ru, range=1–65535 - remote: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 + server_stratum: {oid: 1.3.6.1.4.1.248.11.50.1.3.2.1.3, method: get} # Integer32 (1..16), access=ru, range=1–16 + addr_type: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.2} # InetAddressType, access=ru server_row_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.7} # RowStatus, access=crud + servers: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru + remote: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru + server_oper_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r + enabled: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] synchronized: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.6} # HmSntpClientServerStatus, access=r address: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.3} # InetAddress, access=ru - client_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.5, method: get} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] server_enabled: {oid: 1.3.6.1.4.1.248.11.50.1.4.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.2} # InetAddressType, access=ru + client_status: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.5, method: get} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] + server_index: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.1} # Integer32, access=r, range=1–4 + description: {oid: 1.3.6.1.4.1.248.11.50.1.2.3.10.1.5} # DisplayString, access=ru } ``` @@ -4402,20 +4344,20 @@ SNMP { ``` SSH { - server_oper_status: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r - description: {read: "show sntp client server"} # DisplayString, access=ru - enabled: {read: "show sntp global", write: "{'' if value else 'no '}sntp client operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - servers: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru request_interval: {read: "show sntp global"} # Integer32, access=ru, range=5–3600 port: {read: "show sntp client server"} # InetPortNumber, access=ru, range=1–65535 - remote: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru - server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 + addr_type: {read: "show sntp client server"} # InetAddressType, access=ru server_row_status: {write: "sntp client server add {index} {address}"} # RowStatus, access=crud + servers: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru + remote: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru + server_oper_status: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r + enabled: {read: "show sntp global", write: "{'' if value else 'no '}sntp client operation"} # HmEnabledStatus, access=ru, allowed=[True, False] synchronized: {read: "show sntp client server"} # HmSntpClientServerStatus, access=r address: {read: "show sntp client server", write: "sntp client server add {index} {address}"} # InetAddress, access=ru - client_status: {read: "show sntp global"} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] server_enabled: {read: "show sntp global"} # HmEnabledStatus, access=ru, allowed=[True, False] - addr_type: {read: "show sntp client server"} # InetAddressType, access=ru + client_status: {read: "show sntp global"} # INTEGER, access=r, allowed=['disabled', 'notSynchronized', 'synchronizedToRemoteServer'] + server_index: {read: "show sntp client server"} # Integer32, access=r, range=1–4 + description: {read: "show sntp client server"} # DisplayString, access=ru } ``` @@ -4444,10 +4386,10 @@ get_optics() -> { ``` MOPS { - temperature: {HM2-DEVMGMT-MIB / hm2SfpDiagEntry.hm2SfpCurrentTemperature} # Integer32, access=r - tx_power: {HM2-DEVMGMT-MIB / hm2SfpDiagEntry.hm2SfpCurrentTxPower} # Integer32, access=r name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r + tx_power: {HM2-DEVMGMT-MIB / hm2SfpDiagEntry.hm2SfpCurrentTxPower} # Integer32, access=r rx_power: {HM2-DEVMGMT-MIB / hm2SfpDiagEntry.hm2SfpCurrentRxPower} # Integer32, access=r + temperature: {HM2-DEVMGMT-MIB / hm2SfpDiagEntry.hm2SfpCurrentTemperature} # Integer32, access=r } ``` @@ -4456,10 +4398,10 @@ MOPS { ``` SNMP { - temperature: {oid: 1.3.6.1.4.1.248.11.10.1.7.2.1.2} # Integer32, access=r - tx_power: {oid: 1.3.6.1.4.1.248.11.10.1.7.2.1.3} # Integer32, access=r name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r + tx_power: {oid: 1.3.6.1.4.1.248.11.10.1.7.2.1.3} # Integer32, access=r rx_power: {oid: 1.3.6.1.4.1.248.11.10.1.7.2.1.4} # Integer32, access=r + temperature: {oid: 1.3.6.1.4.1.248.11.10.1.7.2.1.2} # Integer32, access=r } ``` @@ -4497,8 +4439,8 @@ get_poe() -> { ``` MOPS { - power_limit: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortPowerLimit} # Integer32 (0..30000), access=ru, range=0–30000 status: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortDetectionStatus} # INTEGER, access=r, allowed=['disabled', 'searching', 'deliveringPower', 'fault', 'test', 'otherFault'] + power_limit: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortPowerLimit} # Integer32 (0..30000), access=ru, range=0–30000 enabled: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortAdminEnable} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -4508,8 +4450,8 @@ MOPS { ``` SNMP { - power_limit: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.14} # Integer32 (0..30000), access=ru, range=0–30000 status: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.3} # INTEGER, access=r, allowed=['disabled', 'searching', 'deliveringPower', 'fault', 'test', 'otherFault'] + power_limit: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.14} # Integer32 (0..30000), access=ru, range=0–30000 enabled: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -4519,8 +4461,8 @@ SNMP { ``` SSH { - power_limit: {read: "show inlinepower port", write: "inlinepower power-limit {value}"} # Integer32 (0..30000), access=ru, range=0–30000 status: {read: "show inlinepower port"} # INTEGER, access=r, allowed=['disabled', 'searching', 'deliveringPower', 'fault', 'test', 'otherFault'] + power_limit: {read: "show inlinepower port", write: "inlinepower power-limit {value}"} # Integer32 (0..30000), access=ru, range=0–30000 enabled: {read: "show inlinepower port", write: "inlinepower operation"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -4534,8 +4476,8 @@ SSH { ``` MOPS { - power_limit: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortPowerLimit} # Integer32 (0..30000), access=ru, range=0–30000 status: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortDetectionStatus} # INTEGER, access=r, allowed=['disabled', 'searching', 'deliveringPower', 'fault', 'test', 'otherFault'] + power_limit: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortPowerLimit} # Integer32 (0..30000), access=ru, range=0–30000 enabled: {HM2-POE-MIB / hm2PoeMgmtPortEntry.hm2PoeMgmtPortAdminEnable} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -4545,8 +4487,8 @@ MOPS { ``` SNMP { - power_limit: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.14} # Integer32 (0..30000), access=ru, range=0–30000 status: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.3} # INTEGER, access=r, allowed=['disabled', 'searching', 'deliveringPower', 'fault', 'test', 'otherFault'] + power_limit: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.14} # Integer32 (0..30000), access=ru, range=0–30000 enabled: {oid: 1.3.6.1.4.1.248.11.12.1.1.3.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -4556,8 +4498,8 @@ SNMP { ``` SSH { - power_limit: {read: "show inlinepower port", write: "inlinepower power-limit {value}"} # Integer32 (0..30000), access=ru, range=0–30000 status: {read: "show inlinepower port"} # INTEGER, access=r, allowed=['disabled', 'searching', 'deliveringPower', 'fault', 'test', 'otherFault'] + power_limit: {read: "show inlinepower port", write: "inlinepower power-limit {value}"} # Integer32 (0..30000), access=ru, range=0–30000 enabled: {read: "show inlinepower port", write: "inlinepower operation"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -4589,15 +4531,15 @@ get_port_security() -> { ``` MOPS { dynamic_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicLimit} # Unsigned32, access=ru, range=0–600 + violation_trap_mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapMode} # HmEnabledStatus, access=ru, allowed=[True, False] global_enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentGlobalPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r + auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] + dynamic_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicCount} # Unsigned32, access=r auto_disable_enabled: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] - violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 static_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticLimit} # Unsigned32, access=ru, range=0–64 - dynamic_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicCount} # Unsigned32, access=r - auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] - violation_trap_mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapMode} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 + static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r last_discarded_mac: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityLastDiscardedMAC} # DisplayString, access=r mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentPortSecurityOperationMode} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] } @@ -4609,15 +4551,15 @@ MOPS { ``` SNMP { dynamic_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.2} # Unsigned32, access=ru, range=0–600 + violation_trap_mode: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] global_enabled: {oid: 1.3.6.1.4.1.248.12.20.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r + auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] + dynamic_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.20} # Unsigned32, access=r auto_disable_enabled: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 static_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.3} # Unsigned32, access=ru, range=0–64 - dynamic_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.20} # Unsigned32, access=r - auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] - violation_trap_mode: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 + static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r last_discarded_mac: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.7} # DisplayString, access=r mode: {oid: 1.3.6.1.4.1.248.12.20.1.12, method: get} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] } @@ -4629,14 +4571,14 @@ SNMP { ``` SSH { dynamic_limit: {read: "show port-security interface", write: "port-security dynamic-limit {value}"} # Unsigned32, access=ru, range=0–600 + violation_trap_mode: {read: "show port-security interface {index}", write: "port-security violation-traps operation"} # HmEnabledStatus, access=ru, allowed=[True, False] global_enabled: {read: "show port-security global", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {read: "show port-security interface", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r - violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 - static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 - dynamic_count: {read: "show port-security interface {index}"} # Unsigned32, access=r auto_disable: {read: "show port-security interface {index}"} # TruthValue, access=ru, allowed=[True, False] - violation_trap_mode: {read: "show port-security interface {index}", write: "port-security violation-traps operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + dynamic_count: {read: "show port-security interface {index}"} # Unsigned32, access=r + static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 + violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 + static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r last_discarded_mac: {read: "show port-security interface {index}"} # DisplayString, access=r mode: {write: "port-security mode {value}"} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] } @@ -4651,25 +4593,25 @@ SSH { ``` MOPS { - mac_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressAdd} # DisplayString, access=ru + static_ip_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIpCount} # Unsigned32, access=r + static_macs: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticMACs} # DisplayString, access=r, range=0–1536 + enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] + auto_disable_enabled: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 mac_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressRemove} # DisplayString, access=ru - ip_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressRemove} # DisplayString, access=ru ip_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressAdd} # DisplayString, access=ru - global_enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentGlobalPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r dynamic_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicCount} # Unsigned32, access=r - auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityLastDiscardedMAC} # DisplayString, access=r static_ips: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIPs} # DisplayString, access=r, range=0–1536 - auto_disable_enabled: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] - static_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticLimit} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapMode} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicLimit} # Unsigned32, access=ru, range=0–600 - static_ip_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIpCount} # Unsigned32, access=r - static_macs: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticMACs} # DisplayString, access=r, range=0–1536 - violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 + global_enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentGlobalPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressAdd} # DisplayString, access=ru + static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentPortSecurityOperationMode} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicLimit} # Unsigned32, access=ru, range=0–600 + ip_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressRemove} # DisplayString, access=ru + static_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticLimit} # Unsigned32, access=ru, range=0–64 } ``` @@ -4678,25 +4620,25 @@ MOPS { ``` SNMP { - mac_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.8} # DisplayString, access=ru + static_ip_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.249} # Unsigned32, access=r + static_macs: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.6} # DisplayString, access=r, range=0–1536 + enabled: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] + auto_disable_enabled: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 mac_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.9} # DisplayString, access=ru - ip_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.252} # DisplayString, access=ru ip_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.251} # DisplayString, access=ru - global_enabled: {oid: 1.3.6.1.4.1.248.12.20.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r dynamic_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.20} # Unsigned32, access=r - auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.7} # DisplayString, access=r static_ips: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.250} # DisplayString, access=r, range=0–1536 - auto_disable_enabled: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - static_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.3} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.2} # Unsigned32, access=ru, range=0–600 - static_ip_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.249} # Unsigned32, access=r - static_macs: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.6} # DisplayString, access=r, range=0–1536 - violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 + global_enabled: {oid: 1.3.6.1.4.1.248.12.20.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.8} # DisplayString, access=ru + static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r mode: {oid: 1.3.6.1.4.1.248.12.20.1.12, method: get} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.2} # Unsigned32, access=ru, range=0–600 + ip_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.252} # DisplayString, access=ru + static_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.3} # Unsigned32, access=ru, range=0–64 } ``` @@ -4705,21 +4647,21 @@ SNMP { ``` SSH { - mac_add: {write: "port-security mac-address add {mac} {vlan}"} # DisplayString, access=ru + enabled: {read: "show port-security interface", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {read: "show port-security interface {index}"} # TruthValue, access=ru, allowed=[True, False] + violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 mac_remove: {write: "port-security mac-address delete {mac} {vlan}"} # DisplayString, access=ru - ip_remove: {write: "port-security ip-address delete {ip} {vlan}"} # DisplayString, access=ru ip_add: {write: "port-security ip-address add {ip} {vlan}"} # DisplayString, access=ru - global_enabled: {read: "show port-security global", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {read: "show port-security interface", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r dynamic_count: {read: "show port-security interface {index}"} # Unsigned32, access=r - auto_disable: {read: "show port-security interface {index}"} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {read: "show port-security interface {index}"} # DisplayString, access=r - static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {read: "show port-security interface {index}", write: "port-security violation-traps operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {read: "show port-security interface", write: "port-security dynamic-limit {value}"} # Unsigned32, access=ru, range=0–600 - violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 + global_enabled: {read: "show port-security global", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {write: "port-security mac-address add {mac} {vlan}"} # DisplayString, access=ru + static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r mode: {write: "port-security mode {value}"} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {read: "show port-security interface", write: "port-security dynamic-limit {value}"} # Unsigned32, access=ru, range=0–600 + ip_remove: {write: "port-security ip-address delete {ip} {vlan}"} # DisplayString, access=ru + static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 } ``` @@ -4732,25 +4674,25 @@ SSH { ``` MOPS { - mac_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressAdd} # DisplayString, access=ru + static_ip_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIpCount} # Unsigned32, access=r + static_macs: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticMACs} # DisplayString, access=r, range=0–1536 + enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] + auto_disable_enabled: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 mac_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressRemove} # DisplayString, access=ru - ip_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressRemove} # DisplayString, access=ru ip_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressAdd} # DisplayString, access=ru - global_enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentGlobalPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r dynamic_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicCount} # Unsigned32, access=r - auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityLastDiscardedMAC} # DisplayString, access=r static_ips: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIPs} # DisplayString, access=r, range=0–1536 - auto_disable_enabled: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] - static_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticLimit} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapMode} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicLimit} # Unsigned32, access=ru, range=0–600 - static_ip_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIpCount} # Unsigned32, access=r - static_macs: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticMACs} # DisplayString, access=r, range=0–1536 - violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 + global_enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentGlobalPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressAdd} # DisplayString, access=ru + static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentPortSecurityOperationMode} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicLimit} # Unsigned32, access=ru, range=0–600 + ip_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressRemove} # DisplayString, access=ru + static_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticLimit} # Unsigned32, access=ru, range=0–64 } ``` @@ -4759,25 +4701,25 @@ MOPS { ``` SNMP { - mac_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.8} # DisplayString, access=ru + static_ip_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.249} # Unsigned32, access=r + static_macs: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.6} # DisplayString, access=r, range=0–1536 + enabled: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] + auto_disable_enabled: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 mac_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.9} # DisplayString, access=ru - ip_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.252} # DisplayString, access=ru ip_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.251} # DisplayString, access=ru - global_enabled: {oid: 1.3.6.1.4.1.248.12.20.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r dynamic_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.20} # Unsigned32, access=r - auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.7} # DisplayString, access=r static_ips: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.250} # DisplayString, access=r, range=0–1536 - auto_disable_enabled: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - static_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.3} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.2} # Unsigned32, access=ru, range=0–600 - static_ip_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.249} # Unsigned32, access=r - static_macs: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.6} # DisplayString, access=r, range=0–1536 - violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 + global_enabled: {oid: 1.3.6.1.4.1.248.12.20.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.8} # DisplayString, access=ru + static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r mode: {oid: 1.3.6.1.4.1.248.12.20.1.12, method: get} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.2} # Unsigned32, access=ru, range=0–600 + ip_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.252} # DisplayString, access=ru + static_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.3} # Unsigned32, access=ru, range=0–64 } ``` @@ -4786,21 +4728,21 @@ SNMP { ``` SSH { - mac_add: {write: "port-security mac-address add {mac} {vlan}"} # DisplayString, access=ru + enabled: {read: "show port-security interface", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {read: "show port-security interface {index}"} # TruthValue, access=ru, allowed=[True, False] + violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 mac_remove: {write: "port-security mac-address delete {mac} {vlan}"} # DisplayString, access=ru - ip_remove: {write: "port-security ip-address delete {ip} {vlan}"} # DisplayString, access=ru ip_add: {write: "port-security ip-address add {ip} {vlan}"} # DisplayString, access=ru - global_enabled: {read: "show port-security global", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {read: "show port-security interface", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r dynamic_count: {read: "show port-security interface {index}"} # Unsigned32, access=r - auto_disable: {read: "show port-security interface {index}"} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {read: "show port-security interface {index}"} # DisplayString, access=r - static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {read: "show port-security interface {index}", write: "port-security violation-traps operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {read: "show port-security interface", write: "port-security dynamic-limit {value}"} # Unsigned32, access=ru, range=0–600 - violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 + global_enabled: {read: "show port-security global", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {write: "port-security mac-address add {mac} {vlan}"} # DisplayString, access=ru + static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r mode: {write: "port-security mode {value}"} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {read: "show port-security interface", write: "port-security dynamic-limit {value}"} # Unsigned32, access=ru, range=0–600 + ip_remove: {write: "port-security ip-address delete {ip} {vlan}"} # DisplayString, access=ru + static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 } ``` @@ -4813,25 +4755,25 @@ SSH { ``` MOPS { - mac_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressAdd} # DisplayString, access=ru + static_ip_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIpCount} # Unsigned32, access=r + static_macs: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticMACs} # DisplayString, access=r, range=0–1536 + enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] + auto_disable_enabled: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 mac_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressRemove} # DisplayString, access=ru - ip_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressRemove} # DisplayString, access=ru ip_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressAdd} # DisplayString, access=ru - global_enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentGlobalPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r dynamic_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicCount} # Unsigned32, access=r - auto_disable: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityAutoDisable} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityLastDiscardedMAC} # DisplayString, access=r static_ips: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIPs} # DisplayString, access=r, range=0–1536 - auto_disable_enabled: {HM2-DEVMGMT-MIB / hm2AutoDisableReasonEntry.hm2AutoDisableReasonOperation} # HmEnabledStatus, access=ru, allowed=[True, False] - static_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticLimit} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapMode} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicLimit} # Unsigned32, access=ru, range=0–600 - static_ip_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticIpCount} # Unsigned32, access=r - static_macs: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticMACs} # DisplayString, access=r, range=0–1536 - violation_trap_frequency: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityViolationTrapFrequency} # Unsigned32, access=ru, range=0–3600 + global_enabled: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentGlobalPortSecurityMode} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityMACAddressAdd} # DisplayString, access=ru + static_count: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticCount} # Unsigned32, access=r mode: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityGroup.hm2AgentPortSecurityOperationMode} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityDynamicLimit} # Unsigned32, access=ru, range=0–600 + ip_remove: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityIPAddressRemove} # DisplayString, access=ru + static_limit: {HM2-PLATFORM-PORTSECURITY-MIB / hm2AgentPortSecurityEntry.hm2AgentPortSecurityStaticLimit} # Unsigned32, access=ru, range=0–64 } ``` @@ -4840,25 +4782,25 @@ MOPS { ``` SNMP { - mac_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.8} # DisplayString, access=ru + static_ip_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.249} # Unsigned32, access=r + static_macs: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.6} # DisplayString, access=r, range=0–1536 + enabled: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] + auto_disable_enabled: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] + violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 mac_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.9} # DisplayString, access=ru - ip_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.252} # DisplayString, access=ru ip_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.251} # DisplayString, access=ru - global_enabled: {oid: 1.3.6.1.4.1.248.12.20.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r dynamic_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.20} # Unsigned32, access=r - auto_disable: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.248} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.7} # DisplayString, access=r static_ips: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.250} # DisplayString, access=r, range=0–1536 - auto_disable_enabled: {oid: 1.3.6.1.4.1.248.11.10.1.9.2.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - static_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.3} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.2} # Unsigned32, access=ru, range=0–600 - static_ip_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.249} # Unsigned32, access=r - static_macs: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.6} # DisplayString, access=r, range=0–1536 - violation_trap_frequency: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.23} # Unsigned32, access=ru, range=0–3600 + global_enabled: {oid: 1.3.6.1.4.1.248.12.20.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.8} # DisplayString, access=ru + static_count: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.21} # Unsigned32, access=r mode: {oid: 1.3.6.1.4.1.248.12.20.1.12, method: get} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.2} # Unsigned32, access=ru, range=0–600 + ip_remove: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.252} # DisplayString, access=ru + static_limit: {oid: 1.3.6.1.4.1.248.12.20.1.2.1.3} # Unsigned32, access=ru, range=0–64 } ``` @@ -4867,21 +4809,21 @@ SNMP { ``` SSH { - mac_add: {write: "port-security mac-address add {mac} {vlan}"} # DisplayString, access=ru + enabled: {read: "show port-security interface", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable: {read: "show port-security interface {index}"} # TruthValue, access=ru, allowed=[True, False] + violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 mac_remove: {write: "port-security mac-address delete {mac} {vlan}"} # DisplayString, access=ru - ip_remove: {write: "port-security ip-address delete {ip} {vlan}"} # DisplayString, access=ru ip_add: {write: "port-security ip-address add {ip} {vlan}"} # DisplayString, access=ru - global_enabled: {read: "show port-security global", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - enabled: {read: "show port-security interface", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r dynamic_count: {read: "show port-security interface {index}"} # Unsigned32, access=r - auto_disable: {read: "show port-security interface {index}"} # TruthValue, access=ru, allowed=[True, False] last_discarded_mac: {read: "show port-security interface {index}"} # DisplayString, access=r - static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 violation_trap_mode: {read: "show port-security interface {index}", write: "port-security violation-traps operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - dynamic_limit: {read: "show port-security interface", write: "port-security dynamic-limit {value}"} # Unsigned32, access=ru, range=0–600 - violation_trap_frequency: {read: "show port-security interface {index}", write: "port-security violation-traps operation frequency {value}"} # Unsigned32, access=ru, range=0–3600 + global_enabled: {read: "show port-security global", write: "{'' if value else 'no '}port-security operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + mac_add: {write: "port-security mac-address add {mac} {vlan}"} # DisplayString, access=ru + static_count: {read: "show port-security interface {index}"} # Unsigned32, access=r mode: {write: "port-security mode {value}"} # INTEGER, access=ru, allowed=['macAddressBased', 'ipAddressBased'] + dynamic_limit: {read: "show port-security interface", write: "port-security dynamic-limit {value}"} # Unsigned32, access=ru, range=0–600 + ip_remove: {write: "port-security ip-address delete {ip} {vlan}"} # DisplayString, access=ru + static_limit: {read: "show port-security interface", write: "port-security max-static {value}"} # Unsigned32, access=ru, range=0–64 } ``` @@ -4915,14 +4857,14 @@ get_profiles() -> { ``` MOPS { - fingerprint: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprint} # DisplayString (SIZE(40)), access=r - active: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileActive} # INTEGER, access=ru, allowed=['active', 'inactive'] encrypted: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionActive} # TruthValue, access=r, allowed=[True, False] - encryption_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionVerified} # TruthValue, access=r, allowed=[True, False] index: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileIndex} # Integer32 (1..100), access=r, range=1–100 fingerprint_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprintVerified} # TruthValue, access=r, allowed=[True, False] - datetime: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileDateTime} # HmTimeSeconds1970, access=r + active: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileActive} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionVerified} # TruthValue, access=r, allowed=[True, False] + fingerprint: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprint} # DisplayString (SIZE(40)), access=r name: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileName} # DisplayString (SIZE(0..32)), access=r, range=0–32 + datetime: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileDateTime} # HmTimeSeconds1970, access=r } ``` @@ -4931,14 +4873,14 @@ MOPS { ``` SNMP { - fingerprint: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.13} # DisplayString (SIZE(40)), access=r - active: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.5} # INTEGER, access=ru, allowed=['active', 'inactive'] encrypted: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.8} # TruthValue, access=r, allowed=[True, False] - encryption_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.9} # TruthValue, access=r, allowed=[True, False] index: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.2} # Integer32 (1..100), access=r, range=1–100 fingerprint_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.14} # TruthValue, access=r, allowed=[True, False] - datetime: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.4} # HmTimeSeconds1970, access=r + active: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.5} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.9} # TruthValue, access=r, allowed=[True, False] + fingerprint: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.13} # DisplayString (SIZE(40)), access=r name: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.3} # DisplayString (SIZE(0..32)), access=r, range=0–32 + datetime: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.4} # HmTimeSeconds1970, access=r } ``` @@ -4947,14 +4889,14 @@ SNMP { ``` SSH { - fingerprint: {read: "show config profiles nvm"} # DisplayString (SIZE(40)), access=r - active: {read: "show config profiles nvm", write: "config profile select nvm {_row_index}"} # INTEGER, access=ru, allowed=['active', 'inactive'] encrypted: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] - encryption_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] index: {read: "show config profiles nvm"} # Integer32 (1..100), access=r, range=1–100 fingerprint_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] - datetime: {read: "show config profiles nvm"} # HmTimeSeconds1970, access=r + active: {read: "show config profiles nvm", write: "config profile select nvm {_row_index}"} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] + fingerprint: {read: "show config profiles nvm"} # DisplayString (SIZE(40)), access=r name: {read: "show config profiles nvm"} # DisplayString (SIZE(0..32)), access=r, range=0–32 + datetime: {read: "show config profiles nvm"} # HmTimeSeconds1970, access=r } ``` @@ -4967,19 +4909,19 @@ SSH { ``` MOPS { - storage_type: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileStorageType} # INTEGER, access=r, allowed=['nvm', 'envm'] - fingerprint: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprint} # DisplayString (SIZE(40)), access=r - sw_bugfix: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwBugfixRelNum} # Integer32, access=r - active: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileActive} # INTEGER, access=ru, allowed=['active', 'inactive'] - sw_minor: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMinorRelNum} # Integer32, access=r - encrypted: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionActive} # TruthValue, access=r, allowed=[True, False] - sw_major: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMajorRelNum} # Integer32, access=r index: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileIndex} # Integer32 (1..100), access=r, range=1–100 - encryption_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionVerified} # TruthValue, access=r, allowed=[True, False] + sw_major: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMajorRelNum} # Integer32, access=r + encrypted: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionActive} # TruthValue, access=r, allowed=[True, False] fingerprint_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprintVerified} # TruthValue, access=r, allowed=[True, False] + active: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileActive} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionVerified} # TruthValue, access=r, allowed=[True, False] + sw_minor: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMinorRelNum} # Integer32, access=r + fingerprint: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprint} # DisplayString (SIZE(40)), access=r + name: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileName} # DisplayString (SIZE(0..32)), access=r, range=0–32 + storage_type: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileStorageType} # INTEGER, access=r, allowed=['nvm', 'envm'] profile_action: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileAction} # INTEGER, access=ru datetime: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileDateTime} # HmTimeSeconds1970, access=r - name: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileName} # DisplayString (SIZE(0..32)), access=r, range=0–32 + sw_bugfix: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwBugfixRelNum} # Integer32, access=r } ``` @@ -4988,19 +4930,19 @@ MOPS { ``` SNMP { - storage_type: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.1} # INTEGER, access=r, allowed=['nvm', 'envm'] - fingerprint: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.13} # DisplayString (SIZE(40)), access=r - sw_bugfix: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.12} # Integer32, access=r - active: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.5} # INTEGER, access=ru, allowed=['active', 'inactive'] - sw_minor: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.11} # Integer32, access=r - encrypted: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.8} # TruthValue, access=r, allowed=[True, False] - sw_major: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.10} # Integer32, access=r index: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.2} # Integer32 (1..100), access=r, range=1–100 - encryption_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.9} # TruthValue, access=r, allowed=[True, False] + sw_major: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.10} # Integer32, access=r + encrypted: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.8} # TruthValue, access=r, allowed=[True, False] fingerprint_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.14} # TruthValue, access=r, allowed=[True, False] + active: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.5} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.9} # TruthValue, access=r, allowed=[True, False] + sw_minor: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.11} # Integer32, access=r + fingerprint: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.13} # DisplayString (SIZE(40)), access=r + name: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.3} # DisplayString (SIZE(0..32)), access=r, range=0–32 + storage_type: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.1} # INTEGER, access=r, allowed=['nvm', 'envm'] profile_action: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.6} # INTEGER, access=ru datetime: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.4} # HmTimeSeconds1970, access=r - name: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.3} # DisplayString (SIZE(0..32)), access=r, range=0–32 + sw_bugfix: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.12} # Integer32, access=r } ``` @@ -5009,18 +4951,18 @@ SNMP { ``` SSH { - fingerprint: {read: "show config profiles nvm"} # DisplayString (SIZE(40)), access=r - sw_bugfix: {read: "show config profiles nvm"} # Integer32, access=r - active: {read: "show config profiles nvm", write: "config profile select nvm {_row_index}"} # INTEGER, access=ru, allowed=['active', 'inactive'] - sw_minor: {read: "show config profiles nvm"} # Integer32, access=r - encrypted: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] - sw_major: {read: "show config profiles nvm"} # Integer32, access=r index: {read: "show config profiles nvm"} # Integer32 (1..100), access=r, range=1–100 - encryption_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] + sw_major: {read: "show config profiles nvm"} # Integer32, access=r + encrypted: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] fingerprint_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] + active: {read: "show config profiles nvm", write: "config profile select nvm {_row_index}"} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] + sw_minor: {read: "show config profiles nvm"} # Integer32, access=r + fingerprint: {read: "show config profiles nvm"} # DisplayString (SIZE(40)), access=r + name: {read: "show config profiles nvm"} # DisplayString (SIZE(0..32)), access=r, range=0–32 profile_action: {write: "config profile delete nvm num {_row_index}"} # INTEGER, access=ru datetime: {read: "show config profiles nvm"} # HmTimeSeconds1970, access=r - name: {read: "show config profiles nvm"} # DisplayString (SIZE(0..32)), access=r, range=0–32 + sw_bugfix: {read: "show config profiles nvm"} # Integer32, access=r } ``` @@ -5033,19 +4975,19 @@ SSH { ``` MOPS { - storage_type: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileStorageType} # INTEGER, access=r, allowed=['nvm', 'envm'] - fingerprint: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprint} # DisplayString (SIZE(40)), access=r - sw_bugfix: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwBugfixRelNum} # Integer32, access=r - active: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileActive} # INTEGER, access=ru, allowed=['active', 'inactive'] - sw_minor: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMinorRelNum} # Integer32, access=r - encrypted: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionActive} # TruthValue, access=r, allowed=[True, False] - sw_major: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMajorRelNum} # Integer32, access=r index: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileIndex} # Integer32 (1..100), access=r, range=1–100 - encryption_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionVerified} # TruthValue, access=r, allowed=[True, False] + sw_major: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMajorRelNum} # Integer32, access=r + encrypted: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionActive} # TruthValue, access=r, allowed=[True, False] fingerprint_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprintVerified} # TruthValue, access=r, allowed=[True, False] + active: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileActive} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileEncryptionVerified} # TruthValue, access=r, allowed=[True, False] + sw_minor: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwMinorRelNum} # Integer32, access=r + fingerprint: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileFingerprint} # DisplayString (SIZE(40)), access=r + name: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileName} # DisplayString (SIZE(0..32)), access=r, range=0–32 + storage_type: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileStorageType} # INTEGER, access=r, allowed=['nvm', 'envm'] profile_action: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileAction} # INTEGER, access=ru datetime: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileDateTime} # HmTimeSeconds1970, access=r - name: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileName} # DisplayString (SIZE(0..32)), access=r, range=0–32 + sw_bugfix: {HM2-FILEMGMT-MIB / hm2FMProfileEntry.hm2FMProfileSwBugfixRelNum} # Integer32, access=r } ``` @@ -5054,19 +4996,19 @@ MOPS { ``` SNMP { - storage_type: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.1} # INTEGER, access=r, allowed=['nvm', 'envm'] - fingerprint: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.13} # DisplayString (SIZE(40)), access=r - sw_bugfix: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.12} # Integer32, access=r - active: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.5} # INTEGER, access=ru, allowed=['active', 'inactive'] - sw_minor: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.11} # Integer32, access=r - encrypted: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.8} # TruthValue, access=r, allowed=[True, False] - sw_major: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.10} # Integer32, access=r index: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.2} # Integer32 (1..100), access=r, range=1–100 - encryption_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.9} # TruthValue, access=r, allowed=[True, False] + sw_major: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.10} # Integer32, access=r + encrypted: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.8} # TruthValue, access=r, allowed=[True, False] fingerprint_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.14} # TruthValue, access=r, allowed=[True, False] + active: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.5} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.9} # TruthValue, access=r, allowed=[True, False] + sw_minor: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.11} # Integer32, access=r + fingerprint: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.13} # DisplayString (SIZE(40)), access=r + name: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.3} # DisplayString (SIZE(0..32)), access=r, range=0–32 + storage_type: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.1} # INTEGER, access=r, allowed=['nvm', 'envm'] profile_action: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.6} # INTEGER, access=ru datetime: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.4} # HmTimeSeconds1970, access=r - name: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.3} # DisplayString (SIZE(0..32)), access=r, range=0–32 + sw_bugfix: {oid: 1.3.6.1.4.1.248.11.21.1.1.1.1.12} # Integer32, access=r } ``` @@ -5075,18 +5017,18 @@ SNMP { ``` SSH { - fingerprint: {read: "show config profiles nvm"} # DisplayString (SIZE(40)), access=r - sw_bugfix: {read: "show config profiles nvm"} # Integer32, access=r - active: {read: "show config profiles nvm", write: "config profile select nvm {_row_index}"} # INTEGER, access=ru, allowed=['active', 'inactive'] - sw_minor: {read: "show config profiles nvm"} # Integer32, access=r - encrypted: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] - sw_major: {read: "show config profiles nvm"} # Integer32, access=r index: {read: "show config profiles nvm"} # Integer32 (1..100), access=r, range=1–100 - encryption_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] + sw_major: {read: "show config profiles nvm"} # Integer32, access=r + encrypted: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] fingerprint_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] + active: {read: "show config profiles nvm", write: "config profile select nvm {_row_index}"} # INTEGER, access=ru, allowed=['active', 'inactive'] + encryption_verified: {read: "show config profiles nvm"} # TruthValue, access=r, allowed=[True, False] + sw_minor: {read: "show config profiles nvm"} # Integer32, access=r + fingerprint: {read: "show config profiles nvm"} # DisplayString (SIZE(40)), access=r + name: {read: "show config profiles nvm"} # DisplayString (SIZE(0..32)), access=r, range=0–32 profile_action: {write: "config profile delete nvm num {_row_index}"} # INTEGER, access=ru datetime: {read: "show config profiles nvm"} # HmTimeSeconds1970, access=r - name: {read: "show config profiles nvm"} # DisplayString (SIZE(0..32)), access=r, range=0–32 + sw_bugfix: {read: "show config profiles nvm"} # Integer32, access=r } ``` @@ -5116,10 +5058,10 @@ get_storm_control() -> { ``` MOPS { - multicast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastThreshold} # Unsigned32, access=ru, range=0–14880000 - broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastThreshold} # Unsigned32, access=ru, range=0–14880000 } ``` @@ -5128,10 +5070,10 @@ MOPS { ``` SNMP { - multicast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.8} # Unsigned32, access=ru, range=0–14880000 - broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.8} # Unsigned32, access=ru, range=0–14880000 } ``` @@ -5140,10 +5082,10 @@ SNMP { ``` SSH { - multicast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 - broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] broadcast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 } ``` @@ -5156,15 +5098,15 @@ SSH { ``` MOPS { - broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveState} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveTransmitInterval} # Integer32, access=ru, range=1–10 auto_disable_reset: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfReset} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfTimer} # Unsigned32, access=ru - broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastThreshold} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5173,15 +5115,15 @@ MOPS { ``` SNMP { - broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.1, method: get} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.2, method: get} # Integer32, access=ru, range=1–10 auto_disable_reset: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.5} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.4} # Unsigned32, access=ru - broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.8} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5190,10 +5132,10 @@ SNMP { ``` SSH { - broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] broadcast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] multicast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -5219,15 +5161,15 @@ get_loop_protection() -> { ``` MOPS { - broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveState} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveTransmitInterval} # Integer32, access=ru, range=1–10 auto_disable_reset: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfReset} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfTimer} # Unsigned32, access=ru - broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastThreshold} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5236,15 +5178,15 @@ MOPS { ``` SNMP { - broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.1, method: get} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.2, method: get} # Integer32, access=ru, range=1–10 auto_disable_reset: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.5} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.4} # Unsigned32, access=ru - broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.8} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5253,10 +5195,10 @@ SNMP { ``` SSH { - broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] broadcast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] multicast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -5271,6 +5213,7 @@ get_auto_disable() -> { enabled: False // bool reason: "none" // str remaining_time: 0 // int + timer: 0 // int } ``` @@ -5283,15 +5226,15 @@ get_auto_disable() -> { ``` MOPS { - broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveState} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveTransmitInterval} # Integer32, access=ru, range=1–10 auto_disable_reset: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfReset} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfTimer} # Unsigned32, access=ru - broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastThreshold} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5300,15 +5243,15 @@ MOPS { ``` SNMP { - broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.1, method: get} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.2, method: get} # Integer32, access=ru, range=1–10 auto_disable_reset: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.5} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.4} # Unsigned32, access=ru - broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.8} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5317,14 +5260,27 @@ SNMP { ``` SSH { - broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] broadcast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] multicast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` +### `get_auto_disable_reasons()` + +**Read** | **Protocols:** None (Composed) +Primary key: `reason` + +``` +get_auto_disable_reasons() -> { + enabled: False // bool + category: "" // str +} +``` + + ### `set_auto_disable_reason()` **Update** | **Protocols:** MOPS, SNMP, SSH @@ -5333,15 +5289,15 @@ SSH { ``` MOPS { - broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveState} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveTransmitInterval} # Integer32, access=ru, range=1–10 auto_disable_reset: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfReset} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfTimer} # Unsigned32, access=ru - broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastThreshold} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5350,15 +5306,15 @@ MOPS { ``` SNMP { - broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] loop_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.1, method: get} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] loop_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.2, method: get} # Integer32, access=ru, range=1–10 auto_disable_reset: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.5} # TruthValue, access=ru, allowed=[True, False] auto_disable_timer: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.4} # Unsigned32, access=ru - broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 - auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] multicast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.8} # Unsigned32, access=ru, range=0–14880000 - multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] + auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] } ``` @@ -5367,10 +5323,60 @@ SNMP { ``` SSH { - broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] broadcast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] multicast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 +} +``` + + +### `auto_disable_reset()` + +**Update** | **Protocols:** MOPS, SNMP, SSH + +
MOPS sources (9/9 attrs) + +``` +MOPS { + multicast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + loop_enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveState} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastThreshold} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlBcastMode} # HmEnabledStatus, access=ru, allowed=[True, False] + loop_interval: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentSwitchKeepaliveGroup.hm2AgentSwitchKeepaliveTransmitInterval} # Integer32, access=ru, range=1–10 + auto_disable_reset: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfReset} # TruthValue, access=ru, allowed=[True, False] + auto_disable_timer: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfTimer} # Unsigned32, access=ru + multicast_threshold: {HM2-TRAFFICMGMT-MIB / hm2TrafficMgmtIfEntry.hm2TrafficMgmtIfIngressStormCtlMcastThreshold} # Unsigned32, access=ru, range=0–14880000 + auto_disable_reason: {HM2-DEVMGMT-MIB / hm2AutoDisableIntfEntry.hm2AutoDisableIntfErrorReason} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] +} +``` +
+ +
SNMP sources (9/9 attrs) + +``` +SNMP { + multicast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] + loop_enabled: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.1, method: get} # INTEGER, access=ru, allowed=['enable', 'disable'] + broadcast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.6} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.5} # HmEnabledStatus, access=ru, allowed=[True, False] + loop_interval: {oid: 1.3.6.1.4.1.248.12.1.2.8.43.2, method: get} # Integer32, access=ru, range=1–10 + auto_disable_reset: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.5} # TruthValue, access=ru, allowed=[True, False] + auto_disable_timer: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.4} # Unsigned32, access=ru + multicast_threshold: {oid: 1.3.6.1.4.1.248.11.31.1.1.1.8} # Unsigned32, access=ru, range=0–14880000 + auto_disable_reason: {oid: 1.3.6.1.4.1.248.11.10.1.9.1.1.3} # INTEGER, access=r, allowed=['none', 'link-flap', 'crc-error', 'duplex-mismatch', 'dhcp-snooping', 'arp-rate', 'bpdu-rate', 'mac-based-port-security', 'overload-detection', 'speed-duplex', 'loop-protection'] +} +``` +
+ +
SSH sources (4/9 attrs) + +``` +SSH { multicast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] + broadcast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 + broadcast_enabled: {read: "show storm-control ingress"} # HmEnabledStatus, access=ru, allowed=[True, False] + multicast_threshold: {read: "show storm-control ingress"} # Unsigned32, access=ru, range=0–14880000 } ```
@@ -5428,10 +5434,10 @@ SSH { ``` MOPS { + port_trust_mode: {HM2-PLATFORM-QOS-COS-MIB / hm2AgentCosMapIntfTrustEntry.hm2AgentCosMapIntfTrustMode} # INTEGER, access=ru, allowed=['untrusted', 'trustDot1p', 'trustIpPrecedence', 'trustIpDscp'] default_priority: {P-BRIDGE-MIB / dot1dPortPriorityEntry.dot1dPortDefaultUserPriority} # INTEGER, access=ru, range=0–7 - num_traffic_classes: {P-BRIDGE-MIB / dot1dPortPriorityEntry.dot1dPortNumTrafficClasses} # INTEGER, access=ru, range=1–8 port_untrusted_tc: {HM2-PLATFORM-QOS-COS-MIB / hm2AgentCosMapIntfTrustEntry.hm2AgentCosMapUntrustedTrafficClass} # Unsigned32, access=r - port_trust_mode: {HM2-PLATFORM-QOS-COS-MIB / hm2AgentCosMapIntfTrustEntry.hm2AgentCosMapIntfTrustMode} # INTEGER, access=ru, allowed=['untrusted', 'trustDot1p', 'trustIpPrecedence', 'trustIpDscp'] + num_traffic_classes: {P-BRIDGE-MIB / dot1dPortPriorityEntry.dot1dPortNumTrafficClasses} # INTEGER, access=ru, range=1–8 } ``` @@ -5440,10 +5446,10 @@ MOPS { ``` SNMP { + port_trust_mode: {oid: 1.3.6.1.4.1.248.12.3.3.1.3.1.2} # INTEGER, access=ru, allowed=['untrusted', 'trustDot1p', 'trustIpPrecedence', 'trustIpDscp'] default_priority: {oid: 1.3.6.1.2.1.17.6.1.2.1.1.1} # INTEGER, access=ru, range=0–7 - num_traffic_classes: {oid: 1.3.6.1.2.1.17.6.1.2.1.1.2} # INTEGER, access=ru, range=1–8 port_untrusted_tc: {oid: 1.3.6.1.4.1.248.12.3.3.1.3.1.3} # Unsigned32, access=r - port_trust_mode: {oid: 1.3.6.1.4.1.248.12.3.3.1.3.1.2} # INTEGER, access=ru, allowed=['untrusted', 'trustDot1p', 'trustIpPrecedence', 'trustIpDscp'] + num_traffic_classes: {oid: 1.3.6.1.2.1.17.6.1.2.1.1.2} # INTEGER, access=ru, range=1–8 } ``` @@ -5452,8 +5458,8 @@ SNMP { ``` SSH { - port_untrusted_tc: {read: "show classofservice trust"} # Unsigned32, access=r port_trust_mode: {read: "show classofservice trust"} # INTEGER, access=ru, allowed=['untrusted', 'trustDot1p', 'trustIpPrecedence', 'trustIpDscp'] + port_untrusted_tc: {read: "show classofservice trust"} # Unsigned32, access=r } ``` @@ -5475,38 +5481,34 @@ get_qos_mapping() -> { } ``` -> Sub-table: **`dot1p`** — key: `dot1p_priority` -> Sub-table: **`dscp`** — key: `dscp_value` +> Sub-table: **`dot1p`** — key: `dot1p_traffic_class` +> Sub-table: **`dscp`** — key: `dscp_traffic_class` -
MOPS sources (4/4 attrs) +
MOPS sources (2/2 attrs) ``` MOPS { dscp_traffic_class: {HM2-L2FORWARDING-MIB / hm2CosMapIpDscpEntry.hm2CosMapIpDscpTrafficClass} # Unsigned32, access=ru, range=0–7 - dot1p_priority: {HM2-L2FORWARDING-MIB / hm2TrafficClassEntry.hm2TrafficClassPriority} # Integer32, access=r, range=0–7 - dscp_value: {HM2-L2FORWARDING-MIB / hm2CosMapIpDscpEntry.hm2CosMapIpDscpValue} # Unsigned32, access=r, range=0–63 dot1p_traffic_class: {HM2-L2FORWARDING-MIB / hm2TrafficClassEntry.hm2TrafficClass} # Integer32, access=ru, range=0–7 } ```
-
SNMP sources (4/4 attrs) +
SNMP sources (2/2 attrs) ``` SNMP { dscp_traffic_class: {oid: 1.3.6.1.4.1.248.11.30.1.2.2.1.2} # Unsigned32, access=ru, range=0–7 - dot1p_priority: {oid: 1.3.6.1.4.1.248.11.30.1.2.1.1.1} # Integer32, access=r, range=0–7 - dscp_value: {oid: 1.3.6.1.4.1.248.11.30.1.2.2.1.1} # Unsigned32, access=r, range=0–63 dot1p_traffic_class: {oid: 1.3.6.1.4.1.248.11.30.1.2.1.1.2} # Integer32, access=ru, range=0–7 } ```
-
SSH sources (2/4 attrs) +
SSH sources (2/2 attrs) ``` SSH { - dot1p_priority: {read: "show classofservice dot1p-mapping"} # Integer32, access=r, range=0–7 + dscp_traffic_class: {read: "show classofservice ip-dscp-mapping"} # Unsigned32, access=ru, range=0–7 dot1p_traffic_class: {read: "show classofservice dot1p-mapping"} # Integer32, access=ru, range=0–7 } ``` @@ -5520,9 +5522,9 @@ SSH { ``` MOPS { + dscp_traffic_class: {HM2-L2FORWARDING-MIB / hm2CosMapIpDscpEntry.hm2CosMapIpDscpTrafficClass} # Unsigned32, access=ru, range=0–7 dot1p_priority: {HM2-L2FORWARDING-MIB / hm2TrafficClassEntry.hm2TrafficClassPriority} # Integer32, access=r, range=0–7 dscp_value: {HM2-L2FORWARDING-MIB / hm2CosMapIpDscpEntry.hm2CosMapIpDscpValue} # Unsigned32, access=r, range=0–63 - dscp_traffic_class: {HM2-L2FORWARDING-MIB / hm2CosMapIpDscpEntry.hm2CosMapIpDscpTrafficClass} # Unsigned32, access=ru, range=0–7 dot1p_traffic_class: {HM2-L2FORWARDING-MIB / hm2TrafficClassEntry.hm2TrafficClass} # Integer32, access=ru, range=0–7 } ``` @@ -5532,9 +5534,9 @@ MOPS { ``` SNMP { + dscp_traffic_class: {oid: 1.3.6.1.4.1.248.11.30.1.2.2.1.2} # Unsigned32, access=ru, range=0–7 dot1p_priority: {oid: 1.3.6.1.4.1.248.11.30.1.2.1.1.1} # Integer32, access=r, range=0–7 dscp_value: {oid: 1.3.6.1.4.1.248.11.30.1.2.2.1.1} # Unsigned32, access=r, range=0–63 - dscp_traffic_class: {oid: 1.3.6.1.4.1.248.11.30.1.2.2.1.2} # Unsigned32, access=ru, range=0–7 dot1p_traffic_class: {oid: 1.3.6.1.4.1.248.11.30.1.2.1.1.2} # Integer32, access=ru, range=0–7 } ``` @@ -5544,7 +5546,7 @@ SNMP { ``` SSH { - dot1p_priority: {read: "show classofservice dot1p-mapping"} # Integer32, access=r, range=0–7 + dscp_traffic_class: {read: "show classofservice ip-dscp-mapping"} # Unsigned32, access=ru, range=0–7 dot1p_traffic_class: {read: "show classofservice dot1p-mapping"} # Integer32, access=ru, range=0–7 } ``` @@ -5581,19 +5583,19 @@ get_remote_auth() -> { ``` MOPS { - tacacs_address: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddress} # InetAddress, access=r - tacacs_port: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsPortNumber} # Unsigned32, access=ru, range=1–65535 - ldap_enabled: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapConfigGroup.hm2LdapClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 - tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 tacacs_accounting: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsAccountingGroup.hm2AgentTacacsCmdAccountingMode} # INTEGER, access=ru - radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 - secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru - ldap_address: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddr} # InetAddress, access=ru + radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 + ldap_enabled: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapConfigGroup.hm2LdapClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru - address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru + ldap_address: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddr} # InetAddress, access=ru radius_timeout: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusTimeout} # Unsigned32, access=ru, range=1–30 + address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru + radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru + tacacs_port: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsPortNumber} # Unsigned32, access=ru, range=1–65535 + radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 + tacacs_address: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddress} # InetAddress, access=r + tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 } ```
@@ -5602,19 +5604,19 @@ MOPS { ``` SNMP { - tacacs_address: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.2} # InetAddress, access=r - tacacs_port: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.3} # Unsigned32, access=ru, range=1–65535 - ldap_enabled: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 - tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 tacacs_accounting: {oid: 1.3.6.1.4.1.248.12.18.1.249.1, method: get} # INTEGER, access=ru - radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 - secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru - ldap_address: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.4} # InetAddress, access=ru + radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 + ldap_enabled: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru - address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru + ldap_address: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.4} # InetAddress, access=ru radius_timeout: {oid: 1.3.6.1.4.1.248.12.8.1.2, method: get} # Unsigned32, access=ru, range=1–30 + address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru + radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru + tacacs_port: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.3} # Unsigned32, access=ru, range=1–65535 + radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 + tacacs_address: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.2} # InetAddress, access=r + tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 } ```
@@ -5623,19 +5625,19 @@ SNMP { ``` SSH { - tacacs_address: {read: "show tacacs server", write: "tacacs server add {tacacs_address}"} # InetAddress, access=r - tacacs_port: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–65535 - ldap_enabled: {read: "show ldap global"} # HmEnabledStatus, access=ru, allowed=[True, False] - radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 - tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 tacacs_accounting: {read: "show tacacs global"} # INTEGER, access=ru - radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] - radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 - secret: {read: "show radius auth servers"} # DisplayString, access=ru - ldap_address: {read: "show ldap client server", write: "ldap client server add {index} {ldap_address}"} # InetAddress, access=ru + radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 + ldap_enabled: {read: "show ldap global"} # HmEnabledStatus, access=ru, allowed=[True, False] ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru - address: {read: "show radius auth servers", write: "radius server auth add {index} ip {address}"} # InetAddress, access=ru + ldap_address: {read: "show ldap client server", write: "ldap client server add {index} {ldap_address}"} # InetAddress, access=ru radius_timeout: {read: "show radius global"} # Unsigned32, access=ru, range=1–30 + address: {read: "show radius auth servers", write: "radius server auth add {index} ip {address}"} # InetAddress, access=ru + radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] + secret: {read: "show radius auth servers"} # DisplayString, access=ru + tacacs_port: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–65535 + radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 + tacacs_address: {read: "show tacacs server", write: "tacacs server add {tacacs_address}"} # InetAddress, access=r + tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 } ```
@@ -5648,27 +5650,27 @@ SSH { ``` MOPS { - radius_addr_type: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddrType} # InetAddressType, access=ru - radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 ldap_address: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddr} # InetAddress, access=ru - ldap_addr_type: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddrType} # InetAddressType, access=ru - ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru radius_timeout: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusTimeout} # Unsigned32, access=ru, range=1–30 - radius_row_status: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerRowStatus} # RowStatus, access=crud + secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru tacacs_address: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddress} # InetAddress, access=r - ldap_row_status: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerRowStatus} # RowStatus, access=crud - tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 - radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerStatus} # RowStatus, access=crud tacacs_port: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsPortNumber} # Unsigned32, access=ru, range=1–65535 + radius_addr_type: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddrType} # InetAddressType, access=ru + radius_row_status: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerRowStatus} # RowStatus, access=crud ldap_enabled: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapConfigGroup.hm2LdapClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru - ldap_index: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerIndex} # Integer32, access=r, range=1–4 - radius_index: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerIndex} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerStatus} # RowStatus, access=crud - tacacs_accounting: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsAccountingGroup.hm2AgentTacacsCmdAccountingMode} # INTEGER, access=ru - radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 - address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru tacacs_addr_type: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddrType} # InetAddressType, access=r + ldap_addr_type: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddrType} # InetAddressType, access=ru + address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru + radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsAccountingGroup.hm2AgentTacacsCmdAccountingMode} # INTEGER, access=ru + ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru + radius_index: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerIndex} # Integer32, access=r, range=1–2147483647 + ldap_index: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerIndex} # Integer32, access=r, range=1–4 + ldap_row_status: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerRowStatus} # RowStatus, access=crud } ```
@@ -5677,27 +5679,27 @@ MOPS { ``` SNMP { - radius_addr_type: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.248} # InetAddressType, access=ru - radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 ldap_address: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.4} # InetAddress, access=ru - ldap_addr_type: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.3} # InetAddressType, access=ru - ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru radius_timeout: {oid: 1.3.6.1.4.1.248.12.8.1.2, method: get} # Unsigned32, access=ru, range=1–30 - radius_row_status: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.9} # RowStatus, access=crud + secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru tacacs_address: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.2} # InetAddress, access=r - ldap_row_status: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.8} # RowStatus, access=crud - tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 - radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.7} # RowStatus, access=crud tacacs_port: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.3} # Unsigned32, access=ru, range=1–65535 + radius_addr_type: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.248} # InetAddressType, access=ru + radius_row_status: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.9} # RowStatus, access=crud ldap_enabled: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru - ldap_index: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.1} # Integer32, access=r, range=1–4 - radius_index: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.1} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.7} # RowStatus, access=crud - tacacs_accounting: {oid: 1.3.6.1.4.1.248.12.18.1.249.1, method: get} # INTEGER, access=ru - radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 - address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru tacacs_addr_type: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.1} # InetAddressType, access=r + ldap_addr_type: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.3} # InetAddressType, access=ru + address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru + radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {oid: 1.3.6.1.4.1.248.12.18.1.249.1, method: get} # INTEGER, access=ru + ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru + radius_index: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.1} # Integer32, access=r, range=1–2147483647 + ldap_index: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.1} # Integer32, access=r, range=1–4 + ldap_row_status: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.8} # RowStatus, access=crud } ``` @@ -5706,25 +5708,25 @@ SNMP { ``` SSH { - radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 ldap_address: {read: "show ldap client server", write: "ldap client server add {index} {ldap_address}"} # InetAddress, access=ru - ldap_addr_type: {read: "show ldap client server"} # InetAddressType, access=ru - ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru radius_timeout: {read: "show radius global"} # Unsigned32, access=ru, range=1–30 - radius_row_status: {write: "radius server auth add {index} ip {address}"} # RowStatus, access=crud + secret: {read: "show radius auth servers"} # DisplayString, access=ru tacacs_address: {read: "show tacacs server", write: "tacacs server add {tacacs_address}"} # InetAddress, access=r - ldap_row_status: {write: "ldap client server add {index} {ldap_address}"} # RowStatus, access=crud - tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 - radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {write: "tacacs server add {tacacs_address}"} # RowStatus, access=crud tacacs_port: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–65535 + radius_row_status: {write: "radius server auth add {index} ip {address}"} # RowStatus, access=crud ldap_enabled: {read: "show ldap global"} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {read: "show radius auth servers"} # DisplayString, access=ru - ldap_index: {read: "show ldap client server"} # Integer32, access=r, range=1–4 - radius_index: {read: "show radius auth servers"} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {write: "tacacs server add {tacacs_address}"} # RowStatus, access=crud - tacacs_accounting: {read: "show tacacs global"} # INTEGER, access=ru - radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 + ldap_addr_type: {read: "show ldap client server"} # InetAddressType, access=ru address: {read: "show radius auth servers", write: "radius server auth add {index} ip {address}"} # InetAddress, access=ru + radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {read: "show tacacs global"} # INTEGER, access=ru + ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru + radius_index: {read: "show radius auth servers"} # Integer32, access=r, range=1–2147483647 + ldap_index: {read: "show ldap client server"} # Integer32, access=r, range=1–4 + ldap_row_status: {write: "ldap client server add {index} {ldap_address}"} # RowStatus, access=crud } ``` @@ -5746,9 +5748,9 @@ create_radius_server() -> { ``` MOPS { + address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 radius_addr_type: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddrType} # InetAddressType, access=ru - address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru } ``` @@ -5757,9 +5759,9 @@ MOPS { ``` SNMP { + address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 radius_addr_type: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.248} # InetAddressType, access=ru - address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru } ``` @@ -5768,8 +5770,8 @@ SNMP { ``` SSH { - radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 address: {read: "show radius auth servers", write: "radius server auth add {index} ip {address}"} # InetAddress, access=ru + radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 } ``` @@ -5782,27 +5784,27 @@ SSH { ``` MOPS { - radius_addr_type: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddrType} # InetAddressType, access=ru - radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 ldap_address: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddr} # InetAddress, access=ru - ldap_addr_type: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddrType} # InetAddressType, access=ru - ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru radius_timeout: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusTimeout} # Unsigned32, access=ru, range=1–30 - radius_row_status: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerRowStatus} # RowStatus, access=crud + secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru tacacs_address: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddress} # InetAddress, access=r - ldap_row_status: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerRowStatus} # RowStatus, access=crud - tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 - radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerStatus} # RowStatus, access=crud tacacs_port: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsPortNumber} # Unsigned32, access=ru, range=1–65535 + radius_addr_type: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddrType} # InetAddressType, access=ru + radius_row_status: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerRowStatus} # RowStatus, access=crud ldap_enabled: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapConfigGroup.hm2LdapClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru - ldap_index: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerIndex} # Integer32, access=r, range=1–4 - radius_index: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerIndex} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerStatus} # RowStatus, access=crud - tacacs_accounting: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsAccountingGroup.hm2AgentTacacsCmdAccountingMode} # INTEGER, access=ru - radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 - address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru tacacs_addr_type: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddrType} # InetAddressType, access=r + ldap_addr_type: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddrType} # InetAddressType, access=ru + address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru + radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsAccountingGroup.hm2AgentTacacsCmdAccountingMode} # INTEGER, access=ru + ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru + radius_index: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerIndex} # Integer32, access=r, range=1–2147483647 + ldap_index: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerIndex} # Integer32, access=r, range=1–4 + ldap_row_status: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerRowStatus} # RowStatus, access=crud } ``` @@ -5811,27 +5813,27 @@ MOPS { ``` SNMP { - radius_addr_type: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.248} # InetAddressType, access=ru - radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 ldap_address: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.4} # InetAddress, access=ru - ldap_addr_type: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.3} # InetAddressType, access=ru - ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru radius_timeout: {oid: 1.3.6.1.4.1.248.12.8.1.2, method: get} # Unsigned32, access=ru, range=1–30 - radius_row_status: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.9} # RowStatus, access=crud + secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru tacacs_address: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.2} # InetAddress, access=r - ldap_row_status: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.8} # RowStatus, access=crud - tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 - radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.7} # RowStatus, access=crud tacacs_port: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.3} # Unsigned32, access=ru, range=1–65535 + radius_addr_type: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.248} # InetAddressType, access=ru + radius_row_status: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.9} # RowStatus, access=crud ldap_enabled: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru - ldap_index: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.1} # Integer32, access=r, range=1–4 - radius_index: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.1} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.7} # RowStatus, access=crud - tacacs_accounting: {oid: 1.3.6.1.4.1.248.12.18.1.249.1, method: get} # INTEGER, access=ru - radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 - address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru tacacs_addr_type: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.1} # InetAddressType, access=r + ldap_addr_type: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.3} # InetAddressType, access=ru + address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru + radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {oid: 1.3.6.1.4.1.248.12.18.1.249.1, method: get} # INTEGER, access=ru + ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru + radius_index: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.1} # Integer32, access=r, range=1–2147483647 + ldap_index: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.1} # Integer32, access=r, range=1–4 + ldap_row_status: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.8} # RowStatus, access=crud } ``` @@ -5840,25 +5842,25 @@ SNMP { ``` SSH { - radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 ldap_address: {read: "show ldap client server", write: "ldap client server add {index} {ldap_address}"} # InetAddress, access=ru - ldap_addr_type: {read: "show ldap client server"} # InetAddressType, access=ru - ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru radius_timeout: {read: "show radius global"} # Unsigned32, access=ru, range=1–30 - radius_row_status: {write: "radius server auth add {index} ip {address}"} # RowStatus, access=crud + secret: {read: "show radius auth servers"} # DisplayString, access=ru tacacs_address: {read: "show tacacs server", write: "tacacs server add {tacacs_address}"} # InetAddress, access=r - ldap_row_status: {write: "ldap client server add {index} {ldap_address}"} # RowStatus, access=crud - tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 - radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {write: "tacacs server add {tacacs_address}"} # RowStatus, access=crud tacacs_port: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–65535 + radius_row_status: {write: "radius server auth add {index} ip {address}"} # RowStatus, access=crud ldap_enabled: {read: "show ldap global"} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {read: "show radius auth servers"} # DisplayString, access=ru - ldap_index: {read: "show ldap client server"} # Integer32, access=r, range=1–4 - radius_index: {read: "show radius auth servers"} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {write: "tacacs server add {tacacs_address}"} # RowStatus, access=crud - tacacs_accounting: {read: "show tacacs global"} # INTEGER, access=ru - radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 + ldap_addr_type: {read: "show ldap client server"} # InetAddressType, access=ru address: {read: "show radius auth servers", write: "radius server auth add {index} ip {address}"} # InetAddress, access=ru + radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {read: "show tacacs global"} # INTEGER, access=ru + ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru + radius_index: {read: "show radius auth servers"} # Integer32, access=r, range=1–2147483647 + ldap_index: {read: "show ldap client server"} # Integer32, access=r, range=1–4 + ldap_row_status: {write: "ldap client server add {index} {ldap_address}"} # RowStatus, access=crud } ``` @@ -5880,9 +5882,9 @@ create_ldap_server() -> { ``` MOPS { - ldap_address: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddr} # InetAddress, access=ru ldap_addr_type: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddrType} # InetAddressType, access=ru ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru + ldap_address: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddr} # InetAddress, access=ru } ``` @@ -5891,9 +5893,9 @@ MOPS { ``` SNMP { - ldap_address: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.4} # InetAddress, access=ru ldap_addr_type: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.3} # InetAddressType, access=ru ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru + ldap_address: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.4} # InetAddress, access=ru } ``` @@ -5902,9 +5904,9 @@ SNMP { ``` SSH { - ldap_address: {read: "show ldap client server", write: "ldap client server add {index} {ldap_address}"} # InetAddress, access=ru ldap_addr_type: {read: "show ldap client server"} # InetAddressType, access=ru ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru + ldap_address: {read: "show ldap client server", write: "ldap client server add {index} {ldap_address}"} # InetAddress, access=ru } ``` @@ -5917,27 +5919,27 @@ SSH { ``` MOPS { - radius_addr_type: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddrType} # InetAddressType, access=ru - radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 ldap_address: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddr} # InetAddress, access=ru - ldap_addr_type: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddrType} # InetAddressType, access=ru - ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru radius_timeout: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusTimeout} # Unsigned32, access=ru, range=1–30 - radius_row_status: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerRowStatus} # RowStatus, access=crud + secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru tacacs_address: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddress} # InetAddress, access=r - ldap_row_status: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerRowStatus} # RowStatus, access=crud - tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 - radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerPort} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerStatus} # RowStatus, access=crud tacacs_port: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsPortNumber} # Unsigned32, access=ru, range=1–65535 + radius_addr_type: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddrType} # InetAddressType, access=ru + radius_row_status: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerRowStatus} # RowStatus, access=crud ldap_enabled: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapConfigGroup.hm2LdapClientAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerSecret} # DisplayString, access=ru - ldap_index: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerIndex} # Integer32, access=r, range=1–4 - radius_index: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerIndex} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerStatus} # RowStatus, access=crud - tacacs_accounting: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsAccountingGroup.hm2AgentTacacsCmdAccountingMode} # INTEGER, access=ru - radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 - address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru tacacs_addr_type: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsServerIpAddrType} # InetAddressType, access=r + ldap_addr_type: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerAddrType} # InetAddressType, access=ru + address: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerInetAddress} # InetAddress, access=ru + radius_enabled: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusAccountingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusConfigGroup.hm2AgentRadiusMaxTransmit} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsServerEntry.hm2AgentTacacsTimeOut} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {HM2-PLATFORM-TACACSCLIENT-MIB / hm2AgentTacacsAccountingGroup.hm2AgentTacacsCmdAccountingMode} # INTEGER, access=ru + ldap_port: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerPort} # InetPortNumber, access=ru + radius_index: {HM2-PLATFORM-RADIUS-MIB / hm2AgentRadiusServerConfigEntry.hm2AgentRadiusServerIndex} # Integer32, access=r, range=1–2147483647 + ldap_index: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerIndex} # Integer32, access=r, range=1–4 + ldap_row_status: {HM2-REMOTE-AUTHENTICATION-MIB / hm2LdapClientServerAddrEntry.hm2LdapClientServerRowStatus} # RowStatus, access=crud } ``` @@ -5946,27 +5948,27 @@ MOPS { ``` SNMP { - radius_addr_type: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.248} # InetAddressType, access=ru - radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 ldap_address: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.4} # InetAddress, access=ru - ldap_addr_type: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.3} # InetAddressType, access=ru - ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru radius_timeout: {oid: 1.3.6.1.4.1.248.12.8.1.2, method: get} # Unsigned32, access=ru, range=1–30 - radius_row_status: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.9} # RowStatus, access=crud + secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru tacacs_address: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.2} # InetAddress, access=r - ldap_row_status: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.8} # RowStatus, access=crud - tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 - radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.4} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.7} # RowStatus, access=crud tacacs_port: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.3} # Unsigned32, access=ru, range=1–65535 + radius_addr_type: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.248} # InetAddressType, access=ru + radius_row_status: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.9} # RowStatus, access=crud ldap_enabled: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.5} # DisplayString, access=ru - ldap_index: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.1} # Integer32, access=r, range=1–4 - radius_index: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.1} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.7} # RowStatus, access=crud - tacacs_accounting: {oid: 1.3.6.1.4.1.248.12.18.1.249.1, method: get} # INTEGER, access=ru - radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 - address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru tacacs_addr_type: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.1} # InetAddressType, access=r + ldap_addr_type: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.3} # InetAddressType, access=ru + address: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.11} # InetAddress, access=ru + radius_enabled: {oid: 1.3.6.1.4.1.248.12.8.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {oid: 1.3.6.1.4.1.248.12.8.1.1, method: get} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {oid: 1.3.6.1.4.1.248.12.18.1.2.1.4} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {oid: 1.3.6.1.4.1.248.12.18.1.249.1, method: get} # INTEGER, access=ru + ldap_port: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.5} # InetPortNumber, access=ru + radius_index: {oid: 1.3.6.1.4.1.248.12.8.1.8.1.1} # Integer32, access=r, range=1–2147483647 + ldap_index: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.1} # Integer32, access=r, range=1–4 + ldap_row_status: {oid: 1.3.6.1.4.1.248.11.26.1.1.10.20.1.8} # RowStatus, access=crud } ``` @@ -5975,25 +5977,25 @@ SNMP { ``` SSH { - radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 ldap_address: {read: "show ldap client server", write: "ldap client server add {index} {ldap_address}"} # InetAddress, access=ru - ldap_addr_type: {read: "show ldap client server"} # InetAddressType, access=ru - ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru radius_timeout: {read: "show radius global"} # Unsigned32, access=ru, range=1–30 - radius_row_status: {write: "radius server auth add {index} ip {address}"} # RowStatus, access=crud + secret: {read: "show radius auth servers"} # DisplayString, access=ru tacacs_address: {read: "show tacacs server", write: "tacacs server add {tacacs_address}"} # InetAddress, access=r - ldap_row_status: {write: "ldap client server add {index} {ldap_address}"} # RowStatus, access=crud - tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 - radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_port: {read: "show radius auth servers"} # Unsigned32, access=ru, range=0–65535 + tacacs_row_status: {write: "tacacs server add {tacacs_address}"} # RowStatus, access=crud tacacs_port: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–65535 + radius_row_status: {write: "radius server auth add {index} ip {address}"} # RowStatus, access=crud ldap_enabled: {read: "show ldap global"} # HmEnabledStatus, access=ru, allowed=[True, False] - secret: {read: "show radius auth servers"} # DisplayString, access=ru - ldap_index: {read: "show ldap client server"} # Integer32, access=r, range=1–4 - radius_index: {read: "show radius auth servers"} # Integer32, access=r, range=1–2147483647 - tacacs_row_status: {write: "tacacs server add {tacacs_address}"} # RowStatus, access=crud - tacacs_accounting: {read: "show tacacs global"} # INTEGER, access=ru - radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 + ldap_addr_type: {read: "show ldap client server"} # InetAddressType, access=ru address: {read: "show radius auth servers", write: "radius server auth add {index} ip {address}"} # InetAddress, access=ru + radius_enabled: {read: "show radius global"} # HmEnabledStatus, access=ru, allowed=[True, False] + radius_retransmits: {read: "show radius global"} # Unsigned32, access=ru, range=1–15 + tacacs_timeout: {read: "show tacacs server"} # Unsigned32, access=ru, range=1–30 + tacacs_accounting: {read: "show tacacs global"} # INTEGER, access=ru + ldap_port: {read: "show ldap client server"} # InetPortNumber, access=ru + radius_index: {read: "show radius auth servers"} # Integer32, access=r, range=1–2147483647 + ldap_index: {read: "show ldap client server"} # Integer32, access=r, range=1–4 + ldap_row_status: {write: "ldap client server add {index} {ldap_address}"} # RowStatus, access=crud } ``` @@ -6094,12 +6096,12 @@ get_route_to() -> { ``` MOPS { + outgoing_interface: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteIfIndex} # InterfaceIndexOrZero, access=ru next_hop: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteNextHop} # InetAddress, access=r destination: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteDest} # InetAddress, access=r - protocol: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteProto} # IANAipRouteProtocol, access=r - age: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteAge} # Gauge32, access=r preference: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteMetric1} # Integer32, access=ru - outgoing_interface: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteIfIndex} # InterfaceIndexOrZero, access=ru + age: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteAge} # Gauge32, access=r + protocol: {IP-FORWARD-MIB / inetCidrRouteEntry.inetCidrRouteProto} # IANAipRouteProtocol, access=r } ``` @@ -6108,12 +6110,12 @@ MOPS { ``` SNMP { - next_hop: {oid: 1.3.6.1.2.1.4.24.7.1.6} # InetAddress, access=r - destination: {oid: 1.3.6.1.2.1.4.24.7.1.2} # InetAddress, access=r - protocol: {oid: 1.3.6.1.2.1.4.24.7.1.9} # IANAipRouteProtocol, access=r - age: {oid: 1.3.6.1.2.1.4.24.7.1.10} # Gauge32, access=r - preference: {oid: 1.3.6.1.2.1.4.24.7.1.12} # Integer32, access=ru outgoing_interface: {oid: 1.3.6.1.2.1.4.24.7.1.7} # InterfaceIndexOrZero, access=ru + next_hop: {oid: 1.3.6.1.2.1.4.24.7.1.7} # InetAddress, access=r + destination: {oid: 1.3.6.1.2.1.4.24.7.1.7} # InetAddress, access=r + preference: {oid: 1.3.6.1.2.1.4.24.7.1.12} # Integer32, access=ru + age: {oid: 1.3.6.1.2.1.4.24.7.1.10} # Gauge32, access=r + protocol: {oid: 1.3.6.1.2.1.4.24.7.1.9} # IANAipRouteProtocol, access=r } ``` @@ -6122,11 +6124,11 @@ SNMP { ``` SSH { + outgoing_interface: {read: "show ip route all"} # InterfaceIndexOrZero, access=ru next_hop: {read: "show ip route all"} # InetAddress, access=r destination: {read: "show ip route all"} # InetAddress, access=r - protocol: {read: "show ip route all"} # IANAipRouteProtocol, access=r preference: {read: "show ip route all"} # Integer32, access=ru - outgoing_interface: {read: "show ip route all"} # InterfaceIndexOrZero, access=ru + protocol: {read: "show ip route all"} # IANAipRouteProtocol, access=r } ``` @@ -6156,18 +6158,18 @@ get_router() -> { ``` MOPS { - port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru - port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r + port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanIfIndex} # InterfaceIndex, access=ru - port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru port_netmask: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetMask} # IpAddress, access=ru - routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru + port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r port_directed_broadcast: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetdirectedBCMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanId} # VlanId, access=r port_proxy_arp: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceProxyARPMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru } ``` @@ -6176,18 +6178,18 @@ MOPS { ``` SNMP { - port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru - port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r + port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.2} # InterfaceIndex, access=ru - port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru port_netmask: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.4} # IpAddress, access=ru - routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru + port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r port_directed_broadcast: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.248} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.1} # VlanId, access=r port_proxy_arp: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru } ``` @@ -6196,15 +6198,15 @@ SNMP { ``` SSH { - port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru - port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] routing_enabled: {read: "show ip global", write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru + port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru port_directed_broadcast: {write: "ip netdirbcast"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] port_proxy_arp: {write: "ip proxy-arp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru } ``` @@ -6217,19 +6219,19 @@ SSH { ``` MOPS { - port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r - port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru + port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanIfIndex} # InterfaceIndex, access=ru - port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r + port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru port_netmask: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetMask} # IpAddress, access=ru - routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud + port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru port_directed_broadcast: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetdirectedBCMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanId} # VlanId, access=r port_proxy_arp: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceProxyARPMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru + vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud } ``` @@ -6238,19 +6240,19 @@ MOPS { ``` SNMP { - port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r - port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru + port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.2} # InterfaceIndex, access=ru - port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r + port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru port_netmask: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.4} # IpAddress, access=ru - routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud + port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru port_directed_broadcast: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.248} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.1} # VlanId, access=r port_proxy_arp: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru + vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud } ``` @@ -6259,15 +6261,15 @@ SNMP { ``` SSH { - port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru - port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] routing_enabled: {read: "show ip global", write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru + port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru port_directed_broadcast: {write: "ip netdirbcast"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] port_proxy_arp: {write: "ip proxy-arp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru } ``` @@ -6280,19 +6282,19 @@ SSH { ``` MOPS { - port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r - port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru + port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanIfIndex} # InterfaceIndex, access=ru - port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r + port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru port_netmask: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetMask} # IpAddress, access=ru - routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud + port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru port_directed_broadcast: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetdirectedBCMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanId} # VlanId, access=r port_proxy_arp: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceProxyARPMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru + vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud } ``` @@ -6301,19 +6303,19 @@ MOPS { ``` SNMP { - port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r - port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru + port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.2} # InterfaceIndex, access=ru - port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r + port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru port_netmask: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.4} # IpAddress, access=ru - routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud + port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru port_directed_broadcast: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.248} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.1} # VlanId, access=r port_proxy_arp: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru + vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud } ``` @@ -6322,15 +6324,15 @@ SNMP { ``` SSH { - port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru - port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] routing_enabled: {read: "show ip global", write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru + port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru port_directed_broadcast: {write: "ip netdirbcast"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] port_proxy_arp: {write: "ip proxy-arp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru } ``` @@ -6343,19 +6345,19 @@ SSH { ``` MOPS { - port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r - port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru + port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanIfIndex} # InterfaceIndex, access=ru - port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r + port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru port_netmask: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetMask} # IpAddress, access=ru - routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud + port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru port_directed_broadcast: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetdirectedBCMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanId} # VlanId, access=r port_proxy_arp: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceProxyARPMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru + vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud } ``` @@ -6364,19 +6366,19 @@ MOPS { ``` SNMP { - port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r - port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru + port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.2} # InterfaceIndex, access=ru - port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r + port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru port_netmask: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.4} # IpAddress, access=ru - routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud + port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru port_directed_broadcast: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.248} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.1} # VlanId, access=r port_proxy_arp: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru + vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud } ``` @@ -6385,15 +6387,15 @@ SNMP { ``` SSH { - port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru - port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] routing_enabled: {read: "show ip global", write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru + port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru port_directed_broadcast: {write: "ip netdirbcast"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] port_proxy_arp: {write: "ip proxy-arp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru } ``` @@ -6406,19 +6408,19 @@ SSH { ``` MOPS { - port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r - port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru + port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanIfIndex} # InterfaceIndex, access=ru - port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r + port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru port_netmask: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetMask} # IpAddress, access=ru - routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud + port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru port_directed_broadcast: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetdirectedBCMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanId} # VlanId, access=r port_proxy_arp: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceProxyARPMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru + vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud } ``` @@ -6427,19 +6429,19 @@ MOPS { ``` SNMP { - port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r - port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru + port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.2} # InterfaceIndex, access=ru - port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r + port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru port_netmask: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.4} # IpAddress, access=ru - routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud + port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru port_directed_broadcast: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.248} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.1} # VlanId, access=r port_proxy_arp: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru + vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud } ``` @@ -6448,15 +6450,15 @@ SNMP { ``` SSH { - port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru - port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] routing_enabled: {read: "show ip global", write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru + port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru port_directed_broadcast: {write: "ip netdirbcast"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] port_proxy_arp: {write: "ip proxy-arp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru } ``` @@ -6469,19 +6471,19 @@ SSH { ``` MOPS { - port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r - port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru + port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanIfIndex} # InterfaceIndex, access=ru - port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIfIndex} # InterfaceIndex, access=r + port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru port_netmask: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetMask} # IpAddress, access=ru - routing_enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpGroup.hm2AgentSwitchIpRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud + port_mtu: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceMtuValue} # Unsigned32, access=ru port_directed_broadcast: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceNetdirectedBCMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpRedirects} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceRoutingMode} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIcmpUnreachables} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanId} # VlanId, access=r port_proxy_arp: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceProxyARPMode} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpInterfaceEntry.hm2AgentSwitchIpInterfaceIpAddress} # IpAddress, access=ru + vri_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSwitchIpVlanEntry.hm2AgentSwitchIpVlanRoutingStatus} # RowStatus, access=crud } ``` @@ -6490,36 +6492,36 @@ MOPS { ``` SNMP { - port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r - port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru + port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] vri_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.2} # InterfaceIndex, access=ru - port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ifindex: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.1} # InterfaceIndex, access=r + port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru port_netmask: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.4} # IpAddress, access=ru - routing_enabled: {oid: 1.3.6.1.4.1.248.12.2.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud + port_mtu: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.8} # Unsigned32, access=ru port_directed_broadcast: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.248} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] vri_vlan_id: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.1} # VlanId, access=r port_proxy_arp: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.7} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {oid: 1.3.6.1.4.1.248.12.2.2.3.1.3} # IpAddress, access=ru + vri_status: {oid: 1.3.6.1.4.1.248.12.2.2.5.1.3} # RowStatus, access=crud } ```
SSH sources (9/13 attrs) -``` -SSH { - port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru - port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_netmask: {read: "show ip interface"} # IpAddress, access=ru +``` +SSH { + port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] routing_enabled: {read: "show ip global", write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru + port_netmask: {read: "show ip interface"} # IpAddress, access=ru + port_mtu: {write: "ip mtu {value}"} # Unsigned32, access=ru port_directed_broadcast: {write: "ip netdirbcast"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_icmp_redirects: {write: "ip icmp redirects"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_routing_mode: {write: "ip routing"} # HmEnabledStatus, access=ru, allowed=[True, False] + port_icmp_unreachables: {write: "ip icmp unreachables"} # HmEnabledStatus, access=ru, allowed=[True, False] port_proxy_arp: {write: "ip proxy-arp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - port_ip_address: {read: "show ip interface", write: "ip address primary {value} {netmask}"} # IpAddress, access=ru } ```
@@ -6550,12 +6552,12 @@ get_rstp() -> { ``` MOPS { + hello_time: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeHelloTime} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpBpduGuardMode} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgePriority} # Unsigned32, access=ru, range=0–61440 enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpAdminMode} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeMaxAge} # Unsigned32, access=ru, range=6–40 forward_delay: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeFwdDelay} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpBpduGuardMode} # HmEnabledStatus, access=ru, allowed=[True, False] - hello_time: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeHelloTime} # Unsigned32, access=ru, range=1–2 + max_age: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeMaxAge} # Unsigned32, access=ru, range=6–40 } ``` @@ -6564,12 +6566,12 @@ MOPS { ``` SNMP { + hello_time: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.7, method: get} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {oid: 1.3.6.1.4.1.248.12.1.2.15.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.11, method: get} # Unsigned32, access=ru, range=0–61440 enabled: {oid: 1.3.6.1.4.1.248.12.1.2.15.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.9, method: get} # Unsigned32, access=ru, range=6–40 forward_delay: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.6, method: get} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {oid: 1.3.6.1.4.1.248.12.1.2.15.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - hello_time: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.7, method: get} # Unsigned32, access=ru, range=1–2 + max_age: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.9, method: get} # Unsigned32, access=ru, range=6–40 } ``` @@ -6578,12 +6580,12 @@ SNMP { ``` SSH { + hello_time: {read: "show spanning-tree global", write: "spanning-tree drstp hello-time {value}"} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {read: "show spanning-tree global", write: "spanning-tree bpdu-guard"} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {read: "show spanning-tree global", write: "spanning-tree drstp mst priority 0 {value}"} # Unsigned32, access=ru, range=0–61440 enabled: {read: "show spanning-tree global", write: "spanning-tree operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {read: "show spanning-tree global", write: "spanning-tree drstp max-age {value}"} # Unsigned32, access=ru, range=6–40 forward_delay: {read: "show spanning-tree global", write: "spanning-tree drstp forward-time {value}"} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {read: "show spanning-tree global", write: "spanning-tree bpdu-guard"} # HmEnabledStatus, access=ru, allowed=[True, False] - hello_time: {read: "show spanning-tree global", write: "spanning-tree drstp hello-time {value}"} # Unsigned32, access=ru, range=1–2 + max_age: {read: "show spanning-tree global", write: "spanning-tree drstp max-age {value}"} # Unsigned32, access=ru, range=6–40 } ``` @@ -6596,15 +6598,15 @@ SSH { ``` MOPS { + port_path_cost: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortPathCost} # Unsigned32, access=ru, range=0–200000000 + hello_time: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeHelloTime} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpBpduGuardMode} # HmEnabledStatus, access=ru, allowed=[True, False] + edge_port: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortEdge} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgePriority} # Unsigned32, access=ru, range=0–61440 enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpAdminMode} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeMaxAge} # Unsigned32, access=ru, range=6–40 - port_path_cost: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortPathCost} # Unsigned32, access=ru, range=0–200000000 forward_delay: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeFwdDelay} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpBpduGuardMode} # HmEnabledStatus, access=ru, allowed=[True, False] port_priority: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortPriority} # Unsigned32, access=ru, range=0–240 - hello_time: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeHelloTime} # Unsigned32, access=ru, range=1–2 - edge_port: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortEdge} # HmEnabledStatus, access=ru, allowed=[True, False] + max_age: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeMaxAge} # Unsigned32, access=ru, range=6–40 } ``` @@ -6613,15 +6615,15 @@ MOPS { ``` SNMP { + port_path_cost: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.7} # Unsigned32, access=ru, range=0–200000000 + hello_time: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.7, method: get} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {oid: 1.3.6.1.4.1.248.12.1.2.15.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + edge_port: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.11, method: get} # Unsigned32, access=ru, range=0–61440 enabled: {oid: 1.3.6.1.4.1.248.12.1.2.15.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.9, method: get} # Unsigned32, access=ru, range=6–40 - port_path_cost: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.7} # Unsigned32, access=ru, range=0–200000000 forward_delay: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.6, method: get} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {oid: 1.3.6.1.4.1.248.12.1.2.15.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] port_priority: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.8} # Unsigned32, access=ru, range=0–240 - hello_time: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.7, method: get} # Unsigned32, access=ru, range=1–2 - edge_port: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] + max_age: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.9, method: get} # Unsigned32, access=ru, range=6–40 } ``` @@ -6630,15 +6632,15 @@ SNMP { ``` SSH { + port_path_cost: {read: "show spanning-tree port {index}", write: "spanning-tree cost {value}"} # Unsigned32, access=ru, range=0–200000000 + hello_time: {read: "show spanning-tree global", write: "spanning-tree drstp hello-time {value}"} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {read: "show spanning-tree global", write: "spanning-tree bpdu-guard"} # HmEnabledStatus, access=ru, allowed=[True, False] + edge_port: {read: "show spanning-tree port {index}", write: "spanning-tree edge-port"} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {read: "show spanning-tree global", write: "spanning-tree drstp mst priority 0 {value}"} # Unsigned32, access=ru, range=0–61440 enabled: {read: "show spanning-tree global", write: "spanning-tree operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {read: "show spanning-tree global", write: "spanning-tree drstp max-age {value}"} # Unsigned32, access=ru, range=6–40 - port_path_cost: {read: "show spanning-tree port {index}", write: "spanning-tree cost {value}"} # Unsigned32, access=ru, range=0–200000000 forward_delay: {read: "show spanning-tree global", write: "spanning-tree drstp forward-time {value}"} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {read: "show spanning-tree global", write: "spanning-tree bpdu-guard"} # HmEnabledStatus, access=ru, allowed=[True, False] port_priority: {read: "show spanning-tree port {index}", write: "spanning-tree priority {value}"} # Unsigned32, access=ru, range=0–240 - hello_time: {read: "show spanning-tree global", write: "spanning-tree drstp hello-time {value}"} # Unsigned32, access=ru, range=1–2 - edge_port: {read: "show spanning-tree port {index}", write: "spanning-tree edge-port"} # HmEnabledStatus, access=ru, allowed=[True, False] + max_age: {read: "show spanning-tree global", write: "spanning-tree drstp max-age {value}"} # Unsigned32, access=ru, range=6–40 } ``` @@ -6662,8 +6664,8 @@ get_rstp_port() -> { ``` MOPS { - edge_port: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortEdge} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgePriority} # Unsigned32, access=ru, range=0–61440 + edge_port: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortEdge} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpAdminMode} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -6673,8 +6675,8 @@ MOPS { ``` SNMP { - edge_port: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.11, method: get} # Unsigned32, access=ru, range=0–61440 + edge_port: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.12.1.2.15.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -6684,8 +6686,8 @@ SNMP { ``` SSH { - edge_port: {read: "show spanning-tree port {index}", write: "spanning-tree edge-port"} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {read: "show spanning-tree global", write: "spanning-tree drstp mst priority 0 {value}"} # Unsigned32, access=ru, range=0–61440 + edge_port: {read: "show spanning-tree port {index}", write: "spanning-tree edge-port"} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {read: "show spanning-tree global", write: "spanning-tree operation"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -6699,15 +6701,15 @@ SSH { ``` MOPS { + port_path_cost: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortPathCost} # Unsigned32, access=ru, range=0–200000000 + hello_time: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeHelloTime} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpBpduGuardMode} # HmEnabledStatus, access=ru, allowed=[True, False] + edge_port: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortEdge} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgePriority} # Unsigned32, access=ru, range=0–61440 enabled: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpAdminMode} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeMaxAge} # Unsigned32, access=ru, range=6–40 - port_path_cost: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortPathCost} # Unsigned32, access=ru, range=0–200000000 forward_delay: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeFwdDelay} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpSwitchConfigGroup.hm2AgentStpBpduGuardMode} # HmEnabledStatus, access=ru, allowed=[True, False] port_priority: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortPriority} # Unsigned32, access=ru, range=0–240 - hello_time: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeHelloTime} # Unsigned32, access=ru, range=1–2 - edge_port: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstPortEntry.hm2AgentStpCstPortEdge} # HmEnabledStatus, access=ru, allowed=[True, False] + max_age: {HM2-PLATFORM-SWITCHING-MIB / hm2AgentStpCstConfigGroup.hm2AgentStpCstBridgeMaxAge} # Unsigned32, access=ru, range=6–40 } ``` @@ -6716,15 +6718,15 @@ MOPS { ``` SNMP { + port_path_cost: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.7} # Unsigned32, access=ru, range=0–200000000 + hello_time: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.7, method: get} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {oid: 1.3.6.1.4.1.248.12.1.2.15.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + edge_port: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.11, method: get} # Unsigned32, access=ru, range=0–61440 enabled: {oid: 1.3.6.1.4.1.248.12.1.2.15.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.9, method: get} # Unsigned32, access=ru, range=6–40 - port_path_cost: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.7} # Unsigned32, access=ru, range=0–200000000 forward_delay: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.6, method: get} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {oid: 1.3.6.1.4.1.248.12.1.2.15.13, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] port_priority: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.8} # Unsigned32, access=ru, range=0–240 - hello_time: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.7, method: get} # Unsigned32, access=ru, range=1–2 - edge_port: {oid: 1.3.6.1.4.1.248.12.1.2.15.9.1.4} # HmEnabledStatus, access=ru, allowed=[True, False] + max_age: {oid: 1.3.6.1.4.1.248.12.1.2.15.8.9, method: get} # Unsigned32, access=ru, range=6–40 } ``` @@ -6733,15 +6735,15 @@ SNMP { ``` SSH { + port_path_cost: {read: "show spanning-tree port {index}", write: "spanning-tree cost {value}"} # Unsigned32, access=ru, range=0–200000000 + hello_time: {read: "show spanning-tree global", write: "spanning-tree drstp hello-time {value}"} # Unsigned32, access=ru, range=1–2 + bpdu_guard: {read: "show spanning-tree global", write: "spanning-tree bpdu-guard"} # HmEnabledStatus, access=ru, allowed=[True, False] + edge_port: {read: "show spanning-tree port {index}", write: "spanning-tree edge-port"} # HmEnabledStatus, access=ru, allowed=[True, False] priority: {read: "show spanning-tree global", write: "spanning-tree drstp mst priority 0 {value}"} # Unsigned32, access=ru, range=0–61440 enabled: {read: "show spanning-tree global", write: "spanning-tree operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - max_age: {read: "show spanning-tree global", write: "spanning-tree drstp max-age {value}"} # Unsigned32, access=ru, range=6–40 - port_path_cost: {read: "show spanning-tree port {index}", write: "spanning-tree cost {value}"} # Unsigned32, access=ru, range=0–200000000 forward_delay: {read: "show spanning-tree global", write: "spanning-tree drstp forward-time {value}"} # Unsigned32, access=ru, range=4–30 - bpdu_guard: {read: "show spanning-tree global", write: "spanning-tree bpdu-guard"} # HmEnabledStatus, access=ru, allowed=[True, False] port_priority: {read: "show spanning-tree port {index}", write: "spanning-tree priority {value}"} # Unsigned32, access=ru, range=0–240 - hello_time: {read: "show spanning-tree global", write: "spanning-tree drstp hello-time {value}"} # Unsigned32, access=ru, range=1–2 - edge_port: {read: "show spanning-tree port {index}", write: "spanning-tree edge-port"} # HmEnabledStatus, access=ru, allowed=[True, False] + max_age: {read: "show spanning-tree global", write: "spanning-tree drstp max-age {value}"} # Unsigned32, access=ru, range=6–40 } ``` @@ -6781,15 +6783,15 @@ get_services() -> { ``` MOPS { https_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpsPortNumber} # InetPortNumber, access=ru - http_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshPortNumber} # InetPortNumber, access=ru - snmp_v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - https_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpsAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessTelnetGroup.hm2TelnetServerAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + https_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpsAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + http_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] http_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpPortNumber} # InetPortNumber, access=ru + snmp_v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshPortNumber} # InetPortNumber, access=ru ssh_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_v1_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV1AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessTelnetGroup.hm2TelnetServerPort} # InetPortNumber, access=ru } ``` @@ -6800,15 +6802,15 @@ MOPS { ``` SNMP { https_port: {oid: 1.3.6.1.4.1.248.11.25.1.2.4, method: get} # InetPortNumber, access=ru - http_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh_port: {oid: 1.3.6.1.4.1.248.11.25.1.4.3, method: get} # InetPortNumber, access=ru - snmp_v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - https_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + https_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + http_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] http_port: {oid: 1.3.6.1.4.1.248.11.25.1.2.3, method: get} # InetPortNumber, access=ru + snmp_v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh_port: {oid: 1.3.6.1.4.1.248.11.25.1.4.3, method: get} # InetPortNumber, access=ru ssh_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_v1_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_port: {oid: 1.3.6.1.4.1.248.11.25.1.3.2, method: get} # InetPortNumber, access=ru } ``` @@ -6819,15 +6821,15 @@ SNMP { ``` SSH { https_port: {read: "show https"} # InetPortNumber, access=ru - http_enabled: {read: "show http"} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh_port: {read: "show ssh server"} # InetPortNumber, access=ru - snmp_v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] - https_enabled: {read: "show https"} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_enabled: {read: "show telnet"} # HmEnabledStatus, access=ru, allowed=[True, False] + https_enabled: {read: "show https"} # HmEnabledStatus, access=ru, allowed=[True, False] + http_enabled: {read: "show http"} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] http_port: {read: "show http"} # InetPortNumber, access=ru + snmp_v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh_port: {read: "show ssh server"} # InetPortNumber, access=ru ssh_enabled: {read: "show ssh server"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_v1_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_port: {read: "show telnet"} # InetPortNumber, access=ru } ``` @@ -6842,15 +6844,15 @@ SSH { ``` MOPS { https_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpsPortNumber} # InetPortNumber, access=ru - snmp_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru - http_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshPortNumber} # InetPortNumber, access=ru - snmp_v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - https_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpsAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessTelnetGroup.hm2TelnetServerAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + https_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpsAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + http_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru http_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebHttpPortNumber} # InetPortNumber, access=ru + snmp_v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshPortNumber} # InetPortNumber, access=ru ssh_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_v1_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV1AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessTelnetGroup.hm2TelnetServerPort} # InetPortNumber, access=ru } @@ -6862,15 +6864,15 @@ MOPS { ``` SNMP { https_port: {oid: 1.3.6.1.4.1.248.11.25.1.2.4, method: get} # InetPortNumber, access=ru - snmp_port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru - http_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh_port: {oid: 1.3.6.1.4.1.248.11.25.1.4.3, method: get} # InetPortNumber, access=ru - snmp_v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - https_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.3.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + https_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + http_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru http_port: {oid: 1.3.6.1.4.1.248.11.25.1.2.3, method: get} # InetPortNumber, access=ru + snmp_v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh_port: {oid: 1.3.6.1.4.1.248.11.25.1.4.3, method: get} # InetPortNumber, access=ru ssh_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.4.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_v1_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_port: {oid: 1.3.6.1.4.1.248.11.25.1.3.2, method: get} # InetPortNumber, access=ru } @@ -6882,15 +6884,15 @@ SNMP { ``` SSH { https_port: {read: "show https"} # InetPortNumber, access=ru - snmp_port: {read: "show snmp access"} # InetPortNumber, access=ru - http_enabled: {read: "show http"} # HmEnabledStatus, access=ru, allowed=[True, False] - ssh_port: {read: "show ssh server"} # InetPortNumber, access=ru - snmp_v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] - https_enabled: {read: "show https"} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_enabled: {read: "show telnet"} # HmEnabledStatus, access=ru, allowed=[True, False] + https_enabled: {read: "show https"} # HmEnabledStatus, access=ru, allowed=[True, False] + http_enabled: {read: "show http"} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + snmp_port: {read: "show snmp access"} # InetPortNumber, access=ru http_port: {read: "show http"} # InetPortNumber, access=ru + snmp_v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + ssh_port: {read: "show ssh server"} # InetPortNumber, access=ru ssh_enabled: {read: "show ssh server"} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_v1_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] telnet_port: {read: "show telnet"} # InetPortNumber, access=ru } @@ -6922,8 +6924,8 @@ get_session_config() -> { ``` MOPS { telnet_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessTelnetGroup.hm2TelnetServerSessionsTimeOut} # Integer32, access=ru, range=0–160 - ssh_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshSessionTimeout} # Integer32, access=ru, range=0–160 web_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebIntfTimeOut} # Integer32, access=ru, range=0–160 + ssh_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshSessionTimeout} # Integer32, access=ru, range=0–160 max_ssh_sessions: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshMaxSessionsCount} # Integer32, access=ru, range=1–5 } ``` @@ -6934,8 +6936,8 @@ MOPS { ``` SNMP { telnet_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.3.5, method: get} # Integer32, access=ru, range=0–160 - ssh_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.4.6, method: get} # Integer32, access=ru, range=0–160 web_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.2.8, method: get} # Integer32, access=ru, range=0–160 + ssh_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.4.6, method: get} # Integer32, access=ru, range=0–160 max_ssh_sessions: {oid: 1.3.6.1.4.1.248.11.25.1.4.5, method: get} # Integer32, access=ru, range=1–5 } ``` @@ -6961,8 +6963,8 @@ SSH { ``` MOPS { telnet_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessTelnetGroup.hm2TelnetServerSessionsTimeOut} # Integer32, access=ru, range=0–160 - ssh_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshSessionTimeout} # Integer32, access=ru, range=0–160 web_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessWebGroup.hm2WebIntfTimeOut} # Integer32, access=ru, range=0–160 + ssh_timeout: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshSessionTimeout} # Integer32, access=ru, range=0–160 max_ssh_sessions: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSshGroup.hm2SshMaxSessionsCount} # Integer32, access=ru, range=1–5 } ``` @@ -6973,8 +6975,8 @@ MOPS { ``` SNMP { telnet_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.3.5, method: get} # Integer32, access=ru, range=0–160 - ssh_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.4.6, method: get} # Integer32, access=ru, range=0–160 web_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.2.8, method: get} # Integer32, access=ru, range=0–160 + ssh_timeout: {oid: 1.3.6.1.4.1.248.11.25.1.4.6, method: get} # Integer32, access=ru, range=0–160 max_ssh_sessions: {oid: 1.3.6.1.4.1.248.11.25.1.4.5, method: get} # Integer32, access=ru, range=1–5 } ``` @@ -7019,13 +7021,13 @@ get_sflow_receiver() -> { ``` MOPS { - receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 - timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 port: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrPort} # Integer32, access=ru max_datagram_size: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrMaximumDatagramSize} # Integer32, access=ru - datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru + receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 address: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrAddress} # InetAddress, access=ru + datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru owner: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrOwner} # OwnerString, access=ru + timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7034,13 +7036,13 @@ MOPS { ``` SNMP { - receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.1} # Integer32, access=r, range=1–65535 - timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 port: {oid: 1.3.6.1.4.1.14706.1.1.4.1.7} # Integer32, access=ru max_datagram_size: {oid: 1.3.6.1.4.1.14706.1.1.4.1.4} # Integer32, access=ru - datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru + receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # Integer32, access=r, range=1–65535 address: {oid: 1.3.6.1.4.1.14706.1.1.4.1.6} # InetAddress, access=ru + datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru owner: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # OwnerString, access=ru + timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7049,9 +7051,9 @@ SNMP { ``` SSH { - timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 address: {read: "show sflow receivers"} # InetAddress, access=ru owner: {read: "show sflow receivers"} # OwnerString, access=ru + timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7064,20 +7066,20 @@ SSH { ``` MOPS { - receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 - timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 - interval: {SFLOW-MIB / sFlowCpEntry.sFlowCpInterval} # Integer32, access=ru - poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru port: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrPort} # Integer32, access=ru + poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru + sampler_receiver: {SFLOW-MIB / sFlowFsEntry.sFlowFsReceiver} # SFlowReceiver, access=ru + poller_datasource: {SFLOW-MIB / sFlowCpEntry.sFlowCpDataSource} # SFlowDataSource, access=r + max_datagram_size: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrMaximumDatagramSize} # Integer32, access=ru max_header_size: {SFLOW-MIB / sFlowFsEntry.sFlowFsMaximumHeaderSize} # Integer32, access=ru + interval: {SFLOW-MIB / sFlowCpEntry.sFlowCpInterval} # Integer32, access=ru + receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 sampler_datasource: {SFLOW-MIB / sFlowFsEntry.sFlowFsDataSource} # SFlowDataSource, access=r - sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru - max_datagram_size: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrMaximumDatagramSize} # Integer32, access=ru - datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru - poller_datasource: {SFLOW-MIB / sFlowCpEntry.sFlowCpDataSource} # SFlowDataSource, access=r address: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrAddress} # InetAddress, access=ru + datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru + sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru owner: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrOwner} # OwnerString, access=ru - sampler_receiver: {SFLOW-MIB / sFlowFsEntry.sFlowFsReceiver} # SFlowReceiver, access=ru + timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7086,20 +7088,20 @@ MOPS { ``` SNMP { - receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.1} # Integer32, access=r, range=1–65535 - timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 - interval: {oid: 1.3.6.1.4.1.14706.1.1.6.1.4} # Integer32, access=ru - poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru port: {oid: 1.3.6.1.4.1.14706.1.1.4.1.7} # Integer32, access=ru - max_header_size: {oid: 1.3.6.1.4.1.14706.1.1.5.1.5} # Integer32, access=ru - sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.1} # SFlowDataSource, access=r - sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru + poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru + sampler_receiver: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowReceiver, access=ru + poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowDataSource, access=r max_datagram_size: {oid: 1.3.6.1.4.1.14706.1.1.4.1.4} # Integer32, access=ru - datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru - poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.1} # SFlowDataSource, access=r + max_header_size: {oid: 1.3.6.1.4.1.14706.1.1.5.1.5} # Integer32, access=ru + interval: {oid: 1.3.6.1.4.1.14706.1.1.6.1.4} # Integer32, access=ru + receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # Integer32, access=r, range=1–65535 + sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowDataSource, access=r address: {oid: 1.3.6.1.4.1.14706.1.1.4.1.6} # InetAddress, access=ru + datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru + sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru owner: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # OwnerString, access=ru - sampler_receiver: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowReceiver, access=ru + timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7108,15 +7110,15 @@ SNMP { ``` SSH { - timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 - interval: {read: "show sflow pollers", write: "sflow poller interval {value}"} # Integer32, access=ru poller_receiver: {read: "show sflow pollers", write: "sflow poller receiver {value}"} # SFlowReceiver, access=ru - sampler_datasource: {read: "show sflow samplers"} # SFlowDataSource, access=r - sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru + sampler_receiver: {read: "show sflow samplers", write: "sflow sampler receiver {value}"} # SFlowReceiver, access=ru poller_datasource: {read: "show sflow pollers"} # SFlowDataSource, access=r + interval: {read: "show sflow pollers", write: "sflow poller interval {value}"} # Integer32, access=ru + sampler_datasource: {read: "show sflow samplers"} # SFlowDataSource, access=r address: {read: "show sflow receivers"} # InetAddress, access=ru + sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru owner: {read: "show sflow receivers"} # OwnerString, access=ru - sampler_receiver: {read: "show sflow samplers", write: "sflow sampler receiver {value}"} # SFlowReceiver, access=ru + timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7142,8 +7144,8 @@ get_sflow_sampler() -> { MOPS { max_header_size: {SFLOW-MIB / sFlowFsEntry.sFlowFsMaximumHeaderSize} # Integer32, access=ru sampler_datasource: {SFLOW-MIB / sFlowFsEntry.sFlowFsDataSource} # SFlowDataSource, access=r - sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru sampler_receiver: {SFLOW-MIB / sFlowFsEntry.sFlowFsReceiver} # SFlowReceiver, access=ru + sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru } ``` @@ -7153,9 +7155,9 @@ MOPS { ``` SNMP { max_header_size: {oid: 1.3.6.1.4.1.14706.1.1.5.1.5} # Integer32, access=ru - sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.1} # SFlowDataSource, access=r - sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru + sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowDataSource, access=r sampler_receiver: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowReceiver, access=ru + sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru } ``` @@ -7165,8 +7167,8 @@ SNMP { ``` SSH { sampler_datasource: {read: "show sflow samplers"} # SFlowDataSource, access=r - sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru sampler_receiver: {read: "show sflow samplers", write: "sflow sampler receiver {value}"} # SFlowReceiver, access=ru + sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru } ``` @@ -7179,20 +7181,20 @@ SSH { ``` MOPS { - receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 - timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 - interval: {SFLOW-MIB / sFlowCpEntry.sFlowCpInterval} # Integer32, access=ru - poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru port: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrPort} # Integer32, access=ru + poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru + sampler_receiver: {SFLOW-MIB / sFlowFsEntry.sFlowFsReceiver} # SFlowReceiver, access=ru + poller_datasource: {SFLOW-MIB / sFlowCpEntry.sFlowCpDataSource} # SFlowDataSource, access=r + max_datagram_size: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrMaximumDatagramSize} # Integer32, access=ru max_header_size: {SFLOW-MIB / sFlowFsEntry.sFlowFsMaximumHeaderSize} # Integer32, access=ru + interval: {SFLOW-MIB / sFlowCpEntry.sFlowCpInterval} # Integer32, access=ru + receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 sampler_datasource: {SFLOW-MIB / sFlowFsEntry.sFlowFsDataSource} # SFlowDataSource, access=r - sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru - max_datagram_size: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrMaximumDatagramSize} # Integer32, access=ru - datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru - poller_datasource: {SFLOW-MIB / sFlowCpEntry.sFlowCpDataSource} # SFlowDataSource, access=r address: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrAddress} # InetAddress, access=ru + datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru + sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru owner: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrOwner} # OwnerString, access=ru - sampler_receiver: {SFLOW-MIB / sFlowFsEntry.sFlowFsReceiver} # SFlowReceiver, access=ru + timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7201,20 +7203,20 @@ MOPS { ``` SNMP { - receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.1} # Integer32, access=r, range=1–65535 - timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 - interval: {oid: 1.3.6.1.4.1.14706.1.1.6.1.4} # Integer32, access=ru - poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru port: {oid: 1.3.6.1.4.1.14706.1.1.4.1.7} # Integer32, access=ru - max_header_size: {oid: 1.3.6.1.4.1.14706.1.1.5.1.5} # Integer32, access=ru - sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.1} # SFlowDataSource, access=r - sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru + poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru + sampler_receiver: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowReceiver, access=ru + poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowDataSource, access=r max_datagram_size: {oid: 1.3.6.1.4.1.14706.1.1.4.1.4} # Integer32, access=ru - datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru - poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.1} # SFlowDataSource, access=r + max_header_size: {oid: 1.3.6.1.4.1.14706.1.1.5.1.5} # Integer32, access=ru + interval: {oid: 1.3.6.1.4.1.14706.1.1.6.1.4} # Integer32, access=ru + receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # Integer32, access=r, range=1–65535 + sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowDataSource, access=r address: {oid: 1.3.6.1.4.1.14706.1.1.4.1.6} # InetAddress, access=ru + datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru + sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru owner: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # OwnerString, access=ru - sampler_receiver: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowReceiver, access=ru + timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7223,15 +7225,15 @@ SNMP { ``` SSH { - timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 - interval: {read: "show sflow pollers", write: "sflow poller interval {value}"} # Integer32, access=ru poller_receiver: {read: "show sflow pollers", write: "sflow poller receiver {value}"} # SFlowReceiver, access=ru - sampler_datasource: {read: "show sflow samplers"} # SFlowDataSource, access=r - sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru + sampler_receiver: {read: "show sflow samplers", write: "sflow sampler receiver {value}"} # SFlowReceiver, access=ru poller_datasource: {read: "show sflow pollers"} # SFlowDataSource, access=r + interval: {read: "show sflow pollers", write: "sflow poller interval {value}"} # Integer32, access=ru + sampler_datasource: {read: "show sflow samplers"} # SFlowDataSource, access=r address: {read: "show sflow receivers"} # InetAddress, access=ru + sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru owner: {read: "show sflow receivers"} # OwnerString, access=ru - sampler_receiver: {read: "show sflow samplers", write: "sflow sampler receiver {value}"} # SFlowReceiver, access=ru + timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7254,8 +7256,8 @@ get_sflow_poller() -> { ``` MOPS { - poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru interval: {SFLOW-MIB / sFlowCpEntry.sFlowCpInterval} # Integer32, access=ru + poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru poller_datasource: {SFLOW-MIB / sFlowCpEntry.sFlowCpDataSource} # SFlowDataSource, access=r } ``` @@ -7265,9 +7267,9 @@ MOPS { ``` SNMP { - poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru interval: {oid: 1.3.6.1.4.1.14706.1.1.6.1.4} # Integer32, access=ru - poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.1} # SFlowDataSource, access=r + poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru + poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowDataSource, access=r } ``` @@ -7276,8 +7278,8 @@ SNMP { ``` SSH { - poller_receiver: {read: "show sflow pollers", write: "sflow poller receiver {value}"} # SFlowReceiver, access=ru interval: {read: "show sflow pollers", write: "sflow poller interval {value}"} # Integer32, access=ru + poller_receiver: {read: "show sflow pollers", write: "sflow poller receiver {value}"} # SFlowReceiver, access=ru poller_datasource: {read: "show sflow pollers"} # SFlowDataSource, access=r } ``` @@ -7291,20 +7293,20 @@ SSH { ``` MOPS { - receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 - timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 - interval: {SFLOW-MIB / sFlowCpEntry.sFlowCpInterval} # Integer32, access=ru - poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru port: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrPort} # Integer32, access=ru + poller_receiver: {SFLOW-MIB / sFlowCpEntry.sFlowCpReceiver} # SFlowReceiver, access=ru + sampler_receiver: {SFLOW-MIB / sFlowFsEntry.sFlowFsReceiver} # SFlowReceiver, access=ru + poller_datasource: {SFLOW-MIB / sFlowCpEntry.sFlowCpDataSource} # SFlowDataSource, access=r + max_datagram_size: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrMaximumDatagramSize} # Integer32, access=ru max_header_size: {SFLOW-MIB / sFlowFsEntry.sFlowFsMaximumHeaderSize} # Integer32, access=ru + interval: {SFLOW-MIB / sFlowCpEntry.sFlowCpInterval} # Integer32, access=ru + receiver_index: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrIndex} # Integer32, access=r, range=1–65535 sampler_datasource: {SFLOW-MIB / sFlowFsEntry.sFlowFsDataSource} # SFlowDataSource, access=r - sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru - max_datagram_size: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrMaximumDatagramSize} # Integer32, access=ru - datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru - poller_datasource: {SFLOW-MIB / sFlowCpEntry.sFlowCpDataSource} # SFlowDataSource, access=r address: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrAddress} # InetAddress, access=ru + datagram_version: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrDatagramVersion} # Integer32, access=ru + sampling_rate: {SFLOW-MIB / sFlowFsEntry.sFlowFsPacketSamplingRate} # Integer32, access=ru owner: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrOwner} # OwnerString, access=ru - sampler_receiver: {SFLOW-MIB / sFlowFsEntry.sFlowFsReceiver} # SFlowReceiver, access=ru + timeout: {SFLOW-MIB / sFlowRcvrEntry.sFlowRcvrTimeout} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7313,20 +7315,20 @@ MOPS { ``` SNMP { - receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.1} # Integer32, access=r, range=1–65535 - timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 - interval: {oid: 1.3.6.1.4.1.14706.1.1.6.1.4} # Integer32, access=ru - poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru port: {oid: 1.3.6.1.4.1.14706.1.1.4.1.7} # Integer32, access=ru - max_header_size: {oid: 1.3.6.1.4.1.14706.1.1.5.1.5} # Integer32, access=ru - sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.1} # SFlowDataSource, access=r - sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru + poller_receiver: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowReceiver, access=ru + sampler_receiver: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowReceiver, access=ru + poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.3} # SFlowDataSource, access=r max_datagram_size: {oid: 1.3.6.1.4.1.14706.1.1.4.1.4} # Integer32, access=ru - datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru - poller_datasource: {oid: 1.3.6.1.4.1.14706.1.1.6.1.1} # SFlowDataSource, access=r + max_header_size: {oid: 1.3.6.1.4.1.14706.1.1.5.1.5} # Integer32, access=ru + interval: {oid: 1.3.6.1.4.1.14706.1.1.6.1.4} # Integer32, access=ru + receiver_index: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # Integer32, access=r, range=1–65535 + sampler_datasource: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowDataSource, access=r address: {oid: 1.3.6.1.4.1.14706.1.1.4.1.6} # InetAddress, access=ru + datagram_version: {oid: 1.3.6.1.4.1.14706.1.1.4.1.8} # Integer32, access=ru + sampling_rate: {oid: 1.3.6.1.4.1.14706.1.1.5.1.4} # Integer32, access=ru owner: {oid: 1.3.6.1.4.1.14706.1.1.4.1.2} # OwnerString, access=ru - sampler_receiver: {oid: 1.3.6.1.4.1.14706.1.1.5.1.3} # SFlowReceiver, access=ru + timeout: {oid: 1.3.6.1.4.1.14706.1.1.4.1.3} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7335,15 +7337,15 @@ SNMP { ``` SSH { - timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 - interval: {read: "show sflow pollers", write: "sflow poller interval {value}"} # Integer32, access=ru poller_receiver: {read: "show sflow pollers", write: "sflow poller receiver {value}"} # SFlowReceiver, access=ru - sampler_datasource: {read: "show sflow samplers"} # SFlowDataSource, access=r - sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru + sampler_receiver: {read: "show sflow samplers", write: "sflow sampler receiver {value}"} # SFlowReceiver, access=ru poller_datasource: {read: "show sflow pollers"} # SFlowDataSource, access=r + interval: {read: "show sflow pollers", write: "sflow poller interval {value}"} # Integer32, access=ru + sampler_datasource: {read: "show sflow samplers"} # SFlowDataSource, access=r address: {read: "show sflow receivers"} # InetAddress, access=ru + sampling_rate: {read: "show sflow samplers", write: "sflow sampler rate {value}"} # Integer32, access=ru owner: {read: "show sflow receivers"} # OwnerString, access=ru - sampler_receiver: {read: "show sflow samplers", write: "sflow sampler receiver {value}"} # SFlowReceiver, access=ru + timeout: {read: "show sflow receivers"} # Integer32, access=ru, range=-1–2147483647 } ``` @@ -7387,23 +7389,23 @@ get_signal_contact() -> { ``` MOPS { - sense_if_link_alarm: {HM2-DIAGNOSTIC-MIB / hm2SigConInterfaceEntry.hm2SigConSenseIfLinkAlarm} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseFan} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_module_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseModuleRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] sense_link_failure: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseLinkFailure} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan_module: {HM2-DIAGNOSTIC-MIB / hm2SigConFanModuleEntry.hm2SigConSenseFanModule} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_ring_redundancy: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseRingRedundancy} # HmEnabledStatus, access=ru, allowed=[True, False] - contact_id: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConID} # Integer32, access=r, range=1–2 - trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] sense_module: {HM2-DIAGNOSTIC-MIB / hm2SigConModuleEntry.hm2SigConSenseModule} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_envm_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseExtNvmRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_humidity: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseHumidity} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_module_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseModuleRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] + contact_id: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConID} # Integer32, access=r, range=1–2 sense_temperature: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseTemperature} # HmEnabledStatus, access=ru, allowed=[True, False] sense_stp_port_block: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseStpPortBlock} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConOperState} # INTEGER, access=r, allowed=['open', 'close'] + sense_fan_module: {HM2-DIAGNOSTIC-MIB / hm2SigConFanModuleEntry.hm2SigConSenseFanModule} # HmEnabledStatus, access=ru, allowed=[True, False] sense_envm_not_in_sync: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseExtNvmNotInSync} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_if_link_alarm: {HM2-DIAGNOSTIC-MIB / hm2SigConInterfaceEntry.hm2SigConSenseIfLinkAlarm} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_envm_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseExtNvmRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_fan: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseFan} # HmEnabledStatus, access=ru, allowed=[True, False] sense_ethernet_loops: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseEthernetLoops} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConOperState} # INTEGER, access=r, allowed=['open', 'close'] sense_ps_state: {HM2-DIAGNOSTIC-MIB / hm2SigConPSEntry.hm2SigConSensePSState} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_ring_redundancy: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseRingRedundancy} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_humidity: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseHumidity} # HmEnabledStatus, access=ru, allowed=[True, False] mode: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConMode} # INTEGER, access=ru, allowed=['manual', 'monitor', 'deviceState', 'deviceSecurity', 'deviceStateAndSecurity'] } ``` @@ -7413,23 +7415,23 @@ MOPS { ``` SNMP { - sense_if_link_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.3.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_module_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] sense_link_failure: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.9} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan_module: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.5.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_ring_redundancy: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.15} # HmEnabledStatus, access=ru, allowed=[True, False] - contact_id: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.1} # Integer32, access=r, range=1–2 - trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] sense_module: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.4.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_envm_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_humidity: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.17} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_module_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + contact_id: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.1} # Integer32, access=r, range=1–2 sense_temperature: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] sense_stp_port_block: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.18} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.6} # INTEGER, access=r, allowed=['open', 'close'] + sense_fan_module: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.5.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] sense_envm_not_in_sync: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.14} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_if_link_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.3.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_envm_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_fan: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] sense_ethernet_loops: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.16} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.6} # INTEGER, access=r, allowed=['open', 'close'] sense_ps_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_ring_redundancy: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.15} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_humidity: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.17} # HmEnabledStatus, access=ru, allowed=[True, False] mode: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.5} # INTEGER, access=ru, allowed=['manual', 'monitor', 'deviceState', 'deviceSecurity', 'deviceStateAndSecurity'] } ``` @@ -7443,23 +7445,23 @@ SNMP { ``` MOPS { - sense_if_link_alarm: {HM2-DIAGNOSTIC-MIB / hm2SigConInterfaceEntry.hm2SigConSenseIfLinkAlarm} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseFan} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_module_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseModuleRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] sense_link_failure: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseLinkFailure} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan_module: {HM2-DIAGNOSTIC-MIB / hm2SigConFanModuleEntry.hm2SigConSenseFanModule} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_ring_redundancy: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseRingRedundancy} # HmEnabledStatus, access=ru, allowed=[True, False] - contact_id: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConID} # Integer32, access=r, range=1–2 - trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] sense_module: {HM2-DIAGNOSTIC-MIB / hm2SigConModuleEntry.hm2SigConSenseModule} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_envm_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseExtNvmRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_humidity: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseHumidity} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_module_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseModuleRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] + contact_id: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConID} # Integer32, access=r, range=1–2 sense_temperature: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseTemperature} # HmEnabledStatus, access=ru, allowed=[True, False] sense_stp_port_block: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseStpPortBlock} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConOperState} # INTEGER, access=r, allowed=['open', 'close'] + sense_fan_module: {HM2-DIAGNOSTIC-MIB / hm2SigConFanModuleEntry.hm2SigConSenseFanModule} # HmEnabledStatus, access=ru, allowed=[True, False] sense_envm_not_in_sync: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseExtNvmNotInSync} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_if_link_alarm: {HM2-DIAGNOSTIC-MIB / hm2SigConInterfaceEntry.hm2SigConSenseIfLinkAlarm} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_envm_removal: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseExtNvmRemoval} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_fan: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseFan} # HmEnabledStatus, access=ru, allowed=[True, False] sense_ethernet_loops: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseEthernetLoops} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConOperState} # INTEGER, access=r, allowed=['open', 'close'] sense_ps_state: {HM2-DIAGNOSTIC-MIB / hm2SigConPSEntry.hm2SigConSensePSState} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_ring_redundancy: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseRingRedundancy} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_enabled: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConTrapEnable} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_humidity: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConSenseHumidity} # HmEnabledStatus, access=ru, allowed=[True, False] mode: {HM2-DIAGNOSTIC-MIB / hm2SigConCommonEntry.hm2SigConMode} # INTEGER, access=ru, allowed=['manual', 'monitor', 'deviceState', 'deviceSecurity', 'deviceStateAndSecurity'] } ``` @@ -7469,23 +7471,23 @@ MOPS { ``` SNMP { - sense_if_link_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.3.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_module_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] sense_link_failure: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.9} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_fan_module: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.5.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_ring_redundancy: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.15} # HmEnabledStatus, access=ru, allowed=[True, False] - contact_id: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.1} # Integer32, access=r, range=1–2 - trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] sense_module: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.4.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_envm_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] - sense_humidity: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.17} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_module_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.12} # HmEnabledStatus, access=ru, allowed=[True, False] + contact_id: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.1} # Integer32, access=r, range=1–2 sense_temperature: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.10} # HmEnabledStatus, access=ru, allowed=[True, False] sense_stp_port_block: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.18} # HmEnabledStatus, access=ru, allowed=[True, False] - state: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.6} # INTEGER, access=r, allowed=['open', 'close'] + sense_fan_module: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.5.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] sense_envm_not_in_sync: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.14} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_if_link_alarm: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.3.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_envm_removal: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.13} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_fan: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.11} # HmEnabledStatus, access=ru, allowed=[True, False] sense_ethernet_loops: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.16} # HmEnabledStatus, access=ru, allowed=[True, False] + state: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.6} # INTEGER, access=r, allowed=['open', 'close'] sense_ps_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.2.1.1} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_ring_redundancy: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.15} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_enabled: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.2} # HmEnabledStatus, access=ru, allowed=[True, False] + sense_humidity: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.17} # HmEnabledStatus, access=ru, allowed=[True, False] mode: {oid: 1.3.6.1.4.1.248.11.22.1.3.1.1.1.5} # INTEGER, access=ru, allowed=['manual', 'monitor', 'deviceState', 'deviceSecurity', 'deviceStateAndSecurity'] } ``` @@ -7518,12 +7520,12 @@ get_snmp_config() -> { ``` MOPS { + port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru + trap_destinations: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 v1_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV1AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + community_access: {SNMP-VIEW-BASED-ACM-MIB / vacmAccessEntry.vacmAccessWriteViewName} # SnmpAdminString, access=ru, range=0–32 v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru trap_service: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpTrapServiceAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - community_access: {SNMP-VIEW-BASED-ACM-MIB / vacmAccessEntry.vacmAccessWriteViewName} # SnmpAdminString, access=ru, range=0–32 - trap_destinations: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -7533,12 +7535,12 @@ MOPS { ``` SNMP { + port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru + trap_destinations: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 v1_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + community_access: {oid: 1.3.6.1.6.3.16.1.4.1.6} # SnmpAdminString, access=ru, range=0–32 v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru trap_service: {oid: 1.3.6.1.4.1.248.11.25.1.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - community_access: {oid: 1.3.6.1.6.3.16.1.4.1.6} # SnmpAdminString, access=ru, range=0–32 - trap_destinations: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -7548,11 +7550,11 @@ SNMP { ``` SSH { + port: {read: "show snmp access"} # InetPortNumber, access=ru + trap_destinations: {read: "show snmp trap"} # SnmpAdminString, access=r, range=1–32 v1_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {read: "show snmp access"} # InetPortNumber, access=ru trap_service: {read: "show snmp trap"} # HmEnabledStatus, access=ru, allowed=[True, False] - trap_destinations: {read: "show snmp trap"} # SnmpAdminString, access=r, range=1–32 v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] } ``` @@ -7566,25 +7568,25 @@ SSH { ``` MOPS { - params_ref: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrParams} # SnmpAdminString, access=ru, range=1–32 - trap_service: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpTrapServiceAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru + params_row_status: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsRowStatus} # RowStatus, access=crud tag_list: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTagList} # SnmpTagList, access=ru - security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru - v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru - addr_row_status: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrRowStatus} # RowStatus, access=crud - v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] v1_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV1AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - community_access: {SNMP-VIEW-BASED-ACM-MIB / vacmAccessEntry.vacmAccessWriteViewName} # SnmpAdminString, access=ru, range=0–32 name: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 - communities: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunityName} # OCTET STRING, access=ru - params_row_status: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsRowStatus} # RowStatus, access=crud + port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru community_group_name: {SNMP-VIEW-BASED-ACM-MIB / vacmSecurityToGroupEntry.vacmGroupName} # SnmpAdminString, access=ru, range=1–32 + security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru + trap_destinations: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 + community_access: {SNMP-VIEW-BASED-ACM-MIB / vacmAccessEntry.vacmAccessWriteViewName} # SnmpAdminString, access=ru, range=0–32 + params_ref: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrParams} # SnmpAdminString, access=ru, range=1–32 + v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_service: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpTrapServiceAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] security_model: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityModel} # SnmpSecurityModel, access=ru, range=1–2147483647 - community_security_name: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunitySecurityName} # SnmpAdminString, access=ru, range=1–32 address: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTAddress} # TAddress, access=ru - trap_destinations: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 + v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_row_status: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrRowStatus} # RowStatus, access=crud + community_security_name: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunitySecurityName} # SnmpAdminString, access=ru, range=1–32 + communities: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunityName} # OCTET STRING, access=ru + security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru } ``` @@ -7593,25 +7595,25 @@ MOPS { ``` SNMP { - params_ref: {oid: 1.3.6.1.6.3.12.1.2.1.7} # SnmpAdminString, access=ru, range=1–32 - trap_service: {oid: 1.3.6.1.4.1.248.11.25.1.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru + params_row_status: {oid: 1.3.6.1.6.3.12.1.3.1.7} # RowStatus, access=crud tag_list: {oid: 1.3.6.1.6.3.12.1.2.1.6} # SnmpTagList, access=ru - security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru - v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru - addr_row_status: {oid: 1.3.6.1.6.3.12.1.2.1.9} # RowStatus, access=crud - v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] v1_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - community_access: {oid: 1.3.6.1.6.3.16.1.4.1.6} # SnmpAdminString, access=ru, range=0–32 name: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 - communities: {oid: 1.3.6.1.6.3.18.1.1.1.2} # OCTET STRING, access=ru - params_row_status: {oid: 1.3.6.1.6.3.12.1.3.1.7} # RowStatus, access=crud + port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru community_group_name: {oid: 1.3.6.1.6.3.16.1.2.1.3} # SnmpAdminString, access=ru, range=1–32 + security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru + trap_destinations: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 + community_access: {oid: 1.3.6.1.6.3.16.1.4.1.6} # SnmpAdminString, access=ru, range=0–32 + params_ref: {oid: 1.3.6.1.6.3.12.1.2.1.7} # SnmpAdminString, access=ru, range=1–32 + v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_service: {oid: 1.3.6.1.4.1.248.11.25.1.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] security_model: {oid: 1.3.6.1.6.3.12.1.3.1.3} # SnmpSecurityModel, access=ru, range=1–2147483647 - community_security_name: {oid: 1.3.6.1.6.3.18.1.1.1.3} # SnmpAdminString, access=ru, range=1–32 address: {oid: 1.3.6.1.6.3.12.1.2.1.3} # TAddress, access=ru - trap_destinations: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 + v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_row_status: {oid: 1.3.6.1.6.3.12.1.2.1.9} # RowStatus, access=crud + community_security_name: {oid: 1.3.6.1.6.3.18.1.1.1.3} # SnmpAdminString, access=ru, range=1–32 + communities: {oid: 1.3.6.1.6.3.18.1.1.1.2} # OCTET STRING, access=ru + security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru } ``` @@ -7620,17 +7622,17 @@ SNMP { ``` SSH { - trap_service: {read: "show snmp trap"} # HmEnabledStatus, access=ru, allowed=[True, False] - v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {read: "show snmp access"} # InetPortNumber, access=ru - addr_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud - v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + params_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud v1_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] name: {read: "show snmp trap"} # SnmpAdminString, access=r, range=1–32 - communities: {read: "show snmp community", write: "snmp community ro {community_name}"} # OCTET STRING, access=ru - params_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud - address: {read: "show snmp trap"} # TAddress, access=ru + port: {read: "show snmp access"} # InetPortNumber, access=ru trap_destinations: {read: "show snmp trap"} # SnmpAdminString, access=r, range=1–32 + v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_service: {read: "show snmp trap"} # HmEnabledStatus, access=ru, allowed=[True, False] + address: {read: "show snmp trap"} # TAddress, access=ru + v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud + communities: {read: "show snmp community", write: "snmp community ro {community_name}"} # OCTET STRING, access=ru } ``` @@ -7654,11 +7656,11 @@ get_snmp_trap_destinations() -> { ``` MOPS { - security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru + security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru security_model: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityModel} # SnmpSecurityModel, access=ru, range=1–2147483647 address: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTAddress} # TAddress, access=ru name: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 - security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru + security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru } ``` @@ -7667,11 +7669,11 @@ MOPS { ``` SNMP { - security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru + security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru security_model: {oid: 1.3.6.1.6.3.12.1.3.1.3} # SnmpSecurityModel, access=ru, range=1–2147483647 address: {oid: 1.3.6.1.6.3.12.1.2.1.3} # TAddress, access=ru name: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 - security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru + security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru } ``` @@ -7708,13 +7710,13 @@ create_snmp_trap_dest() -> { ``` MOPS { + port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru + security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru tag_list: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTagList} # SnmpTagList, access=ru - security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru security_model: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityModel} # SnmpSecurityModel, access=ru, range=1–2147483647 - port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru address: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTAddress} # TAddress, access=ru name: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 - security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru + security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru } ``` @@ -7723,13 +7725,13 @@ MOPS { ``` SNMP { + port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru + security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru tag_list: {oid: 1.3.6.1.6.3.12.1.2.1.6} # SnmpTagList, access=ru - security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru security_model: {oid: 1.3.6.1.6.3.12.1.3.1.3} # SnmpSecurityModel, access=ru, range=1–2147483647 - port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru address: {oid: 1.3.6.1.6.3.12.1.2.1.3} # TAddress, access=ru name: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 - security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru + security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru } ``` @@ -7754,26 +7756,26 @@ SSH {
MOPS sources (19/19 attrs) ``` -MOPS { - params_ref: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrParams} # SnmpAdminString, access=ru, range=1–32 - trap_service: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpTrapServiceAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru - tag_list: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTagList} # SnmpTagList, access=ru - security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru - v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru - addr_row_status: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrRowStatus} # RowStatus, access=crud - v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] +MOPS { + params_row_status: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsRowStatus} # RowStatus, access=crud + tag_list: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTagList} # SnmpTagList, access=ru v1_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV1AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - community_access: {SNMP-VIEW-BASED-ACM-MIB / vacmAccessEntry.vacmAccessWriteViewName} # SnmpAdminString, access=ru, range=0–32 name: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 - communities: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunityName} # OCTET STRING, access=ru - params_row_status: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsRowStatus} # RowStatus, access=crud + port: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpPortNumber} # InetPortNumber, access=ru community_group_name: {SNMP-VIEW-BASED-ACM-MIB / vacmSecurityToGroupEntry.vacmGroupName} # SnmpAdminString, access=ru, range=1–32 + security_level: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityLevel} # SnmpSecurityLevel, access=ru + trap_destinations: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 + community_access: {SNMP-VIEW-BASED-ACM-MIB / vacmAccessEntry.vacmAccessWriteViewName} # SnmpAdminString, access=ru, range=0–32 + params_ref: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrParams} # SnmpAdminString, access=ru, range=1–32 + v2_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV2AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_service: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpTrapServiceAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] security_model: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityModel} # SnmpSecurityModel, access=ru, range=1–2147483647 - community_security_name: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunitySecurityName} # SnmpAdminString, access=ru, range=1–32 address: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrTAddress} # TAddress, access=ru - trap_destinations: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrName} # SnmpAdminString, access=r, range=1–32 + v3_enabled: {HM2-MGMTACCESS-MIB / hm2MgmtAccessSnmpGroup.hm2SnmpV3AdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_row_status: {SNMP-TARGET-MIB / snmpTargetAddrEntry.snmpTargetAddrRowStatus} # RowStatus, access=crud + community_security_name: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunitySecurityName} # SnmpAdminString, access=ru, range=1–32 + communities: {SNMP-COMMUNITY-MIB / snmpCommunityEntry.snmpCommunityName} # OCTET STRING, access=ru + security_name: {SNMP-TARGET-MIB / snmpTargetParamsEntry.snmpTargetParamsSecurityName} # SnmpAdminString, access=ru } ```
@@ -7782,25 +7784,25 @@ MOPS { ``` SNMP { - params_ref: {oid: 1.3.6.1.6.3.12.1.2.1.7} # SnmpAdminString, access=ru, range=1–32 - trap_service: {oid: 1.3.6.1.4.1.248.11.25.1.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru + params_row_status: {oid: 1.3.6.1.6.3.12.1.3.1.7} # RowStatus, access=crud tag_list: {oid: 1.3.6.1.6.3.12.1.2.1.6} # SnmpTagList, access=ru - security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru - v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru - addr_row_status: {oid: 1.3.6.1.6.3.12.1.2.1.9} # RowStatus, access=crud - v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] v1_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - community_access: {oid: 1.3.6.1.6.3.16.1.4.1.6} # SnmpAdminString, access=ru, range=0–32 name: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 - communities: {oid: 1.3.6.1.6.3.18.1.1.1.2} # OCTET STRING, access=ru - params_row_status: {oid: 1.3.6.1.6.3.12.1.3.1.7} # RowStatus, access=crud + port: {oid: 1.3.6.1.4.1.248.11.25.1.1.4, method: get} # InetPortNumber, access=ru community_group_name: {oid: 1.3.6.1.6.3.16.1.2.1.3} # SnmpAdminString, access=ru, range=1–32 + security_level: {oid: 1.3.6.1.6.3.12.1.3.1.5} # SnmpSecurityLevel, access=ru + trap_destinations: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 + community_access: {oid: 1.3.6.1.6.3.16.1.4.1.6} # SnmpAdminString, access=ru, range=0–32 + params_ref: {oid: 1.3.6.1.6.3.12.1.2.1.7} # SnmpAdminString, access=ru, range=1–32 + v2_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_service: {oid: 1.3.6.1.4.1.248.11.25.1.1.6, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] security_model: {oid: 1.3.6.1.6.3.12.1.3.1.3} # SnmpSecurityModel, access=ru, range=1–2147483647 - community_security_name: {oid: 1.3.6.1.6.3.18.1.1.1.3} # SnmpAdminString, access=ru, range=1–32 address: {oid: 1.3.6.1.6.3.12.1.2.1.3} # TAddress, access=ru - trap_destinations: {oid: 1.3.6.1.6.3.12.1.2.1.1} # SnmpAdminString, access=r, range=1–32 + v3_enabled: {oid: 1.3.6.1.4.1.248.11.25.1.1.3, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_row_status: {oid: 1.3.6.1.6.3.12.1.2.1.9} # RowStatus, access=crud + community_security_name: {oid: 1.3.6.1.6.3.18.1.1.1.3} # SnmpAdminString, access=ru, range=1–32 + communities: {oid: 1.3.6.1.6.3.18.1.1.1.2} # OCTET STRING, access=ru + security_name: {oid: 1.3.6.1.6.3.12.1.3.1.4} # SnmpAdminString, access=ru } ``` @@ -7809,17 +7811,17 @@ SNMP { ``` SSH { - trap_service: {read: "show snmp trap"} # HmEnabledStatus, access=ru, allowed=[True, False] - v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {read: "show snmp access"} # InetPortNumber, access=ru - addr_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud - v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + params_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud v1_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] name: {read: "show snmp trap"} # SnmpAdminString, access=r, range=1–32 - communities: {read: "show snmp community", write: "snmp community ro {community_name}"} # OCTET STRING, access=ru - params_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud - address: {read: "show snmp trap"} # TAddress, access=ru + port: {read: "show snmp access"} # InetPortNumber, access=ru trap_destinations: {read: "show snmp trap"} # SnmpAdminString, access=r, range=1–32 + v2_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + trap_service: {read: "show snmp trap"} # HmEnabledStatus, access=ru, allowed=[True, False] + address: {read: "show snmp trap"} # TAddress, access=ru + v3_enabled: {read: "show snmp access"} # HmEnabledStatus, access=ru, allowed=[True, False] + addr_row_status: {write: "snmp notification host add {name} {address}:{port} user {security_name} {security_level}"} # RowStatus, access=crud + communities: {read: "show snmp community", write: "snmp community ro {community_name}"} # OCTET STRING, access=ru } ``` @@ -7848,8 +7850,8 @@ get_snmp_information() -> { ``` MOPS { contact: {SNMPv2-MIB / system.sysContact} # DisplayString, access=ru, range=0–255 - chassis_id: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 location: {SNMPv2-MIB / system.sysLocation} # DisplayString, access=ru, range=0–255 + chassis_id: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 } ``` @@ -7859,8 +7861,8 @@ MOPS { ``` SNMP { contact: {oid: 1.3.6.1.2.1.1.4, method: get} # DisplayString, access=ru, range=0–255 - chassis_id: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 location: {oid: 1.3.6.1.2.1.1.6, method: get} # DisplayString, access=ru, range=0–255 + chassis_id: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 } ``` @@ -7870,8 +7872,8 @@ SNMP { ``` SSH { contact: {read: "show system info", write: "system contact {value}"} # DisplayString, access=ru, range=0–255 - chassis_id: {read: "show system info", write: "system name {value}"} # DisplayString, access=ru, range=0–255 location: {read: "show system info", write: "system location {value}"} # DisplayString, access=ru, range=0–255 + chassis_id: {read: "show system info", write: "system name {value}"} # DisplayString, access=ru, range=0–255 } ``` @@ -7885,8 +7887,8 @@ SSH { ``` MOPS { contact: {SNMPv2-MIB / system.sysContact} # DisplayString, access=ru, range=0–255 - chassis_id: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 location: {SNMPv2-MIB / system.sysLocation} # DisplayString, access=ru, range=0–255 + chassis_id: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 } ``` @@ -7896,8 +7898,8 @@ MOPS { ``` SNMP { contact: {oid: 1.3.6.1.2.1.1.4, method: get} # DisplayString, access=ru, range=0–255 - chassis_id: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 location: {oid: 1.3.6.1.2.1.1.6, method: get} # DisplayString, access=ru, range=0–255 + chassis_id: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 } ``` @@ -7907,8 +7909,8 @@ SNMP { ``` SSH { contact: {read: "show system info", write: "system contact {value}"} # DisplayString, access=ru, range=0–255 - chassis_id: {read: "show system info", write: "system name {value}"} # DisplayString, access=ru, range=0–255 location: {read: "show system info", write: "system location {value}"} # DisplayString, access=ru, range=0–255 + chassis_id: {read: "show system info", write: "system name {value}"} # DisplayString, access=ru, range=0–255 } ``` @@ -7939,16 +7941,16 @@ get_software() -> { ``` MOPS { + image_major: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwMajorRelNum} # Integer32, access=r + image_name: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileName} # DisplayString, access=r + allow_unsigned: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareVersionGroup.hm2DevMgmtSwVersAllowUnsigned} # HmEnabledStatus, access=ru, allowed=[True, False] bootcode: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareVersionGroup.hm2DevMgmtSwVersBootcode} # DisplayString, access=r - image_location: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileLocation} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] image_type: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileType} # INTEGER, access=r, allowed=['firmware', 'applet', 'logic'] - allow_unsigned: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareVersionGroup.hm2DevMgmtSwVersAllowUnsigned} # HmEnabledStatus, access=ru, allowed=[True, False] - image_major: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwMajorRelNum} # Integer32, access=r - image_bugfix: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwBugfixRelNum} # Integer32, access=r image_minor: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwMinorRelNum} # Integer32, access=r dev_mode: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareSecureBootGroup.hm2DevMgmtSwSecureBootDevmodeStatus} # HmEnabledStatus, access=r, allowed=[True, False] + image_bugfix: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwBugfixRelNum} # Integer32, access=r secure_boot: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareSecureBootGroup.hm2DevMgmtSwSecureBootAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - image_name: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileName} # DisplayString, access=r + image_location: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileLocation} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] } ``` @@ -7957,16 +7959,16 @@ MOPS { ``` SNMP { + image_major: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.6} # Integer32, access=r + image_name: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.4} # DisplayString, access=r + allow_unsigned: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] bootcode: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.1, method: get} # DisplayString, access=r - image_location: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.1} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] image_type: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.2} # INTEGER, access=r, allowed=['firmware', 'applet', 'logic'] - allow_unsigned: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - image_major: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.6} # Integer32, access=r - image_bugfix: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.8} # Integer32, access=r image_minor: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.7} # Integer32, access=r dev_mode: {oid: 1.3.6.1.4.1.248.11.10.1.3.2.2, method: get} # HmEnabledStatus, access=r, allowed=[True, False] + image_bugfix: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.8} # Integer32, access=r secure_boot: {oid: 1.3.6.1.4.1.248.11.10.1.3.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - image_name: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.4} # DisplayString, access=r + image_location: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.1} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] } ``` @@ -7975,8 +7977,8 @@ SNMP { ``` SSH { - bootcode: {read: "show system info"} # DisplayString, access=r allow_unsigned: {read: "show firmware allow-unsigned", write: "firmware allow-unsigned {value}"} # HmEnabledStatus, access=ru, allowed=[True, False] + bootcode: {read: "show system info"} # DisplayString, access=r dev_mode: {read: "show system info"} # HmEnabledStatus, access=r, allowed=[True, False] secure_boot: {read: "show system info"} # HmEnabledStatus, access=ru, allowed=[True, False] } @@ -7991,16 +7993,16 @@ SSH { ``` MOPS { + image_major: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwMajorRelNum} # Integer32, access=r + image_name: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileName} # DisplayString, access=r + allow_unsigned: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareVersionGroup.hm2DevMgmtSwVersAllowUnsigned} # HmEnabledStatus, access=ru, allowed=[True, False] bootcode: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareVersionGroup.hm2DevMgmtSwVersBootcode} # DisplayString, access=r - image_location: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileLocation} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] image_type: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileType} # INTEGER, access=r, allowed=['firmware', 'applet', 'logic'] - allow_unsigned: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareVersionGroup.hm2DevMgmtSwVersAllowUnsigned} # HmEnabledStatus, access=ru, allowed=[True, False] - image_major: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwMajorRelNum} # Integer32, access=r - image_bugfix: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwBugfixRelNum} # Integer32, access=r image_minor: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwMinorRelNum} # Integer32, access=r dev_mode: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareSecureBootGroup.hm2DevMgmtSwSecureBootDevmodeStatus} # HmEnabledStatus, access=r, allowed=[True, False] + image_bugfix: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwBugfixRelNum} # Integer32, access=r secure_boot: {HM2-DEVMGMT-MIB / hm2DeviceMgmtSoftwareSecureBootGroup.hm2DevMgmtSwSecureBootAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - image_name: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileName} # DisplayString, access=r + image_location: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwFileLocation} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] } ``` @@ -8009,16 +8011,16 @@ MOPS { ``` SNMP { + image_major: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.6} # Integer32, access=r + image_name: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.4} # DisplayString, access=r + allow_unsigned: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] bootcode: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.1, method: get} # DisplayString, access=r - image_location: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.1} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] image_type: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.2} # INTEGER, access=r, allowed=['firmware', 'applet', 'logic'] - allow_unsigned: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - image_major: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.6} # Integer32, access=r - image_bugfix: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.8} # Integer32, access=r image_minor: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.7} # Integer32, access=r dev_mode: {oid: 1.3.6.1.4.1.248.11.10.1.3.2.2, method: get} # HmEnabledStatus, access=r, allowed=[True, False] + image_bugfix: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.8} # Integer32, access=r secure_boot: {oid: 1.3.6.1.4.1.248.11.10.1.3.2.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - image_name: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.4} # DisplayString, access=r + image_location: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.1} # INTEGER, access=r, allowed=['ram', 'flash', 'sd-card', 'usb'] } ``` @@ -8027,8 +8029,8 @@ SNMP { ``` SSH { - bootcode: {read: "show system info"} # DisplayString, access=r allow_unsigned: {read: "show firmware allow-unsigned", write: "firmware allow-unsigned {value}"} # HmEnabledStatus, access=ru, allowed=[True, False] + bootcode: {read: "show system info"} # DisplayString, access=r dev_mode: {read: "show system info"} # HmEnabledStatus, access=r, allowed=[True, False] secure_boot: {read: "show system info"} # HmEnabledStatus, access=ru, allowed=[True, False] } @@ -8058,12 +8060,12 @@ get_syslog() -> { ``` MOPS { + port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru transport: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerTransportType} # INTEGER, access=ru - severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru servers: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru enabled: {HM2-LOGGING-MIB / hm2LogSyslogGroup.hm2LogSyslogAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru + ip: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru + severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] } ``` @@ -8072,12 +8074,12 @@ MOPS { ``` SNMP { + port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru transport: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.8} # INTEGER, access=ru - severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru servers: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru enabled: {oid: 1.3.6.1.4.1.248.11.23.1.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru + ip: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru + severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] } ``` @@ -8086,12 +8088,12 @@ SNMP { ``` SSH { + port: {read: "show logging host"} # InetPortNumber, access=ru transport: {read: "show logging host"} # INTEGER, access=ru - severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru servers: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru enabled: {read: "show logging syslog", write: "{'' if value else 'no '}logging syslog operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - port: {read: "show logging host"} # InetPortNumber, access=ru + ip: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru + severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] } ``` @@ -8104,16 +8106,16 @@ SSH { ``` MOPS { + port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru + addr_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddrType} # InetAddressType, access=ru transport: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerTransportType} # INTEGER, access=ru - severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru servers: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru + server_row_status: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerRowStatus} # RowStatus, access=crud enabled: {HM2-LOGGING-MIB / hm2LogSyslogGroup.hm2LogSyslogAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - log_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLogType} # INTEGER, access=ru - port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru + ip: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru + severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] server_index: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIndex} # Integer32, access=r, range=1–8 - server_row_status: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerRowStatus} # RowStatus, access=crud - addr_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddrType} # InetAddressType, access=ru + log_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLogType} # INTEGER, access=ru } ``` @@ -8122,16 +8124,16 @@ MOPS { ``` SNMP { + port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru + addr_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.2} # InetAddressType, access=ru transport: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.8} # INTEGER, access=ru - severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru servers: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru + server_row_status: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.7} # RowStatus, access=crud enabled: {oid: 1.3.6.1.4.1.248.11.23.1.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - log_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.6} # INTEGER, access=ru - port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru + ip: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru + severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] server_index: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.1} # Integer32, access=r, range=1–8 - server_row_status: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.7} # RowStatus, access=crud - addr_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.2} # InetAddressType, access=ru + log_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.6} # INTEGER, access=ru } ``` @@ -8140,15 +8142,15 @@ SNMP { ``` SSH { + port: {read: "show logging host"} # InetPortNumber, access=ru transport: {read: "show logging host"} # INTEGER, access=ru - severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru servers: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru + server_row_status: {write: "logging host add {index} addr {ip} port {port} severity {severity}"} # RowStatus, access=crud enabled: {read: "show logging syslog", write: "{'' if value else 'no '}logging syslog operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - log_type: {read: "show logging host"} # INTEGER, access=ru - port: {read: "show logging host"} # InetPortNumber, access=ru + ip: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru + severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] server_index: {read: "show logging host"} # Integer32, access=r, range=1–8 - server_row_status: {write: "logging host add {index} addr {ip} port {port} severity {severity}"} # RowStatus, access=crud + log_type: {read: "show logging host"} # INTEGER, access=ru } ``` @@ -8173,12 +8175,12 @@ create_syslog_server() -> { ``` MOPS { + port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru + addr_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddrType} # InetAddressType, access=ru transport: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerTransportType} # INTEGER, access=ru - severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] ip: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru + severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] log_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLogType} # INTEGER, access=ru - port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru - addr_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddrType} # InetAddressType, access=ru } ``` @@ -8187,12 +8189,12 @@ MOPS { ``` SNMP { + port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru + addr_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.2} # InetAddressType, access=ru transport: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.8} # INTEGER, access=ru - severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] ip: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru + severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] log_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.6} # INTEGER, access=ru - port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru - addr_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.2} # InetAddressType, access=ru } ``` @@ -8201,11 +8203,11 @@ SNMP { ``` SSH { + port: {read: "show logging host"} # InetPortNumber, access=ru transport: {read: "show logging host"} # INTEGER, access=ru - severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] ip: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru + severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] log_type: {read: "show logging host"} # INTEGER, access=ru - port: {read: "show logging host"} # InetPortNumber, access=ru } ``` @@ -8218,16 +8220,16 @@ SSH { ``` MOPS { + port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru + addr_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddrType} # InetAddressType, access=ru transport: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerTransportType} # INTEGER, access=ru - severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru servers: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru + server_row_status: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerRowStatus} # RowStatus, access=crud enabled: {HM2-LOGGING-MIB / hm2LogSyslogGroup.hm2LogSyslogAdminStatus} # HmEnabledStatus, access=ru, allowed=[True, False] - log_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLogType} # INTEGER, access=ru - port: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerUdpPort} # InetPortNumber, access=ru + ip: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddr} # InetAddress, access=ru + severity: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLevelUpto} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] server_index: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIndex} # Integer32, access=r, range=1–8 - server_row_status: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerRowStatus} # RowStatus, access=crud - addr_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerIPAddrType} # InetAddressType, access=ru + log_type: {HM2-LOGGING-MIB / hm2LogSyslogServerEntry.hm2LogSyslogServerLogType} # INTEGER, access=ru } ``` @@ -8236,16 +8238,16 @@ MOPS { ``` SNMP { + port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru + addr_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.2} # InetAddressType, access=ru transport: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.8} # INTEGER, access=ru - severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru servers: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru + server_row_status: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.7} # RowStatus, access=crud enabled: {oid: 1.3.6.1.4.1.248.11.23.1.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - log_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.6} # INTEGER, access=ru - port: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.4} # InetPortNumber, access=ru + ip: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.3} # InetAddress, access=ru + severity: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.5} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] server_index: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.1} # Integer32, access=r, range=1–8 - server_row_status: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.7} # RowStatus, access=crud - addr_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.2} # InetAddressType, access=ru + log_type: {oid: 1.3.6.1.4.1.248.11.23.1.5.10.1.6} # INTEGER, access=ru } ``` @@ -8254,15 +8256,15 @@ SNMP { ``` SSH { + port: {read: "show logging host"} # InetPortNumber, access=ru transport: {read: "show logging host"} # INTEGER, access=ru - severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] - ip: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru servers: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru + server_row_status: {write: "logging host add {index} addr {ip} port {port} severity {severity}"} # RowStatus, access=crud enabled: {read: "show logging syslog", write: "{'' if value else 'no '}logging syslog operation"} # HmEnabledStatus, access=ru, allowed=[True, False] - log_type: {read: "show logging host"} # INTEGER, access=ru - port: {read: "show logging host"} # InetPortNumber, access=ru + ip: {read: "show logging host", write: "logging host add {index} addr {ip} port {port} severity {severity}"} # InetAddress, access=ru + severity: {read: "show logging host"} # INTEGER, access=ru, allowed=['alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'] server_index: {read: "show logging host"} # Integer32, access=r, range=1–8 - server_row_status: {write: "logging host add {index} addr {ip} port {port} severity {severity}"} # RowStatus, access=crud + log_type: {read: "show logging host"} # INTEGER, access=ru } ``` @@ -8291,10 +8293,10 @@ get_system_info() -> { ``` MOPS { - contact: {SNMPv2-MIB / system.sysContact} # DisplayString, access=ru, range=0–255 - location: {SNMPv2-MIB / system.sysLocation} # DisplayString, access=ru, range=0–255 - hostname: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 uptime: {SNMPv2-MIB / system.sysUpTime} # TimeTicks, access=r + hostname: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 + location: {SNMPv2-MIB / system.sysLocation} # DisplayString, access=ru, range=0–255 + contact: {SNMPv2-MIB / system.sysContact} # DisplayString, access=ru, range=0–255 } ``` @@ -8303,10 +8305,10 @@ MOPS { ``` SNMP { - contact: {oid: 1.3.6.1.2.1.1.4, method: get} # DisplayString, access=ru, range=0–255 - location: {oid: 1.3.6.1.2.1.1.6, method: get} # DisplayString, access=ru, range=0–255 - hostname: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 uptime: {oid: 1.3.6.1.2.1.1.3, method: get} # TimeTicks, access=r + hostname: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 + location: {oid: 1.3.6.1.2.1.1.6, method: get} # DisplayString, access=ru, range=0–255 + contact: {oid: 1.3.6.1.2.1.1.4, method: get} # DisplayString, access=ru, range=0–255 } ``` @@ -8315,9 +8317,9 @@ SNMP { ``` SSH { - contact: {read: "show system info", write: "system contact {value}"} # DisplayString, access=ru, range=0–255 - location: {read: "show system info", write: "system location {value}"} # DisplayString, access=ru, range=0–255 hostname: {read: "show system info", write: "system name {value}"} # DisplayString, access=ru, range=0–255 + location: {read: "show system info", write: "system location {value}"} # DisplayString, access=ru, range=0–255 + contact: {read: "show system info", write: "system contact {value}"} # DisplayString, access=ru, range=0–255 } ``` @@ -8344,10 +8346,10 @@ get_facts() -> { ``` MOPS { - model: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r - interface_list: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r uptime: {SNMPv2-MIB / system.sysUpTime} # TimeTicks, access=r + interface_list: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r hostname: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 + model: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r os_version: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwVersion} # DisplayString, access=r serial_number: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtSerialNumber} # DisplayString, access=r } @@ -8358,10 +8360,10 @@ MOPS { ``` SNMP { - model: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r - interface_list: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r uptime: {oid: 1.3.6.1.2.1.1.3, method: get} # TimeTicks, access=r + interface_list: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r hostname: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 + model: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r os_version: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.5} # DisplayString, access=r serial_number: {oid: 1.3.6.1.4.1.248.11.10.1.1.3, method: get} # DisplayString, access=r } @@ -8372,9 +8374,9 @@ SNMP { ``` SSH { - model: {read: "show system info"} # DisplayString, access=r interface_list: {read: "show port"} # DisplayString, access=r hostname: {read: "show system info", write: "system name {value}"} # DisplayString, access=ru, range=0–255 + model: {read: "show system info"} # DisplayString, access=r os_version: {read: "show system info"} # DisplayString, access=r serial_number: {read: "show system info"} # DisplayString, access=r } @@ -8442,10 +8444,10 @@ get_system_health() -> { ``` MOPS { - product_description: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r hardware_version: {HM2-DEVMGMT-MIB / hm2DeviceMgmtHardwareGroup.hm2DevMgmtHwVersion} # DisplayString, access=r - temperature: {HM2-DEVMGMT-MIB / hm2DeviceMgmtTemperatureGroup.hm2DevMgmtTemperature} # Integer32, access=r humidity: {HM2-DEVMGMT-MIB / hm2DeviceMgmtHumidityGroup.hm2DevMgmtHumidity} # Unsigned32, access=r, range=0–100 + temperature: {HM2-DEVMGMT-MIB / hm2DeviceMgmtTemperatureGroup.hm2DevMgmtTemperature} # Integer32, access=r + product_description: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r } ``` @@ -8454,10 +8456,10 @@ MOPS { ``` SNMP { - product_description: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r hardware_version: {oid: 1.3.6.1.4.1.248.11.10.1.4.1, method: get} # DisplayString, access=r - temperature: {oid: 1.3.6.1.4.1.248.11.10.1.5.1, method: get} # Integer32, access=r humidity: {oid: 1.3.6.1.4.1.248.11.10.1.12.1, method: get} # Unsigned32, access=r, range=0–100 + temperature: {oid: 1.3.6.1.4.1.248.11.10.1.5.1, method: get} # Integer32, access=r + product_description: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r } ``` @@ -8466,10 +8468,10 @@ SNMP { ``` SSH { - product_description: {read: "show system info"} # DisplayString, access=r hardware_version: {read: "show system info"} # DisplayString, access=r - temperature: {read: "show system info"} # Integer32, access=r humidity: {read: "show system info"} # Unsigned32, access=r, range=0–100 + temperature: {read: "show system info"} # Integer32, access=r + product_description: {read: "show system info"} # DisplayString, access=r } ``` @@ -8482,18 +8484,18 @@ SSH { ``` MOPS { - product_description: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r location: {SNMPv2-MIB / system.sysLocation} # DisplayString, access=ru, range=0–255 - model: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r - interface_list: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r + product_description: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r + hardware_version: {HM2-DEVMGMT-MIB / hm2DeviceMgmtHardwareGroup.hm2DevMgmtHwVersion} # DisplayString, access=r humidity: {HM2-DEVMGMT-MIB / hm2DeviceMgmtHumidityGroup.hm2DevMgmtHumidity} # Unsigned32, access=r, range=0–100 + temperature: {HM2-DEVMGMT-MIB / hm2DeviceMgmtTemperatureGroup.hm2DevMgmtTemperature} # Integer32, access=r uptime: {SNMPv2-MIB / system.sysUpTime} # TimeTicks, access=r + interface_list: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r hostname: {SNMPv2-MIB / system.sysName} # DisplayString, access=ru, range=0–255 - hardware_version: {HM2-DEVMGMT-MIB / hm2DeviceMgmtHardwareGroup.hm2DevMgmtHwVersion} # DisplayString, access=r os_version: {HM2-DEVMGMT-MIB / hm2DevMgmtSwVersEntry.hm2DevMgmtSwVersion} # DisplayString, access=r - temperature: {HM2-DEVMGMT-MIB / hm2DeviceMgmtTemperatureGroup.hm2DevMgmtTemperature} # Integer32, access=r - serial_number: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtSerialNumber} # DisplayString, access=r contact: {SNMPv2-MIB / system.sysContact} # DisplayString, access=ru, range=0–255 + model: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtProductDescr} # DisplayString, access=r + serial_number: {HM2-DEVMGMT-MIB / hm2DeviceMgmtGroup.hm2DevMgmtSerialNumber} # DisplayString, access=r } ``` @@ -8502,18 +8504,18 @@ MOPS { ``` SNMP { - product_description: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r location: {oid: 1.3.6.1.2.1.1.6, method: get} # DisplayString, access=ru, range=0–255 - model: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r - interface_list: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r + product_description: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r + hardware_version: {oid: 1.3.6.1.4.1.248.11.10.1.4.1, method: get} # DisplayString, access=r humidity: {oid: 1.3.6.1.4.1.248.11.10.1.12.1, method: get} # Unsigned32, access=r, range=0–100 + temperature: {oid: 1.3.6.1.4.1.248.11.10.1.5.1, method: get} # Integer32, access=r uptime: {oid: 1.3.6.1.2.1.1.3, method: get} # TimeTicks, access=r + interface_list: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r hostname: {oid: 1.3.6.1.2.1.1.5, method: get} # DisplayString, access=ru, range=0–255 - hardware_version: {oid: 1.3.6.1.4.1.248.11.10.1.4.1, method: get} # DisplayString, access=r os_version: {oid: 1.3.6.1.4.1.248.11.10.1.3.1.10.1.5} # DisplayString, access=r - temperature: {oid: 1.3.6.1.4.1.248.11.10.1.5.1, method: get} # Integer32, access=r - serial_number: {oid: 1.3.6.1.4.1.248.11.10.1.1.3, method: get} # DisplayString, access=r contact: {oid: 1.3.6.1.2.1.1.4, method: get} # DisplayString, access=ru, range=0–255 + model: {oid: 1.3.6.1.4.1.248.11.10.1.1.2, method: get} # DisplayString, access=r + serial_number: {oid: 1.3.6.1.4.1.248.11.10.1.1.3, method: get} # DisplayString, access=r } ``` @@ -8522,17 +8524,17 @@ SNMP { ``` SSH { - product_description: {read: "show system info"} # DisplayString, access=r location: {read: "show system info", write: "system location {value}"} # DisplayString, access=ru, range=0–255 - model: {read: "show system info"} # DisplayString, access=r - interface_list: {read: "show port"} # DisplayString, access=r + product_description: {read: "show system info"} # DisplayString, access=r + hardware_version: {read: "show system info"} # DisplayString, access=r humidity: {read: "show system info"} # Unsigned32, access=r, range=0–100 + temperature: {read: "show system info"} # Integer32, access=r + interface_list: {read: "show port"} # DisplayString, access=r hostname: {read: "show system info", write: "system name {value}"} # DisplayString, access=ru, range=0–255 - hardware_version: {read: "show system info"} # DisplayString, access=r os_version: {read: "show system info"} # DisplayString, access=r - temperature: {read: "show system info"} # Integer32, access=r - serial_number: {read: "show system info"} # DisplayString, access=r contact: {read: "show system info", write: "system contact {value}"} # DisplayString, access=ru, range=0–255 + model: {read: "show system info"} # DisplayString, access=r + serial_number: {read: "show system info"} # DisplayString, access=r } ``` @@ -8565,12 +8567,12 @@ get_device_monitor() -> { ``` MOPS { sec_status: {HM2-DIAGNOSTIC-MIB / hm2DevSecStatusEntry.hm2DevSecStatusIndex} # Integer32, access=r - fan_status: {HM2-FAN-MIB / hm2FanMgmtEntry.hm2FanMgmtStatus} # Hm2FanModuleStatus, access=r - monitor_status: {HM2-DIAGNOSTIC-MIB / hm2DevMonStatusEntry.hm2DevMonStatusIndex} # Integer32, access=r - monitor_trap: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonTrapCause} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] - monitor_state: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonOperState} # INTEGER, access=r, allowed=['noerror', 'error'] sec_state: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecOperState} # INTEGER, access=r, allowed=['noerror', 'error'] + monitor_state: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonOperState} # INTEGER, access=r, allowed=['noerror', 'error'] sec_trap: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecTrapCause} # INTEGER, access=r, allowed=['none', 'password-change', 'password-min-length', 'password-policy-not-configured', 'password-policy-inactive', 'telnet-enabled', 'http-enabled', 'snmp-unsecure', 'sysmon-enabled', 'ext-nvm-update-enabled', 'no-link', 'hidisc-enabled', 'ext-nvm-config-load-unsecure', 'iec61850-mms-enabled', 'https-certificate-warning', 'modbus-tcp-enabled', 'ethernet-ip-enabled', 'profinet-io-enabled', 'pml-disabled', 'secure-boot-disabled', 'dev-mode-enabled'] + monitor_trap: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonTrapCause} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] + monitor_status: {HM2-DIAGNOSTIC-MIB / hm2DevMonStatusEntry.hm2DevMonStatusIndex} # Integer32, access=r + fan_status: {HM2-FAN-MIB / hm2FanMgmtEntry.hm2FanMgmtStatus} # Hm2FanModuleStatus, access=r } ``` @@ -8579,13 +8581,13 @@ MOPS { ``` SNMP { - sec_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.1} # Integer32, access=r - fan_status: {oid: 1.3.6.1.4.1.248.11.13.1.1.3.1.2} # Hm2FanModuleStatus, access=r - monitor_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.10.1.1} # Integer32, access=r - monitor_trap: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.3} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] - monitor_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.5} # INTEGER, access=r, allowed=['noerror', 'error'] + sec_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.2} # Integer32, access=r sec_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.4, method: get} # INTEGER, access=r, allowed=['noerror', 'error'] + monitor_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.5} # INTEGER, access=r, allowed=['noerror', 'error'] sec_trap: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.2, method: get} # INTEGER, access=r, allowed=['none', 'password-change', 'password-min-length', 'password-policy-not-configured', 'password-policy-inactive', 'telnet-enabled', 'http-enabled', 'snmp-unsecure', 'sysmon-enabled', 'ext-nvm-update-enabled', 'no-link', 'hidisc-enabled', 'ext-nvm-config-load-unsecure', 'iec61850-mms-enabled', 'https-certificate-warning', 'modbus-tcp-enabled', 'ethernet-ip-enabled', 'profinet-io-enabled', 'pml-disabled', 'secure-boot-disabled', 'dev-mode-enabled'] + monitor_trap: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.3} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] + monitor_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.10.1.1} # Integer32, access=r + fan_status: {oid: 1.3.6.1.4.1.248.11.13.1.1.3.1.2} # Hm2FanModuleStatus, access=r } ``` @@ -8621,12 +8623,12 @@ get_devsec_status() -> { ``` MOPS { sec_status: {HM2-DIAGNOSTIC-MIB / hm2DevSecStatusEntry.hm2DevSecStatusIndex} # Integer32, access=r - fan_status: {HM2-FAN-MIB / hm2FanMgmtEntry.hm2FanMgmtStatus} # Hm2FanModuleStatus, access=r - monitor_status: {HM2-DIAGNOSTIC-MIB / hm2DevMonStatusEntry.hm2DevMonStatusIndex} # Integer32, access=r - monitor_trap: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonTrapCause} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] - monitor_state: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonOperState} # INTEGER, access=r, allowed=['noerror', 'error'] sec_state: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecOperState} # INTEGER, access=r, allowed=['noerror', 'error'] + monitor_state: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonOperState} # INTEGER, access=r, allowed=['noerror', 'error'] sec_trap: {HM2-DIAGNOSTIC-MIB / hm2DevSecConfigGroup.hm2DevSecTrapCause} # INTEGER, access=r, allowed=['none', 'password-change', 'password-min-length', 'password-policy-not-configured', 'password-policy-inactive', 'telnet-enabled', 'http-enabled', 'snmp-unsecure', 'sysmon-enabled', 'ext-nvm-update-enabled', 'no-link', 'hidisc-enabled', 'ext-nvm-config-load-unsecure', 'iec61850-mms-enabled', 'https-certificate-warning', 'modbus-tcp-enabled', 'ethernet-ip-enabled', 'profinet-io-enabled', 'pml-disabled', 'secure-boot-disabled', 'dev-mode-enabled'] + monitor_trap: {HM2-DIAGNOSTIC-MIB / hm2DevMonCommonEntry.hm2DevMonTrapCause} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] + monitor_status: {HM2-DIAGNOSTIC-MIB / hm2DevMonStatusEntry.hm2DevMonStatusIndex} # Integer32, access=r + fan_status: {HM2-FAN-MIB / hm2FanMgmtEntry.hm2FanMgmtStatus} # Hm2FanModuleStatus, access=r } ``` @@ -8635,13 +8637,13 @@ MOPS { ``` SNMP { - sec_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.1} # Integer32, access=r - fan_status: {oid: 1.3.6.1.4.1.248.11.13.1.1.3.1.2} # Hm2FanModuleStatus, access=r - monitor_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.10.1.1} # Integer32, access=r - monitor_trap: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.3} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] - monitor_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.5} # INTEGER, access=r, allowed=['noerror', 'error'] + sec_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.10.1.2} # Integer32, access=r sec_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.4, method: get} # INTEGER, access=r, allowed=['noerror', 'error'] + monitor_state: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.5} # INTEGER, access=r, allowed=['noerror', 'error'] sec_trap: {oid: 1.3.6.1.4.1.248.11.22.1.3.3.1.2, method: get} # INTEGER, access=r, allowed=['none', 'password-change', 'password-min-length', 'password-policy-not-configured', 'password-policy-inactive', 'telnet-enabled', 'http-enabled', 'snmp-unsecure', 'sysmon-enabled', 'ext-nvm-update-enabled', 'no-link', 'hidisc-enabled', 'ext-nvm-config-load-unsecure', 'iec61850-mms-enabled', 'https-certificate-warning', 'modbus-tcp-enabled', 'ethernet-ip-enabled', 'profinet-io-enabled', 'pml-disabled', 'secure-boot-disabled', 'dev-mode-enabled'] + monitor_trap: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.1.1.3} # INTEGER, access=r, allowed=['none', 'power-supply', 'link-failure', 'temperature', 'fan-failure', 'module-removal', 'ext-nvm-removal', 'ext-nvm-not-in-sync', 'ring-redundancy', 'humidity', 'stp-port-blocked'] + monitor_status: {oid: 1.3.6.1.4.1.248.11.22.1.3.2.10.1.1} # Integer32, access=r + fan_status: {oid: 1.3.6.1.4.1.248.11.13.1.1.3.1.2} # Hm2FanModuleStatus, access=r } ``` @@ -8666,6 +8668,60 @@ get_fan_status() -> { ``` +--- + +## tracking + +_Object tracking config table (hm2TrackingConfigEntry)_ + +### `get_tracking()` + +**Read** | **Protocols:** MOPS, SNMP +Primary key: `name` + +``` +get_tracking() -> { + name: "" // str + description: "" // str + operstate: "" // "up" | "down" | "notReady" + changes: 0 // int + last_change: "" // str + trap: False // bool + status: 0 // int +} +``` + + +
MOPS sources (7/9 attrs) + +``` +MOPS { + status: {HM2-TRACKING-MIB / hm2TrackingConfigEntry.hm2TrackStatus} # RowStatus, access=crud + trap: {HM2-TRACKING-MIB / hm2TrackingConfigEntry.hm2TrackSendStateChangeTrap} # HmEnabledStatus, access=ru, allowed=[True, False] + last_change: {HM2-TRACKING-MIB / hm2TrackingConfigEntry.hm2TrackTimeLastChange} # HmTimeSeconds1970, access=r + name: {HM2-TRACKING-MIB / hm2TrackingConfigEntry.hm2TrackName} # SnmpAdminString, access=r + changes: {HM2-TRACKING-MIB / hm2TrackingConfigEntry.hm2TrackNumberOfChanges} # Integer32, access=r + operstate: {HM2-TRACKING-MIB / hm2TrackingConfigEntry.hm2TrackOperState} # INTEGER, access=r + description: {HM2-TRACKING-MIB / hm2TrackingConfigEntry.hm2TrackDescription} # SnmpAdminString, access=ru +} +``` +
+ +
SNMP sources (7/9 attrs) + +``` +SNMP { + status: {oid: 1.3.6.1.4.1.248.11.115.1.1.1.1.9} # RowStatus, access=crud + trap: {oid: 1.3.6.1.4.1.248.11.115.1.1.1.1.8} # HmEnabledStatus, access=ru, allowed=[True, False] + last_change: {oid: 1.3.6.1.4.1.248.11.115.1.1.1.1.7} # HmTimeSeconds1970, access=r + name: {oid: 1.3.6.1.4.1.248.11.115.1.1.1.1.3} # SnmpAdminString, access=r + changes: {oid: 1.3.6.1.4.1.248.11.115.1.1.1.1.6} # Integer32, access=r + operstate: {oid: 1.3.6.1.4.1.248.11.115.1.1.1.1.5} # INTEGER, access=r + description: {oid: 1.3.6.1.4.1.248.11.115.1.1.1.1.4} # SnmpAdminString, access=ru +} +``` +
+ --- ## user @@ -8693,12 +8749,12 @@ get_users() -> { ``` MOPS { + level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru policy_check: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserPwdPolicyChk} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_enc: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpEncType} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] - default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r locked: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserLockoutStatus} # TruthValue, access=ru, allowed=[True, False] username: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserName} # SnmpAdminString, access=r, range=1–32 - level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru + default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r snmp_auth: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthType} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] } ``` @@ -8708,12 +8764,12 @@ MOPS { ``` SNMP { + level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru policy_check: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_enc: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.8} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] - default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r locked: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.4} # TruthValue, access=ru, allowed=[True, False] username: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.1} # SnmpAdminString, access=r, range=1–32 - level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru + default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r snmp_auth: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.7} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] } ``` @@ -8723,11 +8779,11 @@ SNMP { ``` SSH { + level: {read: "show users"} # Hm2UserAccessRoles, access=ru policy_check: {read: "show users"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_enc: {read: "show users"} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {read: "show users"} # TruthValue, access=ru, allowed=[True, False] username: {read: "show users"} # SnmpAdminString, access=r, range=1–32 - level: {read: "show users"} # Hm2UserAccessRoles, access=ru snmp_auth: {read: "show users"} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] } ``` @@ -8737,46 +8793,54 @@ SSH { **Update** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (14/18 attrs) +
MOPS sources (18/18 attrs) ``` MOPS { + lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 + level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru snmp_enc_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpEncPassword} # DisplayString, access=ru, range=0–64 + min_numeric: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinNumericNumbers} # Integer32, access=ru, range=0–16 policy_check: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserPwdPolicyChk} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_auth_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthPassword} # DisplayString, access=ru, range=0–64 - lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 - max_attempts: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttempts} # Integer32, access=ru, range=0–5 snmp_enc: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpEncType} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserLockoutStatus} # TruthValue, access=ru, allowed=[True, False] - default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserPassword} # DisplayString, access=ru, range=0–64 - min_length: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLength} # Integer32, access=ru, range=1–64 + snmp_auth_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthPassword} # DisplayString, access=ru, range=0–64 + min_uppercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinUpperCase} # Integer32, access=ru, range=0–16 username: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserName} # SnmpAdminString, access=r, range=1–32 - level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru - snmp_auth: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthType} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r user_status: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserStatus} # RowStatus, access=crud + min_length: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLength} # Integer32, access=ru, range=1–64 + snmp_auth: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthType} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinSpecialCharacters} # Integer32, access=ru, range=0–16 + min_lowercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLowerCase} # Integer32, access=ru, range=0–16 + max_attempts: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttempts} # Integer32, access=ru, range=0–5 } ```
-
SNMP sources (14/18 attrs) +
SNMP sources (18/18 attrs) ``` SNMP { + lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 + level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru snmp_enc_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.11} # DisplayString, access=ru, range=0–64 + min_numeric: {oid: 1.3.6.1.4.1.248.11.24.1.2.5, method: get} # Integer32, access=ru, range=0–16 policy_check: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_auth_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.10} # DisplayString, access=ru, range=0–64 - lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 - max_attempts: {oid: 1.3.6.1.4.1.248.11.24.1.2.2, method: get} # Integer32, access=ru, range=0–5 snmp_enc: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.8} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.4} # TruthValue, access=ru, allowed=[True, False] - default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.2} # DisplayString, access=ru, range=0–64 - min_length: {oid: 1.3.6.1.4.1.248.11.24.1.2.1, method: get} # Integer32, access=ru, range=1–64 + snmp_auth_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.10} # DisplayString, access=ru, range=0–64 + min_uppercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.3, method: get} # Integer32, access=ru, range=0–16 username: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.1} # SnmpAdminString, access=r, range=1–32 - level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru - snmp_auth: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.7} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r user_status: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.9} # RowStatus, access=crud + min_length: {oid: 1.3.6.1.4.1.248.11.24.1.2.1, method: get} # Integer32, access=ru, range=1–64 + snmp_auth: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.7} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {oid: 1.3.6.1.4.1.248.11.24.1.2.6, method: get} # Integer32, access=ru, range=0–16 + min_lowercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.4, method: get} # Integer32, access=ru, range=0–16 + max_attempts: {oid: 1.3.6.1.4.1.248.11.24.1.2.2, method: get} # Integer32, access=ru, range=0–5 } ```
@@ -8785,21 +8849,21 @@ SNMP { ``` SSH { - min_special: {read: "show passwords"} - policy_check: {read: "show users"} # HmEnabledStatus, access=ru, allowed=[True, False] lockout_time: {read: "show passwords"} # Integer32, access=ru, range=0–60 - max_attempts: {read: "show passwords"} # Integer32, access=ru, range=0–5 - min_numeric: {read: "show passwords"} + level: {read: "show users"} # Hm2UserAccessRoles, access=ru + min_numeric: {read: "show passwords"} # Integer32, access=ru, range=0–16 + policy_check: {read: "show users"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_enc: {read: "show users"} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {read: "show users"} # TruthValue, access=ru, allowed=[True, False] password: {write: "users password {index} {password}"} # DisplayString, access=ru, range=0–64 - min_length: {read: "show passwords"} # Integer32, access=ru, range=1–64 - min_lowercase: {read: "show passwords"} - min_uppercase: {read: "show passwords"} + min_uppercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 username: {read: "show users"} # SnmpAdminString, access=r, range=1–32 - level: {read: "show users"} # Hm2UserAccessRoles, access=ru - snmp_auth: {read: "show users"} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] user_status: {write: "users add {username}"} # RowStatus, access=crud + min_length: {read: "show passwords"} # Integer32, access=ru, range=1–64 + snmp_auth: {read: "show users"} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {read: "show passwords"} # Integer32, access=ru, range=0–16 + min_lowercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 + max_attempts: {read: "show passwords"} # Integer32, access=ru, range=0–5 } ```
@@ -8853,46 +8917,54 @@ SSH { **Delete** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (14/18 attrs) +
MOPS sources (18/18 attrs) ``` MOPS { + lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 + level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru snmp_enc_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpEncPassword} # DisplayString, access=ru, range=0–64 + min_numeric: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinNumericNumbers} # Integer32, access=ru, range=0–16 policy_check: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserPwdPolicyChk} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_auth_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthPassword} # DisplayString, access=ru, range=0–64 - lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 - max_attempts: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttempts} # Integer32, access=ru, range=0–5 snmp_enc: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpEncType} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserLockoutStatus} # TruthValue, access=ru, allowed=[True, False] - default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserPassword} # DisplayString, access=ru, range=0–64 - min_length: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLength} # Integer32, access=ru, range=1–64 + snmp_auth_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthPassword} # DisplayString, access=ru, range=0–64 + min_uppercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinUpperCase} # Integer32, access=ru, range=0–16 username: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserName} # SnmpAdminString, access=r, range=1–32 - level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru - snmp_auth: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthType} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r user_status: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserStatus} # RowStatus, access=crud + min_length: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLength} # Integer32, access=ru, range=1–64 + snmp_auth: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthType} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinSpecialCharacters} # Integer32, access=ru, range=0–16 + min_lowercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLowerCase} # Integer32, access=ru, range=0–16 + max_attempts: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttempts} # Integer32, access=ru, range=0–5 } ```
-
SNMP sources (14/18 attrs) +
SNMP sources (18/18 attrs) ``` SNMP { + lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 + level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru snmp_enc_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.11} # DisplayString, access=ru, range=0–64 + min_numeric: {oid: 1.3.6.1.4.1.248.11.24.1.2.5, method: get} # Integer32, access=ru, range=0–16 policy_check: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_auth_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.10} # DisplayString, access=ru, range=0–64 - lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 - max_attempts: {oid: 1.3.6.1.4.1.248.11.24.1.2.2, method: get} # Integer32, access=ru, range=0–5 snmp_enc: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.8} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.4} # TruthValue, access=ru, allowed=[True, False] - default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.2} # DisplayString, access=ru, range=0–64 - min_length: {oid: 1.3.6.1.4.1.248.11.24.1.2.1, method: get} # Integer32, access=ru, range=1–64 + snmp_auth_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.10} # DisplayString, access=ru, range=0–64 + min_uppercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.3, method: get} # Integer32, access=ru, range=0–16 username: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.1} # SnmpAdminString, access=r, range=1–32 - level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru - snmp_auth: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.7} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r user_status: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.9} # RowStatus, access=crud + min_length: {oid: 1.3.6.1.4.1.248.11.24.1.2.1, method: get} # Integer32, access=ru, range=1–64 + snmp_auth: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.7} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {oid: 1.3.6.1.4.1.248.11.24.1.2.6, method: get} # Integer32, access=ru, range=0–16 + min_lowercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.4, method: get} # Integer32, access=ru, range=0–16 + max_attempts: {oid: 1.3.6.1.4.1.248.11.24.1.2.2, method: get} # Integer32, access=ru, range=0–5 } ```
@@ -8901,21 +8973,21 @@ SNMP { ``` SSH { - min_special: {read: "show passwords"} - policy_check: {read: "show users"} # HmEnabledStatus, access=ru, allowed=[True, False] lockout_time: {read: "show passwords"} # Integer32, access=ru, range=0–60 - max_attempts: {read: "show passwords"} # Integer32, access=ru, range=0–5 - min_numeric: {read: "show passwords"} + level: {read: "show users"} # Hm2UserAccessRoles, access=ru + min_numeric: {read: "show passwords"} # Integer32, access=ru, range=0–16 + policy_check: {read: "show users"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_enc: {read: "show users"} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {read: "show users"} # TruthValue, access=ru, allowed=[True, False] password: {write: "users password {index} {password}"} # DisplayString, access=ru, range=0–64 - min_length: {read: "show passwords"} # Integer32, access=ru, range=1–64 - min_lowercase: {read: "show passwords"} - min_uppercase: {read: "show passwords"} + min_uppercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 username: {read: "show users"} # SnmpAdminString, access=r, range=1–32 - level: {read: "show users"} # Hm2UserAccessRoles, access=ru - snmp_auth: {read: "show users"} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] user_status: {write: "users add {username}"} # RowStatus, access=crud + min_length: {read: "show passwords"} # Integer32, access=ru, range=1–64 + snmp_auth: {read: "show users"} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {read: "show passwords"} # Integer32, access=ru, range=0–16 + min_lowercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 + max_attempts: {read: "show passwords"} # Integer32, access=ru, range=0–5 } ```
@@ -8929,39 +9001,55 @@ get_login_policy() -> { min_length: 8 // int max_attempts: 3 // int lockout_time: 300 // int + min_uppercase: 0 // int + min_lowercase: 0 // int + min_numeric: 0 // int + min_special: 0 // int } ``` -
MOPS sources (3/3 attrs) +
MOPS sources (7/7 attrs) ``` MOPS { + lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 + min_numeric: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinNumericNumbers} # Integer32, access=ru, range=0–16 + min_uppercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinUpperCase} # Integer32, access=ru, range=0–16 min_length: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLength} # Integer32, access=ru, range=1–64 + min_special: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinSpecialCharacters} # Integer32, access=ru, range=0–16 + min_lowercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLowerCase} # Integer32, access=ru, range=0–16 max_attempts: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttempts} # Integer32, access=ru, range=0–5 - lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 } ```
-
SNMP sources (3/3 attrs) +
SNMP sources (7/7 attrs) ``` SNMP { + lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 + min_numeric: {oid: 1.3.6.1.4.1.248.11.24.1.2.5, method: get} # Integer32, access=ru, range=0–16 + min_uppercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.3, method: get} # Integer32, access=ru, range=0–16 min_length: {oid: 1.3.6.1.4.1.248.11.24.1.2.1, method: get} # Integer32, access=ru, range=1–64 + min_special: {oid: 1.3.6.1.4.1.248.11.24.1.2.6, method: get} # Integer32, access=ru, range=0–16 + min_lowercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.4, method: get} # Integer32, access=ru, range=0–16 max_attempts: {oid: 1.3.6.1.4.1.248.11.24.1.2.2, method: get} # Integer32, access=ru, range=0–5 - lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 } ```
-
SSH sources (3/3 attrs) +
SSH sources (7/7 attrs) ``` SSH { + lockout_time: {read: "show passwords"} # Integer32, access=ru, range=0–60 + min_numeric: {read: "show passwords"} # Integer32, access=ru, range=0–16 + min_uppercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 min_length: {read: "show passwords"} # Integer32, access=ru, range=1–64 + min_special: {read: "show passwords"} # Integer32, access=ru, range=0–16 + min_lowercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 max_attempts: {read: "show passwords"} # Integer32, access=ru, range=0–5 - lockout_time: {read: "show passwords"} # Integer32, access=ru, range=0–60 } ```
@@ -8970,46 +9058,54 @@ SSH { **Update** | **Protocols:** MOPS, SNMP, SSH -
MOPS sources (14/18 attrs) +
MOPS sources (18/18 attrs) ``` MOPS { + lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 + level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru snmp_enc_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpEncPassword} # DisplayString, access=ru, range=0–64 + min_numeric: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinNumericNumbers} # Integer32, access=ru, range=0–16 policy_check: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserPwdPolicyChk} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_auth_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthPassword} # DisplayString, access=ru, range=0–64 - lockout_time: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttemptsTimePeriod} # Integer32, access=ru, range=0–60 - max_attempts: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttempts} # Integer32, access=ru, range=0–5 snmp_enc: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpEncType} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserLockoutStatus} # TruthValue, access=ru, allowed=[True, False] - default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserPassword} # DisplayString, access=ru, range=0–64 - min_length: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLength} # Integer32, access=ru, range=1–64 + snmp_auth_password: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthPassword} # DisplayString, access=ru, range=0–64 + min_uppercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinUpperCase} # Integer32, access=ru, range=0–16 username: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserName} # SnmpAdminString, access=r, range=1–32 - level: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserAccessRole} # Hm2UserAccessRoles, access=ru - snmp_auth: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthType} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + default_password: {HM2-USERMGMT-MIB / hm2PwdMgmtDefaultPwdStatusEntry.hm2PwdMgmtDefaultPwdStatusUserName} # SnmpAdminString, access=r user_status: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserStatus} # RowStatus, access=crud + min_length: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLength} # Integer32, access=ru, range=1–64 + snmp_auth: {HM2-USERMGMT-MIB / hm2UserConfigEntry.hm2UserSnmpAuthType} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinSpecialCharacters} # Integer32, access=ru, range=0–16 + min_lowercase: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtMinLowerCase} # Integer32, access=ru, range=0–16 + max_attempts: {HM2-USERMGMT-MIB / hm2PwdMgmtGroup.hm2PwdMgmtLoginAttempts} # Integer32, access=ru, range=0–5 } ```
-
SNMP sources (14/18 attrs) +
SNMP sources (18/18 attrs) ``` SNMP { + lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 + level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru snmp_enc_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.11} # DisplayString, access=ru, range=0–64 + min_numeric: {oid: 1.3.6.1.4.1.248.11.24.1.2.5, method: get} # Integer32, access=ru, range=0–16 policy_check: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.6} # HmEnabledStatus, access=ru, allowed=[True, False] - snmp_auth_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.10} # DisplayString, access=ru, range=0–64 - lockout_time: {oid: 1.3.6.1.4.1.248.11.24.1.2.7, method: get} # Integer32, access=ru, range=0–60 - max_attempts: {oid: 1.3.6.1.4.1.248.11.24.1.2.2, method: get} # Integer32, access=ru, range=0–5 snmp_enc: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.8} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.4} # TruthValue, access=ru, allowed=[True, False] - default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.2} # DisplayString, access=ru, range=0–64 - min_length: {oid: 1.3.6.1.4.1.248.11.24.1.2.1, method: get} # Integer32, access=ru, range=1–64 + snmp_auth_password: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.10} # DisplayString, access=ru, range=0–64 + min_uppercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.3, method: get} # Integer32, access=ru, range=0–16 username: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.1} # SnmpAdminString, access=r, range=1–32 - level: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.3} # Hm2UserAccessRoles, access=ru - snmp_auth: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.7} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + default_password: {oid: 1.3.6.1.4.1.248.11.24.1.2.100.100.1.2} # SnmpAdminString, access=r user_status: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.9} # RowStatus, access=crud + min_length: {oid: 1.3.6.1.4.1.248.11.24.1.2.1, method: get} # Integer32, access=ru, range=1–64 + snmp_auth: {oid: 1.3.6.1.4.1.248.11.24.1.1.1.1.7} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {oid: 1.3.6.1.4.1.248.11.24.1.2.6, method: get} # Integer32, access=ru, range=0–16 + min_lowercase: {oid: 1.3.6.1.4.1.248.11.24.1.2.4, method: get} # Integer32, access=ru, range=0–16 + max_attempts: {oid: 1.3.6.1.4.1.248.11.24.1.2.2, method: get} # Integer32, access=ru, range=0–5 } ```
@@ -9018,21 +9114,21 @@ SNMP { ``` SSH { - min_special: {read: "show passwords"} - policy_check: {read: "show users"} # HmEnabledStatus, access=ru, allowed=[True, False] lockout_time: {read: "show passwords"} # Integer32, access=ru, range=0–60 - max_attempts: {read: "show passwords"} # Integer32, access=ru, range=0–5 - min_numeric: {read: "show passwords"} + level: {read: "show users"} # Hm2UserAccessRoles, access=ru + min_numeric: {read: "show passwords"} # Integer32, access=ru, range=0–16 + policy_check: {read: "show users"} # HmEnabledStatus, access=ru, allowed=[True, False] snmp_enc: {read: "show users"} # INTEGER, access=ru, allowed=['none', 'des', 'aesCfb128', 'aesCfb256'] locked: {read: "show users"} # TruthValue, access=ru, allowed=[True, False] password: {write: "users password {index} {password}"} # DisplayString, access=ru, range=0–64 - min_length: {read: "show passwords"} # Integer32, access=ru, range=1–64 - min_lowercase: {read: "show passwords"} - min_uppercase: {read: "show passwords"} + min_uppercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 username: {read: "show users"} # SnmpAdminString, access=r, range=1–32 - level: {read: "show users"} # Hm2UserAccessRoles, access=ru - snmp_auth: {read: "show users"} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] user_status: {write: "users add {username}"} # RowStatus, access=crud + min_length: {read: "show passwords"} # Integer32, access=ru, range=1–64 + snmp_auth: {read: "show users"} # INTEGER, access=ru, allowed=['hmacmd5', 'hmacsha'] + min_special: {read: "show passwords"} # Integer32, access=ru, range=0–16 + min_lowercase: {read: "show passwords"} # Integer32, access=ru, range=0–16 + max_attempts: {read: "show passwords"} # Integer32, access=ru, range=0–5 } ```
@@ -9060,8 +9156,8 @@ get_vlans() -> { ``` MOPS { - vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 } ```
@@ -9070,8 +9166,8 @@ MOPS { ``` SNMP { - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 } ```
@@ -9080,8 +9176,8 @@ SNMP { ``` SSH { - vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 } ```
@@ -9104,7 +9200,7 @@ MOPS { ``` SNMP { - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 } ```
@@ -9126,16 +9222,16 @@ SSH { ``` MOPS { + forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru interface_name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru - vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 - egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru pvid: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPvid} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru - name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 + untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru vlan_status: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticRowStatus} # RowStatus, access=crud + name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru } ```
@@ -9144,16 +9240,16 @@ MOPS { ``` SNMP { + forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru interface_name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 - egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru pvid: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.1} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru - name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 + untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru vlan_status: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.5} # RowStatus, access=crud + name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru } ```
@@ -9163,12 +9259,12 @@ SNMP { ``` SSH { interface_name: {read: "show port"} # DisplayString, access=r - acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] - vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 pvid: {read: "show vlan port"} # VlanIndex, access=ru, range=1–4094 - name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 vlan_status: {write: "vlan add {index}"} # RowStatus, access=crud + name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] } ``` @@ -9181,16 +9277,16 @@ SSH { ``` MOPS { + forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru interface_name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru - vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 - egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru pvid: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPvid} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru - name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 + untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru vlan_status: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticRowStatus} # RowStatus, access=crud + name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru } ``` @@ -9199,16 +9295,16 @@ MOPS { ``` SNMP { + forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru interface_name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 - egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru pvid: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.1} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru - name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 + untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru vlan_status: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.5} # RowStatus, access=crud + name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru } ``` @@ -9218,12 +9314,12 @@ SNMP { ``` SSH { interface_name: {read: "show port"} # DisplayString, access=r - acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] - vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 pvid: {read: "show vlan port"} # VlanIndex, access=ru, range=1–4094 - name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 vlan_status: {write: "vlan add {index}"} # RowStatus, access=crud + name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] } ``` @@ -9283,16 +9379,16 @@ SSH { ``` MOPS { + forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru interface_name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru - vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 - egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru pvid: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPvid} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru - name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 + untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru vlan_status: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticRowStatus} # RowStatus, access=crud + name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru } ``` @@ -9301,16 +9397,16 @@ MOPS { ``` SNMP { + forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru interface_name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 - egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru pvid: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.1} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru - name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 + untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru vlan_status: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.5} # RowStatus, access=crud + name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru } ``` @@ -9320,12 +9416,12 @@ SNMP { ``` SSH { interface_name: {read: "show port"} # DisplayString, access=r - acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] - vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 pvid: {read: "show vlan port"} # VlanIndex, access=ru, range=1–4094 - name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 vlan_status: {write: "vlan add {index}"} # RowStatus, access=crud + name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] } ``` @@ -9338,16 +9434,16 @@ SSH { ``` MOPS { + forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru interface_name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru - vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 - egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru pvid: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPvid} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru - name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 + untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru vlan_status: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticRowStatus} # RowStatus, access=crud + name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru } ``` @@ -9356,16 +9452,16 @@ MOPS { ``` SNMP { + forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru interface_name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 - egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru pvid: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.1} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru - name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 + untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru vlan_status: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.5} # RowStatus, access=crud + name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru } ``` @@ -9375,12 +9471,12 @@ SNMP { ``` SSH { interface_name: {read: "show port"} # DisplayString, access=r - acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] - vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 pvid: {read: "show vlan port"} # VlanIndex, access=ru, range=1–4094 - name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 vlan_status: {write: "vlan add {index}"} # RowStatus, access=crud + name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] } ``` @@ -9402,8 +9498,8 @@ get_vlan_egress() -> { ``` MOPS { - vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru + vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru } ``` @@ -9413,8 +9509,8 @@ MOPS { ``` SNMP { - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru } ``` @@ -9437,16 +9533,16 @@ SSH { ``` MOPS { + forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru interface_name: {IF-MIB / ifXEntry.ifName} # DisplayString, access=r - acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru - vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 - egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru pvid: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPvid} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanForbiddenEgressPorts} # PortList, access=ru - name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {Q-BRIDGE-MIB / dot1qVlanCurrentEntry.dot1qVlanIndex} # VlanIndex, access=r, range=1–4094 + untagged_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticUntaggedPorts} # PortList, access=ru vlan_status: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticRowStatus} # RowStatus, access=crud + name: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticName} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortIngressFiltering} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {Q-BRIDGE-MIB / dot1qPortVlanEntry.dot1qPortAcceptableFrameTypes} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {Q-BRIDGE-MIB / dot1qVlanStaticEntry.dot1qVlanStaticEgressPorts} # PortList, access=ru } ``` @@ -9455,16 +9551,16 @@ MOPS { ``` SNMP { + forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru interface_name: {oid: 1.3.6.1.2.1.31.1.1.1.1} # DisplayString, access=r - acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] - untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru - vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.2.1.2} # VlanIndex, access=r, range=1–4094 - egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru pvid: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.1} # VlanIndex, access=ru, range=1–4094 - forbidden_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.3} # PortList, access=ru - name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # VlanIndex, access=r, range=1–4094 + untagged_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.4} # PortList, access=ru vlan_status: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.5} # RowStatus, access=crud + name: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.1} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.3} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {oid: 1.3.6.1.2.1.17.7.1.4.5.1.2} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] + egress_ports: {oid: 1.3.6.1.2.1.17.7.1.4.3.1.2} # PortList, access=ru } ``` @@ -9474,12 +9570,12 @@ SNMP { ``` SSH { interface_name: {read: "show port"} # DisplayString, access=r - acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] - ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] - vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 pvid: {read: "show vlan port"} # VlanIndex, access=ru, range=1–4094 - name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + vlan_id: {read: "show vlan brief"} # VlanIndex, access=r, range=1–4094 vlan_status: {write: "vlan add {index}"} # RowStatus, access=crud + name: {read: "show vlan brief"} # SnmpAdminString, access=ru, range=0–32 + ingress_filtering: {read: "show vlan port"} # TruthValue, access=ru, allowed=[True, False] + acceptable_frame_types: {read: "show vlan port"} # INTEGER, access=ru, allowed=['admitAll', 'admitOnlyVlanTagged'] } ``` @@ -9566,20 +9662,20 @@ get_vrrp_instances() -> { ``` MOPS { + current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 admin_state: {VRRP-MIB / vrrpOperEntry.vrrpOperAdminState} # INTEGER, access=ru - priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 + preempt: {VRRP-MIB / vrrpOperEntry.vrrpOperPreemptMode} # TruthValue, access=ru, allowed=[True, False] + virtual_mac: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualMacAddr} # MacAddress, access=r interval: {VRRP-MIB / vrrpOperEntry.vrrpOperAdvertisementInterval} # Integer32, access=ru, range=1–255 - primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru accept_mode: {VRRP-MIB / vrrpOperEntry.vrrpOperAcceptMode} # TruthValue, access=ru, allowed=[True, False] - uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r - current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 + virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r master_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperMasterIpAddr} # IpAddress, access=r - virtual_mac: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualMacAddr} # MacAddress, access=r - preempt: {VRRP-MIB / vrrpOperEntry.vrrpOperPreemptMode} # TruthValue, access=ru, allowed=[True, False] - state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r ip_count: {VRRP-MIB / vrrpOperEntry.vrrpOperIpAddrCount} # Integer32, access=r, range=0–255 + priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 + primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru + uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r auth_type: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthType} # INTEGER, access=ru - virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r + state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r } ``` @@ -9588,20 +9684,20 @@ MOPS { ``` SNMP { + current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 admin_state: {oid: 1.3.6.1.2.1.68.1.3.1.4} # INTEGER, access=ru - priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 + preempt: {oid: 1.3.6.1.2.1.68.1.3.1.12} # TruthValue, access=ru, allowed=[True, False] + virtual_mac: {oid: 1.3.6.1.2.1.68.1.3.1.2} # MacAddress, access=r interval: {oid: 1.3.6.1.2.1.68.1.3.1.11} # Integer32, access=ru, range=1–255 - primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru accept_mode: {oid: 1.3.6.1.2.1.68.1.3.1.16} # TruthValue, access=ru, allowed=[True, False] - uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r - current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 + virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r master_ip: {oid: 1.3.6.1.2.1.68.1.3.1.7} # IpAddress, access=r - virtual_mac: {oid: 1.3.6.1.2.1.68.1.3.1.2} # MacAddress, access=r - preempt: {oid: 1.3.6.1.2.1.68.1.3.1.12} # TruthValue, access=ru, allowed=[True, False] - state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r ip_count: {oid: 1.3.6.1.2.1.68.1.3.1.6} # Integer32, access=r, range=0–255 + priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 + primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru + uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r auth_type: {oid: 1.3.6.1.2.1.68.1.3.1.9} # INTEGER, access=ru - virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r + state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r } ``` @@ -9610,15 +9706,15 @@ SNMP { ``` SSH { + current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 admin_state: {read: "show ip vrrp interface", write: "ip vrrp enable {vrid}"} # INTEGER, access=ru - priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 + preempt: {write: "ip vrrp modify {vrid} preempt {value}"} # TruthValue, access=ru, allowed=[True, False] interval: {write: "ip vrrp modify {vrid} interval {value}"} # Integer32, access=ru, range=1–255 - primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru accept_mode: {write: "ip vrrp modify {vrid} accept-mode {value}"} # TruthValue, access=ru, allowed=[True, False] - current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 - preempt: {write: "ip vrrp modify {vrid} preempt {value}"} # TruthValue, access=ru, allowed=[True, False] - state: {read: "show ip vrrp interface"} # INTEGER, access=r virtual_ip: {read: "show ip vrrp interface"} # IpAddress, access=r + priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 + primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru + state: {read: "show ip vrrp interface"} # INTEGER, access=r } ``` @@ -9631,31 +9727,31 @@ SSH { ``` MOPS { - admin_state: {VRRP-MIB / vrrpOperEntry.vrrpOperAdminState} # INTEGER, access=ru - interval: {VRRP-MIB / vrrpOperEntry.vrrpOperAdvertisementInterval} # Integer32, access=ru, range=1–255 - current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 - state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r - ip_count: {VRRP-MIB / vrrpOperEntry.vrrpOperIpAddrCount} # Integer32, access=r, range=0–255 - virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r auth_key: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthKey} # OCTET STRING, access=ru, range=0–16 - vrid_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVrIdErrors} # Counter32, access=r - checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r - priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 - accept_mode: {VRRP-MIB / vrrpOperEntry.vrrpOperAcceptMode} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPNewMasterTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentRouterVrrpConfigGroup.hm2AgentRouterVrrpAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - track_row_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackRowStatus} # RowStatus, access=crud + uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r virtual_mac: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualMacAddr} # MacAddress, access=r - auth_type: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthType} # INTEGER, access=ru - version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r - oper_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackOperStatus} # INTEGER, access=r + priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 + track_row_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackRowStatus} # RowStatus, access=crud + state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r + current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 preempt: {VRRP-MIB / vrrpOperEntry.vrrpOperPreemptMode} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru + interval: {VRRP-MIB / vrrpOperEntry.vrrpOperAdvertisementInterval} # Integer32, access=ru, range=1–255 + accept_mode: {VRRP-MIB / vrrpOperEntry.vrrpOperAcceptMode} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r trap_auth_failure: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPAuthFailureTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] - uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r + row_status: {VRRP-MIB / vrrpOperEntry.vrrpOperRowStatus} # RowStatus, access=crud + primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru decrement: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackDecrement} # Integer32, access=ru, range=1–253 + admin_state: {VRRP-MIB / vrrpOperEntry.vrrpOperAdminState} # INTEGER, access=ru + checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r master_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperMasterIpAddr} # IpAddress, access=r - trap_new_master: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPNewMasterTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] - row_status: {VRRP-MIB / vrrpOperEntry.vrrpOperRowStatus} # RowStatus, access=crud + ip_count: {VRRP-MIB / vrrpOperEntry.vrrpOperIpAddrCount} # Integer32, access=r, range=0–255 + oper_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackOperStatus} # INTEGER, access=r + auth_type: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthType} # INTEGER, access=ru + vrid_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVrIdErrors} # Counter32, access=r + version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r } ``` @@ -9664,31 +9760,31 @@ MOPS { ``` SNMP { - admin_state: {oid: 1.3.6.1.2.1.68.1.3.1.4} # INTEGER, access=ru - interval: {oid: 1.3.6.1.2.1.68.1.3.1.11} # Integer32, access=ru, range=1–255 - current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 - state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r - ip_count: {oid: 1.3.6.1.2.1.68.1.3.1.6} # Integer32, access=r, range=0–255 - virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r auth_key: {oid: 1.3.6.1.2.1.68.1.3.1.10} # OCTET STRING, access=ru, range=0–16 - vrid_errors: {oid: 1.3.6.1.2.1.68.2.3, method: get} # Counter32, access=r - checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r - priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 - accept_mode: {oid: 1.3.6.1.2.1.68.1.3.1.16} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {oid: 1.3.6.1.4.1.248.12.2.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.12.2.8.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - track_row_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.6} # RowStatus, access=crud + uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r virtual_mac: {oid: 1.3.6.1.2.1.68.1.3.1.2} # MacAddress, access=r - auth_type: {oid: 1.3.6.1.2.1.68.1.3.1.9} # INTEGER, access=ru - version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r - oper_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.5} # INTEGER, access=r + priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 + track_row_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.6} # RowStatus, access=crud + state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r + current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 preempt: {oid: 1.3.6.1.2.1.68.1.3.1.12} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru + interval: {oid: 1.3.6.1.2.1.68.1.3.1.11} # Integer32, access=ru, range=1–255 + accept_mode: {oid: 1.3.6.1.2.1.68.1.3.1.16} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r trap_auth_failure: {oid: 1.3.6.1.4.1.248.12.2.5.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r + row_status: {oid: 1.3.6.1.2.1.68.1.3.1.15} # RowStatus, access=crud + primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru decrement: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.4} # Integer32, access=ru, range=1–253 + admin_state: {oid: 1.3.6.1.2.1.68.1.3.1.4} # INTEGER, access=ru + checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r master_ip: {oid: 1.3.6.1.2.1.68.1.3.1.7} # IpAddress, access=r - trap_new_master: {oid: 1.3.6.1.4.1.248.12.2.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - row_status: {oid: 1.3.6.1.2.1.68.1.3.1.15} # RowStatus, access=crud + ip_count: {oid: 1.3.6.1.2.1.68.1.3.1.6} # Integer32, access=r, range=0–255 + oper_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.5} # INTEGER, access=r + auth_type: {oid: 1.3.6.1.2.1.68.1.3.1.9} # INTEGER, access=ru + vrid_errors: {oid: 1.3.6.1.2.1.68.2.3, method: get} # Counter32, access=r + version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r } ``` @@ -9697,24 +9793,24 @@ SNMP { ``` SSH { - admin_state: {read: "show ip vrrp interface", write: "ip vrrp enable {vrid}"} # INTEGER, access=ru - interval: {write: "ip vrrp modify {vrid} interval {value}"} # Integer32, access=ru, range=1–255 - current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 - state: {read: "show ip vrrp interface"} # INTEGER, access=r - virtual_ip: {read: "show ip vrrp interface"} # IpAddress, access=r - vrid_errors: {read: "show ip vrrp global"} # Counter32, access=r - checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r - priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 - accept_mode: {write: "ip vrrp modify {vrid} accept-mode {value}"} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {read: "show ip vrrp global", write: "ip vrrp trap new-master"} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {read: "show ip vrrp global", write: "ip vrrp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 track_row_status: {write: "ip vrrp track add {vrid} {track_name} decrement {decrement}"} # RowStatus, access=crud - version_errors: {read: "show ip vrrp global"} # Counter32, access=r + state: {read: "show ip vrrp interface"} # INTEGER, access=r + current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 preempt: {write: "ip vrrp modify {vrid} preempt {value}"} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru + interval: {write: "ip vrrp modify {vrid} interval {value}"} # Integer32, access=ru, range=1–255 + accept_mode: {write: "ip vrrp modify {vrid} accept-mode {value}"} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {read: "show ip vrrp interface"} # IpAddress, access=r trap_auth_failure: {read: "show ip vrrp global", write: "ip vrrp trap auth-failure"} # HmEnabledStatus, access=ru, allowed=[True, False] - decrement: {write: "ip vrrp track modify {vrid} {track_name} decrement {value}"} # Integer32, access=ru, range=1–253 - trap_new_master: {read: "show ip vrrp global", write: "ip vrrp trap new-master"} # HmEnabledStatus, access=ru, allowed=[True, False] row_status: {write: "ip vrrp add {vrid} priority {priority} advertisement-ip {primary_ip}"} # RowStatus, access=crud + primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru + decrement: {write: "ip vrrp track modify {vrid} {track_name} decrement {value}"} # Integer32, access=ru, range=1–253 + admin_state: {read: "show ip vrrp interface", write: "ip vrrp enable {vrid}"} # INTEGER, access=ru + checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r + vrid_errors: {read: "show ip vrrp global"} # Counter32, access=r + version_errors: {read: "show ip vrrp global"} # Counter32, access=r } ``` @@ -9727,31 +9823,31 @@ SSH { ``` MOPS { - admin_state: {VRRP-MIB / vrrpOperEntry.vrrpOperAdminState} # INTEGER, access=ru - interval: {VRRP-MIB / vrrpOperEntry.vrrpOperAdvertisementInterval} # Integer32, access=ru, range=1–255 - current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 - state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r - ip_count: {VRRP-MIB / vrrpOperEntry.vrrpOperIpAddrCount} # Integer32, access=r, range=0–255 - virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r auth_key: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthKey} # OCTET STRING, access=ru, range=0–16 - vrid_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVrIdErrors} # Counter32, access=r - checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r - priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 - accept_mode: {VRRP-MIB / vrrpOperEntry.vrrpOperAcceptMode} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPNewMasterTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentRouterVrrpConfigGroup.hm2AgentRouterVrrpAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - track_row_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackRowStatus} # RowStatus, access=crud + uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r virtual_mac: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualMacAddr} # MacAddress, access=r - auth_type: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthType} # INTEGER, access=ru - version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r - oper_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackOperStatus} # INTEGER, access=r + priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 + track_row_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackRowStatus} # RowStatus, access=crud + state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r + current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 preempt: {VRRP-MIB / vrrpOperEntry.vrrpOperPreemptMode} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru + interval: {VRRP-MIB / vrrpOperEntry.vrrpOperAdvertisementInterval} # Integer32, access=ru, range=1–255 + accept_mode: {VRRP-MIB / vrrpOperEntry.vrrpOperAcceptMode} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r trap_auth_failure: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPAuthFailureTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] - uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r + row_status: {VRRP-MIB / vrrpOperEntry.vrrpOperRowStatus} # RowStatus, access=crud + primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru decrement: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackDecrement} # Integer32, access=ru, range=1–253 + admin_state: {VRRP-MIB / vrrpOperEntry.vrrpOperAdminState} # INTEGER, access=ru + checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r master_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperMasterIpAddr} # IpAddress, access=r - trap_new_master: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPNewMasterTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] - row_status: {VRRP-MIB / vrrpOperEntry.vrrpOperRowStatus} # RowStatus, access=crud + ip_count: {VRRP-MIB / vrrpOperEntry.vrrpOperIpAddrCount} # Integer32, access=r, range=0–255 + oper_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackOperStatus} # INTEGER, access=r + auth_type: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthType} # INTEGER, access=ru + vrid_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVrIdErrors} # Counter32, access=r + version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r } ``` @@ -9760,31 +9856,31 @@ MOPS { ``` SNMP { - admin_state: {oid: 1.3.6.1.2.1.68.1.3.1.4} # INTEGER, access=ru - interval: {oid: 1.3.6.1.2.1.68.1.3.1.11} # Integer32, access=ru, range=1–255 - current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 - state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r - ip_count: {oid: 1.3.6.1.2.1.68.1.3.1.6} # Integer32, access=r, range=0–255 - virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r auth_key: {oid: 1.3.6.1.2.1.68.1.3.1.10} # OCTET STRING, access=ru, range=0–16 - vrid_errors: {oid: 1.3.6.1.2.1.68.2.3, method: get} # Counter32, access=r - checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r - priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 - accept_mode: {oid: 1.3.6.1.2.1.68.1.3.1.16} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {oid: 1.3.6.1.4.1.248.12.2.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.12.2.8.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - track_row_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.6} # RowStatus, access=crud + uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r virtual_mac: {oid: 1.3.6.1.2.1.68.1.3.1.2} # MacAddress, access=r - auth_type: {oid: 1.3.6.1.2.1.68.1.3.1.9} # INTEGER, access=ru - version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r - oper_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.5} # INTEGER, access=r + priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 + track_row_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.6} # RowStatus, access=crud + state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r + current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 preempt: {oid: 1.3.6.1.2.1.68.1.3.1.12} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru + interval: {oid: 1.3.6.1.2.1.68.1.3.1.11} # Integer32, access=ru, range=1–255 + accept_mode: {oid: 1.3.6.1.2.1.68.1.3.1.16} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r trap_auth_failure: {oid: 1.3.6.1.4.1.248.12.2.5.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r + row_status: {oid: 1.3.6.1.2.1.68.1.3.1.15} # RowStatus, access=crud + primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru decrement: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.4} # Integer32, access=ru, range=1–253 + admin_state: {oid: 1.3.6.1.2.1.68.1.3.1.4} # INTEGER, access=ru + checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r master_ip: {oid: 1.3.6.1.2.1.68.1.3.1.7} # IpAddress, access=r - trap_new_master: {oid: 1.3.6.1.4.1.248.12.2.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - row_status: {oid: 1.3.6.1.2.1.68.1.3.1.15} # RowStatus, access=crud + ip_count: {oid: 1.3.6.1.2.1.68.1.3.1.6} # Integer32, access=r, range=0–255 + oper_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.5} # INTEGER, access=r + auth_type: {oid: 1.3.6.1.2.1.68.1.3.1.9} # INTEGER, access=ru + vrid_errors: {oid: 1.3.6.1.2.1.68.2.3, method: get} # Counter32, access=r + version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r } ``` @@ -9793,24 +9889,24 @@ SNMP { ``` SSH { - admin_state: {read: "show ip vrrp interface", write: "ip vrrp enable {vrid}"} # INTEGER, access=ru - interval: {write: "ip vrrp modify {vrid} interval {value}"} # Integer32, access=ru, range=1–255 - current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 - state: {read: "show ip vrrp interface"} # INTEGER, access=r - virtual_ip: {read: "show ip vrrp interface"} # IpAddress, access=r - vrid_errors: {read: "show ip vrrp global"} # Counter32, access=r - checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r - priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 - accept_mode: {write: "ip vrrp modify {vrid} accept-mode {value}"} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {read: "show ip vrrp global", write: "ip vrrp trap new-master"} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {read: "show ip vrrp global", write: "ip vrrp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 track_row_status: {write: "ip vrrp track add {vrid} {track_name} decrement {decrement}"} # RowStatus, access=crud - version_errors: {read: "show ip vrrp global"} # Counter32, access=r + state: {read: "show ip vrrp interface"} # INTEGER, access=r + current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 preempt: {write: "ip vrrp modify {vrid} preempt {value}"} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru + interval: {write: "ip vrrp modify {vrid} interval {value}"} # Integer32, access=ru, range=1–255 + accept_mode: {write: "ip vrrp modify {vrid} accept-mode {value}"} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {read: "show ip vrrp interface"} # IpAddress, access=r trap_auth_failure: {read: "show ip vrrp global", write: "ip vrrp trap auth-failure"} # HmEnabledStatus, access=ru, allowed=[True, False] - decrement: {write: "ip vrrp track modify {vrid} {track_name} decrement {value}"} # Integer32, access=ru, range=1–253 - trap_new_master: {read: "show ip vrrp global", write: "ip vrrp trap new-master"} # HmEnabledStatus, access=ru, allowed=[True, False] row_status: {write: "ip vrrp add {vrid} priority {priority} advertisement-ip {primary_ip}"} # RowStatus, access=crud + primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru + decrement: {write: "ip vrrp track modify {vrid} {track_name} decrement {value}"} # Integer32, access=ru, range=1–253 + admin_state: {read: "show ip vrrp interface", write: "ip vrrp enable {vrid}"} # INTEGER, access=ru + checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r + vrid_errors: {read: "show ip vrrp global"} # Counter32, access=r + version_errors: {read: "show ip vrrp global"} # Counter32, access=r } ``` @@ -9870,8 +9966,8 @@ get_vrrp_tracking() -> { ``` MOPS { - decrement: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackDecrement} # Integer32, access=ru, range=1–253 oper_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackOperStatus} # INTEGER, access=r + decrement: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackDecrement} # Integer32, access=ru, range=1–253 } ``` @@ -9880,8 +9976,8 @@ MOPS { ``` SNMP { - decrement: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.4} # Integer32, access=ru, range=1–253 oper_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.5} # INTEGER, access=r + decrement: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.4} # Integer32, access=ru, range=1–253 } ``` @@ -9939,31 +10035,31 @@ SSH { ``` MOPS { - admin_state: {VRRP-MIB / vrrpOperEntry.vrrpOperAdminState} # INTEGER, access=ru - interval: {VRRP-MIB / vrrpOperEntry.vrrpOperAdvertisementInterval} # Integer32, access=ru, range=1–255 - current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 - state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r - ip_count: {VRRP-MIB / vrrpOperEntry.vrrpOperIpAddrCount} # Integer32, access=r, range=0–255 - virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r auth_key: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthKey} # OCTET STRING, access=ru, range=0–16 - vrid_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVrIdErrors} # Counter32, access=r - checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r - priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 - accept_mode: {VRRP-MIB / vrrpOperEntry.vrrpOperAcceptMode} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPNewMasterTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {HM2-PLATFORM-ROUTING-MIB / hm2AgentRouterVrrpConfigGroup.hm2AgentRouterVrrpAdminState} # HmEnabledStatus, access=ru, allowed=[True, False] - track_row_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackRowStatus} # RowStatus, access=crud + uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r virtual_mac: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualMacAddr} # MacAddress, access=r - auth_type: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthType} # INTEGER, access=ru - version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r - oper_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackOperStatus} # INTEGER, access=r + priority: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpExtCfgPriority} # Integer32, access=ru, range=1–254 + track_row_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackRowStatus} # RowStatus, access=crud + state: {VRRP-MIB / vrrpOperEntry.vrrpOperState} # INTEGER, access=r + current_priority: {VRRP-MIB / vrrpOperEntry.vrrpOperPriority} # Integer32, access=ru, range=0–255 preempt: {VRRP-MIB / vrrpOperEntry.vrrpOperPreemptMode} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru + interval: {VRRP-MIB / vrrpOperEntry.vrrpOperAdvertisementInterval} # Integer32, access=ru, range=1–255 + accept_mode: {VRRP-MIB / vrrpOperEntry.vrrpOperAcceptMode} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpExtEntry.hm2AgentVrrpPrimaryVirtualAddress} # IpAddress, access=r trap_auth_failure: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPAuthFailureTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] - uptime: {VRRP-MIB / vrrpOperEntry.vrrpOperVirtualRouterUpTime} # TimeStamp, access=r + row_status: {VRRP-MIB / vrrpOperEntry.vrrpOperRowStatus} # RowStatus, access=crud + primary_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperPrimaryIpAddr} # IpAddress, access=ru decrement: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackDecrement} # Integer32, access=ru, range=1–253 + admin_state: {VRRP-MIB / vrrpOperEntry.vrrpOperAdminState} # INTEGER, access=ru + checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r master_ip: {VRRP-MIB / vrrpOperEntry.vrrpOperMasterIpAddr} # IpAddress, access=r - trap_new_master: {HM2-PLATFORM-ROUTING-MIB / hm2AgentSnmpTrapFlagsConfigGroupLayer3.hm2AgentSnmpVRRPNewMasterTrapFlag} # HmEnabledStatus, access=ru, allowed=[True, False] - row_status: {VRRP-MIB / vrrpOperEntry.vrrpOperRowStatus} # RowStatus, access=crud + ip_count: {VRRP-MIB / vrrpOperEntry.vrrpOperIpAddrCount} # Integer32, access=r, range=0–255 + oper_status: {HM2-PLATFORM-ROUTING-MIB / hm2AgentVrrpTrackingEntry.hm2AgentVrrpTrackOperStatus} # INTEGER, access=r + auth_type: {VRRP-MIB / vrrpOperEntry.vrrpOperAuthType} # INTEGER, access=ru + vrid_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVrIdErrors} # Counter32, access=r + version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r } ``` @@ -9972,31 +10068,31 @@ MOPS { ``` SNMP { - admin_state: {oid: 1.3.6.1.2.1.68.1.3.1.4} # INTEGER, access=ru - interval: {oid: 1.3.6.1.2.1.68.1.3.1.11} # Integer32, access=ru, range=1–255 - current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 - state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r - ip_count: {oid: 1.3.6.1.2.1.68.1.3.1.6} # Integer32, access=r, range=0–255 - virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r auth_key: {oid: 1.3.6.1.2.1.68.1.3.1.10} # OCTET STRING, access=ru, range=0–16 - vrid_errors: {oid: 1.3.6.1.2.1.68.2.3, method: get} # Counter32, access=r - checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r - priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 - accept_mode: {oid: 1.3.6.1.2.1.68.1.3.1.16} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {oid: 1.3.6.1.4.1.248.12.2.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {oid: 1.3.6.1.4.1.248.12.2.8.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - track_row_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.6} # RowStatus, access=crud + uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r virtual_mac: {oid: 1.3.6.1.2.1.68.1.3.1.2} # MacAddress, access=r - auth_type: {oid: 1.3.6.1.2.1.68.1.3.1.9} # INTEGER, access=ru - version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r - oper_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.5} # INTEGER, access=r + priority: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.8} # Integer32, access=ru, range=1–254 + track_row_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.6} # RowStatus, access=crud + state: {oid: 1.3.6.1.2.1.68.1.3.1.3} # INTEGER, access=r + current_priority: {oid: 1.3.6.1.2.1.68.1.3.1.5} # Integer32, access=ru, range=0–255 preempt: {oid: 1.3.6.1.2.1.68.1.3.1.12} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru + interval: {oid: 1.3.6.1.2.1.68.1.3.1.11} # Integer32, access=ru, range=1–255 + accept_mode: {oid: 1.3.6.1.2.1.68.1.3.1.16} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {oid: 1.3.6.1.4.1.248.12.2.260.2.1.12} # IpAddress, access=r trap_auth_failure: {oid: 1.3.6.1.4.1.248.12.2.5.2, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - uptime: {oid: 1.3.6.1.2.1.68.1.3.1.13} # TimeStamp, access=r + row_status: {oid: 1.3.6.1.2.1.68.1.3.1.15} # RowStatus, access=crud + primary_ip: {oid: 1.3.6.1.2.1.68.1.3.1.8} # IpAddress, access=ru decrement: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.4} # Integer32, access=ru, range=1–253 + admin_state: {oid: 1.3.6.1.2.1.68.1.3.1.4} # INTEGER, access=ru + checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r master_ip: {oid: 1.3.6.1.2.1.68.1.3.1.7} # IpAddress, access=r - trap_new_master: {oid: 1.3.6.1.4.1.248.12.2.5.1, method: get} # HmEnabledStatus, access=ru, allowed=[True, False] - row_status: {oid: 1.3.6.1.2.1.68.1.3.1.15} # RowStatus, access=crud + ip_count: {oid: 1.3.6.1.2.1.68.1.3.1.6} # Integer32, access=r, range=0–255 + oper_status: {oid: 1.3.6.1.4.1.248.12.2.260.1.1.5} # INTEGER, access=r + auth_type: {oid: 1.3.6.1.2.1.68.1.3.1.9} # INTEGER, access=ru + vrid_errors: {oid: 1.3.6.1.2.1.68.2.3, method: get} # Counter32, access=r + version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r } ``` @@ -10005,24 +10101,24 @@ SNMP { ``` SSH { - admin_state: {read: "show ip vrrp interface", write: "ip vrrp enable {vrid}"} # INTEGER, access=ru - interval: {write: "ip vrrp modify {vrid} interval {value}"} # Integer32, access=ru, range=1–255 - current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 - state: {read: "show ip vrrp interface"} # INTEGER, access=r - virtual_ip: {read: "show ip vrrp interface"} # IpAddress, access=r - vrid_errors: {read: "show ip vrrp global"} # Counter32, access=r - checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r - priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 - accept_mode: {write: "ip vrrp modify {vrid} accept-mode {value}"} # TruthValue, access=ru, allowed=[True, False] + trap_new_master: {read: "show ip vrrp global", write: "ip vrrp trap new-master"} # HmEnabledStatus, access=ru, allowed=[True, False] enabled: {read: "show ip vrrp global", write: "ip vrrp operation"} # HmEnabledStatus, access=ru, allowed=[True, False] + priority: {read: "show ip vrrp interface"} # Integer32, access=ru, range=1–254 track_row_status: {write: "ip vrrp track add {vrid} {track_name} decrement {decrement}"} # RowStatus, access=crud - version_errors: {read: "show ip vrrp global"} # Counter32, access=r + state: {read: "show ip vrrp interface"} # INTEGER, access=r + current_priority: {write: "ip vrrp modify {vrid} priority {value}"} # Integer32, access=ru, range=0–255 preempt: {write: "ip vrrp modify {vrid} preempt {value}"} # TruthValue, access=ru, allowed=[True, False] - primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru + interval: {write: "ip vrrp modify {vrid} interval {value}"} # Integer32, access=ru, range=1–255 + accept_mode: {write: "ip vrrp modify {vrid} accept-mode {value}"} # TruthValue, access=ru, allowed=[True, False] + virtual_ip: {read: "show ip vrrp interface"} # IpAddress, access=r trap_auth_failure: {read: "show ip vrrp global", write: "ip vrrp trap auth-failure"} # HmEnabledStatus, access=ru, allowed=[True, False] - decrement: {write: "ip vrrp track modify {vrid} {track_name} decrement {value}"} # Integer32, access=ru, range=1–253 - trap_new_master: {read: "show ip vrrp global", write: "ip vrrp trap new-master"} # HmEnabledStatus, access=ru, allowed=[True, False] row_status: {write: "ip vrrp add {vrid} priority {priority} advertisement-ip {primary_ip}"} # RowStatus, access=crud + primary_ip: {write: "ip vrrp modify {vrid} advertisement-ip {value}"} # IpAddress, access=ru + decrement: {write: "ip vrrp track modify {vrid} {track_name} decrement {value}"} # Integer32, access=ru, range=1–253 + admin_state: {read: "show ip vrrp interface", write: "ip vrrp enable {vrid}"} # INTEGER, access=ru + checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r + vrid_errors: {read: "show ip vrrp global"} # Counter32, access=r + version_errors: {read: "show ip vrrp global"} # Counter32, access=r } ``` @@ -10044,9 +10140,9 @@ get_vrrp_stats() -> { ``` MOPS { - checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r - version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r vrid_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVrIdErrors} # Counter32, access=r + version_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterVersionErrors} # Counter32, access=r + checksum_errors: {VRRP-MIB / vrrpStatistics.vrrpRouterChecksumErrors} # Counter32, access=r } ``` @@ -10055,9 +10151,9 @@ MOPS { ``` SNMP { - checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r - version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r vrid_errors: {oid: 1.3.6.1.2.1.68.2.3, method: get} # Counter32, access=r + version_errors: {oid: 1.3.6.1.2.1.68.2.2, method: get} # Counter32, access=r + checksum_errors: {oid: 1.3.6.1.2.1.68.2.1, method: get} # Counter32, access=r } ``` @@ -10066,9 +10162,9 @@ SNMP { ``` SSH { - checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r - version_errors: {read: "show ip vrrp global"} # Counter32, access=r vrid_errors: {read: "show ip vrrp global"} # Counter32, access=r + version_errors: {read: "show ip vrrp global"} # Counter32, access=r + checksum_errors: {read: "show ip vrrp global"} # Counter32, access=r } ``` diff --git a/docs/DIAGNOSTIC_PROCESS.md b/docs/DIAGNOSTIC_PROCESS.md index d2c560a..98972cf 100644 --- a/docs/DIAGNOSTIC_PROCESS.md +++ b/docs/DIAGNOSTIC_PROCESS.md @@ -10,7 +10,9 @@ Find a method that passes using the same schema, engine path, or primitive. Diff ### Step 2: Trace -`device.method_name(args, debug=True)` — see exactly what the pipeline produces at each step. What did intent resolution emit? What did the wire transform produce? What did the driver receive? +`device.method_name(args, trace=True)` — or sidecar / `release_matrix --inspect --trace` — see exactly what the **engine** pipeline produces at each step (`device.last_trace`). What did intent resolution emit? What did the wire transform produce? What did the driver receive? + +**debug vs trace (goal):** `trace` = ours (engine thoughts). `debug` = foreign / not-ours library logs (netmiko, paramiko, pysnmp, …). Do not use `debug` for pipeline recording. ### Step 3: Validate off @@ -20,20 +22,133 @@ Find a method that passes using the same schema, engine path, or primitive. Diff Check against MIB source (`local/reference/MIBs/`) and MOPS schema (`local/reference/MOPS/mops_hios.xml`). Is `access:` right? Is `type:` right? Is `index_field:` present? Is `create_method:` correct? Is `index_type:` declared? -### Step 5: v1 reference +SSH overlay / hang: `local/reference/CLI/CLI_REFERENCE.md` (prompt regex `[>#]\s*$`, method→command map) and `local/reference/CLI/cli_ref_hios_merged.json` (1,849 commands, firmware 9.0–10.3). Output that never hits that prompt regex is the hang-to-timeout leftover (`#92`), not a silent parse miss. + +### Step 4b: Wire wrong input (schema looks weird) + +If the pipeline is honest but wire type/shape/OID fed the engine bad input: identify (schema→wire + `trace:true`) → **temp-patch** wire on a branch → prove vs known-good / HITL → permanent wire PR. If the mistype is generator-shaped, teach leftover generator in TEMP (#162) so regen keeps the fix. Do not silently heal live wire from a bad emit. -How did v1 (`/home/adamr/obsidian-vault/Projects/napalm-hios/`) handle this table? Not to copy code, but to understand what encoding/sequence the device expects. v1's working code is empirical proof of what the wire needs. +### Step 5: Empirical reference material + +In-repo `local/reference/` (MIB, MOPS XML, CLI). That is the empirical device material for this product. Do not leave the repo. Do not point at a machine-local napalm-hios clone — after the package split that tree is the thin 2.0 shim, not v1 working code, and it is unreachable from CI or any other VM. Do not re-add a homelab absolute path here. + +Not to copy code. Encoding leftover that still needs live v1.17 comparison is a separate clerk tree, not this path. ### Step 6: Fix the declaration, not the engine Schema fix first. Wire fix second. Engine fix never — unless the primitive genuinely doesn't exist and affects multiple features. -If you fix a wire YAML manually, add a TODO in `docs/TODO.md` for the generator to learn. +If you fix a wire YAML manually, file a GitHub issue for the generator leftover (prove-then-file). Do not add a live `docs/TODO.md`. ### Step 7: Engine changes — last resort Only after proving the gap affects multiple features and can't be declared away. Then design the primitive generically. Never add `if/else` for specific features. +## Fault detection + +Map the symptom to a doc, then a clerk. Do not skip to engine code. Do not pick a 2-of-3 winner. + +```mermaid +flowchart TD + symptom[Symptom] --> kind{What failed?} + kind -->|parity_diffs| parity[Docs before HITL] + kind -->|empty or snmp=0| sibling[Passing sibling YAML] + kind -->|all defaults no raw| trace[Need sidecar trace] + kind -->|HTTP 503| cap[has_capable / picker] + kind -->|timeout phase=open| hang[#92 open path] + kind -->|timeout phase=call| callT[Call-timeout ladder / CLI.json] + kind -->|emit vs live wire| gen[generator tag] + kind -->|NAPALM-shaped keys| shape[SCHEMA_MODEL.md] + kind -->|protocol sniff or swallow| prin[ENGINE_PRINCIPLES.md] + + parity --> four[schema YAML + wire YAML + MIB + CLI JSON] + sibling --> diag["DIAGNOSTIC_PROCESS.md steps 1-4"] + four --> schemaFirst[Schema clerk] + diag --> schemaFirst + trace --> testBot[Test bot sidecar trace] + cap --> pool[Pool tag not YAML] + hang --> park[Parked engine / HITL] + callT --> testBot + gen --> emitSkill[MIB wire generator cycle] + shape --> docsAudit[Docs clerk vs SCHEMA_MODEL] + prin --> engine[Engine clerk vs checker vs live code] + + schemaFirst --> yamlFix[Fix declaration not engine] + yamlFix --> leftover{Hand-fixed wire?} + leftover -->|yes| fileGen[File generator leftover] + leftover -->|no| sidecarProve[Sidecar prove] +``` + +| Symptom | Read these first | Then | +|---------|------------------|------| +| Protocols disagree on a field | Schema YAML, wire YAML + SSH overlay, MIB OBJECT-TYPE, CLI JSON | Schema clerk. Raw from sidecar trace, not a person. | +| Empty table / snmp=0 | This doc step 1 sibling method, step 4 `index_field` / INDEX / AUGMENTS | Schema clerk. Not one engine bug. | +| Getter equals schema defaults only | Not a fail, not a live pass. Need a field leaving default **or** trace/raw | Test bot `trace:true`. All-defaults + no raw = you know nothing. | +| HTTP 503 | Picker: feature in `has_capable` AND `read` in `safe_for` | Pool / Test bot. Not a schema miss. | +| SSH/MOPS/SNMP timeout with `phase=open` | Open path (login/prompt/budget). See `local/agents/diagrams/inspect-timeout.md` | `#92` / budgets. Not a YAML overlay. | +| Timeout with `phase=call` | Declared wire SSH reads + CLI.json before another live poke; hang often has no `cli` | Test bot call-timeout ladder → Schema fanout/invalid CLI, or `#92` HITL, or Engine heartbeat `NO_HOLE`. | +| SSH timeout, timings null (pre-phase harness) | Legacy overall-deadline shape; treat like unknown phase until re-inspect on main with `#179+` | Re-prove with phase attribution; then open vs call ladder. | +| Generator emit ≠ live wire | Leftover `batch_generate_MIB` vs `crude_engine/wire` | `generator` tag. Docs clerk leftover generator. Never write live wire. | +| Keys look NAPALM (`is_up`, `remote_*`) | `docs/SCHEMA_MODEL.md` Canonical Output Shape Rules + hitlist | Docs audit. Schema patches YAML. Shim keeps reshape. | +| `if protocol ==` / swallow / device heuristic | `docs/ENGINE_PRINCIPLES.md` + `scripts/check_principles.py` | Engine clerk. Checker is not assumed perfect. HITL before patch. | +| Gate 1/2/3 / commitFailed / unknown field | This doc Common Root Causes table | Schema / assemble. Engine last, and only as a generic primitive. | + +## Tagged fix cycles + +GitHub tags pick the loop. Architect triages and merges. Proof kicks upstairs. Never `--gate` from the VM. + +```mermaid +flowchart TD + ticket[GitHub issue] --> triage[Architect triage] + triage -->|no tag yet| label[Add protocol + cycle tag] + label --> triage + triage -->|schema or wire| yaml[Live YAML loop] + triage -->|generator| gen[Generator emit-diff loop] + triage -->|engine| eng[Principles loop HITL] + triage -->|test| test[Sidecar / veracity] + yaml --> schemaPR[Schema clerk PR] + schemaPR --> sidecar[Sidecar prove with trace] + sidecar -->|field left default or raw matches| mergeY[Architect merge] + sidecar -->|miss / hung-open| issueStay[Leave open or split] + gen --> docsGen[Docs clerk leftover generator] + docsGen --> emit[Isolated venv: emit temp, diff live wire] + emit --> mergeG[Architect merge on emit-diff + offline CI] + eng --> engineClerk[Engine clerk] + engineClerk --> hitl[Thought-test then HITL] + test --> testBot[Test bot] + testBot --> sidecar + mergeY --> docsMaybe[Docs clerk only if generated pages would lie] +``` + +| Tag | Start | Who | Proof kicked upstairs | End | +|-----|-------|-----|----------------------|-----| +| `schema` / `wire` | YAML vs MIB/CLI/live | Schema clerk | Sidecar YAML prove (`*.read` + trace; not all-defaults-without-raw) | Architect merge | +| `generator` | Leftover emit vs live `crude_engine/wire` | Docs clerk (`local/generator`) | Isolated emit-diff (never write live `crude_engine/wire`); keep-list shrunk | Architect merge, no sidecar | +| `engine` | Live code vs `ENGINE_PRINCIPLES.md` | Engine clerk | Principles vs checker; no patch until HITL | HITL | +| `test` | Catalog / sidecar / veracity | Test bot | Sidecar / veracity inspect dump or offline proof | Architect merge if a PR | +| `docs-generated` | Generated page would lie | Docs clerk | Generator PR, no hand-edit of pages | Architect merge | +| untagged | New issue | Architect | Labels + one confirm-only order | Loop starts | + +`--gate` / PyPI stays human (Adam HITL). Not a VM tag loop. + +## Where answers live + +| Question | Doc / tree | +|----------|------------| +| Output shape | `docs/SCHEMA_MODEL.md` | +| YAML key → pipeline stage | `docs/SCHEMA_PRIMITIVES.md` | +| Must not live in Python | `docs/ENGINE_PRINCIPLES.md` | +| Method failing, ordered steps | this doc (ladder) | +| Wire binding / OID / overlay | `crude_engine/wire/` + `docs/WIRE_SPEC.md` | +| Device OBJECT-TYPE | `local/reference/MIBs/` | +| CLI spelling / range / prompt regex | `local/reference/CLI/CLI_REFERENCE.md` + `cli_ref_hios_merged.json` | +| MOPS field names | `local/reference/MOPS/mops_hios.xml` | +| Release / `--gate` | `docs/ROADMAP.md`, `docs/RELEASE_GATE.md` — HITL | + +## Future: vendor profile (not current) + +A new vendor profile for crude-engine is MIB + documentation + generator (MIB-standard rules consistent across SNMP vendors; vendor leftovers as overlays) + sidecar prove on a pointed-at device. HITL shrinks to first device and `--gate`, not every field. That is the ceiling. It is not true today. + ## Key Principles - **The YAML declares what should happen.** The engine executes unambiguously. diff --git a/docs/ENGINE_PRINCIPLES.md b/docs/ENGINE_PRINCIPLES.md index 6e53c17..e13e0a0 100644 --- a/docs/ENGINE_PRINCIPLES.md +++ b/docs/ENGINE_PRINCIPLES.md @@ -34,7 +34,7 @@ Each layer has one job. No layer reaches into another layer's concerns. ### Block 1 — Adapter → Schema boundary **What it does:** Load the schema for the requested method. Extract `method_def`. -Pop `debug` and `validate` from kwargs — these are engine flags, not user data. +Pop `trace` and `validate` from kwargs — engine flags, not user data. (`debug` is the adapter/tools flag for foreign library logs; schema YAML `debug: true` is only a legacy alias that enables `trace`.) Determine direction: getter (egress) or setter/create/delete (ingress). **What it must not do:** Know anything about wire names, OIDs, protocol specifics, @@ -107,7 +107,7 @@ This is iteration, not recursion. The pipeline does not call `execute()` or resolve user intent (Block 2 does that), or know about specific protocols. **Design rule:** `_translate` is the single choke point. Every step runs through -it. Debug trace appends here and nowhere else. If a step is not in steps.yaml, +it. Pipeline trace appends here and nowhere else. If a step is not in steps.yaml, it does not run. --- diff --git a/docs/METHOD_REFERENCE.md b/docs/METHOD_REFERENCE.md index d00095f..bd658f6 100644 --- a/docs/METHOD_REFERENCE.md +++ b/docs/METHOD_REFERENCE.md @@ -2,7 +2,7 @@ Auto-generated from schema + protocol YAMLs. For full detail including per-protocol sources, see [API_REFERENCE.md](API_REFERENCE.md). -**189 methods** (177C/R/U/D + 12E) across **45 features** +**192 methods** (180C/R/U/D + 12E) across **46 features** ## aca _External NVM (ACA) configuration — selected memory, sync state, per-slot settings_ @@ -35,7 +35,7 @@ _Configuration management and watchdog status_ - **`get_config()`** — Read Returns: `running`, `startup` - **`get_config_status()`** — Read - Returns: `saved`, `last_changed`, `nvm`, `aca`, `boot` + Returns: `saved`, `nvm`, `aca`, `boot` - **`get_config_remote()`** — Read Returns: `url`, `status` - **`set_config_remote()`** — Update @@ -244,9 +244,12 @@ _Network protection features: Storm Control, Loop Protection, and Auto-Disable_ Returns: `enabled`, `transmission_interval`, `rx_threshold` - **`set_loop_protection()`** — Update - **`get_auto_disable()`** — Read, keyed by `name` - Returns: `enabled`, `reason`, `remaining_time` + Returns: `enabled`, `reason`, `remaining_time`, `timer` - **`set_auto_disable()`** — Update +- **`get_auto_disable_reasons()`** — Read, keyed by `reason` + Returns: `enabled`, `category` - **`set_auto_disable_reason()`** — Update +- **`auto_disable_reset()`** — Update ## qos _Quality of Service (QoS) and Traffic Class mapping_ @@ -401,6 +404,12 @@ _Device monitoring and security status_ - **`get_fan_status()`** — Read Returns: `status` +## tracking +_Object tracking config table (hm2TrackingConfigEntry)_ + +- **`get_tracking()`** — Read, keyed by `name` + Returns: `name`, `description`, `operstate`, `changes`, `last_change`, `trap`, `status` + ## user _User account management and password policy_ @@ -411,7 +420,7 @@ _User account management and password policy_ Returns: `level` - **`delete_user()`** — Delete - **`get_login_policy()`** — Read - Returns: `min_length`, `max_attempts`, `lockout_time` + Returns: `min_length`, `max_attempts`, `lockout_time`, `min_uppercase`, `min_lowercase`, `min_numeric`, `min_special` - **`set_login_policy()`** — Update ## vlan diff --git a/docs/PROTOCOLS.md b/docs/PROTOCOLS.md index d90899e..bd2a1ef 100644 --- a/docs/PROTOCOLS.md +++ b/docs/PROTOCOLS.md @@ -94,7 +94,7 @@ Config XML file acts as a device. Uses MOPS engine protocol internally. Auto-det ## Wire Overlays -- **SSH**: `wire/ssh/` (13 overlay files) +- **SSH**: `wire/ssh/` (30 overlay files) --- @@ -102,6 +102,6 @@ Config XML file acts as a device. Uses MOPS engine protocol internally. Auto-det | Protocol | Wire Attrs | Methods | Method % | | :--- | :--- | :--- | :--- | -| MOPS | 7927 / 7927 | 174 / 174 | 100% | -| SNMP | 7927 / 7927 | 174 / 174 | 100% | -| SSH | 61 / 7927 | 53 / 174 | 30% | +| MOPS | 7927 / 7928 | 180 / 180 | 100% | +| SNMP | 7928 / 7928 | 180 / 180 | 100% | +| SSH | 286 / 7928 | 165 / 180 | 92% | diff --git a/docs/RELEASE_GATE.md b/docs/RELEASE_GATE.md index a68934f..6515f87 100644 --- a/docs/RELEASE_GATE.md +++ b/docs/RELEASE_GATE.md @@ -5,9 +5,9 @@ ## Why this doc exists -We are preparing crude-engine for its first real release. The work plan, the matrix tool design, the cross-reference scheme, and the exit criteria all live here so a fresh session can pick up without re-deriving the plan from archived leftover Claude (`local/archive/docs-legacy/claude/CLAUDE.md`) and stale TODO files. +We are preparing crude-engine for its first real release. The work plan, the matrix tool design, the cross-reference scheme, and the exit criteria all live here so a fresh session can pick up from this doc and `AGENTS.md` (the only root agent law), not leftover Claude. Leftover Claude lives at `local/archive/docs-legacy/claude/CLAUDE.md` (archive, not law). Do not update a live `CLAUDE.md`. Archived TODO trio lives at `local/archive/docs-legacy/` (not live law). Leftover work is GitHub issues (prove-then-file or comment-close). -The old `docs/TODO.md` and `docs/ROADMAP.md` have been renamed to `TODO-old.md` and `ROADMAP-old.md`. **They are not trusted.** Anything in them is a hint, not a fact. New `TODO.md` and `ROADMAP.md` will be generated from matrix tool output and reviewed by the user. +The old `docs/TODO.md`, `docs/TODO-old.md`, and `docs/TODO_HITLIST.md` are archived at `local/archive/docs-legacy/` — **not live law.** Leftovers live on GitHub issues. `docs/ROADMAP.md` stays — feature target + release gate (plus GitHub milestones). Do not treat a live `docs/TODO.md` as the current cycle. `docs/ROADMAP-old.md` remains in `docs/` (untrusted hint). ## Phase 0 status (2026-04-14): COMPLETE @@ -18,7 +18,7 @@ The matrix tool is built, validated, and produces real signal. Phase 0 exit crit - `tests/safety_runner.py` + `tests/safety_protocols.yaml` provide CLAMPS-style pre/post hooks - `tests/device_pool.yaml` describes the fleet (capability vocabulary auto-validates against schemas) - `tests/release_matrix.json` is the central DB (lock+backoff hierarchical writes) -- `docs/RELEASE_MATRIX.md` and `docs/TODO_HITLIST.md` are auto-generated from the DB +- `docs/RELEASE_MATRIX.md` is auto-generated from the DB. The April `TODO_HITLIST.md` dump is archived under `local/archive/docs-legacy/` (leftovers are GitHub issues). **Validated against the live fleet:** - Read sweep: **916/916 PASS** across 7 devices × 2 protocols (mops + snmp) @@ -70,7 +70,7 @@ The harness owns the wiring, the credentials, the protocol enumeration, the pari ## Findings catalogue (early signal from the matrix tool) -These would land in `docs/TODO_HITLIST.md` once curated. Capturing them here so they survive context loss: +These became GitHub issues (HITLIST April dump superseded by #12/#13 and #39–#75). Capturing them here so they survive context loss: ### From the value-parity check (added later in session) @@ -125,7 +125,7 @@ A verdict is one of: ## Cross-reference tag scheme -> Replaces file pointers between TODO and ROADMAP. Grep-recoverable. Dangling tags are obvious. +> Replaces file pointers between leftover GitHub issues and ROADMAP. Grep-recoverable. Dangling tags are obvious. **Format:** `# #` @@ -151,7 +151,7 @@ A verdict is one of: **Entries always have at least two tags:** one bucket + one ID. They may have multiple buckets if the work spans layers (e.g., `#engine #driver #VRRP-MOPS-Compound`). -**TODO.md entry shape:** +**GitHub issue leftover shape:** ``` - [ ] #engine #VRRP-MOPS-Compound — MOPS row decomposition gap on compound indexes Blocks: get_vrrp_instances parity, vrrp CRUD on .83 @@ -175,8 +175,8 @@ Exit: matrix tool reports SSH `pass` for all methods that have CLI equivalents, ``` **Cleanup discipline:** -- A tag should appear in TODO.md OR ROADMAP.md, never both at the same time. -- When work ships from TODO → CHANGELOG, grep the tag across `docs/`. Any other hit is dangling and must be cleaned up. +- A tag should appear in a GitHub issue OR ROADMAP.md, never both at the same time. +- When work ships from a GitHub issue → CHANGELOG, grep the tag across `docs/`. Any other hit is dangling and must be cleaned up. - `grep -r '#VRRP-MOPS-Compound' docs/` should return zero lines once shipped. - Tags inside CHANGELOG.md are OK as historical record — they're prefixed with the version. @@ -697,13 +697,13 @@ python3 tests/release_matrix.py --render ### Doc generation from matrix -The renderer produces THREE files from `release_matrix.json` + `release_test_plan.json`: +The renderer produces the scoreboard from `release_matrix.json` + `release_test_plan.json`: | File | Generated? | Purpose | Edited? | |---|---|---|---| | `docs/RELEASE_MATRIX.md` | Yes, every run | Read-only status summary. The "scoreboard" | Never | -| `docs/TODO_HITLIST.md` | Yes, every run | Raw working list of failures grouped by `#bucket` tag. The "to-fix queue" | Never | -| `docs/TODO.md` | No, curated | Release-blocking work, judgement-applied. What we actually work on | By session | + +Leftover failures live on GitHub issues (prove-then-file or comment-close). Do not treat `docs/TODO.md` or `docs/TODO_HITLIST.md` as live law — they are archived at `local/archive/docs-legacy/`. **`docs/RELEASE_MATRIX.md` sections:** - Plan vs results summary (planned, ran, passed, failed, exempt, n/a, not_run, comms_lost) @@ -712,13 +712,13 @@ The renderer produces THREE files from `release_matrix.json` + `release_test_pla - Per-schema status table (rows = methods, columns = protocol×device, cells = verdict) - `comms_lost` list (if any) with manual-verification instructions -**`docs/TODO_HITLIST.md` structure:** +**Archived HITLIST shape (historical, not live process):** ```markdown # TODO Hitlist (auto-generated 2026-04-13) > Raw failures from release_matrix.json grouped by tag bucket. -> NOT the curated TODO. See docs/TODO.md for the working list. +> NOT live law. Leftovers live on GitHub issues. ## #engine - [ ] #engine #VRRP-MOPS-Compound @@ -751,17 +751,16 @@ patterns: tags: ["#wire", "#DNS-AddrType-SSH"] ``` -**The curation flow** (one session pass after each matrix run): +**The leftover flow** (one session pass after each matrix run): 1. Matrix tool runs → `release_matrix.json` updated -2. Renderer runs → `RELEASE_MATRIX.md` + `TODO_HITLIST.md` regenerated -3. Session reads `TODO_HITLIST.md`, looks at "NEEDS TRIAGE" section -4. For each triage item: assign a `#bucket #ID`, write to `tag_map.yaml`, decide if it's release-scope or roadmap -5. Re-run renderer (no execution) → triage section empties -6. Session updates `docs/TODO.md` with release-scope items only, ordered by priority -7. Items that go to roadmap get added to `docs/ROADMAP.md` with the same `#ID` +2. Renderer runs → `RELEASE_MATRIX.md` regenerated +3. Session reads the scoreboard / failing cells, looks at untagged failures +4. For each leftover: assign a `#bucket #ID`, write to `tag_map.yaml`, decide if it's release-scope or roadmap +5. Prove-then-file (or comment-close) a GitHub issue. Do not write a live `docs/TODO.md` or `docs/TODO_HITLIST.md`. +6. Items that go to roadmap get added to `docs/ROADMAP.md` with the same `#ID` -**Cleanup discipline:** when a fix ships, the cell verdict flips to `pass`. The renderer drops it from `TODO_HITLIST.md`. The session removes it from `TODO.md`. `grep -r '#VRRP-MOPS-Compound' docs/ tests/` should return zero hits — any remaining hit is a dangling reference. +**Cleanup discipline:** when a fix ships, the cell verdict flips to `pass`. Comment-close the GitHub issue. `grep -r '#VRRP-MOPS-Compound' docs/ tests/` should return zero hits — any remaining hit is a dangling reference. `docs/ROADMAP.md` is hand-curated for post-release scope using the same `#bucket #ID` tag scheme. @@ -871,10 +870,10 @@ Scale-out path (post-release): if test_replay fixture mode is added, fixture-bas **Completed in design session (2026-04-13):** - [x] Read existing test scripts (`audit_getters_v2.py`, `audit_setters.py`, `test_setter_pairs.py`, `test_crud_pairs.py`, `audit_all.py`, `capture.py`, `test_replay.py`) -- [x] Rename `TODO.md` / `ROADMAP.md` → `-old` variants +- [x] Rename `TODO.md` / `ROADMAP.md` → `-old` variants (TODO trio later archived to `local/archive/docs-legacy/`; ROADMAP.md is live again) - [x] Write `tests/README_TESTS.md` — script catalog - [x] Write `docs/RELEASE_GATE.md` (this doc) -- [x] Update `CLAUDE.md` (now `local/archive/docs-legacy/claude/CLAUDE.md`) with tag scheme + RELEASE_GATE pointer + comms-loss rule +- [x] Recorded tag scheme + RELEASE_GATE pointer + comms-loss rule in leftover Claude archive (`local/archive/docs-legacy/claude/CLAUDE.md`) — archive, not law. Do not update a live `CLAUDE.md`; `AGENTS.md` is the only root agent law. - [x] Refactor `audit_getters_v2.py` to expose `run_one_read(device, method, schema)`. Existing CLI unchanged. - [x] Refactor `test_setter_pairs.py` to expose `run_one_setter(device, name, spec)`. Existing CLI unchanged. - [x] Refactor `test_crud_pairs.py` to expose `run_one_crud(device, name, spec)`. Existing CLI unchanged. @@ -903,11 +902,11 @@ Scale-out path (post-release): if test_replay fixture mode is added, fixture-bas - [ ] Run `release_matrix.py --release-scope` against the fleet (.4, .254, .80, .83, .85) - [ ] **One device + one protocol at a time** for the SET/CRUD kinds. Read kind can run all-at-once because it's safe. - [ ] Capture the JSON. Inspect failures. -- [ ] Diff against current TODO-old.md / SSH_HITLIST claims. Every discrepancy = "doc was wrong, here's the new truth." -- [ ] Generate first draft of `docs/TODO.md` from the failure list, with tag assignments. User reviews. +- [ ] Diff against archived TODO trio (`local/archive/docs-legacy/`) / SSH_HITLIST claims. Every discrepancy = "doc was wrong, here's the new truth." +- [ ] File GitHub issues from the failure list, with tag assignments. User reviews. Do not recreate a live `docs/TODO.md`. - [ ] Generate first draft of `docs/ROADMAP.md` for post-release scope (SSH 1st-class, OFFLINE 1st-class if not done in Phase 3, HiSecOS, gNMI, Modbus, generator improvements, schema rework, benchmarking). -**Phase 1 exit:** truth JSON exists, TODO.md and ROADMAP.md drafts exist, every failure is tagged. +**Phase 1 exit:** truth JSON exists, GitHub leftover issues filed, ROADMAP.md exists, every failure is tagged. ### Phase 2 — Execute the categorized work @@ -931,7 +930,7 @@ After each fix: - [ ] `release_matrix.py --offline` against `local/reference/configs/*.xml` - [ ] Inspect results - [ ] Decision point: - - If most cells `pass`: OFFLINE is already a citizen. Add `#release #Offline-1st-Class` to TODO.md. Update README. Test it for SET/CRUD too via the `set_config_remote` / `load_config` execute path. Move it into release scope. + - If most cells `pass`: OFFLINE is already a citizen. File a GitHub issue tagged `#release #Offline-1st-Class`. Update README. Test it for SET/CRUD too via the `set_config_remote` / `load_config` execute path. Move it into release scope. - If results are messy: every gap is categorized into the 5 buckets, tagged `#roadmap #Offline-1st-Class`, and rolled to post-release. **Phase 3 exit:** OFFLINE has a verdict — citizen now, or citizen later, with reason. @@ -945,7 +944,7 @@ After each fix: - [ ] Bump version (2.10.0 most likely) - [ ] Patch via `local/reference/RELEASE.md` process - [ ] Hand patch to user -- [ ] After user commits, push, tags: archive this RELEASE_GATE.md to `local/archive/RELEASE_GATE-v2.10.md`. Archive TODO-old.md and ROADMAP-old.md alongside. +- [ ] After user commits, push, tags: archive this RELEASE_GATE.md to `local/archive/RELEASE_GATE-v2.10.md`. The TODO trio is already at `local/archive/docs-legacy/`. Do not archive `ROADMAP.md` with that trio; `ROADMAP-old.md` stays in `docs/` unless a later cull. **Release exit:** v2.10 (or chosen number) on PyPI. MOPS+SNMP first-class. OFFLINE per Phase 3 verdict. SSH explicitly post-release with full ROADMAP entry. @@ -953,9 +952,9 @@ After each fix: 1. **Surgical testing always.** Full matrix runs are proof, not debugging. To debug one method on one protocol on one device, re-run only that cell. 2. **Comms loss = stop and ask.** If a SET/CRUD run breaks the device's responsiveness, the matrix tool stops, dumps state, and asks the user. No assumptions about cause. -3. **Re-verify, don't trust docs.** Every claim in TODO-old.md, SSH_HITLIST.md, and archived leftover Claude (`local/archive/docs-legacy/claude/CLAUDE.md`) is a hint. The matrix tool's output is the truth. +3. **Re-verify, don't trust docs.** Every claim in the archived TODO trio (`local/archive/docs-legacy/`), SSH_HITLIST.md, and archived leftover Claude (`local/archive/docs-legacy/claude/CLAUDE.md`) is a hint. The matrix tool's output is the truth. 4. **No throwaway work.** Every script, every YAML, every doc must have post-release reuse value (CI input, regression suite, generator input). If it's a one-shot, push back and propose something reusable. -5. **Tag everything.** Every TODO entry has at least `#bucket #ID`. Every ROADMAP entry has `#roadmap #ID`. Every CHANGELOG entry references the shipped tags so the cleanup grep works. +5. **Tag everything.** Every GitHub leftover issue has at least `#bucket #ID`. Every ROADMAP entry has `#roadmap #ID`. Every CHANGELOG entry references the shipped tags so the cleanup grep works. 6. **MOPS + SNMP only for the gate.** SSH work that surfaces during Phase 1 (e.g., a wire that's missing for SSH) does not block release. It gets a `#roadmap` tag and moves on. The exception is if the SSH gap reveals a real `#engine` or `#schema` bug that also affects MOPS/SNMP — then it's release scope. ## Resolved decisions @@ -964,7 +963,7 @@ After each fix: - **JSON file location** — `tests/release_matrix.json` ✓ - **Rendered doc location** — `docs/RELEASE_MATRIX.md` ✓ - **Tag scheme** — `#bucket #ID` two-token format ✓ (see "Cross-reference tag scheme" above) -- **TODO/ROADMAP rename** — `TODO-old.md` / `ROADMAP-old.md`, archive to `local/archive/` once release ships ✓ +- **TODO trio archived** — `TODO.md` / `TODO-old.md` / `TODO_HITLIST.md` live under `local/archive/docs-legacy/` (not live law). `ROADMAP.md` stays. `ROADMAP-old.md` remains in `docs/` (untrusted) ✓ ## Deferred until needed diff --git a/docs/REVIEW_PRIORITIES.md b/docs/REVIEW_PRIORITIES.md index d4301a1..ba15c25 100644 --- a/docs/REVIEW_PRIORITIES.md +++ b/docs/REVIEW_PRIORITIES.md @@ -3,7 +3,7 @@ > **Author:** Grok (review session, 2026-07-05) > **Scope:** crude-engine 2.9.0 + napalm-hios 2.0.0 (napalm-hios-v2 lineage) > **Purpose:** Capture project state and a prioritized work list for PM review. No code changes — analysis only. -> **Status:** Draft for Adam's review. Not authoritative until adopted into `TODO.md` / `ROADMAP.md`. +> **Status:** Draft for Adam's review. Not authoritative until adopted into GitHub issues / `ROADMAP.md`. Do not recreate a live `docs/TODO.md`. --- @@ -13,7 +13,7 @@ The project is **past prototype and in pre-release hardening**. Architecture is 1. **MOPS↔SNMP value parity** (145 failures, overwhelmingly one root cause) 2. **Fleet-scale setter/CRUD matrix execution** (planned but not yet run) -3. **Documentation hygiene** (stale counts, missing curated TODO/ROADMAP) +3. **Documentation hygiene** (stale counts; leftovers belong on GitHub issues, not competing TODO files) The NAPALM adapter (`napalm-hios`) is largely complete. The engine is production-ready for **per-protocol reads** (916/916 pass on MOPS and SNMP individually). The release gate fails on **cross-protocol agreement**, not single-protocol correctness. @@ -23,9 +23,9 @@ The NAPALM adapter (`napalm-hios`) is largely complete. The engine is production | Package | Path | Version | Role | |---------|------|---------|------| -| **crude-engine** | `obsidian-vault/Projects/crude-engine/` | 2.9.0 | Engine, drivers, schemas, wire YAMLs | -| **napalm-hios** | `obsidian-vault/Projects/napalm-hios/` | 2.0.0 | Thin NAPALM adapter shim | -| **napalm-hios-v2** (legacy) | `obsidian-vault/Projects/napalm-hios-v2/` | — | Orphaned `tests/` only; history in `Backup/napalm-hios-v2-*.tar.gz` | +| **crude-engine** | this repo | 2.9.0 | Engine, drivers, schemas, wire YAMLs | +| **napalm-hios** | sibling `napalm-hios` repo | 2.0.0 | Thin NAPALM adapter shim | +| **napalm-hios-v2** (legacy) | archived sibling tree | — | Orphaned `tests/` only | --- @@ -47,7 +47,7 @@ Source: `docs/RELEASE_MATRIX.md` / `tests/release_matrix.json` **Key insight:** MOPS alone: 458 pass, 0 fail. SNMP alone: 458 pass, 0 fail. Blockers are **cross-protocol value agreement**, not broken getters on either protocol in isolation. -### Failure buckets (`docs/TODO_HITLIST.md`) +### Failure buckets (April HITLIST dump; leftovers now GitHub issues) | Tag | Cells | Theme | |-----|-------|-------| @@ -134,13 +134,13 @@ Priorities are ordered by **release leverage** (how many gate cells one fix unlo ### P1 — Pre-release hygiene (low effort, high clarity) -#### P1.1 — Regenerate curated `TODO.md` and `ROADMAP.md` +#### P1.1 — Leftovers live on GitHub issues (not a live `TODO.md`) | | | |---|---| -| **Source** | `docs/TODO_HITLIST.md` (auto-generated failures) | -| **Process** | `RELEASE_GATE.md` — curate hitlist into `TODO.md`; post-release scope into `ROADMAP.md` | -| **Why** | Archived leftover Claude (`local/archive/docs-legacy/claude/CLAUDE.md`) explicitly marks old `TODO-old.md` as untrusted; curated lists don't exist yet | +| **Source** | April HITLIST dump (archived); cycle-0 lines already map to GitHub issues | +| **Process** | Prove-then-file or comment-close on GitHub issues. `ROADMAP.md` stays the feature target + release gate. | +| **Why** | `docs/TODO.md` / `TODO-old.md` / `TODO_HITLIST.md` are competing law. Archive, do not recreate as live. | #### P1.2 — Sync method/schema counts across docs @@ -275,7 +275,7 @@ Phase B — Prove write path (1 session, lab devices) Re-run: release_matrix.py --render Phase C — Ship hygiene (half session) - P1.1 Curate TODO.md + ROADMAP.md from hitlist + P1.1 Leftovers on GitHub issues; keep ROADMAP.md P1.2 Sync doc counts P1.3 Update SCHEMA_MODEL hitlist P1.4 Remove dead _get_with_ifindex @@ -317,7 +317,7 @@ Phase E — Post-release |-----|------| | `docs/RELEASE_GATE.md` | Release process authority | | `docs/RELEASE_MATRIX.md` | Auto-generated scoreboard | -| `docs/TODO_HITLIST.md` | Auto-generated failure queue | +| GitHub issues | Leftover work (HITLIST April dump superseded) | | `docs/ENGINE_PRINCIPLES.md` | Block ownership rules | | `docs/ARCHITECTURE.md` | Three-gate model | | `docs/DIAGNOSTIC_PROCESS.md` | Fix ladder | @@ -334,4 +334,4 @@ Phase E — Post-release | Date | Change | |------|--------| -| 2026-07-05 | Initial draft from Grok review session (architecture review + principles audit + Adam clarifications on transport/context maps) | \ No newline at end of file +| 2026-07-05 | Initial draft from Grok review session (architecture review + principles audit + Adam clarifications on transport/context maps) | diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 3db0183..cbc5891 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -23,7 +23,7 @@ Old file: `docs/ROADMAP-old.md` (untrusted). | `principles-grep` | offline | `scripts/check_principles.py` | `if protocol ==` and `except Exception: pass` stay banned. | | `parity-gate` | lab | `release_matrix.py --execute --kind parity --render` | 145 blocking cells (2026-04-14), almost all `#SNMP-Compound-Index-Decode`. | | `setter-crud-fleet` | lab | `--kind setter` then `--kind crud` | Read path green ≠ write path proven. | -| `docs-curated` | offline | `generate_status.py --check` | TODO + ROADMAP exist and match the cycle. | +| `docs-curated` | offline | `generate_status.py --check` | ROADMAP.md exists and matches the cycle. Leftovers live on GitHub issues. | Gate definition (unchanged): every in-scope method has a verified MOPS and SNMP verdict. Truth from execution, not prose. @@ -31,7 +31,7 @@ Version number: **2.10.0** (not a 1.0 reset). 2.9 already exists in the package. ### Cycle 0 (current) — honest catalogue -Offline only. See `docs/program/cycles.yaml` and `docs/TODO.md`. +Offline only. See `docs/program/cycles.yaml`. Leftover work is GitHub issues. Lab P0 items are on the cycle as `lab: true` but **not started** until offline proofs are green. --- diff --git a/docs/SCHEMA_MODEL.md b/docs/SCHEMA_MODEL.md index 903e3ec..5622793 100644 --- a/docs/SCHEMA_MODEL.md +++ b/docs/SCHEMA_MODEL.md @@ -10,6 +10,12 @@ This document is the formal specification for schema YAMLs in crude-engine. Ever 1. **Schemas describe the device, not the consumer.** Key names come from MIB concepts, not NAPALM conventions. The adapter reshapes for its consumer. 2. **`defaults` is the output contract.** Every key in `defaults` MUST appear in the getter output. Gate 1 exit enforces this. + - A getter returns its `defaults` keys. + - Every `defaults` key MUST exist as an attribute (feature-level or method-scoped). + - Device-touching attributes MUST have `wire` + `source` so Gate 2 resolves — that is the matrix lookup and the formatting. + - An undeclared `defaults` key never enters Gate 2; Gate 1 exit alone is a lie. + - Empty `{}` is only for honest no-wire (e.g. SSH execute blobs like `get_config` running/startup). + - Floor for this class: `python3 scripts/check_catalogue.py --composed`. 3. **`type` determines shape.** `dict` = flat or keyed dict. `list` / `list_append` = list of dicts. `upsert` / `create` / `delete` = write operations. 4. **`wire` + `source` bind to the device.** Every attribute that touches the device MUST declare its wire binding. Compute-only attributes MAY omit them. 5. **Method scope is explicit.** `defaults` keys define what a getter returns. `fields` restrict what a setter accepts. `sub_tables.field_map` declares nested structure. @@ -36,7 +42,7 @@ Schema (one per feature) ### Read method output contract -`defaults` defines every key the getter returns. Gate 1 exit enforces this — if a key is in `defaults`, it MUST appear in the output. +`defaults` defines every key the getter returns. Gate 1 exit enforces this — if a key is in `defaults`, it MUST appear in the output. Every `defaults` key MUST also exist as an attribute; undeclared keys never enter Gate 2 (principle 2). ```yaml get_dns: @@ -130,6 +136,7 @@ No other top-level keys are valid. | `primary_key` | COND | string | Required for table getters (dict keyed by this field) | | `key_map` | OPT | string | Context map name for key remapping (e.g. `ifindex`) | | `index_fields` | OPT | list | RFC 2578 compound index decomposition fields | +| `index_type` | OPT | string | Last INDEX field encoding. `implied_string` = RFC 2578 IMPLIED (remaining sub-IDs as ASCII). Used with `index_fields`. | | `sub_tables` | OPT | dict | Nested table definitions (see Sub-Table Keys) | | `index_filter` | OPT | string | Regex filter on valid index values | @@ -186,7 +193,7 @@ No other top-level keys are valid. | Key | Req | Type | Description | |-----|-----|------|-------------| | `value_map` | OPT | dict or string | Dict = inline enum map. String = context map reference. **Do not use for booleans** — see note below. | -| `compute` | OPT | dict | Derived from other attributes (keys: `from`, `expr`/`format`, `fallback`, `sort`) | +| `compute` | OPT | dict | Derived from other attributes (keys: `from`, `expr`/`format`, `fallback`, `sort`). Egress-only — not auto-inverted; see SCHEMA_PRIMITIVES.md (`compute:` vs bidirectional) | | `lookup` | OPT | dict | Cross-attribute join (keys: `from`, `index_field`, `resolve`) | | `membership_of` | OPT | string | Test if row key exists in another attr's values | | `collect` | OPT | enum | `value` (scalar) or `list` (aggregate as list) | @@ -267,13 +274,15 @@ These rules define what "canonical" means. Violations are not errors — they ar ## Known NAPALM-Shaped Schemas (Reshaping Hitlist) -| Schema | Keys | Canonical Alternative | Consumer Reshaper | -|--------|------|----------------------|-------------------| -| `interface` | `is_up`, `is_enabled`, `last_flapped`, `speed`, `mtu`, `mac_address`, `description` | `oper_status`, `admin_status`, `last_change`, `highspeed`, `mtu`, `phys_address`, `alias` | napalm-hios maps back | -| `lldp` | `remote_hostname`, `remote_port`, `remote_chassis_id`, `remote_system_description` | `sys_name`, `port_id`, `chassis_id`, `sys_description` | napalm-hios maps back | -| `mac` | `active`, `static`, `moves`, `last_move` | `status` (forward/permanent/etc) | napalm-hios derives booleans | -| `optics` | Nested `physical_channels` structure | Flat `tx_power_dbm`, `rx_power_dbm` per port | napalm-hios nests for NAPALM | -| `vlan` (get_vlans) | `ports` dict with U/T/F values | Separate `egress_ports`, `untagged_ports`, `forbidden_ports` lists | napalm-hios merges to ports dict | +Live `defaults` (`origin/main` `139fe69`, 45 schemas): four of these five rows are already canonical. Only `vlan` `get_vlans` is still a consumer/shim leftover. Extra scan found no further hitlist rows. Canonical shape stays engine formatters; consumer reshape stays adapter/shim. + +| Schema | Live defaults keys | Status | Consumer | +|--------|--------------------|--------|----------| +| `interface` (`get_interfaces`) | `oper_status`, `admin_status` (was `is_up`/`is_enabled`). `phys_address`, `alias` present; `last_flapped`, `mac_address`, `description` gone. | Already canonical. Leftover naming: `speed` vs canonical `highspeed` (wire `ifhighspeed`). `mtu` is live and canonical — not a NAPALM violation. | napalm-hios maps back if needed | +| `lldp` (`get_lldp_neighbors`, `get_lldp_neighbors_detail`) | `sys_name`, `port_id`, `chassis_id`, `sys_description` (was `remote_*`) | Already canonical | napalm-hios maps back if needed | +| `mac` (`get_mac_address_table`) | `status` MIB enum `other`/`invalid`/`learned`/`self`/`mgmt` (was `active`/`static`/`moves`/`last_move`) | Already canonical | napalm-hios derives booleans if needed | +| `optics` (`get_optics`) | flat `tx_power`, `rx_power`, `temperature` (was nested `physical_channels`) | Already canonical | napalm-hios nests for NAPALM if needed | +| `vlan` (`get_vlans`) | `ports` dict with U/T/F | Honest leftover. Canonical already exists as `get_vlan_egress`. | Consumer/shim still merges if needed | ### Acceptable (MIB-standard keys, NAPALM method name coincidence) diff --git a/docs/SCHEMA_PRIMITIVES.md b/docs/SCHEMA_PRIMITIVES.md index d92897e..5681c0f 100644 --- a/docs/SCHEMA_PRIMITIVES.md +++ b/docs/SCHEMA_PRIMITIVES.md @@ -15,8 +15,8 @@ | `bit_map:` (dict) | dict | both | CRUDE transform | `crude_bits` via `to_bits` | inline bit position → name mapping | | `bit_map:` (str) | str | both | CRUDE transform | `crude_bits` via `to_bits` | named reference in wire YAML `value_maps` | | `collect: walk` | str | egress | resolve | `_egress_gather` | gathers as dict, resolves to `list(dict.values())` at read time | -| `compute:` | dict | egress | Phase C formatters (scalar), per-row in table shaper | `_apply_compute`, `_shape_table_output` | keys: `from`, `format`, `expr`, `fallback`, `sort` | -| `assemble:` / `set_format:` | str | ingress | pre-pipeline | `_apply_assemble` | reverse of compute — builds one wire value from multiple kwargs | +| `compute:` | dict | egress | Phase C formatters (scalar), per-row in table shaper | `_apply_compute`, `_shape_table_output` | keys: `from`, `format`, `expr`, `fallback`, `sort`. **Not bidirectional** — see below | +| `assemble:` / `set_format:` | str | ingress | pre-pipeline | `_apply_assemble` | write-side twin of compute when needed — many kwargs → one wire blob. Existing primitive; not auto-derived from `compute` | | `membership_of:` | str | egress | Phase C formatters | `_apply_membership` | cross-table boolean: is key in that attr's value set? | | `lookup:` | dict | egress | Phase C formatters | `_apply_lookup` | cross-table join. Keys: `from`, `index_field`, `resolve` | | `lookup.index_field` | str | egress | gather | `_egress_gather` | injected into proto_source so driver rekeys the table | @@ -48,8 +48,8 @@ | Key | Default | Purpose | |-----|---------|---------| -| `trace` | `False` | Enable pipeline trace — stored on `engine.last_trace` / `device.last_trace` | -| `debug` | `False` | Adapter-level: enables trace + transport logging. Never reaches engine | +| `trace` | `False` | Ours: engine pipeline recording — `engine.last_trace` / `device.last_trace` (sidecar / `--inspect --trace`) | +| `debug` | `False` | Goal: foreign library logs (netmiko, paramiko, pysnmp, …), not engine thoughts. Today tools `--debug` opens some of those; adapter `debug=True` still also ORs into `trace` (leftover). Schema YAML `debug: true` is a legacy alias of engine `trace`, not this meaning. | | `validate` | `True` | Enable validation gates — `False` skips rejection, gates still produce context | | `index` | `None` | Row index for per-row operations. Also accepted as first positional arg | | `interface` | `None` | Alias for `index` (popped from kwargs) | @@ -87,3 +87,68 @@ - `value_map: ifindex` on attr + `key_map: ifindex` on method → different operations: value_map maps VALUES, key_map maps KEYS - `index_filter` only applies when index is a list (from `all` expansion) — single index passes through unchanged - Method-scoped `attributes:` overrides schema-level attrs with same name — `_load_method` merges method on top of schema + + +## `compute:` vs bidirectional primitives (HITL 2026-09-10, closed #109) + +**Bidirectional by design** applies to same-wire-atom encode/decode +(`value_map`, `bit_map`, …): egress wire→human, ingress human→wire. + +**`compute:` is egress-only.** It builds a read-side view from other attrs +(often no `wire:`). The interpreter does not auto-invert `expr:` / +`sort:`. That is intentional, not a missing Engine feature. + +**When a future SET needs the derived name**, do not invent a new +primitive. Prefer, in order: + +1. SET the `compute.from` source attrs (they carry wire + bidirectional maps), or use a dedicated write method whose `fields:` name those sources. +2. Only if the caller must SET *through* the derived attr name, declare existing `assemble:` / `set_format:` on that attr (template many kwargs → one wire value). Example already in-tree: `port_security` `set_format: "{vlan} {mac}"`. + +**Do not** extend Engine to auto-inverse `compute.expr`. That would be new meaning. + +Search cue: `assemble` / `set_format` / “compute egress-only” / closed issue #109. + + +## `compute.sort` (HITL 2026-09-10, open #116) + +`sort: ` is declared intent. The **recipe** for each name belongs in +YAML (a sort registry / defaults), not as a hardcoded key lambda in +`interpreter.py`. Engine looks up the named recipe and applies it +generically. Silent HiOS `1/1`-style heuristics in Python are an oversight +(opinion executed without consulting user intent). See open issue #116. + + +## Boolean in/out via matrix (HITL 2026-09-10, open #115) + +Schema declares output type (`boolean`). Wire declares input syntax/type +(`TruthValue`, …). `crude_matrix.yaml` maps `(syntax, type)` → transform; +Gate 2 binds schema→wire; the matrix resolves both directions. True/false +vocab and wire tokens belong in matrix args / `bool_map` (declared), not as +hardcoded English lists or bare SNMP 1/2 invents in `crude.py`. See open +issue #115. + +**Test floor / harness:** fixed-code +`python3 tests/test_crude_matrix.py` (Test bot runs; Docs documents). +Modes: **prove** one `(wire syntax, schema type)` egress+ingress; +**discover** coverage/gaps; **all** walk every cell in `crude_matrix.yaml`. +New syntax ⇒ new cell + fixture row. Not live `--gate`. Until the script +exists this lane is missing-tool (`NO_HOLE`). See open issue #115. + +**SNMP inventory + schema check:** start from matrix keys + wire `syntax:` +values (discover gaps). Legal `(syntax → schema type)` edges from the +matrix are the allow-list — `validate_schemas.py` should fail nonsense +schema/wire type pairings (extend that script, do not invent a second +validator). Schema clerk owns that check; Test bot owns the harness. + +**Beat existing into shape (circular causation):** wire syntax (MIB/SNMP) +has more rights; matrix is the allow-list; schema types must fit — expect +current declarative nonsense to fail when the check lands, then Schema +shortens toward a shorter standard list. Wire PRs: run +`test_crude_matrix.py` **before and after** so the receipt names schema +follow-ups or proves the datatype fix. + +**Discover aim:** completeness + compliance map across SNMP/SMIv2 → wire → +matrix → schema. Classify covered / missing matrix / missing wire / +schema nonsense / **custom-should-be-standard** (collapse to standard +syntax + attributes when the last refactor pattern applies). Scoreboard +is how we see transform coverage over time. diff --git a/docs/WIRE_SPEC.md b/docs/WIRE_SPEC.md index 4b6b133..82d6bc8 100644 --- a/docs/WIRE_SPEC.md +++ b/docs/WIRE_SPEC.md @@ -14,7 +14,7 @@ Wire YAMLs are **machine-generated** from MIB XML + MOPS webUI proxy captures. T | Overrides | `local/generator/overrides.yaml` | Manual corrections (create_method, type) | | MIB source | `local/reference/MIBs/` | 66 firmware MIB files | | MIB schema | `local/reference/MOPS/mops_hios.xml` | MOPS MIB tree for OID/table resolution | -| Master schema doc | `docs/napalm-hios-2-6-schema.md` | 4,058 attribute reference (1.3M) | +| Historical attribute reference (leftover filename) | `docs/napalm-hios-2-6-schema.md` | 4,058 attribute dump (1.3M). Filename is leftover; not the live product name. Live schema contracts are `crude_engine/schemas/*.yaml`. | ## The Three-File Model diff --git a/docs/program/METHOD.md b/docs/program/METHOD.md index 76bbaa8..a3a4212 100644 --- a/docs/program/METHOD.md +++ b/docs/program/METHOD.md @@ -10,7 +10,7 @@ Read this when you sit down to work, or when an agent resumes. 4. Do the smallest change that can make that proof pass. 5. Re-run **all** of `scripts/ci_offline.sh`. Do not "just run the one check." 6. If the proof is a lab proof (`lab: true`), use `tests/release_matrix.py --inspect` first, then the surgical execute, then `--render`. -7. Mark the task `done`, move the tag out of `docs/TODO.md` into `CHANGELOG.md` if it shipped a user-visible fix. +7. Mark the task `done` in `cycles.yaml`. If it shipped a user-visible fix, record the tag in `CHANGELOG.md`. Comment-close the GitHub issue. 8. Regenerate status. Commit when git exists. ## What each file is allowed to be @@ -21,8 +21,7 @@ Read this when you sit down to work, or when an agent resumes. | `docs/program/roadmap.yaml` | Version exit criteria (machine) | Human when the destination moves | | `docs/ROADMAP.md` | Same, for reading | Human; keep aligned with yaml | | `docs/program/cycles.yaml` | Current iteration tasks | Human or agent; one cycle | -| `docs/TODO.md` | Human view of the cycle + hitlist curation | Curated; not auto from matrix | -| `docs/TODO_HITLIST.md` | Raw matrix failures | **Generated only** (`release_matrix.py --render`) | +| GitHub issues | Leftover work (prove-then-file or comment-close) | Not `docs/TODO.md` / `TODO_HITLIST.md` | | `docs/RELEASE_MATRIX.md` | Gate scoreboard | **Generated only** | | `docs/API_REFERENCE.md` | Catalogue rendering | **Generated only** (`generate_docs.py`) | | `docs/status.html` | Poster | **Generated only** (`generate_status.py`) | @@ -52,14 +51,14 @@ Append to `cycles.yaml`: notes: "why / where / what done looks like" ``` -`#bucket #Short-Id` follows `docs/RELEASE_GATE.md`. A tag lives in TODO **or** ROADMAP, never both. +`#bucket #Short-Id` follows `docs/RELEASE_GATE.md`. A tag lives in a GitHub issue **or** ROADMAP.md, never both. ## Closing a cycle When every task in the cycle is `done` or `parked`: 1. Bump or keep `cycle:` number. -2. Write a 5-line note at the top of `docs/TODO.md` (what this cycle proved). +2. Comment-close leftover GitHub issues for this cycle (what this cycle proved). 3. Open the next cycle from the remaining ROADMAP exit criteria. 4. Do not open tools/NILS work as a cycle until 2.10 exit is met or explicitly parked. diff --git a/docs/program/README.md b/docs/program/README.md index 00fd0d7..2ba1aea 100644 --- a/docs/program/README.md +++ b/docs/program/README.md @@ -9,7 +9,7 @@ The operating system for getting crude-engine from 2.9 to 2.10 and beyond. | [roadmap.yaml](roadmap.yaml) | Versions + exit criteria (machine) | | [cycles.yaml](cycles.yaml) | This iteration's tasks | | [../ROADMAP.md](../ROADMAP.md) | Human roadmap | -| [../TODO.md](../TODO.md) | Human cycle list | +| [GitHub issues](https://github.com/AdamRickards/crude-engine/issues) | Leftover work (prove-then-file or comment-close) | | [../status.html](../status.html) | Generated poster | Proofs live in `scripts/`. Lab proofs live in `tests/release_matrix.py`. diff --git a/docs/program/SEED.md b/docs/program/SEED.md index 1f4ea80..1bde15f 100644 --- a/docs/program/SEED.md +++ b/docs/program/SEED.md @@ -26,7 +26,7 @@ Those live on the roadmap as later versions. They do not steal cycles from the c ``` SEED why / destination / bans (this file) → ROADMAP versions + exit criteria (docs/ROADMAP.md + program/roadmap.yaml) - → cycle this iteration's tasks (program/cycles.yaml → docs/TODO.md) + → cycle this iteration's tasks (program/cycles.yaml; leftovers = GitHub issues) → proof a command that fails when wrong (scripts/ + matrix) → status human HTML + machine JSON (docs/status.html) ``` diff --git a/docs/program/roadmap.yaml b/docs/program/roadmap.yaml index e9059b0..5c75acc 100644 --- a/docs/program/roadmap.yaml +++ b/docs/program/roadmap.yaml @@ -43,7 +43,7 @@ versions: proof: python3 tests/release_matrix.py --execute --kind setter && python3 tests/release_matrix.py --execute --kind crud --render lane: lab - id: docs-curated - title: TODO.md and ROADMAP.md exist and match cycles.yaml / this file + title: ROADMAP.md exists and matches cycles.yaml / this file; leftovers live on GitHub issues proof: scripts/generate_status.py --check lane: offline diff --git a/docs/status.html b/docs/status.html index 446470c..222c85f 100644 --- a/docs/status.html +++ b/docs/status.html @@ -41,7 +41,7 @@
-

crude-engine program · generated 2026-08-17

+

crude-engine program · generated 2026-08-31

Cycle 0: Honest catalogue

Next task: Count Execute methods from protocol YAML in the generated header

Run: python3 scripts/check_catalogue.py --e-count

@@ -60,7 +60,7 @@

How this works

SEED.md · METHOD.md · ROADMAP.md · - TODO.md · + GitHub issues · cycles.yaml

diff --git a/local/agents/1.17-clerk/INSTRUCTIONS.md b/local/agents/1.17-clerk/INSTRUCTIONS.md new file mode 100644 index 0000000..cfcf7e7 --- /dev/null +++ b/local/agents/1.17-clerk/INSTRUCTIONS.md @@ -0,0 +1,56 @@ +# 1.17 clerk + +Named for napalm-hios v1.17.0. The job is the known-good anchor, wherever +it lives now (`local/reference/`, WebUI, captured fixtures) — not "compare +to v1." + +## Hole + +Answer one question: does a known-good anchor exist for this method, and +what does it say? Does not fix. Does not decide if a discrepancy is a bug. + +## Start + +"Is there an anchor for method X?" from any clerk. + +## End + +Exactly one of three answers: + +1. **Yes, captured** — path under `tests/fixtures/` and its `verified_via`. +2. **Yes, not captured** — a human can check WebUI/CLI now; then test bot + captures it. Do not leave a verbal check. +3. **No** — say so. That is the `NO_HOLE` / no-anchor exit, not a guess. + +## Tools (fixed code only) + +- `local/reference/CLI/CLI_REFERENCE.md` +- `local/reference/CLI/cli_ref_hios_merged.json` +- `local/reference/MIBs/` +- `local/reference/MOPS/mops_hios.xml` +- `local/reference/configs/` +- Device WebUI (human, strongest anchor — shares no decode path with us) + +## Bounds + +Report what the anchor says. Bootstrap / smash order is +[`../diagrams/conform.md`](../diagrams/conform.md): MOPS vs WebUI first +(HITL floor), SNMP against that, SSH last. Never "three protocols agree." + +## Decision trail + +On the GitHub issue (short lines, no mermaid): flow step, what you +ruled out, tool run, receipt. End with green / leftover / `NO_HOLE`. +Glance value — wrong bounce feeds the chart; right bounce is obvious. + +## Never + +- Fix code or YAML. +- Call agreement proof. +- Invent a plausible value. + +## NO_HOLE + +Answer 3 is already the honest stop. Establishing a new WebUI-manual +anchor is HITL (or the human sitting at the switch), then test bot +captures. diff --git a/local/agents/AGENTS-TODO.md b/local/agents/AGENTS-TODO.md new file mode 100644 index 0000000..0553a6c --- /dev/null +++ b/local/agents/AGENTS-TODO.md @@ -0,0 +1,9 @@ +# Not standing law + +This file was a 2026-09-04 session punch list. It is not the design, not +the roster, and not something a Bot should load. + +Living process: [`README.md`](README.md). +What changed and what to poke: [`local-agents-refactor.md`](local-agents-refactor.md). +The 2026-09-04 audit snapshot: [`AUDIT-2026-09-04.md`](AUDIT-2026-09-04.md) +(historical — also not instructions). diff --git a/local/agents/AUDIT-2026-09-04.md b/local/agents/AUDIT-2026-09-04.md new file mode 100644 index 0000000..98d8683 --- /dev/null +++ b/local/agents/AUDIT-2026-09-04.md @@ -0,0 +1,290 @@ +# Audit — local/agents/ vs. the real repo, the real GitHub tracker, and outside practice + +> **HISTORICAL. 2026-09-04 snapshot. Not standing law. Bots do not read this.** +> Living process: `README.md` + clerk `INSTRUCTIONS.md` + `flow.md`. +> Refactor intent: `local-agents-refactor.md`. +> +> Written by Claude, 2026-09-04, after Adam asked for a code audit + GitHub issue +> review, both checked against what `local/agents/` currently claims, plus a look +> at how other agentic-dev tools structure issue triage. Three independent passes +> (code, GitHub, external research), synthesized here. Several claims below were +> already stale relative to a sidecar checkout that may no longer exist on disk. +> +> Scope note: the code audit ran against a separate sidecar checkout of +> `crude-engine` (the git/GitHub-tracked tree), not a personal vault working +> copy. Dual-tree topology notes are local-only. None of the fixes below had +> been applied at the time this snapshot was written. + +## 1. Stale claims — fix these before they mislead anyone + +Things `local/agents/` states as current fact that have already changed, most +likely because real work happened in the five days between that session and +this audit: + +| Doc | Claim | Reality now | +|---|---|---| +| `schema-clerk/INSTRUCTIONS.md` | "40/45 compliant, 6 real errors" | **46 schemas, 45 compliant, 0 errors, 1 warning.** All 6 original errors are already fixed. | +| `schema-clerk/INSTRUCTIONS.md` | `audit_wire.py` listed as broken (same napalm-hios-v2 path bug as the other three) | **Already fixed.** Docstring: "Retargeted from leftover napalm-hios-v2... to this repo's crude_engine/wire." Runs clean, produces `docs/WIRE_INTEGRITY.md`. It's read-only (duplicate-name / protocol-coverage report) — was never a fixer to begin with. | +| `schema-clerk/INSTRUCTIONS.md` | `batch_generate_MIB.py` listed as simply broken | It's **deliberately guarded**, not broken — refuses to run without `--isolated --outdir ` (`raise SystemExit(...)`), and is safe/usable today for diff-only comparison against live wire. Different category from the two genuinely dead scripts below. | +| `test-bot/INSTRUCTIONS.md` | "check_principles.py found 3 live violations: ssh_transport.py:110, :131, snmp_transport.py:265" | **Fixed, now 0 violations.** Confirmed directly — lines 110/131 now bind `except Exception as e:` and log; `snmp_transport.py:265` same. Checker is a clean PASS. | +| `test-bot/INSTRUCTIONS.md` | "test_replay.py: 280 passed, 61 skipped, 79 failed" | **Doesn't reproduce.** `tests/fixtures/` isn't git-tracked and doesn't exist in a fresh checkout — running it now gives 2 skipped, 0 collected. The 79-failures number was tied to a specific prior session's local fixture state, not a repo-committed fact. Don't carry it forward as "current state" — and note nowhere does test-bot's doc explain how fixtures get created in the first place. | +| `docs-clerk/INSTRUCTIONS.md` | "`TODO_HITLIST.md` is Generated only, per METHOD.md's authority table" | **Wrong.** The real `docs/program/METHOD.md` table marks only `RELEASE_MATRIX.md`, `API_REFERENCE.md`, `status.html` as generated-only. `TODO_HITLIST.md` is archived/dead — moved to `local/archive/docs-legacy/TODO_HITLIST.md`, superseded by GitHub issues as the live source (`docs/RELEASE_GATE.md` states this explicitly). | +| `AGENTS-TODO.md` | "File one issue for the 4 broken generator scripts" (open item) | **Already done and merged.** Closed issue #98 named all 11 scripts (not just 4), fixed via merged PR #101. Remove from the punch list — it's the one item that's actually fully complete. | +| `AGENTS-TODO.md` | "#117 and #133-135 sit unconnected... despite naming the same file" | **Resolved, and the "same file" premise was already off.** All four closed 2026-09-01. They don't share a filename — #117 names `mops_driver.py`/`ssh_driver.py`/`interpreter.py`/`check_principles.py`; #133/134/135 each name a *different* `wire/ssh/*.yaml` overlay. The real link is PR #136, which explicitly named all four in its body (with "do not close #117 on this PR" / "do not close #133/134/135 on this alone" — negated, so not an auto-close keyword) — someone closed them together shortly after merge anyway. | + +## 2. A real bug in `DIAGNOSTIC_PROCESS.md` — every clerk citing it inherits it + +Step 2 of the diagnostic ladder says to trace with +`device.method_name(args, debug=True)`. **That's wrong.** The engine's +per-step pipeline-recording kwarg is `trace`, not `debug` — confirmed +directly in `interpreter.py`: `tracing = kwargs.pop("trace", False) or +schema_def.get("debug", False)`. `debug=True` is a *separate* mechanism — +adapter-level transport logging, not pipeline recording (matches the +architecture note elsewhere: "Trace/debug separation: `trace=True` (engine, +pipeline recording), `debug=True` (adapter, transport logging)"). +`release_matrix.py --trace` confirms this by passing `trace=True` to the +engine, not `debug=True`. + +Anyone who follows `DIAGNOSTIC_PROCESS.md` Step 2 literally gets transport +logs, not the pipeline trace the doc promises them. `engine-clerk`'s +INSTRUCTIONS.md cites this same step and inherits the same bug. **Fix +`DIAGNOSTIC_PROCESS.md` directly and every clerk that cites it is fixed for +free** — this is a one-line doc fix, not a design question, but I haven't +touched it since I wasn't sure you want me editing the canonical +(`crude-sidecar`) checkout directly given it's "no longer coded" there. Say +the word and I'll do it, or route it however you'd rather. + +## 3. The wire-YAML question you asked directly — now has a concrete answer + +You asked: can wire YAML be hand-edited as a stopgap, proven, documented, +*then* have the generator reconcile it properly later — and do the clerks +actually know how? + +**Yes, and it's currently the *only* path — no automated generator +regenerates `crude_engine/wire/*.yaml` from MIBs right now.** +`docs/WIRE_SPEC.md` claims the live generator is +`local/generator/batch_generate_webui.py`, but that file has been retired to +`batch_generate_webui.py.stable`, whose own header reads "Leftover +v26/monolith one-shot. Not live law. Do not run" — `WIRE_SPEC.md` is stale on +this exact point. + +The real tools, correctly sorted (which none of the clerk docs currently do): + +| Script | Real status | Use | +|---|---|---| +| `batch_generate_MIB.py --isolated --outdir ` | Guarded, safe, working | Emits to a temp dir for **diff-only** comparison against live wire. Never writes `crude_engine/wire` directly. | +| `audit_wire.py` | Fixed, working | Read-only coverage/duplicate-name audit → `docs/WIRE_INTEGRITY.md`. | +| `heal_schemas.py`, `validate_schema_wire.py` | Genuinely dead | Hardcoded pre-rename paths, unguarded, not safe to run. | + +`docs/DIAGNOSTIC_PROCESS.md` Step 6 **already states the correct discipline** +for this exact scenario: hand-fix the wire YAML, then file a GitHub issue for +the generator leftover ("prove-then-file"), tagged `#generator`. Its own +tag-cycle table routes that work to **docs clerk** specifically — isolated +emit-diff only, architect merges on emit-diff + offline CI, sidecar never +touches it. None of the roster docs currently say this. `schema-clerk` +treats all four generator scripts as one undifferentiated "broken" bucket; +the real breakdown is two dead, one guarded-safe, one already-fixed. This is +the single clearest example of the "limited but complete view" gap you're +asking about — the discipline exists in the codebase's own docs, it just +hasn't been pulled into the clerk that needs it. + +## 4. Missing standards references — the actual "complete view" gap + +`local/generator/README.md` lists five docs as **authored** (hand-written, +not generated) — meaning they're exactly the standards a clerk should +validate its own work against, and exactly what drifts silently if nobody's +watching. None are currently cited by any clerk: + +| Doc | What it actually specifies | Should be cited by | +|---|---|---| +| `docs/SCHEMA_MODEL.md` | Formal schema-YAML structural spec — "every schema MUST comply with..." | schema-clerk | +| `docs/SCHEMA_PRIMITIVES.md` | YAML key → pipeline stage → handler reference | schema-clerk, engine-clerk | +| `docs/WIRE_SPEC.md` | Wire-YAML spec + data lineage (UI capture → MIB resolution → schema enrichment → wire generation) | schema-clerk (wire side), 1.17-clerk | +| `docs/ENGINE_PRINCIPLES.md` | What belongs in `interpreter.py`/`crude.py` and why — the doc `check_principles.py` actually enforces | engine-clerk (this is the answer to Step 7's "why is this generic" requirement) | +| `docs/RFC_MAPPING.md` | SYNTAX → transform function mapping | schema-clerk, engine-clerk | + +Also uncited anywhere: the root `AGENTS.md` (the canonical repo's own stated +"single root law" — you already told me this and `local/agents/` are +deliberately separate documents, which is fine, but architect's triage +judgment call currently duplicates `AGENTS.md`'s own dispatch table — "Method +missing in schema → Schema; PDU/encoding wrong → Wire; Need new primitive → +Prime" — without acknowledging it exists), and the live task-tracking files +`docs/program/cycles.yaml`, `docs/program/roadmap.yaml`, +`docs/program/SEED.md`. + +## 5. Per-clerk summary + +- **Architect** — accurate on what it does claim; missing the cross-reference + to `AGENTS.md`'s dispatch table (§4) and `DIAGNOSTIC_PROCESS.md`'s + fault-detection table, both of which are machine-checkable aids for exactly + the triage judgment call architect owns. +- **Schema clerk** — see §1 and §3 above; also missing `SCHEMA_MODEL.md`/ + `SCHEMA_PRIMITIVES.md`/`WIRE_SPEC.md`/`RFC_MAPPING.md` citations (§4). +- **Engine clerk** — accurate on `audit_getters.py` and `--no-validate` + syntax. Missing `ENGINE_PRINCIPLES.md` citation; inherits the + `debug=True`/`trace=True` bug from `DIAGNOSTIC_PROCESS.md` (§2). The + `_tag_name`/`AGGREGATE_TAGS` hard-gate precedent is asserted as history, not + re-derived this pass — fine as narrative, just noting it wasn't + re-verified. +- **Docs clerk** — generator scripts confirmed current as claimed + (`generate_docs.py`, `generate_method_ref.py`, `generate_protocols.py` all + genuinely path-safe). Missing ownership of the five authored docs (§4) and + the wire-reconciliation workflow that `DIAGNOSTIC_PROCESS.md` already + assigns here (§3) — this is docs-clerk's biggest actual scope gap, not a + documentation nit. +- **Test bot** — `release_matrix.py --inspect`/`--trace`/`--no-validate` and + `audit_getters.py` flags all confirmed exactly as documented. Missing: + `tests/test_inspect_result.py`, `test_inspect_reaches_driver.py`, + `test_ssh_dns_key_column.py` — the three tests that actually determine + `ci_offline.sh`'s exit code today (schema-validate/principles/catalogue are + scored but don't gate it until `REQUIRE_RELEASE_PROOFS=1`) — and no mention + of how `tests/fixtures/` gets populated before `test_replay.py` can produce + signal. +- **1.17 clerk** — most accurate of the six, nothing wrong found. Could cite + `WIRE_SPEC.md`'s data-lineage section (§5 there) as a formal anchor-sourcing + reference. + +## 6. GitHub issue tracker — ground truth (pulled live via REST API, 92 issues + 49 PRs) + +- **The tracker is 5 days old** (2026-08-28 → 09-01), not a mature backlog — + there's no real staleness problem yet, and the "weekly pass" cadence + hasn't actually been exercised once. What's there is a bootstrap burst + followed by 3 days of silence; don't design a cadence around that pattern + as if it were steady-state. +- **The documented `#bucket #short-id` tag scheme (`CLAUDE.md`/ + `RELEASE_GATE.md`) is used zero times on GitHub.** Three informal, + overlapping conventions substitute for it instead: GitHub Labels + (`engine`/`schema`/`wire`/`driver`/`test`/`release` all exist and are + applied, plus extra ad-hoc ones: `mops`,`snmp`,`ssh`,`offline`, + `cycle-0`), a title colon-prefix (`engine: ...`) on 24/92 issues, and a + `get_x.read: ` method-prefix convention on the 21 open + parity-failure issues. Pick one on paper and it still won't be what's + actually happening on GitHub. +- **23 labels exist, 6 never used** — `duplicate`, `wontfix`, `invalid`, + `question`, `help wanted`, `good first issue`. No triage-status label + exists at all (nothing like `needs-repro`/`blocked`/`provable`). +- **PR→issue linkage is genuinely healthy**: 19/27 sampled merged PRs + (70%) carry a real `Closes #N`/`Fixes #N`. This is the one part of current + practice that's already working and worth keeping, not replacing. +- **SSH timeout cluster is real, and bigger than `AGENTS-TODO.md` said.** + Root ticket #92 explicitly enumerates it: **#40, #42, #47, #48, #56, #59, + #61, #62, #74, #92 — 10 issues, all open, all labeled `ssh`.** The doc's + subset (#74, #48, #42, #92) is accurate as far as it goes, just incomplete. + Linkage is via prose `#N` mentions, not labels or a tracking issue. +- **Confirmed still-missing GitHub issues** (real findings from the + 2026-09-04 session, never filed): `get_mac_address_table` crash under + `napalm_compat=True`; `docs/WIRING_GUIDE.md` missing entirely; bare + `except Exception:` at the specific file:line level in `ssh_transport.py`/ + `snmp_transport.py` (broader swallow-pattern checker blindness is tracked + via closed #117/open #115, but not these two files by name). +- **New duplicate/thin-link pairs found, not previously flagged**: #115/#116 + (checker-blind-to-HiOS-vocab pair, linked one-directionally — #116 → #115, + not the reverse); #46/#55 (`get_interface_statistics`/`get_optics` share a + 36-key symptom, linked only via a comment, not the issue body/title); + #129 (repeatedly self-hedges against folding into closed #69 — a maintainer + anticipating a duplicate-shaped review, worth a real link instead of prose + disclaimers). + +## 7. Proposed issue lifecycle + +Adam's sketch (listed → validated → provable? → stuck/HITL) matches real +prior art closely. What follows adapts that sketch using patterns confirmed +in outside practice, fitted to this project's specific constraints: one +full-access agent (Claude) + one constrained sidecar (Grok: fixed +test-inspection command + git-sync only, no free-form shell) + a hard, +non-negotiable human sign-off on any engine-layer change. + +**States as GitHub labels, one mutually-exclusive `triage:*` label per +issue** (a second axis from the existing `engine`/`schema`/`wire`/etc. +domain labels, which stay as-is — state and domain are independent, don't +conflate them into one flat label set, that's part of why the current tag +scheme never got adopted): + +``` +triage:needs-repro → an agent (Metabase Repro-Bot pattern) attempts + reproduction only — no fix, no write access, max 3 + tries. Produces a receipt (failing test/trace/diff), + not a prose claim. On repo's own public issue text — + this stage should require a human-applied trigger + (comment or label), not fire on every new issue + automatically. Untrusted input, same reasoning Repro- + Bot uses for its own trigger-label gate. + +triage:validated → repro confirmed. Moves to provability check. + +triage:provable ─┐ Mechanical test, not a confidence score +triage:needs-judgment ┤ (Proof-or-Stop framing: "a natural-language report + │ from an agent is not evidence" — only a + │ deterministic, re-runnable command's pass/fail + │ counts): + │ - does an existing gate/validator/known-good + │ anchor exist that can pass/fail this fix, + │ re-runnable by the sidecar's fixed + │ test-inspection command? + │ - does the fix touch ONLY non-engine files + │ (schema/wire YAML, docs, driver registry)? + │ BOTH yes → triage:provable + │ EITHER no → triage:needs-judgment. Engine-layer + │ touch is automatic needs-judgment regardless of + │ confidence — hard filter, never bypassable by the + │ pipeline, matching your existing engine-clerk gate + │ and mirroring GitHub Copilot's own hard four-eyes + │ rule on its coding agent. + +triage:auto-staged → provable fix drafted, evidence attached (test + receipt + known-good-anchor diff — the evidence IS + the artifact a human reviews, not something they + re-derive). Auto-merge only if ALSO low-blast-radius + (docs/schema-only, CI green) — gh-aw's risk-tiered + auto-merge pattern. Otherwise → fast-track sign-off + (human confirms the receipt, doesn't re-derive it). + +triage:stuck-hitl → needs-judgment, OR provable-but-evidence-gate failed + 3x (bounded retry, then escalate — Astro + triagebot-action's pattern). Routes to you directly. +``` + +Two mechanics worth stealing regardless of the label design: + +- **1-hour cooldown**: skip any issue/PR touched by a human in the last + hour — `gh-aw`'s cheap, concrete defense against an agent stepping on work + you're actively doing. Directly relevant given you and Claude work + interactively in the same repo agents would be triaging. +- **`agent-working` claim label**: applied on pickup, released on any + terminal state. Prevents two runs (or Claude + Grok) working the same + issue concurrently — the standard mitigation for the duplicate-PR failure + mode that shows up repeatedly in real-world agent-PR audits. + +Sidecar (Grok)'s actual role in this lifecycle, given its real constraints: +`triage:needs-repro` and the provability check only — read + the one fixed +test-inspection command + git-sync, never a write/merge action. This mirrors +`gh-aw`'s own security-motivated split between a no-write analysis job (reads +untrusted issue text) and a separate, more trusted application job — which +maps almost exactly onto your existing Claude/Grok split without needing to +invent anything new. + +## 8. Suggested next moves, roughly in order + +1. Fix the `debug=True`/`trace=True` bug in `DIAGNOSTIC_PROCESS.md` (§2) — + cheap, unambiguous, currently misleading every clerk that reads it. Needs + your go-ahead on which checkout to edit. +2. Correct the six stale claims in §1 across `schema-clerk/INSTRUCTIONS.md`, + `test-bot/INSTRUCTIONS.md`, `docs-clerk/INSTRUCTIONS.md`, and + `AGENTS-TODO.md`'s punch list. +3. Add the five missing spec-doc citations (§4) to the relevant clerks — + this is the direct fix for "limited but complete view." +4. Write the wire-YAML hand-edit-then-reconcile workflow (§3) into + `docs-clerk/INSTRUCTIONS.md` explicitly — it's currently correct in + `DIAGNOSTIC_PROCESS.md` but not surfaced anywhere a clerk would find it + without already knowing to look. +5. File the confirmed-missing GitHub issues (§6): `get_mac_address_table` + crash, `WIRING_GUIDE.md` missing, the two bare-except sites by file:line. +6. Decide on the label taxonomy in §7 and whether to pilot it — the tracker + being only 5 days old means there's no backlog to migrate, this is a + clean-slate adoption, not a retrofit. +7. Link #115→#116, #46↔#55, and give #129 a real link instead of prose + disclaimers, while the tracker's still small enough that this is a + 5-minute pass rather than an archaeology project. + +None of the above has been applied — this file is the audit, not the fix. +Say which of these you want done and I'll do them. diff --git a/local/agents/README.md b/local/agents/README.md new file mode 100644 index 0000000..a9193d8 --- /dev/null +++ b/local/agents/README.md @@ -0,0 +1,201 @@ +# Agents — sieve, tools, bounded gap + +Flowcharts in this folder are the process. They are how a human sees the +holes, and how a Bot gets its personality (derived, fixed format, not a +novel). Anything that fits an existing hole runs to done with no human. +Anything that does not fit is HITL — then the chart gets a new hole, or a +new fixed-code tool, so the next one falls through. + +This folder is the 2.0 of `docs/program/METHOD.md` for bot labour. Destination +still lives in `docs/program/SEED.md`. Do not treat `SEED.md`'s "loose +instructions" as a license to narrate. Speech is a receipt or `NO_HOLE`. + +## The sieve + +Alphabet-shaped work, holes for letters we already know. `a` `b` `c` fall +through and the team finishes them. A `d` does not squeeze through `c`. +HITL looks at the object, adds a hole or a tool, and the next `d` is an `a`. + +Do not pre-drill holes for letters you have not seen. A fake yes/no is the +same mistake as skipping the check. + +Glance: [`diagrams/base-flow.md`](diagrams/base-flow.md) (does it fit a +hole?) and [`diagrams/conform.md`](diagrams/conform.md) (conform smash: +method × transport × CRUDE, MOPS floor then SNMP then SSH). Clerk-specific +trees sit next to that clerk as `flow.md`. Update the chart when a real +object does not fit. Then regenerate the Bot instructions from the chart — +do not patch prose and leave the mermaid lying. + +## Two HITL gates + +**Fits a hole (schema/wire/docs, no human):** something does not work against a contract that +already exists. + +``` +issue → reproduce with a named tool → propose a small change inside bounds → +run the same tool → implement when green +``` + +Online devices matter. Offline CI is a cheap pre-filter, not a substitute +for live-device proof. Grok Bot reaches live devices only through the sidecar on the VPS +(WireGuard, firewalled). If the sidecar cannot run the proof, that is +`NO_HOLE` (mesh missing), not a prompt to guess. + +**HITL (`NO_HOLE` / `LOGIC`):** the object needs logic that is not already +in the system — a new primitive, a new invariant, a behaviour change, or a +new test tool so this shape can be proven. That is the work the human wants: +better testing logic, and decisions that change how things work. + +New meaning is one gate. Engine files are a second, separate, absolute one: +`interpreter.py`, `crude.py`, `drivers/base.py` never merge without a human +looking, full stop — a proven bugfix against existing declared behaviour +still needs a HITL glance before it ships. No exception, no matter how +small the diff or how clean the sweep. This is Adam's rule, not something +a Bot (Grok included) reasons its way past. Kept cheap on purpose: the +sign-off is a receipt (sweep result + one line naming why this is existing +meaning, not new), not a case-file essay. + +Every `NO_HOLE` also names the missing hole or missing tool. Otherwise the +same `d` recurs forever. + +## A Bot, fixed format + +Personality comes from its `flow.md` (or the base flow). Instructions are +only: hole, start, end, tools, bounds, never, `NO_HOLE`. + +- **Start:** this issue, this exact proof command, currently red (or not + yet run). +- **End:** the same command, green, against the tree that contains the + change. Live proofs go through the sidecar and must say which tree ran. +- **Tools:** the listed fixed-code commands only. No throwaway + `device.get_*()` scripts. If the harness cannot do it, add a flag later + (HITL / tool work) — do not improvise. +- **Bounds:** the only AI gap. What YAML/code to try between red and green, + inside the hole. Not whether it is proven. Not what the architecture + should become. +- **Never:** essays, new primitives, guessing device behaviour from a + code-read, claiming a fix without a receipt from the named tool. + +## Architect orchestration + +Logic checks for how Architect multiplexes clerks live in +`architect/INSTRUCTIONS.md` § Orchestration checks (e.g. schema +hole ⇒ schema→wire ask ⇒ 1.17 differential). HITL-named checks +get written there — not only in chat memory. + + +### Effort objects (tangible goals) + +HITL ideas that span sessions become **in-repo Effort boards** under +`local/agents/` (primary: [`diagrams/effort-board.md`](diagrams/effort-board.md)), +not chat memory. Child work is GitHub issues. Architect updates the board when +bubbles split/green/block (orchestration check 6). Architect-machine-only MD +is cache only. + +## Roster + +Six holes. Do not add a seventh until a real object collides two of these. + +| Clerk | Hole | Flow | Ships when | +|---|---|---|---| +| **Architect** | Route. Does not fix. | [`diagrams/base-flow.md`](diagrams/base-flow.md) | N/A | +| **Schema clerk** | `schemas/*.yaml` and, for now, `wire/**` | base flow + diagnostic ladder steps 1–6 | named proof green, no new primitive | +| **Engine clerk** | `engine/interpreter.py`, `engine/crude.py`, `drivers/base.py` | [`engine-clerk/flow.md`](engine-clerk/flow.md) | named proof green, diff uses existing meaning, **and HITL sign-off — always, no exception** | +| **Docs clerk** | regen generated docs; catch stale hand-written claims | (none yet — add only after a real branch) | docs-only, generators current | +| **Test bot** | Run the named proof. Never authors. | [`test-bot/flow.md`](test-bot/flow.md) | receipt (pass/fail/blocked), not a merge | +| **1.17 clerk** | Does a known-good anchor exist, and what does it say? | (three answers only) | an anchor or a plain no | + +Wire stays under schema clerk until real PRs show the two roles colliding. + +## Fixture confidence (when capturing) + +Not all "known good" is equal. Tag `tests/fixtures/` honestly: + +- `verified_via: webUI-manual` — human read the device WebUI. Highest. +- `verified_via: cli-manual` — human ran the CLI by hand. +- `verified_via: cross-protocol-agreement` — two protocols agreed. The + collapse bug had MOPS and SNMP agreeing while both were wrong. Not proof. +- `verified_via: unverified` — snapshot only. Not an anchor. + +Conform smash is [`diagrams/conform.md`](diagrams/conform.md): HITL/1.17 +confirms MOPS, SNMP is fitted to that value (often generated-wire type or +lookup), then SSH toward the same two known goods. Nested +`method × transport × CRUDE op`. Reads before writes. Classify an SSH miss +as wire, driver, or engine/primitive — do not smash all three at once. + +## Diagram convention + +- Cross-cutting → `diagrams/.md` +- One clerk's tree → `/flow.md` next to `INSTRUCTIONS.md` +- Never paste mermaid into instructions. Personality is derived from the + chart; instructions stay the fixed format above. + +## Sidecar + +The VPS sidecar is how Grok Bot proves work on live devices. It is not a +second Grok and not a substitute for the Bot. Widen sidecar *verbs* when a +proof cannot be run (HITL / tool work). Until a verb exists, `NO_HOLE`. + +Privacy (personal cyber + physical security): do **not** mention a +restricted site on GitHub or in anything a Bot posts externally. No model +names, hostnames, pool labels, IPs, inventory size, or counts that imply +how much hardware exists. Home-office may be named in the abstract. Public +language is tested/untested and pass/fail. Architect enforces at ingress. +Device identity stays in gitignored `device_pool` / local sidecar notes. + + + +## Decision trail (glance value) + +Auditable for improvement, not distrust. The GitHub issue is the log +(on-disk only when there is no ticket). Do **not** paste mermaids onto the +issue — the charts stay in this folder; the issue holds the decisions. + +Fixed shape, short lines: + +1. **Architect triage** — hole pick + named proof command + e.g. `hole: schema/wire · proof: release_matrix --inspect --method X` +2. **Clerk steps** — which flow step, what was ruled out, tool run, receipt + e.g. `step: ladder-4 · ruled-out: overlay miss · tool: validate_schemas --errors · receipt: …` +3. **End** — green on that proof, leftover filed, or `NO_HOLE` naming the + missing hole/tool + +Open the issue → see the logic. Wrong bounce → feedback into the chart. +Right bounce → obvious. Speech on the issue is a receipt or `NO_HOLE`, not +an essay. + +**Multi-hop is normal.** One issue may bounce Schema → 1.17 → Engine (or +run two asks in parallel) so clerks scale. One clerk could walk the whole +path alone; splitting is throughput. Architect multiplexes each ask with a +named proof. Each hop adds decision-trail lines. Clerk helpers/subagents +are fine when their work collapses into those same glance lines — no +silent side channel. + +## Living law (how this stays true) + +`local/agents/` on `main` is process law for bot labour. Update it in-tree; +do not let bot profile prose drift ahead of this folder. + +1. **Change the chart first** (`diagrams/*.md` or a clerk `flow.md`) when a + real object does not fit. Then shorten that clerk's `INSTRUCTIONS.md` to + match. Never patch instructions and leave the mermaid lying. +2. **Ship via PR** into `AdamRickards/crude-engine`. Architect owns GitHub + ingress and redaction. Historical snapshots (`AGENTS-TODO.md`, + `AUDIT-*.md`) are not law. +3. **Bot profiles follow the roster.** Each live clerk description is a + short leash derived from its `INSTRUCTIONS.md` (hole, tools, never) plus + a pointer to this folder. Architect does not invent a seventh clerk. +4. **Weekday sync.** Architect diffs live bot profiles against the roster + here and reports differentials in the Architect chat: missing clerk, + extra bot, description drift, or chart/instructions mismatch. Fix by + updating the profile or the pack — keep one truth. +5. **Decision trail on the issue** (see above). Profiles and INSTRUCTIONS + require those glance lines; weekday sync flags essays or silent work. +6. **Claude on the VPS** stays local-only (no push). Architect turns + detailed sidecar receipts into GitHub issues without device identity. + +## Not standing law + +`AGENTS-TODO.md` and `AUDIT-2026-09-04.md` are historical snapshots. Bots +do not read them. The living spec of this refactor is +[`local-agents-refactor.md`](local-agents-refactor.md). diff --git a/local/agents/architect/INSTRUCTIONS.md b/local/agents/architect/INSTRUCTIONS.md new file mode 100644 index 0000000..c314665 --- /dev/null +++ b/local/agents/architect/INSTRUCTIONS.md @@ -0,0 +1,138 @@ +# Architect + +Personality from: [`../diagrams/base-flow.md`](../diagrams/base-flow.md) + +## Hole + +Triage and GitHub ingress. Does not author fixes. Merges only after a named-proof receipt. Decides whether the object fits +a known hole or is `NO_HOLE`. + +## Start + +A signal: new issue, sweep finding, or HITL input. + +## End + +Assigned to one owning clerk with a **named proof command**, or `NO_HOLE` +handed to HITL with the missing hole or missing tool named. + +**Decision trail** (on the GitHub issue, short lines): hole pick + named +proof. Multi-hop / multi-clerk on one issue is normal — each hop is a +new trail entry. No mermaid paste. Glance value for HITL feedback into +the chart. + +## Tools (fixed code only) + +- GitHub issues: file, label, link. Do not treat Issues as the brain; + `cycles.yaml` / this folder wins if they disagree. +- Sidecar `POST /v1/run` when routing needs a live inspect before the hole + is obvious. Prefer `trace:true` (engine pipeline recording) when the miss + may be ours — see Orchestration check 2. Not `debug` (foreign library logs). +- Grep / issue text only for "same file/function/symptom already open." + There is no cross-reference tool yet — that gap is `NO_HOLE` for tooling, + not a reason to invent a match. + +## Bounds + +Pick the hole. Write the start (proof command + never-touch). Post that +as the first decision-trail lines on the issue. That is the whole job. + +## Orchestration checks (capture HITL logic here) + +When HITL names a multi-hop or pre-assign check, write it in this section +(or branch `../diagrams/base-flow.md` if the sieve itself changed). Do not +leave orchestration only in chat memory. + +Current checks: + +1. **Schema hole ⇒ schema→wire ask ⇒ 1.17 differential** (HITL 2026-09-10, + #39). Assigning Schema alone is not enough. On the issue, map + method defaults / sub_table field_map → each attr → `wire` + source + + which protocols have sources. Then 1.17 clerk diffs **that ask** against + what napalm-hios v1.17 actually requested (missing getter, collapsed + walk, different keys/columns). 1.17 does not fix. YAML bounce may run + with or after that differential; the ask inventory must be on the trail + either way. + +2. **Named proof includes engine `trace` when locating a pipeline miss** + (HITL 2026-09-10). `trace` records *our* steps (intent → wire bind → + transform → driver). When parity/empty/defaults look like crude missed + the contract, the named proof is inspect/`POST` with `trace:true` (or + `trace=True`), and the trail should say which step diverged — not a + guess from schema text alone. `debug` is foreign library logs only + (#155/#156); do not substitute it for pipeline recording. + +3. **Prefer existing schema/wire tools before new primitives** (HITL + 2026-09-10, #41/#160). If an existing declaration (e.g. SSH + `parser: regex`, value_map, overlay field) meets the contract without + a mess, Schema sits with that — no new primitive. Only when the need + cannot be met, or the existing tool becomes overly complex / dishonest, + hand HITL a `NO_HOLE` naming the missing declarative tool. Do not invent + engine parse ports to avoid using a working overlay tool. + +4. **Generator align iterates in TEMP** (HITL 2026-09-11, #162). Docs + clerk leftover-generator cycle: isolated emit → diff live + `crude_engine/wire` → named-TC teach on a **copy** → re-emit. Goal: + emit matches live (or the bulk). Archive TODO generator hints are + hints only — re-prove vs current live. If emit looks right and a live + hand-patch looks wrong, file/split a **wire** leftover (do not teach + the bug). Never overlay emit onto live wire until HITL regen. + +5. **Wire wrong input → schema looks weird** (HITL 2026-09-11). When + engine output is odd because wire fed the wrong type/shape/OID: + (1) **Identify** — schema→wire ask + `trace:true` + emit-diff if + generator-shaped. (2) **Temp patch** live-shaped wire in a branch/temp + only. (3) **Prove** vs known-good (1.17 / fixtures / HITL MOPS or + offline XML). (4) **Permanent** — Schema/wire PR after green; if the + mistype is generator-shaped, also teach leftover generator (#162 loop) + so regen does not lose the fix. + + +6. **HITL discussion → Effort object in-repo** (HITL 2026-09-13). A good + conversation about direction is not the work. When HITL names a multi-session + goal (floors triad, generator→SNMP, SSH after two floors, …), Architect + **mints or updates a durable Effort** that exists on GitHub outside chat — + primary glance: `local/agents/diagrams/effort-board.md` (and sibling MD under + `local/agents/` as the board grows). Child work stays GitHub issues (split + pieces with named proofs). The Effort MD is the visual bubble sheet; update + it when a bubble splits, greens, or blocks. Chat and Architect-machine-only + caches are not substitutes. Projects V2 is optional whiteboard only (user + fine-grained PAT cannot write user-owned Projects). Each Effort names **finished looks like** up front. Subactions (issues, + PRs, named proofs) are spawned by poking that Effort until the end is + true — or HITL parks it — without HITL restating the idea. + +7. **Inspect timeout ⇒ phase ⇒ call ladder** (HITL 2026-09-13, #92/#215). + After `#179`, do not stop at "still timeout." Test bot must run the + call-timeout resolution in `test-bot/flow.md` / + `diagrams/inspect-timeout.md`: `phase=open` vs `phase=call`; on call, + declared SSH read commands + CLI.json cross-check → bucket → Schema / + `#92` HITL / Engine heartbeat `NO_HOLE` / SSH-parse remainder. Hang + receipts often lack `cli` — YAML+CLI.json is the first poke. Do not + invent a seventh clerk for transport. + +8. **Engine/HITL NO_HOLE ⇒ auto-park, do not wait** (HITL 2026-09-13). + When Schema/Docs exhaust tools and the hole is Engine primitive or + human eyes: add/update a row in `diagrams/hitl-engine-park.md`, link + consumers, keep soft proveable hops (Schema/Docs/Test) moving. Do not + send a go/no-go widget that stalls A′/B. Engine inventing meaning still + needs HITL sign-off *when the PR is ready* — parking is not a silent + Engine kick. + + +## Never + +- Author a fix. +- Merge without a named-proof receipt (or merge engine without HITL sign-off). +- Guess device behaviour. +- Mention any restricted/office device identity in anything a Bot + will post (GitHub especially): no model names, hostnames, pool + labels, IPs, inventory size/counts, or provenance that implies how + much hardware exists. Home-office is fine to name in the abstract. Public + language is tested/untested and pass/fail. Device identity stays in + gitignored pool / local notes. + +## NO_HOLE + +Novel meaning, no named tool can prove it, or the signal stays ambiguous +after the listed tools. Hand HITL facts + the receipt you have + options. +Also name what tool or hole would have made this fall through. diff --git a/local/agents/diagrams/base-flow.md b/local/agents/diagrams/base-flow.md new file mode 100644 index 0000000..b64c2b1 --- /dev/null +++ b/local/agents/diagrams/base-flow.md @@ -0,0 +1,28 @@ +# Base flow — does this fit a hole? + +Owned by no single clerk. Architect routes through this. Branch this chart +when a real object does not fit — then update the owning clerk's +`INSTRUCTIONS.md` to match. Do not invent holes speculatively. + +```mermaid +flowchart TD + A[Signal: issue, sweep, or HITL] --> B{Fits a known hole?} + B -->|Yes: schema/wire, docs regen,\nengine bug vs existing meaning,\nanchor check, named proof| C[Assign owning clerk] + B -->|No: new meaning, no tool can prove it,\nambiguous after the named tools| S[NO_HOLE] + S --> S1[HITL: new hole, new tool, or park] + S --> S2[["Name the missing hole or missing tool.\nThat is how the sieve grows."]] + S1 --> C + C --> D[Start: named proof command, currently red] + D --> E[Owning clerk: one small change inside bounds] + E --> F[Test bot: run the SAME proof\nlive via sidecar, or offline if the hole says so] + F --> G{Receipt?} + G -->|Red, still inside bounds| E + G -->|Green, no new meaning| G2{Touches engine/interpreter.py,\nengine/crude.py, or drivers/base.py?} + G2 -->|Yes| Gate[["HITL sign-off. Always, no exception —\nreceipt + one-line why-existing-meaning.\nNot a Bot's call, not Grok's to skip."]] + G2 -->|No| L[Implement. Done.] + Gate --> L + G -->|Tool failed to run: tunnel, SHA, infra| I[BLOCKED — mesh.\nNot evidence either way.] + G -->|Would need a new primitive / invariant / behaviour| S + L --> N[Docs clerk if methods/docs now stale] + L --> O[Test bot: capture/update fixture + verified_via] +``` diff --git a/local/agents/diagrams/conform.md b/local/agents/diagrams/conform.md new file mode 100644 index 0000000..002bf8a --- /dev/null +++ b/local/agents/diagrams/conform.md @@ -0,0 +1,41 @@ +# Conform — known state → finished state + +The smash loop once live devices are reachable. Nested, ordered, always against a +HITL-agreed value — never three protocols agreeing with each other. + +``` +for each method in schema: + for each CRUDE op the method declares (read first; C/U/D/E only after read floor): + 1. MOPS — HITL baseline (WebUI / 1.17). This is the floor. + 2. SNMP — conform to that MOPS value (generated wire: type, lookup, index). + 3. SSH — same floor. Classify miss: wire | driver | engine/primitive. +``` + +Two known goods after step 1: the MOPS receipt **and** 1.17/WebUI. SNMP and +SSH steer toward those, not toward each other. + +```mermaid +flowchart TD + M[Next method × CRUDE op] --> R{Read floor exists for this method?} + R -->|No, and this op is C/U/D/E| Wait[["Skip writes until read floor.\nDo not CRUD against a guess."]] + R -->|Yes, or this is a read| Mops[MOPS live inspect] + Mops --> H{HITL / 1.17 agrees with MOPS?} + H -->|No — MOPS wrong vs WebUI/CLI| FixM[["Schema/wire MOPS until it matches the anchor.\nDo not 'fix' 1.17 to match MOPS."]] + FixM --> Mops + H -->|No anchor yet| A[["1.17 clerk / HITL. NO_HOLE until a floor exists."]] + H -->|Yes — MOPS is the floor| Snmp[SNMP inspect vs MOPS value] + Snmp --> Qs{SNMP matches MOPS?} + Qs -->|Yes| Ssh[SSH inspect vs MOPS floor] + Qs -->|No — type / lookup / index / syntax| Wsnmp[["Wire YAML. Generated SNMP: fix the declaration.\nSchema clerk."]] + Wsnmp --> Snmp + Qs -->|No — not a wire declaration| Lsnmp[["Ladder: driver vs engine.\nMostly still not engine."]] + Lsnmp --> Ssh + Ssh --> Qh{SSH matches MOPS floor?} + Qh -->|Yes| Done[["Floor for this method × op × all in-scope transports.\nCapture fixture + verified_via."]] + Qh -->|Miss| C{Which layer?} + C -->|CLI overlay, command, prompt, field map| Wssh[["Wire SSH overlay. Schema clerk."]] + C -->|Parse, state machine, transport I/O| Dssh[["Driver function. Still a bug vs existing meaning if the command already works by hand."]] + C -->|Cannot declare it in YAML; need a new primitive| E[["LOGIC. Engine clerk + HITL.\nDo not invent meaning in SSH."]] + Wssh --> Ssh + Dssh --> Ssh +``` diff --git a/local/agents/diagrams/effort-board.md b/local/agents/diagrams/effort-board.md new file mode 100644 index 0000000..87c1cff --- /dev/null +++ b/local/agents/diagrams/effort-board.md @@ -0,0 +1,73 @@ +# Effort board — tangible goals (bubbles) + +Owned by Architect. Lives **in this repo** under `local/agents/` so HITL can +open it on GitHub anytime. Chart first: when HITL names a multi-session goal, +update this board before (or as) clerks spin. Children are GitHub issues. +Chat is signal, not storage. + + +## What an Effort is + +1. **Goal** — multi-session, broadly named (not a single PR). +2. **Finished looks like** — concrete enough to say yes/no without re-arguing. +3. **Poke loop** — Architect/clerks keep opening small issues, PRs, and named + proofs until finished-looks-like is true (or HITL parks it). Middle may be + wrong; start and end stay fixed. + +Chat names the Effort once. The board + child issues *are* the Effort after that. + +## Live bubbles (update in PRs — not only in chat) + +| Bubble | Status | Children | +| --- | --- | --- | +| **A** Offline↔gold floor growth | **DONE** floors=**52** | #169 trail; unfloorables → #193 (poe status-null + route_to); merge #257 `3ca9974` (#258 closed duplicate) | +| **A′** Live MOPS triad (gold / Offline / live) | **IN PROGRESS** | #229 — floored MOPS receipts done (49/49 class); look-intos as filed | +| **B** Generator → SNMP vs MOPS known-good | **IN PROGRESS** | #162 teach progressed; live 36/43; Schema #233–#235 **closed**; #231→#12 parked; TC-BITS in #205 parked — see `hitl-engine-park.md` | +| **C** SSH after two good floors | **SOFT** | Timeout detection done; **#92 stays closed**. Open soft: #226 #227 #228 #217 #178 #62 #274; **#272 NO_HOLE→Engine park**. Closed: #44/#54/#264/#46/#55. Prefer A′/B over stalling. | + +```mermaid +flowchart TD + HITL["HITL idea / discussion"] --> E["Update this Effort board MD"] + E --> Split["Split into child GitHub issues\nnamed proof each"] + Split --> A["A Offline↔gold floors\nDONE 52 / #193 look-into"] + Split --> Ap["A′ Live MOPS triad\nIN PROGRESS"] + Split --> B["B Generator→SNMP\n#162 IN PROGRESS"] + Split --> C["C SSH after two floors\nSOFT"] + A --> Re["Recombine: update WHERE here\nthen park or open next bubble"] + Ap --> Re + B --> Re + C --> Re +``` + +## Rules + +- Every open issue hangs on this board, companion #195, or `hitl-engine-park.md` — fold orphans in; do not leave silent backlog. +- Companion issue [#195](https://github.com/AdamRickards/crude-engine/issues/195) mirrors this table — update **both** in one hop when bubbles change. +- HITL/Engine park lives in `hitl-engine-park.md` (not duplicated as a fifth bubble). +- Tangibility: if it is not on GitHub in this folder (or a child issue), it is not the Effort. +- Architect updates this file when a bubble splits, greens, or blocks. +- Six clerks only; Architect holds the board and assigns hops. +- No lab identity on GitHub. + + +## Tracked outside floors Effort (fold-in 2026-09-14) + +Every open issue must hang on this board or `hitl-engine-park.md`. These were open but unnamed; reprocessed under current mechanics (no seventh clerk; soft hops vs Engine/HITL park). + +| Bucket | Status | Children | +| --- | --- | --- | +| **R** Release / RC | **PARKED** — needs HITL `--gate` | #14 setter/CRUD matrix (260 jobs). Not a floors poke; Architect does not close release without hand-back. | +| **L** Lab / fixture capture | **PARKED** — HITL | #110 multi-device leftover fixture trees (office L3 vs other profiles). No lab identity on GitHub. | +| **F** Feature gap (webUI tab) | **INVENTORY DONE** | #129 → proposed `get_egress_shaping` (ask map on issue); implement when ordered; not A′/B blocker. | +| **T** Tooling | **SOFT** | #156 honour `debug=foreign` / `trace=engine` (post #155). Docs/Engine soft when free; not floors-critical. | + +Engine cycle-0 that need primitives or checker work live on **`hitl-engine-park.md`**: #30 SNMPHIOS.close tax; #115 `to_bool` false-vocab; #116 `sort:natural` port heuristic — plus existing #12/#68/#106 rows. + +## Finished looks like (this board) + +| Bubble | Finished looks like | +| --- | --- | +| **A** | Offline↔gold floor growth done for floorable methods; unfloorables filed — **met** (52 floors, #193) | +| **A′** | MOPS + Offline proved against Gold, Config/XML Offline, and Live (named sweeps; look-into list exists) | +| **B** | Generator emit≈live for teachable residuals; SNMP meets MOPS known-good floor on named proves | +| **C** | SSH leftovers worked only after A′+B floors hold; timeout *detection* done (#179–#225); #92 stays closed; parse/parity soft backlog includes older fold-ins | diff --git a/local/agents/diagrams/hitl-engine-park.md b/local/agents/diagrams/hitl-engine-park.md new file mode 100644 index 0000000..21ed2bd --- /dev/null +++ b/local/agents/diagrams/hitl-engine-park.md @@ -0,0 +1,30 @@ +# HITL / Engine park list + +Architect-owned. When a leftover needs **Engine HITL**, a **new primitive**, +or Schema/Docs `NO_HOLE` that only Engine can fill: **auto-park here** and +keep soft Schema/Docs/Test proveable hops moving. Do **not** widget-wait +HITL (Jaysue 2026-09-13). + +Glance: open rows = parked for human/Engine. Close rows when the primitive +lands or HITL kills the need. + +| Parked | Why | Consumers | Soft path meanwhile | +| --- | --- | --- | --- | +| #12 SNMP compound-index / `key_format` (ascii) | Engine primitive — Schema tools exhausted | #231 `community_access` mops ascii vs snmp 0; trap-dest class | Lane B continues; leave #231 open as NO_HOLE consumer | +| TC-BITS (~3) prove-before-flip | Generator teach needs live prove first | #205 residual | Parked — not overnight flip | +| MOPS/SNMP multi-field INDEX / singular `index_field` collapse | Driver `_list_to_dict` / compound INDEX — Schema cannot un-collapse | #68 get_software images; #106 MOPS multi-field INDEX; #12 SNMP compound | Soft hops elsewhere; park Engine | +| SNMP inspect `last_oid` / walk heartbeat | Hang never returns; snmp call-timeout has no last_command (SSH-only today) | #47 get_interfaces snmp fanout | Schema walk fan-in first; park Engine heartbeat | +| PR #76 `get_optics` (open since 2026-08-29) | Held for napalm-hios v1.17 compare; outside current A/A′/B/C lanes | silent backlog if ignored | HITL: revive compare+prove **or** close/park explicitly | +| #30 SNMPHIOS.close() asyncio tax | Engine/transport — ~2s close destroys pending tasks | sequential sidecar / concurrent prove noise | Soft floors continue; Engine park until HITL opens | +| #115 `to_bool` English/SNMP false-vocab hardcoded | Checker-blind Engine; schema cannot declare | bool matrices / parity | Soft YAML elsewhere; park Engine | +| #116 `compute sort:natural` HiOS port-name heuristic | Checker-blind Engine encodes vendor sort | port-ordered tables | Soft elsewhere; park Engine | +| #156 Engine/tools debug↔trace conflation (post Docs #262) | Docs wording cleared; code still maps debug→trace / missing --debug / audit_setters debug=True | napalm-hios _call; tools CLI; interpreter schema debug alias; sidecar/release_matrix; audit_setters | Soft Docs done; park Engine/tools until HITL opens | +| #272 get_interface_statistics egress physical filter | `index_filter` ingress-only; mops/snmp keep cpu/vlan n=36 vs SSH physical ~28 | Port Statistics–shaped callers | Soft SSH #271 done; park Engine egress filter | +| Fail-fast / invalid-CLI redefine | Needs HITL eyes on live invalid/missing/bad-attr | was #92 title — **do not reopen #92**; new ticket if poked | Timeout detection done (#179–#225); SSH parse = #226/#227/#228 | + +## Rules + +1. Engine merge still needs HITL sign-off when it invents meaning / new primitive. +2. Soft changes (YAML overlay, floors, docs, harness prove) keep the poke loop. +3. One row per park reason; consumers link in, do not duplicate umbrellas. +4. No lab identity on this page. diff --git a/local/agents/diagrams/inspect-timeout.md b/local/agents/diagrams/inspect-timeout.md new file mode 100644 index 0000000..8a6b9de --- /dev/null +++ b/local/agents/diagrams/inspect-timeout.md @@ -0,0 +1,44 @@ +# Inspect timeout resolution (open vs call) + +After `#179`, inspect timeouts carry `phase=open` or `phase=call`. +Attribution is the **finder**. Resolution is a **Test-bot poke loop** +(classify + route — never author a fix). Living law: +[`../test-bot/flow.md`](../test-bot/flow.md) § Call-timeout resolution. + +```mermaid +flowchart TD + T[timeout receipt] --> P{phase?} + P -->|open| Open[["Open path: login/prompt/budget.\n#92 class until fail-fast HITL.\nDo not Schema-fake overlay."]] + P -->|call| Decl[["List declared SSH *read* commands\nfrom wire overlay for this method"]] + Decl --> Cli[["CLI.json / CLI_REFERENCE:\nspelling exists? placeholder?"]] + Cli --> Bucket{Bucket} + Bucket -->|literal placeholder / invalid spelling| Inv[["Invalid-cmd candidate.\nTrail + #92 fail-fast HITL\n(or Schema if overlay invents bad CLI)"]] + Bucket -->|N x per-index fanout under call budget| Fan[["Fanout-budget leftover.\nRoute Schema: table show vs\nper-port {index} loop"]] + Bucket -->|few valid shows; still call-timeout| Slow[["Slow-or-hang call.\nNote harness: hang returns no cli.\nOptional Engine: last_command heartbeat"]] + Bucket -->|call completes; cli listed n=0| Parse[["Not timeout — SSH parse/overlay.\nClose timeout intention; one remainder ticket"]] + Inv --> Trail[Decision trail on issue] + Fan --> Trail + Slow --> Trail + Parse --> Trail + Trail --> End[["END: leftover / NO_HOLE / green.\nNever invent a seventh clerk."]] +``` + +## Why CLI.json before another live poke + +On `phase=call` **timeout**, the worker thread never returns — so +`trace:true` often has **no** `cli` / `last_cli` in the receipt (hang +never hits `_collect_cli`). Declared commands from +`crude_engine/wire/ssh/*.yaml` + `local/reference/CLI/cli_ref_hios_merged.json` +are the first honest poke. Live re-inspect still proves budgets/phase; +it does not by itself name the stuck `show`. + +## Buckets (glance lines for the issue) + +| Bucket | Meaning | Route | +| --- | --- | --- | +| open-budget | `phase=open` under current `inspect.yaml` | #92 / budget; not overlay | +| call-budget-fanout | Many `{index}` / per-row reads vs call budget | Schema (collapse to table `show`) | +| call-invalid-cmd | CLI not in CLI.json, or literal `{index}` in transcript when call completes | #92 fail-fast HITL and/or Schema | +| call-unknown-hang | Few valid shows; still `phase=call` timeout; no cli | Trail; Engine `NO_HOLE` if need last_command heartbeat | +| timeout-cleared-parse | `status=ok` but n=0 / wrong shape | SSH remainder ticket; not #92 | + diff --git a/local/agents/docs-clerk/INSTRUCTIONS.md b/local/agents/docs-clerk/INSTRUCTIONS.md new file mode 100644 index 0000000..ae9cde9 --- /dev/null +++ b/local/agents/docs-clerk/INSTRUCTIONS.md @@ -0,0 +1,71 @@ +# Docs clerk + +Personality from: [`../diagrams/base-flow.md`](../diagrams/base-flow.md). +No private `flow.md` until a real branch appears. + +## Hole + +Generated docs stay generated. Hand-written docs stay true. Almost always +a post-merge reaction, not an originating fix. + +Also: GitHub label `generator` — leftover MIB wire generator cycle +(isolated TEMP emit-diff vs live `crude_engine/wire`; teach leftover +source so regen does not lose hand-fixes). See Architect orchestration +check 4 and skill `mib-wire-generator-cycle`. Never write live wire. + +## Start + +A merge (or a found stale claim) that added/removed/renamed a method, +schema, protocol, or diagnostic step. + +## End + +Named generators run. `python3 scripts/generate_status.py --check` and +`python3 scripts/check_catalogue.py` are the receipts for catalogue/status. +Hand-written files either still match the tree or got a factual fix. + +## Tools (fixed code only) + +- `python3 local/generator/generate_docs.py` +- `python3 local/generator/generate_method_ref.py` +- `python3 local/generator/generate_protocols.py` +- `python3 scripts/generate_status.py` and `--check` +- `python3 scripts/check_catalogue.py` +- Leftover generator (TEMP only): `python3 local/generator/batch_generate_MIB.py --isolated --outdir ` (isolated venv; never `crude_engine/wire`) + +Generated-only (never hand-edit): `docs/API_REFERENCE.md`, +`docs/RELEASE_MATRIX.md`, `docs/status.html`. If they look wrong, fix the +generator or the YAML they read. + +Hand-written to keep honest: `CLAUDE.md`, `docs/DIAGNOSTIC_PROCESS.md`, +`docs/ARCHITECTURE.md`, `docs/program/METHOD.md`, `docs/ROADMAP.md`. +`docs/WIRING_GUIDE.md` is cited and missing — that is a signal for +architect, not a file to invent in passing. + +## Bounds + +When `tests/test_crude_matrix.py` lands (#115), document it next to +the Gate 2 / `crude_matrix` note in `SCHEMA_PRIMITIVES.md` — harness +modes prove/discover/all. Do not hand-edit generated pages for it. + + +Regen. Or a one-line factual correction in hand-written docs (e.g. the +trace vs debug mix-up in `DIAGNOSTIC_PROCESS.md` Step 2). No new process. + +## Decision trail + +On the GitHub issue (short lines, no mermaid): flow step, what you +ruled out, tool run, receipt. End with green / leftover / `NO_HOLE`. +Glance value — wrong bounce feeds the chart; right bounce is obvious. + +## Never + +- Hand-edit generated files. +- Treat a docs PASS as live-device proof. +- Describe a step no current tool supports without routing that as + `NO_HOLE` (process/tool gap) to architect. + +## NO_HOLE + +The doc describes a step the tools cannot perform, or regen would require +a generator that is dead/unguarded. Stop. Architect / HITL. diff --git a/local/agents/engine-clerk/INSTRUCTIONS.md b/local/agents/engine-clerk/INSTRUCTIONS.md new file mode 100644 index 0000000..ede80e4 --- /dev/null +++ b/local/agents/engine-clerk/INSTRUCTIONS.md @@ -0,0 +1,68 @@ +# Engine clerk + +Personality from: [`flow.md`](flow.md) + +## Hole + +`crude_engine/engine/interpreter.py`, `crude_engine/engine/crude.py`, +`crude_engine/drivers/base.py`. Last resort. Most symptoms exit this flow +to schema/wire before a line of engine changes. + +## Start + +Symptom with a live receipt (trace or inspect). Ladder steps 1–6 did not +explain it. 1.17 clerk has an anchor, or this is already `NO_HOLE`. + +## End + +The named proof green on a full getter sweep +(`audit_getters.py --compare` against last-known-good), the diff uses +existing engine meaning — a bug vs declared behaviour, not a new rule — +**and HITL sign-off.** This is the one absolute rule in the whole roster: +these three files never merge on a bot's own confidence, no exception, no +matter how small the diff or how clean the sweep. That's Adam's call, not +a judgment call Grok or any Bot gets to override. Attach the sweep receipt ++ one line naming why this is existing meaning, not new — the human reads +that, not a case-file essay. + +## Tools (fixed code only) + +- Sidecar / `python3 tests/release_matrix.py --inspect --method X --device Y --trace` + (**Goal:** `trace` = ours — engine pipeline / `device.last_trace`. + `debug` = foreign / not-ours logs — netmiko, paramiko, pysnmp, …. + Do not confuse them. Ladder Step 2 is `trace=True`.) +- Same inspect with `--no-validate` (ladder: works without gates? then it + is a declaration bug, not engine — exit to schema clerk). +- `python3 tests/audit_getters.py --compare ` +- Temporary logging on a live run, then remove it before the change ships. + The case file keeps the trace output. + +## Bounds + +Smallest change that makes existing declared behaviour true. Generic +execution of something YAML already asked for. Not `if/else` for one +feature. Not a new step, primitive, or invariant. + +## Decision trail + +On the GitHub issue (short lines, no mermaid): flow step, what you +ruled out, tool run, receipt. End with green / leftover / `NO_HOLE`. +Glance value — wrong bounce feeds the chart; right bounce is obvious. + +## Never + +- Merge without explicit HITL sign-off. Sweep-green is not sign-off. +- Merge or claim a fix without the sweep receipt. +- Design a new primitive. That is `LOGIC` / HITL. +- Skip the ladder and "just read interpreter.py." +- Fold unrelated sweep findings into this change. File them as new signals + for architect. + +## NO_HOLE + +- No anchor and none quickly establishable. +- Sweep cannot run (infra) — `BLOCKED`, not a pass and not a fail. +- The only fix is new meaning (new primitive, new pipeline rule, "YAML + cannot express this"). Stop. HITL answers how things should work. +- Cannot name a second feature the gap affects — declare it in YAML + instead (schema clerk), or if YAML cannot, `LOGIC`. diff --git a/local/agents/engine-clerk/flow.md b/local/agents/engine-clerk/flow.md new file mode 100644 index 0000000..22cbad0 --- /dev/null +++ b/local/agents/engine-clerk/flow.md @@ -0,0 +1,34 @@ +# Engine clerk — decision flow + +Same ladder as `docs/DIAGNOSTIC_PROCESS.md`, as a tree. Most symptoms exit +before step 7. Branch this chart when a real object does not fit. + +Pipeline trace is `trace=True`, not `debug=True`. + +```mermaid +flowchart TD + Start[Symptom reported] --> S1[Step 1: compare to a passing sibling] + S1 --> Q1{Shape mismatch vs sibling\nexplains it?} + Q1 -->|Yes| Exit1[["YAML contract. Schema/wire clerk."]] + Q1 -->|No| S2[Step 2: inspect with trace=True] + S2 --> S3[Step 3: inspect with --no-validate] + S3 --> Q3{Works with validate off?} + Q3 -->|Yes| Exit3[["Gate declaration wrong. Schema/wire clerk."]] + Q3 -->|No| S4[Step 4: wire audit — MIB / MOPS / CLI_REFERENCE] + S4 --> S5[Step 5: ask 1.17 clerk — does an anchor exist?] + S5 -->|No anchor| Exit5a[["NO_HOLE. Establish an anchor first.\nDo not guess."]] + S5 -->|Anchor exists| Q5{Anchor says engine gap,\nnot wire?} + Q5 -->|No — wire| Exit5b[["Wire fix. Schema/wire clerk."]] + Q5 -->|Yes| S7{Step 7: existing meaning?\n>= 2 features, YAML cannot declare it away} + S7 -->|Declare in YAML instead| Exit7[["Schema clerk. Not engine."]] + S7 -->|Would be a NEW primitive / rule| ExitL[["LOGIC. HITL.\nDo not invent meaning."]] + S7 -->|Bug vs existing meaning| Draft[Smallest engine diff that makes the declared behaviour true] + Draft --> Sweep[audit_getters.py --compare vs last-known-good] + Sweep --> Q8{Receipt?} + Q8 -->|Regression| Draft + Q8 -->|Sweep did not run — infra| Infra[["BLOCKED. Not pass, not fail."]] + Q8 -->|Green| Gate[["HITL sign-off. Always, no exception —\nsweep receipt + one-line why-existing-meaning,\nnot a case-file essay. Not a Bot's call."]] + Gate --> L[Implement. Done.] + L --> H1[Test bot: fixture capture/update] + L --> H2[Docs clerk: DIAGNOSTIC_PROCESS / ARCHITECTURE now stale?] +``` diff --git a/local/agents/local-agents-refactor.md b/local/agents/local-agents-refactor.md new file mode 100644 index 0000000..a335910 --- /dev/null +++ b/local/agents/local-agents-refactor.md @@ -0,0 +1,131 @@ +# local/agents refactor — spec for humans (and Claude) + +Chiseled 2026-09-05. Target: flowchart personality, fixed-code tools, +small AI gap between a red named proof and a green one. HITL only when +the object does not fit a hole (new logic, or a new tool so it can be +proven). + +Claude: poke this file and the standing files it names. Do not restore +session-stale counts into `INSTRUCTIONS.md`. Do not invent a dashboard, +check-in protocol, or seventh clerk. + +**Amendment, 2026-09-05, Adam, overriding the cut below:** engine never +merges without HITL sign-off is reinstated, full stop, no exception — +including for a proven bug against existing meaning. This is Adam's call, +not Grok's, not Claude's, not a thing a Bot gets to reason its way past. +Kept cheap: the sign-off is a receipt (sweep result + one line naming why +this is existing meaning, not new), not a case-file essay — that part of +the cut stands. What's reinstated is only that the gate exists and is +unconditional. See `README.md`, `engine-clerk/INSTRUCTIONS.md`, +`engine-clerk/flow.md`, `diagrams/base-flow.md` — all updated to match. + +## Intent + +``` +Flowchart = personality + sieve (human glance, Bot derived from it) +Fixed tools = almost all judgment (inspect, trace, validate, compare) +AI bounds = what YAML/code to try between red and green, inside the hole +Start = issue + exact proof command, red +End = same command, green, on the tree that contains the change +NO_HOLE = new meaning, or the named tool cannot run → HITL +``` + +Schema/wire/docs: proven bug vs existing declared behaviour ships without a +human. Engine files (`interpreter.py`, `crude.py`, `drivers/base.py`): +same proof loop, but HITL glance before merge — receipt + one line, not an +essay. Inventing a primitive, invariant, or pipeline rule is always HITL. + +Sidecar on the VPS is how Grok Bot reaches live devices (WireGuard). It is +not a second Grok. Offline CI is a pre-filter. Live-device proof is the proof. + +Do not build HTML5 / leases / sidecar-as-state-machine yet. Get this loop +boring on real issues first. + +## Standing files (Bots may read) + +| File | Role | +|---|---| +| `README.md` | Sieve, HITL cut, roster, fixture tiers, sidecar, privacy | +| `diagrams/base-flow.md` | Cross-cutting holes | +| `diagrams/conform.md` | Conform smash: method × transport × CRUDE, MOPS floor then SNMP then SSH | +| `*/INSTRUCTIONS.md` | Fixed format: hole, start, end, tools, bounds, never, NO_HOLE | +| `engine-clerk/flow.md` | Engine ladder as a tree (`trace=True`) | +| `test-bot/flow.md` | Which proof lane | + +## Historical (Bots must not read) + +| File | Role | +|---|---| +| `AGENTS-TODO.md` | Stub pointing here | +| `AUDIT-2026-09-04.md` | Bannered snapshot. Useful archaeology. Claims about + tool status, issue numbers, and the sidecar checkout may be wrong on + *this* tree. | + +## What was cut on purpose + +- ~~Hard gate "never merge engine without HITL." Wrong cut. New **meaning** + is the gate.~~ **Reinstated 2026-09-05 — see amendment above.** New + meaning is still *a* gate (on top of the hard one), not a replacement + for it. +- Session numbers as law ("40/45 compliant", "79 replay failures", + "3 live principles violations"). Those rot and Bots recite them. +- Long narrative INSTRUCTIONS (case-file novels, cron sketches, memory + porting). Personality is the mermaid; instructions are the leash. +- Dashboard, check-in/out, IR compiler, GitHub `triage:*` lifecycle. + Too much bus before the loop works. +- Treating sidecar as "Grok is a constrained agent." Grok Bot is the + worker; sidecar is the proof plane. + +## What was kept + +- Narrow clerks (a clerk that can touch anything will). +- Proof-or-stop. A code-read is not a receipt. +- Three-way branches already earned: no-anchor vs anchor-says-no; + sweep-regression vs sweep-infra. +- Fixture `verified_via` tiers and MOPS→SNMP→SSH bootstrap. +- Diagrams separate from instructions (they change on different rhythms). +- Architect privacy redaction at ingress. +- Wire still under schema clerk until a real collision. + +## Poke list (Claude) + +Verify, then either fix in-tree or file as `NO_HOLE` / missing tool — do +not quietly rewrite the sieve. + +1. **`docs/DIAGNOSTIC_PROCESS.md` Step 2** — **done** (#155): Step 2 is + `trace=True` (pipeline / `device.last_trace`). `debug` = foreign library + logs only. Do not reopen as a docs hole. +2. **Tool commands in INSTRUCTIONS** — run or read each listed command on + *this* checkout. Dead `napalm-hios-v2` paths, missing + `WIRING_GUIDE.md`, sidecar only exposing inspect: confirm and leave as + `NO_HOLE` (mesh), do not tell Bots to use broken generators. +3. **`validate_schemas.py --errors` current count** — do not write it into + instructions. If it is green, good. If not, that is schema work with + that command as the proof, not a roster edit. +4. **Dual trees** — this folder lives in a Syncthing copy. The audit's + the sidecar checkout path on a personal machine may be gone. Do not assume + GitHub or the VPS matches until a SHA/receipt says so. +5. **No new `flow.md`** for architect, schema, docs, 1.17 unless a real + issue fails to fall through an existing hole. Then branch the mermaid + first, then shorten INSTRUCTIONS to match. +6. **Do not port Claude `feedback_*` memory** into instructions as essays. + If a lesson is load-bearing, it is already a required step (full sweep + after engine; content not shape). Anything else waits for a `d`. + +## Open (Adam / HITL, not a Bot) + +- Widen sidecar verbs (`--trace`, `--no-validate`, `--compare`, replay) + so Tester is not `BLOCKED` on mesh. +- Tree identity on every live receipt (what SHA/generation the VPS ran). +- Whether schema vs wire needs its own hole — only after they collide. +- Conform smash loop is now `diagrams/conform.md` (method × transport × CRUDE, + MOPS HITL floor → SNMP → SSH, classify layer). Do not "improve" it into + three protocols voting. +- `DIAGNOSTIC_PROCESS.md` Step 2 fix (docs clerk bounds already allow it). + +## Done looks like + +A Bot given one issue can: read its flowchart, run only listed tools, +loop inside bounds until the named proof is green, implement, or stop +with `NO_HOLE`. A human can glance the mermaid and see which hole that +was. No essay. No new meaning. No dashboard required. diff --git a/local/agents/schema-clerk/INSTRUCTIONS.md b/local/agents/schema-clerk/INSTRUCTIONS.md new file mode 100644 index 0000000..bd523bb --- /dev/null +++ b/local/agents/schema-clerk/INSTRUCTIONS.md @@ -0,0 +1,73 @@ +# Schema clerk + +Personality from: [`../diagrams/base-flow.md`](../diagrams/base-flow.md), +[`../diagrams/conform.md`](../diagrams/conform.md), and diagnostic ladder +steps 1–6 in `docs/DIAGNOSTIC_PROCESS.md`. +No private `flow.md` until a real schema-vs-wire collision on a PR. + +## Hole + +`crude_engine/schemas/*.yaml` and, for now, `crude_engine/wire/**/*.yaml`. +A failure that is a contract mismatch, not new engine meaning. + +## Start + +Named method × transport × CRUDE op, named proof (sidecar inspect), red +against the MOPS/HITL floor. Architect has already said this is schema/wire. +SNMP misses are usually wire type, lookup, or index — fit SNMP to MOPS, do +not fit MOPS to SNMP. + +## End + +The same proof green. `validate_schemas.py --errors` introduces no new +structural errors. No new YAML primitive invented. + +## Tools (fixed code only) + +- `python3 local/generator/validate_schemas.py --errors` + — structural schema law. Weekend/#115: extend this (same script) + so schema attr types vs wire `syntax` must be a legal edge in + `crude_matrix.yaml` (nonsense pairings = error). Inventory starts + from matrix keys + wire syntaxes (`test_crude_matrix.py discover`). + Wire (MIB) has more rights — nonsense is usually schema-side. When + the allow-list lands, beat existing schemas into shape (shorter + standard list OK). Wire PRs: harness before/after with Test bot. +- Sidecar / `python3 tests/release_matrix.py --inspect --method X --device Y [--trace] [--protocol P] [--no-validate]` +- Sibling schema/wire YAML (read a passing method, diff declarations) +- `local/reference/MIBs/`, `local/reference/MOPS/mops_hios.xml`, + `local/reference/CLI/CLI_REFERENCE.md` (read-only ground truth) +- Hand-edit wire YAML as a stopgap, then the proof must pass. Generator + leftover is a separate `NO_HOLE` (tool work), not a reason to skip the + hand-fix. + +Do not run `heal_schemas.py`, `validate_schema_wire.py`, or unguarded +generators that still hardcode `napalm-hios-v2` paths. If you need them, +that is a missing-tool `NO_HOLE`. + +`docs/WIRING_GUIDE.md` is cited elsewhere and missing. Until it exists, +ladder + a passing sibling YAML. + +## Bounds + +Change schema/wire declarations so the existing engine executes the +contract. Smallest YAML diff that makes the named proof green. + +## Decision trail + +On the GitHub issue (short lines, no mermaid): flow step, what you +ruled out, tool run, receipt. End with green / leftover / `NO_HOLE`. +Glance value — wrong bounce feeds the chart; right bounce is obvious. + +## Never + +- Touch `engine/interpreter.py`, `engine/crude.py`, `drivers/base.py` + (that is engine clerk, and only if the ladder exits there). +- Invent a new primitive or a new `steps.yaml` key. +- Treat structural validate-clean as content-correct. Live inspect (or a + captured fixture with a real `verified_via`) is the proof. +- Throwaway Python that calls `device.get_*()`. + +## NO_HOLE + +Ladder says engine, or the fix only works by adding meaning the engine +does not have, or the named live tool cannot run. Stop. diff --git a/local/agents/test-bot/INSTRUCTIONS.md b/local/agents/test-bot/INSTRUCTIONS.md new file mode 100644 index 0000000..761b130 --- /dev/null +++ b/local/agents/test-bot/INSTRUCTIONS.md @@ -0,0 +1,82 @@ +# Test bot + +Personality from: [`flow.md`](flow.md) and +[`../diagrams/conform.md`](../diagrams/conform.md). + +## Hole + +Run proof. Never author a fix. The autonomous surface is exactly as large +as what this clerk can prove with listed tools. + +## Start + +Verification requested: a named proof command, or one cell of +method × transport × CRUDE op against the MOPS/HITL floor. Engine diffs +still require a full getter sweep. + +## End + +A receipt: command, tree/SHA if known, pass / fail / blocked, and the +actual diff or output — not "looks good." On live work, sidecar ran it. + +## Tools (fixed code only) + +- `python3 tests/release_matrix.py --inspect --method X --device Y [--trace] [--protocol P] [--no-validate]` + — the harness. Never a throwaway `device.get_*()` script. +- `python3 tests/audit_getters.py --compare ` + — required after any change to `interpreter.py`, `crude.py`, + `drivers/base.py`, or a shared primitive. One method green is not enough. +- `python3 tests/test_replay.py` — only against fixtures that exist and + have a `verified_via` you trust. Empty fixtures ≠ green. +- `python3 scripts/ci_offline.sh` — cheap pre-filter. Not live-device proof. + `check_principles.py` / `check_catalogue.py` are scored inside it; + they are not the release gate until `REQUIRE_RELEASE_PROOFS=1`. +- `python3 scripts/check_principles.py` +- `python3 scripts/generate_status.py --check` and + `python3 scripts/check_catalogue.py` for docs-only holes. +- `python3 tests/test_crude_matrix.py` — offline wire-syntax × + schema-type transform prove / discover / all (see #115). + Until the script exists: missing-tool `NO_HOLE` / `BLOCKED`, do + not improvise. On wire changes: run discover/prove **before and + after** so the receipt shows schema follow-ups or a datatype fix. +- `python3 tests/offline_gold_matrix.py [--config XML] [--gold JSON] [--methods …] [--strict]` + — CI/CD **gate** candidate for MOPS/Offline gather changes: OfflineHIOS + + saved mibconf vs gold floors (MOPS kinship). `config_absent`∩gold and + `gold_absent` are feedback, not fail; exit ≠ 0 only on `mismatch` + (see #165/#169). Sanitized fixtures in CI; bag prove is local-only. + +If sidecar only exposes inspect today, a proof that needs `--compare` or +replay and cannot be run is `BLOCKED` (mesh), not a skip. + +## Bounds + +On inspect **timeout**, follow [`flow.md`](flow.md) § Call-timeout +resolution and [`../diagrams/inspect-timeout.md`](../diagrams/inspect-timeout.md): +attribute `phase`, then for `phase=call` inventory declared wire CLI + +CLI.json before parking as "budgets." Classification is proof work; +fixes stay with Schema/Engine/HITL. + +Choose the proof lane the flowchart says. Capture/update +`tests/fixtures/` with an honest `verified_via` when the hole says so. +Validate content, not just shape (row count matching is not correctness). + +## Decision trail + +On the GitHub issue (short lines, no mermaid): flow step, what you +ruled out, tool run, receipt. End with green / leftover / `NO_HOLE`. +Glance value — wrong bounce feeds the chart; right bounce is obvious. + +## Never + +- Author or "just tweak" the fix. +- Declare verified against a guess or an `unverified` snapshot used as + an anchor. +- Treat a broken sweep (device down, timeout) as evidence for or against + the change. +- Silently drop an unrelated finding from a sweep. That is a new signal + for architect. + +## NO_HOLE + +No anchor for this method (1.17 / HITL first). Named tool not on sidecar +and not runnable here. Sweep infra failure — `BLOCKED`, not fail. diff --git a/local/agents/test-bot/flow.md b/local/agents/test-bot/flow.md new file mode 100644 index 0000000..55a63b2 --- /dev/null +++ b/local/agents/test-bot/flow.md @@ -0,0 +1,104 @@ +# Test bot — which proof lane + +Branch this chart when a real object does not fit. Do not invent lanes. + +```mermaid +flowchart TD + Start[Verification requested] --> Q1{What kind of change?} + Q1 -->|Docs-only| Skip[["generate_status.py --check\n+ check_catalogue.py"]] + Q1 -->|Schema or wire, one method| Q2{Known-good anchor?} + Q1 -->|Engine or shared primitive| Full["audit_getters.py --compare\nfull sweep"] + Q1 -->|Matrix / CRUDE type transform| Matrix["test_crude_matrix.py\nprove | discover | all"] + Q1 -->|MOPS/Offline kinship / expand floors| OfflineGold["offline_gold_matrix.py\nCI gate: Offline+gold; END mismatch fail"] + Q2 -->|No anchor| Anchor[["NO_HOLE for 1.17 / HITL.\nDo not verify against a guess."]] + Q2 -->|Fixture with verified_via| Replay["test_replay.py"] + Q2 -->|Manual WebUI/CLI, not captured| Inspect["sidecar / release_matrix.py --inspect\nthen capture fixture + verified_via"] + Replay --> Q3{Receipt?} + Inspect --> Q3 + Skip --> Q3 + Matrix --> Q3 + OfflineGold --> Q3 + Q3 -->|Fail| Back[["Back to owning clerk with the diff."]] + Q3 -->|Pass| Q4{Touches a shared primitive?} + Q4 -->|Yes or unsure| Full + Q4 -->|No| Done[["Verified. Fixture + verified_via if live."]] + Full --> Q5{Sweep receipt?} + Q5 -->|Regression| Back + Q5 -->|Sweep did not run — infra| Infra[["BLOCKED. Not pass, not fail."]] + Q5 -->|Clean| Done +``` + +## Offline vs gold (standing) — CI/CD gate + +**Purpose / END:** gate MOPS/Offline changes. Offline prove vs saved config + +gold floors = kinship that MOPS gather shape holds. Gold is the **floor** +(mismatch catcher), not a second loader. Live sidecar not required for this +lane. Prove the tool **by using it** (fuller sweeps); sweep feedback → +look-into list (issues later). If the harness breaks: issue → temp fix → +prove → PR → merge. + +- **START:** schema gather method(s) + Offline + mibconf XML. Named proofs: + - CI / sanitized: `PYTHONPATH=. python3 tests/offline_gold_matrix.py` + (DEFAULT_METHODS = floored set). Optional `--methods` catalogue-wide + for stress (missing floors → `gold_absent` feedback, not fail). + - Bag-local (optional, never CI identity): `--config` / `--gold` against + a local bag NVM + bag gold. Committed floors stay under + `tests/fixtures/offline_gold/`. +- **WHERE WE ARE:** floored coverage vs catalogue; last sanitized + bag + counts; look-into list (`gold_absent`, `config_absent` followups, + `offline_empty`, mismatches, blocked). Improve this section when + good/bad/ugly hits (what is CI vs bag-only). +- **END:** receipt — fail only on `mismatch` (exit ≠ 0). `config_absent`∩gold + = oper/live followup, not fail. `gold_absent` = missing floor (feedback). + Gate-ready for CI when floored DEFAULT_METHODS stay green on sanitized + fixtures after MOPS/Offline/FeatureEngine gather changes. + +When: after MOPS/Offline client or FeatureEngine gather changes; expanding +floors; catalogue stress sweeps; before treating Offline as kinship for live +MOPS. + + +## Call-timeout resolution (standing) — after phase attribution + +**Purpose / END:** when inspect reports `status=timeout` with +`phase=call` (or `phase=open`), **classify why** and route — do not stop +at "still timeout under budgets." Chart: +[`../diagrams/inspect-timeout.md`](../diagrams/inspect-timeout.md). + +**START (every timeout leftover):** + +1. Quote per-protocol `status`, `phase`, `open_ms`, `call_ms`, budgets from + `tests/inspect.yaml`. `trace:true` on the named read. +2. **Split on phase** (finder from `#179`): + - `phase=open` → open path (login/prompt/budget). Park as `#92` class + until fail-fast HITL. Do not Schema-fake an overlay. + - `phase=call` → continue this ladder (call path). +3. **Declared CLI inventory** (required on call-timeout — hang often has + **no** `cli` in the receipt): from `crude_engine/wire/ssh/` for this + method, list every **read** `command:`. Count distinct shows vs + `{index}` / per-row fanouts. +4. **CLI.json cross-check** (`local/reference/CLI/cli_ref_hios_merged.json` + + `CLI_REFERENCE.md`): does each base `show …` exist? Any invented + spelling? Literal placeholder tokens? +5. **Bucket** (one glance line on the issue — see diagram table): + `open-budget` | `call-budget-fanout` | `call-invalid-cmd` | + `call-unknown-hang` | `timeout-cleared-parse`. +6. **Route** (Architect multiplexes; Test bot does not fix): + - fanout / wrong CLI spelling → Schema (overlay honesty). + - invalid hang / fail-fast redefine → `#92` HITL (user eyes). + - unknown hang after inventory → trail + optional Engine `NO_HOLE` + for harness `last_command` heartbeat on timeout. + - timeout cleared, parse/shape wrong → close timeout intention; one + SSH remainder ticket (standing SSH-split law). + +**WHERE WE ARE:** learn by repeating this poke on each call-timeout +leftover; wrong bounce feeds the chart; right bounce is obvious on the +decision trail. + +**END:** decision-trail comment with bucket + declared command list + +CLI.json hit/miss + route. Green only when live receipt clears *this* +leftover's intention — not when budgets alone move. + +**Never:** author the fix; treat pre-`#179` "overall deadline" null timings +as the same as phase-attributed call; skip CLI.json because mops/snmp +were ok (finder, not a vote). diff --git a/docs/TODO-old.md b/local/archive/docs-legacy/TODO-old.md similarity index 100% rename from docs/TODO-old.md rename to local/archive/docs-legacy/TODO-old.md diff --git a/docs/TODO.md b/local/archive/docs-legacy/TODO.md similarity index 100% rename from docs/TODO.md rename to local/archive/docs-legacy/TODO.md diff --git a/docs/TODO_HITLIST.md b/local/archive/docs-legacy/TODO_HITLIST.md similarity index 100% rename from docs/TODO_HITLIST.md rename to local/archive/docs-legacy/TODO_HITLIST.md diff --git a/local/generator/README.md b/local/generator/README.md index 889d80a..036a8be 100644 --- a/local/generator/README.md +++ b/local/generator/README.md @@ -42,38 +42,48 @@ python3 local/generator/validate_schemas.py --json # machine-readable | `docs/DIAGNOSTIC_PROCESS.md` | **Authored** — mandatory fault-finding ladder | | `docs/SCHEMA_PRIMITIVES.md` | **Authored** — YAML key reference | | `docs/ROADMAP.md` | **Authored** — milestones | -| `docs/TODO.md` | **Authored** — work items | +| GitHub issues | Leftover work (prove-then-file or comment-close). Not `docs/TODO.md`. | -## Wire Generators +## Optional read-only audits (retargeted at `crude_engine/`) -Tools that produce wire YAMLs from MIB/MOPS device truth. +These are leftover v26 walks whose `BASE_DIR` was retargeted at this +repo's `crude_engine/{wire,schemas}`. They do not mutate YAML. They are +**not** live doc generators — do not treat their output as catalogue law. -| Generator | Output | What it reads | -|-----------|--------|---------------| -| `batch_generate_MIB.py` | `local/reference/webUI/*.yaml` | MIB XML (`local/reference/MOPS/mops_hios.xml`) + optional WebUI captures | +| Audit | Output | What it reads | +|-------|--------|---------------| +| `validate_v26_all.py` | stdout | Schema→wire broken links + duplicate OIDs | +| `audit_wire.py` | `docs/WIRE_INTEGRITY.md` (only if you run it) | Wire protocol coverage + duplicate names | -### Wire Generation Pipeline +Live schema law remains `validate_schemas.py` (CI). -```bash -# Step 1: Generate wire YAMLs from MIB -python3 local/generator/batch_generate_MIB.py +## Leftover v26/monolith scripts (not live law) -# Step 2: Map schemas to generated wires -python3 local/generator/heal_schemas.py +Machine-absolute monolith paths are **removed**. +Leftover scripts are either repo-relative + `--run-archive` stubs, or +(for MIB emit) isolated temp outdir only. Original absolute-path bodies +live under `local/archive/generator-monolith-abs/` for archaeology. +Do not heal/enrich/batch-generate against live YAML. +`batch_generate_MIB.py` may be invoked **isolated** into a TEMP outdir +for emit-diff only — never `crude_engine/wire`: -# Step 3: Audit integrity -python3 local/generator/validate_v26_all.py +```bash +python3 local/generator/batch_generate_MIB.py --isolated --outdir /tmp/crude-mib-emit ``` -See the [WIRE_SPEC.md](../../docs/WIRE_SPEC.md) for format details. - -## Other Tools - -| Tool | Purpose | -|------|---------| -| `heal_schemas.py` | Remap schema `source:` fields to MIB-named wire files | -| `cross_validate_v26.py` | Validate generated YAMLs against schema contract | -| `validate_v26_all.py` | Full broken-link + duplicate OID audit | -| `audit_claims.py` | Audit v2.6 coverage claims against wire reality | -| `audit_wire.py` | Wire-level integrity checks | -| `overrides.yaml` | Manual corrections for generator output (create_method, type) | +| File | Why leftover | +|------|----------------| +| `batch_generate_MIB.py` | One-shot MIB→wire generator; not live law. Isolated `--outdir` only | +| `batch_generate_webui.py.stable` | Same class (sibling one-shot) | +| `heal_schemas.py` | Mutates schema `source:` against old webUI wires | +| `enrich_schema_v26.py` | Mutates `docs/napalm-hios-2-6-schema.md` | +| `cross_validate_v26.py` | v26 master-schema markdown vs webUI | +| `validate_schema_wire.py` | Post-heal check against `local/reference/webUI` | +| `audit_v26_coverage.py` | Needs v1 `hios.py` + shim `adapters/napalm.yaml` | +| `audit_v26_integrity.py` | Same + old webUI wires | +| `audit_web_coverage.py` | Needs machine-local LocalUI captures | +| `audit_claims.py` | Needs monolith `hios.py` adapter + v2.6 claim numbers | + +`overrides.yaml` is data for the leftover MIB generator, not live law. + +See [WIRE_SPEC.md](../../docs/WIRE_SPEC.md) for live wire format. diff --git a/local/generator/audit_claims.py b/local/generator/audit_claims.py index 638c64f..da5ba97 100644 --- a/local/generator/audit_claims.py +++ b/local/generator/audit_claims.py @@ -1,166 +1,54 @@ -import os -import yaml -import re -from collections import defaultdict +"""Leftover v26/monolith script. Not live law. + +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. +""" +from __future__ import annotations + +import argparse +import sys +from pathlib import Path + +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" + + +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) -# Paths -BASE_DIR = '/home/adamr/obsidian-vault/Projects/napalm-hios-v2' -SCHEMAS_DIR = os.path.join(BASE_DIR, 'napalm_hios/schemas') -WIRE_DIR = os.path.join(BASE_DIR, 'napalm_hios/wire') -DRIVERS_DIR = os.path.join(BASE_DIR, 'napalm_hios/drivers') -ENGINE_PY = os.path.join(BASE_DIR, 'napalm_hios/engine/interpreter.py') -TRANSFORMS_PY = os.path.join(BASE_DIR, 'napalm_hios/engine/transforms.py') -HIOS_PY = os.path.join(BASE_DIR, 'napalm_hios/hios.py') -ARCH_MD = os.path.join(BASE_DIR, 'docs/ARCHITECTURE.md') -RFC_MD = os.path.join(BASE_DIR, 'docs/RFC_MAPPING.md') -API_REF_MD = os.path.join(BASE_DIR, 'docs/API_REFERENCE.md') -OUTPUT_FILE = os.path.join(BASE_DIR, 'docs/CLAIMS_AUDIT.md') - -def load_yaml(path): - try: - with open(path, 'r') as f: - return yaml.safe_load(f) or {} - except: return {} - -def get_arch_claims(): - """Extract claims from ARCHITECTURE.md""" - claims = {'primitives': []} - if not os.path.exists(ARCH_MD): return claims - with open(ARCH_MD, 'r') as f: - content = f.read() - - m = re.search(r"(\d+) schema YAMLs", content) - if m: claims['schema_count'] = int(m.group(1)) - - m = re.search(r"(\d+) methods", content) - if m: claims['method_total'] = int(m.group(1)) - - m = re.search(r"(\d+)C (\d+)R (\d+)U (\d+)D (\d+)E", content) - if m: - claims['breakdown'] = {'create': int(m.group(1)), 'read': int(m.group(2)), 'upsert': int(m.group(3)), 'delete': int(m.group(4)), 'execute': int(m.group(5))} - - m = re.search(r"([\d,]+) attrs", content) - if m: claims['attr_count'] = int(m.group(1).replace(',', '')) - - # Execute methods matrix from doc - methods = [] - table_started = False - for line in content.split('\n'): - if "| Method | MOPS | SNMP | SSH |" in line: - table_started = True; continue - if table_started and line.startswith('|'): - if '---' in line: continue - parts = line.split('|') - if len(parts) > 1: methods.append(parts[1].strip('` ')) - elif table_started: break - claims['execute_methods'] = set([m for m in methods if m]) - - # Qualitative (Primitives) - prim_section = False - for line in content.split('\n'): - if "**Schema primitives**" in line: prim_section = True; continue - if prim_section and line.startswith('- `'): - claims['primitives'].append(line.split('`')[1].replace(':', '')) - elif prim_section and line.startswith('###'): prim_section = False - - return claims - -def method_exists_in_file(file_path, method_name): - if not os.path.exists(file_path): return False - with open(file_path, 'r') as f: - content = f.read() - return f"def {method_name}(" in content - -def audit(): - print("Performing 3-Link Integrity Audit (YAML -> Driver -> Adapter)...") - claims = get_arch_claims() - - results = { - 'schemas': set(), - 'wire_files': 0, - 'attrs_total': 0, - 'methods': defaultdict(set), - 'engine': {}, - 'leaks': [], - 'documented': set(), - 'execute': {} - } - - # 1. Implementation Reality - for sf in os.listdir(SCHEMAS_DIR): - if sf.endswith('.yaml'): - name = sf.replace('.yaml', '') - results['schemas'].add(name) - data = load_yaml(os.path.join(SCHEMAS_DIR, sf)) - for m_name, m_def in data.get('methods', {}).items(): - m_type = m_def.get('type', 'read') - if m_type in ('dict', 'list', 'table'): m_type = 'read' - results['methods'][m_type].add(m_name) - - for wf in os.listdir(WIRE_DIR): - if wf.endswith('.yaml'): - results['wire_files'] += 1 - data = load_yaml(os.path.join(WIRE_DIR, wf)) - results['attrs_total'] += len(data.get('attributes', {})) - - # 2. Engine Capability - with open(ENGINE_PY, 'r') as f: engine_code = f.read() - for p in claims['primitives']: - results['engine'][p] = p in engine_code - - # 3. Execute Integrity Check - with open(HIOS_PY, 'r') as f: hios_code = f.read() - - for proto in ['SSH', 'SNMP', 'MOPS']: - proto_yaml = load_yaml(os.path.join(DRIVERS_DIR, f"{proto}.yaml")) - methods = proto_yaml.get('execute_methods', []) - - py_file = os.path.join(DRIVERS_DIR, f"{proto.lower()}.py") - if proto == 'MOPS': py_file = os.path.join(DRIVERS_DIR, "mops_transport.py") - if proto == 'SNMP': py_file = os.path.join(DRIVERS_DIR, "snmp_transport.py") - - results['execute'][proto] = {} - for m in methods: - in_driver = method_exists_in_file(py_file, m) - in_adapter = f"def {m}(" in hios_code - results['execute'][proto][m] = {'driver': in_driver, 'adapter': in_adapter} - - # 4. REPORT - doc = "# Architecture Integrity Audit (v2.6)\n\n" - doc += "> Verifying the **3-Link Chain**: YAML Declaration → Driver Implementation → Adapter Exposure.\n\n" - - doc += "## 1. Execute Matrix Integrity\n" - doc += "Verifies if methods claimed in protocol YAMLs are backed by code.\n\n" - - for proto in ['SSH', 'SNMP', 'MOPS']: - doc += f"### {proto} Operations\n" - doc += "| Method | In YAML | In Driver Code | In hios.py | Status |\n" - doc += "| :--- | :---: | :---: | :---: | :--- |\n" - - for m, status in results['execute'][proto].items(): - s_drv = "✅" if status['driver'] else "❌ Missing" - s_adp = "✅" if status['adapter'] else "⚠️ Internal Only" - final = "🟢 Ready" if status['driver'] and status['adapter'] else "🔴 Broken" - if status['driver'] and not status['adapter']: final = "🟡 Hidden" - - doc += f"| `{m}` | ✅ | {s_drv} | {s_adp} | {final} |\n" - doc += "\n" - - doc += "## 2. Metric Variances\n" - doc += "| Metric | Design (Spec) | Reality (Code) | Status |\n" - doc += "| :--- | :--- | :--- | :--- |\n" - doc += f"| Schema YAMLs | {claims.get('schema_count', '?')} | {len(results['schemas'])} | {'✅' if claims.get('schema_count') == len(results['schemas']) else '⚠️ Update Spec'} |\n" - doc += f"| Wire YAMLs | 134 | {results['wire_files']} | {'✅' if results['wire_files'] >= 134 else '❌ Low'} |\n" - doc += f"| Total Attributes | {claims.get('attr_count', '?')} | {results['attrs_total']} | {'✅' if results['attrs_total'] >= 4058 else '❌ Low'} |\n" - - doc += "\n## 3. Claimed Primitives Verification\n" - doc += "| Primitive | Engine Support | Status |\n" - doc += "| :--- | :---: | :---: |\n" - for p in sorted(claims['primitives']): - doc += f"| `{p}` | {'✅' if results['engine'].get(p) else '❌'} | {'✅' if results['engine'].get(p) else '❌'} |\n" - - with open(OUTPUT_FILE, 'w') as f: f.write(doc) - print(f"Integrity Audit complete: {OUTPUT_FILE}") if __name__ == "__main__": - audit() + main() diff --git a/local/generator/audit_v26_coverage.py b/local/generator/audit_v26_coverage.py index 05fee88..da5ba97 100644 --- a/local/generator/audit_v26_coverage.py +++ b/local/generator/audit_v26_coverage.py @@ -1,96 +1,54 @@ -import os -import yaml -import re +"""Leftover v26/monolith script. Not live law. -# Paths -V1_HIOS_PY = "/home/adamr/obsidian-vault/Projects/napalm-hios/napalm_hios/hios.py" -ADAPTER_YAML = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/napalm_hios/adapters/napalm.yaml" -SCHEMA_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/napalm_hios/schemas" +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. +""" +from __future__ import annotations -def get_v1_methods(): - methods = set() - if not os.path.exists(V1_HIOS_PY): return methods - with open(V1_HIOS_PY, "r") as f: - for line in f: - match = re.search(r"def (get_|set_|create_|delete_|add_|remove_)([a-z0-9_]+)\(", line) - if match: - methods.add(match.group(1) + match.group(2)) - return methods +import argparse +import sys +from pathlib import Path -def audit_coverage(): - print("Starting v2.6 Deep Coverage Audit...") - v1_methods = get_v1_methods() - - with open(ADAPTER_YAML, "r") as f: - adapter = yaml.safe_load(f) - - adapter_methods = adapter.get("methods", {}) - - # 1. Check for v1 methods missing from Adapter - missing_in_adapter = v1_methods - set(adapter_methods.keys()) - - # 2. Check for Adapter methods pointing to broken Schemas - broken_links = [] - missing_schema_methods = [] - missing_crud_attrs = [] - - schema_cache = {} - - for a_method, mapping in adapter_methods.items(): - s_id = mapping.get("feature") - s_method = mapping.get("schema") - - s_path = os.path.join(SCHEMA_DIR, f"{s_id}.yaml") - if not os.path.exists(s_path): - broken_links.append(f"{a_method} -> {s_id}.yaml (Missing File)") - continue - - if s_id not in schema_cache: - with open(s_path, "r") as f: - schema_cache[s_id] = yaml.safe_load(f) - - schema_data = schema_cache[s_id] - methods_in_schema = schema_data.get("methods", {}) - - if s_method not in methods_in_schema: - missing_schema_methods.append(f"{a_method} -> {s_id}.yaml::{s_method} (Missing Method)") - continue - - # 3. CRUD Validation - m_type = methods_in_schema[s_method].get("type") - if m_type in ("create", "delete"): - # Check if any attribute in this schema has 'access: crud' - has_crud = False - for attr, attr_def in schema_data.get("attributes", {}).items(): - if attr_def.get("access") == "crud": - has_crud = True - break - if not has_crud: - missing_crud_attrs.append(f"{a_method} ({m_type}) in {s_id}.yaml (No CRUD attribute found)") +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" - print(f"\n--- AUDIT REPORT ---") - print(f"Total v1 Methods: {len(v1_methods)}") - print(f"Total Adapter Methods: {len(adapter_methods)}") - print(f"Missing in Adapter: {len(missing_in_adapter)}") - print(f"Broken Schema Files: {len(broken_links)}") - print(f"Missing Schema Methods: {len(missing_schema_methods)}") - print(f"Missing CRUD Attributes: {len(missing_crud_attrs)}") - - if missing_in_adapter: - print("\n[!] v1 Methods not in Adapter:") - for m in sorted(missing_in_adapter): print(f" - {m}") - - if broken_links: - print("\n[!] Broken Schema Links:") - for m in broken_links: print(f" - {m}") - if missing_schema_methods: - print("\n[!] Missing Schema Methods (Defined in Adapter but not in YAML):") - for m in missing_schema_methods: print(f" - {m}") +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) - if missing_crud_attrs: - print("\n[!] CRUD Mismatch (Methods need a 'crud' access attribute):") - for m in missing_crud_attrs: print(f" - {m}") if __name__ == "__main__": - audit_coverage() + main() diff --git a/local/generator/audit_v26_integrity.py b/local/generator/audit_v26_integrity.py index 46f54cc..da5ba97 100644 --- a/local/generator/audit_v26_integrity.py +++ b/local/generator/audit_v26_integrity.py @@ -1,93 +1,54 @@ -import os -import yaml -import re +"""Leftover v26/monolith script. Not live law. -# Paths -V1_HIOS_PY = "/home/adamr/obsidian-vault/Projects/napalm-hios/napalm_hios/hios.py" -ADAPTER_YAML = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/napalm_hios/adapters/napalm.yaml" -SCHEMA_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/napalm_hios/schemas" -WIRE_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/local/reference/webUI" +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. +""" +from __future__ import annotations -def get_v1_methods(): - methods = set() - if not os.path.exists(V1_HIOS_PY): return methods - with open(V1_HIOS_PY, "r") as f: - for line in f: - match = re.search(r"def (get_|set_|create_|delete_|add_|remove_)([a-z0-9_]+)\(", line) - if match: - methods.add(match.group(1) + match.group(2)) - return methods +import argparse +import sys +from pathlib import Path -def audit_coverage(): - print("Starting v2.6 Deep Coverage & Integrity Audit...") - v1_methods = get_v1_methods() - - with open(ADAPTER_YAML, "r") as f: - adapter = yaml.safe_load(f) - - adapter_methods = adapter.get("methods", {}) - missing_in_adapter = v1_methods - set(adapter_methods.keys()) - - broken_wire_files = [] - missing_wire_attrs = [] - missing_schema_methods = [] - - schema_cache = {} - wire_cache = {} - - for a_method, mapping in adapter_methods.items(): - s_id = mapping.get("feature") - s_method = mapping.get("schema") - - s_path = os.path.join(SCHEMA_DIR, f"{s_id}.yaml") - if not os.path.exists(s_path): - continue # Already caught by adapter-level checks if needed - - if s_id not in schema_cache: - with open(s_path, "r") as f: - schema_cache[s_id] = yaml.safe_load(f) - - schema_data = schema_cache[s_id] - methods_in_schema = schema_data.get("methods", {}) - - if s_method not in methods_in_schema: - missing_schema_methods.append(f"{a_method} -> {s_id}.yaml::{s_method}") - continue +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" - # Audit Attribute Resolution (Schema -> Wire) - # We check ALL attributes in the schema file associated with this feature - for h_attr, a_map in schema_data.get("attributes", {}).items(): - w_id = a_map.get("source") - w_attr = a_map.get("wire") - - w_path = os.path.join(WIRE_DIR, f"{w_id}.yaml") - if not os.path.exists(w_path): - link = f"{s_id}.yaml -> {w_id}.yaml (Missing Wire File)" - if link not in broken_wire_files: broken_wire_files.append(link) - continue - - if w_id not in wire_cache: - with open(w_path, "r") as f: - wire_cache[w_id] = yaml.safe_load(f) - - wire_data = wire_cache[w_id] - if w_attr not in wire_data.get("attributes", {}): - missing_wire_attrs.append(f"{s_id}.yaml::{h_attr} -> {w_id}.yaml::{w_attr} (Missing Attribute)") - print(f"\n--- INTEGRITY REPORT ---") - print(f"Missing in Adapter: {len(missing_in_adapter)}") - print(f"Missing Schema Methods: {len(missing_schema_methods)}") - print(f"Broken Wire File Links: {len(broken_wire_files)}") - print(f"Missing Wire Attributes: {len(missing_wire_attrs)}") - - if broken_wire_files: - print("\n[!] Broken Wire File Links:") - for m in broken_wire_files: print(f" - {m}") +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) - if missing_wire_attrs: - print("\n[!] Missing Wire Attributes (Defined in Schema but missing in Wire YAML):") - # Deduplicate and sort - for m in sorted(list(set(missing_wire_attrs))): print(f" - {m}") if __name__ == "__main__": - audit_coverage() + main() diff --git a/local/generator/audit_web_coverage.py b/local/generator/audit_web_coverage.py index cfe10c8..da5ba97 100644 --- a/local/generator/audit_web_coverage.py +++ b/local/generator/audit_web_coverage.py @@ -1,147 +1,54 @@ -import os -import yaml -import xml.etree.ElementTree as ET -from collections import defaultdict +"""Leftover v26/monolith script. Not live law. + +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. +""" +from __future__ import annotations + +import argparse +import sys +from pathlib import Path + +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" + + +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) -# Paths -BASE_DIR = '/home/adamr/obsidian-vault/Projects/napalm-hios-v2' -LOCAL_UI_DIR = '/home/adamr/obsidian-vault/Projects/LocalUI' -SCHEMAS_DIR = os.path.join(BASE_DIR, 'napalm_hios/schemas') -WIRE_DIR = os.path.join(BASE_DIR, 'napalm_hios/wire') -CAPTURED_DIR = os.path.join(LOCAL_UI_DIR, 'captured') -OUTPUT_FILE = os.path.join(BASE_DIR, 'local/reference/WEB_VS_DRIVER.md') - -def load_yaml(path): - try: - with open(path, 'r') as f: - return yaml.safe_load(f) or {} - except: return {} - -def normalize_mib(mib): - return mib.replace('_', '-').lower() - -def get_exposed_map(): - """Build map: (mib, table, field) -> [schema_feature.attr]""" - exposed = {} - wire_db = {} - for wf in os.listdir(WIRE_DIR): - if wf.endswith('.yaml'): - wire_db[wf.replace('.yaml', '')] = load_yaml(os.path.join(WIRE_DIR, wf)) - - schema_files = [f for f in os.listdir(SCHEMAS_DIR) if f.endswith('.yaml')] - for sf in schema_files: - feature = sf.replace('.yaml', '') - data = load_yaml(os.path.join(SCHEMAS_DIR, sf)) - for attr_name, attr_def in data.get('attributes', {}).items(): - source = attr_def.get('source', feature) - wire = attr_def.get('wire', attr_name) - - w_data = wire_db.get(source, {}) - w_attr = w_data.get('attributes', {}).get(wire, {}) - mops = w_attr.get('sources', {}).get('mops', {}).get('read', {}) - - if mops and 'mib' in mops and 'table' in mops and 'field' in mops: - key = (normalize_mib(mops['mib']), mops['table'].lower(), mops['field'].lower()) - if key not in exposed: exposed[key] = [] - exposed[key].append(f"{feature}.{attr_name}") - return exposed - -def parse_mops_xml(file_path): - """Extract all (mib, table, field) tuples from a MOPS XML.""" - found = set() - try: - tree = ET.parse(file_path) - root = tree.getroot() - ns = {'m': 'urn:x-mops:1.0'} - for mib in root.findall('.//m:MIB', ns): - mib_name = mib.get('name') - for node in mib.findall('./m:Node', ns): - table_name = node.get('name') - for attr in node.findall('.//m:Attribute', ns): - field_name = attr.get('name') - if mib_name and table_name and field_name: - found.add((normalize_mib(mib_name), table_name.lower(), field_name.lower())) - except: pass - return found - -def audit(): - print("Building exposure map from Schemas...") - exposed_map = get_exposed_map() - - print("Scanning WebUI captures with file-tracing...") - page_stats = {} - - for page_folder in sorted(os.listdir(CAPTURED_DIR)): - page_path = os.path.join(CAPTURED_DIR, page_folder) - if not os.path.isdir(page_path): continue - - all_attrs_on_page = set() - attr_to_files = defaultdict(set) - - for xml_file in os.listdir(page_path): - if xml_file.endswith('.xml'): - attrs = parse_mops_xml(os.path.join(page_path, xml_file)) - for a in attrs: - all_attrs_on_page.add(a) - attr_to_files[a].add(xml_file) - - if not all_attrs_on_page: continue - - covered_attrs = [a for a in all_attrs_on_page if a in exposed_map] - missing_attrs = [a for a in all_attrs_on_page if a not in exposed_map] - - page_stats[page_folder] = { - 'total': len(all_attrs_on_page), - 'covered': len(covered_attrs), - 'percent': (len(covered_attrs) / len(all_attrs_on_page)) * 100, - 'attr_to_files': attr_to_files, - 'missing': missing_attrs - } - - doc = "# WebUI vs Driver Deep Trace Audit\n\n" - doc += "This audit traces every attribute found in **WebUI XML Captures** back to the driver **Schemas**.\n" - doc += "Includes file-tracing to show exactly which XML file contains the unexposed data.\n\n" - - doc += "## Summary Scorecard\n" - doc += "| | WebUI Page | Coverage | Exposed / Total |\n" - doc += "| :--- | :--- | :--- | :--- |\n" - - for page, stats in sorted(page_stats.items(), key=lambda x: (x[1]['percent'], x[0]), reverse=True): - status = "✅" if stats['percent'] == 100 else ("⚠️" if stats['percent'] > 0 else "❌") - doc += f"| {status} | `{page}` | {stats['percent']:.0f}% | {stats['covered']}/{stats['total']} |\n" - - doc += "\n\n---\n\n## Unexposed Data Breakdown (with Source Files)\n" - doc += "Ranked by attribute count. Shows exactly which captured XMLs to inspect for new schema attributes.\n\n" - - unexposed = [p for p in page_stats.items() if p[1]['percent'] < 100] - unexposed.sort(key=lambda x: x[1]['total'] - x[1]['covered'], reverse=True) - - for page, stats in unexposed[:30]: - missing = stats['missing'] - if not missing: continue - - doc += f"### {page} ({len(missing)} missing / {stats['total']} total)\n" - - # Group by MIB for readability - mibs = defaultdict(list) - for attr in missing: - mib, table, field = attr - files = ", ".join(sorted(list(stats['attr_to_files'][attr]))) - mibs[mib].append(f"`{table}.{field}` (in {files})") - - for mib, entries in list(mibs.items())[:8]: - doc += f"- **{mib.upper()}**\n" - for entry in entries[:10]: - doc += f" - {entry}\n" - if len(entries) > 10: - doc += f" - ... and {len(entries)-10} more fields\n" - doc += "\n" - - os.makedirs(os.path.dirname(OUTPUT_FILE), exist_ok=True) - with open(OUTPUT_FILE, 'w') as f: - f.write(doc) - - print(f"Deep Trace Audit with file tracing complete: {OUTPUT_FILE}") if __name__ == "__main__": - audit() + main() diff --git a/local/generator/audit_wire.py b/local/generator/audit_wire.py index 2c91dbe..07cdc0e 100644 --- a/local/generator/audit_wire.py +++ b/local/generator/audit_wire.py @@ -1,11 +1,18 @@ +"""Read-only wire integrity audit (protocol coverage, duplicate names). + +Retargeted from leftover napalm-hios-v2 / napalm_hios/wire to this +repo's crude_engine/wire. Does not mutate YAML. Not a live doc generator +(those are generate_docs.py / generate_method_ref.py / generate_protocols.py). +""" import os import yaml from collections import defaultdict -# Paths -BASE_DIR = '/home/adamr/obsidian-vault/Projects/napalm-hios-v2' -WIRE_DIR = os.path.join(BASE_DIR, 'napalm_hios/wire') -OUTPUT_FILE = os.path.join(BASE_DIR, 'docs/WIRE_INTEGRITY.md') +# Paths — this repo's crude_engine/ (not napalm-hios-v2) +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +PACKAGE_DIR = os.path.join(BASE_DIR, '../../crude_engine') +WIRE_DIR = os.path.join(PACKAGE_DIR, 'wire') +OUTPUT_FILE = os.path.join(BASE_DIR, '../../docs/WIRE_INTEGRITY.md') def load_yaml(path): try: diff --git a/local/generator/batch_generate_MIB.py b/local/generator/batch_generate_MIB.py index fbf6a53..4e679c9 100644 --- a/local/generator/batch_generate_MIB.py +++ b/local/generator/batch_generate_MIB.py @@ -1,17 +1,38 @@ -# Version: 2.6.1 - Deep MIB Resolution (restored & perfected) +# Leftover v26/monolith one-shot. Not live law. +# Kept (not deleted) as archive. Do not write crude_engine/wire. +# Isolated temp emit only: python batch_generate_MIB.py --isolated --outdir /tmp/... +# Live generators: generate_docs.py, generate_method_ref.py, generate_protocols.py. +# Live schema check: validate_schemas.py. See local/generator/README.md. +# +# Version: 2.6.8 - named-TC teach (#162): Timeout→string (defaults via get_default_for_type). +# Prior 2.6.7: LacpKey→string. Prior 2.6.6: VlanId→string. Prior 2.6.5: AreaID→string. +# Prior 2.6.4: RouterID→string. Prior 2.6.3: InetAddressType/Version/PrefixLength→string; +# TC-BITS→string drop bit_map; INTEGER{enabled,disabled}→boolean. +# Explicitly NOT Metric/DesignatedRouterPriority/BigMetric. Exact s=="Timeout" only. +# Keep "Timeout" in integer-any list as defensive substring catch so +# Hm2AgentSwitchAddressAgingTimeoutEntry stays integer (product Entry/Table — do not teach). +# No blanket integer→string. No LacpKey/VlanId/AreaID/RouterID re-teach. import os +import argparse import xml.etree.ElementTree as ET import json import re import yaml -# Updated Paths to use /local/reference/ -BASE_DIR = '/home/adamr/obsidian-vault/Projects/napalm-hios-v2' -captured_dir = os.path.join(BASE_DIR, 'local/reference/captured') -xml_schema_path = os.path.join(BASE_DIR, 'local/reference/MOPS/mops_hios.xml') -master_schema_path = os.path.join(BASE_DIR, 'docs/napalm-hios-2-6-schema.md') -output_dir = os.path.join(BASE_DIR, 'local/reference/webUI') -overrides_path = os.path.join(BASE_DIR, 'local/generator/overrides.yaml') +# Repo-relative only (no machine-absolute paths). Isolated --outdir required to write. +_REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) +BASE_DIR = _REPO_ROOT +captured_dir = os.path.join(_REPO_ROOT, 'local/reference/captured') +xml_schema_path = os.path.join(_REPO_ROOT, 'local/reference/MOPS/mops_hios.xml') +master_schema_path = os.path.join(_REPO_ROOT, 'docs/napalm-hios-2-6-schema.md') +# Default output stays off live wire; --isolated --outdir overrides. +output_dir = os.path.join(_REPO_ROOT, 'local/reference/webUI') +overrides_path = os.path.join(_REPO_ROOT, 'local/generator/overrides.yaml') + +def _refuse_live_wire(path): + ap = os.path.abspath(path).replace("\\", "/") + if "crude_engine/wire" in ap: + raise SystemExit("leftover batch_generate_MIB refuses to write live crude_engine/wire") def load_overrides(): if not os.path.exists(overrides_path): return {} @@ -57,11 +78,45 @@ def parse_constraints(raw, syntax, mib_range=None): elif "TruthValue" in s or "HmEnabledStatus" in s: v = {"allowed": [True, False]} return v -def syntax_to_type(syntax): +def syntax_to_type(syntax, enumerations=None, tc_info=None): s = str(syntax).strip() + # Keep TruthValue / HmEnabledStatus / EnabledStatus → boolean (#103 / archive). + # Do NOT map TruthValue→integer (falsified teach created 418 new diffs). if any(x in s for x in ("TruthValue", "HmEnabledStatus", "EnabledStatus")): return "boolean" - if s == "INTEGER" or any(x in s for x in ("Counter", "Gauge", "Integer", "Unsigned", "RowStatus", "Index", "Percent", "TimeTicks", "Number", "StorageType", "TimeStamp", "TimeInterval", "TimeFilter", "InetAddressPrefixLength", "InetAddressType", "InetPortNumber", "InetVersion", "Timeout", "Metric", "VlanId", "RouterID", "AreaID", "LacpKey", "DesignatedRouterPriority")): return "integer" + # INTEGER{enabled(1),disabled(2)} — same semantics as HmEnabledStatus, inline enum + if enumerations: + pairs = {(e.get("name"), str(e.get("value"))) for e in enumerations} + if pairs == {("enabled", "1"), ("disabled", "2")}: + return "boolean" + # Named Inet TCs only → string (proved vs live). Do not blanket every "Inet*" + # (InetZoneIndex overshot). InetPortNumber stays integer below. + if any(x in s for x in ("InetAddressType", "InetVersion", "InetAddressPrefixLength")): + return "string" + # Named RouterID TC → string (already on main #197). Do not re-teach here. + if "RouterID" in s: + return "string" + # Named AreaID TC → string (already on main #199). Do not re-teach here. + if "AreaID" in s: + return "string" + # Named VlanId TC → string (already on main #201). Do not re-teach here. + if "VlanId" in s: + return "string" + # Named LacpKey TC → string (already on main #203). Do not re-teach here. + if "LacpKey" in s: + return "string" + # Named Timeout TC → string (proved vs live #162). Exact match only. + # Keep "Timeout" in integer-any below so Hm2AgentSwitchAddressAgingTimeoutEntry + # (product Entry/Table) still matches integer via substring — do not teach it. + # Explicitly NOT Metric / DesignatedRouterPriority / BigMetric. + if s == "Timeout": + return "string" + if s == "INTEGER" or any(x in s for x in ("Counter", "Gauge", "Integer", "Unsigned", "RowStatus", "Index", "Percent", "TimeTicks", "Number", "StorageType", "TimeStamp", "TimeInterval", "TimeFilter", "InetPortNumber", "Timeout", "Metric", "DesignatedRouterPriority", "SFlowReceiver")): return "integer" + # Literal BITS / PortList stay list + bit_map (live already keeps those). if any(x in s for x in ("BITS", "PortList")): return "list" + # TC-BITS (textual-convention whose base syntax is BITS) → string; caller drops + # inline bit_map for these. Leave literal BITS path above as list. + if tc_info and tc_info.get("syntax") == "BITS": + return "string" # Hm2* BITS types have bit_map in their MIB definition — handled by bit_map detection # Don't blanket-classify all Hm2* as list — many are integer enums return "string" @@ -134,9 +189,47 @@ def build_lookup_tables(root): if idx_detail: index_meta[entry_name] = idx_detail - return obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta + # AUGMENTS entries have no INDEX child — inherit from the augmented Entry + # (ifXEntry augments ifEntry, dot1qPortVlanEntry augments dot1dBasePortEntry, …) + for obj in root.findall('.//ObjectType'): + aug = obj.get('augments') + if not aug: + continue + entry_name = obj.get('name', '') + if not entry_name: + continue + seen = set() + cur = aug + while cur and cur not in seen: + seen.add(cur) + if cur in index_fields: + index_fields[entry_name] = list(index_fields[cur]) + if cur in index_meta: + index_meta[entry_name] = list(index_meta[cur]) + break + cur_obj = obj_by_name.get(cur) + cur = cur_obj.get('augments') if cur_obj is not None else None + + tc_by_name = {} + for tc in root.findall('.//TextualConvention'): + name = tc.get('name') + syn = tc.find('Syntax') + if not name or syn is None: + continue + info = {"syntax": syn.get("name", ""), "bit_map": {}} + for enum in syn.findall('Enumeration'): + try: + info["bit_map"][int(enum.get("value"))] = enum.get("name") + except (TypeError, ValueError): + pass + if not info["bit_map"]: + info.pop("bit_map") + tc_by_name[name] = info -def resolve_meta(target_name, master_db, obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta, root): + return obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta, tc_by_name + +def resolve_meta(target_name, master_db, obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta, root, tc_by_name=None): + tc_by_name = tc_by_name or {} found_meta = {"mib": "Unknown", "table": "Unknown", "oid": "N/A", "syntax": "Unknown", "access": "r", "constraints": "", "is_table": False, "index_field": ""} target_obj = obj_by_name.get(target_name) @@ -232,6 +325,9 @@ def resolve_meta(target_name, master_db, obj_by_name, node_by_name, table_for_en found_meta["index_type"] = "inet_address" elif any_implied or any(s in ('SnmpAdminString', 'OCTET STRING', 'SnmpEngineID') for s in syntaxes): found_meta["index_type"] = "implied_string" + elif len(idx_detail) > 1: + # multi-field INDEX with mixed types (ip_source_guard 4-part, …) + found_meta["index_type"] = "composite" lookup_keys = [] if found_meta["mib"] != "Unknown": @@ -251,6 +347,13 @@ def resolve_meta(target_name, master_db, obj_by_name, node_by_name, table_for_en if found_meta["mib"] == "Unknown": found_meta["mib"] = key.split("::")[0] break + if target_obj is not None: + syntax_node = target_obj.find('Syntax') + if syntax_node is not None: + enums = list(syntax_node.findall('Enumeration')) + if enums: + found_meta["enumerations"] = enums + if found_meta["syntax"] == "BITS" and target_obj is not None: bit_map = {} syntax_node = target_obj.find('Syntax') @@ -258,15 +361,23 @@ def resolve_meta(target_name, master_db, obj_by_name, node_by_name, table_for_en for enum in syntax_node.findall('Enumeration'): bit_map[int(enum.get('value'))] = enum.get('name') if bit_map: found_meta["bit_map"] = bit_map + else: + tc = tc_by_name.get(found_meta["syntax"]) + if tc and tc.get("syntax") == "BITS" and tc.get("bit_map"): + found_meta["bit_map"] = tc["bit_map"] + found_meta["tc"] = tc + elif tc: + found_meta["tc"] = tc return found_meta def process_captured_pages(): + _refuse_live_wire(output_dir) if not os.path.exists(output_dir): os.makedirs(output_dir) tree = ET.parse(xml_schema_path); root = tree.getroot() master_db = load_master_meta() overrides = load_overrides() - obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta = build_lookup_tables(root) + obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta, tc_by_name = build_lookup_tables(root) mib_features = {} for name, obj in obj_by_name.items(): @@ -282,10 +393,10 @@ def process_captured_pages(): feature_data = {"version": "2.6.0", "feature": mib_id, "schemas": {f"read_{mib_id}": {"type": "dict", "defaults": {}}}, "attributes": {}} for attr_name in sorted(attrs_found.keys()): - meta = resolve_meta(attr_name, master_db, obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta, root) + meta = resolve_meta(attr_name, master_db, obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, index_meta, root, tc_by_name) if meta: access = meta['access'].strip(); syntax = meta['syntax'].strip() - stype = syntax_to_type(syntax) + stype = syntax_to_type(syntax, enumerations=meta.get("enumerations"), tc_info=meta.get("tc")) validation = parse_constraints(meta['constraints'], syntax, meta.get('mib_range')) clean_name = attr_name.lower() feature_data["schemas"][f"read_{mib_id}"]["defaults"][clean_name] = get_default_for_type(stype) @@ -299,9 +410,20 @@ def process_captured_pages(): mops_read["key_tag"] = "to_hex_decode" attr_entry = {"syntax": syntax, "type": stype, "access": access, "sources": {"snmp": {"read": snmp_read}, "mops": {"read": mops_read}}} if validation: attr_entry["validation"] = validation + # bit_map: keep for literal BITS / PortList (list). Drop for TC-BITS + # where live wants string without inline map (#162 named teach). if "bit_map" in meta: - attr_entry["bit_map"] = meta["bit_map"] - attr_entry["type"] = "list" # BITS fields → list output + tc = meta.get("tc") or {} + # TC-BITS: syntax_to_type already returned string; skip inline map. + if ( + stype == "string" + and tc.get("syntax") == "BITS" + and str(meta.get("syntax", "")).strip() != "BITS" + ): + pass + else: + attr_entry["bit_map"] = meta["bit_map"] + attr_entry["type"] = "list" # literal BITS / PortList → list if "create_method" in meta: attr_entry["create_method"] = meta["create_method"] if "index_type" in meta: attr_entry["index_type"] = meta["index_type"] # Apply overrides from overrides.yaml @@ -309,6 +431,13 @@ def process_captured_pages(): if cm_override: attr_entry["create_method"] = cm_override type_override = overrides.get("type", {}).get(clean_name) if type_override: attr_entry["type"] = type_override + src_ov = (overrides.get("sources") or {}).get(clean_name) or {} + if src_ov.get("oid"): + attr_entry["sources"]["snmp"]["read"]["oid"] = src_ov["oid"] + if src_ov.get("table"): + attr_entry["sources"]["mops"]["read"]["table"] = src_ov["table"] + if src_ov.get("field"): + attr_entry["sources"]["mops"]["read"]["field"] = src_ov["field"] feature_data["attributes"][clean_name] = attr_entry with open(os.path.join(output_dir, f"{mib_id}.yaml"), 'w') as f: yaml.dump(feature_data, f, sort_keys=False, default_flow_style=False) @@ -342,5 +471,28 @@ def process_captured_pages(): print(f"Generated {count} + 1 context-sources v2.6 Wire YAMLs using MIB-based naming.") -if __name__ == "__main__": +def _cli(argv=None): + global xml_schema_path, overrides_path, master_schema_path, output_dir + parser = argparse.ArgumentParser( + description="Leftover MIB→wire generator. Not live law. Temp outdir only." + ) + parser.add_argument("--isolated", action="store_true", + help="Required. Leftover is dead as live law; isolated temp emit only.") + parser.add_argument("--outdir", required=True, + help="TEMP directory for YAML emit. Never crude_engine/wire.") + parser.add_argument("--xml", default=xml_schema_path, + help="mops_hios.xml path (in-tree local/reference/MOPS/)") + parser.add_argument("--overrides", default=overrides_path) + parser.add_argument("--master", default=master_schema_path) + args = parser.parse_args(argv) + if not args.isolated: + raise SystemExit("leftover batch_generate_MIB is not live law; pass --isolated --outdir /tmp/...") + xml_schema_path = args.xml + overrides_path = args.overrides + master_schema_path = args.master + output_dir = args.outdir + _refuse_live_wire(output_dir) process_captured_pages() + +if __name__ == "__main__": + _cli() diff --git a/local/generator/batch_generate_webui.py.stable b/local/generator/batch_generate_webui.py.stable index cf56044..ca14bc0 100644 --- a/local/generator/batch_generate_webui.py.stable +++ b/local/generator/batch_generate_webui.py.stable @@ -1,252 +1,8 @@ -import os -import xml.etree.ElementTree as ET -import json -import re -import yaml - -captured_dir = '/home/adamr/obsidian-vault/Projects/LocalUI/captured' -xml_schema_path = '/home/adamr/obsidian-vault/Projects/MOPS_Emulator/data/mops_schema.xml' -master_schema_path = '/home/adamr/obsidian-vault/Projects/napalm-hios-v2/docs/napalm-hios-2-6-schema.md' -output_dir = '/home/adamr/obsidian-vault/Projects/napalm-hios-v2/local/reference/webUI' - -def load_master_meta(): - meta_db = {} - if not os.path.exists(master_schema_path): return {} - with open(master_schema_path, "r") as f: - lines = f.readlines() - for line in lines: - if "|" in line and "::" in line: - parts = [p.strip() for p in line.split("|") if p.strip()] - if len(parts) >= 5: - full_field = parts[1].lower() - meta = { - "syntax": parts[3], - "access": parts[4], - "constraints": parts[5] if len(parts) > 5 else "", - "oid": parts[2] - } - meta_db[full_field] = meta - return meta_db - -def parse_constraints(raw, syntax): - v = {} - if raw: - rm = re.search(r"Range: (\d+)\.\.(\d+)", raw) - if rm: v["min"] = int(rm.group(1)); v["max"] = int(rm.group(2)) - em = re.search(r"Enums: \[(.*)\]", raw) - if em: - pairs = em.group(1).split(", "); v["allowed"] = [p.split(":")[1] for p in pairs if ":" in p] - if not v: - s = str(syntax) - if "Unsigned32" in s: v = {"min": 0, "max": 4294967295} - elif "Integer32" in s or "INTEGER" in s: v = {"min": -2147483648, "max": 2147483647} - elif "VlanIndex" in s: v = {"min": 1, "max": 4094} - elif "TruthValue" in s or "HmEnabledStatus" in s: v = {"allowed": [True, False]} - return v - -def syntax_to_type(syntax): - s = str(syntax).strip() - if any(x in s for x in ("TruthValue", "HmEnabledStatus", "EnabledStatus")): return "boolean" - if any(x in s for x in ("Counter", "Gauge", "Integer", "Unsigned", "RowStatus", "Index", "Percent", "TimeTicks", "Number")): return "integer" - if any(x in s for x in ("BITS", "PortList")) or s.startswith("Hm2"): return "list" - return "string" - -def get_default_for_type(stype): - if stype == "integer": return 0 - if stype == "boolean": return False - if stype == "list": return [] - return "" - -def build_lookup_tables(root): - obj_by_name = {} - for obj in root.findall('.//ObjectType'): - name = obj.get('name') - if name: obj_by_name[name] = obj - - node_by_name = {} - for node in root.findall('.//*'): - if node.tag in ('ObjectIdentifier', 'ObjectType', 'ModuleIdentity'): - name = node.get('name') - if name: - node_by_name[name] = { - 'oid': node.get('OID', ''), - 'parent': node.get('Parent', ''), - 'tag': node.tag, - 'node': node, - } - - table_for_entry = {} - for obj in root.findall('.//ObjectType'): - syntax = obj.find('Syntax') - if syntax is not None: - entry_name = syntax.get('name', '') - if entry_name: - table_for_entry[entry_name] = { - 'oid': obj.get('OID', ''), - 'parent': obj.get('Parent', ''), - 'name': obj.get('name', ''), - } - - obj_to_mib = {} - for mib in root.findall('MIB'): - for definition in mib.findall('Definition'): - def_name = definition.get('name', '') - for child in definition: - child_name = child.get('name', '') - if child_name: obj_to_mib[child_name] = def_name - - index_fields = {} - for obj in root.findall('.//ObjectType'): - idx_node = obj.find('Index') - if idx_node is not None: - entry_name = obj.get('name', '') - idx_names = [i.get('name', '') for i in idx_node.findall('Value')] - if idx_names: index_fields[entry_name] = idx_names - - return obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields - -def resolve_meta(target_name, master_db, obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, root): - found_meta = {"mib": "Unknown", "table": "Unknown", "oid": "N/A", "syntax": "Unknown", "access": "r", "constraints": "", "is_table": False, "index_field": ""} - - target_obj = obj_by_name.get(target_name) - if target_obj is not None: - found_meta["mib"] = obj_to_mib.get(target_name, "Unknown") - parent_name = target_obj.get('Parent', '') - found_meta["table"] = parent_name - - if parent_name and parent_name.endswith('Entry'): - found_meta["is_table"] = True - idx_cols = index_fields.get(parent_name, []) - if idx_cols: found_meta["index_field"] = idx_cols[0] - elif parent_name and parent_name in node_by_name: - pnode = node_by_name[parent_name] - if pnode.get('tag') == 'ObjectType' and pnode['node'].find('Index') is not None: - found_meta["is_table"] = True - idx_cols = index_fields.get(parent_name, []) - if idx_cols: found_meta["index_field"] = idx_cols[0] - - oid_parts = [] - curr_oid = target_obj.get('OID', '') - p = parent_name - - if curr_oid.startswith("1.3.6.1"): - full_oid = curr_oid - else: - oid_parts.append(curr_oid) - seen = {target_name} - while p and p not in seen: - seen.add(p) - info = node_by_name.get(p) - if not info: - info = table_for_entry.get(p) - - if info: - p_oid = info['oid'] - if p_oid.startswith("1.3.6.1"): - oid_parts.insert(0, p_oid) - p = None - else: - oid_parts.insert(0, p_oid) - p = info['parent'] - else: break - - full_oid = ".".join(part for part in oid_parts if part) - - # SMART PREFIXING: - if full_oid.startswith("1.3.6.1"): - pass - elif full_oid.startswith("3.6.1.4.1.248.11"): - full_oid = "1." + full_oid - elif full_oid.startswith("3.6.1.2.1"): - full_oid = "1." + full_oid - else: - if found_meta["mib"].startswith("HM2"): full_oid = "1.3.6.1.4.1.248.11." + full_oid - else: full_oid = "1.3.6.1.2.1." + full_oid - - found_meta["oid"] = full_oid - syntax_node = target_obj.find('Syntax') - found_meta["syntax"] = syntax_node.get('name') if syntax_node is not None else "Unknown" - mib_access = target_obj.get('access', 'read-only').lower().replace(' ', '-') - if "read-create" in mib_access or "read-write" in mib_access: found_meta["access"] = "ru" - if found_meta["syntax"] == "RowStatus": found_meta["access"] = "crud" - - lookup_keys = [] - if found_meta["mib"] != "Unknown": - lookup_keys.append(f"{found_meta['mib']}::{target_name}".lower()) - for k in master_db: - if k.split("::")[-1] == target_name.lower(): - lookup_keys.append(k) - break - - for key in lookup_keys: - if key in master_db: - meta = master_db[key] - found_meta["syntax"] = meta["syntax"] - found_meta["access"] = meta["access"] - found_meta["constraints"] = meta["constraints"] - if found_meta["oid"] == "N/A": found_meta["oid"] = meta["oid"] - if found_meta["mib"] == "Unknown": found_meta["mib"] = key.split("::")[0] - break - - if found_meta["syntax"] == "BITS" and target_obj is not None: - bit_map = {} - syntax_node = target_obj.find('Syntax') - if syntax_node is not None: - for enum in syntax_node.findall('Enumeration'): - bit_map[int(enum.get('value'))] = enum.get('name') - if bit_map: found_meta["bit_map"] = bit_map - - return found_meta - -def process_captured_pages(): - if not os.path.exists(output_dir): os.makedirs(output_dir) - tree = ET.parse(xml_schema_path); root = tree.getroot() - master_db = load_master_meta() - obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields = build_lookup_tables(root) - - mib_features = {} - for name, obj in obj_by_name.items(): - mib = obj_to_mib.get(name, "Unknown") - feature = mib.replace("HM2-", "").replace("-MIB", "").lower() - if feature not in mib_features: mib_features[feature] = [] - mib_features[feature].append(name) - - count = 0 - all_features = set(os.listdir(captured_dir)) | set(mib_features.keys()) - for page_name in sorted(all_features): - page_path = os.path.join(captured_dir, page_name) - attrs_found = {} - if os.path.isdir(page_path): - for msg in os.listdir(page_path): - if not msg.endswith('.xml'): continue - try: - m_tree = ET.parse(os.path.join(page_path, msg)); m_root = m_tree.getroot() - for attr in m_root.findall('.//{urn:x-mops:1.0}Attribute'): - if attr.get('name'): attrs_found[attr.get('name')] = True - except: continue - if page_name in mib_features: - for attr in mib_features[page_name]: attrs_found[attr] = True - if not attrs_found: continue - - feature_data = {"version": "2.6.0", "feature": page_name, "schemas": {f"read_{page_name}": {"type": "dict", "defaults": {}}}, "attributes": {}} - for attr_name in sorted(attrs_found.keys()): - meta = resolve_meta(attr_name, master_db, obj_by_name, node_by_name, table_for_entry, obj_to_mib, index_fields, root) - if meta: - access = meta['access'].strip(); syntax = meta['syntax'].strip() - stype = syntax_to_type(syntax); validation = parse_constraints(meta['constraints'], syntax) - clean_name = attr_name.lower() - feature_data["schemas"][f"read_{page_name}"]["defaults"][clean_name] = get_default_for_type(stype) - snmp_read = {"oid": meta['oid']}; snmp_read["method"] = "walk" if meta["is_table"] else "get" - mops_read = {"mib": meta['mib'], "table": meta['table'], "field": attr_name} - if meta["is_table"] and meta["index_field"]: mops_read["index_field"] = meta["index_field"] - attr_entry = {"syntax": syntax, "type": stype, "access": access, "sources": {"snmp": {"read": snmp_read}, "mops": {"read": mops_read}}} - if validation: attr_entry["validation"] = validation - if "bit_map" in meta: attr_entry["bit_map"] = meta["bit_map"] - feature_data["attributes"][clean_name] = attr_entry - with open(os.path.join(output_dir, f"{page_name}.yaml"), 'w') as f: - yaml.dump(feature_data, f, sort_keys=False, default_flow_style=False) - count += 1 - print(f"Generated {count} v2.6 Wire YAMLs with SMART PREFIXING.") - -if __name__ == "__main__": - process_captured_pages() +# Leftover v26/monolith one-shot. Not live law. +# Machine-absolute paths removed. Original archived under +# local/archive/generator-monolith-abs/. Do not run against live wire. +# Use isolated batch_generate_MIB.py for emit-diff only. +raise SystemExit( + "batch_generate_webui.py.stable is archive-only; " + "see local/generator/README.md and local/archive/generator-monolith-abs/" +) diff --git a/local/generator/cross_validate_v26.py b/local/generator/cross_validate_v26.py index 68313d7..da5ba97 100644 --- a/local/generator/cross_validate_v26.py +++ b/local/generator/cross_validate_v26.py @@ -1,145 +1,54 @@ -import os -import yaml -import re +"""Leftover v26/monolith script. Not live law. -SCHEMA_PATH = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/docs/napalm-hios-2-6-schema.md" -WEBUI_FEATURES = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/local/reference/webUI" +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. +""" +from __future__ import annotations -def load_schema_db(): - """Parse the markdown schema into a searchable database.""" - db = {} - if not os.path.exists(SCHEMA_PATH): return {} - with open(SCHEMA_PATH, "r") as f: - content = f.read() - - # Extract feature sections - sections = content.split("## Feature: ") - for section in sections[1:]: - lines = section.split("\n") - feature_line = lines[0].strip() - feature_name = feature_line.split("(")[0].strip().lower() - if feature_name not in db: db[feature_name] = {} - - for line in lines[1:]: - if "|" in line and "::" in line: - parts = [p.strip() for p in line.split("|") if p.strip()] - if len(parts) >= 5: - attr_name = parts[0].lower() - mib_field = parts[1] - oid = parts[2] - syntax = parts[3] - access = parts[4] - - db[feature_name][attr_name] = { - "oid": oid, - "syntax": syntax, - "access": access - } - return db +import argparse +import sys +from pathlib import Path -def validate_v26_yaml(path, schema_db, report): - with open(path, "r") as f: - try: - data = yaml.safe_load(f) - except Exception as e: - report["errors"].append(f"YAML Parse Error in {os.path.basename(path)}: {str(e)}") - return - - if not data: return - feature_name = data.get("feature", "").lower() - - # 1. Feature check - if feature_name not in schema_db: - report["missing_features"].append(feature_name) - return - - # 2. Schema terminology check - schemas = data.get("schemas", {}) - for s_name in schemas: - if s_name.startswith("get_"): - report["terminology_violations"].append(f"{feature_name}: Schema '{s_name}' uses legacy 'get_' prefix") - - attrs = data.get("attributes", {}) - for attr_name, definition in attrs.items(): - if not isinstance(definition, dict): continue - - clean_attr = attr_name.lower() - if clean_attr not in schema_db[feature_name]: - # This is expected for some auto-gen features that haven't been manually curated - # report["missing_attributes"].append(f"{feature_name}.{attr_name}") - continue - - schema_meta = schema_db[feature_name][clean_attr] - - # 3. Syntax consistency - if definition.get("syntax") != schema_meta["syntax"]: - report["syntax_mismatches"].append({ - "target": f"{feature_name}.{attr_name}", - "yaml": definition.get("syntax"), - "schema": schema_meta["syntax"] - }) - - # 4. Access consistency - yaml_access = definition.get("access", "r").lower() - schema_access = schema_meta["access"].lower() - if yaml_access != schema_access: - report["access_mismatches"].append({ - "target": f"{feature_name}.{attr_name}", - "yaml": yaml_access, - "schema": schema_access - }) - - # 5. Terminology & Minimalism check in sources - sources = definition.get("sources", {}) - for proto, src_def in sources.items(): - if not isinstance(src_def, dict): continue - - # Terminology: 'get' is forbidden - if "get" in src_def: - report["terminology_violations"].append(f"{feature_name}.{attr_name}.{proto}: Source uses legacy 'get' key") - - # Minimalism: if ru/crud, 'write' should usually be omitted in Wire YAML - if yaml_access in ("ru", "crud") and "write" in src_def: - report["minimalism_warnings"].append(f"{feature_name}.{attr_name}.{proto}: 'write' block exists despite 'access: {yaml_access}'") +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" -def run_validation(): - print(f"Starting v2.6 Compliance Validation...") - schema_db = load_schema_db() - print(f"Loaded {len(schema_db)} features from master schema.") - - report = { - "errors": [], - "missing_features": [], - "missing_attributes": [], - "syntax_mismatches": [], - "access_mismatches": [], - "terminology_violations": [], - "minimalism_warnings": [] - } - - count = 0 - for fname in os.listdir(WEBUI_FEATURES): - if not fname.endswith(".yaml"): continue - validate_v26_yaml(os.path.join(WEBUI_FEATURES, fname), schema_db, report) - count += 1 - - print(f"Validated {count} Wire YAMLs.") - print("\n--- v2.6 COMPLIANCE REPORT ---") - print(f"Errors (Parse/IO): {len(report['errors'])}") - print(f"Features Missing in Schema: {len(report['missing_features'])}") - print(f"Terminology Violations: {len(report['terminology_violations'])}") - print(f"Minimalism Warnings: {len(report['minimalism_warnings'])}") - print(f"Syntax Mismatches: {len(report['syntax_mismatches'])}") - print(f"Access Mismatches: {len(report['access_mismatches'])}") - - if report["terminology_violations"]: - print("\nSample Terminology Violations:") - for v in report["terminology_violations"][:5]: print(f" {v}") - if report["syntax_mismatches"]: - print("\nSample Syntax Mismatches (showing first 5):") - for m in report["syntax_mismatches"][:5]: - print(f" {m['target']}: YAML='{m['yaml']}' vs Schema='{m['schema']}'") +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) + if __name__ == "__main__": - run_validation() + main() diff --git a/local/generator/enrich_schema_v26.py b/local/generator/enrich_schema_v26.py index 680d334..da5ba97 100644 --- a/local/generator/enrich_schema_v26.py +++ b/local/generator/enrich_schema_v26.py @@ -1,87 +1,54 @@ -import os -import xml.etree.ElementTree as ET -import re +"""Leftover v26/monolith script. Not live law. -SCHEMA_PATH = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/docs/napalm-hios-2-6-schema.md" -XML_PATH = "/home/adamr/obsidian-vault/Projects/MOPS_Emulator/data/mops_schema.xml" +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. +""" +from __future__ import annotations -def get_mib_data(root): - mib_db = {} - for obj in root.findall(".//ObjectType"): - name = obj.get("name") - if not name: continue - desc_node = obj.find("Description") - desc = desc_node.get("text").replace("\r", " ").replace("\n", " ").strip() if desc_node is not None else "" - desc = re.sub(r'\s+', ' ', desc) - # Extract Constraints (Range or Enums) - constraints = "" - syntax_node = obj.find("Syntax") - syntax_name = "Unknown" - if syntax_node is not None: - syntax_name = syntax_node.get("name", "Unknown") - enums = syntax_node.findall("Enumeration") - if enums: - constraints = "Enums: [" + ", ".join([f"{e.get('value')}:{e.get('name')}" for e in enums]) + "]" - else: - range_node = syntax_node.find("Range") - if range_node is not None: - lv = range_node.get('lowerValue') or range_node.get('value') or "0" - uv = range_node.get('upperValue') - if uv: constraints = f"Range: {lv}..{uv}" - else: constraints = f"Value: {lv}" +import argparse +import sys +from pathlib import Path - # Fallback: Extract range from description text (e.g. Unsigned32(0..600)) - if not constraints and desc: - rm = re.search(r"\((\d+)\.\.(\d+)\)", desc) - if rm: - constraints = f"Range: {rm.group(1)}..{rm.group(2)}" +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" - - # Determine high-fidelity access - mib_access = obj.get("access", "read-only").lower().replace(" ", "-") - crud_access = "r" - - # RowStatus ALWAYS gets CRUD (Forceful override for automation) - if syntax_name == "RowStatus": - crud_access = "crud" - elif "read-create" in mib_access or "read-write" in mib_access: - crud_access = "ru" - elif "write-only" in mib_access: - crud_access = "u" - mib_db[name] = {"desc": desc, "const": constraints, "access": crud_access, "syntax": syntax_name} - return mib_db +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) -def enrich_schema(): - print("Performing Deep Enrichment of 2.6 Schema...") - tree = ET.parse(XML_PATH); root = tree.getroot(); mib_db = get_mib_data(root) - with open(SCHEMA_PATH, "r") as f: lines = f.readlines() - - new_lines = [] - enriched_count = 0 - for line in lines: - if "|" in line and "::" in line: - parts = [p.strip() for p in line.split("|")] - if len(parts) >= 9: - mib_field_raw = parts[2] - if "::" in mib_field_raw: - field_name = mib_field_raw.split("::")[-1] - if field_name in mib_db: - meta = mib_db[field_name] - # OVERWRITE with high-fidelity truth - if meta["const"]: parts[6] = f" {meta['const']} " - if meta["desc"]: parts[9] = f" {meta['desc'][:150]}... " - parts[5] = f" {meta['access']} " - # Update syntax string if it's currently low-fidelity (e.g. 'INTEGER') - if len(parts[4]) < len(meta["syntax"]) or "INTEGER" in parts[4]: - parts[4] = f" {meta['syntax']} " - - line = "|" + "|".join(parts[1:-1]) + "|\n" - enriched_count += 1 - new_lines.append(line) - - with open(SCHEMA_PATH, "w") as f: f.writelines(new_lines) - print(f"Enriched {enriched_count} attributes with High-Fidelity truth.") if __name__ == "__main__": - enrich_schema() + main() diff --git a/local/generator/heal_schemas.py b/local/generator/heal_schemas.py index a6ead83..da5ba97 100644 --- a/local/generator/heal_schemas.py +++ b/local/generator/heal_schemas.py @@ -1,72 +1,54 @@ -import os -import yaml +"""Leftover v26/monolith script. Not live law. -# Paths -WIRE_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/local/reference/webUI" -SCHEMA_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/napalm_hios/schemas" +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. +""" +from __future__ import annotations -def heal_schemas(): - print("Building Wire Attribute Index...") - wire_index = {} # attribute_name -> wire_file_base_name - - for fname in sorted(os.listdir(WIRE_DIR)): - if not fname.endswith(".yaml"): continue - w_id = fname.replace(".yaml", "").lower() - with open(os.path.join(WIRE_DIR, fname), "r") as f: - try: - data = yaml.safe_load(f) - if not data or "attributes" not in data: continue - for attr in data["attributes"].keys(): - attr_low = attr.lower() - # Preference: MIB > everything else - if "-mib" in w_id: - wire_index[attr_low] = w_id - elif attr_low not in wire_index: - wire_index[attr_low] = w_id - except: continue - - print(f"Indexed {len(wire_index)} unique wire attributes.") - - healed_count = 0 - - for fname in sorted(os.listdir(SCHEMA_DIR)): - if not fname.endswith(".yaml"): continue - s_path = os.path.join(SCHEMA_DIR, fname) - with open(s_path, "r") as f: - try: - s_data = yaml.safe_load(f) - except: continue - - if not s_data or "attributes" not in s_data: continue - - # Read raw text for surgical source: replacement - with open(s_path, "r") as f: - raw = f.read() +import argparse +import sys +from pathlib import Path - new_raw = raw - changed = False - for h_attr, a_map in s_data["attributes"].items(): - old_wire = a_map.get("wire", "").lower() - old_source = str(a_map.get("source", "")).lower().replace(".yaml", "") +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" - new_source = wire_index.get(old_wire) - if new_source and new_source != old_source: - print(f" Fixing {fname}: {h_attr} ({old_wire}) -> {new_source}") - # Replace only the source: line for this attribute - new_raw = new_raw.replace( - f"source: {a_map.get('source', '')}", - f"source: {new_source}", - 1 # only first occurrence per iteration - ) - changed = True +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) - if changed: - with open(s_path, "w") as f: - f.write(new_raw) - healed_count += 1 - - print(f"Healed {healed_count} schema files.") if __name__ == "__main__": - heal_schemas() + main() diff --git a/local/generator/overrides.yaml b/local/generator/overrides.yaml index 850181d..7b8637e 100644 --- a/local/generator/overrides.yaml +++ b/local/generator/overrides.yaml @@ -1,6 +1,7 @@ # Generator overrides — human-declared exceptions the MIB can't tell us. # These take priority over MIB-derived defaults. # Key: lowercase wire attribute name → override fields +# Leftover MIB generator data, not live law. # create_method: device-proven via live SNMP testing (2026-03-23) # Default is createAndWait. Only list createAndGo exceptions here. @@ -17,3 +18,13 @@ create_method: # The MIB has TC definitions with base syntax, but syntax_to_type only sees the TC name type: hm2useraccessrole: integer + +# sources: leftover NTP names whose device answers SNTP (schema ntp.server_enabled +# still points at hm2ntpserveradminstate). MIB has both prefixes; #13 is the live +# lab cell. OID is the SNTP object (not live wire's 1.4.1.3 which collides with +# hm2PtpProfile). +sources: + hm2ntpserveradminstate: + table: hm2SntpServerGroup + field: hm2SntpServerAdminState + oid: 1.3.6.1.4.1.248.11.50.1.2.1.1 diff --git a/local/generator/validate_schema_wire.py b/local/generator/validate_schema_wire.py index d3f9575..da5ba97 100644 --- a/local/generator/validate_schema_wire.py +++ b/local/generator/validate_schema_wire.py @@ -1,56 +1,54 @@ -""" -Step 3: Validate schema→wire resolution. -Run AFTER heal_schemas.py. +"""Leftover v26/monolith script. Not live law. -Usage: python3 local/generator/validate_schema_wire.py +Paths are repo-relative (no machine-absolute hardcodes). Do not treat +this as a live generator. Live: generate_docs.py, generate_method_ref.py, +generate_protocols.py, validate_schemas.py. See local/generator/README.md. """ -import yaml, os - -WIRE_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/local/reference/webUI" -SCHEMA_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2/napalm_hios/schemas" - -# Build wire attr index -wire_index = {} -for f in sorted(os.listdir(WIRE_DIR)): - if not f.endswith('.yaml'): continue - with open(os.path.join(WIRE_DIR, f)) as fh: - data = yaml.safe_load(fh) - for attr in data.get('attributes', {}): - wire_index[attr] = f[:-5] - -# Check each schema -total = found = 0 -missing = [] -for f in sorted(os.listdir(SCHEMA_DIR)): - if not f.endswith('.yaml'): continue - with open(os.path.join(SCHEMA_DIR, f)) as fh: - s = yaml.safe_load(fh) - for attr, ref in s.get('attributes', {}).items(): - if not isinstance(ref, dict) or 'wire' not in ref: continue - total += 1 - src = ref.get('source', '') - wp = os.path.join(WIRE_DIR, f"{src}.yaml") - if os.path.exists(wp): - with open(wp) as wf: - wd = yaml.safe_load(wf) - if ref['wire'] in wd.get('attributes', {}): - found += 1 - continue - actual = wire_index.get(ref['wire'], 'NOT_IN_ANY_WIRE') - missing.append((f, attr, ref['wire'], src, actual)) - -pct = found * 100 // total if total else 0 -print(f"Schema→Wire: {found}/{total} ({pct}%)") -if missing: - fixable = [m for m in missing if m[4] != 'NOT_IN_ANY_WIRE'] - gone = [m for m in missing if m[4] == 'NOT_IN_ANY_WIRE'] - if fixable: - print(f"\nFIXABLE ({len(fixable)}) — wrong source, attr exists elsewhere:") - for s, a, w, src, actual in fixable: - print(f" {s}:{a} source={src} → should be {actual}") - if gone: - print(f"\nMISSING ({len(gone)}) — attr not in any wire file:") - for s, a, w, src, actual in gone: - print(f" {s}:{a} wire={w} source={src}") -else: - print("ALL RESOLVED") +from __future__ import annotations + +import argparse +import sys +from pathlib import Path + +_REPO_ROOT = Path(__file__).resolve().parents[2] +_WIRE = _REPO_ROOT / "crude_engine" / "wire" +_SCHEMAS = _REPO_ROOT / "crude_engine" / "schemas" + + +def _parse_paths(argv: list[str] | None = None): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument( + "--wire-dir", + type=Path, + default=_WIRE, + help="Wire YAML dir (default: repo crude_engine/wire)", + ) + p.add_argument( + "--schema-dir", + type=Path, + default=_SCHEMAS, + help="Schema YAML dir (default: repo crude_engine/schemas)", + ) + p.add_argument( + "--run-archive", + action="store_true", + help="Required to actually execute this leftover script", + ) + return p.parse_args(argv) + + +def main(argv: list[str] | None = None) -> None: + args = _parse_paths(argv) + if not args.run_archive: + raise SystemExit( + "leftover archive script; pass --run-archive to execute " + "(still not live law). Defaults are repo-relative." + ) + raise SystemExit( + "archive body not ported to relative paths as a safe mutator; " + "use validate_schemas.py / isolated batch_generate_MIB.py instead" + ) + + +if __name__ == "__main__": + main() diff --git a/local/generator/validate_schemas.py b/local/generator/validate_schemas.py index 90f1797..08e756b 100644 --- a/local/generator/validate_schemas.py +++ b/local/generator/validate_schemas.py @@ -27,6 +27,7 @@ VALID_METHOD_KEYS = { 'type', 'defaults', 'primary_key', 'key_map', 'index_fields', + 'index_type', 'sub_tables', 'row_status', 'index_key', 'required', 'fields', 'index_filter', 'linked_tables', 'attributes', 'schema', } diff --git a/local/generator/validate_v26_all.py b/local/generator/validate_v26_all.py index 4035f36..dd78627 100644 --- a/local/generator/validate_v26_all.py +++ b/local/generator/validate_v26_all.py @@ -1,12 +1,20 @@ +"""Read-only schema→wire integrity audit. + +Retargeted from leftover napalm-hios-v2 / napalm_hios paths to this +repo's crude_engine/{wire,schemas}. Does not mutate YAML. +Live schema law is validate_schemas.py (CI). This is an extra +broken-link / duplicate-OID walk, not a live doc generator. +""" import os import yaml import json from collections import defaultdict -# Default Paths -BASE_DIR = "/home/adamr/obsidian-vault/Projects/napalm-hios-v2" -WIRE_DIR = os.path.join(BASE_DIR, "napalm_hios/wire") -SCHEMA_DIR = os.path.join(BASE_DIR, "napalm_hios/schemas") +# Default paths — this repo's crude_engine/ (not napalm-hios-v2) +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +PACKAGE_DIR = os.path.join(BASE_DIR, "../../crude_engine") +WIRE_DIR = os.path.join(PACKAGE_DIR, "wire") +SCHEMA_DIR = os.path.join(PACKAGE_DIR, "schemas") def run_validation(wire_path=WIRE_DIR, schema_path=SCHEMA_DIR): print(f"Starting v2.6 Multi-Stage Validation...") diff --git a/scripts/ci_offline.sh b/scripts/ci_offline.sh index 4a87a87..6eb681d 100644 --- a/scripts/ci_offline.sh +++ b/scripts/ci_offline.sh @@ -41,6 +41,9 @@ else fi run "program-files" "$PY" scripts/generate_status.py --check +run "inspect-result" "$PY" tests/test_inspect_result.py +run "inspect-reaches-driver" "$PY" tests/test_inspect_reaches_driver.py +run "ssh-dns-key-column" "$PY" tests/test_ssh_dns_key_column.py run "principles" "$PY" scripts/check_principles.py # Catalogue proofs are the 2.10 exit. They are expected red in cycle 0 @@ -77,4 +80,7 @@ fi soft=0 "$PY" -c "from crude_engine import FeatureEngine" || soft=1 "$PY" scripts/generate_status.py --check || soft=1 +"$PY" tests/test_inspect_result.py || soft=1 +"$PY" tests/test_inspect_reaches_driver.py || soft=1 +"$PY" tests/test_ssh_dns_key_column.py || soft=1 exit $soft diff --git a/scripts/generate_status.py b/scripts/generate_status.py index 37fd3f1..ba41f7d 100644 --- a/scripts/generate_status.py +++ b/scripts/generate_status.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Render docs/status.html from program/*.yaml + TODO/ROADMAP presence. +"""Render docs/status.html from program/*.yaml + ROADMAP presence. python3 scripts/generate_status.py python3 scripts/generate_status.py --check # fail if human files missing @@ -156,7 +156,7 @@ def task_card(t): SEED.md · METHOD.md · ROADMAP.md · - TODO.md · + GitHub issues · cycles.yaml

@@ -188,7 +188,7 @@ def task_card(t): def check_human_files(): missing = [] - for rel in ("docs/ROADMAP.md", "docs/TODO.md", "docs/program/SEED.md", + for rel in ("docs/ROADMAP.md", "docs/program/SEED.md", "docs/program/METHOD.md", "docs/program/cycles.yaml", "docs/program/roadmap.yaml"): if not os.path.isfile(os.path.join(ROOT, rel)): diff --git a/sidecar/README.md b/sidecar/README.md new file mode 100644 index 0000000..e115a35 --- /dev/null +++ b/sidecar/README.md @@ -0,0 +1,57 @@ +# Sidecar (read-only named tests) + +Thin HTTP over the existing harness. Not a second test suite. + + POST /v1/run {"name": "get_dns.read"} + +maps to + + python3 tests/release_matrix.py --inspect --method get_dns --device + +Same Python function: `tests/release_matrix.py::run_inspect`. +Documented in `tests/README_TESTS.md` (use `--inspect`, never throwaway +`get_*` scripts). `--inspect` is read-only by design. + +## Name → CLI + +| catalog name | call | +| `get_dns.read` | `--inspect --method get_dns --kind read` | +| `set_dns.roundtrip` | HTTP 400 `bad_name` (not called) | +| `dns.lifecycle.mops` | HTTP 400 `bad_name` (not called) | +| `save_config.execute` | HTTP 400 `bad_name` (not called) | +| unknown well-formed | HTTP 404 `unknown_name` | + +Device IP comes from the sidecar machine's gitignored +`tests/device_pool.yaml`. Never from the request body. Never from git. +Picker is the same read resolver as `generate_plan`: feature ∈ +`has_capable` and `read` ∈ `safe_for`. First match. If none, HTTP 503 +`not_ready` (no SSH hang). +Example pool host is TEST-NET `192.0.2.10` in +`tests/device_pool.yaml.example`. Passwords from the environment +(`CRUDE_DEVICE_PASSWORD`). + +Sync: `POST /v1/sync` `{op: main}` (live pull), `{op: pr, number: N}` +(allowlisted author only), `{op: clean}` (back to origin/main). Same +lock as `/v1/run`. Not a second harness. VPS Claude is the fallback +until this endpoint is on main. + + +## Run + +From the crude-engine root: + + python3 -m sidecar --help + python3 -m sidecar --host 127.0.0.1 --port 8765 + +Default `CRUDE_SIDECAR_MODE=read-only`. Default transport is `fake` +(mocked inspect, no switch). Operator LAN: set `CRUDE_SIDECAR_TRANSPORT` +to `live` and keep the pool file local. + +Bind loopback. Bot VM must not WireGuard and must not SSH switches. + +Put `SIDECAR_URL` in a gitignored `.env` on the operator machine. +`servers.url` in `openapi.yaml` stays `/`. + +## Offline proofs + + python3 tests/test_sidecar_readonly.py diff --git a/sidecar/__init__.py b/sidecar/__init__.py new file mode 100644 index 0000000..c43a55f --- /dev/null +++ b/sidecar/__init__.py @@ -0,0 +1,3 @@ +"""Thin HTTP over tests/release_matrix.py --inspect (issue 20).""" + +__version__ = "0.1.0" diff --git a/sidecar/__main__.py b/sidecar/__main__.py new file mode 100644 index 0000000..3faa7b6 --- /dev/null +++ b/sidecar/__main__.py @@ -0,0 +1,37 @@ +"""python -m sidecar — thin HTTP over tests/release_matrix.py --inspect.""" +from __future__ import annotations + +import argparse +import os +import sys + + +def main(argv=None): + p = argparse.ArgumentParser( + prog="python -m sidecar", + description=( + "POST /v1/run {name} and POST /v1/sync {op} over " + "tests/release_matrix.py --inspect --method . " + "Default mode is read-only." + ), + ) + p.add_argument("--host", default=os.environ.get("CRUDE_SIDECAR_HOST", "127.0.0.1")) + p.add_argument("--port", type=int, default=int(os.environ.get("CRUDE_SIDECAR_PORT", "8765"))) + args = p.parse_args(argv) + from sidecar.app import make_server, mode + + print( + f"sidecar mode={mode()!r} POST /v1/run and /v1/sync on {args.host}:{args.port} " + f"inspect=tests/release_matrix.py::run_inspect", + file=sys.stderr, + ) + httpd = make_server(args.host, args.port) + try: + httpd.serve_forever() + except KeyboardInterrupt: + return 0 + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/sidecar/app.py b/sidecar/app.py new file mode 100644 index 0000000..27ca655 --- /dev/null +++ b/sidecar/app.py @@ -0,0 +1,586 @@ +"""Thin HTTP over tests/release_matrix.py --inspect. + +POST /v1/run {name: get_dns.read} maps to + python3 tests/release_matrix.py --inspect --method get_dns --device + +Device IP comes from local gitignored tests/device_pool.yaml, never from +the request body, never from this package. Read-only mode refuses +non-*.read *before* calling inspect. This module does not gather, dump, +or assert; it calls release_matrix.run_inspect and shapes the OpenAPI body. +""" +from __future__ import annotations + +import json +import os +import re +import subprocess +import sys +import threading +import time +from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer +from pathlib import Path +from urllib.parse import urlparse + +ROOT = Path(__file__).resolve().parents[1] +CATALOG_PATH = ROOT / "tests" / "catalog.yaml" +POOL_PATH = ROOT / "tests" / "device_pool.yaml" +SYNC_YAML = ROOT / "sidecar" / "sync.yaml" +NAME_RE = re.compile(r"^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$") +DEFAULT_MODE = "read-only" + +try: + import yaml +except ImportError: # pragma: no cover + yaml = None + + +class RunLock: + def __init__(self): + self._lock = threading.Lock() + + def acquire(self): + return self._lock.acquire(blocking=False) + + def release(self): + self._lock.release() + + +LOCK = RunLock() + +# Tests assign a callable(number) -> login. Live uses GitHub. Never a PAT. +pr_author_lookup = None + + +def mode(): + return (os.environ.get("CRUDE_SIDECAR_MODE") or DEFAULT_MODE).strip().lower() + + +def transport(): + return (os.environ.get("CRUDE_SIDECAR_TRANSPORT") or "fake").strip().lower() + + +def well_formed(name): + return bool(name) and isinstance(name, str) and NAME_RE.match(name) + + +def is_read(entry): + if not entry: + return False + name = entry.get("name") or "" + return entry.get("access") == "R" or str(name).endswith(".read") + + +def load_catalog(): + if yaml is None: + raise FileNotFoundError("pyyaml required") + if not CATALOG_PATH.is_file(): + raise FileNotFoundError(str(CATALOG_PATH)) + data = yaml.safe_load(CATALOG_PATH.read_text()) or {} + entries = {} + for item in data.get("entries") or []: + n = item.get("name") + if n: + entries[str(n)] = item + return entries + + +def name_to_inspect(name, entry): + """Catalog get_dns.read → --inspect --method get_dns --kind read.""" + method = entry.get("method") + if not method and name.endswith(".read"): + method = name[: -len(".read")] + return method + + +def _load_pool_devices(): + """Local gitignored pool. Empty if the file is absent.""" + if yaml is None or not POOL_PATH.is_file(): + return [] + data = yaml.safe_load(POOL_PATH.read_text()) or {} + return list(data.get("devices") or []) + + +def _matches_read(dev, feature): + """Same read resolver as generate_plan / _device_matches kind=read.""" + tests_dir = str(ROOT / "tests") + if tests_dir not in sys.path: + sys.path.insert(0, tests_dir) + from release_matrix import _device_matches + return _device_matches(dev, feature, "read") + + +def pick_device(feature, devices=None): + """First pool device with feature in has_capable and read in safe_for. + + Same rule as generate_plan. First match. None if none qualify. + Returns the full pool record (ip/label/sw_level/...), not just the ip. + """ + if devices is None: + devices = _load_pool_devices() + if not feature: + return None + for dev in devices: + ip = dev.get("ip") + if not ip: + continue + ok, _reason = _matches_read(dev, feature) + if ok: + return dev + return None + + +def pick_device_ip(feature, devices=None): + """Back-compat: ip only. See pick_device for label/sw_level.""" + dev = pick_device(feature, devices) + return str(dev["ip"]) if dev else None + + +def shape_inspect(name, inspect_out, feature=None, device_info=None): + """HTTP body for a read inspect. passed = at least one protocol ok (or fake). + + parity_diffs are first-class: callers file GitHub issues from them. + Disagreement does not flip passed to false. + + device_info (issue #131) is the pool record pick_device chose, so the + label/sw_level that actually ran are checkable against the HITL floor. + None on fake/offline transport or when no device was eligible. + """ + if not isinstance(inspect_out, dict): + inspect_out = {"exit": 0 if inspect_out in (0, None) else inspect_out, + "protocols": {}, "parity_diffs": []} + fake = bool(inspect_out.get("fake")) + protocols = inspect_out.get("protocols") or {} + diffs = inspect_out.get("parity_diffs") or [] + if not isinstance(diffs, list): + diffs = [diffs] + any_ok = any((p or {}).get("status") == "ok" for p in protocols.values()) + passed = True if fake else any_ok + comms = "ok" if passed else "lost" + expected = {"comms": "ok", "rollback": "not_armed"} + actual = {"comms": comms, "rollback": "not_armed"} + device = ( + {"label": device_info.get("label"), "sw_level": device_info.get("sw_level")} + if device_info else None + ) + return { + "result": { + "name": name, + "passed": passed, + "commands_sent": True, + "comms": comms, + "rollback": "not_armed", + "expected": expected, + "actual": actual, + "protocols": protocols, + "parity_diffs": diffs, + "feature": feature, + "device": device, + }, + "sidecar": current_head(), + "audit": {"diff": {"buckets": []}}, + "timings": { + "encode_dispatch_ms": 0, + "gather_decode_ms": 0, + "time_to_confirm_ms": None, + "time_to_rollback_visible_ms": None, + "audit_lag_ms": None, + "device_timer_ms": 0, + }, + } + + +def call_inspect(method, device, protocol=None, trace=False): + """Call tests/release_matrix.py::run_inspect. Fake transport does not.""" + if transport() in ("fake", "offline"): + return { + "exit": 0, + "fake": True, + "method": method, + "device": device, + "protocols": {}, + "parity_diffs": [], + } + tests_dir = str(ROOT / "tests") + if tests_dir not in sys.path: + sys.path.insert(0, tests_dir) + import release_matrix as rm + + user = os.environ.get("CRUDE_DEVICE_USERNAME") or "admin" + password = os.environ.get("CRUDE_DEVICE_PASSWORD") or "" + return rm.run_inspect( + method, + device, + protocol, + trace=bool(trace), + username=user, + password=password, + ) + + +def handle_run(payload): + """Return (status_code, body). Refuses non-reads before inspect.""" + if not isinstance(payload, dict) or set(payload.keys()) - {"name", "trace"}: + return 400, {"error": "bad_name", "message": 'body must be {"name": ...} or {"name": ..., "trace": true}'} + name = payload.get("name") + trace = bool(payload.get("trace")) + if not well_formed(name): + return 400, {"error": "bad_name", "message": "not a catalog test name", "name": name} + + try: + catalog = load_catalog() + except FileNotFoundError as exc: + return 503, {"error": "not_ready", "message": str(exc), "name": name} + + entry = catalog.get(name) + if entry is None: + return 404, {"error": "unknown_name", "message": "not in catalog", "name": name} + + if mode() in ("read-only", "readonly", "read") and not is_read(entry): + return 400, { + "error": "bad_name", + "message": "read-only mode allows catalog access R / *.read only", + "name": name, + } + + method = name_to_inspect(name, entry) + if not method: + return 400, {"error": "bad_name", "message": "name does not map to --method", "name": name} + + feature = entry.get("feature") + if not feature: + return 400, { + "error": "bad_name", + "message": "catalog entry has no feature", + "name": name, + } + + # Fake/offline never touches the (possibly real, gitignored) pool file: + # no device was actually used, so none is echoed in the receipt either. + picked = None if transport() in ("fake", "offline") else pick_device(feature) + device = str(picked["ip"]) if picked else None + if transport() not in ("fake", "offline"): + if not POOL_PATH.is_file(): + return 503, { + "error": "not_ready", + "message": "no local tests/device_pool.yaml (gitignored)", + "name": name, + } + if not device: + return 503, { + "error": "not_ready", + "message": ( + f"no eligible device: {feature} not in has_capable " + "or read not in safe_for" + ), + "name": name, + } + + protocol = os.environ.get("CRUDE_SIDECAR_PROTOCOL") or None + + if not LOCK.acquire(): + return 409, {"error": "lock_held", "message": "lab lock is held", "name": name} + try: + out = call_inspect(method, device, protocol, trace=trace) + if isinstance(out, dict) and out.get("exit") == 2: + return 503, { + "error": "not_ready", + "message": out.get("error") or "release_matrix --inspect usage error", + "name": name, + } + if not isinstance(out, dict) and out not in (0, None): + if out == 2: + return 503, { + "error": "not_ready", + "message": "release_matrix --inspect returned 2", + "name": name, + } + return 200, shape_inspect(name, out, feature=feature, device_info=picked) + finally: + LOCK.release() + + +def load_sync_yaml(): + """Allowlist and repo. YAML declares; Python only reads.""" + if yaml is None: + raise FileNotFoundError("pyyaml required") + if not SYNC_YAML.is_file(): + raise FileNotFoundError(str(SYNC_YAML)) + data = yaml.safe_load(SYNC_YAML.read_text()) or {} + authors = [str(a) for a in (data.get("allow_pr_authors") or []) if a] + repo = data.get("repo") + api_host = data.get("api_host") + if not authors: + raise ValueError("sidecar/sync.yaml allow_pr_authors is empty") + if not repo or not api_host: + raise ValueError("sidecar/sync.yaml missing repo or api_host") + return { + "allow_pr_authors": authors, + "repo": str(repo), + "api_host": str(api_host), + } + + +def current_head(): + """sha + ref of this checkout. Fake transport does not git.""" + if transport() in ("fake", "offline"): + return {"sha": "fake", "ref": "main"} + sha = _git("rev-parse", "HEAD") + ref = _git("rev-parse", "--abbrev-ref", "HEAD") + sha_s = sha.stdout.strip() if sha.returncode == 0 else None + ref_s = ref.stdout.strip() if ref.returncode == 0 else None + if ref_s == "HEAD": + ref_s = "detached" + return {"sha": sha_s, "ref": ref_s} + + +class SyncNotReady(RuntimeError): + """503 sync refusal with structured detail (issue #159): dirty paths + HEAD.""" + + def __init__(self, message, detail=None): + super().__init__(message) + self.detail = detail or {} + + +def _git(*args): + return subprocess.run( + ["git", *args], + cwd=str(ROOT), + capture_output=True, + text=True, + timeout=60, + ) + + +def _dirty_paths(): + """Porcelain path list, empty if clean. Raises on git status failure.""" + status = _git("status", "--porcelain") + if status.returncode != 0: + raise RuntimeError(status.stderr[-300:] or "git status failed") + return [line[3:].strip() for line in status.stdout.splitlines() if line.strip()] + + +def _require_clean(): + dirty = _dirty_paths() + if dirty: + raise SyncNotReady( + "working tree dirty", + {"dirty": dirty, "head": current_head()}, + ) + + +def _ff_to_main(): + fetched = _git("fetch", "origin", "main") + if fetched.returncode != 0: + raise RuntimeError((fetched.stderr or fetched.stdout)[-300:]) + checked = _git("checkout", "main") + if checked.returncode != 0: + raise RuntimeError((checked.stderr or checked.stdout)[-300:]) + merged = _git("merge", "--ff-only", "origin/main") + if merged.returncode != 0: + raise RuntimeError((merged.stderr or merged.stdout)[-300:]) + + +def _git_sync_main(): + _require_clean() + _ff_to_main() + + +def _git_sync_pr(number): + _require_clean() + refspec = "pull/%d/head" % int(number) + fetched = _git("fetch", "origin", refspec) + if fetched.returncode != 0: + raise RuntimeError((fetched.stderr or fetched.stdout)[-300:]) + checked = _git("checkout", "--detach", "FETCH_HEAD") + if checked.returncode != 0: + raise RuntimeError((checked.stderr or checked.stdout)[-300:]) + + +def _git_sync_clean(): + """Real op:clean (issue #159): discard dirty state, land ff-only on main. + + Unlike main/pr, clean's entire job is to recover from a dirty or + detached checkout, so it does not call _require_clean() first. Never + force-pushes, never touches gitignored files (-fd, not -fdx), never a + caller-supplied ref. + """ + reset = _git("reset", "--hard", "HEAD") + if reset.returncode != 0: + raise RuntimeError((reset.stderr or reset.stdout)[-300:]) + cleaned = _git("clean", "-fd") + if cleaned.returncode != 0: + raise RuntimeError((cleaned.stderr or cleaned.stdout)[-300:]) + _ff_to_main() + + +def lookup_pr_author_github(number, cfg): + """Public PR lookup. No PAT. Host comes from YAML, not a committed URL.""" + import urllib.error + import urllib.request + + scheme = "https" + path = "/repos/%s/pulls/%d" % (cfg["repo"], int(number)) + url = scheme + "://" + cfg["api_host"] + path + req = urllib.request.Request(url, headers={"Accept": "application/vnd.github+json"}) + try: + with urllib.request.urlopen(req, timeout=15) as resp: + data = json.loads(resp.read().decode("utf-8")) + except (urllib.error.URLError, TimeoutError, ValueError, OSError) as exc: + raise RuntimeError("PR lookup failed: %s" % exc) from exc + user = data.get("user") if isinstance(data, dict) else None + login = user.get("login") if isinstance(user, dict) else None + return str(login) if login else None + + +def lookup_pr_author(number, cfg): + if pr_author_lookup is not None: + return pr_author_lookup(number) + if transport() in ("fake", "offline"): + return None + return lookup_pr_author_github(number, cfg) + + +def _sync_restart_pending(): + """Live sync asks systemd to bring us back. Tests never set this.""" + if transport() in ("fake", "offline"): + return False + return True + + +def handle_sync(payload): + """Return (status_code, body). Git only after allowlist. Fake skips git.""" + if not isinstance(payload, dict): + return 400, {"error": "bad_name", "message": "body must be JSON object"} + op = payload.get("op") + keys = set(payload.keys()) + if op not in ("main", "pr", "clean"): + return 400, { + "error": "bad_name", + "message": 'body.op must be "main", "pr", or "clean"', + } + if op == "pr": + if keys - {"op", "number"}: + return 400, {"error": "bad_name", "message": 'pr body is {"op":"pr","number": N}'} + number = payload.get("number") + if not isinstance(number, int) or isinstance(number, bool) or number < 1: + return 400, {"error": "bad_name", "message": "number must be a positive integer"} + elif keys - {"op"}: + return 400, {"error": "bad_name", "message": 'body is {"op":"main"} or {"op":"clean"}'} + + try: + cfg = load_sync_yaml() + except (FileNotFoundError, ValueError) as exc: + return 503, {"error": "not_ready", "message": str(exc), "op": op} + + if op == "pr": + try: + login = lookup_pr_author(number, cfg) + except RuntimeError as exc: + return 503, {"error": "not_ready", "message": str(exc), "op": op} + if not login or login not in cfg["allow_pr_authors"]: + return 403, { + "error": "forbidden", + "message": "PR author not allowlisted", + "author": login, + } + + if not LOCK.acquire(): + return 409, {"error": "lock_held", "message": "lab lock is held"} + try: + fake = transport() in ("fake", "offline") + if not fake: + try: + if op == "pr": + _git_sync_pr(number) + elif op == "clean": + _git_sync_clean() + else: + _git_sync_main() + except SyncNotReady as exc: + body = {"error": "not_ready", "message": str(exc), "op": op} + body.update(exc.detail) + return 503, body + except RuntimeError as exc: + return 503, {"error": "not_ready", "message": str(exc), "op": op} + if fake: + if op == "pr": + head = {"sha": "fake", "ref": "pr-%d" % number} + else: + head = {"sha": "fake", "ref": "main"} + else: + head = current_head() + if op == "pr": + head = {"sha": head.get("sha"), "ref": "pr-%d" % number} + restart = False if fake else _sync_restart_pending() + body = { + "ok": True, + "op": op, + "head": head.get("sha"), + "ref": head.get("ref"), + "restart": restart, + } + if op == "pr": + body["number"] = number + return 200, body + finally: + LOCK.release() + + +class Handler(BaseHTTPRequestHandler): + def log_message(self, fmt, *args): + sys.stderr.write("%s - %s\n" % (self.address_string(), fmt % args)) + + def _send(self, code, body): + raw = json.dumps(body).encode("utf-8") + self.send_response(code) + self.send_header("Content-Type", "application/json") + self.send_header("Content-Length", str(len(raw))) + self.end_headers() + self.wfile.write(raw) + + def do_POST(self): + path = urlparse(self.path).path + if path not in ("/v1/run", "/v1/sync"): + self._send(404, {"error": "unknown_name", "message": "not POST /v1/run or /v1/sync"}) + return + length = int(self.headers.get("Content-Length") or 0) + raw = self.rfile.read(length) if length else b"" + try: + payload = json.loads(raw.decode("utf-8") or "null") + except (ValueError, UnicodeDecodeError): + self._send(400, {"error": "bad_name", "message": "body is not JSON"}) + return + try: + if path == "/v1/sync": + code, body = handle_sync(payload) + else: + code, body = handle_run(payload) + except Exception as exc: + self._send( + 500, + { + "error": "not_ready", + "message": f"{type(exc).__name__}: {exc}", + }, + ) + return + self._send(code, body) + if ( + path == "/v1/sync" + and code == 200 + and isinstance(body, dict) + and body.get("restart") + ): + threading.Thread(target=_exit_after_flush, daemon=True).start() + + def do_GET(self): + self._send(400, {"error": "bad_name", "message": "POST /v1/run or /v1/sync"}) + + +def _exit_after_flush(): + time.sleep(0.3) + os._exit(0) + + +def make_server(host, port): + return ThreadingHTTPServer((host, port), Handler) diff --git a/sidecar/openapi.yaml b/sidecar/openapi.yaml index c0f8eb6..031cfb1 100644 --- a/sidecar/openapi.yaml +++ b/sidecar/openapi.yaml @@ -3,10 +3,17 @@ info: title: CRUDE lab sidecar version: 0.1.0 description: | - Contract only. This file is the Cycle 0 sidecar API. The VPS is not - implemented here. Named catalog entries are generated later from schema - `type:` (C/R/U/D) plus protocol `execute_methods` (E). Do not invent - CRUDE methods in this document. + Cycle 0 sidecar API. Named catalog entries come from schema `type:` + (C/R/U/D) plus protocol `execute_methods` (E). Do not invent CRUDE + methods in this document. + + **Read-only process (issue 20).** Default `CRUDE_SIDECAR_MODE=read-only`. + `python -m sidecar` serves POST /v1/run for catalog `access: R` / + `*.read` only. Rollback is `not_armed`. This process does not arm + HiOS rollback and does not implement Keep/Revert. Other catalog + names (`*.roundtrip`, `*.execute`, `*.lifecycle`) return 400 + `bad_name`. Homelab VPS write path is not this process. + `servers.url` stays `/`. **Where it runs.** The sidecar lives on the existing VPS already on the homelab VPN. The Bot VM must not WireGuard the homelab, must not hold @@ -98,6 +105,10 @@ paths: actual: comms: ok rollback: confirmed + feature: dns + device: + label: example-l3a + sw_level: L3A_MR audit: diff: buckets: [] @@ -123,6 +134,10 @@ paths: actual: comms: lost_then_ok rollback: fired + feature: dns + device: + label: example-l3 + sw_level: L3S audit: diff: buckets: [] @@ -161,6 +176,72 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + /v1/sync: + post: + operationId: syncCheckout + summary: Pull main, checkout an allowlisted PR, or clean back to main + description: | + RPC for the git pull the sidecar already does by hand. Not a + second harness. Not extra keys on `/v1/run`. + + `op: pr` looks up the PR author and compares to YAML + `allow_pr_authors` (start: AdamRickards) *before* fetch. + Mismatch is 403; no checkout, no restart. `main` and `clean` + do not need that check. Never a caller-supplied ref, never + push, never force. Same RunLock as `/v1/run`. + + **`op: clean` (issue #159).** Optional, caller-invoked recovery: + `git reset --hard` + `git clean -fd` (never `-x` — gitignored + files like the local device pool are never touched), then the + same fetch/checkout/ff-only-merge to `origin/main` as `op: main`. + Unlike `main`/`pr`, `clean` does not refuse on a dirty tree — + discarding dirty state is the point. `main` and `pr` do refuse on + dirty, and the 503 now echoes the dirty paths and current HEAD + sha/ref so a caller can tell what is blocking without SSH access. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SyncRequest' + examples: + main: + value: { op: main } + pr: + value: { op: pr, number: 36 } + clean: + value: { op: clean } + responses: + '200': + description: Checkout moved. `restart` true means the process will exit so systemd can reload YAML/Python. + content: + application/json: + schema: + $ref: '#/components/schemas/SyncResponse' + '400': + description: Body is not a known op. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: PR author is not in allow_pr_authors. No fetch. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: Lab lock is held. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Git or PR lookup not ready. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' components: schemas: RunRequest: @@ -176,6 +257,12 @@ components: Generated catalog entry name. Examples (not an enum): `get_dns.read`, `set_dns.roundtrip`, `dns.lifecycle.mops`. example: get_dns.read + trace: + type: boolean + description: | + Opt-in. When true, inspect copies SSH command/response + text onto each protocol result as `cli`. Default polls + omit this. Does not change parse or what is sent. RunResponse: type: object additionalProperties: false @@ -187,6 +274,49 @@ components: $ref: '#/components/schemas/Audit' timings: $ref: '#/components/schemas/Timings' + sidecar: + $ref: '#/components/schemas/SidecarHead' + SyncRequest: + type: object + additionalProperties: false + required: [op] + properties: + op: + type: string + enum: [main, pr, clean] + number: + type: integer + minimum: 1 + description: Required when op is pr. GitHub PR number, not a ref. + SyncResponse: + type: object + additionalProperties: false + required: [ok, op, head, ref, restart] + properties: + ok: + type: boolean + op: + type: string + enum: [main, pr, clean] + head: + type: string + nullable: true + ref: + type: string + restart: + type: boolean + number: + type: integer + SidecarHead: + type: object + additionalProperties: false + properties: + sha: + type: string + nullable: true + ref: + type: string + nullable: true Result: type: object additionalProperties: false @@ -198,18 +328,39 @@ components: - rollback - expected - actual + - protocols + - parity_diffs + - feature + - device properties: name: type: string description: Echo of the catalog name that ran. + feature: + type: string + description: Echo of the catalog entry's `feature` (issue #131). + device: + type: object + nullable: true + additionalProperties: false + description: | + Pool device pick_device chose for this run (issue #131). Label + and sw_level only — never the ip, never credentials. Null on + fake/offline transport or when no pool device was eligible. + properties: + label: + type: string + nullable: true + sw_level: + type: string + nullable: true passed: type: boolean description: | - true only when expected matches actual on first-class - outcomes, audit.diff.buckets is empty, and timings have not - regressed (a timing regression fails like `wrong_encoding`). - Pass/fail is not sufficient by itself; callers must also - read commands_sent, comms, and rollback. + For read-only inspect: true when at least one protocol + returned data (or fake/offline transport). Protocol + disagreement does not flip this to false. Callers file + GitHub issues from `parity_diffs`, not from `passed`. commands_sent: type: boolean description: Whether the sidecar dispatched commands toward the device. @@ -221,6 +372,60 @@ components: $ref: '#/components/schemas/Outcomes' actual: $ref: '#/components/schemas/Outcomes' + protocols: + type: object + additionalProperties: + type: object + properties: + status: + type: string + enum: [ok, connect_failed, dispatch_error, timeout] + elapsed_ms: + type: integer + minimum: 0 + description: open_ms + call_ms. Informational; not a fail bit. + open_ms: + type: integer + minimum: 0 + nullable: true + call_ms: + type: integer + minimum: 0 + nullable: true + phase: + type: string + enum: [open, call] + description: Set on timeout/connect_failed/dispatch_error. + raw: {} + error: + type: string + cli: + type: array + description: | + Present when request.trace is true. SSH: command + + response text the table parser saw. Not a parse change. + items: + type: object + properties: + command: + type: string + level: + type: string + response: + type: string + trace: {} + description: | + Per-protocol inspect outcome. open_timeout_s and + call_timeout_s come from tests/inspect.yaml (YAML declares, + Python interprets). Combined wall time is not a failure. + Opt-in `cli` is the raw SSH show text for debug. + parity_diffs: + type: array + description: | + Cross-protocol diffs from the harness parity check. + Empty if fewer than two protocols returned data, or they + matched. Non-empty is issue-proof, not a failed GET. + items: {} Outcomes: type: object additionalProperties: false @@ -320,9 +525,24 @@ components: properties: error: type: string - enum: [bad_name, unknown_name, lock_held, not_ready] + enum: [bad_name, unknown_name, lock_held, not_ready, forbidden] message: type: string name: type: string - description: Echo of the requested name when known. + description: Echo of the requested name when known (/v1/run). + op: + type: string + enum: [main, pr, clean] + description: Echo of the requested op when known (/v1/sync, issue #159). + dirty: + type: array + description: | + /v1/sync 503 dirty-tree refusal (issue #159). Porcelain paths + blocking `main`/`pr`; `op: clean` never returns this — clean + discards dirty state instead of refusing on it. + items: + type: string + head: + $ref: '#/components/schemas/SidecarHead' + description: HEAD sha/ref at the moment a /v1/sync op refused (issue #159). diff --git a/sidecar/sync.yaml b/sidecar/sync.yaml new file mode 100644 index 0000000..9242cd1 --- /dev/null +++ b/sidecar/sync.yaml @@ -0,0 +1,10 @@ +# sidecar/sync.yaml — POST /v1/sync. YAML declares; Python interprets. +# No live URLs. api_host is a host name only (scheme is not stored here). +# +# allow_pr_authors: GitHub logins that may be fetched via op: pr. +# Anyone else → 403, no fetch, no checkout, no restart. + +repo: AdamRickards/crude-engine +api_host: api.github.com +allow_pr_authors: + - AdamRickards diff --git a/tests/README_TESTS.md b/tests/README_TESTS.md index c6b8296..67619b4 100644 --- a/tests/README_TESTS.md +++ b/tests/README_TESTS.md @@ -2,7 +2,7 @@ > One-pager. Every script in `tests/` listed once with: what it does, when to use it, > what NOT to use it for, and how to invoke it. Read this before adding new test code. -> Linked from `AGENTS.md` (standing law) and `docs/RELEASE_GATE.md`. Leftover Claude: `local/archive/docs-legacy/claude/CLAUDE.md`. +> Linked from `AGENTS.md` (the only root agent law) and `docs/RELEASE_GATE.md`. Leftover Claude is archive, not law: `local/archive/docs-legacy/claude/CLAUDE.md`. ## TL;DR — which script for which job @@ -32,6 +32,7 @@ If you find yourself wanting to write a one-shot script, ask "can `release_matri | Run the CRUD round-trips directly | `test_crud_pairs.py` | | Capture multi-layer fixtures (transport/driver/engine/adapter) | `capture.py` | | Replay captured fixtures as offline regression tests (pytest) | `test_replay.py` | +| Offline vs gold/config read matrix (FeatureEngine + OfflineHIOS) | `offline_gold_matrix.py` | | Orchestrate getters + setters across the lab fleet (legacy) | `audit_all.py` | | Gather one device's state for diagnostics | `audit_common.py ` | @@ -201,6 +202,8 @@ python3 tests/test_crud_pairs.py 192.168.60.80 --protocol snmp ### `capture.py` — multi-layer fixture capture +**Status:** leftover live-capture helper, **not** the offline CI floor (`scripts/ci_offline.sh` does not run it). Tap4 goes through the 2.0 NAPALM shim (`napalm_hios.hios.HIOSDriver`). Do not fold that shim into `crude_engine`. + **Purpose:** record everything that happens on a single device call, at four boundaries, so it can be replayed offline. **What it captures:** @@ -228,6 +231,8 @@ python3 tests/capture.py 192.168.1.4 --methods get_facts get_interfaces ### `test_replay.py` — pytest-based fixture replay +**Status:** leftover, **not** the live offline floor. CI does not run it. Fixtures are local/untracked. Engine import is `crude_engine.FeatureEngine`. `test_napalm` compares captured JSON; it does not import the shim. + **Purpose:** offline regression tests using captured fixtures. No live device needed. **What it does:** @@ -238,9 +243,8 @@ python3 tests/capture.py 192.168.1.4 --methods get_facts get_interfaces - Standard pytest discovery; `-k` filters work **When to use it:** -- CI / pre-commit gate (fast, no network). +- Local replay of captured fixtures (not CI). - Refactoring engine internals without risking a regression. -- Testing on a plane. **When NOT to use it:** - Not for SET/CRUD — captures are read-only. @@ -365,8 +369,8 @@ Add features to `--inspect`. Don't write scripts. THE tool that produces the per-cell matrix JSON used as the release gate. Imports the internals of `audit_getters_v2.py`, `test_setter_pairs.py`, `test_crud_pairs.py` (no subprocess), merges results into a hierarchical -JSON DB, supports surgical re-runs, generates `docs/RELEASE_MATRIX.md` -and `docs/TODO_HITLIST.md`. +JSON DB, supports surgical re-runs, generates `docs/RELEASE_MATRIX.md`. +Leftover failures live on GitHub issues, not a live `docs/TODO_HITLIST.md`. **Built and validated.** See `docs/RELEASE_GATE.md` for the full design. @@ -384,7 +388,7 @@ gather → plan → execute → derive → render - **derive** — auto-runs after any execute that included reads; updates `device_state.devices..has_configured_from_gather` so the next plan/execute uses live truth -- **render** — generates `docs/RELEASE_MATRIX.md` + `docs/TODO_HITLIST.md` +- **render** — generates `docs/RELEASE_MATRIX.md`. Leftovers are GitHub issues (not a live `TODO_HITLIST.md`). **CLI:** ```bash @@ -425,7 +429,6 @@ release_matrix.py --db-info # one-line summary | `tests/release_test_plan.json` | Job manifest from plan generator | Never (regenerated each `--plan`) | | `tests/device_state.json` | Per-device gather output + auto-derived `has_configured_from_gather` | Never (regenerated each `--gather` and after each `--execute --kind read`) | | `docs/RELEASE_MATRIX.md` | Read-only scoreboard: summary, per-protocol, fleet, per-schema grid, perf, comms-lost | Never | -| `docs/TODO_HITLIST.md` | Failures grouped by `#bucket` tag, NEEDS TRIAGE for untagged | Never | **Standing rules:** - `safe_for: [read]` devices CANNOT receive setter/CRUD jobs at any code path. Verified. @@ -529,9 +532,8 @@ declaration get a no-op wrap (run normally). /tmp/crude-engine/.venv/bin/python3 tests/