Files
nm_fault.rnc
nm_requestbody.rnc
nm_subject.rnc
nm_params.rnc
nm_tool.rnc
nm_timeinfo.rnc
nm_statistic.rnc
nm_extend.rnc
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
include "nm_requestbody.rnc"
## The nmwgFault element has the following content:
## A mandatory
element, containing the NMWG error code for the fault.
## Any number of optional elements containing a human-readable message. Each message element has a lang attribute indicating the language.
## An optional element. This is used in a TryAgainFault to indicate the number of seconds the client should wait before trying again.
## An optional element, containing a networkMeasurementRequest. This can be used in a TryAgainFault to force the client to use a particular message.
start =
element nmwgFault { NoDataFault | CommunicationFault | SystemFault | AuthorisationFault | RequestFault | DiscoveryFault | TryAgainFault }
## All NMWGFaults must contain this elements
NMWGFault =
element code { xsd:positiveInteger } &
element message { text, attribute lang { token } }*
NoDataFault =
NMWGFault
CommunicationFault =
NMWGFault
SystemFault =
NMWGFault
AuthorisationFault =
NMWGFault
RequestFault =
NMWGFault
DiscoveryFault =
NMWGFault
## When instructed to try again, a client should wait for the specified delay before presenting another request.
TryAgainFault =
NMWGFault &
## Wait this many seconds before trying again.
element delay { xsd:double } &
## If this is specified, the client should present the given networkMeasurementRequest
## element when when it tries again.
element usingRequest { external "nm_request.rnc" }?
namespace local = ""
default namespace tns = "http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
grammar {
include "nm_subject.rnc"
include "nm_params.rnc"
include "nm_tool.rnc"
include "nm_timeinfo.rnc"
include "nm_statistic.rnc"
include "nm_extend.rnc"
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 { ( element node { Node } | Name | element path { Path } ), Report},
## 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 | xsd:positiveInteger }?,
## If false, new measurements should not be made to satisfy this request
attribute allowNewMeasurements { xsd:boolean }?,
## If true, everything that can be reported, should be, otherwise individual report attributes are used.
attribute reportEverything { xsd:boolean }?
Methodology =
## 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 }*
## If true, the appropriate parameter is required to be the given value. The default is false.
Required = attribute required { xsd:boolean }?
## If true, the appropriate parameter should be reported in the response.
## The default is networkMeasurementRequest/request#reportEverything)
Report = attribute report { xsd:boolean}?
## One of "min", "max" or "exact" to indicate a range of numeric values. The default is "exact".
## 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" }?
Range = attribute range { token }?
## One of source or destination, or omitted to indicate neither, either or both.
## attribute endpoint { token "source" | token "destination" }?
Endpoint = attribute endpoint { token }?
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
grammar {
Address =
## Host address
element host { token },
## IP version
attribute version { token }
## A node with an address. This may also contain a name
Node =
element address { Address }, Name?
## Just a named node. This is just any identifier of an end-host, unique or not.
Name = element name { string }
## A path between two nodes
Path =
element source { Node | Name },
element destination { Node | Name }
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
grammar {
ParameterSet =
## The duration of the test
element duration { xsd:double, ParameterUnits, Range, ParameterAttributes }*,
## Type of packets being sent
element packetType { token, ParameterAttributes }*,
## Size of packets sent on network
element packetSize { xsd:int, ParameterUnits, Range, ParameterAttributes }*,
## Number of packets sent on network
element numPackets { xsd:int, ParameterUnits, Range, ParameterAttributes }*,
## What algorithm is used to space packets
## element packetSpacing { ( token "poisson" | token "periodic" ), ParameterAttributes }*,
element packetSpacing { token , ParameterAttributes }*,
## Time between test packets, in seconds (for periodic tests)
element packetGap { xsd:double, ParameterUnits, Range, 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, ParameterUnits, Range, ParameterAttributes }*,
## Amount of test traffic
element numBytes { xsd:int, ParameterUnits, Range, 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, ParameterUnits, Range, ParameterAttributes }*,
## Reno, Vegas, HSTCP, ScalableTCP, etc
element tcpType { token, ParameterAttributes }*,
## Number of parallel streams
element numStreams { xsd:unsignedShort, Range, ParameterAttributes }*,
## The port to contact
element port { xsd:int, Range, ParameterAttributes }*,
## Additional user-defined parameters
element other { Extensibility }?
## Attributes that apply to all (or nearly all) parameters
ParameterAttributes =
## If true, this parameter is required, otherwise it is optional
Required,
## If true, the value of this parameter should be reported in the response
Report,
## One of source or destination, or omitted to indicate neither, either or both.
## attribute endpoint { token "source" | token "destination" }?
Endpoint
ParameterUnits =
## A series of unit names and powers indicating the units of the value
attribute units { token }
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
grammar {
## The tool and optional command lines to use
Tool =
element name { token },
element major { xsd:int, Range }*,
element minor { xsd:int, Range }*,
element release { token, Range }*,
element buildDate{ xsd:date, Range }*,
element vendor { text }?,
element versionString { text, Range }*,
element commandLine { ToolCommandLine }*,
Required, Report
## The command-line to use.
## A command-line cannot be used in conjunction with classical parameters.
## That is, if you specify either a source or destination command line, there must be no parameterSet.
ToolCommandLine =
( element arg { text }+ |
element line { text } )?,
Required, Report, Endpoint
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
grammar {
TimeInformation =
## Measurements should have been measured at or near this time. The value can be "unbounded" or
element time { token | xsd:double }? &
## Measurements should have been measured before time + plusTimeTolerance
element plusTimeTolerance { token | xsd:double }? &
## Measurements should have been measured after time - minusTimeTolerance
element minusTimeTolerance { token | xsd:double }? &
## If measurements are being made, this value may be used as a guide to the interval between measurements
element testingInterval { token | xsd:double }?
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/10/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
## 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 | xsd:double }?,
## Whether it is a requirement or not that this statistic be reported. Default is false.
Required
}
namespace local = ""
default namespace tns =
"http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
grammar {
## Extensibility element(s)
## Only restriction is that they must be in a namespace,
## and it must differ from this one
Extensibility = element * - ( tns:* | local:* ) { text }*
}