Bug 9334

Summary: MACADDR for vlan subif can not be set
Product: ALT Linux 2.4 Reporter: Dmytro O. Redchuk <dor>
Component: net-scriptsAssignee: Denis Ovsienko <pilot>
Status: CLOSED WONTFIX QA Contact: Andrey Cherepanov <cas>
Severity: normal    
Priority: P2    
Version: 2.4   
Hardware: all   
OS: Linux   

Description Dmytro O. Redchuk 2006-03-29 10:58:24 MSD
Having MACADDR specified in /etc/sysconfig/network-scripts/ifcfg-<eth>.<vlan>
file it is still not possible to change mac address, because of "ip set dev
<dev> addr <mac>" fails: mac address can not be changed when parent interface is up.

"Quick" patch:

--- ifup.orig   2006-03-29 09:45:49 +0300
+++ ifup    2006-03-29 09:52:05 +0300
@@ -214,7 +214,14 @@
 fi

 # set interface-specific parameters
-[ -n "$MACADDR" ] && ip link set dev "$DEVICE" address "$MACADDR"
+[ -n "$MACADDR" ] && \
+   ( "$DEVICE" = "$REALDEVICE" ] && \
+       ( ip link set dev "$DEVICE" address "$MACADDR" ) || \
+       ( ip link set dev "$REALDEVICE" down; \
+         ip link set dev "$DEVICE" address "$MACADDR"; \
+         ip link set dev "$REALDEVICE" up \
+       ) \
+   )
 [ -n "$MTU" ] &&     ip link set dev "$DEVICE" mtu $MTU
 ip link set dev "$DEVICE" $(ip_link_flag arp $ARP) $(ip_link_flag promisc
$PROMISC) \
 $(ip_link_flag allmulti $ALLMULTI) $(ip_link_flag multicast $MULTICAST)
Comment 1 Dmytro O. Redchuk 2006-03-29 11:06:42 MSD
> "Quick" patch:
> 
> --- ifup.orig   2006-03-29 09:45:49 +0300
> +++ ifup    2006-03-29 09:52:05 +0300
> @@ -214,7 +214,14 @@
>  fi
> 
>  # set interface-specific parameters
> -[ -n "$MACADDR" ] && ip link set dev "$DEVICE" address "$MACADDR"
> +[ -n "$MACADDR" ] && \
> +   ( "$DEVICE" = "$REALDEVICE" ] && \
        ^
Oops, a braket `[' missed, sorry.

That's a really "quick test", not tested almost at all.
Comment 2 Denis Ovsienko 2006-03-29 21:53:53 MSD
Предложенный способ, например, удалит статические маршруты с родительского
интерфейса.
Comment 3 Denis Ovsienko 2006-08-27 21:16:30 MSD
Я тут посмотрел и понял, что в /etc/net такая же недоработка. Попробую исправить
в 0.8.4, чтобы была рабочая альтернатива.
Comment 4 Denis Ovsienko 2006-09-10 01:39:15 MSD
В SVN trunk /etc/net назначение MAC-адресов VLAN-интерфейсам исправлено, поэтому
невозможность (или неудобство) сделать так в net-scripts я объявляю WONTFIX.
Comment 5 Denis Ovsienko 2006-09-16 22:24:49 MSD
Версия 0.8.4 опубликована.