The ML Platform Behind Uber's AI
Michelangelo AI: 우버의 엔드‑투‑엔드 머신러닝 플랫폼
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Текущий релиз — 0.2.1: готовые образы в Releases. Новое в 0.2.1: свой MAC у каждой коробки — eth0 читает заводской адрес из таблицы hwconfig во флеше (в 0.2.0 все прошитые роутеры делили один
02:E0:4C:81:96:C1— коллизии у соседей по сегменту); VLAN и Wi-Fi наследуют его же. Аппаратному NAT корректный MAC обязателен. Новое в 0.2.0: аппаратный NAT RTL8197F — включается галкой LuCI «Flow offloading: Hardware» (тестовый режим, по умолчанию — программный офлоад); честные замеры скорости — ниже. Новое в 0.1.2: установка без разборки и UART — кнопкой Reset и TFTP (docs/install-tftp.md), кнопка Reset в OpenWrt, светодиоды портов и Wi-Fi 2,4 ГГц.
Своя прошивка OpenWrt (ядро Linux 6.18) для роутера Ротек RX-23302 (Rotek RX-23302), который раздаёт Ростелеком. Заводская прошивка называет его ELECTRA-RX23302 — это одно и то же устройство. Своя — потому что такого порта нигде нет: SoC Realtek RTL8197F в официальном OpenWrt не поддерживается.
⚠️ Проверено только на RX-23302 с SoC RTL8197FH-VG (заводская прошивка
ELECTRA-RX23302 V1.24.137). Ревизия RX-23302R (по сообщениям — RTL8197FN) и другие модели Ротек не проверялись: прошивка может не загрузиться. Проверка до прошивки: лог загрузки по UART начинается сRealtek RTL8197F-VG boot code. Другая ревизия — на свой риск.
| SoC | Realtek RTL8197FH-VG, MIPS 24Kc, 1 ГГц |
| ОЗУ / флеш | 64 МБ DDR2 / 16 МБ SPI NOR (XM25QH128C) |
| Wi-Fi 2,4 ГГц | встроенный RTL8197G, 2×2 802.11n |
| Wi-Fi 5 ГГц | RTL8812FE (PCIe), 2×2 802.11ac, до 866 Мбит/с |
| Коммутатор | RTL8367D (chip id 0x6642, ver 0x0030): 1 WAN + 2 LAN, гигабит |
| Консоль | UART 38400 8N1 |
| ✅ Wi-Fi 2,4 и 5 ГГц | WPA2, 802.11w, до 3 гостевых сетей на радио, мощность передачи, всё — из LuCI |
| ✅ Режим роутера | WAN по DHCP, NAT, межсетевой экран, LAN 192.168.0.1 |
| ✅ Гнёзда | WAN, LAN1, LAN2 — проверены проводом на 0.1.0 |
| ✅ Разделение WAN/LAN | VLAN 8/9 во внешнем коммутаторе, утечек LAN в WAN нет (проверено tcpdump) |
| ✅ Коммутатор в LuCI | драйвер OpenWrt rtl8367b (swconfig) вместо закрытого SDK Realtek: вкладка «Сеть → Коммутатор», VLAN, состояние портов |
| ✅ Программное ускорение NAT | flow offloading включён по умолчанию |
| ✅ Аппаратный NAT (тест) | NAPT-движок RTL8197F: галка LuCI «Flow offloading: Hardware» (или uci set firewall.@defaults[0].flow_offloading_hw=1); 857–929 Мбит/с, CPU 90–100% idle. Только IPv4 TCP/UDP; IPv6 и ICMP — программно; таблица 1024 строки |
| ✅ LuCI на русском | |
| ✅ Обновление из LuCI / sysupgrade | …-squashfs-sysupgrade.bin, с сохранением настроек и без; оборванное обновление — не кирпич (см. ниже) |
| ✅ Возврат на заводскую прошивку | одной командой, без UART — docs/recovery.md |
| ✅ Установка без UART | кнопка Reset при включении + TFTP — docs/install-tftp.md |
| ✅ Кнопка Reset | коротко — перезагрузка, держать 5+ с — сброс настроек |
| ✅ MAC устройства | eth0 читает заводской адрес из таблицы hwconfig во флеше (у каждой коробки свой); VLAN и Wi-Fi наследуют; стабильный между перезагрузками |
| ✅ Светодиоды | POWER, WAN, LAN1, LAN2 (линк и активность); 5G — горит и мигает от трафика (тест). 2.4G LED в 0.2.1 не горит — см. «Что не работает» |
| ⚠️ Режим точки доступа | работает, настраивается вручную |
Один и тот же стенд (ПК ↔ RX23302), один инструмент (iperf3, TCP, 3–8 прогонов по 10 с),
один и тот же провод — цифры сравнимы. Замеры сделаны на работающем роутере, во время замеров через него
шёл обычный домашний трафик (включая ТВ-приставку), поэтому вилки шире, чем на пустом стенде.
| Прошивка | NAT | LAN→WAN | WAN→LAN | CPU | Когда замерено |
|---|---|---|---|---|---|
Заводская V1.24.137 | программный (аппаратный не включается: 0 строк NAPT) | 724–748 | 791–809 | ~40% idle | 27–28.10.2026 |
| Наша, программный офлоад | программный | 850–876 | 861–876 | 100% sirq | 29.10.2026 |
| Наша, аппаратный NAT (тест) | железо | 857–900, изредка ~430–440 | 846–863 (на чистом стенде до 929) | 90–100% idle | 29.10.2026 |
| Наша 0.2.1, программный офлоад | программный | 759–890 | — (первичные прогоны) | — | 30.10.2026 |
| Наша 0.2.1, аппаратный NAT + стресс | железо | 845–892; 30 мин × 8 потоков = 145 ГБ без сбоев | — | 90–100% idle | 30.10.2026 |
Что это значит. Заводская прошивка на этом железе не включает аппаратный NAT: 0 строк в NAPT-таблице,
и весь гигабит идёт через один процессор (724–809 при ~40% простоя). Наш порт ставит эти строки и отдаёт
трафик коммутатору: 857–929 Мбит/с при свободном процессоре — на том же стенде, с тем же iperf3
и той же методикой. Гигабит, за который платят, проходит почти целиком.
Честно о просадках. Аппаратный NAT — тестовый режим: таблица NAPT на 1024 строки, и при коллизии отображения поток падает в программный путь (в замерах это редкие прогоны ~430–440 Мбит/с). Со временем эти строки освобождаются, и скорость возвращается. Смена режима NAT применяется перезагрузкой — включение на ходу нестабильно. Wi-Fi и реальный провайдер дадут меньше, чем проводной стенд.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗