{# SPDX-License-Identifier: Apache-2.0 #} {# Copyright (C) 2025 Marcin Zieba #} {# Lazy fragment: IS-IS category — two grids (interfaces + instances) over ONE payload. #} {% include "netbox_nso_plugin/categories/_adapter_error.html" %} {# #78 intent-integrity: name what the mirror carries that the write path does not, #} {# so an edit+Accept on those fields is never silently inert. Registry (and the #} {# payload-proving test) live in isis_write_policy.py; the per-object detail panel #} {# renders on the netbox-routing IS-IS pages themselves. #} {% if grid_payload.interfaces.rows or grid_payload.instances.rows %}

Some mirrored IS-IS fields are read-only (not carried by the NSO write path): per-instance timers/LSP/overload-on-startup/TE/distance/paths/bandwidth/attached-bit, per-interface hello-auth & csnp/retransmit/lsp-interval & mesh-group, level default-metric/preference/auth, and all interface-levels, settings, segment-routing, prefix-SIDs and SRv6 locators. Editing them in NetBox does not reach the device — the IS-IS object pages list the exact fields.

{{ grid_payload|json_script:"nso-isis-data" }} {% url 'plugins:netbox_nso_plugin:device_nso_category' pk=object.pk key='isis' as cat_url %} {% if grid_payload.interfaces.rows %}
IS-IS Interfaces
{% url 'plugins:netbox_nso_plugin:routing_bulk_accept_isis_interfaces' device_pk=object.pk as bulk_url %}{% include "netbox_nso_plugin/categories/_bulk_accept.html" with bulk_url=bulk_url show=category_has_unowned %}
{% include "netbox_nso_plugin/categories/_grid.html" with cls="nso-isis-if" json_url=cat_url|add:"?format=json" counts=grid_payload.interfaces.counts %} {% endif %} {% if grid_payload.instances.rows %}
IS-IS Instances
{% url 'plugins:netbox_nso_plugin:routing_bulk_accept_isis_instances' device_pk=object.pk as bulk_url %}{% include "netbox_nso_plugin/categories/_bulk_accept.html" with bulk_url=bulk_url show=category_has_unowned %}
{% include "netbox_nso_plugin/categories/_grid.html" with cls="nso-isis-inst" json_url=cat_url|add:"?format=json" counts=grid_payload.instances.counts %} {% endif %} {% else %}

No IS-IS configuration.

{% endif %}