Skip to content

Instantly share code, notes, and snippets.

View slavonnet's full-sized avatar

Vyacheslav slavonnet

View GitHub Profile
@slavonnet
slavonnet / QFX5100_firmware.md
Created September 11, 2025 09:13
QFX5100 рекомендацию к обновлению с 21.4R3-S2.3

Отличный вопрос. Я проанализировал предоставленные Release Notes для версий с S3 по S10, выделив наиболее важные исправления для вашего стека технологий на QFX5100.

Ключевой вывод: Настоятельно рекомендуется обновление как минимум до 21.4R3-S7, а в идеале — до последней доступной 21.4R3-S10. Версия S2 является довольно старой и содержит множество критических багов, исправленных в последующих сервисных релизах.

Вот разбор по категориям и версиям, с указанием наиболее важных багфиксов.

Критически важные исправления

Эти исправления предотвращают потерю связи, перезагрузки маршрутизаторов (RPD crash) или уязвимости безопасности.

@slavonnet
slavonnet / esi.md
Created September 11, 2025 04:49
Evpn Esi

Отлично! Давайте разберемся с ESI (Ethernet Segment Identifier) — это фундаментальное понятие в EVPN для multi-homing (подключения устройства к нескольким точкам одновременно).

1. Что такое ESI?

ESI (Ethernet Segment Identifier) — это уникальный идентификатор, который назначается конкретному Ethernet-сегменту (линку или группе линков), соединяющему клиентское устройство (CE) с двумя или более коммутаторами/маршрутизаторами провайдера (PE).

Проще говоря: если у вас есть сервер или коммутатор, который подключен к двум разным Juniper-устройствам для резервирования, то оба этих подключения (оба линка) будут иметь один и тот же ESI. Этот ESI и говорит сети EVPN: "Эти два физических порта на разных коммутаторах ведут к одному и тому же устройству".

Формат: ESI представляет собой 10-байтовое значение (20 символов в hex), обычно записывается как xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. Пример: 00:11:22:33:44:55:66:77:88:99

data class BIf(val res: Boolean, val u: Any)
infix fun BIf.`ee` ( u: Any) = if (!this.res) u else this.u
infix fun Boolean.`ii` ( u: Any) = BIf( this@ii, u)
fun test (): Any {
return true ii "aaa" ee "vccc"
}
@slavonnet
slavonnet / InlineExt.kt
Last active December 28, 2021 13:34
Delegate for auto detect ViewBinding and Binding
// Helpers and utils
internal inline var View.isVisibleEx: Boolean
get() = isVisible
set(value) {
if (value != isVisible) isVisible = value
}
internal inline var View.isEnabledEx: Boolean