mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-04 04:54:12 +00:00
c3853494c8
When this flag is set in the config tag, the NIC router will print a short information to the log for each general state change of a domain. This includes currently the IP-configuration state and the number of connected NIC sessions. This a useful addition as the normal verbose flag's purpose is a very deep insight into almost every activity in the router, which is cool for debugging sophisticated problems but normally floods the log and therefore discards this option for, e.g., desktop systems. In such systems, the new verbosity is pretty discreet but already gives a good hint on why packets may get dropped by the router although the routing rules are correct. Issue #2534
168 lines
5.4 KiB
Plaintext
168 lines
5.4 KiB
Plaintext
#
|
|
# Build components
|
|
#
|
|
|
|
proc enable_test_1 { } { return 1 }
|
|
proc enable_test_2 { } { return 1 }
|
|
proc enable_test_3 { } { return 1 }
|
|
proc enable_test_4 { } { return 1 }
|
|
proc enable_test_5 { } { return 1 }
|
|
proc enable_test_6 { } { return 1 }
|
|
|
|
source ${genode_dir}/repos/libports/run/nic_router.inc
|
|
|
|
build $targets
|
|
|
|
create_boot_directory
|
|
|
|
proc test_1_config { } {
|
|
if {[enable_test_1]} { return "
|
|
[client_config udp 1 10.0.98.55 10.0.98.33 255.255.255.0 nic_router 1337 10.0.98.33]
|
|
[server_config udp 1 10.0.99.55 10.0.99.33 255.255.255.0 nic_router 1337 ]" }
|
|
}
|
|
|
|
proc test_2_config { } {
|
|
if {[enable_test_2]} { return "
|
|
[client_config udp 2 10.0.2.212 10.0.2.1 255.255.255.0 nic_bridge 1 10.0.2.55]
|
|
[server_config udp 2 18.17.16.15 18.17.16.14 255.255.0.0 nic_router 1 ]" }
|
|
}
|
|
|
|
proc test_3_config { } {
|
|
if {[enable_test_3]} { return "
|
|
[client_config udp 3 217.13.192.2 217.13.192.1 255.255.192.0 nic_router 65535 10.0.2.213]
|
|
[server_config udp 3 10.0.2.213 10.0.2.55 255.255.255.0 nic_bridge 65535 ]" }
|
|
}
|
|
|
|
proc test_4_config { } {
|
|
if {[enable_test_4]} { return "
|
|
[client_config http 1 10.0.2.201 10.0.2.1 255.255.255.0 nic_bridge 80 10.0.2.55]
|
|
[server_config http 1 192.168.1.18 192.168.1.1 255.255.255.0 nic_router 80 ]" }
|
|
}
|
|
|
|
proc test_5_config { } {
|
|
if {[enable_test_5]} { return "
|
|
[client_config http 2 10.0.2.202 10.0.2.1 255.255.255.0 nic_bridge 8080 10.0.2.55]
|
|
[server_config http 2 192.168.2.72 192.168.2.1 255.255.255.0 nic_router 8080 ]" }
|
|
}
|
|
|
|
proc test_6_config { } {
|
|
if {[enable_test_6]} { return "
|
|
[client_config http 3 100.200.0.128 100.200.0.1 255.255.0.0 nic_router 2345 10.0.2.203]
|
|
[server_config http 3 10.0.2.203 10.0.2.1 255.255.255.0 nic_bridge 2345 ]" }
|
|
}
|
|
|
|
append config {
|
|
<config prio_levels="2">
|
|
<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"/>
|
|
</parent-provides>
|
|
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<default caps="100"/>
|
|
|
|
} [gpio_drv_config] {
|
|
} [nic_drv_config] {
|
|
} [platform_drv_config] {
|
|
|
|
<start name="timer" priority="0">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<resource name="CPU" quantum="5"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>
|
|
|
|
<start name="nic_router" caps="200" priority="-1">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides><service name="Nic"/></provides>
|
|
<config verbose="no"
|
|
verbose_domain_state="yes"
|
|
dhcp_discover_timeout_sec="3"
|
|
dhcp_request_timeout_sec="3"
|
|
dhcp_offer_timeout_sec="3"
|
|
udp_idle_timeout_sec="30"
|
|
tcp_idle_timeout_sec="30"
|
|
tcp_max_segm_lifetime_sec="15">
|
|
|
|
<policy label_prefix="udp_client_1" domain="udp_client_1" />
|
|
<policy label_prefix="http_client_3" domain="http_client_3" />
|
|
<policy label_prefix="udp_client_3" domain="udp_client_3" />
|
|
<policy label_prefix="http_server_1" domain="http_server_1" />
|
|
<policy label_prefix="http_server_2" domain="http_server_2" />
|
|
<policy label_prefix="udp_server_1" domain="udp_server_1" />
|
|
<policy label_prefix="udp_server_2" domain="udp_server_2" />
|
|
|
|
<domain name="uplink" interface="10.0.2.55/24" gateway="10.0.2.1">
|
|
<tcp-forward port="80" domain="http_server_1" to="192.168.1.18" />
|
|
<tcp-forward port="8080" domain="http_server_2" to="192.168.2.72" />
|
|
<udp-forward port="1" domain="udp_server_2" to="18.17.16.15" />
|
|
<nat domain="http_client_3" tcp-ports="6" />
|
|
<ip dst="217.13.192.0/24" domain="udp_client_3" />
|
|
</domain>
|
|
|
|
<domain name="udp_client_1" interface="10.0.98.33/24">
|
|
<udp-forward port="1337" domain="udp_server_1" to="10.0.99.55" />
|
|
</domain>
|
|
|
|
<domain name="http_client_3" interface="100.200.0.1/24">
|
|
<tcp dst="10.0.0.0/16">
|
|
<permit port="2345" domain="uplink" />
|
|
</tcp>
|
|
</domain>
|
|
|
|
<domain name="udp_client_3" interface="217.13.192.1/24">
|
|
<ip dst="10.0.2.0/24" domain="uplink" />
|
|
</domain>
|
|
|
|
<domain name="http_server_1" interface="192.168.1.1/24" />
|
|
<domain name="http_server_2" interface="192.168.2.1/24" />
|
|
<domain name="udp_server_1" interface="10.0.99.33/24" />
|
|
<domain name="udp_server_2" interface="18.17.16.14/24" />
|
|
|
|
</config>
|
|
<route>
|
|
<service name="Nic"> <child name="nic_bridge"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="nic_bridge" caps="200" priority="-1">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides><service name="Nic"/></provides>
|
|
<config>
|
|
<policy label_prefix="nic_router" ip_addr="10.0.2.55" />
|
|
<policy label_prefix="http_client_1" ip_addr="10.0.2.201" />
|
|
<policy label_prefix="http_client_2" ip_addr="10.0.2.202" />
|
|
<policy label_prefix="http_server_3" ip_addr="10.0.2.203" />
|
|
<policy label_prefix="udp_client_2" ip_addr="10.0.2.212" />
|
|
<policy label_prefix="udp_server_3" ip_addr="10.0.2.213" />
|
|
</config>
|
|
<route>
|
|
<service name="Nic"> <child name="} [nic_drv] {"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
} [test_1_config] {
|
|
} [test_2_config] {
|
|
} [test_3_config] {
|
|
} [test_4_config] {
|
|
} [test_5_config] {
|
|
} [test_6_config] {
|
|
|
|
</config> }
|
|
|
|
install_config $config
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
run_genode_until {.*Test done.*\n.*Test done.*\n.*Test done.*\n.*Test done.*\n.*Test done.*\n.*Test done.*\n} 240
|