mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-20 02:55:33 +00:00
parent
9f3c5d92b3
commit
691be92046
@ -8,6 +8,7 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
@ -33,8 +34,9 @@
|
||||
<start name="nic_drv" caps="130">
|
||||
<binary name="fec_nic_drv"/>
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"><parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
|
@ -8,6 +8,7 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
@ -34,8 +35,9 @@
|
||||
<start name="nic_drv" caps="130">
|
||||
<binary name="fec_nic_drv"/>
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"><parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<config>
|
||||
|
||||
<parent-provides>
|
||||
<service name="IRQ"/>
|
||||
<service name="IO_MEM"/>
|
||||
@ -8,13 +9,11 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="nic_drv" label="fec0"/> </default-policy> </service>
|
||||
|
||||
<start name="platform_drv" caps="150">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Platform"/> </provides>
|
||||
@ -44,15 +43,17 @@
|
||||
<start name="nic_drv" caps="150">
|
||||
<binary name="fec_nic_drv"/>
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config mode="uplink_client" uplink_label="fec0"/>
|
||||
<route>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="Uplink"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="Platform"> <child name="platform_drv"/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
</config>
|
||||
|
@ -8,13 +8,11 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="nic_drv"/> </default-policy> </service>
|
||||
|
||||
<start name="platform_drv" caps="150">
|
||||
<binary name="imx8mq_platform_drv"/>
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
@ -36,14 +34,15 @@
|
||||
<start name="nic_drv" caps="130">
|
||||
<binary name="fec_nic_drv"/>
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="Uplink"> <parent/> </service>
|
||||
<service name="Platform"> <child name="platform_drv"/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -74,16 +74,19 @@ append config {
|
||||
</provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_drv" priority="-1">
|
||||
<start name="nic_drv" priority="-1" caps="120">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="wifi_drv" caps="300" priority="-1">
|
||||
<resource name="RAM" quantum="24M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config ld_verbose="no">
|
||||
<config mode="uplink_client" ld_verbose="no">
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> <rtc/> <null/>
|
||||
<jitterentropy name="random"/>
|
||||
@ -94,6 +97,7 @@ append config {
|
||||
<libc stdout="/dev/null" stderr="/dev/null" rtc="/dev/rtc"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="router"/> </service>
|
||||
<service name="Rtc"> <any-child/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="ROM" label="wifi_config"> <child name="config_rom"/> </service>
|
||||
@ -142,15 +146,18 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<uplink label="nic" domain="uplink" />
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink" />
|
||||
|
||||
<domain name="uplink">
|
||||
<nat domain="downlink" icmp-ids="999"/>
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -163,15 +170,18 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<uplink label="wifi" domain="uplink" />
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<policy label_prefix="wifi_drv" domain="uplink" />
|
||||
|
||||
<domain name="uplink">
|
||||
<nat domain="downlink" icmp-ids="999"/>
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -184,11 +194,13 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -201,15 +213,18 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<uplink label="nic" domain="uplink" />
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink" />
|
||||
|
||||
<domain name="uplink">
|
||||
<nat domain="downlink" icmp-ids="999"/>
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -222,15 +237,18 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<uplink label="nic" domain="uplink" />
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink" />
|
||||
|
||||
<domain name="uplink">
|
||||
<nat domain="downlink" icmp-ids="999"/>
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -243,11 +261,13 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -260,15 +280,18 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<uplink label="wifi" domain="uplink" />
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<policy label_prefix="wifi_drv" domain="uplink" />
|
||||
|
||||
<domain name="uplink">
|
||||
<nat domain="downlink" icmp-ids="999"/>
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -281,15 +304,18 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<uplink label="nic" domain="uplink" />
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink" />
|
||||
|
||||
<domain name="uplink">
|
||||
<nat domain="downlink" icmp-ids="999"/>
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink" />
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -302,10 +328,12 @@ append config {
|
||||
verbose_domain_state="} [router_verbose_domain_state] {"
|
||||
verbose_packets="} [router_verbose_packets] {">
|
||||
|
||||
<default-policy domain="downlink"/>
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
|
||||
<domain name="downlink" interface="10.0.1.79/24">
|
||||
<dhcp-server ip_first="10.0.1.80" ip_last="10.0.1.100"/>
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
|
||||
</inline>
|
||||
@ -322,12 +350,6 @@ append config {
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<route>
|
||||
<service name="Nic" label="nic">
|
||||
<child name="nic_drv"/>
|
||||
</service>
|
||||
<service name="Nic" label="wifi">
|
||||
<child name="wifi_drv"/>
|
||||
</service>
|
||||
<service name="ROM" label="config">
|
||||
<child name="dynamic_rom" label="router.config"/>
|
||||
</service>
|
||||
|
@ -17,6 +17,7 @@ set build_components {
|
||||
drivers/usb_net
|
||||
test/lwip/http_srv
|
||||
lib/vfs/lwip
|
||||
server/nic_router
|
||||
}
|
||||
|
||||
source ${genode_dir}/repos/base/run/platform_drv.inc
|
||||
@ -76,9 +77,40 @@ append config {
|
||||
</start>
|
||||
|
||||
<start name="usb_net_drv">
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<config mode="uplink_client" mac="02:00:00:00:01:01" />
|
||||
<route>
|
||||
<service name="Uplink"><child name="nic_router"/></service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config mac="02:00:00:00:01:01" />
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="test-lwip_httpsrv" domain="downlink"/>
|
||||
<policy label_prefix="usb_net_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink" tcp-ports="16384"/>
|
||||
<tcp-forward port="443" domain="downlink" to="10.0.3.2"/>
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="test-lwip_httpsrv" caps="120">
|
||||
@ -90,6 +122,10 @@ append config {
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" socket="/socket"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"><child name="nic_router"/></service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
</config>
|
||||
}
|
||||
@ -104,6 +140,7 @@ install_config $config
|
||||
set boot_modules {
|
||||
core init timer usb_net_drv
|
||||
ld.lib.so libc.lib.so vfs.lib.so vfs_lwip.lib.so test-lwip_httpsrv
|
||||
nic_router
|
||||
}
|
||||
|
||||
append boot_modules [usb_host_drv_binary]
|
||||
|
@ -16,6 +16,7 @@ set build_components {
|
||||
server/tcp_terminal
|
||||
test/terminal_echo
|
||||
lib/vfs/lwip
|
||||
server/nic_router
|
||||
}
|
||||
|
||||
source ${genode_dir}/repos/base/run/platform_drv.inc
|
||||
@ -45,19 +46,46 @@ set config {
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
<default caps="100"/>
|
||||
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="usb_drv">
|
||||
<resource name="RAM" quantum="24M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
</provides>
|
||||
<config uhci="no" ohci="no" ehci="yes" xhci="yes">
|
||||
<config mode="uplink_client" uhci="no" ohci="no" ehci="yes" xhci="yes">
|
||||
<nic mac="02:00:00:00:01:01" />
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="tcp_terminal" domain="downlink"/>
|
||||
<policy label_prefix="usb_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink" tcp-ports="16384"/>
|
||||
<tcp-forward port="88" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="tcp_terminal" caps="200">
|
||||
<resource name="RAM" quantum="2560K"/>
|
||||
<provides> <service name="Terminal"/> </provides>
|
||||
@ -71,6 +99,7 @@ set config {
|
||||
<libc stdout="/dev/log" socket="/socket" pipe="/pipe"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router" /> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -98,6 +127,7 @@ set boot_modules {
|
||||
tcp_terminal
|
||||
test-terminal_echo
|
||||
vfs_lwip.lib.so
|
||||
nic_router
|
||||
}
|
||||
|
||||
append_platform_drv_boot_modules
|
||||
|
@ -1,11 +1,10 @@
|
||||
assert_spec linux
|
||||
|
||||
set build_components {
|
||||
core init timer
|
||||
drivers/nic
|
||||
lib/vfs/lxip
|
||||
server/vfs
|
||||
server/dynamic_rom
|
||||
server/nic_router
|
||||
app/ping
|
||||
}
|
||||
build $build_components
|
||||
|
||||
@ -31,10 +30,53 @@ append config {
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
<start name="nic_drv" ld="no">
|
||||
<binary name="linux_nic_drv"/>
|
||||
|
||||
<start name="ping_1">
|
||||
<binary name="ping"/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config interface="10.0.2.3/24"
|
||||
gateway="10.0.2.1"
|
||||
dst_ip="10.0.2.2"
|
||||
period_sec="1"
|
||||
verbose="no"
|
||||
count="3"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="ping_2">
|
||||
<binary name="ping"/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config interface="10.0.2.4/24"
|
||||
gateway="10.0.2.1"
|
||||
dst_ip="10.0.2.55"
|
||||
period_sec="1"
|
||||
verbose="no"
|
||||
count="3"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<default-policy domain="default"/>
|
||||
<domain name="default" interface="10.0.2.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.2.2" ip_last="10.0.2.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="dynamic_rom">
|
||||
@ -67,26 +109,29 @@ append config {
|
||||
<route>
|
||||
<service name="ROM" label="config">
|
||||
<child name="dynamic_rom" label="socket_fs.config"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
</config>
|
||||
}
|
||||
|
||||
install_config $config
|
||||
|
||||
append boot_modules {
|
||||
core init timer linux_nic_drv vfs dynamic_rom
|
||||
core init timer vfs dynamic_rom
|
||||
ld.lib.so vfs.lib.so vfs_lxip.lib.so lxip.lib.so
|
||||
nic_router ping
|
||||
}
|
||||
|
||||
build_boot_image $boot_modules
|
||||
|
||||
puts "#################################################################"
|
||||
puts "## run simultaneous ping to 10.0.2.55 and <dynamic IP address> ##"
|
||||
puts "#################################################################"
|
||||
sleep 1
|
||||
append done_string ".*\"ping_.\" exited with exit value 0.*\n"
|
||||
append done_string ".*\"ping_.\" exited with exit value 0.*\n"
|
||||
|
||||
run_genode_until forever
|
||||
append qemu_args " -nographic "
|
||||
|
||||
run_genode_until $done_string 60
|
||||
|
||||
# vi: set ft=tcl :
|
||||
|
@ -1,95 +0,0 @@
|
||||
assert_spec linux
|
||||
|
||||
set build_components {
|
||||
core init timer
|
||||
drivers/nic
|
||||
server/tcp_terminal
|
||||
test/terminal_echo
|
||||
lib/vfs/lxip
|
||||
test/vfs_lxip
|
||||
}
|
||||
build $build_components
|
||||
|
||||
create_boot_directory
|
||||
|
||||
append config {
|
||||
<config verbose="yes">
|
||||
<parent-provides>
|
||||
<service name="ROM"/>
|
||||
<service name="IRQ"/>
|
||||
<service name="IO_MEM"/>
|
||||
<service name="IO_PORT"/>
|
||||
<service name="PD"/>
|
||||
<service name="RM"/>
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="SIGNAL"/>
|
||||
</parent-provides>
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
<default caps="100"/>
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
<start name="nic_drv" ld="no">
|
||||
<binary name="linux_nic_drv"/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
<!--
|
||||
<start name="tcp_terminal">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides> <service name="Terminal"/> </provides>
|
||||
<config ld_verbose="yes">
|
||||
<policy label="test-terminal_echo" port="8888"/>
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="socket">
|
||||
<lxip ip_addr="10.0.2.55" netmask="255.255.255.0" gateway="10.0.2.1"/>
|
||||
</dir>
|
||||
<dir name="pipe"> <pipe/> </dir>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" socket="/socket" pipe="/pipe"/>
|
||||
</config>
|
||||
</start>
|
||||
-->
|
||||
<!-- use telnet on the client to connect to the test component -->
|
||||
<start name="test-vfs_lxip" caps="200">
|
||||
<resource name="RAM" quantum="48M"/>
|
||||
<config>
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="socket">
|
||||
<lxip ip_addr="10.0.2.55" netmask="255.255.255.0" gateway="10.0.2.1" nameserver="8.8.8.8"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" socket="/socket"/>
|
||||
</config>
|
||||
</start>
|
||||
<!--
|
||||
<start name="test-terminal_echo">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
</start>
|
||||
-->
|
||||
</config>
|
||||
}
|
||||
|
||||
install_config $config
|
||||
|
||||
append boot_modules {
|
||||
core init timer linux_nic_drv
|
||||
ld.lib.so libc.lib.so vfs.lib.so posix.lib.so
|
||||
libm.lib.so
|
||||
vfs_lxip.lib.so lxip.lib.so
|
||||
tcp_terminal
|
||||
test-terminal_echo
|
||||
test-vfs_lxip
|
||||
}
|
||||
|
||||
build_boot_image $boot_modules
|
||||
|
||||
run_genode_until forever
|
||||
|
||||
# vi: set ft=tcl :
|
@ -69,6 +69,7 @@ set build_components {
|
||||
drivers/wifi
|
||||
server/report_rom
|
||||
server/dynamic_rom
|
||||
server/nic_router
|
||||
test/lwip/http_srv
|
||||
lib/vfs/jitterentropy
|
||||
lib/vfs/lwip
|
||||
@ -120,6 +121,10 @@ append config {
|
||||
<dir name="socket"> <lwip dhcp="yes"/> </dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="state_report_rom">
|
||||
@ -162,10 +167,37 @@ append config {
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="test-lwip_httpsrv" domain="downlink"/>
|
||||
<policy label_prefix="wifi_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink" tcp-ports="16384"/>
|
||||
<tcp-forward port="443" domain="downlink" to="10.0.3.2"/>
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="wifi_drv" caps="200">
|
||||
<resource name="RAM" quantum="24M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config ld_verbose="yes">
|
||||
<config ld_verbose="yes" mode="uplink_client">
|
||||
<libc stdout="/dev/null" stderr="/dev/null" rtc="/dev/rtc"/>
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> <null/> <rtc/>
|
||||
@ -175,6 +207,7 @@ append config {
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<service name="Rtc"> <any-child/> </service>
|
||||
<service name="Report" label="accesspoints"> <child name="accesspoints_report_rom"/> </service>
|
||||
<service name="Report" label="state"> <child name="state_report_rom"/> </service>
|
||||
@ -215,6 +248,7 @@ set boot_modules {
|
||||
wpa_driver_nl80211.lib.so wpa_supplicant.lib.so
|
||||
wifi.lib.so
|
||||
wifi_drv
|
||||
nic_router
|
||||
|
||||
test-lwip_httpsrv
|
||||
vfs_lwip.lib.so
|
||||
|
@ -10,13 +10,11 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="nic_drv"/> </default-policy> </service>
|
||||
|
||||
<start name="platform_drv" caps="210" managing_system="yes">
|
||||
<resource name="RAM" quantum="3M"/>
|
||||
<provides>
|
||||
@ -40,9 +38,8 @@
|
||||
|
||||
<start name="nic_drv" caps="120">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Platform"> <child name="platform_drv"/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
@ -51,6 +48,7 @@
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="Uplink"> <parent/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
@ -72,9 +73,8 @@
|
||||
|
||||
<start name="nic_drv" caps="120">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Platform"> <child name="platform_drv"/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
@ -83,6 +83,7 @@
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="Uplink"> <parent/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
|
@ -10,11 +10,9 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="rpi_usb_drv"/> </default-policy> </service>
|
||||
|
||||
<start name="rpi_platform_drv" caps="200">
|
||||
<resource name="RAM" quantum="2M"/>
|
||||
<provides> <service name="Platform"/> </provides>
|
||||
@ -32,18 +30,18 @@
|
||||
</start>
|
||||
|
||||
<start name="rpi_usb_drv" caps="120">
|
||||
<resource name="RAM" quantum="14M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config ehci="yes"> <nic mac="02:00:00:00:01:01"/> </config>
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<config mode="uplink_client" ehci="yes"> <nic mac="02:00:00:00:01:01"/> </config>
|
||||
<route>
|
||||
<service name="IRQ"> <parent/> </service>
|
||||
<service name="IO_MEM"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="IRQ"> <parent/> </service>
|
||||
<service name="IO_MEM"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="Uplink"> <parent/> </service>
|
||||
<service name="Platform"> <child name="rpi_platform_drv"/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -21,6 +21,7 @@ import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/chroot \
|
||||
[depot_user]/src/extract \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/libarchive \
|
||||
[depot_user]/src/liblzma \
|
||||
[depot_user]/src/verify
|
||||
@ -62,9 +63,42 @@ append config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="depot_download" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2" dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="vfs">
|
||||
@ -105,10 +139,12 @@ append config {
|
||||
<service name="ROM" label="config">
|
||||
<parent label="depot_download.config"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="File_system"> <child name="vfs"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
</config>}
|
||||
|
||||
|
||||
|
@ -34,6 +34,7 @@ import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/src/platform_drv \
|
||||
[depot_user]/src/posix \
|
||||
[depot_user]/src/fs_rom \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/rtc_drv \
|
||||
[depot_user]/src/ssh_terminal \
|
||||
[depot_user]/src/vfs \
|
||||
@ -73,13 +74,57 @@ set config {
|
||||
|
||||
<start name="nic_drv">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="ssh_terminal" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="22" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2" dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
<route>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="rtc_drv">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Rtc"/> </provides>
|
||||
@ -129,7 +174,7 @@ set config {
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_drv"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
|
@ -25,6 +25,7 @@ set build_components {
|
||||
test/libports/ncurses
|
||||
test/terminal_echo
|
||||
noux-pkg/bash
|
||||
server/nic_router
|
||||
}
|
||||
|
||||
source ${genode_dir}/repos/base/run/platform_drv.inc
|
||||
@ -55,24 +56,68 @@ set config {
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
<default caps="100"/>
|
||||
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="report_rom">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
||||
<config verbose="yes"/>
|
||||
</start>
|
||||
|
||||
<start name="nic_drv">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="ssh_terminal" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="22" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="rtc_drv">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Rtc"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="ssh_terminal" caps="250">
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<provides> <service name="Terminal"/> </provides>
|
||||
@ -100,13 +145,16 @@ set config {
|
||||
</libc>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="test-terminal_echo">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
</start>
|
||||
|
||||
<start name="vfs">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides><service name="File_system"/></provides>
|
||||
@ -115,6 +163,7 @@ set config {
|
||||
<default-policy root="/" writeable="yes"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="vfs_rom">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<binary name="fs_rom"/>
|
||||
@ -125,6 +174,7 @@ set config {
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="/bin/bash" caps="500">
|
||||
<resource name="RAM" quantum="64M"/>
|
||||
<config verbose="yes">
|
||||
@ -171,7 +221,7 @@ if {![file exists bin/ed25519_key]} {
|
||||
# generic modules
|
||||
set boot_modules {
|
||||
core ld.lib.so init timer ipxe_nic_drv rtc_drv report_rom vfs fs_rom
|
||||
test-terminal_echo
|
||||
test-terminal_echo nic_router
|
||||
|
||||
libc.lib.so libm.lib.so vfs.lib.so
|
||||
vfs_lxip.lib.so lxip.lib.so
|
||||
|
@ -17,6 +17,7 @@ import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/vfs \
|
||||
[depot_user]/src/vfs_lwip \
|
||||
[depot_user]/src/vfs_pipe
|
||||
@ -49,9 +50,46 @@ install_config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="tcp_terminal" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="8888" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2">
|
||||
<dns-server ip="8.8.8.8"/>
|
||||
<dns-server ip="1.1.1.1"/>
|
||||
</dhcp-server>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
<start name="tcp_terminal" caps="200">
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
@ -65,6 +103,10 @@ install_config {
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" socket="/socket" pipe="/pipe"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
<start name="test-terminal_echo">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
|
@ -20,9 +20,8 @@ using namespace Sculpt;
|
||||
void Graph::_gen_selected_node_content(Xml_generator &xml, Start_name const &name,
|
||||
Runtime_state::Info const &info) const
|
||||
{
|
||||
bool const removable = _deploy_children.exists(name);
|
||||
if (_deploy_children.exists(name)) {
|
||||
|
||||
if (removable) {
|
||||
gen_named_node(xml, "frame", "operations", [&] () {
|
||||
xml.node("hbox", [&] () {
|
||||
gen_named_node(xml, "button", "remove", [&] () {
|
||||
@ -36,6 +35,19 @@ void Graph::_gen_selected_node_content(Xml_generator &xml, Start_name const &nam
|
||||
xml.attribute("text", "Restart"); }); });
|
||||
});
|
||||
});
|
||||
|
||||
} else if (name == "nic_drv" ||
|
||||
name == "wifi_drv") {
|
||||
|
||||
gen_named_node(xml, "frame", "operations", [&] () {
|
||||
xml.node("hbox", [&] () {
|
||||
|
||||
gen_named_node(xml, "button", "restart", [&] () {
|
||||
_action_item.gen_button_attr(xml, "restart");
|
||||
xml.node("label", [&] () {
|
||||
xml.attribute("text", "Restart"); }); });
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (name == "ram_fs")
|
||||
|
@ -650,10 +650,23 @@ struct Sculpt::Main : Input_event_handler,
|
||||
*/
|
||||
void restart_deployed_component(Start_name const &name) override
|
||||
{
|
||||
_runtime_state.restart(name);
|
||||
if (name == "nic_drv") {
|
||||
|
||||
/* update config/managed/deploy with the component 'name' removed */
|
||||
_deploy.update_managed_deploy_config(_manual_deploy_rom.xml());
|
||||
_network.restart_nic_drv_on_next_runtime_cfg();
|
||||
generate_runtime_config();
|
||||
|
||||
} else if (name == "wifi_drv") {
|
||||
|
||||
_network.restart_wifi_drv_on_next_runtime_cfg();
|
||||
generate_runtime_config();
|
||||
|
||||
} else {
|
||||
|
||||
_runtime_state.restart(name);
|
||||
|
||||
/* update config/managed/deploy with the component 'name' removed */
|
||||
_deploy.update_managed_deploy_config(_manual_deploy_rom.xml());
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -18,7 +18,7 @@
|
||||
void Sculpt::Network::_generate_nic_router_uplink(Xml_generator &xml,
|
||||
char const *label)
|
||||
{
|
||||
xml.node("uplink", [&] () {
|
||||
xml.node("policy", [&] () {
|
||||
xml.attribute("label", label);
|
||||
xml.attribute("domain", "uplink");
|
||||
});
|
||||
@ -90,8 +90,8 @@ void Sculpt::Network::_generate_nic_router_config()
|
||||
|
||||
bool uplink_exists = true;
|
||||
switch (_nic_target.type()) {
|
||||
case Nic_target::WIRED: _generate_nic_router_uplink(xml, "wired"); break;
|
||||
case Nic_target::WIFI: _generate_nic_router_uplink(xml, "wifi"); break;
|
||||
case Nic_target::WIRED: _generate_nic_router_uplink(xml, "nic_drv -> "); break;
|
||||
case Nic_target::WIFI: _generate_nic_router_uplink(xml, "wifi_drv -> "); break;
|
||||
default: uplink_exists = false;
|
||||
}
|
||||
gen_named_node(xml, "domain", "default", [&] () {
|
||||
@ -187,17 +187,17 @@ void Sculpt::Network::_handle_nic_router_config(Xml_node config)
|
||||
if (domain.attribute_value("name", String<16>()) != "uplink")
|
||||
return;
|
||||
|
||||
config.for_each_sub_node("uplink", [&] (Xml_node uplink) {
|
||||
config.for_each_sub_node("policy", [&] (Xml_node uplink) {
|
||||
|
||||
/* skip uplinks not assigned to a domain called "uplink" */
|
||||
if (uplink.attribute_value("domain", String<16>()) != "uplink")
|
||||
return;
|
||||
|
||||
if (uplink.attribute_value("label", String<16>()) == "wired") {
|
||||
if (uplink.attribute_value("label", String<16>()) == "nic_drv -> ") {
|
||||
target = Nic_target::WIRED;
|
||||
throw Break();
|
||||
}
|
||||
if (uplink.attribute_value("label", String<16>()) == "wifi") {
|
||||
if (uplink.attribute_value("label", String<16>()) == "wifi_drv -> ") {
|
||||
target = Nic_target::WIFI;
|
||||
throw Break();
|
||||
}
|
||||
@ -216,14 +216,36 @@ void Sculpt::Network::_handle_nic_router_config(Xml_node config)
|
||||
|
||||
void Sculpt::Network::gen_runtime_start_nodes(Xml_generator &xml) const
|
||||
{
|
||||
if (_use_nic_drv)
|
||||
xml.node("start", [&] () { gen_nic_drv_start_content(xml); });
|
||||
switch (_nic_target.type()) {
|
||||
case Nic_target::WIRED:
|
||||
|
||||
if (_use_wifi_drv)
|
||||
xml.node("start", [&] () { gen_wifi_drv_start_content(xml); });
|
||||
|
||||
if (_nic_target.type() != Nic_target::OFF)
|
||||
xml.node("start", [&] () {
|
||||
gen_nic_router_start_content(xml, _nic_target,
|
||||
_use_nic_drv, _use_wifi_drv); });
|
||||
xml.attribute("version", _nic_drv_version);
|
||||
gen_nic_drv_start_content(xml);
|
||||
});
|
||||
xml.node("start", [&] () { gen_nic_router_start_content(xml); });
|
||||
break;
|
||||
|
||||
case Nic_target::WIFI:
|
||||
|
||||
xml.node("start", [&] () {
|
||||
xml.attribute("version", _wifi_drv_version);
|
||||
gen_wifi_drv_start_content(xml);
|
||||
});
|
||||
xml.node("start", [&] () { gen_nic_router_start_content(xml); });
|
||||
break;
|
||||
|
||||
case Nic_target::LOCAL:
|
||||
|
||||
xml.node("start", [&] () { gen_nic_router_start_content(xml); });
|
||||
break;
|
||||
|
||||
case Nic_target::OFF:
|
||||
|
||||
break;
|
||||
|
||||
case Nic_target::UNDEFINED:
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -49,8 +49,8 @@ struct Sculpt::Network : Network_dialog::Action
|
||||
|
||||
Wpa_passphrase wpa_passphrase { };
|
||||
|
||||
bool _use_nic_drv = false;
|
||||
bool _use_wifi_drv = false;
|
||||
unsigned _nic_drv_version = 0;
|
||||
unsigned _wifi_drv_version = 0;
|
||||
|
||||
Attached_rom_dataspace _wlan_accesspoints_rom {
|
||||
_env, "report -> runtime/wifi_drv/accesspoints" };
|
||||
@ -143,13 +143,6 @@ struct Sculpt::Network : Network_dialog::Action
|
||||
*/
|
||||
void nic_target(Nic_target::Type const type) override
|
||||
{
|
||||
/*
|
||||
* Start drivers on first use but never remove them to avoid
|
||||
* driver-restarting issues.
|
||||
*/
|
||||
if (type == Nic_target::WIFI) _use_wifi_drv = true;
|
||||
if (type == Nic_target::WIRED) _use_nic_drv = true;
|
||||
|
||||
if (type != _nic_target.managed_type) {
|
||||
_nic_target.managed_type = type;
|
||||
_generate_nic_router_config();
|
||||
@ -191,6 +184,16 @@ struct Sculpt::Network : Network_dialog::Action
|
||||
});
|
||||
}
|
||||
|
||||
void restart_nic_drv_on_next_runtime_cfg()
|
||||
{
|
||||
_nic_drv_version++;
|
||||
}
|
||||
|
||||
void restart_wifi_drv_on_next_runtime_cfg()
|
||||
{
|
||||
_wifi_drv_version++;
|
||||
}
|
||||
|
||||
void wifi_disconnect() override
|
||||
{
|
||||
/*
|
||||
|
@ -72,7 +72,7 @@ namespace Sculpt {
|
||||
void gen_nic_drv_start_content(Xml_generator &);
|
||||
void gen_wifi_drv_start_content(Xml_generator &);
|
||||
|
||||
void gen_nic_router_start_content(Xml_generator &, Nic_target const &, bool, bool);
|
||||
void gen_nic_router_start_content(Xml_generator &);
|
||||
void gen_nic_router_uplink(Xml_generator &, char const *);
|
||||
|
||||
struct Prepare_version { unsigned value; };
|
||||
|
@ -12,17 +12,21 @@
|
||||
*/
|
||||
|
||||
#include <runtime.h>
|
||||
#include <uplink_session/uplink_session.h>
|
||||
|
||||
void Sculpt::gen_nic_drv_start_content(Xml_generator &xml)
|
||||
{
|
||||
gen_common_start_content(xml, "nic_drv", Cap_quota{300}, Ram_quota{16*1024*1024});
|
||||
gen_named_node(xml, "resource", "CPU", [&] () { xml.attribute("quantum", "50"); });
|
||||
|
||||
gen_provides<Nic::Session>(xml);
|
||||
|
||||
xml.node("config", [&] () { });
|
||||
xml.node("config", [&] () { xml.attribute("mode", "uplink_client"); });
|
||||
|
||||
xml.node("route", [&] () {
|
||||
|
||||
gen_service_node<Uplink::Session>(xml, [&] () {
|
||||
xml.node("child", [&] () {
|
||||
xml.attribute("name", "nic_router"); }); });
|
||||
|
||||
gen_service_node<Platform::Session>(xml, [&] () {
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "nic"); }); });
|
||||
|
@ -18,10 +18,7 @@
|
||||
#include <runtime.h>
|
||||
|
||||
|
||||
void Sculpt::gen_nic_router_start_content(Xml_generator &xml,
|
||||
Nic_target const &nic_target,
|
||||
bool nic_drv_present,
|
||||
bool wifi_drv_present)
|
||||
void Sculpt::gen_nic_router_start_content(Xml_generator &xml)
|
||||
{
|
||||
gen_common_start_content(xml, "nic_router",
|
||||
Cap_quota{300}, Ram_quota{10*1024*1024});
|
||||
@ -36,28 +33,6 @@ void Sculpt::gen_nic_router_start_content(Xml_generator &xml,
|
||||
});
|
||||
|
||||
xml.node("route", [&] () {
|
||||
|
||||
auto gen_nic_route = [&] (char const *label, char const *server) {
|
||||
gen_service_node<Nic::Session>(xml, [&] () {
|
||||
xml.attribute("label", label);
|
||||
gen_named_node(xml, "child", server); }); };
|
||||
|
||||
/*
|
||||
* Define primary dependency first (for the graph layout), according to
|
||||
* the selected NIC target. We still keep routes to both NIC driver to
|
||||
* accommodate the NIC router in the intermediate phase when switching
|
||||
* the NIC target.
|
||||
*/
|
||||
if (nic_target.wifi()) {
|
||||
if (wifi_drv_present) gen_nic_route("wifi", "wifi_drv");
|
||||
if (nic_drv_present) gen_nic_route("wired", "nic_drv");
|
||||
}
|
||||
|
||||
if (nic_target.wired()) {
|
||||
if (nic_drv_present) gen_nic_route("wired", "nic_drv");
|
||||
if (wifi_drv_present) gen_nic_route("wifi", "wifi_drv");
|
||||
}
|
||||
|
||||
gen_parent_rom_route(xml, "nic_router");
|
||||
gen_parent_rom_route(xml, "ld.lib.so");
|
||||
gen_parent_rom_route(xml, "config", "config -> managed/nic_router");
|
||||
@ -67,15 +42,5 @@ void Sculpt::gen_nic_router_start_content(Xml_generator &xml,
|
||||
gen_parent_route<Log_session> (xml);
|
||||
gen_parent_route<Timer::Session> (xml);
|
||||
gen_parent_route<Report::Session> (xml);
|
||||
|
||||
/*
|
||||
* If the NIC target is set to local, we define the route to the
|
||||
* drivers down here be avoid presenting it as primary route in the
|
||||
* deploy graph.
|
||||
*/
|
||||
if (nic_target.local()) {
|
||||
if (nic_drv_present) gen_nic_route("wired", "nic_drv");
|
||||
if (wifi_drv_present) gen_nic_route("wifi", "wifi_drv");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -17,10 +17,10 @@ void Sculpt::gen_wifi_drv_start_content(Xml_generator &xml)
|
||||
{
|
||||
gen_common_start_content(xml, "wifi_drv", Cap_quota{200}, Ram_quota{32*1024*1024});
|
||||
|
||||
gen_provides<Nic::Session>(xml);
|
||||
|
||||
xml.node("config", [&] () {
|
||||
|
||||
xml.attribute("mode", "uplink_client");
|
||||
|
||||
xml.node("vfs", [&] () {
|
||||
gen_named_node(xml, "dir", "dev", [&] () {
|
||||
xml.node("null", [&] () {});
|
||||
@ -40,6 +40,14 @@ void Sculpt::gen_wifi_drv_start_content(Xml_generator &xml)
|
||||
});
|
||||
|
||||
xml.node("route", [&] () {
|
||||
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", "Uplink");
|
||||
xml.node("child", [&] () {
|
||||
xml.attribute("name", "nic_router");
|
||||
});
|
||||
});
|
||||
|
||||
gen_service_node<Platform::Session>(xml, [&] () {
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "wifi"); }); });
|
||||
|
@ -46,6 +46,7 @@ import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/src/fetchurl \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/libcrypto \
|
||||
[depot_user]/src/libssh \
|
||||
[depot_user]/src/libssl \
|
||||
@ -82,11 +83,44 @@ install_config {
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<binary name="init"/>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="fetchurl" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2" dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="report_rom">
|
||||
|
@ -10,6 +10,7 @@ import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/posix \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/vfs \
|
||||
[depot_user]/src/vfs_lwip \
|
||||
[depot_user]/src/zlib
|
||||
@ -44,9 +45,45 @@ install_config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="test-libc_getaddrinfo" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2">
|
||||
<dns-server ip="8.8.8.8"/>
|
||||
<dns-server ip="1.1.1.1"/>
|
||||
</dhcp-server>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="test-libc_getaddrinfo" caps="256">
|
||||
@ -62,6 +99,10 @@ install_config {
|
||||
<arg value="hypervisor.org"/>
|
||||
<arg value="example.com"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
</config>
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ create_boot_directory
|
||||
import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/vfs_lwip \
|
||||
[depot_user]/src/vfs
|
||||
@ -65,9 +66,48 @@ install_config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes"
|
||||
dhcp_discover_timeout_sec="1">
|
||||
|
||||
<policy label_prefix="test-lwip_httpsrv" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="443" domain="downlink" to="10.0.3.2"/>
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2"
|
||||
ip_last="10.0.3.2"
|
||||
dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="test-lwip_httpsrv" caps="120" priority="-1">
|
||||
@ -79,6 +119,10 @@ install_config {
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" socket="/socket"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
</config>
|
||||
}
|
||||
@ -98,9 +142,9 @@ run_genode_until {.*Start the server loop.*\n} 30
|
||||
if {[have_include "power_on/qemu"]} {
|
||||
set uri "http://localhost:5555/"
|
||||
} else {
|
||||
set match_string "lwIP Nic interface up address=.* netmask.*\n"
|
||||
set match_string "nic_router. .uplink. dynamic IP config: interface .*\n"
|
||||
regexp $match_string $output ip_addr
|
||||
regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $ip_addr ip_addr
|
||||
regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} $ip_addr ip_addr
|
||||
|
||||
set uri "http://$ip_addr:80/"
|
||||
}
|
||||
|
@ -1,3 +1,25 @@
|
||||
#
|
||||
# To execute this run script on your Linux host you have to do some
|
||||
# preparation:
|
||||
#
|
||||
# !) Setup a TAP device:
|
||||
# ! export USER=[YOUR_USER_NAME]
|
||||
# ! export TAP_DEV=tap0
|
||||
# ! sudo ip tuntap add dev $TAP_DEV mode tap USER $USER
|
||||
# ! sudo ip address flush dev $TAP_DEV
|
||||
# ! sudo ip address add 10.0.2.1/24 brd 10.0.2.255 dev $TAP_DEV
|
||||
# ! sudo ip link set dev $TAP_DEV addr 02:00:00:ca:fe:01
|
||||
# ! sudo ip link set dev $TAP_DEV up
|
||||
#
|
||||
# 2) Now, start the test and connect using your favorite HTTP client, e.g.:
|
||||
# ! cd <GENODE_DIR>/build/x86_64
|
||||
# ! make run/lwip_lx KERNEL=linux BOARD=linux
|
||||
# ! lynx -dump http://10.0.2.55
|
||||
#
|
||||
# 3) Clean up your Linux when done testing:
|
||||
# ! sudo ip tuntap delete $TAP_DEV mode tap
|
||||
#
|
||||
|
||||
assert_spec linux
|
||||
|
||||
#
|
||||
@ -9,6 +31,7 @@ build {
|
||||
drivers/nic
|
||||
test/lwip/http_srv
|
||||
lib/vfs/lwip
|
||||
server/nic_router
|
||||
}
|
||||
|
||||
create_boot_directory
|
||||
@ -19,6 +42,7 @@ create_boot_directory
|
||||
|
||||
set config {
|
||||
<config verbose="yes">
|
||||
|
||||
<parent-provides>
|
||||
<service name="ROM"/>
|
||||
<service name="IRQ"/>
|
||||
@ -29,28 +53,66 @@ set config {
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
</parent-provides>
|
||||
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="linux_nic_drv" ld="no">
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="test-lwip_httpsrv" domain="downlink"/>
|
||||
<policy label_prefix="linux_nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" interface="10.0.2.55/24" gateway="10.0.2.1">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="443" domain="downlink" to="10.0.3.2"/>
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24"/>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="test-lwip_httpsrv">
|
||||
<resource name="RAM" quantum="5M"/>
|
||||
<config ld_verbose="true">
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="socket"> <lwip ip_addr="10.0.2.55" netmask="255.255.255.0"/> </dir>
|
||||
<dir name="socket"> <lwip ip_addr="10.0.3.2" netmask="255.255.255.0" gateway="10.0.3.1"/> </dir>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" socket="/socket"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
</config>
|
||||
}
|
||||
|
||||
@ -63,6 +125,7 @@ install_config $config
|
||||
set boot_modules {
|
||||
core init timer linux_nic_drv
|
||||
ld.lib.so libc.lib.so vfs.lib.so vfs_lwip.lib.so test-lwip_httpsrv
|
||||
nic_router
|
||||
}
|
||||
|
||||
build_boot_image $boot_modules
|
||||
|
@ -6,6 +6,7 @@ import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/src/dynamic_rom \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/vfs_audit \
|
||||
[depot_user]/src/vfs_lxip \
|
||||
[depot_user]/src/vfs
|
||||
@ -38,10 +39,53 @@ append config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start> }
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="socket_fs" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" interface="10.0.2.55/24" gateway="10.0.2.1">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.55"/>
|
||||
<tcp-forward port="8080" domain="downlink" to="10.0.3.55"/>
|
||||
|
||||
<udp-forward port="7" domain="downlink" to="10.0.3.55"/>
|
||||
<udp-forward port="7070" domain="downlink" to="10.0.3.55"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.55" ip_last="10.0.3.55">
|
||||
<dns-server ip="8.8.8.8"/>
|
||||
<dns-server ip="1.1.1.1"/>
|
||||
</dhcp-server>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
}
|
||||
|
||||
append_if [use_dynamic_rom] config {
|
||||
<start name="dynamic_rom">
|
||||
@ -74,18 +118,25 @@ append_if [use_dynamic_rom] config {
|
||||
</start>}
|
||||
|
||||
append config {
|
||||
|
||||
<start name="socket_fs" caps="200">
|
||||
<binary name="vfs"/>
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<provides> <service name="File_system"/> </provides>}
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service> }
|
||||
|
||||
if {[use_dynamic_rom]} { append config {
|
||||
<route>
|
||||
|
||||
<service name="ROM" label="config">
|
||||
<child name="dynamic_rom" label="socket_fs.config"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>}
|
||||
</route> }
|
||||
|
||||
} else { append config {
|
||||
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
<config ld_verbose="yes">
|
||||
<vfs>
|
||||
<dir name="socket">
|
||||
@ -94,12 +145,12 @@ if {[use_dynamic_rom]} { append config {
|
||||
</dir>
|
||||
</vfs>
|
||||
<default-policy root="/socket" writeable="yes" />
|
||||
</config>}
|
||||
</config> }
|
||||
}
|
||||
|
||||
append config {
|
||||
</start>
|
||||
}
|
||||
|
||||
</start> }
|
||||
|
||||
append qemu_args " -nographic "
|
||||
append_qemu_nic_args
|
||||
|
@ -3,12 +3,14 @@ import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/vfs_audit \
|
||||
[depot_user]/src/vfs_lwip \
|
||||
[depot_user]/src/vfs
|
||||
|
||||
append config {
|
||||
<config verbose="yes">
|
||||
|
||||
<parent-provides>
|
||||
<service name="ROM"/>
|
||||
<service name="IRQ"/>
|
||||
@ -20,36 +22,84 @@ append config {
|
||||
<service name="LOG"/>
|
||||
<service name="SIGNAL"/>
|
||||
</parent-provides>
|
||||
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="drivers" caps="1000" managing_system="yes">
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<binary name="init"/>
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="socket_fs" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" interface="10.0.2.55/24" gateway="10.0.2.1">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.55"/>
|
||||
<tcp-forward port="8080" domain="downlink" to="10.0.3.55"/>
|
||||
|
||||
<udp-forward port="7" domain="downlink" to="10.0.3.55"/>
|
||||
<udp-forward port="7070" domain="downlink" to="10.0.3.55"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.55" ip_last="10.0.3.55">
|
||||
<dns-server ip="8.8.8.8"/>
|
||||
<dns-server ip="1.1.1.1"/>
|
||||
</dhcp-server>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="socket_fs" caps="200">
|
||||
<binary name="vfs"/>
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="ROM" label="socket_fs.config"> <child name="dynamic_rom"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
<config ld_verbose="yes">
|
||||
<vfs>
|
||||
<dir name="lwip">
|
||||
<lwip ip_addr="10.0.2.55" netmask="255.255.255.0" gateway="10.0.2.1" nameserver="8.8.8.8"/>
|
||||
<lwip ip_addr="10.0.3.55" netmask="255.255.255.0" gateway="10.0.3.1" nameserver="8.8.8.8"/>
|
||||
<!-- <lwip dhcp="yes"/> -->
|
||||
</dir>
|
||||
<dir name="socket">
|
||||
|
@ -32,7 +32,7 @@ append config {
|
||||
<start name="netty-client-A">
|
||||
<binary name="test-netty_tcp"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.2.1" port="8080">
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.3.1" port="8080">
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="socket"> <fs/> </dir>
|
||||
@ -44,7 +44,7 @@ append config {
|
||||
<start name="netty-client-B">
|
||||
<binary name="test-netty_tcp"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.2.1" port="13002">
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.3.1" port="13002">
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="socket"> <fs/> </dir>
|
||||
|
@ -32,7 +32,7 @@ append config {
|
||||
<start name="netty-client-A">
|
||||
<binary name="test-netty_tcp"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.2.1" port="8080">
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.3.1" port="8080">
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="socket"> <fs/> </dir>
|
||||
@ -44,7 +44,7 @@ append config {
|
||||
<start name="netty-client-B">
|
||||
<binary name="test-netty_tcp"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.2.1" port="13002">
|
||||
<config ld_verbose="yes" mode="client" ip="10.0.3.1" port="13002">
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="socket"> <fs/> </dir>
|
||||
|
@ -11,7 +11,7 @@ if {[have_board rpi3]} {
|
||||
create_boot_directory
|
||||
|
||||
import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/nic_bridge \
|
||||
@ -42,15 +42,23 @@ install_config {
|
||||
<provides><service name="Timer"/></provides>
|
||||
</start>
|
||||
|
||||
<start name="drivers" caps="1000" managing_system="yes">
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<binary name="init"/>
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="nic_bridge" domain="downlink"/>
|
||||
|
||||
<domain name="downlink" interface="10.0.2.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.2.100" ip_last="10.0.2.200"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="nic_bridge" caps="200">
|
||||
@ -63,7 +71,7 @@ install_config {
|
||||
<policy label_prefix="client_2" mac="02:02:02:02:79:00"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="drivers"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -14,6 +14,7 @@ create_boot_directory
|
||||
|
||||
import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/init
|
||||
|
||||
build { app/sntp_client server/report_rom }
|
||||
@ -54,14 +55,53 @@ append config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="sntp_client" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2"
|
||||
ip_last="10.0.3.2"
|
||||
dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="sntp_client">
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config verbose="no" dst_ip="} $ntp_ip {" period_min="1"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
</config>}
|
||||
|
||||
|
@ -8,18 +8,15 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="nic_drv"/> </default-policy> </service>
|
||||
|
||||
<start name="nic_drv" ld="no">
|
||||
<binary name="linux_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config/>
|
||||
<config mode="uplink_client"/>
|
||||
<route> <any-service> <parent/> </any-service> </route>
|
||||
</start>
|
||||
</config>
|
||||
|
@ -8,13 +8,11 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="nic_drv"/> </default-policy> </service>
|
||||
|
||||
<start name="platform_drv">
|
||||
<resource name="RAM" quantum="2M"/>
|
||||
<provides> <service name="Platform"/> </provides>
|
||||
@ -40,17 +38,17 @@
|
||||
<start name="nic_drv">
|
||||
<binary name="lan9118_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config mmio_base="0x4e000000" irq="60" />
|
||||
<config mode="uplink_client" mmio_base="0x4e000000" irq="60" />
|
||||
<route>
|
||||
<service name="Platform">
|
||||
<child name="platform_drv"/>
|
||||
</service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="CPU"> <parent/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="Uplink"> <parent/> </service>
|
||||
</route>
|
||||
</start>
|
||||
</config>
|
||||
|
@ -8,13 +8,11 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="virtio_mmio_nic"/> </default-policy> </service>
|
||||
|
||||
<start name="virtdev_rom">
|
||||
<resource name="RAM" quantum="640K"/>
|
||||
<provides> <service name="ROM"/> </provides>
|
||||
@ -38,8 +36,8 @@
|
||||
</start>
|
||||
|
||||
<start name="virtio_mmio_nic">
|
||||
<resource name="RAM" quantum="640K"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Platform">
|
||||
<child name="platform_drv"/>
|
||||
@ -48,6 +46,7 @@
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
<service name="Uplink"> <parent/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
<config>
|
||||
|
||||
<parent-provides>
|
||||
<service name="IRQ"/>
|
||||
<service name="IO_MEM"/>
|
||||
@ -8,18 +9,16 @@
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Uplink"/>
|
||||
</parent-provides>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<service name="Nic">
|
||||
<default-policy> <child name="nic_drv"/> </default-policy> </service>
|
||||
|
||||
<start name="nic_drv">
|
||||
<binary name="zynq_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config/>
|
||||
<config mode="uplink_client"/>
|
||||
<route> <any-service> <parent/> </any-service> </route>
|
||||
</start>
|
||||
|
||||
</config>
|
||||
|
@ -27,7 +27,9 @@ proc bad_dst_port { } { return "12345" }
|
||||
proc bad_dst_ip { } { return "10.0.1.2" }
|
||||
|
||||
append config {
|
||||
|
||||
<config>
|
||||
|
||||
<parent-provides>
|
||||
<service name="ROM"/>
|
||||
<service name="IRQ"/>
|
||||
@ -38,9 +40,11 @@ append config {
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
</parent-provides>
|
||||
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<start name="timer">
|
||||
@ -54,16 +58,48 @@ append config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router_1"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_dump" priority="-1" caps="120">
|
||||
<resource name="RAM" quantum="6M"/>
|
||||
<start name="nic_router_1" caps="200">
|
||||
<binary name="nic_router"/>
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config dhcp_discover_timeout_sec="1">
|
||||
|
||||
<policy label_prefix="nic_dump" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink" icmp-ids="100" udp-ports="100"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2"/>
|
||||
<icmp dst="} [good_dst_ip] {/24" domain="uplink"/>
|
||||
<udp dst="} [good_dst_ip] {/24">
|
||||
<permit port="} [bad_dst_port] {" domain="uplink"/>
|
||||
</udp>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="nic_dump" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<config uplink="bridge"
|
||||
downlink="router"
|
||||
<config uplink="uplink"
|
||||
downlink="downlink"
|
||||
time="yes"
|
||||
default="name"
|
||||
eth="name"
|
||||
@ -74,21 +110,19 @@ append config {
|
||||
icmp="all"
|
||||
tcp="default" />
|
||||
<route>
|
||||
<service name="Nic"> <child name="drivers"/> </service>
|
||||
<service name="Nic"> <child name="nic_router_1"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<start name="nic_router_2" caps="200">
|
||||
<binary name="nic_router"/>
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose="no"
|
||||
verbose_packets="no"
|
||||
dhcp_discover_timeout_sec="1"
|
||||
icmp_idle_timeout_sec="6">
|
||||
<config>
|
||||
|
||||
<policy label_prefix="ping_1" domain="ping_1"/>
|
||||
<policy label_prefix="ping_2" domain="ping_2"/>
|
||||
@ -124,9 +158,7 @@ append config {
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose="no"
|
||||
verbose_packets="no"
|
||||
icmp_idle_timeout_sec="10">
|
||||
<config>
|
||||
|
||||
<policy label_prefix="ping_2" domain="ping_2"/>
|
||||
<uplink domain="uplink"/>
|
||||
@ -148,7 +180,7 @@ append config {
|
||||
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="Nic"> <child name="nic_router_2"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -162,7 +194,7 @@ append config {
|
||||
period_sec="1"
|
||||
verbose="no"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="Nic"> <child name="nic_router_2"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -176,7 +208,7 @@ append config {
|
||||
period_sec="1"
|
||||
verbose="no"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="Nic"> <child name="nic_router_2"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -219,9 +251,10 @@ append config {
|
||||
<service name="Nic"> <child name="ping_2_nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>}
|
||||
</start> }
|
||||
|
||||
append_if $on_hardware config {
|
||||
|
||||
<start name="ping_23">
|
||||
<binary name="ping"/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
@ -235,10 +268,11 @@ append_if $on_hardware config {
|
||||
<service name="Nic"> <child name="ping_2_nic_bridge"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>}
|
||||
</start> }
|
||||
|
||||
append config {
|
||||
</config>}
|
||||
|
||||
</config> }
|
||||
|
||||
install_config $config
|
||||
build_boot_image { ping nic_dump }
|
||||
|
@ -44,9 +44,9 @@ append config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router">
|
||||
@ -57,8 +57,8 @@ append config {
|
||||
</provides>
|
||||
<config>
|
||||
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<uplink domain="uplink"/>
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" use_arp="no" verbose_packets="yes">
|
||||
<nat domain="downlink" icmp-ids="100"/>
|
||||
@ -69,10 +69,6 @@ append config {
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="drivers"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="ping">
|
||||
@ -99,7 +95,7 @@ append_qemu_nic_args
|
||||
|
||||
set done_string ".*child \"ping\" exited with exit value 0.*\n"
|
||||
|
||||
run_genode_until $done_string 10
|
||||
run_genode_until $done_string 30
|
||||
|
||||
grep_output { ARP }
|
||||
compare_output_to {}
|
||||
|
@ -57,9 +57,9 @@ install_config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="dynamic_rom">
|
||||
@ -80,7 +80,7 @@ install_config {
|
||||
|
||||
<policy label_prefix="flood_links" domain="flood_links"/>
|
||||
<policy label_prefix="ping" domain="flood_links"/>
|
||||
<uplink domain="uplink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" interface="10.0.2.15/24" gateway="10.0.2.2" verbose_packets="no">
|
||||
<nat domain="flood_links" udp-ports="16384"
|
||||
@ -114,7 +114,7 @@ install_config {
|
||||
|
||||
<policy label_prefix="flood_links" domain="flood_links"/>
|
||||
<policy label_prefix="ping" domain="flood_links"/>
|
||||
<uplink domain="uplink"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" verbose_packets="no">
|
||||
<nat domain="flood_links" udp-ports="16384"
|
||||
@ -148,7 +148,6 @@ install_config {
|
||||
</provides>
|
||||
<route>
|
||||
<service name="ROM" label="config"> <child name="dynamic_rom" label="nic_router.config"/> </service>
|
||||
<service name="Nic"> <child name="drivers"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -66,7 +66,7 @@ create_boot_directory
|
||||
import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/nic_bridge
|
||||
[depot_user]/src/nic_router
|
||||
|
||||
build { app/ping }
|
||||
|
||||
@ -87,7 +87,9 @@ proc dst_ip { } {
|
||||
}
|
||||
|
||||
append config {
|
||||
|
||||
<config>
|
||||
|
||||
<parent-provides>
|
||||
<service name="ROM"/>
|
||||
<service name="IRQ"/>
|
||||
@ -98,9 +100,11 @@ append config {
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
</parent-provides>
|
||||
|
||||
<default-route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<start name="timer">
|
||||
@ -113,26 +117,43 @@ append config {
|
||||
<binary name="init"/>
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_bridge" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<config mac="02:02:02:02:03:00">
|
||||
<policy label_prefix="ping_1"/>
|
||||
<policy label_prefix="ping_2"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="drivers"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>}
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config dhcp_discover_timeout_sec="1">
|
||||
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
<policy label_prefix="ping" domain="downlink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink" icmp-ids="100" udp-ports="100"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.100" ip_last="10.0.3.200"/>
|
||||
<icmp dst="} [dst_ip] {/24" domain="uplink"/>
|
||||
<udp dst="} [dst_ip] {/24">
|
||||
<permit port="12345" domain="uplink"/>
|
||||
</udp>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start> }
|
||||
|
||||
append_if $second_ping_via_udp config {
|
||||
|
||||
<start name="ping_2">
|
||||
<binary name="ping"/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
@ -143,12 +164,13 @@ append_if $second_ping_via_udp config {
|
||||
dst_ip="} [dst_ip] {"
|
||||
dst_port="12345"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>}
|
||||
</start> }
|
||||
|
||||
append config {
|
||||
|
||||
<start name="ping_1">
|
||||
<binary name="ping"/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
@ -157,11 +179,12 @@ append config {
|
||||
verbose="no"
|
||||
count="3"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
</config>}
|
||||
|
||||
</config> }
|
||||
|
||||
install_config $config
|
||||
build_boot_image { ping }
|
||||
|
@ -54,9 +54,9 @@ append config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
@ -70,9 +70,9 @@ append config {
|
||||
dhcp_discover_timeout_sec="1"
|
||||
icmp_idle_timeout_sec="6">
|
||||
|
||||
<policy label_prefix="ping_1" domain="ping_1"/>
|
||||
<policy label_prefix="ping_2" domain="ping_2"/>
|
||||
<uplink domain="uplink"/>
|
||||
<policy label_prefix="ping_1" domain="ping_1"/>
|
||||
<policy label_prefix="ping_2" domain="ping_2"/>
|
||||
<policy label_prefix="drivers" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
<nat domain="ping_1" icmp-ids="100"/>
|
||||
@ -94,10 +94,6 @@ append config {
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="drivers"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="ping_2_nic_router" caps="200">
|
||||
|
@ -46,7 +46,10 @@ install_config {
|
||||
<start name="nic_drv">
|
||||
<binary name="nic_router" />
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config>
|
||||
<default-policy domain="default"/>
|
||||
<domain name="default" interface="10.0.1.1/24">
|
||||
|
@ -13,6 +13,7 @@ create_boot_directory
|
||||
import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/libcrypto \
|
||||
[depot_user]/src/libssh \
|
||||
@ -51,9 +52,47 @@ install_config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="lighttpd" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" interface="10.0.2.55/24" gateway="10.0.2.1">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2">
|
||||
<dns-server ip="8.8.8.8"/>
|
||||
<dns-server ip="1.1.1.1"/>
|
||||
</dhcp-server>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="lighttpd" caps="1000">
|
||||
@ -75,7 +114,12 @@ install_config {
|
||||
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log"
|
||||
socket="/socket" />
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
</config>}
|
||||
|
||||
#
|
||||
|
@ -24,6 +24,7 @@ create_boot_directory
|
||||
import_from_depot [depot_user]/src/[base_src] \
|
||||
[depot_user]/pkg/[drivers_nic_pkg] \
|
||||
[depot_user]/src/init \
|
||||
[depot_user]/src/nic_router \
|
||||
[depot_user]/src/libc \
|
||||
[depot_user]/src/libcrypto \
|
||||
[depot_user]/src/libssh \
|
||||
@ -62,9 +63,47 @@ install_config {
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="lighttpd" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="80" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2">
|
||||
<dns-server ip="8.8.8.8"/>
|
||||
<dns-server ip="1.1.1.1"/>
|
||||
</dhcp-server>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="lighttpd" caps="200">
|
||||
@ -173,6 +212,12 @@ EpA5DBBklj8UE2CdONvN
|
||||
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log"
|
||||
rtc="/dev/rtc/" rng="/dev/random" socket="/socket"/>
|
||||
</config>
|
||||
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
|
||||
</start>
|
||||
</config>}
|
||||
|
||||
|
@ -5,19 +5,8 @@
|
||||
# \date 2013-04-18
|
||||
#
|
||||
|
||||
if {[expr $use_nic_bridge && $use_nic_router]} {
|
||||
puts "Cannot test with both NIC bridge and NIC router.";
|
||||
exit 0
|
||||
}
|
||||
|
||||
if {[get_cmd_switch --autopilot] && [have_include "power_on/qemu"]} {
|
||||
puts "\nRunning netperf in autopilot on Qemu is not recommended.\n"
|
||||
exit
|
||||
}
|
||||
|
||||
if {[have_include "power_on/qemu"] &&
|
||||
[expr $use_nic_bridge || $use_nic_router || $use_usb_driver || $use_wifi_driver]} {
|
||||
puts "Cannot test this configuration on qemu.";
|
||||
if {[have_include "power_on/qemu"]} {
|
||||
puts "\nRun script does not support Qemu.\n"
|
||||
exit 0
|
||||
}
|
||||
|
||||
@ -26,7 +15,7 @@ if {[have_board imx53_qsb_tz]} {
|
||||
exit 0
|
||||
}
|
||||
|
||||
set bridge_mac "02:02:02:02:02:00"
|
||||
set bridge_mac "02:02:02:02:16:00"
|
||||
|
||||
# autopilot: configure disjoint mac-address ranges for x86_32, x86_64, and others
|
||||
if {[get_cmd_switch --autopilot]} {
|
||||
@ -74,14 +63,13 @@ set packages "
|
||||
[depot_user]/src/libc
|
||||
[depot_user]/src/posix
|
||||
[depot_user]/src/vfs
|
||||
[depot_user]/src/nic_router
|
||||
"
|
||||
|
||||
append_if [expr !$use_lxip] packages " [depot_user]/src/vfs_lwip "
|
||||
append_if $use_lxip packages " [depot_user]/src/vfs_lxip "
|
||||
append_if $use_nic_bridge packages " [depot_user]/src/nic_bridge "
|
||||
append_if $use_nic_router packages " [depot_user]/src/nic_router "
|
||||
append_if $use_usb_driver packages " [depot_user]/src/platform_drv "
|
||||
append_if $use_usb_driver packages " [depot_user]/src/usb_drv "
|
||||
append_if $use_wifi_driver packages " [depot_user]/src/fs_rom "
|
||||
append_if $use_wifi_driver packages " [depot_user]/src/vfs_import "
|
||||
append_if $use_wifi_driver packages " [depot_user]/src/report_rom "
|
||||
@ -93,7 +81,12 @@ append_if $use_wifi_driver packages " [depot_user]/raw/wifi_firmware "
|
||||
|
||||
import_from_depot $packages
|
||||
|
||||
build { app/netperf }
|
||||
set build_components { app/netperf }
|
||||
|
||||
append_if $use_usb_driver build_components " drivers/usb_host "
|
||||
append_if $use_usb_driver build_components " drivers/usb_net "
|
||||
|
||||
build $build_components
|
||||
|
||||
#
|
||||
# Generate config
|
||||
@ -106,7 +99,7 @@ proc platform_drv_policy {} {
|
||||
global use_wifi_driver
|
||||
if { $use_wifi_driver } {
|
||||
return {<policy label_prefix="nic_drv"> <pci class="WIFI"/> </policy>}}
|
||||
return {<policy label_prefix="nic_drv"> <pci class="USB"/> </policy>}
|
||||
return {<policy label_prefix="usb_host_drv"> <pci class="USB"/> </policy>}
|
||||
}
|
||||
|
||||
set config {
|
||||
@ -171,9 +164,8 @@ append config { </wifi_config>
|
||||
|
||||
<start name="nic_drv" caps="300">
|
||||
<binary name="wifi_drv"/>
|
||||
<resource name="RAM" quantum="24M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<config>
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<config mode="uplink_client">
|
||||
<libc stdout="/dev/null" stderr="/dev/log" rtc="/dev/rtc"/>
|
||||
<vfs>
|
||||
<dir name="dev">
|
||||
@ -189,88 +181,133 @@ append config { </wifi_config>
|
||||
<service name="File_system"> <child name="config_fs"/> </service>
|
||||
<service name="ROM" label="wifi_config"> <child name="config_rom" /> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child /> </any-service>
|
||||
</route>
|
||||
</start>}
|
||||
|
||||
} elseif { $use_usb_driver } {
|
||||
|
||||
append_platform_drv_config
|
||||
append config {
|
||||
<start name="nic_drv" caps="150">
|
||||
<binary name="usb_drv"/>
|
||||
<resource name="RAM" quantum="18M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<config uhci="no" ehci="no" xhci="yes">
|
||||
<nic mac="02:00:00:00:01:01" />
|
||||
</config>
|
||||
</start> }
|
||||
} else {
|
||||
|
||||
<start name="usb_host_drv" caps="120"> }
|
||||
|
||||
append config "<binary name=\"[usb_host_drv_binary]\"/>"
|
||||
append config {
|
||||
|
||||
<resource name="RAM" quantum="12M"/>
|
||||
<provides> <service name="Usb"/> </provides>
|
||||
<config bios_handoff="yes"> }
|
||||
|
||||
append_if [have_board arndale] config {
|
||||
|
||||
<policy label_prefix="nic_drv" vendor_id="0x0b95" product_id="0x772a"/> }
|
||||
|
||||
append_if [have_board rpi] config {
|
||||
|
||||
<policy label_prefix="nic_drv" vendor_id="0x0424" product_id="0xec00"/> }
|
||||
|
||||
append_if [have_spec x86] config {
|
||||
|
||||
<policy label_prefix="nic_drv" vendor_id="0x0b95" product_id="0x1790"/> }
|
||||
|
||||
append config {
|
||||
|
||||
</config>
|
||||
<route>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_drv" caps="200">
|
||||
<binary name="usb_net_drv"/>
|
||||
<resource name="RAM" quantum="20M"/>
|
||||
<config mode="uplink_client" mac="02:00:00:00:01:01" />
|
||||
<route>
|
||||
<service name="Uplink"><child name="nic_router"/></service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start> }
|
||||
|
||||
} else {
|
||||
|
||||
append config {
|
||||
|
||||
<start name="nic_drv" caps="1000" managing_system="yes">
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
<binary name="init"/>
|
||||
<route>
|
||||
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
</start> }
|
||||
}
|
||||
|
||||
append_if $use_nic_router config {
|
||||
append config {
|
||||
|
||||
<start name="nic_router" caps="120">
|
||||
<resource name="RAM" quantum="5M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
<config verbose_domain_state="yes"> }
|
||||
|
||||
<policy label_prefix="netserver_genode" domain="server"/>
|
||||
<uplink domain="uplink"/>
|
||||
if {$use_nic_bridge} { append config {
|
||||
|
||||
<policy label_prefix="nic_bridge" domain="server"/> }
|
||||
|
||||
} else { append config {
|
||||
|
||||
<policy label_prefix="netserver_genode" domain="server"/> }
|
||||
}
|
||||
append config {
|
||||
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink" }
|
||||
|
||||
append_if [have_spec linux] config "
|
||||
|
||||
interface=\"$lx_ip_addr/24\" gateway=\"10.0.2.1\""
|
||||
|
||||
append config {
|
||||
|
||||
<domain name="uplink"}
|
||||
append_if [expr $use_nic_router && [have_spec linux]] config "
|
||||
interface=\"$lx_ip_addr/24\" gateway=\"10.0.2.1\""
|
||||
append_if $use_nic_router config {
|
||||
>
|
||||
<nat domain="server" tcp-ports="100" />
|
||||
<tcp-forward port="12864" domain="server" to="10.0.3.2" />
|
||||
<tcp-forward port="12865" domain="server" to="10.0.3.2" />
|
||||
</domain>
|
||||
|
||||
<domain name="server" interface="10.0.3.1/24">
|
||||
<domain name="server" interface="10.0.3.1/24" verbose_packets="no">
|
||||
<dhcp-server ip_first="10.0.3.2"
|
||||
ip_last="10.0.3.2"
|
||||
ip_lease_time_sec="600"/>
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_drv"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
}
|
||||
</start> }
|
||||
|
||||
append_if $use_nic_bridge config {
|
||||
|
||||
<start name="nic_bridge">
|
||||
<resource name="RAM" quantum="5M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<config mac="} $bridge_mac {">}
|
||||
append_if [expr $use_nic_bridge && [have_spec linux]] config "
|
||||
<policy label_prefix=\"netserver_genode\" ip_addr=\"$lx_ip_addr\"/>"
|
||||
append_if $use_nic_bridge config {
|
||||
<config mac="} $bridge_mac {">
|
||||
<default-policy/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_drv"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start> }
|
||||
|
||||
append config {
|
||||
|
||||
<start name="netserver_genode" caps="320" priority="-1">
|
||||
<binary name="netserver"/>
|
||||
<resource name="RAM" quantum="32M"/>
|
||||
@ -285,34 +322,40 @@ append config {
|
||||
<log/> <inline name="rtc">2018-01-01 00:01</inline>
|
||||
</dir>
|
||||
<dir name="socket">
|
||||
<} [socket_fs_plugin] { }
|
||||
if {[expr [have_spec linux] && !$use_nic_router]} {
|
||||
append config " ip_addr=\"$lx_ip_addr\" netmask=\"255.255.255.0\" gateway=\"10.0.2.1\""
|
||||
} else {
|
||||
append config " dhcp=\"yes\""
|
||||
}
|
||||
append config {/>
|
||||
<} [socket_fs_plugin] { dhcp="yes"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
</config>}
|
||||
append_if $use_nic_bridge config {
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>}
|
||||
append_if $use_nic_router config {
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>}
|
||||
append config {
|
||||
</start>
|
||||
</config>
|
||||
}
|
||||
if { $use_nic_bridge } {
|
||||
|
||||
append config {
|
||||
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service> }
|
||||
|
||||
} else {
|
||||
|
||||
append config {
|
||||
|
||||
<service name="Nic"> <child name="nic_router"/> </service> }
|
||||
}
|
||||
append config {
|
||||
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
</config> }
|
||||
|
||||
install_config $config
|
||||
|
||||
build_boot_image { netserver }
|
||||
set boot_modules { netserver }
|
||||
|
||||
append_if $use_usb_driver boot_modules " [usb_host_drv_binary] "
|
||||
append_if $use_usb_driver boot_modules " usb_net_drv "
|
||||
|
||||
build_boot_image $boot_modules
|
||||
|
||||
#
|
||||
# Execute test case
|
||||
@ -322,17 +365,8 @@ build_boot_image { netserver }
|
||||
append qemu_args " -nographic "
|
||||
append_qemu_nic_args "hostfwd=tcp::12865-:12865,hostfwd=tcp::49153-:49153"
|
||||
|
||||
set ip_match_string ""
|
||||
set force_ports ""
|
||||
if $use_lxip {
|
||||
set ip_match_string "ipaddr=(\[0-9\]+\.\[0-9\]+\.\[0-9\]+\.\[0-9\]+).*\n"
|
||||
} else {
|
||||
set ip_match_string "address=(\[0-9\]+\.\[0-9\]+\.\[0-9\]+\.\[0-9\]+).*\n"
|
||||
}
|
||||
if $use_nic_router {
|
||||
set ip_match_string "nic_router\\\] \\\[uplink\\\] dynamic IP config: interface (\[0-9]{1,3}.\[0-9]{1,3}.\[0-9]{1,3}.\[0-9]{1,3}).*\n"
|
||||
set force_ports "-P 12864,12864"
|
||||
}
|
||||
set ip_match_string "nic_router\\\] \\\[uplink\\\] dynamic IP config: interface (\[0-9]{1,3}.\[0-9]{1,3}.\[0-9]{1,3}.\[0-9]{1,3}).*\n"
|
||||
set force_ports "-P 12864,12864"
|
||||
|
||||
if {[have_spec linux]} {
|
||||
run_genode_until {.*family AF_INET.*\n} 60
|
||||
@ -387,7 +421,6 @@ foreach netperf_test $netperf_tests {
|
||||
# format output parseable for post proccessing scripts
|
||||
puts -nonewline "! PERF: $netperf_test"
|
||||
if {$use_nic_bridge} { puts -nonewline "_bridge" }
|
||||
if {$use_nic_router} { puts -nonewline "_router" }
|
||||
if {$use_usb_driver} { puts -nonewline "_xhci" }
|
||||
puts " [lindex $throughput 1] MBit/s ok"
|
||||
}
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 0
|
||||
set use_lxip 0
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 1
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 0
|
||||
set use_lxip 0
|
||||
|
@ -1,15 +0,0 @@
|
||||
#
|
||||
# \brief Test using netperf with a NIC router and with a native driver or
|
||||
# if not available for the platform using usb 3.0 by default
|
||||
# \author Martin Stein
|
||||
# \date 2017-12-19
|
||||
#
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 1
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 0
|
||||
set use_lxip 0
|
||||
|
||||
source ${genode_dir}/repos/ports/run/netperf.inc
|
@ -15,7 +15,6 @@ if {[have_include "power_on/qemu"] || [have_include "power_on/linux"]} {
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 1
|
||||
set use_lxip 0
|
||||
|
@ -24,7 +24,6 @@ if {[get_cmd_switch --autopilot] && [have_spec x86_32] &&
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 1
|
||||
set use_usb_driver 0
|
||||
set use_lxip 0
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 0
|
||||
set use_lxip 1
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 1
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 0
|
||||
set use_lxip 1
|
||||
|
@ -1,15 +0,0 @@
|
||||
#
|
||||
# \brief Test using netperf with a NIC router and with a native driver or
|
||||
# if not available for the platform using usb 3.0 by default
|
||||
# \author Martin Stein
|
||||
# \date 2017-12-19
|
||||
#
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 1
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 0
|
||||
set use_lxip 1
|
||||
|
||||
source ${genode_dir}/repos/ports/run/netperf.inc
|
@ -15,7 +15,6 @@ if {[have_include "power_on/qemu"] || [have_include "power_on/linux"]} {
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 0
|
||||
set use_usb_driver 1
|
||||
set use_lxip 1
|
||||
|
@ -24,7 +24,6 @@ if {[get_cmd_switch --autopilot] && [have_spec x86_32] &&
|
||||
|
||||
# network configuration
|
||||
set use_nic_bridge 0
|
||||
set use_nic_router 0
|
||||
set use_wifi_driver 1
|
||||
set use_usb_driver 0
|
||||
set use_lxip 1
|
||||
|
@ -32,7 +32,6 @@ set use_block_sata 0
|
||||
set use_part_block 0
|
||||
|
||||
set use_nic_session 1
|
||||
set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
|
@ -19,7 +19,6 @@ set use_block_sata 0
|
||||
set use_part_block 0
|
||||
|
||||
set use_nic_session 1
|
||||
set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
|
@ -22,7 +22,6 @@ set use_block_sata 0
|
||||
set use_part_block 0
|
||||
|
||||
set use_nic_session 1
|
||||
set use_nic_bridge 1
|
||||
|
||||
set use_usb 0
|
||||
|
||||
|
@ -20,7 +20,6 @@ set use_block_sata 0
|
||||
set use_part_block 0
|
||||
|
||||
set use_nic_session 1
|
||||
set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
|
@ -26,7 +26,6 @@ set use_block_sata 0
|
||||
set use_part_block 0
|
||||
|
||||
set use_nic_session 0
|
||||
set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
|
@ -19,7 +19,6 @@ set use_block_sata 0
|
||||
set use_part_block 0
|
||||
|
||||
set use_nic_session 1
|
||||
set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
|
@ -73,7 +73,7 @@ lappend_if $use_usb build_components drivers/usb
|
||||
lappend_if $use_vfs_block build_components server/vfs_block
|
||||
lappend_if $use_drv_ahci build_components drivers/ahci
|
||||
lappend_if $use_nic_session build_components drivers/nic
|
||||
lappend_if $use_nic_bridge build_components server/nic_bridge
|
||||
lappend_if $use_nic_session build_components server/nic_router
|
||||
lappend_if $use_framebuffer build_components drivers/framebuffer
|
||||
lappend_if $use_fancy_stuff build_components app/status_bar
|
||||
lappend_if $use_fancy_stuff build_components app/launchpad
|
||||
@ -329,23 +329,50 @@ append_if $use_genode_iso config {
|
||||
append_platform_drv_config
|
||||
|
||||
append_if $use_nic_session config {
|
||||
|
||||
<start name="nic_drv" priority="-2">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
</start>
|
||||
}
|
||||
|
||||
append_if [expr $use_nic_session && $use_nic_bridge] config {
|
||||
<start name="nic_bridge" priority="-3">
|
||||
<resource name="RAM" quantum="6M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<config> <default-policy/> </config>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Nic"><child name="nic_drv"/></service>
|
||||
<any-service><parent/></any-service>
|
||||
<service name="Uplink"><child name="nic_router"/></service>
|
||||
<any-service><parent/><any-child/></any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="seoul" domain="downlink"/>
|
||||
<policy label_prefix="launchpad" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.55" ip_last="10.0.3.155" dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
}
|
||||
|
||||
append_if $use_framebuffer config {
|
||||
@ -376,10 +403,8 @@ append config {
|
||||
<service name="Timer"><child name="timer"/></service>
|
||||
<service name="ROM" label="config">
|
||||
<parent label="vm_seoul.cfg"/> </service>}
|
||||
append_if [expr $use_nic_session && $use_nic_bridge] config {
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>}
|
||||
append_if [expr $use_nic_session && !$use_nic_bridge] config {
|
||||
<service name="Nic"> <child name="nic_drv"/> </service>}
|
||||
append_if [expr $use_nic_session] config {
|
||||
<service name="Nic"> <child name="nic_router"/> </service>}
|
||||
append_if $use_genode_iso config {
|
||||
<service name="ROM" unscoped_label="seoul"> <parent/> </service>
|
||||
<service name="ROM" unscoped_label="ld.lib.so"> <parent/> </service>
|
||||
@ -469,7 +494,7 @@ append_if $use_fancy_stuff config {
|
||||
<start name="launchpad" priority="-2" caps="1500">
|
||||
<resource name="RAM" quantum="64000M"/>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="ROM" label="config">
|
||||
<parent label="launchpad-config"/> </service>
|
||||
<any-service><parent/><any-child/></any-service>
|
||||
@ -544,7 +569,7 @@ lappend_if $use_vfs_block boot_modules vfs_block
|
||||
lappend_if $use_vfs_block boot_modules vfs.lib.so
|
||||
lappend_if $use_drv_ahci boot_modules ahci_drv
|
||||
lappend_if $use_nic_session boot_modules ipxe_nic_drv
|
||||
lappend_if $use_nic_bridge boot_modules nic_bridge
|
||||
lappend_if $use_nic_session boot_modules nic_router
|
||||
lappend_if $use_framebuffer boot_modules vesa_fb_drv
|
||||
|
||||
lappend_if $use_fancy_stuff boot_modules status_bar
|
||||
|
@ -106,6 +106,7 @@ set build_components {
|
||||
server/report_rom server/fs_rom server/vfs
|
||||
server/tcp_terminal drivers/nic
|
||||
lib/vfs/lwip lib/vfs/pipe lib/vfs/import
|
||||
server/nic_router
|
||||
}
|
||||
|
||||
#
|
||||
@ -115,7 +116,7 @@ foreach pkg {bash coreutils} {
|
||||
lappend_if [expr ![file exists bin/$pkg]] build_components noux-pkg/$pkg }
|
||||
|
||||
set boot_modules {
|
||||
vfs fs_rom
|
||||
vfs fs_rom nic_router
|
||||
posix.lib.so bash.tar coreutils.tar
|
||||
tcp_terminal vfs_lwip.lib.so vfs_pipe.lib.so vfs_import.lib.so
|
||||
ipxe_nic_drv report_rom event_filter
|
||||
@ -125,10 +126,50 @@ set boot_modules {
|
||||
append boot_modules $vbox_file
|
||||
|
||||
set config_of_app {
|
||||
|
||||
<start name="nic_drv" priority="-1">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides> <service name="Nic"/> </provides>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"><child name="nic_router"/></service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
<policy label_prefix="tcp_terminal" domain="downlink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
<tcp-forward port="8888" domain="downlink" to="10.0.3.2"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2" dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<start name="tcp_terminal" priority="-1" caps="200">
|
||||
@ -143,6 +184,10 @@ set config_of_app {
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" socket="/socket" pipe="/pipe"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"><child name="nic_router"/></service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="ram_fs_from" priority="-1">
|
||||
@ -358,7 +403,7 @@ exec cp ${genode_dir}/repos/ports/run/$vbox_file bin/.
|
||||
|
||||
build_boot_image $boot_modules
|
||||
|
||||
set ip_match_string "address=(\[0-9\]+\.\[0-9\]+\.\[0-9\]+\.\[0-9\]+).*\n"
|
||||
set ip_match_string "nic_router\\\] \\\[uplink\\\] dynamic IP config: interface (\[0-9]{1,3}.\[0-9]{1,3}.\[0-9]{1,3}.\[0-9]{1,3}).*\n"
|
||||
|
||||
#
|
||||
# Step 2: Read out TCP/IP address of tcp_terminal running on Genode target
|
||||
|
@ -25,6 +25,7 @@ if {[info exists flavor_extension]} {
|
||||
}
|
||||
|
||||
set build_components {
|
||||
server/nic_router
|
||||
server/event_filter
|
||||
drivers/nic
|
||||
drivers/audio
|
||||
@ -33,6 +34,7 @@ set build_components {
|
||||
}
|
||||
|
||||
set boot_modules {
|
||||
nic_router
|
||||
event_filter
|
||||
ipxe_nic_drv
|
||||
pci_audio_drv
|
||||
@ -73,9 +75,44 @@ set config_of_app {
|
||||
<start name="nic_drv" priority="-1">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="8M" />
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child /> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nic_router" caps="200">
|
||||
<resource name="RAM" quantum="10M"/>
|
||||
<provides>
|
||||
<service name="Nic" />
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="vbox" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24" verbose_packets="no">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.100" ip_last="10.0.3.200" dns_server_from="uplink"/>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start>
|
||||
|
||||
<!--
|
||||
|
@ -8,8 +8,6 @@ set use_vbox5_nova 0
|
||||
|
||||
# use_gui starts two VMs
|
||||
set use_gui 0
|
||||
# need a nic bridge for 2 VMs
|
||||
set use_bridge [expr $use_net && $use_gui]
|
||||
|
||||
set build_components {
|
||||
drivers/framebuffer
|
||||
@ -42,7 +40,7 @@ lappend_if [expr $use_serial] build_components server/log_terminal
|
||||
lappend_if [have_spec x86] build_components drivers/rtc
|
||||
|
||||
lappend_if [expr $use_net] build_components drivers/nic
|
||||
lappend_if [expr $use_bridge] build_components server/nic_bridge
|
||||
lappend_if [expr $use_net] build_components server/nic_router
|
||||
|
||||
append_platform_drv_build_components
|
||||
|
||||
@ -124,10 +122,49 @@ append_if [have_spec x86] config {
|
||||
append_if [expr $use_net] config {
|
||||
<start name="nic_drv" priority="-1">
|
||||
<binary name="ipxe_nic_drv"/>
|
||||
<resource name="RAM" quantum="4M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<config mode="uplink_client"/>
|
||||
<route>
|
||||
<service name="Uplink"> <child name="nic_router"/> </service>
|
||||
<any-service> <parent/> <any-child /> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
}
|
||||
|
||||
<start name="nic_router" caps="120">
|
||||
<resource name="RAM" quantum="5M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
<service name="Uplink"/>
|
||||
</provides>
|
||||
<config verbose_domain_state="yes">
|
||||
|
||||
<policy label_prefix="vbox" domain="downlink"/>
|
||||
<policy label_prefix="nic_drv" domain="uplink"/>
|
||||
|
||||
<domain name="uplink">
|
||||
|
||||
<nat domain="downlink"
|
||||
tcp-ports="16384"
|
||||
udp-ports="16384"
|
||||
icmp-ids="16384"/>
|
||||
|
||||
</domain>
|
||||
|
||||
<domain name="downlink" interface="10.0.3.1/24" verbose_packets="no">
|
||||
|
||||
<dhcp-server ip_first="10.0.3.100" ip_last="10.0.3.200">
|
||||
<dns-server ip="8.8.8.8"/>
|
||||
<dns-server ip="1.1.1.1"/>
|
||||
</dhcp-server>
|
||||
|
||||
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
||||
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
||||
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
||||
|
||||
</domain>
|
||||
|
||||
</config>
|
||||
</start> }
|
||||
|
||||
append_if [expr $use_serial] config {
|
||||
<start name="log_terminal" priority="-1">
|
||||
@ -138,18 +175,6 @@ append_if [expr $use_serial] config {
|
||||
</start>
|
||||
}
|
||||
|
||||
append_if [expr $use_bridge] config {
|
||||
<start name="nic_bridge" priority="-1">
|
||||
<resource name="RAM" quantum="6M"/>
|
||||
<provides><service name="Nic"/></provides>
|
||||
<config> <default-policy/> </config>
|
||||
<route>
|
||||
<service name="Nic"><child name="nic_drv"/></service>
|
||||
<any-service><parent/></any-service>
|
||||
</route>
|
||||
</start>
|
||||
}
|
||||
|
||||
append config {
|
||||
<start name="report_rom" priority="-1">
|
||||
<resource name="RAM" quantum="2M"/>
|
||||
@ -212,7 +237,7 @@ append_if [expr $use_gui] config {
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="Report" label="shape"> <child name="pointer" label="gui_fb2 -> shape"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<any-service> <parent /> <any-child /> </any-service>
|
||||
@ -239,12 +264,8 @@ append config {
|
||||
<rom name="test.iso" />
|
||||
</vfs>
|
||||
</config>
|
||||
<route>}
|
||||
|
||||
append_if [expr $use_bridge] config {
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>}
|
||||
|
||||
append config {
|
||||
<route>
|
||||
<service name="Nic"> <child name="nic_router"/> </service>
|
||||
<service name="Report" label="shape"> <child name="pointer" label="gui_fb1 -> shape"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<any-service> <parent /> <any-child /> </any-service>
|
||||
@ -277,7 +298,7 @@ append boot_modules {
|
||||
}
|
||||
|
||||
append_if [expr $use_net] boot_modules { ipxe_nic_drv }
|
||||
append_if [expr $use_bridge] boot_modules { nic_bridge }
|
||||
append_if [expr $use_net] boot_modules { nic_router }
|
||||
append_if [expr $use_serial] boot_modules { log_terminal }
|
||||
|
||||
append_platform_drv_boot_modules
|
||||
|
@ -35,7 +35,6 @@ set use_block_sata 1
|
||||
set use_part_block [expr ![have_include power_on/qemu]]
|
||||
|
||||
set use_nic_session 1
|
||||
set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
|
@ -29,12 +29,10 @@ migrate
|
||||
moon
|
||||
netperf_lwip
|
||||
netperf_lwip_bridge
|
||||
netperf_lwip_router
|
||||
netperf_lwip_usb30
|
||||
netperf_lwip_wifi
|
||||
netperf_lxip
|
||||
netperf_lxip_bridge
|
||||
netperf_lxip_router
|
||||
netperf_lxip_usb30
|
||||
netperf_lxip_wifi
|
||||
nic_bridge
|
||||
@ -88,6 +86,7 @@ vm_stress_vbox5-debian32
|
||||
vm_stress_vbox5-debian64
|
||||
vm_stress_seoul-debian32
|
||||
verify
|
||||
vfs_cfg
|
||||
vfs_import
|
||||
vmm_arm
|
||||
vmm_x86
|
||||
|
Loading…
x
Reference in New Issue
Block a user