genode/repos/os/src/app/ping
Martin Stein 181c78d482 timeout: use uint64_t for all plain time values
This enforces the use of unsigned 64-bit values for time in the duration type,
the timeout framework, the timer session, the userland timer-drivers, and the
alarm framework on all platforms. The commit also adapts the code that uses
these tools accross all basic repositories (base, base-*, os. gems, libports,
ports, dde_*) to use unsigned 64-bit values for time as well as far as this
does not imply profound modifications.

Fixes #3208
2019-05-06 16:15:26 +02:00
..
README ping: support UDP 2018-05-30 13:36:12 +02:00
config.xsd base: define generic config XSD types globally 2018-08-28 16:48:47 +02:00
dhcp_client.cc timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
dhcp_client.h timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
ipv4_address_prefix.cc ping: dynamic IP configuration 2018-05-30 13:36:12 +02:00
ipv4_address_prefix.h ping: dynamic IP configuration 2018-05-30 13:36:12 +02:00
ipv4_config.cc ping: dynamic IP configuration 2018-05-30 13:36:12 +02:00
ipv4_config.h ping: dynamic IP configuration 2018-05-30 13:36:12 +02:00
main.cc timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
nic.cc ping: dynamic IP configuration 2018-05-30 13:36:12 +02:00
nic.h ping: dynamic IP configuration 2018-05-30 13:36:12 +02:00
protocol.h ping: support UDP 2018-05-30 13:36:12 +02:00
target.mk ping: dynamic IP configuration 2018-05-30 13:36:12 +02:00
xml_node.cc timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
xml_node.h timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00

README

The 'ping' component continuously sends ICMP Echo or UDP requests to a given
IP host and waits for the corresponding ICMP Echo or UDP replies. For each
successfull ICMP Echo or UDP handshake it prints a short statistic. The ICMP
data field gets filled with the letters of the alphabet ('a' to 'z') repeatedly.


Configuration
~~~~~~~~~~~~~

This is an example configuration of the component which shows the default
value for each attribute except 'config.dst_ip' and 'config.interface':

! <config interface="10.0.0.72/24"
!         dst_ip="10.0.0.24"
!         dst_port="50000"
!         protocol="icmp"
!         period_sec="5"
!         verbose="no"
!         count="5" />

This is a short description of the tags and attributes:

:config.interface:
  Optional. IP address and subnet of the component. If not set, the component
  requests and maintains the IP configuration via DHCP.

:config.gateway:
  Optional. IP address of the gateway of the IP subnet.

:config.dst_ip:
  Mandatory. IP address of the target host.

:config.period_sec:
  Optional. Length of send interval in seconds.

:config.verbose:
  Optional. Toggles wether the component shall log debugging information.

:config.count:
  Optional. After how many successful pings the component exits successfully.

:config.dst_port:
  Optional. Destination port resp. ICMP query ID to use.

:config.protocol:
  Optional. Protocol to ping with. Can be one of 'icmp', 'udp'.


Sessions
~~~~~~~~

This is an overview of the sessions required and provided by the
component apart from the environment sessions:

* Requires one Timer session.


Examples
~~~~~~~~

Examples of how to use the ping component can be found in the test scripts
'os/run/ping.run' and 'os/run/ping_nic_router.run'.