# At the top level are elements specific to the overall Mesh. This includes a # description of the 'mesh', the admins for the mesh, the organizations # involved in the mesh, and the tests that the meshes perform. # A human-readable description of the overall mesh description DICE Mesh # The overall mesh administrators (i.e. who one should contact if problems are # seen with the mesh, etc). name Aaron Brown email aaron@example.internet2.edu name Andy Lake email andy@example.es.net # Each mesh has one or more "organization" blocks. This allows encapsulating # the administrators, sites, MAs, etc that are specific to the organization. In # this example organization, all the data is stored on the hosts on which it is # collected which is the norm for Toolkit instances. # A human-readable description of the organization description Internet2 # The administrators for the organization (i.e. who one should contact if # problems are seen with individual sites/hosts in the mesh. name Aaron Brown email aaron@example.internet2.edu # There can be one or more 'site' blocks. Each 'site' block corresponds to a # logical site in the organization which may contain one or more hosts. # Elements in the 'site' block apply to all the 'host' blocks contained # within them, and inherit the properties from the 'organization'. ## A human-readable description of where the site is located (e.g. a city or state) city New York state NY # The latitude and longitude where the site is located latitude 40.720 longitude -74.005 # Individual sites can have specific administrators associated with them. name Matt Zekauskas email matt@example.internet2.edu # There can be one or more 'host' blocks. Each 'host' block corresponds to # a single host at a site. # An optional human-readable description of the host description perfSONAR New York address perfsonar.newy.example.internet2.edu # There can be one or more 'measurement_archive' blocks. These have a 'read' # URL which corresponds to the perfSONAR-speaking MA where test results can # be obtained from. The blocks also have a 'write' URL which tells tests # where the results can be written to. For hosts running the Performance # Toolkit, the following URLs will all match the measurement archives # running on the host, just replace the perfsonar.newy.example.internet2.edu # with the hosts address. type traceroute read_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive type perfsonarbuoy/owamp read_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive type perfsonarbuoy/bwctl read_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive type pinger read_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.newy.example.internet2.edu/esmond/perfsonar/archive city Salt Lake City state UT latitude 40.757 longitude -111.953 description perfSONAR Salt Lake City address perfsonar.salt.example.internet2.edu type traceroute read_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive type perfsonarbuoy/owamp read_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive type perfsonarbuoy/bwctl read_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive type pinger read_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive write_url http://perfsonar.salt.example.internet2.edu/esmond/perfsonar/archive description ESnet name Andy Lake email andy@example.es.net name Brian Tierney email bltierney@example.es.net # Instead of having each host have its own measurement archives. It is # possible to have a central server act as a measurement archive for all the # hosts in an organization. type traceroute read_url http://ps-db.example.es.net/esmond/perfsonar/archive write_url http://ps-db.example.es.net/esmond/perfsonar/archive type perfsonarbuoy/owamp read_url http://ps-db.example.es.net/esmond/perfsonar/archive write_url http://ps-db.example.es.net/esmond/perfsonar/archive type perfsonarbuoy/bwctl read_url http://ps-db.example.es.net/esmond/perfsonar/archive write_url http://ps-db.example.es.net/esmond/perfsonar/archive type pinger read_url http://ps-db.example.es.net/esmond/perfsonar/archive write_url http://ps-db.example.es.net/esmond/perfsonar/archive city New York state NY latitude 40.720 longitude -74.005 address newy-pt1.example.es.net address newy-owamp.example.es.net city Chicago state IL latitude 41.896 longitude -87.643 address chic-pt1.example.es.net address chic-owamp.example.es.net # The 'include' direction can be used to include other configurations in the # mesh configuration. The URL listed will be embedded verbatim at the location # of the include, merging with the configuration in the local file. Multiple # 'include' directives may be used, though the order of how they are included # is unspecified. include http://example.edu/example_organization.json # When the example_organization.json is merged in, the 'description' listed # here will take precendence over a 'description' field included in the # example_organization.json description DICE View Of example.edu # When the example_organization.json is merged in, any top-level 'host' # elements (i.e. host elements directly under the organization, not under a # site) will be included in the list of hosts along with the host listed # below. address dice-tester.example.edu # When the example_organization.json is merged in, if it includes a # 'location' entry, it will be merged with the location entry below. If the # elements defined in the entry below are also defined in the # example_organization.json, the ones defined below will take precedence. latitude 41.896 longitude -87.643 # There can be one or more test_spec blocks. Each test_spec block represents a # test specification, i.e. a test type, along with the parameters for the test. # The test_spec's *must* have an 'id' field which gets used later to identify # them. # Define a test spec for testing achievable bandwidth once every 4 hours type perfsonarbuoy/bwctl # Perform a bwctl test (i.e. achievable bandwidth) tool bwctl/iperf3 # Use 'iperf' to do the bandwidh test protocol tcp # Run a TCP bandwidth test interval 14400 # Run the test every 4 hours duration 20 # Perform a 20 second test # Define a test spec for testing UDP bandwidth once every 24 hours type perfsonarbuoy/bwctl tool bwctl/iperf3 protocol udp # Run a UDP bandwidth test interval 86400 # Run the test every 24 hours duration 10 # Perform a 10 second test udp_bandwidth 50000000 # Perform a 50Mbps test # Define a test spec for doing jitter, loss and latency testing type perfsonarbuoy/owamp # Perform a constant low-bandwidth OWAMP test packet_interval 0.1 # Send 10 packets every second (i.e. pause 0.1 seconds between each packet) sample_count 600 # Send results back every 60 seconds (once every 600 packets) bucket_width 0.001 # The granularity of the measurements # Define a test spec for doing ICMP jitter, loss and latency testing every 5 minutes type pinger # Perform PingER tests test_interval 300 # Perform a test every 5 minutes packet_count 10 # Send 10 packets for each test packet_interval 1 # Pause 1 second between each packet sent packet_size 1000 # The size of the packets (not include the IP headers) # Define a test spec for running traceroute tests every 10 minutes type traceroute # Perform a traceroute test test_interval 600 # Run the test every 5 minutes packet_size 40 # The size of the packets (not include IP/UDP headers) # There can be one or more 'group' blocks. These contain a list of hosts that # will be used in a test. # A group type 'mesh' means that all hosts in the list will test to all other # hosts in the list. The other available options is 'star' configuration # detailed below. type mesh # The members contain a list of addresses that will be used in the tests. # These *must* correspond to addresses in host blocks above. member perfsonar.newy.example.internet2.edu member perfsonar.salt.example.internet2.edu member newy-owamp.example.es.net member chic-owamp.example.es.net type mesh member perfsonar.newy.example.internet2.edu member perfsonar.salt.example.internet2.edu member newy-pt1.example.es.net member chic-pt1.example.es.net # A group type 'star' means that the center_address host tests with all other # hosts in the list. type star center_address perfsonar.newy.example.internet2.edu # The members contain a list of addresses that will be used in the tests. # These *must* correspond to addresses in host blocks above. member newy-owamp.example.es.net member chic-owamp.example.es.net # There can be one or more 'test' blocks that represent tests that the mesh # should be performing. These combine the group elements defined above with # test parameters defined above. description Traceroute Test Between DICE Latency Hosts group dice_latency_hosts test_spec traceroute_test # For members who are not running the required mesh configuration agent, a # list of 'no_agent' elements can be specified. # no_agent chic-owamp.example.es.net # no_agent newy-owamp.example.es.net description TCP BWCTL Test Between DICE Bandwidth Hosts group dice_bandwidth_hosts test_spec bwctl_4h_tcp_test description UDP BWCTL Test Between DICE Bandwidth Hosts group dice_bandwidth_hosts test_spec bwctl_24h_udp_test description OWAMP Test Between DICE Latency Hosts group dice_latency_hosts test_spec owamp_test description Ping Test Between DICE Latency Hosts group dice_latency_hosts test_spec ping_test description Traceroute Test Between DICE Bandwidth Hosts group dice_bandwidth_hosts test_spec traceroute_test # Host classes can be used to configure tests in a more dynamic manner. A host # class can employ a variety of filters to define the addresses used in a given # test. # The name field is used to identify a host class later. name internet2 # The host class must have one or more 'data_source' blocks. These define # where the agents will go looking for addresses. # The 'current_mesh' data source tells the agent to look for # addresses in the mesh where the host class is defined type current_mesh # The host class may have a 'match' block with one or more 'filter' blocks # in it. These filters will be used to choose which addresses, from all the # addresses found in the various data sources, will be included in this # host class. # The 'organization' filter allows filtering the addresses based on # the organization. Right now the only attribute that can be # filtered on is 'description'. This will perform an 'inexact' match # (i.e. it will search for the phrase, lower-cased, in the # organization's description). type organization description internet2 #Define the measurement archives matching agents should use to store tests type perfsonarbuoy/owamp read_url http://ma.example/esmond/perfsonar/archive write_url http://ma.example/esmond/perfsonar/archive type perfsonarbuoy/bwctl read_url http://ma.example/esmond/perfsonar/archive write_url http://ma.example/esmond/perfsonar/archive name esnet type current_mesh type organization description esnet # A group type 'disjoint' means that the 'a_member' addresses will test to # all the 'b_member' addresses and vice versa. type disjoint # By specifying the member as a "host_class", the agent will include all the # addresses that are matched by the host class. a_member host_class::internet2 b_member host_class::esnet description Inter-Organization Traceroute Tests Between Internet2 And ESnet Hosts group inter_organization_mesh test_spec traceroute_test