[RFC v2] Fixed Problems with Port mode changing

Christian Dresel fff at chrisi01.de
Do Sep 15 09:43:23 CEST 2016


Hi

Grundsätzlich funktioniert das ganze jetzt erstmal (wenn man den Port
Mode über ssh ändert), ich hab aber noch eine Anmerkungen:

1. Die Auswahl im WebUI funktioniert nicht (ich hab nicht alle
Auswahlmöglichkeiten im select Feld), ich glaube es liegt an diesen
komischen IF Abfragen in Zeile 69-77

https://github.com/FreifunkFranken/firmware/blob/master/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html

Sollte man in einen weiteren Patch noch beheben.

Ansonsten kann von meiner Seite her das Patch in den Master, eine beta
sollten wir aber erst machen wenn der Punkt in einen weiteren Patch
erledigt wurde.

Die Anmerkung von mir in der letzten Mail das "batctl if add eth0" nötig
ist, ist anscheinend hinfällig, hiermit funktioniert es nun auch ohne.

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

mfg

Christian

On 14.09.2016 23:37, Jan Kraus wrote:
> cleaned up config files (moved commands to script)
> 
> Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
> ---
> Dieser Patch ist ungetestet!
> ---
>  .../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 ++++++++++++++++++++++
>  8 files changed, 49 insertions(+), 145 deletions(-)
> 
> 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
> 

-------------- 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/20160915/e6023754/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev