Bug 58376

Summary: Невозможно включить или отключить hairpin mode на порту
Product: Sisyphus Reporter: Vladislav Glinkin <glinkinvd>
Component: ip-brctlAssignee: Alexey Shabalin <shaba>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: shaba
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Vladislav Glinkin 2026-03-25 18:08:02 MSK
Версия пакета:
	ip-brctl-0.2-alt1

Шаги воспроизведения:
	# brctl hairpin br0 ens20 on

Результат:
	can't set ens20 to hairpin on bridge br0:  unknown option "on"?

В отладке:
	+++ /sbin/ip link set ens20 type bridge_slave on
	++ err_out='bridge_slave: unknown option "on"?

Забыли добавить hairpin перед on/off в функции cmd_hairpin():
--- a/usr/sbin/ip-brctl
+++ b/usr/sbin/ip-brctl
@@ -362,7 +362,7 @@ cmd_hairpin() {
        err_dev_exists n "${2}" "interface ${2} does not exist!"
        err_dev_exists n "${1}" "bridge ${1} does not exist!"
 
-       exec_iplink "set ${2} type bridge_slave ${hairpin}" "can't set ${2} to hairpin on bridge ${1}"
+       exec_iplink "set ${2} type bridge_slave hairpin ${hairpin}" "can't set ${2} to hairpin on bridge ${1}"
 }
 
 cmd_setageing() {
Comment 1 Repository Robot 2026-03-27 02:13:01 MSK
ip-brctl-0.3-alt1 -> sisyphus:

Fri Mar 27 2026 Alexey Shabalin <shaba@altlinux> 0.3-alt1
- Fix timer validation error texts.
- Fix delif error argument order.
- Tighten float input validation.
- Fix signed long range check.
- Fix hairpin slave option (ALT#58376).
- Fix boolean conversion in make_bool (ALT#58372).
- Fix setmaxage bridge attribute (ALT#58370).
- Align setgcint docs with implementation (ALT#58360).
- Fix addif validation (ALT#58359).
- Fix exec_iplink argument handling (ALT#58358).