aboutsummaryrefslogtreecommitdiffstats
path: root/examples/source-router
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2026-01-23 06:49:25 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2026-01-23 06:49:25 +0000
commit1aa3bc74170f10a4285827efa2748d1d6c2e4613 (patch)
tree3fc6b79944f119dddf85a1cf8758cfbbab607cbe /examples/source-router
parent3c61b2916c56bfa8d3ce7a6a5480eb93c2ed1470 (diff)
downloads6-rc-1aa3bc74170f10a4285827efa2748d1d6c2e4613.tar.gz
New example batch of service definitions
Diffstat (limited to 'examples/source-router')
-rw-r--r--examples/source-router/00/down1
-rw-r--r--examples/source-router/00/flag-essential0
-rw-r--r--examples/source-router/00/type1
-rw-r--r--examples/source-router/00/up4
-rw-r--r--examples/source-router/adslclient-log/consumer-for1
-rw-r--r--examples/source-router/adslclient-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/adslclient-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/adslclient-log/pipeline-name1
-rwxr-xr-xexamples/source-router/adslclient-log/run4
-rw-r--r--examples/source-router/adslclient-log/type1
-rw-r--r--examples/source-router/adslclient/dependencies.d/init-devtmpfs0
-rw-r--r--examples/source-router/adslclient/dependencies.d/init-lan0
-rw-r--r--examples/source-router/adslclient/notification-fd1
-rw-r--r--examples/source-router/adslclient/producer-for1
-rwxr-xr-xexamples/source-router/adslclient/run4
-rw-r--r--examples/source-router/adslclient/type1
-rw-r--r--examples/source-router/default/contents.d/ok-ipv60
-rw-r--r--examples/source-router/default/contents.d/ok-lan0
-rw-r--r--examples/source-router/default/contents.d/ok-local0
-rw-r--r--examples/source-router/default/contents.d/ok-wan0
-rw-r--r--examples/source-router/default/type1
-rw-r--r--examples/source-router/dns-cache-log/consumer-for1
-rw-r--r--examples/source-router/dns-cache-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-cache-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/dns-cache-log/pipeline-name1
-rwxr-xr-xexamples/source-router/dns-cache-log/run4
-rw-r--r--examples/source-router/dns-cache-log/type1
-rw-r--r--examples/source-router/dns-cache/dependencies.d/init-lan0
-rw-r--r--examples/source-router/dns-cache/dependencies.d/init-urandom0
-rw-r--r--examples/source-router/dns-cache/down-signal1
-rw-r--r--examples/source-router/dns-cache/env/CACHESIZE1
-rw-r--r--examples/source-router/dns-cache/env/IPSEND1
-rw-r--r--examples/source-router/dns-cache/env/ROOT1
-rw-r--r--examples/source-router/dns-cache/producer-for1
-rwxr-xr-xexamples/source-router/dns-cache/run15
-rw-r--r--examples/source-router/dns-cache/type1
-rw-r--r--examples/source-router/dns-server-tcp-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/dns-server-tcp-4/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-tcp-4/notification-fd1
-rw-r--r--examples/source-router/dns-server-tcp-4/producer-for1
-rwxr-xr-xexamples/source-router/dns-server-tcp-4/run13
-rw-r--r--examples/source-router/dns-server-tcp-4/type1
-rw-r--r--examples/source-router/dns-server-tcp-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dns-server-tcp-6-bis/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-tcp-6-bis/notification-fd1
-rw-r--r--examples/source-router/dns-server-tcp-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/dns-server-tcp-6-bis/run13
-rw-r--r--examples/source-router/dns-server-tcp-6-bis/type1
-rw-r--r--examples/source-router/dns-server-tcp-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dns-server-tcp-6/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-tcp-6/notification-fd1
-rw-r--r--examples/source-router/dns-server-tcp-6/producer-for1
-rwxr-xr-xexamples/source-router/dns-server-tcp-6/run13
-rw-r--r--examples/source-router/dns-server-tcp-6/type1
-rw-r--r--examples/source-router/dns-server-tcp-log/consumer-for3
-rw-r--r--examples/source-router/dns-server-tcp-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-tcp-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/dns-server-tcp-log/pipeline-name1
-rwxr-xr-xexamples/source-router/dns-server-tcp-log/run4
-rw-r--r--examples/source-router/dns-server-tcp-log/type1
-rw-r--r--examples/source-router/dns-server-udp-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/dns-server-udp-4/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-udp-4/notification-fd1
-rw-r--r--examples/source-router/dns-server-udp-4/producer-for1
-rwxr-xr-xexamples/source-router/dns-server-udp-4/run9
-rw-r--r--examples/source-router/dns-server-udp-4/type1
-rw-r--r--examples/source-router/dns-server-udp-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dns-server-udp-6-bis/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-udp-6-bis/notification-fd1
-rw-r--r--examples/source-router/dns-server-udp-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/dns-server-udp-6-bis/run9
-rw-r--r--examples/source-router/dns-server-udp-6-bis/type1
-rw-r--r--examples/source-router/dns-server-udp-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dns-server-udp-6/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-udp-6/notification-fd1
-rw-r--r--examples/source-router/dns-server-udp-6/producer-for1
-rwxr-xr-xexamples/source-router/dns-server-udp-6/run9
-rw-r--r--examples/source-router/dns-server-udp-6/type1
-rw-r--r--examples/source-router/dns-server-udp-log/consumer-for3
-rw-r--r--examples/source-router/dns-server-udp-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dns-server-udp-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/dns-server-udp-log/pipeline-name1
-rwxr-xr-xexamples/source-router/dns-server-udp-log/run4
-rw-r--r--examples/source-router/dns-server-udp-log/type1
-rw-r--r--examples/source-router/dnsproxy6-bis-tcp/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dnsproxy6-bis-tcp/notification-fd1
-rw-r--r--examples/source-router/dnsproxy6-bis-tcp/producer-for1
-rwxr-xr-xexamples/source-router/dnsproxy6-bis-tcp/run11
-rw-r--r--examples/source-router/dnsproxy6-bis-tcp/type1
-rw-r--r--examples/source-router/dnsproxy6-bis-udp/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dnsproxy6-bis-udp/notification-fd1
-rw-r--r--examples/source-router/dnsproxy6-bis-udp/producer-for1
-rwxr-xr-xexamples/source-router/dnsproxy6-bis-udp/run13
-rw-r--r--examples/source-router/dnsproxy6-bis-udp/timeout-kill1
-rw-r--r--examples/source-router/dnsproxy6-bis-udp/type1
-rw-r--r--examples/source-router/dnsproxy6-tcp-log/consumer-for2
-rw-r--r--examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/dnsproxy6-tcp-log/pipeline-name1
-rwxr-xr-xexamples/source-router/dnsproxy6-tcp-log/run4
-rw-r--r--examples/source-router/dnsproxy6-tcp-log/type1
-rw-r--r--examples/source-router/dnsproxy6-tcp/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dnsproxy6-tcp/notification-fd1
-rw-r--r--examples/source-router/dnsproxy6-tcp/producer-for1
-rwxr-xr-xexamples/source-router/dnsproxy6-tcp/run11
-rw-r--r--examples/source-router/dnsproxy6-tcp/type1
-rw-r--r--examples/source-router/dnsproxy6-udp-log/consumer-for3
-rw-r--r--examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/dnsproxy6-udp-log/pipeline-name1
-rwxr-xr-xexamples/source-router/dnsproxy6-udp-log/run4
-rw-r--r--examples/source-router/dnsproxy6-udp-log/type1
-rw-r--r--examples/source-router/dnsproxy6-udp/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/dnsproxy6-udp/notification-fd1
-rw-r--r--examples/source-router/dnsproxy6-udp/producer-for1
-rwxr-xr-xexamples/source-router/dnsproxy6-udp/run13
-rw-r--r--examples/source-router/dnsproxy6-udp/timeout-kill1
-rw-r--r--examples/source-router/dnsproxy6-udp/type1
-rw-r--r--examples/source-router/fck-livebox/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/fck-livebox/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/fck-livebox/dependencies.d/udhcpc6-eth20
-rw-r--r--examples/source-router/fck-livebox/down2
-rw-r--r--examples/source-router/fck-livebox/type1
-rw-r--r--examples/source-router/fck-livebox/up2
-rw-r--r--examples/source-router/fifodir-cleanup/dependencies.d/000
-rw-r--r--examples/source-router/fifodir-cleanup/flag-essential0
-rwxr-xr-xexamples/source-router/fifodir-cleanup/run15
-rw-r--r--examples/source-router/fifodir-cleanup/type1
-rw-r--r--examples/source-router/hostapd-wlan0-log/consumer-for1
-rw-r--r--examples/source-router/hostapd-wlan0-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/hostapd-wlan0-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/hostapd-wlan0-log/pipeline-name1
-rwxr-xr-xexamples/source-router/hostapd-wlan0-log/run4
-rw-r--r--examples/source-router/hostapd-wlan0-log/type1
-rw-r--r--examples/source-router/hostapd-wlan0/dependencies.d/init-wlan00
-rw-r--r--examples/source-router/hostapd-wlan0/notification-fd1
-rw-r--r--examples/source-router/hostapd-wlan0/producer-for1
-rwxr-xr-xexamples/source-router/hostapd-wlan0/run3
-rw-r--r--examples/source-router/hostapd-wlan0/type1
-rw-r--r--examples/source-router/hostapd-wlan1-log/consumer-for1
-rw-r--r--examples/source-router/hostapd-wlan1-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/hostapd-wlan1-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/hostapd-wlan1-log/pipeline-name1
-rwxr-xr-xexamples/source-router/hostapd-wlan1-log/run4
-rw-r--r--examples/source-router/hostapd-wlan1-log/type1
-rw-r--r--examples/source-router/hostapd-wlan1/dependencies.d/init-wlan10
-rw-r--r--examples/source-router/hostapd-wlan1/notification-fd1
-rw-r--r--examples/source-router/hostapd-wlan1/producer-for1
-rwxr-xr-xexamples/source-router/hostapd-wlan1/run3
-rw-r--r--examples/source-router/hostapd-wlan1/type1
-rw-r--r--examples/source-router/httpd-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/httpd-4/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/httpd-4/notification-fd1
-rw-r--r--examples/source-router/httpd-4/producer-for1
-rwxr-xr-xexamples/source-router/httpd-4/run10
-rw-r--r--examples/source-router/httpd-4/type1
-rw-r--r--examples/source-router/httpd-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/httpd-6-bis/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/httpd-6-bis/notification-fd1
-rw-r--r--examples/source-router/httpd-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/httpd-6-bis/run10
-rw-r--r--examples/source-router/httpd-6-bis/type1
-rw-r--r--examples/source-router/httpd-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/httpd-6/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/httpd-6/notification-fd1
-rw-r--r--examples/source-router/httpd-6/producer-for1
-rwxr-xr-xexamples/source-router/httpd-6/run10
-rw-r--r--examples/source-router/httpd-6/type1
-rw-r--r--examples/source-router/httpd-log/consumer-for3
-rw-r--r--examples/source-router/httpd-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/httpd-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/httpd-log/pipeline-name1
-rwxr-xr-xexamples/source-router/httpd-log/run4
-rw-r--r--examples/source-router/httpd-log/type1
-rw-r--r--examples/source-router/init-clock/dependencies.d/dns-cache0
-rw-r--r--examples/source-router/init-clock/dependencies.d/init-lan0
-rw-r--r--examples/source-router/init-clock/dependencies.d/init-sysctl0
-rw-r--r--examples/source-router/init-clock/down1
-rw-r--r--examples/source-router/init-clock/type1
-rw-r--r--examples/source-router/init-clock/up42
-rw-r--r--examples/source-router/init-coldplug/dependencies.d/mdevd0
-rw-r--r--examples/source-router/init-coldplug/dependencies.d/mount-sys0
-rw-r--r--examples/source-router/init-coldplug/down1
-rw-r--r--examples/source-router/init-coldplug/flag-essential0
-rw-r--r--examples/source-router/init-coldplug/type1
-rw-r--r--examples/source-router/init-coldplug/up1
-rw-r--r--examples/source-router/init-devtmpfs/dependencies.d/000
-rw-r--r--examples/source-router/init-devtmpfs/down1
-rw-r--r--examples/source-router/init-devtmpfs/flag-essential0
-rw-r--r--examples/source-router/init-devtmpfs/type1
-rw-r--r--examples/source-router/init-devtmpfs/up11
-rw-r--r--examples/source-router/init-diskconfig/dependencies.d/000
-rw-r--r--examples/source-router/init-diskconfig/down1
-rw-r--r--examples/source-router/init-diskconfig/flag-essential0
-rw-r--r--examples/source-router/init-diskconfig/type1
-rw-r--r--examples/source-router/init-diskconfig/up5
-rw-r--r--examples/source-router/init-ipv6/dependencies.d/hostapd-wlan00
-rw-r--r--examples/source-router/init-ipv6/dependencies.d/hostapd-wlan10
-rw-r--r--examples/source-router/init-ipv6/dependencies.d/init-lan0
-rw-r--r--examples/source-router/init-ipv6/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/init-ipv6/dependencies.d/udhcpc6-eth20
-rwxr-xr-xexamples/source-router/init-ipv6/down3
-rw-r--r--examples/source-router/init-ipv6/flag-essential0
-rw-r--r--examples/source-router/init-ipv6/type1
-rw-r--r--examples/source-router/init-ipv6/up35
-rw-r--r--examples/source-router/init-iw/dependencies.d/ok-local0
-rw-r--r--examples/source-router/init-iw/down1
-rw-r--r--examples/source-router/init-iw/flag-essential0
-rw-r--r--examples/source-router/init-iw/type1
-rw-r--r--examples/source-router/init-iw/up1
-rw-r--r--examples/source-router/init-lan/dependencies.d/init-coldplug0
-rw-r--r--examples/source-router/init-lan/dependencies.d/init-sysctl0
-rw-r--r--examples/source-router/init-lan/dependencies.d/mount-cgroups0
-rw-r--r--examples/source-router/init-lan/down1
-rw-r--r--examples/source-router/init-lan/flag-essential0
-rw-r--r--examples/source-router/init-lan/type1
-rw-r--r--examples/source-router/init-lan/up19
-rw-r--r--examples/source-router/init-sysctl/dependencies.d/mount-proc0
-rw-r--r--examples/source-router/init-sysctl/down1
-rw-r--r--examples/source-router/init-sysctl/flag-essential0
-rw-r--r--examples/source-router/init-sysctl/type1
-rw-r--r--examples/source-router/init-sysctl/up6
-rw-r--r--examples/source-router/init-tmp/dependencies.d/000
-rw-r--r--examples/source-router/init-tmp/down1
-rw-r--r--examples/source-router/init-tmp/flag-essential0
-rw-r--r--examples/source-router/init-tmp/type1
-rw-r--r--examples/source-router/init-tmp/up2
-rw-r--r--examples/source-router/init-urandom/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/init-urandom/down1
-rw-r--r--examples/source-router/init-urandom/flag-essential0
-rw-r--r--examples/source-router/init-urandom/type1
-rw-r--r--examples/source-router/init-urandom/up1
-rw-r--r--examples/source-router/init-wlan0/dependencies.d/init-iw0
-rw-r--r--examples/source-router/init-wlan0/down0
-rw-r--r--examples/source-router/init-wlan0/flag-essential0
-rw-r--r--examples/source-router/init-wlan0/type1
-rw-r--r--examples/source-router/init-wlan0/up1
-rw-r--r--examples/source-router/init-wlan1/dependencies.d/init-iw0
-rw-r--r--examples/source-router/init-wlan1/dependencies.d/init-wlan00
-rw-r--r--examples/source-router/init-wlan1/down0
-rw-r--r--examples/source-router/init-wlan1/flag-essential0
-rw-r--r--examples/source-router/init-wlan1/type1
-rw-r--r--examples/source-router/init-wlan1/up1
-rw-r--r--examples/source-router/ip-wlan0/dependencies.d/hostapd-wlan00
-rw-r--r--examples/source-router/ip-wlan0/down0
-rw-r--r--examples/source-router/ip-wlan0/flag-essential0
-rw-r--r--examples/source-router/ip-wlan0/type1
-rw-r--r--examples/source-router/ip-wlan0/up4
-rw-r--r--examples/source-router/ip-wlan1/dependencies.d/hostapd-wlan10
-rw-r--r--examples/source-router/ip-wlan1/down0
-rw-r--r--examples/source-router/ip-wlan1/flag-essential0
-rw-r--r--examples/source-router/ip-wlan1/type1
-rw-r--r--examples/source-router/ip-wlan1/up4
-rw-r--r--examples/source-router/ircproxy-interlinked-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/ircproxy-interlinked-4/notification-fd1
-rw-r--r--examples/source-router/ircproxy-interlinked-4/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-interlinked-4/run12
-rw-r--r--examples/source-router/ircproxy-interlinked-4/type1
-rw-r--r--examples/source-router/ircproxy-interlinked-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/ircproxy-interlinked-6-bis/notification-fd1
-rw-r--r--examples/source-router/ircproxy-interlinked-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-interlinked-6-bis/run12
-rw-r--r--examples/source-router/ircproxy-interlinked-6-bis/type1
-rw-r--r--examples/source-router/ircproxy-interlinked-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/ircproxy-interlinked-6/notification-fd1
-rw-r--r--examples/source-router/ircproxy-interlinked-6/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-interlinked-6/run12
-rw-r--r--examples/source-router/ircproxy-interlinked-6/type1
-rw-r--r--examples/source-router/ircproxy-interlinked-log/consumer-for4
-rw-r--r--examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/ircproxy-interlinked-log/pipeline-name1
-rwxr-xr-xexamples/source-router/ircproxy-interlinked-log/run4
-rw-r--r--examples/source-router/ircproxy-interlinked-log/type1
-rw-r--r--examples/source-router/ircproxy-libera-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/ircproxy-libera-4/notification-fd1
-rw-r--r--examples/source-router/ircproxy-libera-4/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-libera-4/run12
-rw-r--r--examples/source-router/ircproxy-libera-4/type1
-rw-r--r--examples/source-router/ircproxy-libera-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/ircproxy-libera-6-bis/notification-fd1
-rw-r--r--examples/source-router/ircproxy-libera-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-libera-6-bis/run12
-rw-r--r--examples/source-router/ircproxy-libera-6-bis/type1
-rw-r--r--examples/source-router/ircproxy-libera-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/ircproxy-libera-6/notification-fd1
-rw-r--r--examples/source-router/ircproxy-libera-6/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-libera-6/run12
-rw-r--r--examples/source-router/ircproxy-libera-6/type1
-rw-r--r--examples/source-router/ircproxy-libera-log/consumer-for3
-rw-r--r--examples/source-router/ircproxy-libera-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/ircproxy-libera-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/ircproxy-libera-log/pipeline-name1
-rwxr-xr-xexamples/source-router/ircproxy-libera-log/run4
-rw-r--r--examples/source-router/ircproxy-libera-log/type1
-rw-r--r--examples/source-router/ircproxy-oftc-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/ircproxy-oftc-4/notification-fd1
-rw-r--r--examples/source-router/ircproxy-oftc-4/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-oftc-4/run12
-rw-r--r--examples/source-router/ircproxy-oftc-4/type1
-rw-r--r--examples/source-router/ircproxy-oftc-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/ircproxy-oftc-6-bis/notification-fd1
-rw-r--r--examples/source-router/ircproxy-oftc-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-oftc-6-bis/run12
-rw-r--r--examples/source-router/ircproxy-oftc-6-bis/type1
-rw-r--r--examples/source-router/ircproxy-oftc-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/ircproxy-oftc-6/notification-fd1
-rw-r--r--examples/source-router/ircproxy-oftc-6/producer-for1
-rwxr-xr-xexamples/source-router/ircproxy-oftc-6/run12
-rw-r--r--examples/source-router/ircproxy-oftc-6/type1
-rw-r--r--examples/source-router/ircproxy-oftc-log/consumer-for3
-rw-r--r--examples/source-router/ircproxy-oftc-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/ircproxy-oftc-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/ircproxy-oftc-log/pipeline-name1
-rwxr-xr-xexamples/source-router/ircproxy-oftc-log/run4
-rw-r--r--examples/source-router/ircproxy-oftc-log/type1
-rw-r--r--examples/source-router/klogd-log/consumer-for1
-rw-r--r--examples/source-router/klogd-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/klogd-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/klogd-log/pipeline-name1
-rwxr-xr-xexamples/source-router/klogd-log/run4
-rw-r--r--examples/source-router/klogd-log/type1
-rw-r--r--examples/source-router/klogd/dependencies.d/mount-proc0
-rw-r--r--examples/source-router/klogd/producer-for1
-rwxr-xr-xexamples/source-router/klogd/run5
-rw-r--r--examples/source-router/klogd/type1
-rw-r--r--examples/source-router/mdevd/dependencies.d/init-devtmpfs0
-rw-r--r--examples/source-router/mdevd/dependencies.d/mount-sys0
-rw-r--r--examples/source-router/mdevd/flag-essential0
-rw-r--r--examples/source-router/mdevd/notification-fd1
-rw-r--r--examples/source-router/mdevd/run3
-rw-r--r--examples/source-router/mdevd/type1
-rw-r--r--examples/source-router/mount-cgroups-base/dependencies.d/mount-sys0
-rw-r--r--examples/source-router/mount-cgroups-base/down1
-rw-r--r--examples/source-router/mount-cgroups-base/flag-essential0
-rw-r--r--examples/source-router/mount-cgroups-base/type1
-rw-r--r--examples/source-router/mount-cgroups-base/up2
-rw-r--r--examples/source-router/mount-cgroups-sub/dependencies.d/mount-cgroups-base0
-rw-r--r--examples/source-router/mount-cgroups-sub/down4
-rw-r--r--examples/source-router/mount-cgroups-sub/flag-essential0
-rw-r--r--examples/source-router/mount-cgroups-sub/type1
-rw-r--r--examples/source-router/mount-cgroups-sub/up10
-rw-r--r--examples/source-router/mount-cgroups/contents.d/mount-cgroups-base0
-rw-r--r--examples/source-router/mount-cgroups/contents.d/mount-cgroups-sub0
-rw-r--r--examples/source-router/mount-cgroups/flag-essential0
-rw-r--r--examples/source-router/mount-cgroups/type1
-rw-r--r--examples/source-router/mount-disks/contents.d/mount-rwfs0
-rw-r--r--examples/source-router/mount-disks/contents.d/mount-swap0
-rw-r--r--examples/source-router/mount-disks/contents.d/mount-sync0
-rw-r--r--examples/source-router/mount-disks/flag-essential0
-rw-r--r--examples/source-router/mount-disks/type1
-rw-r--r--examples/source-router/mount-proc/dependencies.d/000
-rw-r--r--examples/source-router/mount-proc/down1
-rw-r--r--examples/source-router/mount-proc/flag-essential0
-rw-r--r--examples/source-router/mount-proc/type1
-rw-r--r--examples/source-router/mount-proc/up1
-rw-r--r--examples/source-router/mount-rwfs/dependencies.d/init-coldplug0
-rw-r--r--examples/source-router/mount-rwfs/dependencies.d/init-diskconfig0
-rw-r--r--examples/source-router/mount-rwfs/down1
-rw-r--r--examples/source-router/mount-rwfs/flag-essential0
-rw-r--r--examples/source-router/mount-rwfs/type1
-rw-r--r--examples/source-router/mount-rwfs/up3
-rw-r--r--examples/source-router/mount-swap/dependencies.d/init-coldplug0
-rw-r--r--examples/source-router/mount-swap/dependencies.d/init-diskconfig0
-rw-r--r--examples/source-router/mount-swap/down3
-rw-r--r--examples/source-router/mount-swap/flag-essential0
-rw-r--r--examples/source-router/mount-swap/type1
-rw-r--r--examples/source-router/mount-swap/up3
-rw-r--r--examples/source-router/mount-sync/dependencies.d/init-coldplug0
-rw-r--r--examples/source-router/mount-sync/dependencies.d/init-diskconfig0
-rw-r--r--examples/source-router/mount-sync/down1
-rw-r--r--examples/source-router/mount-sync/flag-essential0
-rw-r--r--examples/source-router/mount-sync/type1
-rw-r--r--examples/source-router/mount-sync/up3
-rw-r--r--examples/source-router/mount-sys/dependencies.d/000
-rw-r--r--examples/source-router/mount-sys/down1
-rw-r--r--examples/source-router/mount-sys/flag-essential0
-rw-r--r--examples/source-router/mount-sys/type1
-rw-r--r--examples/source-router/mount-sys/up1
-rw-r--r--examples/source-router/ntpclient-log/consumer-for1
-rw-r--r--examples/source-router/ntpclient-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/ntpclient-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/ntpclient-log/pipeline-name1
-rwxr-xr-xexamples/source-router/ntpclient-log/run4
-rw-r--r--examples/source-router/ntpclient-log/type1
-rw-r--r--examples/source-router/ntpclient/dependencies.d/dns-cache0
-rw-r--r--examples/source-router/ntpclient/dependencies.d/init-clock0
-rw-r--r--examples/source-router/ntpclient/notification-fd1
-rw-r--r--examples/source-router/ntpclient/producer-for1
-rwxr-xr-xexamples/source-router/ntpclient/run56
-rw-r--r--examples/source-router/ntpclient/type1
-rw-r--r--examples/source-router/ok-ipv6/contents.d/fck-livebox0
-rw-r--r--examples/source-router/ok-ipv6/contents.d/init-ipv60
-rw-r--r--examples/source-router/ok-ipv6/contents.d/radvd-pipeline0
-rw-r--r--examples/source-router/ok-ipv6/contents.d/udhcpc6-eth2-pipeline0
-rw-r--r--examples/source-router/ok-ipv6/type1
-rw-r--r--examples/source-router/ok-lan/contents.d/dns-cache-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/dns-server-tcp-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/dns-server-udp-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/dnsproxy6-tcp-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/dnsproxy6-udp-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/httpd-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/ircproxy-interlinked-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/ircproxy-libera-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/ircproxy-oftc-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/sshd-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/taiclockd-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/udhcpd-eth0-pipeline0
-rw-r--r--examples/source-router/ok-lan/contents.d/wlan0-server0
-rw-r--r--examples/source-router/ok-lan/contents.d/wlan1-server0
-rw-r--r--examples/source-router/ok-lan/type1
-rw-r--r--examples/source-router/ok-local/contents.d/fifodir-cleanup0
-rw-r--r--examples/source-router/ok-local/contents.d/init-coldplug0
-rw-r--r--examples/source-router/ok-local/contents.d/init-sysctl0
-rw-r--r--examples/source-router/ok-local/contents.d/init-tmp0
-rw-r--r--examples/source-router/ok-local/contents.d/init-urandom0
-rw-r--r--examples/source-router/ok-local/contents.d/klogd0
-rw-r--r--examples/source-router/ok-local/contents.d/mdevd0
-rw-r--r--examples/source-router/ok-local/contents.d/mount-cgroups0
-rw-r--r--examples/source-router/ok-local/contents.d/mount-disks0
-rw-r--r--examples/source-router/ok-local/contents.d/syslogd0
-rw-r--r--examples/source-router/ok-local/type1
-rw-r--r--examples/source-router/ok-wan/contents.d/adslclient-pipeline0
-rw-r--r--examples/source-router/ok-wan/contents.d/ntpclient-pipeline0
-rw-r--r--examples/source-router/ok-wan/type1
-rw-r--r--examples/source-router/radvd-log/consumer-for1
-rw-r--r--examples/source-router/radvd-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/radvd-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/radvd-log/pipeline-name1
-rwxr-xr-xexamples/source-router/radvd-log/run4
-rw-r--r--examples/source-router/radvd-log/type1
-rw-r--r--examples/source-router/radvd/dependencies.d/fck-livebox0
-rw-r--r--examples/source-router/radvd/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/radvd/dependencies.d/udhcpc6-eth20
-rw-r--r--examples/source-router/radvd/producer-for1
-rwxr-xr-xexamples/source-router/radvd/run3
-rw-r--r--examples/source-router/radvd/type1
-rw-r--r--examples/source-router/sshd-4/data/rules/ip4/0.0.0.0_0/deny0
-rw-r--r--examples/source-router/sshd-4/data/rules/ip4/192.168.0.0_22/allow0
-rw-r--r--examples/source-router/sshd-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/sshd-4/dependencies.d/init-urandom0
-rw-r--r--examples/source-router/sshd-4/notification-fd1
-rw-r--r--examples/source-router/sshd-4/producer-for1
-rwxr-xr-xexamples/source-router/sshd-4/run9
-rw-r--r--examples/source-router/sshd-4/type1
-rw-r--r--examples/source-router/sshd-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/sshd-6-bis/dependencies.d/init-urandom0
-rw-r--r--examples/source-router/sshd-6-bis/notification-fd1
-rw-r--r--examples/source-router/sshd-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/sshd-6-bis/run9
-rw-r--r--examples/source-router/sshd-6-bis/type1
-rw-r--r--examples/source-router/sshd-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/sshd-6/dependencies.d/init-urandom0
-rw-r--r--examples/source-router/sshd-6/notification-fd1
-rw-r--r--examples/source-router/sshd-6/producer-for1
-rwxr-xr-xexamples/source-router/sshd-6/run9
-rw-r--r--examples/source-router/sshd-6/type1
-rw-r--r--examples/source-router/sshd-log/consumer-for3
-rw-r--r--examples/source-router/sshd-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/sshd-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/sshd-log/pipeline-name1
-rwxr-xr-xexamples/source-router/sshd-log/run4
-rw-r--r--examples/source-router/sshd-log/type1
-rw-r--r--examples/source-router/syslogd-log/consumer-for1
-rw-r--r--examples/source-router/syslogd-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/syslogd-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/syslogd-log/pipeline-name1
-rwxr-xr-xexamples/source-router/syslogd-log/run4
-rw-r--r--examples/source-router/syslogd-log/type1
-rw-r--r--examples/source-router/syslogd/dependencies.d/init-devtmpfs0
-rw-r--r--examples/source-router/syslogd/notification-fd1
-rw-r--r--examples/source-router/syslogd/producer-for1
-rwxr-xr-xexamples/source-router/syslogd/run5
-rw-r--r--examples/source-router/syslogd/type1
-rw-r--r--examples/source-router/taiclockd-4/dependencies.d/init-lan0
-rw-r--r--examples/source-router/taiclockd-4/producer-for1
-rwxr-xr-xexamples/source-router/taiclockd-4/run6
-rw-r--r--examples/source-router/taiclockd-4/type1
-rw-r--r--examples/source-router/taiclockd-6-bis/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/taiclockd-6-bis/producer-for1
-rwxr-xr-xexamples/source-router/taiclockd-6-bis/run6
-rw-r--r--examples/source-router/taiclockd-6-bis/type1
-rw-r--r--examples/source-router/taiclockd-6/dependencies.d/init-ipv60
-rw-r--r--examples/source-router/taiclockd-6/producer-for1
-rwxr-xr-xexamples/source-router/taiclockd-6/run6
-rw-r--r--examples/source-router/taiclockd-6/type1
-rw-r--r--examples/source-router/taiclockd-log/consumer-for3
-rw-r--r--examples/source-router/taiclockd-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/taiclockd-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/taiclockd-log/pipeline-name1
-rwxr-xr-xexamples/source-router/taiclockd-log/run4
-rw-r--r--examples/source-router/taiclockd-log/type1
-rw-r--r--examples/source-router/udhcpc6-eth2-log/consumer-for1
-rw-r--r--examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/udhcpc6-eth2-log/notification-fd1
-rw-r--r--examples/source-router/udhcpc6-eth2-log/pipeline-name1
-rw-r--r--examples/source-router/udhcpc6-eth2-log/run4
-rw-r--r--examples/source-router/udhcpc6-eth2-log/type1
-rw-r--r--examples/source-router/udhcpc6-eth2/dependencies.d/init-lan0
-rw-r--r--examples/source-router/udhcpc6-eth2/notification-fd1
-rw-r--r--examples/source-router/udhcpc6-eth2/producer-for1
-rw-r--r--examples/source-router/udhcpc6-eth2/run5
-rwxr-xr-xexamples/source-router/udhcpc6-eth2/template/finish3
-rw-r--r--examples/source-router/udhcpc6-eth2/template/notification-fd1
-rwxr-xr-xexamples/source-router/udhcpc6-eth2/template/run4
-rw-r--r--examples/source-router/udhcpc6-eth2/type1
-rw-r--r--examples/source-router/udhcpd-eth0-log/consumer-for1
-rw-r--r--examples/source-router/udhcpd-eth0-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/udhcpd-eth0-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/udhcpd-eth0-log/pipeline-name1
-rwxr-xr-xexamples/source-router/udhcpd-eth0-log/run4
-rw-r--r--examples/source-router/udhcpd-eth0-log/type1
-rw-r--r--examples/source-router/udhcpd-eth0/dependencies.d/init-lan0
-rw-r--r--examples/source-router/udhcpd-eth0/producer-for1
-rwxr-xr-xexamples/source-router/udhcpd-eth0/run5
-rw-r--r--examples/source-router/udhcpd-eth0/timeout-kill1
-rw-r--r--examples/source-router/udhcpd-eth0/type1
-rw-r--r--examples/source-router/udhcpd-wlan0-log/consumer-for1
-rw-r--r--examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/udhcpd-wlan0-log/pipeline-name1
-rwxr-xr-xexamples/source-router/udhcpd-wlan0-log/run4
-rw-r--r--examples/source-router/udhcpd-wlan0-log/type1
-rw-r--r--examples/source-router/udhcpd-wlan0/dependencies.d/ip-wlan00
-rw-r--r--examples/source-router/udhcpd-wlan0/producer-for1
-rwxr-xr-xexamples/source-router/udhcpd-wlan0/run5
-rw-r--r--examples/source-router/udhcpd-wlan0/timeout-kill1
-rw-r--r--examples/source-router/udhcpd-wlan0/type1
-rw-r--r--examples/source-router/udhcpd-wlan1-log/consumer-for1
-rw-r--r--examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-rwfs0
-rw-r--r--examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-sync0
-rw-r--r--examples/source-router/udhcpd-wlan1-log/pipeline-name1
-rwxr-xr-xexamples/source-router/udhcpd-wlan1-log/run4
-rw-r--r--examples/source-router/udhcpd-wlan1-log/type1
-rw-r--r--examples/source-router/udhcpd-wlan1/dependencies.d/ip-wlan10
-rw-r--r--examples/source-router/udhcpd-wlan1/producer-for1
-rwxr-xr-xexamples/source-router/udhcpd-wlan1/run5
-rw-r--r--examples/source-router/udhcpd-wlan1/timeout-kill1
-rw-r--r--examples/source-router/udhcpd-wlan1/type1
-rw-r--r--examples/source-router/wlan0-server/contents.d/hostapd-wlan0-pipeline0
-rw-r--r--examples/source-router/wlan0-server/contents.d/ip-wlan00
-rw-r--r--examples/source-router/wlan0-server/contents.d/udhcpd-wlan0-pipeline0
-rw-r--r--examples/source-router/wlan0-server/type1
-rw-r--r--examples/source-router/wlan1-server/contents.d/hostapd-wlan1-pipeline0
-rw-r--r--examples/source-router/wlan1-server/contents.d/ip-wlan10
-rw-r--r--examples/source-router/wlan1-server/contents.d/udhcpd-wlan1-pipeline0
-rw-r--r--examples/source-router/wlan1-server/type1
548 files changed, 956 insertions, 0 deletions
diff --git a/examples/source-router/00/down b/examples/source-router/00/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/00/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/00/flag-essential b/examples/source-router/00/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/00/flag-essential
diff --git a/examples/source-router/00/type b/examples/source-router/00/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/00/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/00/up b/examples/source-router/00/up
new file mode 100644
index 0000000..239ecfa
--- /dev/null
+++ b/examples/source-router/00/up
@@ -0,0 +1,4 @@
+if { s6-clock @40000000696c50533a13bb53 }
+redirfd -r 0 /etc/hostname
+withstdinas -E hostname
+s6-hostname $hostname
diff --git a/examples/source-router/adslclient-log/consumer-for b/examples/source-router/adslclient-log/consumer-for
new file mode 100644
index 0000000..2611cbe
--- /dev/null
+++ b/examples/source-router/adslclient-log/consumer-for
@@ -0,0 +1 @@
+adslclient
diff --git a/examples/source-router/adslclient-log/dependencies.d/mount-rwfs b/examples/source-router/adslclient-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/adslclient-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/adslclient-log/dependencies.d/mount-sync b/examples/source-router/adslclient-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/adslclient-log/dependencies.d/mount-sync
diff --git a/examples/source-router/adslclient-log/pipeline-name b/examples/source-router/adslclient-log/pipeline-name
new file mode 100644
index 0000000..2cce8ed
--- /dev/null
+++ b/examples/source-router/adslclient-log/pipeline-name
@@ -0,0 +1 @@
+adslclient-pipeline
diff --git a/examples/source-router/adslclient-log/run b/examples/source-router/adslclient-log/run
new file mode 100755
index 0000000..2a89e2c
--- /dev/null
+++ b/examples/source-router/adslclient-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid adsllog
+exec -c
+s6-log t s1000000 n20 /var/log/adslclient
diff --git a/examples/source-router/adslclient-log/type b/examples/source-router/adslclient-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/adslclient-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/adslclient/dependencies.d/init-devtmpfs b/examples/source-router/adslclient/dependencies.d/init-devtmpfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/adslclient/dependencies.d/init-devtmpfs
diff --git a/examples/source-router/adslclient/dependencies.d/init-lan b/examples/source-router/adslclient/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/adslclient/dependencies.d/init-lan
diff --git a/examples/source-router/adslclient/notification-fd b/examples/source-router/adslclient/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/adslclient/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/adslclient/producer-for b/examples/source-router/adslclient/producer-for
new file mode 100644
index 0000000..439ba48
--- /dev/null
+++ b/examples/source-router/adslclient/producer-for
@@ -0,0 +1 @@
+adslclient-log
diff --git a/examples/source-router/adslclient/run b/examples/source-router/adslclient/run
new file mode 100755
index 0000000..f11b14f
--- /dev/null
+++ b/examples/source-router/adslclient/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+pppd call adsl
diff --git a/examples/source-router/adslclient/type b/examples/source-router/adslclient/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/adslclient/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/default/contents.d/ok-ipv6 b/examples/source-router/default/contents.d/ok-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/default/contents.d/ok-ipv6
diff --git a/examples/source-router/default/contents.d/ok-lan b/examples/source-router/default/contents.d/ok-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/default/contents.d/ok-lan
diff --git a/examples/source-router/default/contents.d/ok-local b/examples/source-router/default/contents.d/ok-local
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/default/contents.d/ok-local
diff --git a/examples/source-router/default/contents.d/ok-wan b/examples/source-router/default/contents.d/ok-wan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/default/contents.d/ok-wan
diff --git a/examples/source-router/default/type b/examples/source-router/default/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/default/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/dns-cache-log/consumer-for b/examples/source-router/dns-cache-log/consumer-for
new file mode 100644
index 0000000..d51d8a1
--- /dev/null
+++ b/examples/source-router/dns-cache-log/consumer-for
@@ -0,0 +1 @@
+dns-cache
diff --git a/examples/source-router/dns-cache-log/dependencies.d/mount-rwfs b/examples/source-router/dns-cache-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-cache-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-cache-log/dependencies.d/mount-sync b/examples/source-router/dns-cache-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-cache-log/dependencies.d/mount-sync
diff --git a/examples/source-router/dns-cache-log/pipeline-name b/examples/source-router/dns-cache-log/pipeline-name
new file mode 100644
index 0000000..f7a296f
--- /dev/null
+++ b/examples/source-router/dns-cache-log/pipeline-name
@@ -0,0 +1 @@
+dns-cache-pipeline
diff --git a/examples/source-router/dns-cache-log/run b/examples/source-router/dns-cache-log/run
new file mode 100755
index 0000000..4177eaa
--- /dev/null
+++ b/examples/source-router/dns-cache-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dns-cache
diff --git a/examples/source-router/dns-cache-log/type b/examples/source-router/dns-cache-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-cache-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-cache/dependencies.d/init-lan b/examples/source-router/dns-cache/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-cache/dependencies.d/init-lan
diff --git a/examples/source-router/dns-cache/dependencies.d/init-urandom b/examples/source-router/dns-cache/dependencies.d/init-urandom
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-cache/dependencies.d/init-urandom
diff --git a/examples/source-router/dns-cache/down-signal b/examples/source-router/dns-cache/down-signal
new file mode 100644
index 0000000..dc1b980
--- /dev/null
+++ b/examples/source-router/dns-cache/down-signal
@@ -0,0 +1 @@
+SIGTERM
diff --git a/examples/source-router/dns-cache/env/CACHESIZE b/examples/source-router/dns-cache/env/CACHESIZE
new file mode 100644
index 0000000..8425fb4
--- /dev/null
+++ b/examples/source-router/dns-cache/env/CACHESIZE
@@ -0,0 +1 @@
+2097152
diff --git a/examples/source-router/dns-cache/env/IPSEND b/examples/source-router/dns-cache/env/IPSEND
new file mode 100644
index 0000000..d690dc0
--- /dev/null
+++ b/examples/source-router/dns-cache/env/IPSEND
@@ -0,0 +1 @@
+0.0.0.0
diff --git a/examples/source-router/dns-cache/env/ROOT b/examples/source-router/dns-cache/env/ROOT
new file mode 100644
index 0000000..fbf51ea
--- /dev/null
+++ b/examples/source-router/dns-cache/env/ROOT
@@ -0,0 +1 @@
+/home/dns/cache-root
diff --git a/examples/source-router/dns-cache/producer-for b/examples/source-router/dns-cache/producer-for
new file mode 100644
index 0000000..54ef42e
--- /dev/null
+++ b/examples/source-router/dns-cache/producer-for
@@ -0,0 +1 @@
+dns-cache-log
diff --git a/examples/source-router/dns-cache/run b/examples/source-router/dns-cache/run
new file mode 100755
index 0000000..086002f
--- /dev/null
+++ b/examples/source-router/dns-cache/run
@@ -0,0 +1,15 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envuidgid dnscache
+s6-envdir /etc/env-network
+s6-envdir env
+importas -u ETH0_IP4 ETH0_IP4
+export IP ${ETH0_IP4}
+s6-softlimit -m 4000000
+pipeline -d
+{
+ redirfd -r 0 /dev/urandom
+ s6-head -c 128
+}
+unexport !
+dnscache
diff --git a/examples/source-router/dns-cache/type b/examples/source-router/dns-cache/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-cache/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-tcp-4/dependencies.d/init-lan b/examples/source-router/dns-server-tcp-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-4/dependencies.d/init-lan
diff --git a/examples/source-router/dns-server-tcp-4/dependencies.d/mount-rwfs b/examples/source-router/dns-server-tcp-4/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-4/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-tcp-4/notification-fd b/examples/source-router/dns-server-tcp-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dns-server-tcp-4/producer-for b/examples/source-router/dns-server-tcp-4/producer-for
new file mode 100644
index 0000000..809f840
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-4/producer-for
@@ -0,0 +1 @@
+dns-server-tcp-log
diff --git a/examples/source-router/dns-server-tcp-4/run b/examples/source-router/dns-server-tcp-4/run
new file mode 100755
index 0000000..b8c76d4
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-4/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP4
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+export AXFR ""
+fdmove 1 3
+s6-tcpserver -v -1 -U -- ${ETH1_IP4} 53
+s6-tcpserver-access -H -l0 -x rules.cdb --
+shibari-server-tcp -v2 -r5000 -w5000
diff --git a/examples/source-router/dns-server-tcp-4/type b/examples/source-router/dns-server-tcp-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-tcp-6-bis/dependencies.d/init-ipv6 b/examples/source-router/dns-server-tcp-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/dns-server-tcp-6-bis/dependencies.d/mount-rwfs b/examples/source-router/dns-server-tcp-6-bis/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6-bis/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-tcp-6-bis/notification-fd b/examples/source-router/dns-server-tcp-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dns-server-tcp-6-bis/producer-for b/examples/source-router/dns-server-tcp-6-bis/producer-for
new file mode 100644
index 0000000..809f840
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6-bis/producer-for
@@ -0,0 +1 @@
+dns-server-tcp-log
diff --git a/examples/source-router/dns-server-tcp-6-bis/run b/examples/source-router/dns-server-tcp-6-bis/run
new file mode 100755
index 0000000..652334a
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6-bis/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6_BIS
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+export AXFR ""
+fdmove 1 3
+s6-tcpserver -v -1 -U -- ${ETH1_IP6_BIS} 53
+s6-tcpserver-access -H -l0 -x rules.cdb --
+shibari-server-tcp -v2 -r5000 -w5000
diff --git a/examples/source-router/dns-server-tcp-6-bis/type b/examples/source-router/dns-server-tcp-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-tcp-6/dependencies.d/init-ipv6 b/examples/source-router/dns-server-tcp-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/dns-server-tcp-6/dependencies.d/mount-rwfs b/examples/source-router/dns-server-tcp-6/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-tcp-6/notification-fd b/examples/source-router/dns-server-tcp-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dns-server-tcp-6/producer-for b/examples/source-router/dns-server-tcp-6/producer-for
new file mode 100644
index 0000000..809f840
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6/producer-for
@@ -0,0 +1 @@
+dns-server-tcp-log
diff --git a/examples/source-router/dns-server-tcp-6/run b/examples/source-router/dns-server-tcp-6/run
new file mode 100755
index 0000000..c4fd207
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+export AXFR ""
+fdmove 1 3
+s6-tcpserver -v -1 -U -- ${ETH1_IP6} 53
+s6-tcpserver-access -H -l0 -x rules.cdb --
+shibari-server-tcp -v2 -r5000 -w5000
diff --git a/examples/source-router/dns-server-tcp-6/type b/examples/source-router/dns-server-tcp-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-tcp-log/consumer-for b/examples/source-router/dns-server-tcp-log/consumer-for
new file mode 100644
index 0000000..953d32e
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-log/consumer-for
@@ -0,0 +1,3 @@
+dns-server-tcp-4
+dns-server-tcp-6
+dns-server-tcp-6-bis
diff --git a/examples/source-router/dns-server-tcp-log/dependencies.d/mount-rwfs b/examples/source-router/dns-server-tcp-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-tcp-log/dependencies.d/mount-sync b/examples/source-router/dns-server-tcp-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-log/dependencies.d/mount-sync
diff --git a/examples/source-router/dns-server-tcp-log/pipeline-name b/examples/source-router/dns-server-tcp-log/pipeline-name
new file mode 100644
index 0000000..8193ac8
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-log/pipeline-name
@@ -0,0 +1 @@
+dns-server-tcp-pipeline
diff --git a/examples/source-router/dns-server-tcp-log/run b/examples/source-router/dns-server-tcp-log/run
new file mode 100755
index 0000000..17c490e
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dns-server-tcp
diff --git a/examples/source-router/dns-server-tcp-log/type b/examples/source-router/dns-server-tcp-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-tcp-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-udp-4/dependencies.d/init-lan b/examples/source-router/dns-server-udp-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-4/dependencies.d/init-lan
diff --git a/examples/source-router/dns-server-udp-4/dependencies.d/mount-rwfs b/examples/source-router/dns-server-udp-4/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-4/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-udp-4/notification-fd b/examples/source-router/dns-server-udp-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dns-server-udp-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dns-server-udp-4/producer-for b/examples/source-router/dns-server-udp-4/producer-for
new file mode 100644
index 0000000..81fc8f4
--- /dev/null
+++ b/examples/source-router/dns-server-udp-4/producer-for
@@ -0,0 +1 @@
+dns-server-udp-log
diff --git a/examples/source-router/dns-server-udp-4/run b/examples/source-router/dns-server-udp-4/run
new file mode 100755
index 0000000..81c55b8
--- /dev/null
+++ b/examples/source-router/dns-server-udp-4/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP4
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+shibari-server-udp -U -v2 -d3 -x rules.cdb ${ETH1_IP4}
diff --git a/examples/source-router/dns-server-udp-4/type b/examples/source-router/dns-server-udp-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-udp-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-udp-6-bis/dependencies.d/init-ipv6 b/examples/source-router/dns-server-udp-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/dns-server-udp-6-bis/dependencies.d/mount-rwfs b/examples/source-router/dns-server-udp-6-bis/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6-bis/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-udp-6-bis/notification-fd b/examples/source-router/dns-server-udp-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dns-server-udp-6-bis/producer-for b/examples/source-router/dns-server-udp-6-bis/producer-for
new file mode 100644
index 0000000..81fc8f4
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6-bis/producer-for
@@ -0,0 +1 @@
+dns-server-udp-log
diff --git a/examples/source-router/dns-server-udp-6-bis/run b/examples/source-router/dns-server-udp-6-bis/run
new file mode 100755
index 0000000..295ed45
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6-bis/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6_BIS
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+shibari-server-udp -U -v2 -d3 -x rules.cdb ${ETH1_IP6_BIS}
diff --git a/examples/source-router/dns-server-udp-6-bis/type b/examples/source-router/dns-server-udp-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-udp-6/dependencies.d/init-ipv6 b/examples/source-router/dns-server-udp-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/dns-server-udp-6/dependencies.d/mount-rwfs b/examples/source-router/dns-server-udp-6/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-udp-6/notification-fd b/examples/source-router/dns-server-udp-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dns-server-udp-6/producer-for b/examples/source-router/dns-server-udp-6/producer-for
new file mode 100644
index 0000000..81fc8f4
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6/producer-for
@@ -0,0 +1 @@
+dns-server-udp-log
diff --git a/examples/source-router/dns-server-udp-6/run b/examples/source-router/dns-server-udp-6/run
new file mode 100755
index 0000000..ddc2eff
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+shibari-server-udp -U -v2 -d3 -x rules.cdb ${ETH1_IP6}
diff --git a/examples/source-router/dns-server-udp-6/type b/examples/source-router/dns-server-udp-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-udp-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dns-server-udp-log/consumer-for b/examples/source-router/dns-server-udp-log/consumer-for
new file mode 100644
index 0000000..6123cf1
--- /dev/null
+++ b/examples/source-router/dns-server-udp-log/consumer-for
@@ -0,0 +1,3 @@
+dns-server-udp-4
+dns-server-udp-6
+dns-server-udp-6-bis
diff --git a/examples/source-router/dns-server-udp-log/dependencies.d/mount-rwfs b/examples/source-router/dns-server-udp-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dns-server-udp-log/dependencies.d/mount-sync b/examples/source-router/dns-server-udp-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dns-server-udp-log/dependencies.d/mount-sync
diff --git a/examples/source-router/dns-server-udp-log/pipeline-name b/examples/source-router/dns-server-udp-log/pipeline-name
new file mode 100644
index 0000000..e843883
--- /dev/null
+++ b/examples/source-router/dns-server-udp-log/pipeline-name
@@ -0,0 +1 @@
+dns-server-udp-pipeline
diff --git a/examples/source-router/dns-server-udp-log/run b/examples/source-router/dns-server-udp-log/run
new file mode 100755
index 0000000..0782e5a
--- /dev/null
+++ b/examples/source-router/dns-server-udp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dns-server-udp
diff --git a/examples/source-router/dns-server-udp-log/type b/examples/source-router/dns-server-udp-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dns-server-udp-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dnsproxy6-bis-tcp/dependencies.d/init-ipv6 b/examples/source-router/dnsproxy6-bis-tcp/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-tcp/dependencies.d/init-ipv6
diff --git a/examples/source-router/dnsproxy6-bis-tcp/notification-fd b/examples/source-router/dnsproxy6-bis-tcp/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-tcp/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dnsproxy6-bis-tcp/producer-for b/examples/source-router/dnsproxy6-bis-tcp/producer-for
new file mode 100644
index 0000000..f2f9f56
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-tcp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-tcp-log
diff --git a/examples/source-router/dnsproxy6-bis-tcp/run b/examples/source-router/dnsproxy6-bis-tcp/run
new file mode 100755
index 0000000..75436f7
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-tcp/run
@@ -0,0 +1,11 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid dnscache
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 53
+s6-tcpserver-access -v2 -DHl0 -x /etc/tcprules/dnsproxy6.cdb --
+s6-tcpclient -DH4l0 -- 192.168.0.1 53
+s6-ioconnect
diff --git a/examples/source-router/dnsproxy6-bis-tcp/type b/examples/source-router/dnsproxy6-bis-tcp/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-tcp/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dnsproxy6-bis-udp/dependencies.d/init-ipv6 b/examples/source-router/dnsproxy6-bis-udp/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-udp/dependencies.d/init-ipv6
diff --git a/examples/source-router/dnsproxy6-bis-udp/notification-fd b/examples/source-router/dnsproxy6-bis-udp/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-udp/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dnsproxy6-bis-udp/producer-for b/examples/source-router/dnsproxy6-bis-udp/producer-for
new file mode 100644
index 0000000..ec6d5dc
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-udp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-udp-log
diff --git a/examples/source-router/dnsproxy6-bis-udp/run b/examples/source-router/dnsproxy6-bis-udp/run
new file mode 100755
index 0000000..bbe6293
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-udp/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+s6-envdir /etc/env-network
+multisubstitute
+{
+ importas -uSi ETH0_IP6_BIS
+ importas -uSi ETH0_IP4
+}
+emptyenv -p
+if { redirfd -w 1 data/caches s6-echo ${ETH0_IP4} }
+s6-envuidgid dnscache
+fdmove 1 3
+dnsfunneld -1 -U -Rdata -t61000 -i ${ETH0_IP6_BIS}
diff --git a/examples/source-router/dnsproxy6-bis-udp/timeout-kill b/examples/source-router/dnsproxy6-bis-udp/timeout-kill
new file mode 100644
index 0000000..b48423d
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-udp/timeout-kill
@@ -0,0 +1 @@
+62000
diff --git a/examples/source-router/dnsproxy6-bis-udp/type b/examples/source-router/dnsproxy6-bis-udp/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dnsproxy6-bis-udp/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dnsproxy6-tcp-log/consumer-for b/examples/source-router/dnsproxy6-tcp-log/consumer-for
new file mode 100644
index 0000000..76d0421
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp-log/consumer-for
@@ -0,0 +1,2 @@
+dnsproxy6-tcp
+dnsproxy6-bis-tcp
diff --git a/examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-rwfs b/examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-sync b/examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp-log/dependencies.d/mount-sync
diff --git a/examples/source-router/dnsproxy6-tcp-log/pipeline-name b/examples/source-router/dnsproxy6-tcp-log/pipeline-name
new file mode 100644
index 0000000..02b3b9e
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp-log/pipeline-name
@@ -0,0 +1 @@
+dnsproxy6-tcp-pipeline
diff --git a/examples/source-router/dnsproxy6-tcp-log/run b/examples/source-router/dnsproxy6-tcp-log/run
new file mode 100755
index 0000000..46d6069
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dnsproxy6-tcp
diff --git a/examples/source-router/dnsproxy6-tcp-log/type b/examples/source-router/dnsproxy6-tcp-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dnsproxy6-tcp/dependencies.d/init-ipv6 b/examples/source-router/dnsproxy6-tcp/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp/dependencies.d/init-ipv6
diff --git a/examples/source-router/dnsproxy6-tcp/notification-fd b/examples/source-router/dnsproxy6-tcp/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dnsproxy6-tcp/producer-for b/examples/source-router/dnsproxy6-tcp/producer-for
new file mode 100644
index 0000000..f2f9f56
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-tcp-log
diff --git a/examples/source-router/dnsproxy6-tcp/run b/examples/source-router/dnsproxy6-tcp/run
new file mode 100755
index 0000000..ff68c75
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp/run
@@ -0,0 +1,11 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid dnscache
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 53
+s6-tcpserver-access -v2 -DHl0 -x /etc/tcprules/dnsproxy6.cdb --
+s6-tcpclient -DH4l0 -- 192.168.0.1 53
+s6-ioconnect
diff --git a/examples/source-router/dnsproxy6-tcp/type b/examples/source-router/dnsproxy6-tcp/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dnsproxy6-tcp/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dnsproxy6-udp-log/consumer-for b/examples/source-router/dnsproxy6-udp-log/consumer-for
new file mode 100644
index 0000000..23f7800
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp-log/consumer-for
@@ -0,0 +1,3 @@
+dnsproxy6-udp
+dnsproxy6-bis-udp
+
diff --git a/examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-rwfs b/examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-sync b/examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp-log/dependencies.d/mount-sync
diff --git a/examples/source-router/dnsproxy6-udp-log/pipeline-name b/examples/source-router/dnsproxy6-udp-log/pipeline-name
new file mode 100644
index 0000000..cb478c7
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp-log/pipeline-name
@@ -0,0 +1 @@
+dnsproxy6-udp-pipeline
diff --git a/examples/source-router/dnsproxy6-udp-log/run b/examples/source-router/dnsproxy6-udp-log/run
new file mode 100755
index 0000000..c4788fb
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dnsproxy6-udp
diff --git a/examples/source-router/dnsproxy6-udp-log/type b/examples/source-router/dnsproxy6-udp-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/dnsproxy6-udp/dependencies.d/init-ipv6 b/examples/source-router/dnsproxy6-udp/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp/dependencies.d/init-ipv6
diff --git a/examples/source-router/dnsproxy6-udp/notification-fd b/examples/source-router/dnsproxy6-udp/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/dnsproxy6-udp/producer-for b/examples/source-router/dnsproxy6-udp/producer-for
new file mode 100644
index 0000000..ec6d5dc
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-udp-log
diff --git a/examples/source-router/dnsproxy6-udp/run b/examples/source-router/dnsproxy6-udp/run
new file mode 100755
index 0000000..00b1fa8
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+s6-envdir /etc/env-network
+multisubstitute
+{
+ importas -uSi ETH0_IP6
+ importas -uSi ETH0_IP4
+}
+emptyenv -p
+if { redirfd -w 1 data/caches s6-echo ${ETH0_IP4} }
+s6-envuidgid dnscache
+fdmove 1 3
+dnsfunneld -1 -U -Rdata -t61000 -i ${ETH0_IP6}
diff --git a/examples/source-router/dnsproxy6-udp/timeout-kill b/examples/source-router/dnsproxy6-udp/timeout-kill
new file mode 100644
index 0000000..b48423d
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp/timeout-kill
@@ -0,0 +1 @@
+62000
diff --git a/examples/source-router/dnsproxy6-udp/type b/examples/source-router/dnsproxy6-udp/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/dnsproxy6-udp/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/fck-livebox/dependencies.d/init-ipv6 b/examples/source-router/fck-livebox/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/fck-livebox/dependencies.d/init-ipv6
diff --git a/examples/source-router/fck-livebox/dependencies.d/mount-rwfs b/examples/source-router/fck-livebox/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/fck-livebox/dependencies.d/mount-rwfs
diff --git a/examples/source-router/fck-livebox/dependencies.d/udhcpc6-eth2 b/examples/source-router/fck-livebox/dependencies.d/udhcpc6-eth2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/fck-livebox/dependencies.d/udhcpc6-eth2
diff --git a/examples/source-router/fck-livebox/down b/examples/source-router/fck-livebox/down
new file mode 100644
index 0000000..d8dd7e2
--- /dev/null
+++ b/examples/source-router/fck-livebox/down
@@ -0,0 +1,2 @@
+forbacktickx -Ep i { s6-ls /run/service/udhcpc6-eth2/instance }
+s6-instance-control -dwD /run/service/udhcpc6-eth2 $i
diff --git a/examples/source-router/fck-livebox/type b/examples/source-router/fck-livebox/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/fck-livebox/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/fck-livebox/up b/examples/source-router/fck-livebox/up
new file mode 100644
index 0000000..634ca1d
--- /dev/null
+++ b/examples/source-router/fck-livebox/up
@@ -0,0 +1,2 @@
+forbacktickx -Ep i { s6-ls /run/service/udhcpc6-eth2/instance }
+s6-instance-control -uwu /run/service/udhcpc6-eth2 $i
diff --git a/examples/source-router/fifodir-cleanup/dependencies.d/00 b/examples/source-router/fifodir-cleanup/dependencies.d/00
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/fifodir-cleanup/dependencies.d/00
diff --git a/examples/source-router/fifodir-cleanup/flag-essential b/examples/source-router/fifodir-cleanup/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/fifodir-cleanup/flag-essential
diff --git a/examples/source-router/fifodir-cleanup/run b/examples/source-router/fifodir-cleanup/run
new file mode 100755
index 0000000..c2688ad
--- /dev/null
+++ b/examples/source-router/fifodir-cleanup/run
@@ -0,0 +1,15 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+if
+{
+ forbacktickx -ep -0 i { s6-ls -0 /run/service }
+ importas -u i i
+ foreground
+ {
+ if { eltest -d /run/service/${i}/log }
+ s6-cleanfifodir /run/service/${i}/log/event
+ }
+ s6-cleanfifodir /run/service/${i}/event
+}
+s6-setuidgid nobody
+s6-sleep 86400
diff --git a/examples/source-router/fifodir-cleanup/type b/examples/source-router/fifodir-cleanup/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/fifodir-cleanup/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/hostapd-wlan0-log/consumer-for b/examples/source-router/hostapd-wlan0-log/consumer-for
new file mode 100644
index 0000000..7a26ac4
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0-log/consumer-for
@@ -0,0 +1 @@
+hostapd-wlan0
diff --git a/examples/source-router/hostapd-wlan0-log/dependencies.d/mount-rwfs b/examples/source-router/hostapd-wlan0-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/hostapd-wlan0-log/dependencies.d/mount-sync b/examples/source-router/hostapd-wlan0-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0-log/dependencies.d/mount-sync
diff --git a/examples/source-router/hostapd-wlan0-log/pipeline-name b/examples/source-router/hostapd-wlan0-log/pipeline-name
new file mode 100644
index 0000000..bdddcad
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0-log/pipeline-name
@@ -0,0 +1 @@
+hostapd-wlan0-pipeline
diff --git a/examples/source-router/hostapd-wlan0-log/run b/examples/source-router/hostapd-wlan0-log/run
new file mode 100755
index 0000000..86d7833
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log t s1000000 n20 /var/log/hostapd-wlan0
diff --git a/examples/source-router/hostapd-wlan0-log/type b/examples/source-router/hostapd-wlan0-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/hostapd-wlan0/dependencies.d/init-wlan0 b/examples/source-router/hostapd-wlan0/dependencies.d/init-wlan0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0/dependencies.d/init-wlan0
diff --git a/examples/source-router/hostapd-wlan0/notification-fd b/examples/source-router/hostapd-wlan0/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/hostapd-wlan0/producer-for b/examples/source-router/hostapd-wlan0/producer-for
new file mode 100644
index 0000000..e8de59f
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0/producer-for
@@ -0,0 +1 @@
+hostapd-wlan0-log
diff --git a/examples/source-router/hostapd-wlan0/run b/examples/source-router/hostapd-wlan0/run
new file mode 100755
index 0000000..e4db4e5
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+hostapd -1 /etc/hostapd/hostapd-wlan0.conf
diff --git a/examples/source-router/hostapd-wlan0/type b/examples/source-router/hostapd-wlan0/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/hostapd-wlan0/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/hostapd-wlan1-log/consumer-for b/examples/source-router/hostapd-wlan1-log/consumer-for
new file mode 100644
index 0000000..198b420
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1-log/consumer-for
@@ -0,0 +1 @@
+hostapd-wlan1
diff --git a/examples/source-router/hostapd-wlan1-log/dependencies.d/mount-rwfs b/examples/source-router/hostapd-wlan1-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/hostapd-wlan1-log/dependencies.d/mount-sync b/examples/source-router/hostapd-wlan1-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1-log/dependencies.d/mount-sync
diff --git a/examples/source-router/hostapd-wlan1-log/pipeline-name b/examples/source-router/hostapd-wlan1-log/pipeline-name
new file mode 100644
index 0000000..98013e1
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1-log/pipeline-name
@@ -0,0 +1 @@
+hostapd-wlan1-pipeline
diff --git a/examples/source-router/hostapd-wlan1-log/run b/examples/source-router/hostapd-wlan1-log/run
new file mode 100755
index 0000000..ace4d10
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log t s1000000 n20 /var/log/hostapd-wlan1
diff --git a/examples/source-router/hostapd-wlan1-log/type b/examples/source-router/hostapd-wlan1-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/hostapd-wlan1/dependencies.d/init-wlan1 b/examples/source-router/hostapd-wlan1/dependencies.d/init-wlan1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1/dependencies.d/init-wlan1
diff --git a/examples/source-router/hostapd-wlan1/notification-fd b/examples/source-router/hostapd-wlan1/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/hostapd-wlan1/producer-for b/examples/source-router/hostapd-wlan1/producer-for
new file mode 100644
index 0000000..570b36c
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1/producer-for
@@ -0,0 +1 @@
+hostapd-wlan1-log
diff --git a/examples/source-router/hostapd-wlan1/run b/examples/source-router/hostapd-wlan1/run
new file mode 100755
index 0000000..0637480
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+hostapd -1 /etc/hostapd/hostapd-wlan1.conf
diff --git a/examples/source-router/hostapd-wlan1/type b/examples/source-router/hostapd-wlan1/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/hostapd-wlan1/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/httpd-4/dependencies.d/init-lan b/examples/source-router/httpd-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-4/dependencies.d/init-lan
diff --git a/examples/source-router/httpd-4/dependencies.d/mount-rwfs b/examples/source-router/httpd-4/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-4/dependencies.d/mount-rwfs
diff --git a/examples/source-router/httpd-4/notification-fd b/examples/source-router/httpd-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/httpd-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/httpd-4/producer-for b/examples/source-router/httpd-4/producer-for
new file mode 100644
index 0000000..7f6f6cd
--- /dev/null
+++ b/examples/source-router/httpd-4/producer-for
@@ -0,0 +1 @@
+httpd-log
diff --git a/examples/source-router/httpd-4/run b/examples/source-router/httpd-4/run
new file mode 100755
index 0000000..75e7635
--- /dev/null
+++ b/examples/source-router/httpd-4/run
@@ -0,0 +1,10 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+cd /home/public
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid public
+fdmove 1 3
+s6-tcpserver -v -U -c 512 -1 -- ${ETH0_IP4} 80
+tipideed
diff --git a/examples/source-router/httpd-4/type b/examples/source-router/httpd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/httpd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/httpd-6-bis/dependencies.d/init-ipv6 b/examples/source-router/httpd-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/httpd-6-bis/dependencies.d/mount-rwfs b/examples/source-router/httpd-6-bis/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-6-bis/dependencies.d/mount-rwfs
diff --git a/examples/source-router/httpd-6-bis/notification-fd b/examples/source-router/httpd-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/httpd-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/httpd-6-bis/producer-for b/examples/source-router/httpd-6-bis/producer-for
new file mode 100644
index 0000000..7f6f6cd
--- /dev/null
+++ b/examples/source-router/httpd-6-bis/producer-for
@@ -0,0 +1 @@
+httpd-log
diff --git a/examples/source-router/httpd-6-bis/run b/examples/source-router/httpd-6-bis/run
new file mode 100755
index 0000000..5dc826d
--- /dev/null
+++ b/examples/source-router/httpd-6-bis/run
@@ -0,0 +1,10 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+cd /home/public
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid public
+fdmove 1 3
+s6-tcpserver -v -U -c 512 -1 -- ${ETH0_IP6_BIS} 80
+tipideed
diff --git a/examples/source-router/httpd-6-bis/type b/examples/source-router/httpd-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/httpd-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/httpd-6/dependencies.d/init-ipv6 b/examples/source-router/httpd-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/httpd-6/dependencies.d/mount-rwfs b/examples/source-router/httpd-6/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-6/dependencies.d/mount-rwfs
diff --git a/examples/source-router/httpd-6/notification-fd b/examples/source-router/httpd-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/httpd-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/httpd-6/producer-for b/examples/source-router/httpd-6/producer-for
new file mode 100644
index 0000000..7f6f6cd
--- /dev/null
+++ b/examples/source-router/httpd-6/producer-for
@@ -0,0 +1 @@
+httpd-log
diff --git a/examples/source-router/httpd-6/run b/examples/source-router/httpd-6/run
new file mode 100755
index 0000000..610d242
--- /dev/null
+++ b/examples/source-router/httpd-6/run
@@ -0,0 +1,10 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+cd /home/public
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid public
+fdmove 1 3
+s6-tcpserver -v -U -c 512 -1 -- ${ETH0_IP6} 80
+tipideed
diff --git a/examples/source-router/httpd-6/type b/examples/source-router/httpd-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/httpd-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/httpd-log/consumer-for b/examples/source-router/httpd-log/consumer-for
new file mode 100644
index 0000000..5920961
--- /dev/null
+++ b/examples/source-router/httpd-log/consumer-for
@@ -0,0 +1,3 @@
+httpd-4
+httpd-6
+httpd-6-bis
diff --git a/examples/source-router/httpd-log/dependencies.d/mount-rwfs b/examples/source-router/httpd-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/httpd-log/dependencies.d/mount-sync b/examples/source-router/httpd-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/httpd-log/dependencies.d/mount-sync
diff --git a/examples/source-router/httpd-log/pipeline-name b/examples/source-router/httpd-log/pipeline-name
new file mode 100644
index 0000000..2cc6b83
--- /dev/null
+++ b/examples/source-router/httpd-log/pipeline-name
@@ -0,0 +1 @@
+httpd-pipeline
diff --git a/examples/source-router/httpd-log/run b/examples/source-router/httpd-log/run
new file mode 100755
index 0000000..d60db8c
--- /dev/null
+++ b/examples/source-router/httpd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid publilog
+exec -c
+s6-log t s1000000 n20 /var/log/httpd
diff --git a/examples/source-router/httpd-log/type b/examples/source-router/httpd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/httpd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/init-clock/dependencies.d/dns-cache b/examples/source-router/init-clock/dependencies.d/dns-cache
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-clock/dependencies.d/dns-cache
diff --git a/examples/source-router/init-clock/dependencies.d/init-lan b/examples/source-router/init-clock/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-clock/dependencies.d/init-lan
diff --git a/examples/source-router/init-clock/dependencies.d/init-sysctl b/examples/source-router/init-clock/dependencies.d/init-sysctl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-clock/dependencies.d/init-sysctl
diff --git a/examples/source-router/init-clock/down b/examples/source-router/init-clock/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-clock/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-clock/type b/examples/source-router/init-clock/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-clock/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-clock/up b/examples/source-router/init-clock/up
new file mode 100644
index 0000000..a548ab5
--- /dev/null
+++ b/examples/source-router/init-clock/up
@@ -0,0 +1,42 @@
+#!/command/execlineb -P
+
+# Get the IP addresses for some NTP servers.
+# Limit the DNS queries to 30 seconds: if the DNS is slower than
+# that, chances are the server isn't good for us anyway.
+# All the queries are parallelized, so it's fast.
+
+pipeline
+{
+ s6-setuidgid nobody
+ forx -p I { 0 1 2 }
+ importas -u I I
+ redirfd -w 2 /dev/null
+ s6-dnsip4 -t 30000 -- ${I}.fr.pool.ntp.org
+}
+
+
+# Ask for a NTP exchange with the servers we get. Accept anything.
+# If the exchange can't be completed in 5 seconds, kill it.
+# All the queries are parallelized.
+
+pipeline
+{
+ s6-setuidgid ntp
+ forstdin -p -d"\n" NTPSERVERIP
+ importas -u NTPSERVERIP NTPSERVERIP
+ redirfd -w 2 /dev/null
+ s6-sntpclock -f -T 5000 ${NTPSERVERIP}
+}
+
+
+# Take the first answer we get.
+
+pipeline
+{
+ s6-setuidgid nobody
+ s6-head -Sc 12
+}
+
+# Update the system clock. Accept anything.
+
+s6-clockadd -f
diff --git a/examples/source-router/init-coldplug/dependencies.d/mdevd b/examples/source-router/init-coldplug/dependencies.d/mdevd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-coldplug/dependencies.d/mdevd
diff --git a/examples/source-router/init-coldplug/dependencies.d/mount-sys b/examples/source-router/init-coldplug/dependencies.d/mount-sys
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-coldplug/dependencies.d/mount-sys
diff --git a/examples/source-router/init-coldplug/down b/examples/source-router/init-coldplug/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-coldplug/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-coldplug/flag-essential b/examples/source-router/init-coldplug/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-coldplug/flag-essential
diff --git a/examples/source-router/init-coldplug/type b/examples/source-router/init-coldplug/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-coldplug/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-coldplug/up b/examples/source-router/init-coldplug/up
new file mode 100644
index 0000000..edc5c1b
--- /dev/null
+++ b/examples/source-router/init-coldplug/up
@@ -0,0 +1 @@
+mdevd-coldplug
diff --git a/examples/source-router/init-devtmpfs/dependencies.d/00 b/examples/source-router/init-devtmpfs/dependencies.d/00
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-devtmpfs/dependencies.d/00
diff --git a/examples/source-router/init-devtmpfs/down b/examples/source-router/init-devtmpfs/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-devtmpfs/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-devtmpfs/flag-essential b/examples/source-router/init-devtmpfs/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-devtmpfs/flag-essential
diff --git a/examples/source-router/init-devtmpfs/type b/examples/source-router/init-devtmpfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-devtmpfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-devtmpfs/up b/examples/source-router/init-devtmpfs/up
new file mode 100644
index 0000000..7c59980
--- /dev/null
+++ b/examples/source-router/init-devtmpfs/up
@@ -0,0 +1,11 @@
+if { s6-mkdir -p -m 0755 -- /dev/pts /dev/shm }
+if { s6-mount -wt devpts -o noexec,nosuid,gid=0,mode=0600 devpts /dev/pts }
+if { s6-ln -s /proc/self/fd /dev/fd }
+if { s6-ln -s /proc/kcore /dev/core }
+if { s6-ln -s loop0 /dev/loop }
+if { s6-ln -s ram0 /dev/ram }
+if { s6-ln -s rtc0 /dev/rtc }
+if { s6-mount -t tmpfs -o noexec,nosuid,nodev,mode=0755 tmpfs /dev/shm }
+if { s6-ln -s fd/0 /dev/stdin }
+if { s6-ln -s fd/1 /dev/stdout }
+if { s6-ln -s fd/2 /dev/stderr }
diff --git a/examples/source-router/init-diskconfig/dependencies.d/00 b/examples/source-router/init-diskconfig/dependencies.d/00
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-diskconfig/dependencies.d/00
diff --git a/examples/source-router/init-diskconfig/down b/examples/source-router/init-diskconfig/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-diskconfig/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-diskconfig/flag-essential b/examples/source-router/init-diskconfig/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-diskconfig/flag-essential
diff --git a/examples/source-router/init-diskconfig/type b/examples/source-router/init-diskconfig/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-diskconfig/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-diskconfig/up b/examples/source-router/init-diskconfig/up
new file mode 100644
index 0000000..f9fbfef
--- /dev/null
+++ b/examples/source-router/init-diskconfig/up
@@ -0,0 +1,5 @@
+if { s6-mkdir -p /run/disk-devices }
+if { redirfd -w 1 /run/disk-devices/rofs_sinay s6-echo sda1 }
+if { redirfd -w 1 /run/disk-devices/rwfs_sinay s6-echo sda2 }
+if { redirfd -w 1 /run/disk-devices/syncdata_sinay s6-echo sda3 }
+if { redirfd -w 1 /run/disk-devices/swap s6-echo sda5 }
diff --git a/examples/source-router/init-ipv6/dependencies.d/hostapd-wlan0 b/examples/source-router/init-ipv6/dependencies.d/hostapd-wlan0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-ipv6/dependencies.d/hostapd-wlan0
diff --git a/examples/source-router/init-ipv6/dependencies.d/hostapd-wlan1 b/examples/source-router/init-ipv6/dependencies.d/hostapd-wlan1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-ipv6/dependencies.d/hostapd-wlan1
diff --git a/examples/source-router/init-ipv6/dependencies.d/init-lan b/examples/source-router/init-ipv6/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-ipv6/dependencies.d/init-lan
diff --git a/examples/source-router/init-ipv6/dependencies.d/mount-rwfs b/examples/source-router/init-ipv6/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-ipv6/dependencies.d/mount-rwfs
diff --git a/examples/source-router/init-ipv6/dependencies.d/udhcpc6-eth2 b/examples/source-router/init-ipv6/dependencies.d/udhcpc6-eth2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-ipv6/dependencies.d/udhcpc6-eth2
diff --git a/examples/source-router/init-ipv6/down b/examples/source-router/init-ipv6/down
new file mode 100755
index 0000000..92a27a1
--- /dev/null
+++ b/examples/source-router/init-ipv6/down
@@ -0,0 +1,3 @@
+forbacktickx -Ep i { s6-ls /run/service/udhcpc6-eth2/instance }
+if { s6-instance-delete -t 5000 /run/service/udhcpc6-eth2 $i }
+ip link del eth2_$i
diff --git a/examples/source-router/init-ipv6/flag-essential b/examples/source-router/init-ipv6/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-ipv6/flag-essential
diff --git a/examples/source-router/init-ipv6/type b/examples/source-router/init-ipv6/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-ipv6/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-ipv6/up b/examples/source-router/init-ipv6/up
new file mode 100644
index 0000000..4e2d602
--- /dev/null
+++ b/examples/source-router/init-ipv6/up
@@ -0,0 +1,35 @@
+if { modprobe ipv6 }
+if { redirfd -w 1 /proc/sys/net/ipv6/conf/all/forwarding s6-echo 1 }
+if { redirfd -w 1 /proc/sys/net/ipv6/conf/default/accept_ra s6-echo 0 }
+if { s6-mkdir -p /run/udhcpc6-eth2/by_interface }
+if { s6-mkdir -p /run/udhcpc6-eth2/by_prefix }
+
+if
+{
+ s6-envdir /etc/env-network
+ forx -pE i { eth0 eth1 eth2 eth3 wlan0 wlan1 }
+ backtick -E j { pipeline { s6-echo $i } tr [[:lower:]] [[:upper:]] }
+ multisubstitute
+ {
+ importas -uD "" ip6 ${j}_IP6
+ importas -ui ip6bis ${j}_IP6_BIS
+ }
+ if { if -t { eltest -n ${ip6} } ip -6 addr add ${ip6}/64 dev $i }
+ ip -6 addr add ${ip6bis}/64 dev $i preferred_lft 0
+}
+
+if
+{
+ forbacktickx -Ep i
+ {
+ if { s6-echo "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n0a\n0b\n0c\n0d\n0e\n0f" }
+ pipeline { if { s6-echo "obase=16" } seq 16 62 }
+ pipeline { bc }
+ tr [[:upper:]] [[:lower:]]
+ }
+ if { ip link add eth2_$i link eth2 type macvlan }
+ if { ip link set dev eth2_$i up }
+ s6-instance-create -d /run/service/udhcpc6-eth2 $i
+}
+
+redirfd -w 1 /proc/sys/net/ipv6/conf/eth2/accept_ra s6-echo 2
diff --git a/examples/source-router/init-iw/dependencies.d/ok-local b/examples/source-router/init-iw/dependencies.d/ok-local
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-iw/dependencies.d/ok-local
diff --git a/examples/source-router/init-iw/down b/examples/source-router/init-iw/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-iw/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-iw/flag-essential b/examples/source-router/init-iw/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-iw/flag-essential
diff --git a/examples/source-router/init-iw/type b/examples/source-router/init-iw/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-iw/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-iw/up b/examples/source-router/init-iw/up
new file mode 100644
index 0000000..c724fad
--- /dev/null
+++ b/examples/source-router/init-iw/up
@@ -0,0 +1 @@
+modprobe cfg80211 ieee80211_regdom=FR
diff --git a/examples/source-router/init-lan/dependencies.d/init-coldplug b/examples/source-router/init-lan/dependencies.d/init-coldplug
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-lan/dependencies.d/init-coldplug
diff --git a/examples/source-router/init-lan/dependencies.d/init-sysctl b/examples/source-router/init-lan/dependencies.d/init-sysctl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-lan/dependencies.d/init-sysctl
diff --git a/examples/source-router/init-lan/dependencies.d/mount-cgroups b/examples/source-router/init-lan/dependencies.d/mount-cgroups
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-lan/dependencies.d/mount-cgroups
diff --git a/examples/source-router/init-lan/down b/examples/source-router/init-lan/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-lan/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-lan/flag-essential b/examples/source-router/init-lan/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-lan/flag-essential
diff --git a/examples/source-router/init-lan/type b/examples/source-router/init-lan/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-lan/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-lan/up b/examples/source-router/init-lan/up
new file mode 100644
index 0000000..c78d016
--- /dev/null
+++ b/examples/source-router/init-lan/up
@@ -0,0 +1,19 @@
+foreground { modprobe ppp_generic }
+foreground { ip addr add 127.0.0.1/8 dev lo }
+if { ip link set dev lo up }
+s6-envdir /etc/env-network
+if
+{
+ forx -Ep i { 0 1 2 3 }
+ importas -i ip4 ETH${i}_IP4
+ if { ip addr add ${ip4}/24 dev eth$i }
+ ip link set dev eth$i up
+}
+foreground { ip rule add fwmark 1 priority 32001 table 252 }
+foreground { ip rule del priority 32767 }
+multisubstitute
+{
+ importas -ui ETH2_IP4 ETH2_IP4
+ importas -ui ETH2_GW4 ETH2_GW4
+}
+ip route add default dev eth2 via ${ETH2_GW4} src ${ETH2_IP4}
diff --git a/examples/source-router/init-sysctl/dependencies.d/mount-proc b/examples/source-router/init-sysctl/dependencies.d/mount-proc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-sysctl/dependencies.d/mount-proc
diff --git a/examples/source-router/init-sysctl/down b/examples/source-router/init-sysctl/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-sysctl/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-sysctl/flag-essential b/examples/source-router/init-sysctl/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-sysctl/flag-essential
diff --git a/examples/source-router/init-sysctl/type b/examples/source-router/init-sysctl/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-sysctl/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-sysctl/up b/examples/source-router/init-sysctl/up
new file mode 100644
index 0000000..9e846f8
--- /dev/null
+++ b/examples/source-router/init-sysctl/up
@@ -0,0 +1,6 @@
+redirfd -r 0 /etc/sysctl.conf
+forstdin -nCd"\n" -- LINE
+importas -u LINE LINE
+multidefine -C $LINE { CTL VALUE }
+redirfd -w 1 /proc/sys/$CTL
+s6-echo -- $VALUE
diff --git a/examples/source-router/init-tmp/dependencies.d/00 b/examples/source-router/init-tmp/dependencies.d/00
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-tmp/dependencies.d/00
diff --git a/examples/source-router/init-tmp/down b/examples/source-router/init-tmp/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source-router/init-tmp/down
@@ -0,0 +1 @@
+
diff --git a/examples/source-router/init-tmp/flag-essential b/examples/source-router/init-tmp/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-tmp/flag-essential
diff --git a/examples/source-router/init-tmp/type b/examples/source-router/init-tmp/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-tmp/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-tmp/up b/examples/source-router/init-tmp/up
new file mode 100644
index 0000000..8af5749
--- /dev/null
+++ b/examples/source-router/init-tmp/up
@@ -0,0 +1,2 @@
+foreground { s6-mount -t tmpfs -o noexec,nodev,mode=1777 tmpfs /tmp }
+exit 0
diff --git a/examples/source-router/init-urandom/dependencies.d/mount-rwfs b/examples/source-router/init-urandom/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-urandom/dependencies.d/mount-rwfs
diff --git a/examples/source-router/init-urandom/down b/examples/source-router/init-urandom/down
new file mode 100644
index 0000000..6ea7e05
--- /dev/null
+++ b/examples/source-router/init-urandom/down
@@ -0,0 +1 @@
+rngseed -rw
diff --git a/examples/source-router/init-urandom/flag-essential b/examples/source-router/init-urandom/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-urandom/flag-essential
diff --git a/examples/source-router/init-urandom/type b/examples/source-router/init-urandom/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-urandom/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-urandom/up b/examples/source-router/init-urandom/up
new file mode 100644
index 0000000..6ea7e05
--- /dev/null
+++ b/examples/source-router/init-urandom/up
@@ -0,0 +1 @@
+rngseed -rw
diff --git a/examples/source-router/init-wlan0/dependencies.d/init-iw b/examples/source-router/init-wlan0/dependencies.d/init-iw
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-wlan0/dependencies.d/init-iw
diff --git a/examples/source-router/init-wlan0/down b/examples/source-router/init-wlan0/down
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-wlan0/down
diff --git a/examples/source-router/init-wlan0/flag-essential b/examples/source-router/init-wlan0/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-wlan0/flag-essential
diff --git a/examples/source-router/init-wlan0/type b/examples/source-router/init-wlan0/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-wlan0/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-wlan0/up b/examples/source-router/init-wlan0/up
new file mode 100644
index 0000000..48205a2
--- /dev/null
+++ b/examples/source-router/init-wlan0/up
@@ -0,0 +1 @@
+modprobe ath9k blink=1
diff --git a/examples/source-router/init-wlan1/dependencies.d/init-iw b/examples/source-router/init-wlan1/dependencies.d/init-iw
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-wlan1/dependencies.d/init-iw
diff --git a/examples/source-router/init-wlan1/dependencies.d/init-wlan0 b/examples/source-router/init-wlan1/dependencies.d/init-wlan0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-wlan1/dependencies.d/init-wlan0
diff --git a/examples/source-router/init-wlan1/down b/examples/source-router/init-wlan1/down
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-wlan1/down
diff --git a/examples/source-router/init-wlan1/flag-essential b/examples/source-router/init-wlan1/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/init-wlan1/flag-essential
diff --git a/examples/source-router/init-wlan1/type b/examples/source-router/init-wlan1/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/init-wlan1/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/init-wlan1/up b/examples/source-router/init-wlan1/up
new file mode 100644
index 0000000..f5bc4ec
--- /dev/null
+++ b/examples/source-router/init-wlan1/up
@@ -0,0 +1 @@
+modprobe ath9k_htc
diff --git a/examples/source-router/ip-wlan0/dependencies.d/hostapd-wlan0 b/examples/source-router/ip-wlan0/dependencies.d/hostapd-wlan0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ip-wlan0/dependencies.d/hostapd-wlan0
diff --git a/examples/source-router/ip-wlan0/down b/examples/source-router/ip-wlan0/down
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ip-wlan0/down
diff --git a/examples/source-router/ip-wlan0/flag-essential b/examples/source-router/ip-wlan0/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ip-wlan0/flag-essential
diff --git a/examples/source-router/ip-wlan0/type b/examples/source-router/ip-wlan0/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/ip-wlan0/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/ip-wlan0/up b/examples/source-router/ip-wlan0/up
new file mode 100644
index 0000000..e7627a0
--- /dev/null
+++ b/examples/source-router/ip-wlan0/up
@@ -0,0 +1,4 @@
+s6-envdir /etc/env-network
+importas -uSi WLAN0_IP4
+if { ip addr add ${WLAN0_IP4}/24 dev wlan0 }
+ip link set dev wlan0 up
diff --git a/examples/source-router/ip-wlan1/dependencies.d/hostapd-wlan1 b/examples/source-router/ip-wlan1/dependencies.d/hostapd-wlan1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ip-wlan1/dependencies.d/hostapd-wlan1
diff --git a/examples/source-router/ip-wlan1/down b/examples/source-router/ip-wlan1/down
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ip-wlan1/down
diff --git a/examples/source-router/ip-wlan1/flag-essential b/examples/source-router/ip-wlan1/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ip-wlan1/flag-essential
diff --git a/examples/source-router/ip-wlan1/type b/examples/source-router/ip-wlan1/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/ip-wlan1/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/ip-wlan1/up b/examples/source-router/ip-wlan1/up
new file mode 100644
index 0000000..7513b05
--- /dev/null
+++ b/examples/source-router/ip-wlan1/up
@@ -0,0 +1,4 @@
+s6-envdir /etc/env-network
+importas -uSi WLAN1_IP4
+if { ip addr add ${WLAN1_IP4}/24 dev wlan1 }
+ip link set dev wlan1 up
diff --git a/examples/source-router/ircproxy-interlinked-4/dependencies.d/init-lan b/examples/source-router/ircproxy-interlinked-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-4/dependencies.d/init-lan
diff --git a/examples/source-router/ircproxy-interlinked-4/notification-fd b/examples/source-router/ircproxy-interlinked-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-interlinked-4/producer-for b/examples/source-router/ircproxy-interlinked-4/producer-for
new file mode 100644
index 0000000..8944c0d
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-4/producer-for
@@ -0,0 +1 @@
+ircproxy-interlinked-log
diff --git a/examples/source-router/ircproxy-interlinked-4/run b/examples/source-router/ircproxy-interlinked-4/run
new file mode 100755
index 0000000..b41a69a
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-4/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP4} 1002
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.interlinked.me. 6697
+s6-tlsc-io -k irc.interlinked.me -- 6 7
diff --git a/examples/source-router/ircproxy-interlinked-4/type b/examples/source-router/ircproxy-interlinked-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-interlinked-6-bis/dependencies.d/init-ipv6 b/examples/source-router/ircproxy-interlinked-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/ircproxy-interlinked-6-bis/notification-fd b/examples/source-router/ircproxy-interlinked-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-interlinked-6-bis/producer-for b/examples/source-router/ircproxy-interlinked-6-bis/producer-for
new file mode 100644
index 0000000..8944c0d
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6-bis/producer-for
@@ -0,0 +1 @@
+ircproxy-interlinked-log
diff --git a/examples/source-router/ircproxy-interlinked-6-bis/run b/examples/source-router/ircproxy-interlinked-6-bis/run
new file mode 100755
index 0000000..af296e3
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6-bis/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 1002
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.interlinked.me. 6697
+s6-tlsc-io -k irc.interlinked.me -- 6 7
diff --git a/examples/source-router/ircproxy-interlinked-6-bis/type b/examples/source-router/ircproxy-interlinked-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-interlinked-6/dependencies.d/init-ipv6 b/examples/source-router/ircproxy-interlinked-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/ircproxy-interlinked-6/notification-fd b/examples/source-router/ircproxy-interlinked-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-interlinked-6/producer-for b/examples/source-router/ircproxy-interlinked-6/producer-for
new file mode 100644
index 0000000..8944c0d
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6/producer-for
@@ -0,0 +1 @@
+ircproxy-interlinked-log
diff --git a/examples/source-router/ircproxy-interlinked-6/run b/examples/source-router/ircproxy-interlinked-6/run
new file mode 100755
index 0000000..d310801
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 1002
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.interlinked.me. 6697
+s6-tlsc-io -k irc.interlinked.me -- 6 7
diff --git a/examples/source-router/ircproxy-interlinked-6/type b/examples/source-router/ircproxy-interlinked-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-interlinked-log/consumer-for b/examples/source-router/ircproxy-interlinked-log/consumer-for
new file mode 100644
index 0000000..a108cbf
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-log/consumer-for
@@ -0,0 +1,4 @@
+ircproxy-interlinked-4
+ircproxy-interlinked-6
+ircproxy-interlinked-6-bis
+
diff --git a/examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-rwfs b/examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-sync b/examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-log/dependencies.d/mount-sync
diff --git a/examples/source-router/ircproxy-interlinked-log/pipeline-name b/examples/source-router/ircproxy-interlinked-log/pipeline-name
new file mode 100644
index 0000000..6805e1b
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-log/pipeline-name
@@ -0,0 +1 @@
+ircproxy-interlinked-pipeline
diff --git a/examples/source-router/ircproxy-interlinked-log/run b/examples/source-router/ircproxy-interlinked-log/run
new file mode 100755
index 0000000..3bb4e20
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid irclog
+exec -c
+s6-log t s1000000 n20 /var/log/ircproxy-interlinked
diff --git a/examples/source-router/ircproxy-interlinked-log/type b/examples/source-router/ircproxy-interlinked-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-interlinked-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-libera-4/dependencies.d/init-lan b/examples/source-router/ircproxy-libera-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-4/dependencies.d/init-lan
diff --git a/examples/source-router/ircproxy-libera-4/notification-fd b/examples/source-router/ircproxy-libera-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-libera-4/producer-for b/examples/source-router/ircproxy-libera-4/producer-for
new file mode 100644
index 0000000..acd38e6
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-4/producer-for
@@ -0,0 +1 @@
+ircproxy-libera-log
diff --git a/examples/source-router/ircproxy-libera-4/run b/examples/source-router/ircproxy-libera-4/run
new file mode 100755
index 0000000..95c5537
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-4/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP4} 1001
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.libera.chat. 6697
+s6-tlsc-io -k irc.libera.chat -- 6 7
diff --git a/examples/source-router/ircproxy-libera-4/type b/examples/source-router/ircproxy-libera-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-libera-6-bis/dependencies.d/init-ipv6 b/examples/source-router/ircproxy-libera-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/ircproxy-libera-6-bis/notification-fd b/examples/source-router/ircproxy-libera-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-libera-6-bis/producer-for b/examples/source-router/ircproxy-libera-6-bis/producer-for
new file mode 100644
index 0000000..acd38e6
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6-bis/producer-for
@@ -0,0 +1 @@
+ircproxy-libera-log
diff --git a/examples/source-router/ircproxy-libera-6-bis/run b/examples/source-router/ircproxy-libera-6-bis/run
new file mode 100755
index 0000000..619b249
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6-bis/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 1001
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.libera.chat. 6697
+s6-tlsc-io -k irc.libera.chat -- 6 7
diff --git a/examples/source-router/ircproxy-libera-6-bis/type b/examples/source-router/ircproxy-libera-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-libera-6/dependencies.d/init-ipv6 b/examples/source-router/ircproxy-libera-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/ircproxy-libera-6/notification-fd b/examples/source-router/ircproxy-libera-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-libera-6/producer-for b/examples/source-router/ircproxy-libera-6/producer-for
new file mode 100644
index 0000000..acd38e6
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6/producer-for
@@ -0,0 +1 @@
+ircproxy-libera-log
diff --git a/examples/source-router/ircproxy-libera-6/run b/examples/source-router/ircproxy-libera-6/run
new file mode 100755
index 0000000..e06c530
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 1001
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.libera.chat. 6697
+s6-tlsc-io -k irc.libera.chat -- 6 7
diff --git a/examples/source-router/ircproxy-libera-6/type b/examples/source-router/ircproxy-libera-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-libera-log/consumer-for b/examples/source-router/ircproxy-libera-log/consumer-for
new file mode 100644
index 0000000..3b77538
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-log/consumer-for
@@ -0,0 +1,3 @@
+ircproxy-libera-4
+ircproxy-libera-6
+ircproxy-libera-6-bis
diff --git a/examples/source-router/ircproxy-libera-log/dependencies.d/mount-rwfs b/examples/source-router/ircproxy-libera-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/ircproxy-libera-log/dependencies.d/mount-sync b/examples/source-router/ircproxy-libera-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-log/dependencies.d/mount-sync
diff --git a/examples/source-router/ircproxy-libera-log/pipeline-name b/examples/source-router/ircproxy-libera-log/pipeline-name
new file mode 100644
index 0000000..a19186b
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-log/pipeline-name
@@ -0,0 +1 @@
+ircproxy-libera-pipeline
diff --git a/examples/source-router/ircproxy-libera-log/run b/examples/source-router/ircproxy-libera-log/run
new file mode 100755
index 0000000..150091c
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid irclog
+exec -c
+s6-log t s1000000 n20 /var/log/ircproxy-libera
diff --git a/examples/source-router/ircproxy-libera-log/type b/examples/source-router/ircproxy-libera-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-libera-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-oftc-4/dependencies.d/init-lan b/examples/source-router/ircproxy-oftc-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-4/dependencies.d/init-lan
diff --git a/examples/source-router/ircproxy-oftc-4/notification-fd b/examples/source-router/ircproxy-oftc-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-oftc-4/producer-for b/examples/source-router/ircproxy-oftc-4/producer-for
new file mode 100644
index 0000000..91cba65
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-4/producer-for
@@ -0,0 +1 @@
+ircproxy-oftc-log
diff --git a/examples/source-router/ircproxy-oftc-4/run b/examples/source-router/ircproxy-oftc-4/run
new file mode 100755
index 0000000..e66edf6
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-4/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP4} 1000
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.oftc.net. 6697
+s6-tlsc-io -k irc.oftc.net -- 6 7
diff --git a/examples/source-router/ircproxy-oftc-4/type b/examples/source-router/ircproxy-oftc-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-oftc-6-bis/dependencies.d/init-ipv6 b/examples/source-router/ircproxy-oftc-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/ircproxy-oftc-6-bis/notification-fd b/examples/source-router/ircproxy-oftc-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-oftc-6-bis/producer-for b/examples/source-router/ircproxy-oftc-6-bis/producer-for
new file mode 100644
index 0000000..91cba65
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6-bis/producer-for
@@ -0,0 +1 @@
+ircproxy-oftc-log
diff --git a/examples/source-router/ircproxy-oftc-6-bis/run b/examples/source-router/ircproxy-oftc-6-bis/run
new file mode 100755
index 0000000..0294ab3
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6-bis/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 1000
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.oftc.net. 6697
+s6-tlsc-io -k irc.oftc.net -- 6 7
diff --git a/examples/source-router/ircproxy-oftc-6-bis/type b/examples/source-router/ircproxy-oftc-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-oftc-6/dependencies.d/init-ipv6 b/examples/source-router/ircproxy-oftc-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/ircproxy-oftc-6/notification-fd b/examples/source-router/ircproxy-oftc-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ircproxy-oftc-6/producer-for b/examples/source-router/ircproxy-oftc-6/producer-for
new file mode 100644
index 0000000..91cba65
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6/producer-for
@@ -0,0 +1 @@
+ircproxy-oftc-log
diff --git a/examples/source-router/ircproxy-oftc-6/run b/examples/source-router/ircproxy-oftc-6/run
new file mode 100755
index 0000000..6c00fb7
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 1000
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -v -l0 -- irc.oftc.net. 6697
+s6-tlsc-io -k irc.oftc.net -- 6 7
diff --git a/examples/source-router/ircproxy-oftc-6/type b/examples/source-router/ircproxy-oftc-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ircproxy-oftc-log/consumer-for b/examples/source-router/ircproxy-oftc-log/consumer-for
new file mode 100644
index 0000000..05cac46
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-log/consumer-for
@@ -0,0 +1,3 @@
+ircproxy-oftc-4
+ircproxy-oftc-6
+ircproxy-oftc-6-bis
diff --git a/examples/source-router/ircproxy-oftc-log/dependencies.d/mount-rwfs b/examples/source-router/ircproxy-oftc-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/ircproxy-oftc-log/dependencies.d/mount-sync b/examples/source-router/ircproxy-oftc-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-log/dependencies.d/mount-sync
diff --git a/examples/source-router/ircproxy-oftc-log/pipeline-name b/examples/source-router/ircproxy-oftc-log/pipeline-name
new file mode 100644
index 0000000..2f7d836
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-log/pipeline-name
@@ -0,0 +1 @@
+ircproxy-oftc-pipeline
diff --git a/examples/source-router/ircproxy-oftc-log/run b/examples/source-router/ircproxy-oftc-log/run
new file mode 100755
index 0000000..cc33a0d
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid irclog
+exec -c
+s6-log t s1000000 n20 /var/log/ircproxy-oftc
diff --git a/examples/source-router/ircproxy-oftc-log/type b/examples/source-router/ircproxy-oftc-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ircproxy-oftc-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/klogd-log/consumer-for b/examples/source-router/klogd-log/consumer-for
new file mode 100644
index 0000000..fd64770
--- /dev/null
+++ b/examples/source-router/klogd-log/consumer-for
@@ -0,0 +1 @@
+klogd
diff --git a/examples/source-router/klogd-log/dependencies.d/mount-rwfs b/examples/source-router/klogd-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/klogd-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/klogd-log/dependencies.d/mount-sync b/examples/source-router/klogd-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/klogd-log/dependencies.d/mount-sync
diff --git a/examples/source-router/klogd-log/pipeline-name b/examples/source-router/klogd-log/pipeline-name
new file mode 100644
index 0000000..cb7ca7b
--- /dev/null
+++ b/examples/source-router/klogd-log/pipeline-name
@@ -0,0 +1 @@
+klogd-pipeline
diff --git a/examples/source-router/klogd-log/run b/examples/source-router/klogd-log/run
new file mode 100755
index 0000000..d9659e7
--- /dev/null
+++ b/examples/source-router/klogd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid klog
+exec -c
+s6-log t s1000000 n20 /var/log/klogd
diff --git a/examples/source-router/klogd-log/type b/examples/source-router/klogd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/klogd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/klogd/dependencies.d/mount-proc b/examples/source-router/klogd/dependencies.d/mount-proc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/klogd/dependencies.d/mount-proc
diff --git a/examples/source-router/klogd/producer-for b/examples/source-router/klogd/producer-for
new file mode 100644
index 0000000..2f21a8f
--- /dev/null
+++ b/examples/source-router/klogd/producer-for
@@ -0,0 +1 @@
+klogd-log
diff --git a/examples/source-router/klogd/run b/examples/source-router/klogd/run
new file mode 100755
index 0000000..453b55b
--- /dev/null
+++ b/examples/source-router/klogd/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+redirfd -r 0 /proc/kmsg
+exec -c
+ucspilogd
diff --git a/examples/source-router/klogd/type b/examples/source-router/klogd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/klogd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/mdevd/dependencies.d/init-devtmpfs b/examples/source-router/mdevd/dependencies.d/init-devtmpfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mdevd/dependencies.d/init-devtmpfs
diff --git a/examples/source-router/mdevd/dependencies.d/mount-sys b/examples/source-router/mdevd/dependencies.d/mount-sys
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mdevd/dependencies.d/mount-sys
diff --git a/examples/source-router/mdevd/flag-essential b/examples/source-router/mdevd/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mdevd/flag-essential
diff --git a/examples/source-router/mdevd/notification-fd b/examples/source-router/mdevd/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/mdevd/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/mdevd/run b/examples/source-router/mdevd/run
new file mode 100644
index 0000000..b7a125c
--- /dev/null
+++ b/examples/source-router/mdevd/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -S0
+exec -c
+mdevd -D 3 -b 200000
diff --git a/examples/source-router/mdevd/type b/examples/source-router/mdevd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/mdevd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/mount-cgroups-base/dependencies.d/mount-sys b/examples/source-router/mount-cgroups-base/dependencies.d/mount-sys
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-cgroups-base/dependencies.d/mount-sys
diff --git a/examples/source-router/mount-cgroups-base/down b/examples/source-router/mount-cgroups-base/down
new file mode 100644
index 0000000..60450a4
--- /dev/null
+++ b/examples/source-router/mount-cgroups-base/down
@@ -0,0 +1 @@
+s6-umount /sys/fs/cgroup
diff --git a/examples/source-router/mount-cgroups-base/flag-essential b/examples/source-router/mount-cgroups-base/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-cgroups-base/flag-essential
diff --git a/examples/source-router/mount-cgroups-base/type b/examples/source-router/mount-cgroups-base/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/mount-cgroups-base/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/mount-cgroups-base/up b/examples/source-router/mount-cgroups-base/up
new file mode 100644
index 0000000..a2f1dd8
--- /dev/null
+++ b/examples/source-router/mount-cgroups-base/up
@@ -0,0 +1,2 @@
+if { s6-mkdir -p -m 0755 /sys/fs/cgroup }
+s6-mount -wt tmpfs cgroup /sys/fs/cgroup
diff --git a/examples/source-router/mount-cgroups-sub/dependencies.d/mount-cgroups-base b/examples/source-router/mount-cgroups-sub/dependencies.d/mount-cgroups-base
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-cgroups-sub/dependencies.d/mount-cgroups-base
diff --git a/examples/source-router/mount-cgroups-sub/down b/examples/source-router/mount-cgroups-sub/down
new file mode 100644
index 0000000..5bd0e30
--- /dev/null
+++ b/examples/source-router/mount-cgroups-sub/down
@@ -0,0 +1,4 @@
+elglob -v -0 CGROUPS /sys/fs/cgroup/*
+forx -p i { ${CGROUPS} }
+importas -u i i
+s6-umount $i
diff --git a/examples/source-router/mount-cgroups-sub/flag-essential b/examples/source-router/mount-cgroups-sub/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-cgroups-sub/flag-essential
diff --git a/examples/source-router/mount-cgroups-sub/type b/examples/source-router/mount-cgroups-sub/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/mount-cgroups-sub/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/mount-cgroups-sub/up b/examples/source-router/mount-cgroups-sub/up
new file mode 100644
index 0000000..5f7888d
--- /dev/null
+++ b/examples/source-router/mount-cgroups-sub/up
@@ -0,0 +1,10 @@
+redirfd -r 0 /proc/cgroups
+pipeline { s6-tail -n +2 }
+pipeline { s6-cut -d"\t" -f1 }
+pipeline { s6-grep -vF -- devices }
+forstdin -d"\n" -- i
+importas -u i i
+if { s6-mkdir -p /sys/fs/cgroup/${i} }
+foreground { s6-mount -t cgroup -o ${i} -- cgroup /sys/fs/cgroup/${i} }
+importas -u ? ?
+eltest $? -le 1
diff --git a/examples/source-router/mount-cgroups/contents.d/mount-cgroups-base b/examples/source-router/mount-cgroups/contents.d/mount-cgroups-base
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-cgroups/contents.d/mount-cgroups-base
diff --git a/examples/source-router/mount-cgroups/contents.d/mount-cgroups-sub b/examples/source-router/mount-cgroups/contents.d/mount-cgroups-sub
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-cgroups/contents.d/mount-cgroups-sub
diff --git a/examples/source-router/mount-cgroups/flag-essential b/examples/source-router/mount-cgroups/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-cgroups/flag-essential
diff --git a/examples/source-router/mount-cgroups/type b/examples/source-router/mount-cgroups/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/mount-cgroups/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/mount-disks/contents.d/mount-rwfs b/examples/source-router/mount-disks/contents.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-disks/contents.d/mount-rwfs
diff --git a/examples/source-router/mount-disks/contents.d/mount-swap b/examples/source-router/mount-disks/contents.d/mount-swap
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-disks/contents.d/mount-swap
diff --git a/examples/source-router/mount-disks/contents.d/mount-sync b/examples/source-router/mount-disks/contents.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-disks/contents.d/mount-sync
diff --git a/examples/source-router/mount-disks/flag-essential b/examples/source-router/mount-disks/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-disks/flag-essential
diff --git a/examples/source-router/mount-disks/type b/examples/source-router/mount-disks/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/mount-disks/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/mount-proc/dependencies.d/00 b/examples/source-router/mount-proc/dependencies.d/00
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-proc/dependencies.d/00
diff --git a/examples/source-router/mount-proc/down b/examples/source-router/mount-proc/down
new file mode 100644
index 0000000..57465e9
--- /dev/null
+++ b/examples/source-router/mount-proc/down
@@ -0,0 +1 @@
+s6-umount /proc
diff --git a/examples/source-router/mount-proc/flag-essential b/examples/source-router/mount-proc/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-proc/flag-essential
diff --git a/examples/source-router/mount-proc/type b/examples/source-router/mount-proc/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/mount-proc/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/mount-proc/up b/examples/source-router/mount-proc/up
new file mode 100644
index 0000000..f198029
--- /dev/null
+++ b/examples/source-router/mount-proc/up
@@ -0,0 +1 @@
+s6-mount -wt proc proc /proc
diff --git a/examples/source-router/mount-rwfs/dependencies.d/init-coldplug b/examples/source-router/mount-rwfs/dependencies.d/init-coldplug
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-rwfs/dependencies.d/init-coldplug
diff --git a/examples/source-router/mount-rwfs/dependencies.d/init-diskconfig b/examples/source-router/mount-rwfs/dependencies.d/init-diskconfig
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-rwfs/dependencies.d/init-diskconfig
diff --git a/examples/source-router/mount-rwfs/down b/examples/source-router/mount-rwfs/down
new file mode 100644
index 0000000..00b6eb1
--- /dev/null
+++ b/examples/source-router/mount-rwfs/down
@@ -0,0 +1 @@
+s6-umount /mnt/rwfs
diff --git a/examples/source-router/mount-rwfs/flag-essential b/examples/source-router/mount-rwfs/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-rwfs/flag-essential
diff --git a/examples/source-router/mount-rwfs/type b/examples/source-router/mount-rwfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/mount-rwfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/mount-rwfs/up b/examples/source-router/mount-rwfs/up
new file mode 100644
index 0000000..a1ae34b
--- /dev/null
+++ b/examples/source-router/mount-rwfs/up
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+importas -i rwfs_sinay rwfs_sinay
+s6-mount -wt ext4 -o barrier=0,nodev /dev/${rwfs_sinay} /mnt/rwfs
diff --git a/examples/source-router/mount-swap/dependencies.d/init-coldplug b/examples/source-router/mount-swap/dependencies.d/init-coldplug
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-swap/dependencies.d/init-coldplug
diff --git a/examples/source-router/mount-swap/dependencies.d/init-diskconfig b/examples/source-router/mount-swap/dependencies.d/init-diskconfig
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-swap/dependencies.d/init-diskconfig
diff --git a/examples/source-router/mount-swap/down b/examples/source-router/mount-swap/down
new file mode 100644
index 0000000..19c2ed0
--- /dev/null
+++ b/examples/source-router/mount-swap/down
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+importas -i swap swap
+s6-swapoff /dev/${swap}
diff --git a/examples/source-router/mount-swap/flag-essential b/examples/source-router/mount-swap/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-swap/flag-essential
diff --git a/examples/source-router/mount-swap/type b/examples/source-router/mount-swap/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/mount-swap/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/mount-swap/up b/examples/source-router/mount-swap/up
new file mode 100644
index 0000000..2017aee
--- /dev/null
+++ b/examples/source-router/mount-swap/up
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+importas -i swap swap
+s6-swapon /dev/${swap}
diff --git a/examples/source-router/mount-sync/dependencies.d/init-coldplug b/examples/source-router/mount-sync/dependencies.d/init-coldplug
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-sync/dependencies.d/init-coldplug
diff --git a/examples/source-router/mount-sync/dependencies.d/init-diskconfig b/examples/source-router/mount-sync/dependencies.d/init-diskconfig
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-sync/dependencies.d/init-diskconfig
diff --git a/examples/source-router/mount-sync/down b/examples/source-router/mount-sync/down
new file mode 100644
index 0000000..dc2cc56
--- /dev/null
+++ b/examples/source-router/mount-sync/down
@@ -0,0 +1 @@
+s6-umount /mnt/syncdata
diff --git a/examples/source-router/mount-sync/flag-essential b/examples/source-router/mount-sync/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-sync/flag-essential
diff --git a/examples/source-router/mount-sync/type b/examples/source-router/mount-sync/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/mount-sync/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/mount-sync/up b/examples/source-router/mount-sync/up
new file mode 100644
index 0000000..cfb0bc6
--- /dev/null
+++ b/examples/source-router/mount-sync/up
@@ -0,0 +1,3 @@
+s6-envdir -i /run/disk-devices
+importas -i syncdata_sinay syncdata_sinay
+s6-mount -wt ext4 -o barrier=0,sync,nodev,noexec,nosuid /dev/${syncdata_sinay} /mnt/syncdata
diff --git a/examples/source-router/mount-sys/dependencies.d/00 b/examples/source-router/mount-sys/dependencies.d/00
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-sys/dependencies.d/00
diff --git a/examples/source-router/mount-sys/down b/examples/source-router/mount-sys/down
new file mode 100644
index 0000000..dd1daca
--- /dev/null
+++ b/examples/source-router/mount-sys/down
@@ -0,0 +1 @@
+s6-umount /sys
diff --git a/examples/source-router/mount-sys/flag-essential b/examples/source-router/mount-sys/flag-essential
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/mount-sys/flag-essential
diff --git a/examples/source-router/mount-sys/type b/examples/source-router/mount-sys/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source-router/mount-sys/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source-router/mount-sys/up b/examples/source-router/mount-sys/up
new file mode 100644
index 0000000..780be7b
--- /dev/null
+++ b/examples/source-router/mount-sys/up
@@ -0,0 +1 @@
+s6-mount -wt sysfs sys /sys
diff --git a/examples/source-router/ntpclient-log/consumer-for b/examples/source-router/ntpclient-log/consumer-for
new file mode 100644
index 0000000..a0f3ade
--- /dev/null
+++ b/examples/source-router/ntpclient-log/consumer-for
@@ -0,0 +1 @@
+ntpclient
diff --git a/examples/source-router/ntpclient-log/dependencies.d/mount-rwfs b/examples/source-router/ntpclient-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ntpclient-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/ntpclient-log/dependencies.d/mount-sync b/examples/source-router/ntpclient-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ntpclient-log/dependencies.d/mount-sync
diff --git a/examples/source-router/ntpclient-log/pipeline-name b/examples/source-router/ntpclient-log/pipeline-name
new file mode 100644
index 0000000..f9615f1
--- /dev/null
+++ b/examples/source-router/ntpclient-log/pipeline-name
@@ -0,0 +1 @@
+ntpclient-pipeline
diff --git a/examples/source-router/ntpclient-log/run b/examples/source-router/ntpclient-log/run
new file mode 100755
index 0000000..8a70c74
--- /dev/null
+++ b/examples/source-router/ntpclient-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid ntplog
+exec -c
+s6-log t s1000000 n20 /var/log/ntpclient
diff --git a/examples/source-router/ntpclient-log/type b/examples/source-router/ntpclient-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ntpclient-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ntpclient/dependencies.d/dns-cache b/examples/source-router/ntpclient/dependencies.d/dns-cache
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ntpclient/dependencies.d/dns-cache
diff --git a/examples/source-router/ntpclient/dependencies.d/init-clock b/examples/source-router/ntpclient/dependencies.d/init-clock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ntpclient/dependencies.d/init-clock
diff --git a/examples/source-router/ntpclient/notification-fd b/examples/source-router/ntpclient/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ntpclient/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ntpclient/producer-for b/examples/source-router/ntpclient/producer-for
new file mode 100644
index 0000000..c51cd0b
--- /dev/null
+++ b/examples/source-router/ntpclient/producer-for
@@ -0,0 +1 @@
+ntpclient-log
diff --git a/examples/source-router/ntpclient/run b/examples/source-router/ntpclient/run
new file mode 100755
index 0000000..8ded1c1
--- /dev/null
+++ b/examples/source-router/ntpclient/run
@@ -0,0 +1,56 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+
+
+# Get the IP addresses for some NTP servers.
+# Limit the DNS queries to 30 seconds: if the DNS is slower than
+# that, chances are the server isn't good for us anyway.
+# All the queries are parallelized, so it's fast.
+
+pipeline
+{
+ s6-setuidgid nobody
+ forx -p I { 0 1 2 }
+ importas -u I I
+ s6-dnsip4 -t 30000 -- ${I}.fr.pool.ntp.org
+}
+importas -u p1 !
+
+
+# Ask for a NTP exchange with the servers we get.
+# If the exchange can't be completed in 5 seconds, kill it.
+# All the queries are parallelized.
+
+pipeline
+{
+ s6-setuidgid ntp
+ forstdin -p -d"\n" NTPSERVERIP
+ importas -u NTPSERVERIP NTPSERVERIP
+ s6-sntpclock -T 5000 ${NTPSERVERIP}
+}
+importas -u p2 !
+
+
+# Take the first answer we get
+
+pipeline
+{
+ s6-setuidgid nobody
+ s6-head -Sc 12
+}
+importas -u p3 !
+
+
+# Update the system clock. Accept 10 minutes of discrepancy.
+
+if { s6-clockadd -e 600000 }
+
+
+# Success. Send a readiness notification, reap zombies,
+# and sleep for 4 hours.
+
+s6-setuidgid nobody
+if { fdmove 1 3 s6-echo }
+wait { ${p1} ${p2} ${p3} }
+s6-sleep 14400
diff --git a/examples/source-router/ntpclient/type b/examples/source-router/ntpclient/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ntpclient/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/ok-ipv6/contents.d/fck-livebox b/examples/source-router/ok-ipv6/contents.d/fck-livebox
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-ipv6/contents.d/fck-livebox
diff --git a/examples/source-router/ok-ipv6/contents.d/init-ipv6 b/examples/source-router/ok-ipv6/contents.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-ipv6/contents.d/init-ipv6
diff --git a/examples/source-router/ok-ipv6/contents.d/radvd-pipeline b/examples/source-router/ok-ipv6/contents.d/radvd-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-ipv6/contents.d/radvd-pipeline
diff --git a/examples/source-router/ok-ipv6/contents.d/udhcpc6-eth2-pipeline b/examples/source-router/ok-ipv6/contents.d/udhcpc6-eth2-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-ipv6/contents.d/udhcpc6-eth2-pipeline
diff --git a/examples/source-router/ok-ipv6/type b/examples/source-router/ok-ipv6/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/ok-ipv6/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/ok-lan/contents.d/dns-cache-pipeline b/examples/source-router/ok-lan/contents.d/dns-cache-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/dns-cache-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/dns-server-tcp-pipeline b/examples/source-router/ok-lan/contents.d/dns-server-tcp-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/dns-server-tcp-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/dns-server-udp-pipeline b/examples/source-router/ok-lan/contents.d/dns-server-udp-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/dns-server-udp-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/dnsproxy6-tcp-pipeline b/examples/source-router/ok-lan/contents.d/dnsproxy6-tcp-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/dnsproxy6-tcp-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/dnsproxy6-udp-pipeline b/examples/source-router/ok-lan/contents.d/dnsproxy6-udp-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/dnsproxy6-udp-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/httpd-pipeline b/examples/source-router/ok-lan/contents.d/httpd-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/httpd-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/ircproxy-interlinked-pipeline b/examples/source-router/ok-lan/contents.d/ircproxy-interlinked-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/ircproxy-interlinked-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/ircproxy-libera-pipeline b/examples/source-router/ok-lan/contents.d/ircproxy-libera-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/ircproxy-libera-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/ircproxy-oftc-pipeline b/examples/source-router/ok-lan/contents.d/ircproxy-oftc-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/ircproxy-oftc-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/sshd-pipeline b/examples/source-router/ok-lan/contents.d/sshd-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/sshd-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/taiclockd-pipeline b/examples/source-router/ok-lan/contents.d/taiclockd-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/taiclockd-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/udhcpd-eth0-pipeline b/examples/source-router/ok-lan/contents.d/udhcpd-eth0-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/udhcpd-eth0-pipeline
diff --git a/examples/source-router/ok-lan/contents.d/wlan0-server b/examples/source-router/ok-lan/contents.d/wlan0-server
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/wlan0-server
diff --git a/examples/source-router/ok-lan/contents.d/wlan1-server b/examples/source-router/ok-lan/contents.d/wlan1-server
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-lan/contents.d/wlan1-server
diff --git a/examples/source-router/ok-lan/type b/examples/source-router/ok-lan/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/ok-lan/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/ok-local/contents.d/fifodir-cleanup b/examples/source-router/ok-local/contents.d/fifodir-cleanup
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/fifodir-cleanup
diff --git a/examples/source-router/ok-local/contents.d/init-coldplug b/examples/source-router/ok-local/contents.d/init-coldplug
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/init-coldplug
diff --git a/examples/source-router/ok-local/contents.d/init-sysctl b/examples/source-router/ok-local/contents.d/init-sysctl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/init-sysctl
diff --git a/examples/source-router/ok-local/contents.d/init-tmp b/examples/source-router/ok-local/contents.d/init-tmp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/init-tmp
diff --git a/examples/source-router/ok-local/contents.d/init-urandom b/examples/source-router/ok-local/contents.d/init-urandom
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/init-urandom
diff --git a/examples/source-router/ok-local/contents.d/klogd b/examples/source-router/ok-local/contents.d/klogd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/klogd
diff --git a/examples/source-router/ok-local/contents.d/mdevd b/examples/source-router/ok-local/contents.d/mdevd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/mdevd
diff --git a/examples/source-router/ok-local/contents.d/mount-cgroups b/examples/source-router/ok-local/contents.d/mount-cgroups
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/mount-cgroups
diff --git a/examples/source-router/ok-local/contents.d/mount-disks b/examples/source-router/ok-local/contents.d/mount-disks
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/mount-disks
diff --git a/examples/source-router/ok-local/contents.d/syslogd b/examples/source-router/ok-local/contents.d/syslogd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-local/contents.d/syslogd
diff --git a/examples/source-router/ok-local/type b/examples/source-router/ok-local/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/ok-local/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/ok-wan/contents.d/adslclient-pipeline b/examples/source-router/ok-wan/contents.d/adslclient-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-wan/contents.d/adslclient-pipeline
diff --git a/examples/source-router/ok-wan/contents.d/ntpclient-pipeline b/examples/source-router/ok-wan/contents.d/ntpclient-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ok-wan/contents.d/ntpclient-pipeline
diff --git a/examples/source-router/ok-wan/type b/examples/source-router/ok-wan/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/ok-wan/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/radvd-log/consumer-for b/examples/source-router/radvd-log/consumer-for
new file mode 100644
index 0000000..238a034
--- /dev/null
+++ b/examples/source-router/radvd-log/consumer-for
@@ -0,0 +1 @@
+radvd
diff --git a/examples/source-router/radvd-log/dependencies.d/mount-rwfs b/examples/source-router/radvd-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/radvd-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/radvd-log/dependencies.d/mount-sync b/examples/source-router/radvd-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/radvd-log/dependencies.d/mount-sync
diff --git a/examples/source-router/radvd-log/pipeline-name b/examples/source-router/radvd-log/pipeline-name
new file mode 100644
index 0000000..9b77f7d
--- /dev/null
+++ b/examples/source-router/radvd-log/pipeline-name
@@ -0,0 +1 @@
+radvd-pipeline
diff --git a/examples/source-router/radvd-log/run b/examples/source-router/radvd-log/run
new file mode 100755
index 0000000..35ee536
--- /dev/null
+++ b/examples/source-router/radvd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid radvlog
+exec -c
+s6-log t s1000000 n20 /var/log/radvd
diff --git a/examples/source-router/radvd-log/type b/examples/source-router/radvd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/radvd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/radvd/dependencies.d/fck-livebox b/examples/source-router/radvd/dependencies.d/fck-livebox
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/radvd/dependencies.d/fck-livebox
diff --git a/examples/source-router/radvd/dependencies.d/init-ipv6 b/examples/source-router/radvd/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/radvd/dependencies.d/init-ipv6
diff --git a/examples/source-router/radvd/dependencies.d/udhcpc6-eth2 b/examples/source-router/radvd/dependencies.d/udhcpc6-eth2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/radvd/dependencies.d/udhcpc6-eth2
diff --git a/examples/source-router/radvd/producer-for b/examples/source-router/radvd/producer-for
new file mode 100644
index 0000000..1b71c7f
--- /dev/null
+++ b/examples/source-router/radvd/producer-for
@@ -0,0 +1 @@
+radvd-log
diff --git a/examples/source-router/radvd/run b/examples/source-router/radvd/run
new file mode 100755
index 0000000..73e93c7
--- /dev/null
+++ b/examples/source-router/radvd/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+radvd -n -m stderr -u radvd -p /var/run/radvd/radvd.pid
diff --git a/examples/source-router/radvd/type b/examples/source-router/radvd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/radvd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/sshd-4/data/rules/ip4/0.0.0.0_0/deny b/examples/source-router/sshd-4/data/rules/ip4/0.0.0.0_0/deny
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-4/data/rules/ip4/0.0.0.0_0/deny
diff --git a/examples/source-router/sshd-4/data/rules/ip4/192.168.0.0_22/allow b/examples/source-router/sshd-4/data/rules/ip4/192.168.0.0_22/allow
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-4/data/rules/ip4/192.168.0.0_22/allow
diff --git a/examples/source-router/sshd-4/dependencies.d/init-lan b/examples/source-router/sshd-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-4/dependencies.d/init-lan
diff --git a/examples/source-router/sshd-4/dependencies.d/init-urandom b/examples/source-router/sshd-4/dependencies.d/init-urandom
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-4/dependencies.d/init-urandom
diff --git a/examples/source-router/sshd-4/notification-fd b/examples/source-router/sshd-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/sshd-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/sshd-4/producer-for b/examples/source-router/sshd-4/producer-for
new file mode 100644
index 0000000..b8ef8c5
--- /dev/null
+++ b/examples/source-router/sshd-4/producer-for
@@ -0,0 +1 @@
+sshd-log
diff --git a/examples/source-router/sshd-4/run b/examples/source-router/sshd-4/run
new file mode 100755
index 0000000..785bea2
--- /dev/null
+++ b/examples/source-router/sshd-4/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+fdmove 1 3
+s6-tcpserver -v -1 -- ${ETH0_IP4} 22
+s6-tcpserver-access -v2 -l0 -t 5000 -x /etc/tcprules/sshd.cdb --
+tinysshd -v /etc/tinyssh/keys
diff --git a/examples/source-router/sshd-4/type b/examples/source-router/sshd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/sshd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/sshd-6-bis/dependencies.d/init-ipv6 b/examples/source-router/sshd-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/sshd-6-bis/dependencies.d/init-urandom b/examples/source-router/sshd-6-bis/dependencies.d/init-urandom
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-6-bis/dependencies.d/init-urandom
diff --git a/examples/source-router/sshd-6-bis/notification-fd b/examples/source-router/sshd-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/sshd-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/sshd-6-bis/producer-for b/examples/source-router/sshd-6-bis/producer-for
new file mode 100644
index 0000000..b8ef8c5
--- /dev/null
+++ b/examples/source-router/sshd-6-bis/producer-for
@@ -0,0 +1 @@
+sshd-log
diff --git a/examples/source-router/sshd-6-bis/run b/examples/source-router/sshd-6-bis/run
new file mode 100755
index 0000000..33e215c
--- /dev/null
+++ b/examples/source-router/sshd-6-bis/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+fdmove 1 3
+s6-tcpserver -v -1 -- ${ETH0_IP6_BIS} 22
+s6-tcpserver-access -v2 -l0 -t 5000 -x /etc/tcprules/sshd.cdb --
+tinysshd -v /etc/tinyssh/keys
diff --git a/examples/source-router/sshd-6-bis/type b/examples/source-router/sshd-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/sshd-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/sshd-6/dependencies.d/init-ipv6 b/examples/source-router/sshd-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/sshd-6/dependencies.d/init-urandom b/examples/source-router/sshd-6/dependencies.d/init-urandom
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-6/dependencies.d/init-urandom
diff --git a/examples/source-router/sshd-6/notification-fd b/examples/source-router/sshd-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/sshd-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/sshd-6/producer-for b/examples/source-router/sshd-6/producer-for
new file mode 100644
index 0000000..b8ef8c5
--- /dev/null
+++ b/examples/source-router/sshd-6/producer-for
@@ -0,0 +1 @@
+sshd-log
diff --git a/examples/source-router/sshd-6/run b/examples/source-router/sshd-6/run
new file mode 100755
index 0000000..ca315c0
--- /dev/null
+++ b/examples/source-router/sshd-6/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+fdmove 1 3
+s6-tcpserver -v -1 -- ${ETH0_IP6} 22
+s6-tcpserver-access -v2 -l0 -t 5000 -x /etc/tcprules/sshd.cdb --
+tinysshd -v /etc/tinyssh/keys
diff --git a/examples/source-router/sshd-6/type b/examples/source-router/sshd-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/sshd-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/sshd-log/consumer-for b/examples/source-router/sshd-log/consumer-for
new file mode 100644
index 0000000..53cea4a
--- /dev/null
+++ b/examples/source-router/sshd-log/consumer-for
@@ -0,0 +1,3 @@
+sshd-4
+sshd-6
+sshd-6-bis
diff --git a/examples/source-router/sshd-log/dependencies.d/mount-rwfs b/examples/source-router/sshd-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/sshd-log/dependencies.d/mount-sync b/examples/source-router/sshd-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/sshd-log/dependencies.d/mount-sync
diff --git a/examples/source-router/sshd-log/pipeline-name b/examples/source-router/sshd-log/pipeline-name
new file mode 100644
index 0000000..f7797f8
--- /dev/null
+++ b/examples/source-router/sshd-log/pipeline-name
@@ -0,0 +1 @@
+sshd-pipeline
diff --git a/examples/source-router/sshd-log/run b/examples/source-router/sshd-log/run
new file mode 100755
index 0000000..d07f180
--- /dev/null
+++ b/examples/source-router/sshd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid log
+exec -c
+s6-log t s1000000 n20 /var/log/sshd
diff --git a/examples/source-router/sshd-log/type b/examples/source-router/sshd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/sshd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/syslogd-log/consumer-for b/examples/source-router/syslogd-log/consumer-for
new file mode 100644
index 0000000..96c5cc7
--- /dev/null
+++ b/examples/source-router/syslogd-log/consumer-for
@@ -0,0 +1 @@
+syslogd
diff --git a/examples/source-router/syslogd-log/dependencies.d/mount-rwfs b/examples/source-router/syslogd-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/syslogd-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/syslogd-log/dependencies.d/mount-sync b/examples/source-router/syslogd-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/syslogd-log/dependencies.d/mount-sync
diff --git a/examples/source-router/syslogd-log/pipeline-name b/examples/source-router/syslogd-log/pipeline-name
new file mode 100644
index 0000000..c8a925a
--- /dev/null
+++ b/examples/source-router/syslogd-log/pipeline-name
@@ -0,0 +1 @@
+syslogd-pipeline
diff --git a/examples/source-router/syslogd-log/run b/examples/source-router/syslogd-log/run
new file mode 100755
index 0000000..2f62604
--- /dev/null
+++ b/examples/source-router/syslogd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid syslog
+exec -c
+s6-log t s1000000 n20 /var/log/syslogd
diff --git a/examples/source-router/syslogd-log/type b/examples/source-router/syslogd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/syslogd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/syslogd/dependencies.d/init-devtmpfs b/examples/source-router/syslogd/dependencies.d/init-devtmpfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/syslogd/dependencies.d/init-devtmpfs
diff --git a/examples/source-router/syslogd/notification-fd b/examples/source-router/syslogd/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/syslogd/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/syslogd/producer-for b/examples/source-router/syslogd/producer-for
new file mode 100644
index 0000000..75d14f5
--- /dev/null
+++ b/examples/source-router/syslogd/producer-for
@@ -0,0 +1 @@
+syslogd-log
diff --git a/examples/source-router/syslogd/run b/examples/source-router/syslogd/run
new file mode 100755
index 0000000..5fc28ce
--- /dev/null
+++ b/examples/source-router/syslogd/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+
+emptyenv -p
+s6-envuidgid nobody
+s6-socklog -d3 -U -t3000
diff --git a/examples/source-router/syslogd/type b/examples/source-router/syslogd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/syslogd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/taiclockd-4/dependencies.d/init-lan b/examples/source-router/taiclockd-4/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/taiclockd-4/dependencies.d/init-lan
diff --git a/examples/source-router/taiclockd-4/producer-for b/examples/source-router/taiclockd-4/producer-for
new file mode 100644
index 0000000..a98606b
--- /dev/null
+++ b/examples/source-router/taiclockd-4/producer-for
@@ -0,0 +1 @@
+taiclockd-log
diff --git a/examples/source-router/taiclockd-4/run b/examples/source-router/taiclockd-4/run
new file mode 100755
index 0000000..bad6d92
--- /dev/null
+++ b/examples/source-router/taiclockd-4/run
@@ -0,0 +1,6 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-setuidgid tai
+s6-envdir /etc/env-network
+importas -i ETH0_IP4 ETH0_IP4
+s6-taiclockd -i ${ETH0_IP4}
diff --git a/examples/source-router/taiclockd-4/type b/examples/source-router/taiclockd-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/taiclockd-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/taiclockd-6-bis/dependencies.d/init-ipv6 b/examples/source-router/taiclockd-6-bis/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/taiclockd-6-bis/dependencies.d/init-ipv6
diff --git a/examples/source-router/taiclockd-6-bis/producer-for b/examples/source-router/taiclockd-6-bis/producer-for
new file mode 100644
index 0000000..a98606b
--- /dev/null
+++ b/examples/source-router/taiclockd-6-bis/producer-for
@@ -0,0 +1 @@
+taiclockd-log
diff --git a/examples/source-router/taiclockd-6-bis/run b/examples/source-router/taiclockd-6-bis/run
new file mode 100755
index 0000000..f28dee1
--- /dev/null
+++ b/examples/source-router/taiclockd-6-bis/run
@@ -0,0 +1,6 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-setuidgid tai
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+s6-taiclockd -i ${ETH0_IP6_BIS}
diff --git a/examples/source-router/taiclockd-6-bis/type b/examples/source-router/taiclockd-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/taiclockd-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/taiclockd-6/dependencies.d/init-ipv6 b/examples/source-router/taiclockd-6/dependencies.d/init-ipv6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/taiclockd-6/dependencies.d/init-ipv6
diff --git a/examples/source-router/taiclockd-6/producer-for b/examples/source-router/taiclockd-6/producer-for
new file mode 100644
index 0000000..a98606b
--- /dev/null
+++ b/examples/source-router/taiclockd-6/producer-for
@@ -0,0 +1 @@
+taiclockd-log
diff --git a/examples/source-router/taiclockd-6/run b/examples/source-router/taiclockd-6/run
new file mode 100755
index 0000000..392bae7
--- /dev/null
+++ b/examples/source-router/taiclockd-6/run
@@ -0,0 +1,6 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-setuidgid tai
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+s6-taiclockd -i ${ETH0_IP6}
diff --git a/examples/source-router/taiclockd-6/type b/examples/source-router/taiclockd-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/taiclockd-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/taiclockd-log/consumer-for b/examples/source-router/taiclockd-log/consumer-for
new file mode 100644
index 0000000..9139ba4
--- /dev/null
+++ b/examples/source-router/taiclockd-log/consumer-for
@@ -0,0 +1,3 @@
+taiclockd-4
+taiclockd-6
+taiclockd-6-bis
diff --git a/examples/source-router/taiclockd-log/dependencies.d/mount-rwfs b/examples/source-router/taiclockd-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/taiclockd-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/taiclockd-log/dependencies.d/mount-sync b/examples/source-router/taiclockd-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/taiclockd-log/dependencies.d/mount-sync
diff --git a/examples/source-router/taiclockd-log/pipeline-name b/examples/source-router/taiclockd-log/pipeline-name
new file mode 100644
index 0000000..23220d4
--- /dev/null
+++ b/examples/source-router/taiclockd-log/pipeline-name
@@ -0,0 +1 @@
+taiclockd-pipeline
diff --git a/examples/source-router/taiclockd-log/run b/examples/source-router/taiclockd-log/run
new file mode 100755
index 0000000..dc6d7f8
--- /dev/null
+++ b/examples/source-router/taiclockd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid tailog
+exec -c
+s6-log t s1000000 n20 /var/log/taiclockd
diff --git a/examples/source-router/taiclockd-log/type b/examples/source-router/taiclockd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/taiclockd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpc6-eth2-log/consumer-for b/examples/source-router/udhcpc6-eth2-log/consumer-for
new file mode 100644
index 0000000..3e1f178
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2-log/consumer-for
@@ -0,0 +1 @@
+udhcpc6-eth2
diff --git a/examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-rwfs b/examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-sync b/examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2-log/dependencies.d/mount-sync
diff --git a/examples/source-router/udhcpc6-eth2-log/notification-fd b/examples/source-router/udhcpc6-eth2-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/udhcpc6-eth2-log/pipeline-name b/examples/source-router/udhcpc6-eth2-log/pipeline-name
new file mode 100644
index 0000000..24329b7
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2-log/pipeline-name
@@ -0,0 +1 @@
+udhcpc6-eth2-pipeline
diff --git a/examples/source-router/udhcpc6-eth2-log/run b/examples/source-router/udhcpc6-eth2-log/run
new file mode 100644
index 0000000..2fa3a92
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid log
+exec -c
+s6-log -bd3 -- t n10 s1000000 /var/log/udhcpc6-eth2
diff --git a/examples/source-router/udhcpc6-eth2-log/type b/examples/source-router/udhcpc6-eth2-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpc6-eth2/dependencies.d/init-lan b/examples/source-router/udhcpc6-eth2/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/dependencies.d/init-lan
diff --git a/examples/source-router/udhcpc6-eth2/notification-fd b/examples/source-router/udhcpc6-eth2/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/udhcpc6-eth2/producer-for b/examples/source-router/udhcpc6-eth2/producer-for
new file mode 100644
index 0000000..250f720
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/producer-for
@@ -0,0 +1 @@
+udhcpc6-eth2-log
diff --git a/examples/source-router/udhcpc6-eth2/run b/examples/source-router/udhcpc6-eth2/run
new file mode 100644
index 0000000..7de0521
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -S0
+
+fdmove -c 2 1
+if { s6-mkdir -p instance }
+s6-svscan -d3 -C64 -L11 -- instance
diff --git a/examples/source-router/udhcpc6-eth2/template/finish b/examples/source-router/udhcpc6-eth2/template/finish
new file mode 100755
index 0000000..88e7171
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/template/finish
@@ -0,0 +1,3 @@
+#!/command/execlineb -S4
+
+/etc/udhcpc6/finish $3 $1 $2
diff --git a/examples/source-router/udhcpc6-eth2/template/notification-fd b/examples/source-router/udhcpc6-eth2/template/notification-fd
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/template/notification-fd
@@ -0,0 +1 @@
+5
diff --git a/examples/source-router/udhcpc6-eth2/template/run b/examples/source-router/udhcpc6-eth2/template/run
new file mode 100755
index 0000000..27e3221
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/template/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+emptyenv -p
+udhcpc6 -f -d -m -r no -A 600 -s /etc/udhcpc6/run-script -i eth2_$1
diff --git a/examples/source-router/udhcpc6-eth2/type b/examples/source-router/udhcpc6-eth2/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpc6-eth2/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpd-eth0-log/consumer-for b/examples/source-router/udhcpd-eth0-log/consumer-for
new file mode 100644
index 0000000..07ba9e6
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0-log/consumer-for
@@ -0,0 +1 @@
+udhcpd-eth0
diff --git a/examples/source-router/udhcpd-eth0-log/dependencies.d/mount-rwfs b/examples/source-router/udhcpd-eth0-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/udhcpd-eth0-log/dependencies.d/mount-sync b/examples/source-router/udhcpd-eth0-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0-log/dependencies.d/mount-sync
diff --git a/examples/source-router/udhcpd-eth0-log/pipeline-name b/examples/source-router/udhcpd-eth0-log/pipeline-name
new file mode 100644
index 0000000..232bb74
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0-log/pipeline-name
@@ -0,0 +1 @@
+udhcpd-eth0-pipeline
diff --git a/examples/source-router/udhcpd-eth0-log/run b/examples/source-router/udhcpd-eth0-log/run
new file mode 100755
index 0000000..21cb782
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid log
+exec -c
+s6-log t s1000000 n20 /var/log/udhcpd-eth0
diff --git a/examples/source-router/udhcpd-eth0-log/type b/examples/source-router/udhcpd-eth0-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpd-eth0/dependencies.d/init-lan b/examples/source-router/udhcpd-eth0/dependencies.d/init-lan
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0/dependencies.d/init-lan
diff --git a/examples/source-router/udhcpd-eth0/producer-for b/examples/source-router/udhcpd-eth0/producer-for
new file mode 100644
index 0000000..ccf9f4b
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0/producer-for
@@ -0,0 +1 @@
+udhcpd-eth0-log
diff --git a/examples/source-router/udhcpd-eth0/run b/examples/source-router/udhcpd-eth0/run
new file mode 100755
index 0000000..d075d18
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -ui ETH0_IP4 ETH0_IP4
+udhcpd -f -I ${ETH0_IP4} /etc/udhcpd-eth0.conf
diff --git a/examples/source-router/udhcpd-eth0/timeout-kill b/examples/source-router/udhcpd-eth0/timeout-kill
new file mode 100644
index 0000000..ccfc37a
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0/timeout-kill
@@ -0,0 +1 @@
+50000
diff --git a/examples/source-router/udhcpd-eth0/type b/examples/source-router/udhcpd-eth0/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpd-eth0/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpd-wlan0-log/consumer-for b/examples/source-router/udhcpd-wlan0-log/consumer-for
new file mode 100644
index 0000000..d336700
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0-log/consumer-for
@@ -0,0 +1 @@
+udhcpd-wlan0
diff --git a/examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-rwfs b/examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-sync b/examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0-log/dependencies.d/mount-sync
diff --git a/examples/source-router/udhcpd-wlan0-log/pipeline-name b/examples/source-router/udhcpd-wlan0-log/pipeline-name
new file mode 100644
index 0000000..bf20ff6
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0-log/pipeline-name
@@ -0,0 +1 @@
+udhcpd-wlan0-pipeline
diff --git a/examples/source-router/udhcpd-wlan0-log/run b/examples/source-router/udhcpd-wlan0-log/run
new file mode 100755
index 0000000..5142145
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log t s1000000 n20 /var/log/udhcpd-wlan0
diff --git a/examples/source-router/udhcpd-wlan0-log/type b/examples/source-router/udhcpd-wlan0-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpd-wlan0/dependencies.d/ip-wlan0 b/examples/source-router/udhcpd-wlan0/dependencies.d/ip-wlan0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0/dependencies.d/ip-wlan0
diff --git a/examples/source-router/udhcpd-wlan0/producer-for b/examples/source-router/udhcpd-wlan0/producer-for
new file mode 100644
index 0000000..f5ac32a
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0/producer-for
@@ -0,0 +1 @@
+udhcpd-wlan0-log
diff --git a/examples/source-router/udhcpd-wlan0/run b/examples/source-router/udhcpd-wlan0/run
new file mode 100755
index 0000000..3e0c3ac
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -ui WLAN0_IP4 WLAN0_IP4
+udhcpd -f -I ${WLAN0_IP4} /etc/udhcpd-wlan0.conf
diff --git a/examples/source-router/udhcpd-wlan0/timeout-kill b/examples/source-router/udhcpd-wlan0/timeout-kill
new file mode 100644
index 0000000..ccfc37a
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0/timeout-kill
@@ -0,0 +1 @@
+50000
diff --git a/examples/source-router/udhcpd-wlan0/type b/examples/source-router/udhcpd-wlan0/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan0/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpd-wlan1-log/consumer-for b/examples/source-router/udhcpd-wlan1-log/consumer-for
new file mode 100644
index 0000000..239352b
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1-log/consumer-for
@@ -0,0 +1 @@
+udhcpd-wlan1
diff --git a/examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-rwfs b/examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-rwfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-rwfs
diff --git a/examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-sync b/examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-sync
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1-log/dependencies.d/mount-sync
diff --git a/examples/source-router/udhcpd-wlan1-log/pipeline-name b/examples/source-router/udhcpd-wlan1-log/pipeline-name
new file mode 100644
index 0000000..e7e8731
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1-log/pipeline-name
@@ -0,0 +1 @@
+udhcpd-wlan1-pipeline
diff --git a/examples/source-router/udhcpd-wlan1-log/run b/examples/source-router/udhcpd-wlan1-log/run
new file mode 100755
index 0000000..1704464
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log t s1000000 n20 /var/log/udhcpd-wlan1
diff --git a/examples/source-router/udhcpd-wlan1-log/type b/examples/source-router/udhcpd-wlan1-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/udhcpd-wlan1/dependencies.d/ip-wlan1 b/examples/source-router/udhcpd-wlan1/dependencies.d/ip-wlan1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1/dependencies.d/ip-wlan1
diff --git a/examples/source-router/udhcpd-wlan1/producer-for b/examples/source-router/udhcpd-wlan1/producer-for
new file mode 100644
index 0000000..d26f719
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1/producer-for
@@ -0,0 +1 @@
+udhcpd-wlan1-log
diff --git a/examples/source-router/udhcpd-wlan1/run b/examples/source-router/udhcpd-wlan1/run
new file mode 100755
index 0000000..7092d28
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -ui WLAN1_IP4 WLAN1_IP4
+udhcpd -f -I ${WLAN1_IP4} /etc/udhcpd-wlan1.conf
diff --git a/examples/source-router/udhcpd-wlan1/timeout-kill b/examples/source-router/udhcpd-wlan1/timeout-kill
new file mode 100644
index 0000000..ccfc37a
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1/timeout-kill
@@ -0,0 +1 @@
+50000
diff --git a/examples/source-router/udhcpd-wlan1/type b/examples/source-router/udhcpd-wlan1/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/udhcpd-wlan1/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source-router/wlan0-server/contents.d/hostapd-wlan0-pipeline b/examples/source-router/wlan0-server/contents.d/hostapd-wlan0-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/wlan0-server/contents.d/hostapd-wlan0-pipeline
diff --git a/examples/source-router/wlan0-server/contents.d/ip-wlan0 b/examples/source-router/wlan0-server/contents.d/ip-wlan0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/wlan0-server/contents.d/ip-wlan0
diff --git a/examples/source-router/wlan0-server/contents.d/udhcpd-wlan0-pipeline b/examples/source-router/wlan0-server/contents.d/udhcpd-wlan0-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/wlan0-server/contents.d/udhcpd-wlan0-pipeline
diff --git a/examples/source-router/wlan0-server/type b/examples/source-router/wlan0-server/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/wlan0-server/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source-router/wlan1-server/contents.d/hostapd-wlan1-pipeline b/examples/source-router/wlan1-server/contents.d/hostapd-wlan1-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/wlan1-server/contents.d/hostapd-wlan1-pipeline
diff --git a/examples/source-router/wlan1-server/contents.d/ip-wlan1 b/examples/source-router/wlan1-server/contents.d/ip-wlan1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/wlan1-server/contents.d/ip-wlan1
diff --git a/examples/source-router/wlan1-server/contents.d/udhcpd-wlan1-pipeline b/examples/source-router/wlan1-server/contents.d/udhcpd-wlan1-pipeline
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/wlan1-server/contents.d/udhcpd-wlan1-pipeline
diff --git a/examples/source-router/wlan1-server/type b/examples/source-router/wlan1-server/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source-router/wlan1-server/type
@@ -0,0 +1 @@
+bundle