ppp: add sourcefilter option support
authorChen Minqiang <ptpt52@gmail.com>
Mon, 22 Jan 2024 14:35:41 +0000 (22:35 +0800)
committerChuanhong Guo <gch981213@gmail.com>
Mon, 22 Apr 2024 07:11:44 +0000 (15:11 +0800)
This make source based IPv6 routing option available for
ppp/pptp/pppoe/pppoa

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
package/network/services/ppp/files/lib/netifd/ppp6-up
package/network/services/ppp/files/ppp.sh

index 3852bf63ffa2616d7bf1efe10f8468312a5a5f32..9355f596784b3f96bb5e1eabb259d109ed44973a 100755 (executable)
@@ -27,6 +27,7 @@ if [ -n "$AUTOIPV6" ]; then
        [ -n "$EXTENDPREFIX" ] && json_add_string extendprefix 1
        [ -n "$IP6TABLE" ] && json_add_string ip6table $IP6TABLE
        [ -n "$PEERDNS" ] && json_add_boolean peerdns $PEERDNS
+       [ "$NOSOURCEFILTER" = "1" ] && json_add_boolean sourcefilter "0"
        json_close_object
        ubus call network add_dynamic "$(json_dump)"
 fi
index 6d3a8e29ffae218317c94ec4dcd11544a66eddd7..074c1f12c8c0c1c2d89f14fd34174ee29a8f6e6d 100755 (executable)
@@ -82,13 +82,14 @@ ppp_generic_init_config() {
        proto_config_add_boolean persist
        proto_config_add_int maxfail
        proto_config_add_int holdoff
+       proto_config_add_boolean sourcefilter
 }
 
 ppp_generic_setup() {
        local config="$1"; shift
        local localip
 
-       json_get_vars ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns
+       json_get_vars ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns sourcefilter
 
        [ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
 
@@ -133,6 +134,7 @@ ppp_generic_setup() {
        [ "${keepalive_adaptive:-1}" -lt 1 ] && lcp_adaptive=""
        [ -n "$connect" ] || json_get_var connect connect
        [ -n "$disconnect" ] || json_get_var disconnect disconnect
+       [ "$sourcefilter" = "0" ] || sourcefilter=""
 
        proto_run_command "$config" /usr/sbin/pppd \
                nodetach ipparam "$config" \
@@ -143,6 +145,7 @@ ppp_generic_setup() {
                ${autoipv6:+set AUTOIPV6=1} \
                ${ip6table:+set IP6TABLE=$ip6table} \
                ${peerdns:+set PEERDNS=$peerdns} \
+               ${sourcefilter:+set NOSOURCEFILTER=1} \
                nodefaultroute \
                usepeerdns \
                $demand $persist maxfail $maxfail \