diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index fe184939..c345c0e8 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -1,6 +1,6 @@ # UX/UI: протокол внешней приёмки 12.5 -Актуальное продолжение 2026-10-10: завершён12.5.107 — VXLAN bridge/FDB, потеря связности при отключении собственного bridge-порта и восстановление. Steady/recovery Ping10/10 в обе стороны, FDB MAC→VTEP совпадает; cleanup9 коллекций×2 и собственных динамических таблиц passed. Backend ux-patch102/frontend ux-a11y101 прежние. Следующий108 — IPv6 внутри собственного VXLAN по IPv4 transport; реальные Portal/Telegram ожидают настройки и отдельного разрешения на сообщение. Этап12.5 открыт, матрица docs/ux-ui-remaining-acceptance.md. +Актуальное продолжение 2026-10-10: завершены12.5.107–108 — VXLAN bridge/FDB и IPv6 ULA inner по IPv4 outer, отключение/восстановление собственного bridge-порта. Steady/recovery Ping10/10 в обе стороны; initial IPv6 loss сохранён, бесшовность не заявлена. Cleanup13 коллекций×2, настройкиIPv6 и own dynamic tables passed. Runtime ux-patch102/ux-a11y101 прежний. Следующий109 — IPv6 inner GRE/WireGuard; Portal/Telegram ожидают настройки и отдельного разрешения на сообщение.12.5 открыт. IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md). @@ -1040,3 +1040,11 @@ Initial Ping3/3 и steady Ping10/10 в обе стороны; сохранены Перед удалением сверены exact IDs, comment/name и interface/bridge/address/remote-ip всех собственных объектов. После удаления обеих сторон baseline projection9 коллекций×2 совпала, own bridge hosts/VXLAN FDB отсутствуют. Пароли не менялись, оба CHR доступны. Исходники продукта, DB, Docker runtime и UI не менялись; build/общая регрессия не повторялись. App API остаётся read-only; bridge/FDB/IP не входят в экспорт fragment. Client OS, IPv6 outer, scale, throughput и hardware offload ещё не приняты. Следующий108 — отдельный собственный IPv6 inner сценарий. Квота после проверки: использовано4% пятичасового и62% недельного. Референс семантики FDB: [официальная документация MikroTik VXLAN](https://help.mikrotik.com/docs/spaces/ROS/pages/100007937/VXLAN). Доказательством данного сценария служат независимые native таблицы и Ping, а не только статус каталога. + +## 12.5.108 — VXLAN: IPv6 внутри собственного моста по IPv4-транспорту (2026-10-10) + +[Native отчёт](ux-ui/acceptance/vxlan-ipv6-inner-2026-10-10.json). Read-only preflight подтвердил IPv6 уже включён на обоих CHR; глобальные настройки не менялись. Собственная пара VXLAN VNI160108/UDP51908/MTU1400 с отдельными мостами и MAC, только IPv6 ULA fd00:108:1::1/64↔fd00:108:1::2/64 на мостах, advertise=no. IPv4 outer VTEP — исходные публичные адреса; IPv6 WAN/outer не тестировался. Никаких новых адресов/bridge-port на ether1, ND/firewall/default routes не менялись. + +Initial IPv6 Ping дал0/3 и1/3; packet rows сохранены, причина потерь не установлена. После3s паузы steady Ping10/10 в обе стороны. Native адреса valid/advertise=false, bridge host и VXLAN FDB изучили MAC противоположного моста с правильным remote VTEP. Каталог приложения показывает правильные интерфейсы/VNI/port/learning/remoteVteps без failures. После отключения собственного bridge-порта CHR1 Ping0/3 в обе стороны, интерфейсы остаются UP; после включения и2s паузы Ping10/10 и FDB подтверждены. Initial loss не скрыт повтором и не заменён утверждением о zero-loss startup/SLA. + +Exact-ID/marker cleanup вернул baseline projection13 коллекций×2, собственные bridge hosts/FDB отсутствуют; disable-ipv6/forward/accept-router-advertisements совпали с исходными. Пароли прежние, оба устройства доступны. Исходники/DB/runtime не менялись, build/общая UI регрессия не повторялись. Результат подтверждает native IPv6 inner в данной паре; не добавляет IPv6 IP/bridge/FDB в fragment экспорт, не доказывает SLAAC, клиентские ОС, масштаб, IPv6 outer или максимальную скорость. Следующий109 — GRE/WireGuard IPv6 inner по существующему IPv4 outer. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 725dbbab..aee036d0 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,12 +1,12 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-10: завершён12.5.107 — VXLAN bridge/FDB, потеря связности при отключении собственного bridge-порта и восстановление. Steady/recovery Ping10/10 в обе стороны, FDB MAC→VTEP совпадает; cleanup9 коллекций×2 и собственных динамических таблиц passed. Backend ux-patch102/frontend ux-a11y101 прежние. Следующий108 — IPv6 внутри собственного VXLAN по IPv4 transport; реальные Portal/Telegram ожидают настройки и отдельного разрешения на сообщение. Этап12.5 открыт, матрица docs/ux-ui-remaining-acceptance.md. +Актуальное продолжение 2026-10-10: завершены12.5.107–108 — VXLAN bridge/FDB и IPv6 ULA inner по IPv4 outer, отключение/восстановление собственного bridge-порта. Steady/recovery Ping10/10 в обе стороны; initial IPv6 loss сохранён, бесшовность не заявлена. Cleanup13 коллекций×2, настройкиIPv6 и own dynamic tables passed. Runtime ux-patch102/ux-a11y101 прежний. Следующий109 — IPv6 inner GRE/WireGuard; Portal/Telegram ожидают настройки и отдельного разрешения на сообщение.12.5 открыт. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-10. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. ## Актуальная точка продолжения — 2026-10-10 -Актуальное продолжение 2026-10-10: завершён12.5.107 — VXLAN bridge/FDB, потеря связности при отключении собственного bridge-порта и восстановление. Steady/recovery Ping10/10 в обе стороны, FDB MAC→VTEP совпадает; cleanup9 коллекций×2 и собственных динамических таблиц passed. Backend ux-patch102/frontend ux-a11y101 прежние. Следующий108 — IPv6 внутри собственного VXLAN по IPv4 transport; реальные Portal/Telegram ожидают настройки и отдельного разрешения на сообщение. Этап12.5 открыт, матрица docs/ux-ui-remaining-acceptance.md. +Актуальное продолжение 2026-10-10: завершены12.5.107–108 — VXLAN bridge/FDB и IPv6 ULA inner по IPv4 outer, отключение/восстановление собственного bridge-порта. Steady/recovery Ping10/10 в обе стороны; initial IPv6 loss сохранён, бесшовность не заявлена. Cleanup13 коллекций×2, настройкиIPv6 и own dynamic tables passed. Runtime ux-patch102/ux-a11y101 прежний. Следующий109 — IPv6 inner GRE/WireGuard; Portal/Telegram ожидают настройки и отдельного разрешения на сообщение.12.5 открыт. Этапы0–11 завершены в локальных границах журнала. История выполненных внешних блоков и доказательства сохранены в [журнале](ux-ui-stage-12.md) и [протоколе](ux-ui-external-acceptance.md). Реальная Telegram доставка, Portal SSO, multi-instance и оставшиеся профильные сетевые ограничения открыты. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index 9168efcd..b43fe205 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-10: завершён12.5.107 — VXLAN bridge/FDB, потеря связности при отключении собственного bridge-порта и восстановление. Steady/recovery Ping10/10 в обе стороны, FDB MAC→VTEP совпадает; cleanup9 коллекций×2 и собственных динамических таблиц passed. Backend ux-patch102/frontend ux-a11y101 прежние. Следующий108 — IPv6 внутри собственного VXLAN по IPv4 transport; реальные Portal/Telegram ожидают настройки и отдельного разрешения на сообщение. Этап12.5 открыт, матрица docs/ux-ui-remaining-acceptance.md. +Актуальное продолжение 2026-10-10: завершены12.5.107–108 — VXLAN bridge/FDB и IPv6 ULA inner по IPv4 outer, отключение/восстановление собственного bridge-порта. Steady/recovery Ping10/10 в обе стороны; initial IPv6 loss сохранён, бесшовность не заявлена. Cleanup13 коллекций×2, настройкиIPv6 и own dynamic tables passed. Runtime ux-patch102/ux-a11y101 прежний. Следующий109 — IPv6 inner GRE/WireGuard; Portal/Telegram ожидают настройки и отдельного разрешения на сообщение.12.5 открыт. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -36,7 +36,15 @@ | 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 | | 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 | | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | -| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–107 и ограничения ниже. Runtime backend ux-patch102/frontend ux-a11y101. | +| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–108 и ограничения ниже. Runtime backend ux-patch102/frontend ux-a11y101. | + +## 12.5.108 — VXLAN: IPv6 внутри собственного моста по IPv4-транспорту (2026-10-10) + +[Native отчёт](ux-ui/acceptance/vxlan-ipv6-inner-2026-10-10.json). Read-only preflight подтвердил IPv6 уже включён на обоих CHR; глобальные настройки не менялись. Собственная пара VXLAN VNI160108/UDP51908/MTU1400 с отдельными мостами и MAC, только IPv6 ULA fd00:108:1::1/64↔fd00:108:1::2/64 на мостах, advertise=no. IPv4 outer VTEP — исходные публичные адреса; IPv6 WAN/outer не тестировался. Никаких новых адресов/bridge-port на ether1, ND/firewall/default routes не менялись. + +Initial IPv6 Ping дал0/3 и1/3; packet rows сохранены, причина потерь не установлена. После3s паузы steady Ping10/10 в обе стороны. Native адреса valid/advertise=false, bridge host и VXLAN FDB изучили MAC противоположного моста с правильным remote VTEP. Каталог приложения показывает правильные интерфейсы/VNI/port/learning/remoteVteps без failures. После отключения собственного bridge-порта CHR1 Ping0/3 в обе стороны, интерфейсы остаются UP; после включения и2s паузы Ping10/10 и FDB подтверждены. Initial loss не скрыт повтором и не заменён утверждением о zero-loss startup/SLA. + +Exact-ID/marker cleanup вернул baseline projection13 коллекций×2, собственные bridge hosts/FDB отсутствуют; disable-ipv6/forward/accept-router-advertisements совпали с исходными. Пароли прежние, оба устройства доступны. Исходники/DB/runtime не менялись, build/общая UI регрессия не повторялись. Результат подтверждает native IPv6 inner в данной паре; не добавляет IPv6 IP/bridge/FDB в fragment экспорт, не доказывает SLAAC, клиентские ОС, масштаб, IPv6 outer или максимальную скорость. Следующий109 — GRE/WireGuard IPv6 inner по существующему IPv4 outer. ## 12.5.107 — VXLAN: мост, обучение MAC и восстановление bridge-порта (2026-10-10) diff --git a/docs/ux-ui-remaining-acceptance.md b/docs/ux-ui-remaining-acceptance.md index a58414cf..a317eb5c 100644 --- a/docs/ux-ui-remaining-acceptance.md +++ b/docs/ux-ui-remaining-acceptance.md @@ -1,8 +1,8 @@ # Оставшаяся внешняя приёмка — 2026-10-10 -Это актуальная матрица после 12.5.107. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. +Это актуальная матрица после 12.5.108. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. -Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-patch102`, frontend `ux-a11y101`; production lab использует AUTH_REQUIRED=false. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты107 удалены, исходные9 коллекций×2 и отсутствие собственных bridge hosts/VXLAN FDB проверены; пароли не менялись. +Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-patch102`, frontend `ux-a11y101`; production lab использует AUTH_REQUIRED=false. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты108 удалены, исходные13 коллекций×2, ключевые настройкиIPv6 и отсутствие собственных bridge hosts/VXLAN FDB проверены; пароли не менялись. | Раздел | Подтверждено | Осталось / условие завершения | | --- | --- | --- | @@ -11,7 +11,7 @@ | Outbox | Production PG claim/dedupe/settlement/retry/JWT/browser checkpoint/a11y35–49 | Настоящий Telegram API/чат, физический timeout после возможной отправки, несколько sender процессов. Нужны тестовый бот/чат и прямое разрешение на конкретное сообщение; подменённый ответ не доказывает доставку | | GRE | Native lifecycle, metadata, live формы/меню/URL/Ping53–57; GRE используется в OSPF/BGP/IPsec последующих блоков | IPv6, независимые WAN, масштаб и длительное восстановление; принятие GRE не означает приёмку всех сценариев автоматического расписания | | WireGuard | Native handshake/data plane58, deletion60, live create/peer/disable/enable/delete62, mobile64, export/import67–74 | Клиентские ОС и произвольные конфигурации, IPv6/scale, физический lost ACK и устойчивое восстановление; `.conf` с placeholders — шаблон, не принятый клиентский tunnel | -| VXLAN | Собственная пара/private Ping/catalog/URL/export75–76; bridge/FDB/port loss/recovery107 | API приложения read-only: create/delete проверены native. IPv6, масштаб/производительность, профильные mutation RBAC/concurrency отдельно не приняты | +| VXLAN | Собственная пара/private Ping/catalog/URL/export75–76; bridge/FDB/port loss/recovery107; IPv6 ULA inner по IPv4 outer108 | API приложения read-only: create/delete проверены native. IPv6 outer, масштаб/производительность, профильные mutation RBAC/concurrency отдельно не приняты | | IPsec | PSK и сертификатное шифрование77–82, active peer/online/mode-config, scoped NAT/group, partial/unknown/applied receipts, restore conflicts, JWT | Клиентские Windows/macOS/iOS/Android, сложные/escaped DN, полная PKI и policy/profile/proposal restore, физический disconnect, durable retry/multi-instance, IPv6/maximum throughput | | OSPF/BFD | Real Full/own routes84–85, раздельные наблюдения BFD86, effective disabled/optimizer cost/partial/RBAC87, alternate path90 и CIDR91 | Sustained BFD-only gate не принят: в86 сосед мог вновь статьFull при доступныхHello. В90 переходный Ping18/40 с55% loss: бесшовность не принята. REST timing — наблюдаемая граница, не SLA; IPv6/scale/independent WAN открыты | | BGP | Established83, exact /32 exchange/API/UI/administrative withdrawal92, BFD primary GRE loss/alternate/recovery93 | Hold timer/TCP loss безBFD принят104; packet loss в переходе, разные внешние peers/WAN policy, IPv6/scale. Два логических пути используют тот же public WAN; physical redundancy не принята | @@ -25,7 +25,7 @@ ## Следующая последовательность 1. **12.5.95 завершён:** [source/context/compiled audit](ux-ui/acceptance/deployment-source-audit-2026-10-10.json), production source drift не выявлен; нормализация и исключения явно указаны. -2. **12.5.96 timezone завершён:** [6 live UI cases](ux-ui/acceptance/browser-speed-timezone-2026-10-10.json). 97 HTTP receipt disconnect принят: [протокол](ux-ui/acceptance/speed-disconnect-2026-10-10.json). 98 сообщение неизвестного native результата исправлено/развёрнуто. 99 main/context завершён с точной записью одного failure/delta;100 transport и101 accessibility исправлены/развёрнуты.102 malformed PATCH исправлен/принят.103 packet rows/public/GRE приняты в границах коротких samples; initial loss/root cause остаётся открытым.104 hold/TCP loss/recovery принят.105 source/runtime/evidence сверка passed.106 read-only readiness: auth disabled/Portal localhost/bot and chat unconfigured.107 — native bridge/FDB/loss/recovery принят.108 — IPv6 inner VXLAN по IPv4 outer. Реальные интеграции требуют тестовых доступов и отдельного разрешения на сообщение. +2. **12.5.96 timezone завершён:** [6 live UI cases](ux-ui/acceptance/browser-speed-timezone-2026-10-10.json). 97 HTTP receipt disconnect принят: [протокол](ux-ui/acceptance/speed-disconnect-2026-10-10.json). 98 сообщение неизвестного native результата исправлено/развёрнуто. 99 main/context завершён с точной записью одного failure/delta;100 transport и101 accessibility исправлены/развёрнуты.102 malformed PATCH исправлен/принят.103 packet rows/public/GRE приняты в границах коротких samples; initial loss/root cause остаётся открытым.104 hold/TCP loss/recovery принят.105 source/runtime/evidence сверка passed.106 read-only readiness: auth disabled/Portal localhost/bot and chat unconfigured.107 — native bridge/FDB/loss/recovery принят.108 — IPv6 inner VXLAN принят, initial0/3 и1/3 остаются в протоколе;109 — GRE/WireGuard IPv6 inner. Реальные интеграции требуют тестовых доступов и отдельного разрешения на сообщение. 3. **Заключительный профильный контроль:** после последнего исправления собрать только затронутую часть, проверить её live и обновить матрицу. Общую регрессию выполнить один раз на согласованном runtime. 4. **Внешние зависимости:** Telegram/Portal/client OS/multi-WAN/scale проходят отдельную приёмку при наличии нужных аккаунтов, устройств и разрешений. Лабораторный результат двух CHR не закрывает их автоматически. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index e3129681..ddbb5084 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-10: завершён12.5.107 — VXLAN bridge/FDB, потеря связности при отключении собственного bridge-порта и восстановление. Steady/recovery Ping10/10 в обе стороны, FDB MAC→VTEP совпадает; cleanup9 коллекций×2 и собственных динамических таблиц passed. Backend ux-patch102/frontend ux-a11y101 прежние. Следующий108 — IPv6 внутри собственного VXLAN по IPv4 transport; реальные Portal/Telegram ожидают настройки и отдельного разрешения на сообщение. Этап12.5 открыт, матрица docs/ux-ui-remaining-acceptance.md. +Актуальное продолжение 2026-10-10: завершены12.5.107–108 — VXLAN bridge/FDB и IPv6 ULA inner по IPv4 outer, отключение/восстановление собственного bridge-порта. Steady/recovery Ping10/10 в обе стороны; initial IPv6 loss сохранён, бесшовность не заявлена. Cleanup13 коллекций×2, настройкиIPv6 и own dynamic tables passed. Runtime ux-patch102/ux-a11y101 прежний. Следующий109 — IPv6 inner GRE/WireGuard; Portal/Telegram ожидают настройки и отдельного разрешения на сообщение.12.5 открыт. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -2345,3 +2345,11 @@ Initial Ping3/3 и steady Ping10/10 в обе стороны; сохранены Перед удалением сверены exact IDs, comment/name и interface/bridge/address/remote-ip всех собственных объектов. После удаления обеих сторон baseline projection9 коллекций×2 совпала, own bridge hosts/VXLAN FDB отсутствуют. Пароли не менялись, оба CHR доступны. Исходники продукта, DB, Docker runtime и UI не менялись; build/общая регрессия не повторялись. App API остаётся read-only; bridge/FDB/IP не входят в экспорт fragment. Client OS, IPv6 outer, scale, throughput и hardware offload ещё не приняты. Следующий108 — отдельный собственный IPv6 inner сценарий. Квота после проверки: использовано4% пятичасового и62% недельного. Референс семантики FDB: [официальная документация MikroTik VXLAN](https://help.mikrotik.com/docs/spaces/ROS/pages/100007937/VXLAN). Доказательством данного сценария служат независимые native таблицы и Ping, а не только статус каталога. + +## 12.5.108 — VXLAN: IPv6 внутри собственного моста по IPv4-транспорту (2026-10-10) + +[Native отчёт](ux-ui/acceptance/vxlan-ipv6-inner-2026-10-10.json). Read-only preflight подтвердил IPv6 уже включён на обоих CHR; глобальные настройки не менялись. Собственная пара VXLAN VNI160108/UDP51908/MTU1400 с отдельными мостами и MAC, только IPv6 ULA fd00:108:1::1/64↔fd00:108:1::2/64 на мостах, advertise=no. IPv4 outer VTEP — исходные публичные адреса; IPv6 WAN/outer не тестировался. Никаких новых адресов/bridge-port на ether1, ND/firewall/default routes не менялись. + +Initial IPv6 Ping дал0/3 и1/3; packet rows сохранены, причина потерь не установлена. После3s паузы steady Ping10/10 в обе стороны. Native адреса valid/advertise=false, bridge host и VXLAN FDB изучили MAC противоположного моста с правильным remote VTEP. Каталог приложения показывает правильные интерфейсы/VNI/port/learning/remoteVteps без failures. После отключения собственного bridge-порта CHR1 Ping0/3 в обе стороны, интерфейсы остаются UP; после включения и2s паузы Ping10/10 и FDB подтверждены. Initial loss не скрыт повтором и не заменён утверждением о zero-loss startup/SLA. + +Exact-ID/marker cleanup вернул baseline projection13 коллекций×2, собственные bridge hosts/FDB отсутствуют; disable-ipv6/forward/accept-router-advertisements совпали с исходными. Пароли прежние, оба устройства доступны. Исходники/DB/runtime не менялись, build/общая UI регрессия не повторялись. Результат подтверждает native IPv6 inner в данной паре; не добавляет IPv6 IP/bridge/FDB в fragment экспорт, не доказывает SLAAC, клиентские ОС, масштаб, IPv6 outer или максимальную скорость. Следующий109 — GRE/WireGuard IPv6 inner по существующему IPv4 outer. diff --git a/docs/ux-ui/acceptance/vxlan-ipv6-inner-2026-10-10.json b/docs/ux-ui/acceptance/vxlan-ipv6-inner-2026-10-10.json new file mode 100644 index 00000000..9a77b6a6 --- /dev/null +++ b/docs/ux-ui/acceptance/vxlan-ipv6-inner-2026-10-10.json @@ -0,0 +1,1410 @@ +{ + "date": "2026-10-10", + "block": "12.5.108", + "name": "mm-vx108-1791597648413", + "vni": 160108, + "port": 51908, + "creation": "Native REST; application VXLAN API read-only", + "runtime": { + "backend": "ux-patch102", + "frontend": "ux-a11y101" + }, + "devices": [ + { + "serverId": 1, + "host": "194.226.121.150", + "version": "7.24.5 (stable)", + "reachable": true + }, + { + "serverId": 2, + "host": "104.165.244.7", + "version": "7.24.5 (stable)", + "reachable": true + } + ], + "cleanup": [ + { + "serverId": 1, + "/interface/vxlan": true, + "/interface/vxlan/vteps": true, + "/interface/bridge": true, + "/interface/bridge/port": true, + "/ipv6/address": true, + "/ip/route": true, + "/ipv6/route": true, + "/ipv6/firewall/filter": true, + "/ipv6/firewall/raw": true, + "/ipv6/nd": true, + "/ip/firewall/filter": true, + "/ip/firewall/nat": true, + "/ip/firewall/mangle": true, + "ipv6SettingsUnchanged": true, + "ownBridgeHostsGone": true, + "ownVxlanFdbGone": true + }, + { + "serverId": 2, + "/interface/vxlan": true, + "/interface/vxlan/vteps": true, + "/interface/bridge": true, + "/interface/bridge/port": true, + "/ipv6/address": true, + "/ip/route": true, + "/ipv6/route": true, + "/ipv6/firewall/filter": true, + "/ipv6/firewall/raw": true, + "/ipv6/nd": true, + "/ip/firewall/filter": true, + "/ip/firewall/nat": true, + "/ip/firewall/mangle": true, + "ipv6SettingsUnchanged": true, + "ownBridgeHostsGone": true, + "ownVxlanFdbGone": true + } + ], + "ipv6Settings": [ + { + "serverId": 1, + "disableIpv6": "false", + "forward": "true", + "acceptRA": "yes-if-forwarding-disabled" + }, + { + "serverId": 2, + "disableIpv6": "false", + "forward": "true", + "acceptRA": "yes-if-forwarding-disabled" + } + ], + "limits": [ + "IPv6 ULA inner payload on own bridge; VXLAN outer transport remains IPv4 public WAN", + "No IPv6 outer/global IPv6 WAN, SLAAC/client OS, scale or throughput claim", + "Bridge/FDB/IP settings are not included in application VXLAN fragment export" + ], + "beforeTraffic": [ + { + "hosts": [ + { + ".id": "*2", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "local": "true", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413-br" + }, + { + ".id": "*4", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "true", + "mac-address": "32:73:BF:C6:EA:22", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*6", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "FA:B9:F7:B8:11:72", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*5", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "FA:B9:F7:B8:11:72", + "on-interface": "mm-vx108-1791597648413", + "remote-ip": "104.165.244.7", + "vid": "1" + } + ], + "fdb": [ + { + ".id": "*2", + "interface": "mm-vx108-1791597648413", + "mac-address": "FA:B9:F7:B8:11:72", + "remote-ip": "104.165.244.7" + } + ] + }, + { + "hosts": [ + { + ".id": "*6", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*2", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "local": "true", + "mac-address": "02:00:00:01:08:02", + "on-interface": "mm-vx108-1791597648413-br" + }, + { + ".id": "*4", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "true", + "mac-address": "FA:B9:F7:B8:11:72", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*5", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413", + "remote-ip": "194.226.121.150", + "vid": "1" + } + ], + "fdb": [ + { + ".id": "*3", + "interface": "mm-vx108-1791597648413", + "mac-address": "02:00:00:01:08:01", + "remote-ip": "194.226.121.150" + } + ] + } + ], + "initial": [ + { + "serverId": 1, + "sent": 3, + "received": 0, + "rows": [ + { + "packet-loss": "100", + "received": "0", + "sent": "1", + "seq": "0", + "status": "could not make socket" + }, + { + "packet-loss": "100", + "received": "0", + "sent": "2", + "seq": "1", + "status": "could not make socket" + }, + { + "packet-loss": "100", + "received": "0", + "sent": "3", + "seq": "2", + "status": "could not make socket" + } + ] + }, + { + "serverId": 2, + "sent": 3, + "received": 1, + "rows": [ + { + "packet-loss": "100", + "received": "0", + "sent": "1", + "seq": "0", + "status": "could not make socket" + }, + { + "packet-loss": "100", + "received": "0", + "sent": "2", + "seq": "1", + "status": "could not make socket" + }, + { + "avg-rtt": "109ms352us", + "host": "fd00:108:1::1", + "max-rtt": "109ms352us", + "min-rtt": "109ms352us", + "packet-loss": "66", + "received": "1", + "sent": "3", + "seq": "2", + "size": "56", + "status": "echo reply", + "time": "109ms352us", + "ttl": "64" + } + ] + } + ], + "steady": [ + { + "serverId": 1, + "sent": 10, + "received": 10, + "rows": [ + { + "avg-rtt": "54ms802us", + "host": "fd00:108:1::2", + "max-rtt": "54ms802us", + "min-rtt": "54ms802us", + "packet-loss": "0", + "received": "1", + "sent": "1", + "seq": "0", + "size": "56", + "status": "echo reply", + "time": "54ms802us", + "ttl": "64" + }, + { + "avg-rtt": "54ms735us", + "host": "fd00:108:1::2", + "max-rtt": "54ms802us", + "min-rtt": "54ms669us", + "packet-loss": "0", + "received": "2", + "sent": "2", + "seq": "1", + "size": "56", + "status": "echo reply", + "time": "54ms669us", + "ttl": "64" + }, + { + "avg-rtt": "54ms690us", + "host": "fd00:108:1::2", + "max-rtt": "54ms802us", + "min-rtt": "54ms601us", + "packet-loss": "0", + "received": "3", + "sent": "3", + "seq": "2", + "size": "56", + "status": "echo reply", + "time": "54ms601us", + "ttl": "64" + }, + { + "avg-rtt": "54ms721us", + "host": "fd00:108:1::2", + "max-rtt": "54ms814us", + "min-rtt": "54ms601us", + "packet-loss": "0", + "received": "4", + "sent": "4", + "seq": "3", + "size": "56", + "status": "echo reply", + "time": "54ms814us", + "ttl": "64" + }, + { + "avg-rtt": "54ms726us", + "host": "fd00:108:1::2", + "max-rtt": "54ms814us", + "min-rtt": "54ms601us", + "packet-loss": "0", + "received": "5", + "sent": "5", + "seq": "4", + "size": "56", + "status": "echo reply", + "time": "54ms748us", + "ttl": "64" + }, + { + "avg-rtt": "54ms690us", + "host": "fd00:108:1::2", + "max-rtt": "54ms814us", + "min-rtt": "54ms507us", + "packet-loss": "0", + "received": "6", + "sent": "6", + "seq": "5", + "size": "56", + "status": "echo reply", + "time": "54ms507us", + "ttl": "64" + }, + { + "avg-rtt": "54ms658us", + "host": "fd00:108:1::2", + "max-rtt": "54ms814us", + "min-rtt": "54ms468us", + "packet-loss": "0", + "received": "7", + "sent": "7", + "seq": "6", + "size": "56", + "status": "echo reply", + "time": "54ms468us", + "ttl": "64" + }, + { + "avg-rtt": "54ms645us", + "host": "fd00:108:1::2", + "max-rtt": "54ms814us", + "min-rtt": "54ms468us", + "packet-loss": "0", + "received": "8", + "sent": "8", + "seq": "7", + "size": "56", + "status": "echo reply", + "time": "54ms558us", + "ttl": "64" + }, + { + "avg-rtt": "54ms651us", + "host": "fd00:108:1::2", + "max-rtt": "54ms814us", + "min-rtt": "54ms468us", + "packet-loss": "0", + "received": "9", + "sent": "9", + "seq": "8", + "size": "56", + "status": "echo reply", + "time": "54ms696us", + "ttl": "64" + }, + { + "avg-rtt": "54ms645us", + "host": "fd00:108:1::2", + "max-rtt": "54ms814us", + "min-rtt": "54ms468us", + "packet-loss": "0", + "received": "10", + "sent": "10", + "seq": "9", + "size": "56", + "status": "echo reply", + "time": "54ms594us", + "ttl": "64" + } + ] + }, + { + "serverId": 2, + "sent": 10, + "received": 10, + "rows": [ + { + "avg-rtt": "54ms585us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms585us", + "packet-loss": "0", + "received": "1", + "sent": "1", + "seq": "0", + "size": "56", + "status": "echo reply", + "time": "54ms585us", + "ttl": "64" + }, + { + "avg-rtt": "54ms521us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms458us", + "packet-loss": "0", + "received": "2", + "sent": "2", + "seq": "1", + "size": "56", + "status": "echo reply", + "time": "54ms458us", + "ttl": "64" + }, + { + "avg-rtt": "54ms467us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "3", + "sent": "3", + "seq": "2", + "size": "56", + "status": "echo reply", + "time": "54ms359us", + "ttl": "64" + }, + { + "avg-rtt": "54ms493us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "4", + "sent": "4", + "seq": "3", + "size": "56", + "status": "echo reply", + "time": "54ms573us", + "ttl": "64" + }, + { + "avg-rtt": "54ms496us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "5", + "sent": "5", + "seq": "4", + "size": "56", + "status": "echo reply", + "time": "54ms505us", + "ttl": "64" + }, + { + "avg-rtt": "54ms502us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "6", + "sent": "6", + "seq": "5", + "size": "56", + "status": "echo reply", + "time": "54ms532us", + "ttl": "64" + }, + { + "avg-rtt": "54ms504us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "7", + "sent": "7", + "seq": "6", + "size": "56", + "status": "echo reply", + "time": "54ms519us", + "ttl": "64" + }, + { + "avg-rtt": "54ms496us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "8", + "sent": "8", + "seq": "7", + "size": "56", + "status": "echo reply", + "time": "54ms442us", + "ttl": "64" + }, + { + "avg-rtt": "54ms493us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "9", + "sent": "9", + "seq": "8", + "size": "56", + "status": "echo reply", + "time": "54ms466us", + "ttl": "64" + }, + { + "avg-rtt": "54ms482us", + "host": "fd00:108:1::1", + "max-rtt": "54ms585us", + "min-rtt": "54ms359us", + "packet-loss": "0", + "received": "10", + "sent": "10", + "seq": "9", + "size": "56", + "status": "echo reply", + "time": "54ms385us", + "ttl": "64" + } + ] + } + ], + "ownIpv6Addresses": [ + [ + { + ".id": "*84", + "actual-interface": "mm-vx108-1791597648413-br", + "address": "fd00:108:1::1/64", + "advertise": "false", + "auto-link-local": "true", + "comment": "mm-vx108-1791597648413", + "deprecated": "false", + "disabled": "false", + "dynamic": "false", + "eui-64": "false", + "from-pool": "", + "global": "true", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "no-dad": "false", + "slave": "false", + "vrf": "main" + } + ], + [ + { + ".id": "*67", + "actual-interface": "mm-vx108-1791597648413-br", + "address": "fd00:108:1::2/64", + "advertise": "false", + "auto-link-local": "true", + "comment": "mm-vx108-1791597648413", + "deprecated": "false", + "disabled": "false", + "dynamic": "false", + "eui-64": "false", + "from-pool": "", + "global": "true", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "no-dad": "false", + "slave": "false", + "vrf": "main" + } + ] + ], + "learned": [ + { + "hosts": [ + { + ".id": "*2", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "local": "true", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413-br" + }, + { + ".id": "*8", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:02", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*4", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "true", + "mac-address": "32:73:BF:C6:EA:22", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*6", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "FA:B9:F7:B8:11:72", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*7", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:02", + "on-interface": "mm-vx108-1791597648413", + "remote-ip": "104.165.244.7", + "vid": "1" + }, + { + ".id": "*5", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "FA:B9:F7:B8:11:72", + "on-interface": "mm-vx108-1791597648413", + "remote-ip": "104.165.244.7", + "vid": "1" + } + ], + "fdb": [ + { + ".id": "*2", + "interface": "mm-vx108-1791597648413", + "mac-address": "FA:B9:F7:B8:11:72", + "remote-ip": "104.165.244.7" + }, + { + ".id": "*3", + "interface": "mm-vx108-1791597648413", + "mac-address": "02:00:00:01:08:02", + "remote-ip": "104.165.244.7" + } + ] + }, + { + "hosts": [ + { + ".id": "*6", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*2", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "local": "true", + "mac-address": "02:00:00:01:08:02", + "on-interface": "mm-vx108-1791597648413-br" + }, + { + ".id": "*4", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "true", + "mac-address": "FA:B9:F7:B8:11:72", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*5", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413", + "remote-ip": "194.226.121.150", + "vid": "1" + } + ], + "fdb": [ + { + ".id": "*3", + "interface": "mm-vx108-1791597648413", + "mac-address": "02:00:00:01:08:01", + "remote-ip": "194.226.121.150" + } + ] + } + ], + "catalogWithBridge": [ + { + "id": "1-*74", + "rosId": "*74", + "name": "mm-vx108-1791597648413", + "vni": 160108, + "port": 0, + "dstPort": 51908, + "serverId": "1", + "vtepIp": "194.226.121.150", + "remoteVteps": [ + "104.165.244.7" + ], + "l2mtu": 65535, + "mtu": 1400, + "arpProxy": false, + "arpMode": "enabled", + "macLearning": true, + "comment": "mm-vx108-1791597648413", + "enabled": true, + "status": "up" + }, + { + "id": "2-*69", + "rosId": "*69", + "name": "mm-vx108-1791597648413", + "vni": 160108, + "port": 0, + "dstPort": 51908, + "serverId": "2", + "vtepIp": "104.165.244.7", + "remoteVteps": [ + "194.226.121.150" + ], + "l2mtu": 65535, + "mtu": 1400, + "arpProxy": false, + "arpMode": "enabled", + "macLearning": true, + "comment": "mm-vx108-1791597648413", + "enabled": true, + "status": "up" + } + ], + "portDisabled": { + "nativeReceipt": true, + "bridgePort": { + ".id": "*0", + ".nextid": "*FFFFFFFF", + "auto-isolate": "false", + "bpdu-guard": "false", + "bridge": "mm-vx108-1791597648413-br", + "broadcast-flood": "true", + "comment": "mm-vx108-1791597648413", + "disabled": "true", + "dynamic": "false", + "edge": "auto", + "fast-leave": "false", + "frame-types": "admit-all", + "horizon": "none", + "inactive": "true", + "ingress-filtering": "true", + "interface": "mm-vx108-1791597648413", + "learn": "auto", + "managed": "false", + "multicast-router": "temporary-query", + "mvrp-applicant-state": "normal-participant", + "mvrp-registrar-state": "normal", + "point-to-point": "auto", + "priority": "0x80", + "pvid": "1", + "restricted-role": "false", + "restricted-tcn": "false", + "status": "disabled", + "tag-stacking": "false", + "trusted": "false", + "trusted-dhcpv6": "false", + "trusted-ra": "false", + "unknown-multicast-flood": "true", + "unknown-unicast-flood": "true" + }, + "pings": [ + { + "serverId": 1, + "sent": 3, + "received": 0, + "rows": [ + { + "host": "fd00:108:1::2", + "packet-loss": "100", + "received": "0", + "sent": "1", + "seq": "0", + "status": "timeout" + }, + { + "host": "fd00:108:1::2", + "packet-loss": "100", + "received": "0", + "sent": "2", + "seq": "1", + "status": "timeout" + }, + { + "host": "fd00:108:1::2", + "packet-loss": "100", + "received": "0", + "sent": "3", + "seq": "2", + "status": "timeout" + } + ] + }, + { + "serverId": 2, + "sent": 3, + "received": 0, + "rows": [ + { + "host": "fd00:108:1::1", + "packet-loss": "100", + "received": "0", + "sent": "1", + "seq": "0", + "status": "timeout" + }, + { + "host": "fd00:108:1::1", + "packet-loss": "100", + "received": "0", + "sent": "2", + "seq": "1", + "status": "timeout" + }, + { + "host": "fd00:108:1::1", + "packet-loss": "100", + "received": "0", + "sent": "3", + "seq": "2", + "status": "timeout" + } + ] + } + ] + }, + "catalogWhilePortDisabled": [ + { + "id": "1-*74", + "rosId": "*74", + "name": "mm-vx108-1791597648413", + "vni": 160108, + "port": 0, + "dstPort": 51908, + "serverId": "1", + "vtepIp": "194.226.121.150", + "remoteVteps": [ + "104.165.244.7" + ], + "l2mtu": 65535, + "mtu": 1400, + "arpProxy": false, + "arpMode": "enabled", + "macLearning": true, + "comment": "mm-vx108-1791597648413", + "enabled": true, + "status": "up" + }, + { + "id": "2-*69", + "rosId": "*69", + "name": "mm-vx108-1791597648413", + "vni": 160108, + "port": 0, + "dstPort": 51908, + "serverId": "2", + "vtepIp": "104.165.244.7", + "remoteVteps": [ + "194.226.121.150" + ], + "l2mtu": 65535, + "mtu": 1400, + "arpProxy": false, + "arpMode": "enabled", + "macLearning": true, + "comment": "mm-vx108-1791597648413", + "enabled": true, + "status": "up" + } + ], + "recovered": [ + { + "serverId": 1, + "sent": 10, + "received": 10, + "rows": [ + { + "avg-rtt": "54ms404us", + "host": "fd00:108:1::2", + "max-rtt": "54ms404us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "1", + "sent": "1", + "seq": "0", + "size": "56", + "status": "echo reply", + "time": "54ms404us", + "ttl": "64" + }, + { + "avg-rtt": "54ms409us", + "host": "fd00:108:1::2", + "max-rtt": "54ms414us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "2", + "sent": "2", + "seq": "1", + "size": "56", + "status": "echo reply", + "time": "54ms414us", + "ttl": "64" + }, + { + "avg-rtt": "54ms432us", + "host": "fd00:108:1::2", + "max-rtt": "54ms479us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "3", + "sent": "3", + "seq": "2", + "size": "56", + "status": "echo reply", + "time": "54ms479us", + "ttl": "64" + }, + { + "avg-rtt": "54ms542us", + "host": "fd00:108:1::2", + "max-rtt": "54ms874us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "4", + "sent": "4", + "seq": "3", + "size": "56", + "status": "echo reply", + "time": "54ms874us", + "ttl": "64" + }, + { + "avg-rtt": "54ms554us", + "host": "fd00:108:1::2", + "max-rtt": "54ms874us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "5", + "sent": "5", + "seq": "4", + "size": "56", + "status": "echo reply", + "time": "54ms603us", + "ttl": "64" + }, + { + "avg-rtt": "54ms536us", + "host": "fd00:108:1::2", + "max-rtt": "54ms874us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "6", + "sent": "6", + "seq": "5", + "size": "56", + "status": "echo reply", + "time": "54ms445us", + "ttl": "64" + }, + { + "avg-rtt": "54ms542us", + "host": "fd00:108:1::2", + "max-rtt": "54ms874us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "7", + "sent": "7", + "seq": "6", + "size": "56", + "status": "echo reply", + "time": "54ms581us", + "ttl": "64" + }, + { + "avg-rtt": "54ms529us", + "host": "fd00:108:1::2", + "max-rtt": "54ms874us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "8", + "sent": "8", + "seq": "7", + "size": "56", + "status": "echo reply", + "time": "54ms432us", + "ttl": "64" + }, + { + "avg-rtt": "54ms528us", + "host": "fd00:108:1::2", + "max-rtt": "54ms874us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "9", + "sent": "9", + "seq": "8", + "size": "56", + "status": "echo reply", + "time": "54ms520us", + "ttl": "64" + }, + { + "avg-rtt": "54ms576us", + "host": "fd00:108:1::2", + "max-rtt": "55ms10us", + "min-rtt": "54ms404us", + "packet-loss": "0", + "received": "10", + "sent": "10", + "seq": "9", + "size": "56", + "status": "echo reply", + "time": "55ms10us", + "ttl": "64" + } + ] + }, + { + "serverId": 2, + "sent": 10, + "received": 10, + "rows": [ + { + "avg-rtt": "54ms432us", + "host": "fd00:108:1::1", + "max-rtt": "54ms432us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "1", + "sent": "1", + "seq": "0", + "size": "56", + "status": "echo reply", + "time": "54ms432us", + "ttl": "64" + }, + { + "avg-rtt": "54ms508us", + "host": "fd00:108:1::1", + "max-rtt": "54ms584us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "2", + "sent": "2", + "seq": "1", + "size": "56", + "status": "echo reply", + "time": "54ms584us", + "ttl": "64" + }, + { + "avg-rtt": "54ms810us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "3", + "sent": "3", + "seq": "2", + "size": "56", + "status": "echo reply", + "time": "55ms416us", + "ttl": "64" + }, + { + "avg-rtt": "54ms746us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "4", + "sent": "4", + "seq": "3", + "size": "56", + "status": "echo reply", + "time": "54ms553us", + "ttl": "64" + }, + { + "avg-rtt": "54ms726us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "5", + "sent": "5", + "seq": "4", + "size": "56", + "status": "echo reply", + "time": "54ms647us", + "ttl": "64" + }, + { + "avg-rtt": "54ms710us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "6", + "sent": "6", + "seq": "5", + "size": "56", + "status": "echo reply", + "time": "54ms630us", + "ttl": "64" + }, + { + "avg-rtt": "54ms674us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "7", + "sent": "7", + "seq": "6", + "size": "56", + "status": "echo reply", + "time": "54ms461us", + "ttl": "64" + }, + { + "avg-rtt": "54ms656us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "8", + "sent": "8", + "seq": "7", + "size": "56", + "status": "echo reply", + "time": "54ms528us", + "ttl": "64" + }, + { + "avg-rtt": "54ms633us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "9", + "sent": "9", + "seq": "8", + "size": "56", + "status": "echo reply", + "time": "54ms452us", + "ttl": "64" + }, + { + "avg-rtt": "54ms614us", + "host": "fd00:108:1::1", + "max-rtt": "55ms416us", + "min-rtt": "54ms432us", + "packet-loss": "0", + "received": "10", + "sent": "10", + "seq": "9", + "size": "56", + "status": "echo reply", + "time": "54ms437us", + "ttl": "64" + } + ] + } + ], + "relearned": [ + { + "hosts": [ + { + ".id": "*2", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "local": "true", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413-br" + }, + { + ".id": "*A", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:02", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*9", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "true", + "mac-address": "32:73:BF:C6:EA:22", + "on-interface": "mm-vx108-1791597648413" + } + ], + "fdb": [ + { + ".id": "*2", + "interface": "mm-vx108-1791597648413", + "mac-address": "FA:B9:F7:B8:11:72", + "remote-ip": "104.165.244.7" + }, + { + ".id": "*3", + "interface": "mm-vx108-1791597648413", + "mac-address": "02:00:00:01:08:02", + "remote-ip": "104.165.244.7" + } + ] + }, + { + "hosts": [ + { + ".id": "*6", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*2", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413-br", + "invalid": "false", + "local": "true", + "mac-address": "02:00:00:01:08:02", + "on-interface": "mm-vx108-1791597648413-br" + }, + { + ".id": "*8", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "32:73:BF:C6:EA:22", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*4", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "true", + "mac-address": "FA:B9:F7:B8:11:72", + "on-interface": "mm-vx108-1791597648413" + }, + { + ".id": "*5", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "02:00:00:01:08:01", + "on-interface": "mm-vx108-1791597648413", + "remote-ip": "194.226.121.150", + "vid": "1" + }, + { + ".id": "*7", + "bridge": "mm-vx108-1791597648413-br", + "disabled": "false", + "dynamic": "true", + "external": "false", + "interface": "mm-vx108-1791597648413", + "invalid": "false", + "local": "false", + "mac-address": "32:73:BF:C6:EA:22", + "on-interface": "mm-vx108-1791597648413", + "remote-ip": "194.226.121.150", + "vid": "1" + } + ], + "fdb": [ + { + ".id": "*3", + "interface": "mm-vx108-1791597648413", + "mac-address": "02:00:00:01:08:01", + "remote-ip": "194.226.121.150" + }, + { + ".id": "*4", + "interface": "mm-vx108-1791597648413", + "mac-address": "32:73:BF:C6:EA:22", + "remote-ip": "194.226.121.150" + } + ] + } + ] +} \ No newline at end of file