<runtime ram="40M" caps="2000" binary="init">

	<requires> <timer/> </requires>

	<fail after_seconds="60"/>
	<succeed>
			[init] child "nic_perf_tx" exited with exit value 0
	</succeed>

	<content>
		<rom label="ld.lib.so"/>
		<rom label="nic_router"/>
		<rom label="nic_perf"/>
	</content>

	<config>
		<parent-provides>
			<service name="ROM"/>
			<service name="PD"/>
			<service name="RM"/>
			<service name="CPU"/>
			<service name="LOG"/>
			<service name="Timer"/>
		</parent-provides>
		<default-route>
			<any-service> <parent/> <any-child/> </any-service>
		</default-route>
		<default caps="500"/>

		<start name="nic_perf_tx">
			<binary name="nic_perf"/>
			<resource name="RAM" quantum="10M"/>
			<provides>
				<service name="Uplink"/>
				<service name="Nic"/>
			</provides>
			<config period_ms="5000" count="8">
				<nic-client>
					<tx mtu="1500" to="10.0.1.1" udp_port="12345"/>
				</nic-client>
			</config>
			<route>
				<service name="Nic"> <child name="nic_router"/> </service>
				<any-service> <any-child/> <parent/> </any-service>
			</route>
		</start>

		<start name="nic_router">
			<resource name="RAM" quantum="10M"/>
			<provides>
				<service name="Nic"/>
				<service name="Uplink"/>
			</provides>
			<config verbose_packet_drop="yes">
				<policy label_suffix="nic_perf_tx -> " domain="sender"/>
				<policy label_suffix="nic_perf_rx -> " domain="receiver"/>

				<domain name="sender" interface="10.0.1.1/24">
					<dhcp-server ip_first="10.0.1.2" ip_last="10.0.1.2"/>
					<nat domain="receiver" tcp-ports="100" udp-ports="100" icmp-ids="100"/>
					<udp-forward port="12345" to="10.0.2.2" domain="receiver"/>
					<!--
					<ip dst="0.0.0.0/0" domain="receiver"/>
					-->
				</domain>

				<domain name="receiver" 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="nic_perf_rx">
			<binary name="nic_perf"/>
			<resource name="RAM" quantum="10M"/>
			<provides>
				<service name="Uplink"/>
				<service name="Nic"/>
			</provides>
			<config period_ms="5000">
				<nic-client/>
			</config>
			<route>
				<service name="Nic"> <child name="nic_router"/> </service>
				<any-service> <any-child/> <parent/> </any-service>
			</route>
		</start>
	</config>
</runtime>
