Skip to main content

NAPALM driver for HiOS network switches by Belden

Project description

NAPALM HiOS Driver

NAPALM driver for Hirschmann HiOS industrial switches by Belden. Three protocols — MOPS, SNMP, and SSH — with full getter parity and vendor-specific methods for MRP, RSTP, factory lifecycle, and config profiles.

Features

  • MOPS (MIB Operations over HTTPS) — default protocol, same mechanism as the HiOS web UI. Atomic multi-table writes in a single POST, HTTP Basic auth, zero pysnmp/net-snmp dependency
  • SNMPv3 authPriv (MD5/DES) — works with HiOS factory defaults including short passwords (< 8 chars)
  • SSH — CLI parsing via Netmiko, lazy auto-connect when MOPS/SNMP is primary
  • 19 standard getters on all 3 protocols, plus 3 SSH-only methods (get_config, ping, cli)
  • Atomic config stagingload_merge_candidatecompare_configcommit_config (MOPS: single POST; SSH: CLI commands)
  • RSTP/STP — full global and per-port get/set: mode, priority, timers, guards, edge ports, path cost
  • MRP ring redundancy — configure manager/client roles, ring ports, recovery delay, domain management
  • Factory lifecycle — detect and onboard factory-fresh HiOS 10.3+ devices, clear to defaults or full factory reset
  • Config profiles — list, activate, delete NVM/ENVM config profiles with fingerprint tracking
  • HiDiscovery — read/set discovery protocol mode (on/off/read-only) with blinking control
  • VLAN Ingress/Egress — per-port ingress settings (PVID, frame types, filtering), per-VLAN egress membership (T/U/F), VLAN CRUD
  • Auto-Disable — per-port timer/status monitoring, reason control, port reset
  • Loop Protection — heartbeat-based loop detection with per-port and global config
  • sFlow — receiver configuration + per-port flow sampling and counter polling (RFC 3176)
  • Storm Control — per-port broadcast/multicast/unicast ingress rate limiting with pps/percent thresholds
  • QoS — per-port trust mode, queue scheduling (strict/weighted), shaping, global dot1p/DSCP→TC mapping, management priority
  • Multi-interface setters — pass a list of ports to set_interface, set_rstp_port, set_auto_disable, reset_auto_disable, set_loop_protection, set_vlan_ingress, set_vlan_egress for batched operations
  • MOPS atomic stagingstart_staging() → multiple setter calls → commit_staging() batches all mutations into one atomic POST (e.g. change PVID + egress together so a port never loses comms)
  • Extended LLDP — 802.1/802.3 org-specific TLVs, multiple management addresses, autoneg, VLAN membership
  • 493 unit tests and live device validation on BRS50 and GRS1042

Installation

pip install napalm-hios

Quick Start

from napalm import get_network_driver

driver = get_network_driver('hios')

# Default: MOPS (HTTPS, atomic writes, no SNMP dependency)
device = driver('192.168.1.4', 'admin', 'private')

# Or force a specific protocol:
# device = driver('192.168.1.4', 'admin', 'private',
#                 optional_args={'protocol_preference': ['snmp']})

device.open()
print(device.get_facts())
print(device.get_interfaces())
device.close()

Documentation

Document Contents
docs/usage.md Standard NAPALM methods — arguments, return values, examples
docs/vendor_specific.md Vendor methods — MRP, RSTP, HiDiscovery, factory reset, onboarding, profiles, extended LLDP
docs/protocols.md Protocol details — MOPS/SNMP/SSH config, known cross-protocol differences, method availability matrix

Supported Methods

Standard NAPALM getters (MOPS + SNMP + SSH)

get_facts | get_interfaces | get_interfaces_ip | get_interfaces_counters | get_lldp_neighbors | get_lldp_neighbors_detail | get_mac_address_table | get_arp_table | get_ntp_servers | get_ntp_stats | get_users | get_optics | get_environment | get_snmp_information | get_vlans

SSH-only (auto-connects SSH when primary is MOPS/SNMP)

get_config | ping | cli

Configuration workflow

load_merge_candidatecompare_configcommit_config | discard_config

Vendor-specific

Read: get_mrp | get_mrp_sub_ring | get_hidiscovery | get_rstp | get_rstp_port | get_auto_disable | get_loop_protection | get_sflow | get_sflow_port | get_storm_control | get_qos | get_qos_mapping | get_management_priority | get_management | get_vlan_ingress | get_vlan_egress | get_lldp_neighbors_detail_extended | get_config_status | get_profiles | get_config_fingerprint | is_factory_default

Write: set_interface | set_mrp | delete_mrp | set_mrp_sub_ring | delete_mrp_sub_ring | set_hidiscovery | set_rstp | set_rstp_port | set_auto_disable | reset_auto_disable | set_auto_disable_reason | set_loop_protection | set_sflow | set_sflow_port | set_storm_control | set_qos | set_qos_mapping | set_management_priority | set_management | set_vlan_ingress | set_vlan_egress | create_vlan | update_vlan | delete_vlan | save_config | clear_config | clear_factory | activate_profile | delete_profile | onboard | start_staging | commit_staging | discard_staging | get_staged_mutations

See docs/vendor_specific.md for arguments, return values, and protocol behaviour.

Protocol Support

Default order: MOPS → SNMP → SSH. Override with protocol_preference in optional_args.

Protocol Transport Auth Atomic Write Dependencies
MOPS HTTPS 443 HTTP Basic Yes (single POST) requests
SNMP UDP 161 SNMPv3 authPriv (MD5/DES) No pysnmp
SSH TCP 22 Password No netmiko

MOPS is the default and preferred protocol. SSH lazy-connects on demand for SSH-only methods. See docs/protocols.md for configuration, known cross-protocol differences, and the full method availability matrix.

Testing

# Unit tests (493+)
pytest tests/unit/ -v

# Live device test
python examples/test_all_commands.py <hostname> <user> <password>

Contributing

Issues and PRs welcome at GitHub. Driver tested against BRS50 and GRS1042 hardware. If you have a HiOS device and find a bug, include firmware version and the getter output.

License

Apache License 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napalm_hios-1.13.0.tar.gz (126.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

napalm_hios-1.13.0-py3-none-any.whl (128.2 kB view details)

Uploaded Python 3

File details

Details for the file napalm_hios-1.13.0.tar.gz.

File metadata

  • Download URL: napalm_hios-1.13.0.tar.gz
  • Upload date:
  • Size: 126.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for napalm_hios-1.13.0.tar.gz
Algorithm Hash digest
SHA256 4122a8d18248d546c06f6770b9827731c3ba68594b79b917d77658573575e0e0
MD5 cd5c2d2778118847f4e834289ffbb5c8
BLAKE2b-256 b2c92908546ec8f9c32e9cbe6c4236337bb92a96491281c76c3f1e9e5275c676

See more details on using hashes here.

File details

Details for the file napalm_hios-1.13.0-py3-none-any.whl.

File metadata

  • Download URL: napalm_hios-1.13.0-py3-none-any.whl
  • Upload date:
  • Size: 128.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for napalm_hios-1.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1ae8d2732cd7c6ad49ba723df041e39d5e4d8df32283a6bee89c0efe36662c5
MD5 e3fbcf8063cdd931d5a1019d051b69c4
BLAKE2b-256 345d37b25ec4df2265a33bf282b22c9f35ffe12e417dc38e9039b1918aa13d5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page