Я в своих самых свежих скриптах, остановился на своем варианте dputs.
namespace eval tardil {
# debug verbosity
variable debug 0
}
proc ::tardil::dbg_puts {args} {
variable debug
if { ${debug} >= [expr [info level]-1] } {
array set inf [info frame -1]
set empty_prefix ""
for {set i 0} {${i}<[expr [info level]-1]} {incr i} {
set empty_prefix " ${empty_prefix}"
}
puts "${empty_prefix}\[$inf(proc)\] [lindex ${args} 0]"
}
}
# Устанавливаем глубину на которых будут работать dbg_puts
set ::tardil::debug 99
Данный вариант позволяет контролировать глубину стека вызовов процедур, на котором срабатывает эта dbg_puts. В вывод dbg_puts добавляется префикс в виде пробела (в зависимости от глубины стека) и имени процедуры из которой была вызвана dbg_puts с аргументами. Правда, только сейчас заметил, что это справедливо, когда руками вызываю в консоли Vivado, а если из скрипта вызвана (который запущен как source ./path_script.tcl ), то что то идет не так ..
Спасибо за статью! Поделюсь немного своим опытом, на основе статьи. Входные данные:
MikroTik hAP ac² (IPQ-4018:Arm® Cortex®-A7)
RouterOS 7.15.3
DNS FWD
Так как у меня RouterOS 7.15.3, то /ip/dns/static/ add ... forwad-to=localhost... еще не работает. Но есть отдельная железка с Pi-hole, туда и направил. Работает.
Docker образ hev-socks5-tunnel-mikrotik
Docker образ snegowiki/hev-socks5-tunnel-mikrotik c тегом latest (на момент написания коментария), поддерживает две архитектуры amd64 и arm64, тоесть не подходят для моего роутера. К счастью, тег test поддерживает уже три архитектуры, включая arm/v7. В итоге его и использовал: snegowiki/hev-socks5-tunnel-mikrotik:test
Маркировка соединения, вместо маркировки пакетов
При маркировки пакетов, на основе списка, придется проверять каждый пролетающий пакет на наличие в этом списке. Можно ограничится проверкой присутствия в списке только первых пакетов соединений и пометить само соединение. А вторым правилом, на основе помеченных соединений, выдавать метку для роутинга. Так роутеру будет полегче. У меня выглядит так:
fasttrack можно не отключать. Просто указать, чтобы не помечал уже помеченные соединения connection-mark=no-mark. Выглядит примерно так (убедившись в правильном порядке):
Я в своих самых свежих скриптах, остановился на своем варианте dputs.
Данный вариант позволяет контролировать глубину стека вызовов процедур, на котором срабатывает эта
dbg_puts
. В выводdbg_puts
добавляется префикс в виде пробела (в зависимости от глубины стека) и имени процедуры из которой была вызванаdbg_puts
с аргументами. Правда, только сейчас заметил, что это справедливо, когда руками вызываю в консоли Vivado, а если из скрипта вызвана (который запущен как source ./path_script.tcl ), то что то идет не так ..Спасибо за статью!
Поделюсь немного своим опытом, на основе статьи. Входные данные:
MikroTik hAP ac² (IPQ-4018:Arm® Cortex®-A7)
RouterOS 7.15.3
DNS FWD
Так как у меня RouterOS 7.15.3, то
/ip/dns/static/ add ... forwad-to=localhost...
еще не работает. Но есть отдельная железка с Pi-hole, туда и направил. Работает.Docker образ hev-socks5-tunnel-mikrotik
Docker образ
snegowiki/hev-socks5-tunnel-mikrotik
c тегомlatest
(на момент написания коментария), поддерживает две архитектурыamd64
иarm64
, тоесть не подходят для моего роутера. К счастью, тегtest
поддерживает уже три архитектуры, включаяarm/v7
. В итоге его и использовал:snegowiki/hev-socks5-tunnel-mikrotik:test
Маркировка соединения, вместо маркировки пакетов
При маркировки пакетов, на основе списка, придется проверять каждый пролетающий пакет на наличие в этом списке. Можно ограничится проверкой присутствия в списке только первых пакетов соединений и пометить само соединение. А вторым правилом, на основе помеченных соединений, выдавать метку для роутинга. Так роутеру будет полегче. У меня выглядит так:
fasttrack
fasttrack можно не отключать. Просто указать, чтобы не помечал уже помеченные соединения
connection-mark=no-mark
. Выглядит примерно так (убедившись в правильном порядке):