Skip to content
Snippets Groups Projects
Select Git revision
  • 303712d4b4a6c3d9d943c590e198cdd831587698
  • v2018.2.x default
  • experimental
  • master
  • v2021.1.2-ffs
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • v2020.2.3-ffs
  • nrbffs/fastd-remove-delay
  • v2020.2.2-ffs
  • v2020.2.1-ffs
  • v2020.2-ffs
  • v2020.2.x
  • v2020.1.3-ffs
  • v2020.1.1-ffs
  • v2020.1-ffs
  • v2019.1.2-ffs
  • v2019.1.1-ffs
  • nrb/test-radv-filter
  • v2019.1-ffs
  • nrbffs/netgear-ex6120
  • v2021.1.2-ffs0.2
  • v2021.1.2-ffs0.1
  • v2021.1.1-ffs0.4
  • v2021.1.1-ffs0.3
  • v2021.1.1-ffs0.2
  • v2021.1.1-ffs0.1
  • v2021.1-ffs0.1
  • v2020.2.3-ffs0.3
  • v2020.2.3-ffs0.2
  • v2020.2.3-ffs0.1
  • v2020.2.2-ffs0.1
  • v2020.2.1-ffs0.1
  • v2020.2-ffs0.1
  • v2020.2
  • v2020.2.x-ffs0.1
  • v2020.1.3-ffs0.1
  • v2020.1.1-ffs0.1
  • v2020.1-ffs0.1
  • v2019.1.2-ffs0.1
  • v2019.1.1-ffs0.1
42 results

0012-Revert-ipv6-remove-now-unneeded-source-dest-routing-workarounds.patch

Blame
  • Forked from firmware / FFS Gluon
    4273 commits behind the upstream repository.
    user avatar
    Matthias Schiffer authored
    Recent changes in the routing configuration of OpenWrt broke source address
    selection, sometimes leading to the node trying to contact other addresses in
    the mesh network from the next-node address.
    
    Revert the problematic commits until this has been solved upstream.
    0df337fb
    History
    0012-Revert-ipv6-remove-now-unneeded-source-dest-routing-workarounds.patch 8.63 KiB
    From: Matthias Schiffer <mschiffer@universe-factory.net>
    Date: Sun, 21 Jun 2015 05:48:45 +0200
    Subject: Revert "ipv6: remove now unneeded source-dest-routing workarounds"
    
    This reverts commit 31214c38c8dd0f70366b523f9b0335145b9386bd.
    
    diff --git a/package/network/ipv6/6in4/Makefile b/package/network/ipv6/6in4/Makefile
    index b7c2da7..21e69e6 100644
    --- a/package/network/ipv6/6in4/Makefile
    +++ b/package/network/ipv6/6in4/Makefile
    @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
     
     PKG_NAME:=6in4
     PKG_VERSION:=21
    -PKG_RELEASE:=2
    +PKG_RELEASE:=1
     PKG_LICENSE:=GPL-2.0
     
     include $(INCLUDE_DIR)/package.mk
    diff --git a/package/network/ipv6/6in4/files/6in4.sh b/package/network/ipv6/6in4/files/6in4.sh
    index af2ddca..0289df3 100755
    --- a/package/network/ipv6/6in4/files/6in4.sh
    +++ b/package/network/ipv6/6in4/files/6in4.sh
    @@ -27,8 +27,8 @@ proto_6in4_setup() {
     	local iface="$2"
     	local link="6in4-$cfg"
     
    -	local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunnelid username password updatekey
    -	json_get_vars mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunnelid username password updatekey
    +	local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunnelid username password updatekey sourcerouting
    +	json_get_vars mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunnelid username password updatekey sourcerouting
     
     	[ -z "$peeraddr" ] && {
     		proto_notify_error "$cfg" "MISSING_ADDRESS"
    @@ -48,17 +48,21 @@ proto_6in4_setup() {
     
     	proto_init_update "$link" 1
     
    +	local source=""
    +	[ "$sourcerouting" != "0" ] && source="::/128"
    +	proto_add_ipv6_route "::" 0 "" "" "" "$source"
    +
     	[ -n "$ip6addr" ] && {
     		local local6="${ip6addr%%/*}"
     		local mask6="${ip6addr##*/}"
     		[[ "$local6" = "$mask6" ]] && mask6=
     		proto_add_ipv6_address "$local6" "$mask6"
    -		proto_add_ipv6_route "::" 0 "" "" "" "$local6/$mask6"
    +		[ "$sourcerouting" != "0" ] && proto_add_ipv6_route "::" 0 "" "" "" "$local6/$mask6"
     	}
     
     	[ -n "$ip6prefix" ] && {
     		proto_add_ipv6_prefix "$ip6prefix"
    -		proto_add_ipv6_route "::" 0 "" "" "" "$ip6prefix"
    +		[ "$sourcerouting" != "0" ] && proto_add_ipv6_route "::" 0 "" "" "" "$ip6prefix"
     	}
     
     	proto_add_tunnel
    @@ -142,6 +146,7 @@ proto_6in4_init_config() {
     	proto_config_add_int "mtu"
     	proto_config_add_int "ttl"
     	proto_config_add_string "tos"
    +	proto_config_add_boolean "sourcerouting"
     }
     
     [ -n "$INCLUDE_ONLY" ] || {
    diff --git a/package/network/ipv6/6rd/Makefile b/package/network/ipv6/6rd/Makefile
    index cde7117..f9b7eae 100644
    --- a/package/network/ipv6/6rd/Makefile
    +++ b/package/network/ipv6/6rd/Makefile
    @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
     
     PKG_NAME:=6rd
     PKG_VERSION:=9
    -PKG_RELEASE:=2
    +PKG_RELEASE:=1
     PKG_LICENSE:=GPL-2.0
     
     include $(INCLUDE_DIR)/package.mk
    diff --git a/package/network/ipv6/6rd/files/6rd.sh b/package/network/ipv6/6rd/files/6rd.sh
    index 6c68b3b..b485136 100644
    --- a/package/network/ipv6/6rd/files/6rd.sh
    +++ b/package/network/ipv6/6rd/files/6rd.sh
    @@ -14,8 +14,8 @@ proto_6rd_setup() {
     	local iface="$2"
     	local link="6rd-$cfg"
     
    -	local mtu df ttl tos ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink zone
    -	json_get_vars mtu df ttl tos ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink zone
    +	local mtu df ttl tos ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink sourcerouting zone
    +	json_get_vars mtu df ttl tos ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink sourcerouting zone
     
     	[ -z "$ip6prefix" -o -z "$peeraddr" ] && {
     		proto_notify_error "$cfg" "MISSING_ADDRESS"
    @@ -54,8 +54,13 @@ proto_6rd_setup() {
     	proto_add_ipv6_address "$ip6addr" "$ip6prefixlen"
     	proto_add_ipv6_prefix "$ip6lanprefix"
     
    -	proto_add_ipv6_route "::" 0 "::$peeraddr" 4096 "" "$ip6addr/$ip6prefixlen"
    -	proto_add_ipv6_route "::" 0 "::$peeraddr" 4096 "" "$ip6lanprefix"
    +	if [ "$sourcerouting" != "0" ]; then
    +		proto_add_ipv6_route "::" 0 "::$peeraddr" 4096 "" "::/128"
    +		proto_add_ipv6_route "::" 0 "::$peeraddr" 4096 "" "$ip6addr/$ip6prefixlen"
    +		proto_add_ipv6_route "::" 0 "::$peeraddr" 4096 "" "$ip6lanprefix"
    +	else
    +		proto_add_ipv6_route "::" 0 "::$peeraddr" 4096
    +	fi
     
     	proto_add_tunnel
     	json_add_string mode sit
    diff --git a/package/network/ipv6/6to4/Makefile b/package/network/ipv6/6to4/Makefile
    index fcec90d..6be2cc5 100644
    --- a/package/network/ipv6/6to4/Makefile
    +++ b/package/network/ipv6/6to4/Makefile
    @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
     
     PKG_NAME:=6to4
     PKG_VERSION:=12
    -PKG_RELEASE:=2
    +PKG_RELEASE:=1
     PKG_LICENSE:=GPL-2.0
     
     include $(INCLUDE_DIR)/package.mk
    diff --git a/package/network/ipv6/6to4/files/6to4.sh b/package/network/ipv6/6to4/files/6to4.sh
    index 57efc52..ce1de53 100755
    --- a/package/network/ipv6/6to4/files/6to4.sh
    +++ b/package/network/ipv6/6to4/files/6to4.sh
    @@ -34,8 +34,8 @@ proto_6to4_setup() {
     	local iface="$2"
     	local link="6to4-$cfg"
     
    -	local mtu ttl tos ipaddr
    -	json_get_vars mtu ttl tos ipaddr
    +	local mtu ttl tos ipaddr sourcerouting
    +	json_get_vars mtu ttl tos ipaddr sourcerouting
     
     	( proto_add_host_dependency "$cfg" 0.0.0.0 )
     
    @@ -65,8 +65,13 @@ proto_6to4_setup() {
     	proto_add_ipv6_address "$local6" 16
     	proto_add_ipv6_prefix "$prefix6::/48"
     
    -	proto_add_ipv6_route "::" 0 "::192.88.99.1" "" "" "$local6/16"
    -	proto_add_ipv6_route "::" 0 "::192.88.99.1" "" "" "$prefix6::/48"
    +	if [ "$sourcerouting" != "0" ]; then
    +		proto_add_ipv6_route "::" 0 "::192.88.99.1" "" "" "::/128"
    +		proto_add_ipv6_route "::" 0 "::192.88.99.1" "" "" "$local6/16"
    +		proto_add_ipv6_route "::" 0 "::192.88.99.1" "" "" "$prefix6::/48"
    +	else
    +		proto_add_ipv6_route "::" 0 "::192.88.99.1"
    +	fi
     
     	proto_add_tunnel
     	json_add_string mode sit
    diff --git a/package/network/ipv6/odhcp6c/Makefile b/package/network/ipv6/odhcp6c/Makefile
    index a90f5ce..ddd6917 100644
    --- a/package/network/ipv6/odhcp6c/Makefile
    +++ b/package/network/ipv6/odhcp6c/Makefile
    @@ -8,7 +8,7 @@
     include $(TOPDIR)/rules.mk
     
     PKG_NAME:=odhcp6c
    -PKG_VERSION:=2015-06-09
    +PKG_VERSION:=2015-05-16
     PKG_RELEASE=$(PKG_SOURCE_VERSION)
     
     PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
    diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.script b/package/network/ipv6/odhcp6c/files/dhcpv6.script
    index 650c9b2..6cd59fa 100755
    --- a/package/network/ipv6/odhcp6c/files/dhcpv6.script
    +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.script
    @@ -86,9 +86,10 @@ setup_interface () {
     		entry="${entry#*,}"
     		local metric="${entry%%,*}"
     
    -		if [ -z "$gw" ]; then
    +		if [ -z "$SOURCE_ROUTING" -o -z "$gw" ]; then
     			proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid"
     		else
    +			proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid" "::/128"
     			for prefix in $PREFIXES $ADDRESSES; do
     				local paddr="${prefix%%,*}"
     				proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid" "$paddr"
    diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.sh b/package/network/ipv6/odhcp6c/files/dhcpv6.sh
    index adcb100..9fb6fa3 100755
    --- a/package/network/ipv6/odhcp6c/files/dhcpv6.sh
    +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.sh
    @@ -23,6 +23,7 @@ proto_dhcpv6_init_config() {
     	proto_config_add_string zone_464xlat
     	proto_config_add_string zone
     	proto_config_add_string 'ifaceid:ip6addr'
    +	proto_config_add_string 'sourcerouting:bool'
     	proto_config_add_string "userclass"
     	proto_config_add_string "vendorclass"
     	proto_config_add_boolean delegate
    @@ -34,8 +35,8 @@ proto_dhcpv6_setup() {
     	local config="$1"
     	local iface="$2"
     
    -	local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes
    -	json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes
    +	local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid sourcerouting userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes
    +	json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid sourcerouting userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes
     
     
     	# Configure
    @@ -69,6 +70,7 @@ proto_dhcpv6_setup() {
     	[ -n "$iface_dslite" ] && proto_export "IFACE_DSLITE=$iface_dslite"
     	[ -n "$iface_map" ] && proto_export "IFACE_MAP=$iface_map"
     	[ -n "$iface_464xlat" ] && proto_export "IFACE_464XLAT=$iface_464xlat"
    +	[ "$sourcerouting" != "0" ] && proto_export "SOURCE_ROUTING=1"
     	[ "$delegate" = "0" ] && proto_export "IFACE_DSLITE_DELEGATE=0"
     	[ "$delegate" = "0" ] && proto_export "IFACE_MAP_DELEGATE=0"
     	[ -n "$zone_dslite" ] && proto_export "ZONE_DSLITE=$zone_dslite"