[RFC v3] Fixed Problems with Port mode changing

Christian Dresel fff at chrisi01.de
Fr Sep 16 05:24:24 CEST 2016


Guten Morgen

Hab nochmal alles durchgecheckt und sieht nun so aus als würde alles tun
:) Vielen Dank für den Fix.

Tested-by: Christian Dresel <fff at chrisi01.de>
Reviewed-by: Christian Dresel <fff at chrisi01.de>

mfg

Christian

On 15.09.2016 21:45, Jan Kraus wrote:
> cleaned up config files (moved commands to script)
> 
> Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
> ---
> Dieser Patch ist ungetest.
> Änderungen in v3:
> -reset von sysctl entfernt
> -check auf "CLIENT/WAN/BATMAN" in network.$board im WebUi entfernt
> ---
>  src/packages/fff/fff-network/ar71xx/network.mode   |  3 +-
>  .../fff/fff-network/ar71xx/network.tl-mr3020-v1    | 23 ++------------
>  .../fff/fff-network/ar71xx/network.tl-wa850re-v1   | 23 ++------------
>  .../fff/fff-network/ar71xx/network.tl-wa860re-v1   | 23 ++------------
>  .../fff/fff-network/ar71xx/network.ubnt-bullet-m   | 22 ++------------
>  .../fff/fff-network/ar71xx/network.ubnt-loco-m-xw  | 24 ++-------------
>  .../fff/fff-network/ar71xx/network.ubnt-nano-m     | 22 ++------------
>  .../fff/fff-network/ar71xx/network.ubnt-unifi      | 22 ++------------
>  .../fff-network/files/usr/sbin/configurenetwork    | 35 ++++++++++++++++++++++
>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   |  9 ++----
>  10 files changed, 52 insertions(+), 154 deletions(-)
> 
> diff --git a/src/packages/fff/fff-network/ar71xx/network.mode b/src/packages/fff/fff-network/ar71xx/network.mode
> index 6c07f68..124d93f 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.mode
> +++ b/src/packages/fff/fff-network/ar71xx/network.mode
> @@ -3,8 +3,7 @@
>  ## if the routers interfaces differ from the standard WAN+4LAN-Ports
>  ## +2Wireless APs.
>  ## If you want to change their behavior, you can do so below.
> -## After that you have to reset the config with following commands.
> -#cp /rom/etc/sysctl.conf /etc/sysctl.conf
> +## After that you have to reboot the router with following command.
>  #reboot
>  #
>  ### The canonical syntax of this file is:
> diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
> index 1198c3d..62f456a 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
> +++ b/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
> @@ -3,28 +3,9 @@ SWITCHDEV=eth0
>  CLIENT_PORTS=""
>  WAN_PORTS=""
>  BATMAN_PORTS=""
> +ONE_PORT="YES"
>  
>  . /etc/network.mode
>  
>  ETHMESHMAC=eth0
> -ROUTERMAC=eth0
> -
> -uci set network.$SWITCHDEV=interface
> -uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> -uci set network.mesh.ifname="bat0"
> -
> -if [ "$ETHMODE" = "WAN" ] ; then
> -  ## Activate for WAN:
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> -  uci set network.wan.ifname=$WANDEV
> -elif [ "$ETHMODE" = "CLIENT" ] ; then
> -  ## Activate Client:
> -  uci set network.mesh.ifname="bat0 $SWITCHDEV"
> -else
> -  ## Activate BATMAN:
> -  uci set network.ethmesh.ifname="$SWITCHDEV"
> -  ETH0MAC="w2ap"
> -fi
> +ROUTERMAC=eth0
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
> index e745b21..307a201 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
> +++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
> @@ -3,28 +3,9 @@ SWITCHDEV=eth0
>  CLIENT_PORTS=""
>  WAN_PORTS=""
>  BATMAN_PORTS=""
> +ONE_PORT="YES"
>  
>  . /etc/network.mode
>  
>  ETHMESHMAC=
> -ROUTERMAC=w2mesh
> -
> -uci set network.$SWITCHDEV=interface
> -uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> -uci set network.mesh.ifname="bat0"
> -
> -if [ "$ETHMODE" = "WAN" ] ; then
> -  ## Activate for WAN:
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> -  uci set network.wan.ifname=$WANDEV
> -elif [ "$ETHMODE" = "CLIENT" ] ; then
> -  ## Activate Client:
> -  uci set network.mesh.ifname="bat0 $SWITCHDEV"
> -else
> -  ## Activate BATMAN:
> -  uci set network.ethmesh.ifname="$SWITCHDEV"
> -  ETH0MAC="w2ap"
> -fi
> +ROUTERMAC=w2mesh
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
> index e745b21..307a201 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
> +++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
> @@ -3,28 +3,9 @@ SWITCHDEV=eth0
>  CLIENT_PORTS=""
>  WAN_PORTS=""
>  BATMAN_PORTS=""
> +ONE_PORT="YES"
>  
>  . /etc/network.mode
>  
>  ETHMESHMAC=
> -ROUTERMAC=w2mesh
> -
> -uci set network.$SWITCHDEV=interface
> -uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> -uci set network.mesh.ifname="bat0"
> -
> -if [ "$ETHMODE" = "WAN" ] ; then
> -  ## Activate for WAN:
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> -  uci set network.wan.ifname=$WANDEV
> -elif [ "$ETHMODE" = "CLIENT" ] ; then
> -  ## Activate Client:
> -  uci set network.mesh.ifname="bat0 $SWITCHDEV"
> -else
> -  ## Activate BATMAN:
> -  uci set network.ethmesh.ifname="$SWITCHDEV"
> -  ETH0MAC="w2ap"
> -fi
> +ROUTERMAC=w2mesh
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m b/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
> index c16993d..307a201 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
> +++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
> @@ -3,27 +3,9 @@ SWITCHDEV=eth0
>  CLIENT_PORTS=""
>  WAN_PORTS=""
>  BATMAN_PORTS=""
> +ONE_PORT="YES"
>  
>  . /etc/network.mode
>  
>  ETHMESHMAC=
> -ROUTERMAC=w2mesh
> -
> -uci set network.$SWITCHDEV=interface
> -uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> -uci set network.mesh.ifname="bat0"
> -
> -if [ "$ETHMODE" = "WAN" ] ; then
> -  ## Activate for WAN:
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> -  uci set network.wan.ifname=$WANDEV
> -elif [ "$ETHMODE" = "CLIENT" ] ; then
> -  ## Activate Client:
> -  uci set network.mesh.ifname="bat0 $SWITCHDEV"
> -else
> -  ## Activate BATMAN:
> -  uci set network.ethmesh.ifname="$SWITCHDEV"
> -fi
> +ROUTERMAC=w2mesh
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw b/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
> index 2298117..307a201 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
> +++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
> @@ -3,29 +3,9 @@ SWITCHDEV=eth0
>  CLIENT_PORTS=""
>  WAN_PORTS=""
>  BATMAN_PORTS=""
> +ONE_PORT="YES"
>  
>  . /etc/network.mode
>  
>  ETHMESHMAC=
> -ROUTERMAC=w2mesh
> -
> -uci set network.$SWITCHDEV=interface
> -uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> -uci set network.mesh.ifname="bat0"
> -uci set network.eth0.mtu="1500"
> -
> -
> -if [ "$ETHMODE" = "WAN" ] ; then
> -  ## Activate for WAN:
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> -  uci set network.wan.ifname=$WANDEV
> -elif [ "$ETHMODE" = "CLIENT" ] ; then
> -  ## Activate Client:
> -  uci set network.mesh.ifname="bat0 $SWITCHDEV"
> -else
> -  ## Activate BATMAN:
> -  uci set network.ethmesh.ifname="$SWITCHDEV"
> -fi
> +ROUTERMAC=w2mesh
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m b/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
> index c16993d..307a201 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
> +++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
> @@ -3,27 +3,9 @@ SWITCHDEV=eth0
>  CLIENT_PORTS=""
>  WAN_PORTS=""
>  BATMAN_PORTS=""
> +ONE_PORT="YES"
>  
>  . /etc/network.mode
>  
>  ETHMESHMAC=
> -ROUTERMAC=w2mesh
> -
> -uci set network.$SWITCHDEV=interface
> -uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> -uci set network.mesh.ifname="bat0"
> -
> -if [ "$ETHMODE" = "WAN" ] ; then
> -  ## Activate for WAN:
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> -  uci set network.wan.ifname=$WANDEV
> -elif [ "$ETHMODE" = "CLIENT" ] ; then
> -  ## Activate Client:
> -  uci set network.mesh.ifname="bat0 $SWITCHDEV"
> -else
> -  ## Activate BATMAN:
> -  uci set network.ethmesh.ifname="$SWITCHDEV"
> -fi
> +ROUTERMAC=w2mesh
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
> index c16993d..307a201 100644
> --- a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
> +++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
> @@ -3,27 +3,9 @@ SWITCHDEV=eth0
>  CLIENT_PORTS=""
>  WAN_PORTS=""
>  BATMAN_PORTS=""
> +ONE_PORT="YES"
>  
>  . /etc/network.mode
>  
>  ETHMESHMAC=
> -ROUTERMAC=w2mesh
> -
> -uci set network.$SWITCHDEV=interface
> -uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> -uci set network.mesh.ifname="bat0"
> -
> -if [ "$ETHMODE" = "WAN" ] ; then
> -  ## Activate for WAN:
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> -  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> -  uci set network.wan.ifname=$WANDEV
> -elif [ "$ETHMODE" = "CLIENT" ] ; then
> -  ## Activate Client:
> -  uci set network.mesh.ifname="bat0 $SWITCHDEV"
> -else
> -  ## Activate BATMAN:
> -  uci set network.ethmesh.ifname="$SWITCHDEV"
> -fi
> +ROUTERMAC=w2mesh
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> index 3b21411..7c8429a 100755
> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> @@ -65,6 +65,41 @@ if ! uci get network.$SWITCHDEV.ifname; then
>      /etc/init.d/network restart
>  fi
>  
> +if [ "$ONE_PORT" = "YES" ]; then
> +    uci set network.$SWITCHDEV=interface
> +    uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> +    if [ "$ETHMODE" = "WAN" ]; then
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
> +        uci set network.mesh.ifname="bat0"
> +        uci set network.wan.ifname="$WANDEV"
> +        uci del uci set network.ethmesh.ifname
> +        uci del network.eth0.macaddr
> +    elif [ "$ETHMODE" = "CLIENT" ] ; then
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> /etc/sysctl.conf
> +        uci set network.mesh.ifname="bat0 $SWITCHDEV"
> +        uci set network.wan.ifname="eth1" #eth1 because it is default in config file
> +        uci del network.ethmesh.ifname
> +        uci del network.eth0.macaddr
> +    elif [ "$ETHMODE" = "BATMAN" ] ; then
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf
> +        echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> /etc/sysctl.conf
> +        uci set network.mesh.ifname="bat0"
> +        uci set network.wan.ifname="eth1" #eth1 because it is default in config file
> +        uci set network.ethmesh.ifname="$SWITCHDEV"
> +        ETH0MAC="w2ap"
> +    fi
> +    uci commit
> +    /etc/init.d/network restart
> +fi
> +
>  if [[ -n "$ETHMESHMAC" ]]; then
>      if uci get network.ethmesh.macaddr
>      then
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> index c2d5890..26de8d5 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> @@ -5,7 +5,6 @@
>  if [ "$REQUEST_METHOD" == "POST" ] ; then
>  	sed -i '/^.*# set via WebUI/d' /etc/network.mode
>  	echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.mode
> -	cp /rom/etc/sysctl.conf /etc/sysctl.conf
>  	do_reboot=1
>  	MSG='<span class="green">Port Modus geändert! Router startet neu...</span>'
>  fi
> @@ -67,12 +66,8 @@ fi
>  				<th style="width: 1em;">Anschluss Modus:</th>
>  				<td>
>  					<select name="mode">
> -						<% if grep ETHMODE /etc/network.$(uci -q get board.model.name) | grep -q WAN ; then %>
> -							<option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n selected %>>WAN</option>
> -						<% fi %>
> -						<% if grep ETHMODE /etc/network.$(uci -q get board.model.name) | grep -q CLIENT ; then %>
> -							<option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n selected %>>Client</option>
> -						<% fi %>
> +						<option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n selected %>>WAN</option>
> +						<option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n selected %>>Client</option>
>  						<option value="BATMAN" <% [ "$ETHMODE" == "BATMAN" ] && echo -n selected %>>BATMAN</option>
>  					</select>
>  				</td>
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 819 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160916/e8496829/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev