diff --git a/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh b/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh index 5b536b82c0..61cee0371c 100755 --- a/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh +++ b/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh @@ -18,6 +18,10 @@ do_cleanup() { pkill -F "/tmp/nm-radvd-$PEER_PREFIX$IDX.pid" radvd &>/dev/null || : rm -rf "/tmp/nm-radvd-$PEER_PREFIX$IDX.pid" + pkill -F "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" pppoe-server &>/dev/null || : + rm -rf "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" + rm -rf "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" + rm -rf "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" ip link del "$PEER_PREFIX$IDX" &>/dev/null || : @@ -33,9 +37,15 @@ do_setup() { ip link add "$NAME_PREFIX$IDX" type veth peer "$PEER_PREFIX$IDX" ip link set "$PEER_PREFIX$IDX" up - ip addr add "192.168.$((120 + $IDX)).1/23" dev "$PEER_PREFIX$IDX" + ip addr add "192.168.$((120 + IDX)).1/23" dev "$PEER_PREFIX$IDX" ip addr add "192:168:$((120 + IDX))::1/64" dev "$PEER_PREFIX$IDX" + # PPPoE inside the rootless container is not actually working, because + # /dev/ppp is not accessible. Still start it, so that we at least can + # test how far it goes... + echo "192.168.$((120 + $IDX)).180-200" > "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" + pppoe-server -X "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" -S isp -C isp -L "192.168.$((120 + IDX)).1" -p "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" -I "$PEER_PREFIX$IDX" & + dnsmasq \ --conf-file=/dev/null \ --pid-file="/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" \ diff --git a/contrib/scripts/nm-in-container.sh b/contrib/scripts/nm-in-container.sh index cb12991e53..fa91721603 100755 --- a/contrib/scripts/nm-in-container.sh +++ b/contrib/scripts/nm-in-container.sh @@ -181,11 +181,13 @@ nm-env-prepare.sh nm-env-prepare.sh --prefix eth -i 4 nm_run_gdb nm_run_normal +nmcli device connect net1 +nmcli connection add type pppoe con-name ppp-net1 ifname ppp-net1 pppoe.parent net1 service isp username test password networkmanager autoconnect no for i in {1..9}; do nm-env-prepare.sh --prefix eth -i \$i; done systemctl status NetworkManager systemctl stop NetworkManager systemctl stop NetworkManager; /opt/test/sbin/NetworkManager --debug 2>&1 | tee -a /tmp/nm-log.txt -systemctl stop NetworkManager; gdb --args /opt/test/sbin/NetworkManager --debug +systemctl stop NetworkManager; gdb -ex run --args /opt/test/sbin/NetworkManager --debug EOF cat <> /etc/bashrc + +RUN updatedb EOF }