Add remote_rom proxy component

Fixes #20
This commit is contained in:
Johannes Schlatow
2016-07-05 11:51:45 +02:00
committed by Norman Feske
parent 04c42f34bc
commit 2687de2376
17 changed files with 1441 additions and 0 deletions

View File

@@ -0,0 +1,147 @@
#
# Build
#
build { core init drivers/timer
server/dynamic_rom
proxy/remote_rom/backend/nic_ip
app/rom_logger
drivers/nic
server/nic_bridge
}
create_boot_directory
#
# Generate config
#
install_config {
<config>
<parent-provides>
<service name="CAP"/>
<service name="LOG"/>
<service name="RM"/>
<service name="SIGNAL"/>
<service name="ROM" />
<service name="RAM" />
<service name="CPU" />
<service name="PD" />
<service name="IO_MEM" />
<service name="IRQ" />
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="dynamic_rom">
<resource name="RAM" quantum="4M"/>
<provides><service name="ROM"/></provides>
<config verbose="yes">
<rom name="test">
<sleep milliseconds="1000" />
<inline description="disable">
<test enabled="no"/>
</inline>
<sleep milliseconds="5000" />
<inline description="enable">
<test enabled="yes"/>
</inline>
<sleep milliseconds="10000" />
<inline description="finished"/>
</rom>
</config>
</start>
<start name="remote_rom_server">
<resource name="RAM" quantum="8M"/>
<route>
<service name="ROM"> <child name="dynamic_rom"/> </service>
<service name="Nic"> <child name="nic_bridge"/> </service>
<any-service> <parent/> </any-service>
</route>
<config>
<remote_rom localname="test" name="remote" src="192.168.42.10" dst="192.168.42.11">
<default>
<default />
</default>
</remote_rom>
</config>
</start>
<start name="remote_rom_client">
<resource name="RAM" quantum="8M"/>
<route>
<service name="Nic"> <child name="nic_bridge"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides><service name="ROM"/></provides>
<config>
<remote_rom name="remote" src="192.168.42.11" dst="192.168.42.10">
<default>
<default />
</default>
</remote_rom>
</config>
</start>
<start name="nic_bridge">
<resource name="RAM" quantum="4M"/>
<provides><service name="Nic"/></provides>
<route>
<service name="Nic"> <child name="nic_drv"/> </service>
<any-service> <parent/> </any-service>
</route>
<config>
<nic tap="tap1"/>
</config>
</start>
<start name="nic_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Nic"/></provides>
<config>
<nic tap="tap1"/>
</config>
</start>
<start name="rom_logger">
<resource name="RAM" quantum="4M"/>
<config rom="remote" />
<route>
<service name="ROM"> <child name="remote_rom_client"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</config>}
#
# Boot image
#
build_boot_image { core init timer
remote_rom_server
remote_rom_client
dynamic_rom
rom_logger
nic_drv
nic_bridge
}
append qemu_args " -nographic "
run_genode_until {.*change \(finished\).*} 30
grep_output {init -> rom_logger}
compare_output_to {
[init -> rom_logger] ROM 'remote':
[init -> rom_logger] <default />
[init -> rom_logger]
[init -> rom_logger] ROM 'remote':
[init -> rom_logger] <default />
[init -> rom_logger]
[init -> rom_logger] ROM 'remote':
[init -> rom_logger] <test enabled="no"/>
[init -> rom_logger]
[init -> rom_logger] ROM 'remote':
[init -> rom_logger] <test enabled="yes"/>
[init -> rom_logger]
}

View File

@@ -0,0 +1,75 @@
#
# Build
#
build { core init drivers/timer
app/rom_logger
proxy/remote_rom/backend/nic_ip/client
drivers/nic
}
create_boot_directory
#
# Generate config
#
install_config {
<config>
<parent-provides>
<service name="CAP"/>
<service name="LOG"/>
<service name="RM"/>
<service name="SIGNAL"/>
<service name="ROM" />
<service name="RAM" />
<service name="CPU" />
<service name="PD" />
<service name="IO_MEM" />
<service name="IRQ" />
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="rom_logger">
<resource name="RAM" quantum="4M"/>
<config rom="remote" />
<route>
<service name="ROM"> <child name="remote_rom_client"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="remote_rom_client">
<resource name="RAM" quantum="8M"/>
<provides><service name="ROM"/></provides>
<config>
<remote_rom name="remote" src="192.168.42.11" dst="192.168.42.10" />
</config>
</start>
<start name="nic_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Nic"/></provides>
<config>
<nic tap="tap1"/>
</config>
</start>
</config>}
#
# Boot image
#
build_boot_image { core init timer
remote_rom_client
rom_logger
nic_drv
}
append qemu_args " -nographic "
append qemu_args " -net tap,ifname=tap2 "
run_genode_until forever

View File

@@ -0,0 +1,89 @@
#
# Build
#
build { core init drivers/timer
server/dynamic_rom
proxy/remote_rom/backend/nic_ip/server
drivers/nic
}
create_boot_directory
#
# Generate config
#
install_config {
<config>
<parent-provides>
<service name="CAP"/>
<service name="LOG"/>
<service name="RM"/>
<service name="SIGNAL"/>
<service name="ROM" />
<service name="RAM" />
<service name="CPU" />
<service name="PD" />
<service name="IO_MEM" />
<service name="IRQ" />
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="dynamic_rom">
<resource name="RAM" quantum="4M"/>
<provides><service name="ROM"/></provides>
<config verbose="yes">
<rom name="test">
<sleep milliseconds="1000" />
<inline description="disable">
<test enabled="no"/>
</inline>
<sleep milliseconds="5000" />
<inline description="enable">
<test enabled="yes"/>
</inline>
<sleep milliseconds="10000" />
<inline description="finished"/>
</rom>
</config>
</start>
<start name="remote_rom_server">
<resource name="RAM" quantum="8M"/>
<route>
<service name="ROM"> <child name="dynamic_rom"/> </service>
<service name="Nic"> <child name="nic_drv"/> </service>
<any-service> <parent/> </any-service>
</route>
<config>
<remote_rom localname="test" name="remote" src="192.168.42.10" dst="192.168.42.11" />
</config>
</start>
<start name="nic_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Nic"/></provides>
<config>
<nic tap="tap1"/>
</config>
</start>
</config>}
#
# Boot image
#
build_boot_image { core init timer
remote_rom_server
dynamic_rom
nic_drv
}
append qemu_args " -nographic "
append qemu_args " -net tap,ifname=tap2 "
run_genode_until forever