{% extends "base.html" %} {% from "_macros.html" import usage_bar, legend %} {% block title %}{{ s.subnet_id }}{% endblock %} {% block content %}

← Discovery

{{ s.subnet_id }} {{ s.name }}

{{ s.cidr }} · {{ s.az }} · VPC {{ s.vpc_id }}
{{ s.size }} addresses: {{ s.used }} used, {{ s.idle }} on idle ENIs, {{ s.reserved }} reserved by AWS, {{ s.free }} free ({{ s.free_pct | pct }} of usable) {% if s.aws_available is not none and s.aws_available != s.free %}
AWS reports {{ s.aws_available }} available (differences usually come from CIDR reservations or prefix delegations not visible on ENIs).
{% endif %}
{{ usage_bar(s) }}

Address grid {% if grid.pages > 1 %}({{ grid.start }} – {{ grid.end }}, page {{ grid.page + 1 }} / {{ grid.pages }}){% endif %}

{{ legend() }}
{% for c in grid.cells %} {% if c.eni %} {% else %} {% endif %} {% endfor %}
{% if grid.pages > 1 %}

{% if grid.page > 0 %}← previous{% endif %} {% if grid.page + 1 < grid.pages %}next →{% endif %}

{% endif %}

Network interfaces ({{ enis | length }})

{% for e in enis %} {% else %} {% endfor %}
ENIOwnerRefStatusIPsDescription
{{ e.eni_id }} {{ owner_labels.get(e.owner_type, e.owner_type) }} {{ e.owner_names | join(', ') if e.owner_names | length > 1 else (e.owner_ref or '') }} {{ e.status }} {{ e.ip_count }} {{ e.description }}
No ENIs in this subnet
{% endblock %}