Files
nm_request.rnc
nm_subject.rnc
nm_params.rnc
nm_tool.rnc
nm_timeinfo.rnc
nm_values.rnc
nm_statistic.rnc
nm_extend.rnc
## This document provides a schema for representing a request
## for network measurement data. It is based on the draft
## document "<<>>".
default namespace = "http://www.ggf.org/namespaces/2004/01/gridNetworkMonitoring"
include "nm_subject.rnc"
include "nm_params.rnc"
include "nm_tool.rnc"
include "nm_timeinfo.rnc"
include "nm_statistic.rnc"
include "nm_extend.rnc"
start =
element networkMeasurementRequest { NetworkMeasurementRequest }
NetworkMeasurementRequest =
element request { Request }+,
attribute version { token }?
Request =
## The requested characteristic
element characteristic { token }+,
## The subject of the measurement(s) to be returned
element subject { Node | Path },
## The methodology to employ
element methodology { Methodology }?,
## A request for statistics to be returned
element statistics { Statistics }?,
## The maximum number of measurements to be returned
attribute maxResults { token "unbounded" | xsd:positiveInteger }?,
## If false, new measurements should not be made to satisfy this request
attribute allowNewMeasurements { xsd:boolean }?
Methodology =
## The endpoint to which the parameters apply FIXME: does this work?
element endpoint { Endpoint },
## The measurement(s) should have been made using this tool, if this element is present
element tool { Tool }?,
## The measurement(s) must have been made in this time period
element when { TimeInformation },
## Tool parameters
element parameterSet { ParameterSet }*
Endpoint = token "source" | token "destination" | token "all" | token "none"
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/01/gridNetworkMonitoring"
grammar {
Address =
## Host address
element host { token },
## Port
element port { xsd:short }?,
## IP version
attribute version { token }
## A node
Node =
element address { Address },
element name { string }?
InternalNode = Node
Router = InternalNode
## A path between two nodes
Path =
element source { Node }?,
element destination { Node }?
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/01/gridNetworkMonitoring"
grammar {
ParameterSet =
## The duration of the test
element duration { xsd:double, attribute units { token }, ParameterAttributes }*,
## Type of packets being sent
element packetType { ( token "TCP" | token "ICMP" | token "UDP" ), ParameterAttributes }*,
## Size of packets sent on network
element packetSize { xsd:int, attribute units { token }, ParameterAttributes }*,
## Number of packets sent on network
element numPackets { xsd:int, attribute units { token }, ParameterAttributes }*,
## What algorithm is used to space packets
element packetSpacing { ( token "poisson" | token "periodic" ), ParameterAttributes }*,
## Time between test packets, in seconds (for periodic tests)
element packetGap { xsd:double, attribute units { token }, ParameterAttributes }*,
## IP version
element protocolID { token, ParameterAttributes }*,
## Type of service (IP precedence)
element tos { xsd:short, ParameterAttributes }*,
## Differentiated services code point
element dscp { xsd:byte, ParameterAttributes }*,
## IPv6 option for QoS
element flowLabel { xsd:byte, ParameterAttributes }*,
## Threshold used to distinguish between a large finite delay and loss
element lossThreshold { xsd:int, attribute units { token }, ParameterAttributes }*,
## Amount of test traffic
element numBytes { xsd:int, attribute units { token }, ParameterAttributes }*,
## Are bytes moving memory to memory or disk to disk*
element includesDisk { xsd:boolean, ParameterAttributes }*,
## Size of TCP buffers used
element tcpBufferSize { xsd:int, attribute units { token }, ParameterAttributes }*,
## Reno, Vegas, HSTCP, ScalableTCP, etc
element tcpType { token, ParameterAttributes }*,
## Number of parallel streams
element numStreams { xsd:unsignedShort, ParameterAttributes }*,
## Additional user-defined parameters
element other { Extensibility, ParameterAttributes }
## Attributes that apply to all (or nearly all) parameters
ParameterAttributes =
## If true, this parameter is required, otherwise it is optional
attribute required { xsd:boolean }?,
## If true, the value of this parameter should be reported in the response
attribute report { xsd:boolean}?,
## If "min", the parameter should be at least the given value; if "max", the parameter should be at most the given value; if "exact", the parameter should be exactly this value.
attribute range { token "min" | token "max" | token "exact" }?
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/01/gridNetworkMonitoring"
grammar {
## The tool and optional command lines to use
Tool =
attribute required { xsd:boolean }?,
element name { token },
element major { xsd:int }?,
element minor { xsd:int }?,
element release { token }?,
element buildDate{ xsd:date }?,
element vendor { text }?,
element versionString { text }?,
element sourceCommandLine { ToolCommandLine }?,
element destCommandLine { ToolCommandLine }?
ToolCommandLine =
element arg { text }+ |
element line { text }
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/01/gridNetworkMonitoring"
grammar {
TimeInformation =
element time { token "now" | xsd:double }?,
element plusTimeTolerance { token "unbounded" | xsd:double }?,
element minusTimeTolerance { token "unbounded" | xsd:double }?,
element testingInterval { token "unbounded" | xsd:double }?
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/01/gridNetworkMonitoring"
grammar {
## These elements indicate a request for various statistical summaries of data
Statistics =
## The interval provides a hint to the service as to the interval between measurements required if it is to make new measurements
attribute interval { token "unbounded" | xsd:double }*,
## Request the raw data
element raw { empty }?,
element count { empty, StatisticsAttributes }*,
element min { empty, StatisticsAttributes }*,
element mean { empty, StatisticsAttributes }*,
element median { empty, StatisticsAttributes }*,
element max { empty, StatisticsAttributes }*,
element stddev { empty, StatisticsAttributes }*,
element percentile { empty, attribute n { xsd:double }, StatisticsAttributes }*,
element confidence { empty, attribute n { xsd:double }, StatisticsAttributes }*
StatisticsAttributes =
## The interval over which the statistic is generated
attribute interval { token "unbounded" | xsd:double }?
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/01/gridNetworkMonitoring"
Extensibility = element * - ( tns:* | local:* ) { text }*