diff mbox series

ath25: fix preinit Ethernet port configuration

Message ID 20200906164502.1034-1-ryazanov.s.a@gmail.com
State Accepted
Delegated to: Adrian Schmutzler
Headers show
Series ath25: fix preinit Ethernet port configuration | expand

Commit Message

Sergey Ryazanov Sept. 6, 2020, 4:45 p.m. UTC
vconfig is no more installed by default to a firmware image. So, replace
vconfig calls for VLAN subinterface configuration by coresponding
ip-link commands.

Also drop few useless comments from the preinit hook script, while we
are at it.

I have no chance to test this fix since I have no board with a subject
switch IC, but this is still better then call an utility that is
unavailable in the firmware for years.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 .../base-files/lib/preinit/15_preinit_iface_atheros      | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

Comments

Adrian Schmutzler Sept. 9, 2020, 3:08 p.m. UTC | #1
Hi,

> -				vconfig set_name_type
> DEV_PLUS_VID_NO_PAD
>  				ip link set eth0 up
> -				vconfig add eth0 1
> +				ip link add dev eth0.1 link eth0 type vlan id 1

Are you sure this is correct? I only find the following syntax:

ip link add link eth0 name eth0.1 type vlan id 1

Best

Adrian
Sergey Ryazanov Sept. 9, 2020, 7:20 p.m. UTC | #2
On Wed, Sep 9, 2020 at 6:08 PM Adrian Schmutzler
<mail@adrianschmutzler.de> wrote:
> > -                             vconfig add eth0 1
> > +                             ip link add dev eth0.1 link eth0 type vlan id 1
>
> Are you sure this is correct?

Yes, I tested this command with an OpenWrt ip package :)

> I only find the following syntax:
>
> ip link add link eth0 name eth0.1 type vlan id 1
>

According to ip-link(8) a user should use 'name' argument for a new
interface, but in fact the iplink.c have the following code in the
interface creation handler:
>         /* Allow "ip link add dev" and "ip link add name" */
>        if (!name)
>                name = dev;
Karl Palsson Sept. 10, 2020, 9:52 a.m. UTC | #3
Sergey Ryazanov <ryazanov.s.a@gmail.com> wrote:
> On Wed, Sep 9, 2020 at 6:08 PM Adrian Schmutzler
> <mail@adrianschmutzler.de> wrote:
> > > -                             vconfig add eth0 1
> > > +                             ip link add dev eth0.1 link eth0 type vlan id 1
> >
> > Are you sure this is correct?
> 
> Yes, I tested this command with an OpenWrt ip package :)
> 
> > I only find the following syntax:
> >
> > ip link add link eth0 name eth0.1 type vlan id 1
> >
> 
> According to ip-link(8) a user should use 'name' argument for a
> new interface, but in fact the iplink.c have the following code
> in the interface creation handler:
> >         /* Allow "ip link add dev" and "ip link add name" */
> >        if (!name)
> >                name = dev;
> 

Relying on undocumented behaviour seems like a risky move, when
we could just do it the documented way up front?

Sincerely,
Karl Palsson
diff mbox series

Patch

diff --git a/target/linux/ath25/base-files/lib/preinit/15_preinit_iface_atheros b/target/linux/ath25/base-files/lib/preinit/15_preinit_iface_atheros
index 235ba4befc..87bc4abba5 100644
--- a/target/linux/ath25/base-files/lib/preinit/15_preinit_iface_atheros
+++ b/target/linux/ath25/base-files/lib/preinit/15_preinit_iface_atheros
@@ -1,12 +1,10 @@ 
-# reset button only supported on ar5315+ at the moment
 preinit_ip() {
 	if [ -z "$pi_ifname" ]; then
 		grep -q 'Atheros AR231[567]' /proc/cpuinfo && {
 			if [ -e "/sys/bus/mdio_bus/drivers/Infineon ADM6996/0:00" -o \
 			     -e "/sys/bus/mdio_bus/drivers/Marvell 88E6060/0:10" ]; then
-				vconfig set_name_type DEV_PLUS_VID_NO_PAD
 				ip link set eth0 up
-				vconfig add eth0 1
+				ip link add dev eth0.1 link eth0 type vlan id 1
 				ifname=eth0.1
 			else
 				ifname=eth0
@@ -20,13 +18,10 @@  preinit_ip() {
 	}
 }
 
-
-# reset button only supported on ar5315+ at the moment
-
 preinit_ip_deconfig() {
 	if [ -e "/sys/bus/mdio_bus/drivers/Infineon ADM6996/0:00" -o \
 	     -e "/sys/bus/mdio_bus/drivers/Marvell 88E6060/0:10" ]; then
-		vconfig rem eth0.1 2>/dev/null
+		ip link del eth0.1 2>/dev/null
 		ip link set $pi_ifname down
 	elif [ -n "$pi_ifname" ]; then
 		ip -4 addr flush dev $pi_ifname