Skip to Content.
Sympa Menu

perfsonar-dev - nmwg: r383 - trunk/nmwg/doc/devguide

Subject: perfsonar development work

List archive

nmwg: r383 - trunk/nmwg/doc/devguide


Chronological Thread 
  • From:
  • To: ,
  • Subject: nmwg: r383 - trunk/nmwg/doc/devguide
  • Date: Mon, 9 Feb 2009 20:27:07 -0500

Author: zurawski
Date: 2009-02-09 20:27:07 -0500 (Mon, 09 Feb 2009)
New Revision: 383

Removed:
trunk/nmwg/doc/devguide/devguide.pdf
Modified:
trunk/nmwg/doc/devguide/Makefile
trunk/nmwg/doc/devguide/delay1.tex
trunk/nmwg/doc/devguide/iperf.tex
trunk/nmwg/doc/devguide/iperf1.tex
trunk/nmwg/doc/devguide/nmdelayrtt.tex
trunk/nmwg/doc/devguide/nmtime.tex
trunk/nmwg/doc/devguide/nmtopo.tex
trunk/nmwg/doc/devguide/ping.tex
trunk/nmwg/doc/devguide/ping1.tex
trunk/nmwg/doc/devguide/traceroute.tex
trunk/nmwg/doc/devguide/traceroute1.tex
trunk/nmwg/doc/devguide/utilization.tex
trunk/nmwg/doc/devguide/utilization1.tex
Log:
Fixing the Makefile to agree with new paths in the SVN. Re-adding the
tex files for RNCs and XML files.

-jason



Modified: trunk/nmwg/doc/devguide/Makefile
===================================================================
--- trunk/nmwg/doc/devguide/Makefile 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/Makefile 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,5 +1,6 @@
DOCROOT=devguide
-SCHEMADIR=../../schema
+SCHEMADIR=../../schema/rnc
+EXDIR=../../schema/example_instances

COPYFILES = \
nmtopo.rnc \
@@ -9,13 +10,16 @@
ping.rnc \
nmdelayrtt.rnc \
utilization.rnc \
- traceroute1.xml \
- iperf1.xml \
- ping1.xml \
- delay1.xml \
- utilization1.xml
+
#nmbase.rnc

+COPYXMLFILES = \
+ traceroute.xml \
+ iperf.xml \
+ ping.xml \
+ delay.xml \
+ utilization.xml
+
XMLFILES = wsdl_template.xml

RM=/bin/rm -f
@@ -30,7 +34,7 @@
NAME=devguide
FILES=background.tex extensibility.tex pagelayout.tex utilization1.tex
base_schema.tex \
introduction.tex ping1.tex utilization.tex body.tex iperf1.tex
ping.tex websvc.tex \
- conversation1.tex iperf.tex query.tex wsdl_template.tex defs.tex
nmdelayrtt.tex \
+ iperf.tex query.tex wsdl_template.tex defs.tex nmdelayrtt.tex \
titlepage.tex wsrf.tex delay1.tex nmtime.tex traceroute1.tex
nmtopo.tex traceroute.tex

all:
@@ -42,7 +46,6 @@
pdflatex ${NAME}
bibtex ${NAME}
pdflatex ${NAME}
- pdflatex ${NAME}


images: nmbase.png
@@ -55,10 +58,11 @@
$(PDFLATEX) $(DOCROOT)
$(PDFLATEX) $(DOCROOT)

-copy:
+copy: copyrnc copyxml
+
+copyrnc:
@for f in $(COPYFILES); do \
g=`basename $$f .rnc`; \
- g=`basename $$g .xml`; \
g="$$g".tex; \
printf "Copying $(SCHEMADIR)/$$f to $$g\n"; \
echo "\\small" > $$g; \
@@ -68,19 +72,41 @@
echo "\\normalsize" >> $$g; \
done

+copyxml:
+ @for f in $(COPYXMLFILES); do \
+ g=`basename $$f .xml`; \
+ g="$$g"1.tex; \
+ printf "Copying $(EXDIR)/$$f to $$g\n"; \
+ echo "\\small" > $$g; \
+ echo "\\begin{verbatim}" > $$g; \
+ cat $(EXDIR)/$$f >> $$g; \
+ echo "\\end{verbatim}" >> $$g; \
+ echo "\\normalsize" >> $$g; \
+ done
+
xml2tex:
@for f in $(XMLFILES); do \
./xml2tex.py $$f; \
done

-copyclean:
+copyclean: copycleanrnc copycleanxml
+
+copycleanrnc:
@for f in $(COPYFILES); do \
g=`basename $$f .rnc`; \
- g=`basename $$g .xml`; \
g="$$g".tex; \
$(RM) $$g; \
+ echo "$(RM) $$g"; \
done

+copycleanxml:
+ @for f in $(COPYXMLFILES); do \
+ g=`basename $$f .xml`; \
+ g="$$g"1.tex; \
+ $(RM) $$g; \
+ echo "$(RM) $$g"; \
+ done
+
pdfclean:
@for f in idx log toc bbl blg aux out; do \
printf "Remove $(DOCROOT).%s\n" $$f; \

Modified: trunk/nmwg/doc/devguide/delay1.tex
===================================================================
--- trunk/nmwg/doc/devguide/delay1.tex 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/delay1.tex 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,4 +1,229 @@
-egin{verbatim}
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8"?>
+<nmwg:message type="store"
+ xmlns="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:delay=
"http://ggf.org/ns/nmwg/characteristic/delay/roundTrip/2.0/";
+ xmlns:nmwgt= "http://ggf.org/ns/nmwg/topology/2.0/";
+ xmlns:nmtm= "http://ggf.org/ns/nmwg/time/2.0/";
+ xmlns:nmtl4="http://ggf.org/ns/nmwg/topology/l4/3.0/";
+ xmlns:nmtl3="http://ggf.org/ns/nmwg/topology/l3/3.0/";
+ xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
+ xmlns:average="http://ggf.org/ns/nmwg/ops/average/2.0/";
+ xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/";>
+
+ <!-- Metadata using original topology schema -->
+
+ <nmwg:metadata id="delaymeta1">
+ <delay:subject id="delaysub1">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="hostname" value="blackseal.pc.cis.udel.edu"
port="21132"/>
+ <nmwgt:dst type="hostname" value="ellis.internet2.edu" port="14837"/>
+ </nmwgt:endPointPair>
+ </delay:subject>
+ <delay:parameters id="delayparam1">
+ <nmwg:parameter name="packetType">TCP</nmwg:parameter>
+ <nmwg:parameter name="packetSize">1500</nmwg:parameter>
+ <nmwg:parameter name="numPackets">10</nmwg:parameter>
+ <nmwg:parameter name="packetSpacing">poisson</nmwg:parameter>
+ <nmwg:parameter name="packetGap">5</nmwg:parameter>
+ <nmwg:parameter name="protocolID">ipV4</nmwg:parameter>
+ <nmwg:parameter name="typeOfService">FIFO</nmwg:parameter>
+ <nmwg:parameter
name="differentiatedServicesCodePoint">somevalue</nmwg:parameter>
+ <nmwg:parameter name="flowLabel">ipV6 QoS option</nmwg:parameter>
+ <nmwg:parameter name="lossThreshold">2</nmwg:parameter>
+ <nmwg:parameter name="valueUnits">ms</nmwg:parameter>
+ <nmwg:parameter name="numBytes">64</nmwg:parameter>
+ <nmwg:parameter name="numBytesUnits">bytes</nmwg:parameter>

+ </delay:parameters>
+ </nmwg:metadata>
+
+
+
+ <!-- Metadata(s) using new topology schema -->
+
+ <nmwg:metadata id="delaymeta2">
+ <delay:subject id="delaysub2">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="21132" protocol="icpm">
+ <nmtl4:address value="blackseal.pc.cis.udel.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="14837" protocol="icpm">
+ <nmtl4:address value="ellis.internet2.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </delay:subject>
+ <delay:parameters id="delayparam2">
+ <nmwg:parameter name="packetType">TCP</nmwg:parameter>
+ <nmwg:parameter name="packetSize">1500</nmwg:parameter>
+ <nmwg:parameter name="numPackets">10</nmwg:parameter>
+ <nmwg:parameter name="packetSpacing">poisson</nmwg:parameter>
+ <nmwg:parameter name="packetGap">5</nmwg:parameter>
+ <nmwg:parameter name="protocolID">ipV4</nmwg:parameter>
+ <nmwg:parameter name="typeOfService">FIFO</nmwg:parameter>
+ <nmwg:parameter
name="differentiatedServicesCodePoint">somevalue</nmwg:parameter>
+ <nmwg:parameter name="flowLabel">ipV6 QoS option</nmwg:parameter>
+ <nmwg:parameter name="lossThreshold">2</nmwg:parameter>
+ <nmwg:parameter name="valueUnits">ms</nmwg:parameter>
+ <nmwg:parameter name="numBytes">64</nmwg:parameter>
+ <nmwg:parameter name="numBytesUnits">bytes</nmwg:parameter>

+ </delay:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="delaymeta3">
+ <delay:subject id="delaysub3">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="21132" protocol="icpm">
+ <nmtl3:interface id="d1">
+ <nmtl3:ipAddress value="128.4.133.164" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="128.4.133.164" type="ipv4"/>
+ <nmtl3:ifHostName>blackseal.pc.cis.udel.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="14837" protocol="icpm">
+ <nmtl3:interface id="a1">
+ <nmtl3:ipAddress value="207.75.164.31" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="207.75.164.31" type="ipv4"/>
+ <nmtl3:ifHostName>ellis.internet2.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </delay:subject>
+ <delay:parameters id="delayparam3">
+ <nmwg:parameter name="packetType">TCP</nmwg:parameter>
+ <nmwg:parameter name="packetSize">1500</nmwg:parameter>
+ <nmwg:parameter name="numPackets">10</nmwg:parameter>
+ <nmwg:parameter name="packetSpacing">poisson</nmwg:parameter>
+ <nmwg:parameter name="packetGap">5</nmwg:parameter>
+ <nmwg:parameter name="protocolID">ipV4</nmwg:parameter>
+ <nmwg:parameter name="typeOfService">FIFO</nmwg:parameter>
+ <nmwg:parameter
name="differentiatedServicesCodePoint">somevalue</nmwg:parameter>
+ <nmwg:parameter name="flowLabel">ipV6 QoS option</nmwg:parameter>
+ <nmwg:parameter name="lossThreshold">2</nmwg:parameter>
+ <nmwg:parameter name="valueUnits">ms</nmwg:parameter>
+ <nmwg:parameter name="numBytes">64</nmwg:parameter>
+ <nmwg:parameter name="numBytesUnits">bytes</nmwg:parameter>

+ </delay:parameters>
+ </nmwg:metadata>
+
+
+
+ <!-- Data block, with a time block, with multiple datum blocks -->
+ <nmwg:data id="data1" metadataIdRef="delaymeta1">
+ <nmwg:commonTime type="unix" value="1107492095">
+ <delay:datum value="19.1" valueUnits="ms" numBytes="64"
numBytesUnits="bytes"/>
+ <delay:datum value="19.2" valueUnits="ms" numBytes="64"
numBytesUnits="bytes"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block, with multiple datum blocks (other way
to show time) -->
+ <nmwg:data id="data2" metadataIdRef="delaymeta1">
+ <nmwg:commonTime type="unix">
+ <nmtm:value>1107492096</nmtm:value>
+ <delay:datum value="19.3" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ <delay:datum value="19.4" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block (range), with multiple datum blocks -->
+ <nmwg:data id="data3" metadataIdRef="delaymeta1">
+ <nmwg:commonTime type="range">
+ <nmtm:start type="unix" value="1107492097"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ <delay:datum value="19.2" valueUnits="ms" numBytes="64"
numBytesUnits="bytes"/>
+ <delay:datum value="17.3" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ <delay:datum value="45.4" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ <delay:datum value="21.9" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block (durration), with multiple datum blocks
-->
+ <nmwg:data id="data4" metadataIdRef="delaymeta1">
+ <nmwg:commonTime type="durration" duration="300">
+ <nmtm:start type="unix" value="1107492097"/>
+ <delay:datum value="19.2" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ <delay:datum value="17.3" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ <delay:datum value="45.4" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ <delay:datum value="21.9" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" />
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is inline (two ways to represent time)
-->
+ <nmwg:data id="data5" metadataIdRef="delaymeta1">
+ <delay:datum value="14.3" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" timeType="unix" timeValue="1107492199" />
+ <delay:datum value="17.4" valueUnits="ms" numBytes="64"
numBytesUnits="bytes" timeType="unix" timeValue="1107492201" />
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element -->
+ <nmwg:data id="data6" metadataIdRef="delaymeta1">
+ <delay:datum value="19.6" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="unix" value="1107493095" />
+ </delay:datum>
+ <delay:datum value="18.5" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="unix" value="1107493095" />
+ </delay:datum>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element -->
+ <nmwg:data id="data7" metadataIdRef="delaymeta1">
+ <delay:datum value="19.6" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </delay:datum>
+ <delay:datum value="18.5" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </delay:datum>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element (other way to show
time) -->
+ <nmwg:data id="data8" metadataIdRef="delaymeta1">
+ <delay:datum value="19.6" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ </nmtm:time>
+ </delay:datum>
+ <delay:datum value="18.5" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ </nmtm:time>
+ </delay:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data9" metadataIdRef="delaymeta1">
+ <delay:datum value="19.6" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="durration" duration="300">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </delay:datum>
+ <delay:datum value="18.5" valueUnits="ms" numBytes="64"
numBytesUnits="bytes">
+ <nmtm:time type="durration" duration="300">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </delay:datum>
+ </nmwg:data>
+
+ <!-- result datum elements -->
+ <nmwg:data id="data10" metadataIdRef="delaymeta1">
+ <nmwgr:datum type="error.delay">Some error message</nmwgr:datum>
+ </nmwg:data>
+
+</nmwg:message>
\end{verbatim}
-
-ormalsize
+\normalsize

Deleted: trunk/nmwg/doc/devguide/devguide.pdf

Modified: trunk/nmwg/doc/devguide/iperf.tex
===================================================================
--- trunk/nmwg/doc/devguide/iperf.tex 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/iperf.tex 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,4 +1,312 @@
-egin{verbatim}
+\begin{verbatim}
+# ##############################################################
+#
+# File: iperf.rnc - Specialized schema for the iperf
+# tool
+# Version: $Id$
+# Purpose: Describes specific elements to be used in the
+# representation and handling of iperf
+# measurements.
+# Reference: http://books.xmlschemata.org/relaxng/page2.html
+#
+# ##############################################################
+
+
+# ##############################################################
+# Namespace definitions
+# ##############################################################
+namespace nmwg = "http://ggf.org/ns/nmwg/base/2.0/";
+namespace iperf = "http://ggf.org/ns/nmwg/tools/iperf/2.0/";
+namespace nmwgr = "http://ggf.org/ns/nmwg/result/2.0/";
+
+
+# ##############################################################
+# Include additional functionality from other files
+# ##############################################################
+include "nmtopo.rnc"
+include "nmtopo_ver3.rnc"
+include "result.rnc"
+include "nmbase.rnc" {
+ Metadata |= IperfMetadata
+ Data |= IperfData
+}
+
+
+# ##############################################################
+# Metadata is the 'data' that describes physical measurements.
+# Metadata can be something such as a physical address, or
+# a geographical location; any form of static, re-usable
+# designation. It is important to note that the subject
+# namespace and parameters namespace MUST match (or the parameters
+# can be a generic NMWG) or bad things will occur.
+#
+# Example:
+#
+# <nmwg:metadata id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL SUBJECT -->
+#
+# <!-- TBD OPTIONAL PARAMETERS -->
+#
+# <!-- TBD OPTIONAL EVENTTYPE -->
+#
+# <!-- TBD OPTIONAL KEY -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:metadata>
+#
+# ##############################################################
+
+IperfMetadata =
+ element nmwg:metadata {
+ Identifier &
+ MetadataIdentifierRef? &
+ IperfMetadataContent
+ }
+
+IperfMetadataBlock =
+ IperfSubject? &
+ (
+ IperfParameters |
+ Parameters
+ )?
+
+IperfMetadataContent =
+ (
+ IperfMetadataBlock |
+ FilterMetadataBlock
+ ) &
+ EventType? &
+ Key?
+
+
+# ##############################################################
+# Redefined iperf subject allows only an endPointPair, and the
+# two id attributes.
+#
+# Example:
+#
+# <iperf:subject id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/iperf/2.0/";>
+#
+# <nmwgtopo:endPointPair
xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/";>
+#
+# <nmwgtopo:src type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# <nmwgtopo:dst type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# </nmwgtopo:endPointPair>
+#
+# </iperf:subject>
+#
+# ##############################################################
+
+IperfSubject =
+ element iperf:subject {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ EndpointPair |
+ L4EndpointPair
+ )
+ }
+
+
+# ##############################################################
+# This is simply the regular method of doing parameters with an
+# enumeration to limit what 'names' are accepted and an outer
+# iperf: namespace for the parameters.
+#
+# Example:
+#
+# <iperf:parameters id="REQUIRED_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/iperf/2.0/";>
+#
+# <nmwg:parameter name="REQUIRED_ENUM_NAME" value="OPTIONAL_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- ANY TEXT, (IF YOU DID NOT USE THE VALUE ATTRIBUTE) -->
+#
+# </nmwg:parameter>
+#
+# <!-- MORE PARAMETERS -->
+#
+# </iperf:parameters>
+#
+# ##############################################################
+
+IperfParameters =
+ element iperf:parameters {
+ Identifier &
+ IperfParameter+
+ }
+
+IperfParameter =
+ element nmwg:parameter {
+ attribute name { "format" | "interval" | "protocol" |
+ "bufferLength" | "windowSize" |
+ "windowSizeRequest" | "timeDuration" |
+ "arguments" | "valueUnits" | "numBytes" |
+ "numBytesUnits" } &
+ (
+ attribute value { text } |
+ text
+ )
+ }
+
+
+# ##############################################################
+# The data block is complex, and has the potential to contain
+# many things. The data block can be used to return a metadata
+# block from a request, commonTime or datum elements, keys,
+# or something that we have perhaps not defined as of yet.
+#
+# Example:
+#
+# <nmwg:data id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- OPTIONAL (MULTIPLE) METADATA -->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) COMMON TIME ELEMENTS AND
+# OPTIONAL (MULTIPLE) DATUM ELEMENTS-->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- OPTIONAL (MULTIPLE) KEY ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:data>
+#
+# ##############################################################
+
+IperfData =
+ element nmwg:data {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ (
+ Metadata* |
+ IperfMetadata*
+ ) |
+ (
+ IperfCommonTime+ &
+ (
+ IperfDatum* |
+ ResultDatum*
+ )
+ ) |
+ (
+ IperfDatum* |
+ ResultDatum*
+ ) |
+ Key*
+ )
+ }
+
+
+# ##############################################################
+# CommonTime is used a a shortcut able to 'factor out' a frequently
+# occurring time range that a bunch of datum (or other) elements
+# might share, thus reducing complexity of XML representation.
+# CommonTime is similar to the other NMWG time stamps (from
+# nmtime.rnc) in its potential time representations.
+#
+# Example:
+#
+# <nmwg:commonTime type="REQUIRED_TYPE" value="OPTIONAL_VALUE"
+# duration="OPTIONAL_DURATION"
+# inclusive="OPTIONAL_INCLUSIVE_FLAG"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL START TIME ELEMENT (USE END TIME OR DURATION) -->
+#
+# <!-- TBD OPTIONAL END TIME ELEMENT (ONLY WITH START TIME) -->
+#
+# <!-- TBD OPTIONAL TIME VALUE ELEMENT (USE IF NO VALUE ATTRIBUTE) -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+# </nmwg:commonTime>
+#
+# ##############################################################
+
+IperfCommonTime =
+ element nmwg:commonTime {
+ Type &
+ (
+ TimeStamp |
+ (
+ StartTime &
+ (
+ EndTime |
+ Duration
+ )
+ )
+ ) &
+ (
+ IperfDatum* |
+ ResultDatum*
+ )
+ }
+
+
+# ##############################################################
+# These are the basic elements we would expect to see in the
+# specific iperf datum.
+#
+# Example:
+#
+# <iperf:datum value="REQUIRED_VALUE"
+# valueUnits="OPTIONAL_VALUE_UNITS"
+# numBytes="OPTIONAL_NUM_BYTES"
+# numBytesUnits="OPTIONAL_NUM_BYTES_UNITS"
+# interval="OPTIONAL_INTERVAL"
+# timeType="OPTIONAL_TIME_TYPE"
+# timeValue="OPTIONAL_TIME_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/iperf/2.0/";>
+#
+# <!-- TIME ELEMENT (IF ATTRIBUTES NOT USED) -->
+#
+# </iperf:datum>
+#
+# ##############################################################
+
+IperfDatum =
+ element iperf:datum {
+ attribute value { xsd:float } &
+ attribute valueUnits { xsd:string }? &
+ attribute throughput { xsd:string }? &
+ attribute jitter { xsd:string }? &
+ attribute loss { xsd:string }? &
+ attribute numBytes { xsd:int }? &
+ attribute numBytesUnits { xsd:string }? &
+ attribute interval { xsd:string }? &
+ (
+ (
+ attribute timeType { xsd:string } &
+ attribute timeValue { xsd:string }
+ ) |
+ Time
+ )?
+ }
+
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/iperf1.tex
===================================================================
--- trunk/nmwg/doc/devguide/iperf1.tex 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/iperf1.tex 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,4 +1,283 @@
-egin{verbatim}
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8"?>
+<nmwg:message type="store"
+ xmlns="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:iperf= "http://ggf.org/ns/nmwg/tools/iperf/2.0/";
+ xmlns:nmwgt= "http://ggf.org/ns/nmwg/topology/2.0/";
+ xmlns:nmtm= "http://ggf.org/ns/nmwg/time/2.0/";

+ xmlns:nmtl4="http://ggf.org/ns/nmwg/topology/l4/3.0/";
+ xmlns:nmtl3="http://ggf.org/ns/nmwg/topology/l3/3.0/";
+ xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
+ xmlns:average="http://ggf.org/ns/nmwg/ops/average/2.0/";
+ xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/";>
+
+ <!-- Metadata using original topology schema -->
+
+ <nmwg:metadata id="iperfmeta1">
+ <iperf:subject id="iperfsub1">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="hostname" value="dreadnought.cis.udel.edu"
port="4543"/>
+ <nmwgt:dst type="hostname" value="pl2.cs.utk.edu" port="5001"/>
+ </nmwgt:endPointPair>
+ </iperf:subject>
+ <iperf:parameters id="iperfparam1">
+ <nmwg:parameter name="format">M</nmwg:parameter>
+ <nmwg:parameter name="interval">1</nmwg:parameter>
+ <nmwg:parameter name="protocol">TCP</nmwg:parameter>
+ </iperf:parameters>
+ </nmwg:metadata>
+
+
+ <!-- Metadata(s) using new topology schema -->
+
+ <nmwg:metadata id="iperfmeta2">
+ <iperf:subject id="iperfsub2">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="4543" protocol="tcp">
+ <nmtl4:address value="dreadnought.cis.udel.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="5001" protocol="tcp">
+ <nmtl4:address value="pl2.cs.utk.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </iperf:subject>
+ <iperf:parameters id="iperfparam2">
+ <nmwg:parameter name="format">M</nmwg:parameter>
+ <nmwg:parameter name="interval">1</nmwg:parameter>
+ <nmwg:parameter name="protocol">TCP</nmwg:parameter>
+ </iperf:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="iperfmeta3">
+ <iperf:subject id="iperfsub3">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="4543" protocol="icpm">
+ <nmtl3:interface id="d1">
+ <nmtl3:ipAddress value="128.4.133.200" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="128.4.133.200" type="ipv4"/>
+ <nmtl3:ifHostName>dreadnought.cis.udel.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="34343" protocol="icpm">
+ <nmtl3:interface id="a1">
+ <nmtl3:ipAddress value="160.36.57.173" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="160.36.57.173" type="ipv4"/>
+ <nmtl3:ifHostName>pl2.cs.utk.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </iperf:subject>
+ <iperf:parameters id="iperfparam3">
+ <nmwg:parameter name="format">M</nmwg:parameter>
+ <nmwg:parameter name="interval">1</nmwg:parameter>
+ <nmwg:parameter name="protocol">TCP</nmwg:parameter>
+ </iperf:parameters>
+ </nmwg:metadata>
+
+
+ <!-- metadata(s) with filter chaining -->
+
+ <nmwg:metadata id="iperfmeta4">
+ <iperf:subject id="iperfsub4">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="hostname" value="dreadnought.cis.udel.edu"
port="4543"/>
+ <nmwgt:dst type="hostname" value="pl2.cs.utk.edu" port="34343"/>
+ </nmwgt:endPointPair>
+ </iperf:subject>
+ <iperf:parameters id="iperfparam4">
+ <nmwg:parameter name="format">M</nmwg:parameter>
+ <nmwg:parameter name="interval">1</nmwg:parameter>
+ <nmwg:parameter name="protocol">TCP</nmwg:parameter>
+ </iperf:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="iperfmeta5">
+ <select:subject id="iperfsub5" metadataIdRef="iperfmeta4" />
+ <select:parameters id="iperfparam5">
+ <nmwg:parameter name="timeValue">
+ <nmwg:parameter name="greaterThan">1107492199</nmwg:parameter>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="iperfmeta6">
+ <select:subject id="iperfsub6" metadataIdRef="iperfmeta5" />
+ <select:parameters id="iperfparam6">
+ <nmwg:parameter name="timeValue">
+ <nmwg:parameter name="lessThan">1107492207</nmwg:parameter>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="iperfmeta7">
+ <average:subject id="iperfsub7" metadataIdRef="iperfmeta6" />
+ <average:parameters id="iperfparam7">
+ <nmwg:parameter name="value" />
+ </average:parameters>
+ </nmwg:metadata>
+
+
+ <!-- Data block, with a time block, with multiple datum blocks -->
+ <nmwg:data id="data1" metadataIdRef="iperfmeta1">
+ <nmwg:commonTime type="unix" value="1107492095">
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block, with multiple datum blocks -->
+ <nmwg:data id="data2" metadataIdRef="iperfmeta1">
+ <nmwg:commonTime type="unix">
+ <nmtm:value>1107492095</nmtm:value>
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block (range), with multiple datum blocks -->
+ <nmwg:data id="data3" metadataIdRef="iperfmeta1">
+ <nmwg:commonTime type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block (duration), with multiple datum blocks
-->
+ <nmwg:data id="data4" metadataIdRef="iperfmeta1">
+ <nmwg:commonTime type="duration" duration="200">
+ <nmtm:start type="unix" value="1107492095"/>
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec"/>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is inline -->
+ <nmwg:data id="data5" metadataIdRef="iperfmeta1">
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec" timeType="unix"
timeValue="1107492195" />
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec" timeType="unix"
timeValue="1107492195" />
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec" timeType="unix"
timeValue="1107492195" />
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec" timeType="unix"
timeValue="1107492195" />
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element -->
+ <nmwg:data id="data6" metadataIdRef="iperfmeta1">
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec">
+ <nmtm:time type="unix" value="1107493095" />
+ </iperf:datum>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec">
+ <nmtm:time type="unix" value="1107493095" />
+ </iperf:datum>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec">
+ <nmtm:time type="unix" value="1107493095" />
+ </iperf:datum>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec">
+ <nmtm:time type="unix" value="1107493095" />
+ </iperf:datum>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element -->
+ <nmwg:data id="data7" metadataIdRef="iperfmeta1">
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec" >
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec">
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec">
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec">
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </iperf:datum>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element -->
+ <nmwg:data id="data8" metadataIdRef="iperfmeta1">
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ </nmtm:time>
+ </iperf:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data9" metadataIdRef="iperfmeta1">
+ <iperf:datum interval="0.0-1.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec">
+ <nmtm:time type="duration" duration="200">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="1.0-2.0 sec" numBytes="242"
numBytesUnits="MBytes" value="2.03" valueUnits="MBytes/sec">
+ <nmtm:time type="duration" duration="200">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="2.0-3.0 sec" numBytes="231"
numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec">
+ <nmtm:time type="duration" duration="200">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </iperf:datum>
+ <iperf:datum interval="0.0-3.0 sec" numBytes="716"
numBytesUnits="MBytes" value="2.00" valueUnits="MBytes/sec">
+ <nmtm:time type="duration" duration="200">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </iperf:datum>
+ </nmwg:data>
+
+ <!-- result datum elements -->
+ <nmwg:data id="data10" metadataIdRef="iperfmeta1">
+ <nmwgr:datum type="error.iperf.mp">write2 failed: Broken
pipe</nmwgr:datum>
+ </nmwg:data>
+
+</nmwg:message>
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/nmdelayrtt.tex
===================================================================
--- trunk/nmwg/doc/devguide/nmdelayrtt.tex 2009-02-09 20:41:35 UTC (rev
382)
+++ trunk/nmwg/doc/devguide/nmdelayrtt.tex 2009-02-10 01:27:07 UTC (rev
383)
@@ -1,4 +1,307 @@
-egin{verbatim}
+\begin{verbatim}
+# ##############################################################
+#
+# File: nmdelay.rnc - Specialized schema for delay
+# measurements
+# Version: $Id$
+# Purpose: Describes specific elements to be used in the
+# representation and handling of delay oriented
+# measurements.
+# Reference: http://books.xmlschemata.org/relaxng/page2.html
+#
+# ##############################################################
+
+
+# ##############################################################
+# Namespace definitions
+# ##############################################################
+namespace nmwg = "http://ggf.org/ns/nmwg/base/2.0/";
+namespace nmdrt =
"http://ggf.org/ns/nmwg/characteristic/delay/roundTrip/2.0/";
+namespace nmwgr = "http://ggf.org/ns/nmwg/result/2.0/";
+
+
+# ##############################################################
+# Include additional functionality from other files
+# ##############################################################
+include "nmtopo.rnc"
+include "nmtopo_ver3.rnc"
+include "result.rnc"
+include "nmbase.rnc" {
+ Metadata |= DelayMetadata
+ Data |= DelayData
+}
+
+
+# ##############################################################
+# Metadata is the 'data' that describes physical measurements.
+# Metadata can be something such as a physical address, or
+# a geographical location; any form of static, re-usable
+# designation. It is important to note that the subject
+# namespace and parameters namespace MUST match (or the parameters
+# can be a generic NMWG) or bad things will occur.
+#
+# Example:
+#
+# <nmwg:metadata id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL SUBJECT -->
+#
+# <!-- TBD OPTIONAL PARAMETERS -->
+#
+# <!-- TBD OPTIONAL EVENTTYPE -->
+#
+# <!-- TBD OPTIONAL KEY -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:metadata>
+#
+# ##############################################################
+
+DelayMetadata =
+ element nmwg:metadata {
+ Identifier &
+ MetadataIdentifierRef? &
+ DelayMetadataContent
+ }
+
+DelayMetadataBlock =
+ DelaySubject? &
+ (
+ DelayParameters |
+ Parameters
+ )?
+
+DelayMetadataContent =
+ (
+ DelayMetadataBlock |
+ FilterMetadataBlock
+ ) &
+ EventType? &
+ Key?
+
+
+# ##############################################################
+# Redefined delay subject allows only an endPointPair, and the
+# two id attributes.
+#
+# Example:
+#
+# <nmdrt:subject id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+#
xmlns:nmwg="http://ggf.org/ns/nmwg/characteristic/delay/roundTrip/2.0/";>
+#
+# <nmwgtopo:endPointPair
xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/";>
+#
+# <nmwgtopo:src type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# <nmwgtopo:dst type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# </nmwgtopo:endPointPair>
+#
+# </nmdrt:subject>
+#
+# ##############################################################
+
+DelaySubject =
+ element nmdrt:subject {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ EndpointPair |
+ L4EndpointPair
+ )
+ }
+
+
+# ##############################################################
+# This is simply the regular method of doing parameters with an
+# enumeration to limit what 'names' are accepted and an outer
+# nmdrt: namespace for the parameters.
+#
+# Example:
+#
+# <nmdrt:parameters id="REQUIRED_ID"
+#
xmlns:nmwg="http://ggf.org/ns/nmwg/characteristic/delay/roundTrip/2.0/";>
+#
+# <nmwg:parameter name="REQUIRED_ENUM_NAME" value="OPTIONAL_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- ANY TEXT, (IF YOU DID NOT USE THE VALUE ATTRIBUTE) -->
+#
+# </nmwg:parameter>
+#
+# <!-- MORE PARAMETERS -->
+#
+# </nmdrt:parameters>
+#
+# ##############################################################
+
+DelayParameters =
+ element nmdrt:parameters {
+ Identifier &
+ DelayParameter+
+ }
+
+DelayParameter =
+ element nmwg:parameter {
+ attribute name { "packetType" | "packetSize" | "numPackets"
|
+ "packetSpacing" | "packetGap" |
"protocolID" |
+ "typeOfService" |
"differentiatedServicesCodePoint" |
+ "flowLabel" | "lossThreshold" |
"valueUnits" |
+ "numBytes" | "numBytesUnits" } &
+ (
+ attribute value { text } |
+ text
+ )
+ }
+
+
+# ##############################################################
+# The data block is complex, and has the potential to contain
+# many things. The data block can be used to return a metadata
+# block from a request, commonTime or datum elements, keys,
+# or something that we have perhaps not defined as of yet.
+#
+# Example:
+#
+# <nmwg:data id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- OPTIONAL (MULTIPLE) METADATA -->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) COMMON TIME ELEMENTS AND
+# OPTIONAL (MULTIPLE) DATUM ELEMENTS-->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- OPTIONAL (MULTIPLE) KEY ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:data>
+#
+# ##############################################################
+
+DelayData =
+ element nmwg:data {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ (
+ Metadata* |
+ DelayMetadata*
+ ) |
+ (
+ DelayCommonTime+ &
+ (
+ DelayDatum* |
+ ResultDatum*
+ )
+ ) |
+ (
+ DelayDatum* |
+ ResultDatum*
+ ) |
+ Key*
+ )
+ }
+
+
+# ##############################################################
+# CommonTime is used a a shortcut able to 'factor out' a frequently
+# occurring time range that a bunch of datum (or other) elements
+# might share, thus reducing complexity of XML representation.
+# CommonTime is similar to the other NMWG time stamps (from
+# nmtime.rnc) in its potential time representations.
+#
+# Example:
+#
+# <nmwg:commonTime type="REQUIRED_TYPE" value="OPTIONAL_VALUE"
+# duration="OPTIONAL_DURATION"
+# inclusive="OPTIONAL_INCLUSIVE_FLAG"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL START TIME ELEMENT (USE END TIME OR DURATION) -->
+#
+# <!-- TBD OPTIONAL END TIME ELEMENT (ONLY WITH START TIME) -->
+#
+# <!-- TBD OPTIONAL TIME VALUE ELEMENT (USE IF NO VALUE ATTRIBUTE) -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+# </nmwg:commonTime>
+#
+# ##############################################################
+
+DelayCommonTime =
+ element nmwg:commonTime {
+ Type &
+ (
+ TimeStamp |
+ (
+ StartTime &
+ (
+ EndTime |
+ Duration
+ )
+ )
+ ) &
+ (
+ DelayDatum* |
+ ResultDatum*
+ )
+ }
+
+
+# ##############################################################
+# These are the basic elements we would expect to see in the
+# specific delay datum.
+#
+# Example:
+#
+# <nmdrt:datum value="REQUIRED_VALUE"
+# valueUnits="OPTIONAL_VALUE_UNITS"
+# numBytes="OPTIONAL_NUM_BYTES"
+# numBytesUnits="OPTIONAL_NUM_BYTES_UNITS"
+# timeType="OPTIONAL_TIME_TYPE"
+# timeValue="OPTIONAL_TIME_VALUE"
+#
xmlns:nmwg="http://ggf.org/ns/nmwg/characteristic/delay/roundTrip/2.0/";>
+#
+# <!-- TIME ELEMENT (IF ATTRIBUTES NOT USED) -->
+#
+# </nmdrt:datum>
+#
+# ##############################################################
+
+DelayDatum =
+ element nmdrt:datum {
+ attribute value { xsd:float } &
+ attribute valueUnits { xsd:string }? &
+ attribute numBytes { xsd:int }? &
+ attribute numBytesUnits { xsd:string }? &
+ (
+ (
+ attribute timeType { xsd:string } &
+ attribute timeValue { xsd:string }
+ ) |
+ Time
+ )?
+ }
+
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/nmtime.tex
===================================================================
--- trunk/nmwg/doc/devguide/nmtime.tex 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/nmtime.tex 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,4 +1,157 @@
-egin{verbatim}
+\begin{verbatim}
+# ##############################################################
+#
+# File: nmtime.rnc - NMWG Time definitions
+# Version: $Id$
+# Purpose: This describes a set of time formats for
+# representing measurements.
+#
+# ##############################################################
+
+
+# ##############################################################
+# Namespace definitions
+# ##############################################################
+namespace nmtm = "http://ggf.org/ns/nmwg/time/20070914/";
+
+
+# ##############################################################
+# Regular time is attached to a specific datum instance; it is
+# essentially the same as before, but cannot have anything
+# 'inside' of it. The type can be simple, like UNIX, or it
+# could be something like timeRange or timeInterval. If this is
+# the case, we would then see the two extra time designators for
+# the start and end (or duration)
+#
+# Example:
+#
+# <nmtm:time type="REQUIRED_TYPE" value="OPTIONAL_VALUE"
+# duration="OPTIONAL_DURATION"
+# inclusive="OPTIONAL_INCLUSIVE_FLAG"
+# xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";>
+#
+# <!-- TBD OPTIONAL START TIME ELEMENT (USE END TIME OR
+# DURATION) -->
+#
+# <!-- TBD OPTIONAL END TIME ELEMENT (ONLY WITH START TIME) -->
+#
+# <!-- TBD OPTIONAL TIME VALUE ELEMENT (USE IF NO VALUE
+# ATTRIBUTE) -->
+#
+# </nmtm:time>
+#
+#
+# Time types are enumerated as follows:
+#
+# * unix: integral seconds since Jan 1, 1970 (UTC)
+#
+# * iso9601/rfc3339:
+#
+# full date/time representation. Examples from RFC-339:
+#
+# Here are some examples of Internet date/time format.
+#
+# 1985-04-12T23:20:50.52Z
+#
+# This represents 20 minutes and 50.52 seconds after the 23rd hour of
+# April 12th, 1985 in UTC.
+#
+# 1996-12-19T16:39:57-08:00
+#
+# This represents 39 minutes and 57 seconds after the 16th hour of
+# December 19th, 1996 with an offset of -08:00 from UTC (Pacific
+# Standard Time). Note that this is equivalent to
1996-12-20T00:39:57Z
+# in UTC.
+#
+# 1990-12-31T23:59:60Z
+#
+# This represents the leap second inserted at the end of 1990.
+#
+# 1990-12-31T15:59:60-08:00
+#
+# This represents the same leap second in Pacific Standard Time, 8
+# hours behind UTC.
+#
+# 1937-01-01T12:00:27.87+00:20
+#
+# This represents the same instant of time as noon, January 1, 1937,
+# Netherlands time. Standard time in the Netherlands was exactly 19
+# minutes and 32.13 seconds ahead of UTC by law from 1909-05-01
through
+# 1937-06-30. This time zone cannot be represented exactly using the
+# HH:MM format, and this timestamp uses the closest representable UTC
+# offset.
+#
+# ##############################################################
+
+Time =
+ element nmtm:time {
+ attribute type { xsd:string } &
+ (
+ TimeStamp |
+ (
+ StartTime &
+ (
+ EndTime |
+ Duration
+ )
+ )
+ )
+ }
+
+# precisionUnits must be one of the recognized SI units
+# The most complete list I could currently find is at:
+# http://en.wikipedia.org/wiki/Orders_of_magnitude_%28time%29
+#
+# synchronized SHOULD be set true if the party generating the timestamp
+# has a clock that is synchronized to UTC using an external source
+# (e.g., the attribute should be set true if GPS hardware is used and it
+# indicates that it has acquired current position and time or if NTP is
+# used and it indicates that it has synchronized to an external source,
+# which includes stratum 0 source, etc.). If there is no notion of
+# external synchronization for the time source, the attribute SHOULD be set
+# to false. If the attribute is not set at all, the synchronization
+# status of the timestamp can not be determined except through external
+# knowledge.
+Precision =
+ (
+ (
+ attribute precision { xsd:unsignedInt } &
+ attribute precisionUnits { xsd:string } &
+ attribute synchronized { xsd:boolean }?
+ ) |
+ element nmtm:precision {
+ attribute precisionUnits { xsd:string } &
+ attribute synchronized { xsd:boolean }? &
+ xsd:unsignedInt
+ }
+ )
+
+
+TimeStamp =
+ (
+ (
+ attribute value { xsd:string } |
+ element nmtm:value { xsd:string }
+ ) &
+ Precision?
+ )
+
+Duration =
+ attribute duration { xsd:string }
+
+TimeContent =
+ attribute type { text } &
+ attribute inclusive { text }? &
+ TimeStamp
+
+StartTime =
+ element nmtm:start {
+ TimeContent
+ }
+
+EndTime =
+ element nmtm:end {
+ TimeContent
+ }
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/nmtopo.tex
===================================================================
--- trunk/nmwg/doc/devguide/nmtopo.tex 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/nmtopo.tex 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,4 +1,143 @@
-egin{verbatim}
+\begin{verbatim}
+# ##############################################################
+#
+# File: nmtopo.rnc - Schema to describe topological
+# elements.
+# Version: $Id$
+#
+# ##############################################################
+
+
+# ##############################################################
+# Namespace definitions
+# ##############################################################
+namespace nmwgtopo = "http://ggf.org/ns/nmwg/topology/2.0/";
+
+
+# ##############################################################
+# Covers the basic point to point measurement situation. The two
+# points are a source and destination; may contain information
+# such as hostname or ip address, and port number when applicable.
+#
+# Example:
+#
+# <nmwgtopo:endPointPair
+# xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/";>
+#
+# <nmwgtopo:src type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# <nmwgtopo:dst type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# </nmwgtopo:endPointPair>
+#
+# ##############################################################
+
+EndpointPair =
+ element nmwgtopo:endPointPair {
+ EndpointPairContent
+ }
+
+EndpointPairContent =
+ element nmwgtopo:src {
+ EndpointContent
+ } &
+ element nmwgtopo:dst {
+ EndpointContent
+ }
+
+
+# ##############################################################
+# Similar to above, from one point only.
+#
+# Example:
+#
+# <nmwgtopo:endPoint type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# ##############################################################
+
+Endpoint =
+ element nmwgtopo:endPoint {
+ EndpointContent
+ }
+
+EndpointContent =
+ (
+ attribute value { xsd:string } |
+ text
+ ) &
+ attribute type { xsd:string } &
+ attribute port { xsd:string }?
+
+
+# ##############################################################
+# When looking at network utilization numbers (from a router or
+# related software) there is a different set of applicable
+# information
+#
+# Example:
+#
+# <nmwgtopo:interface xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/";>
+#
+# <nmwgtopo:ipAddress type='REQUIRED_TYPE'> TEXT </nmwgtopo:ipAddress>
+#
+# <nmwgtopo:hostName> TEXT </nmwgtopo:hostName>
+#
+# <nmwgtopo:ifName> TEXT </nmwgtopo:ifName>
+#
+# <nmwgtopo:ifDescription> TEXT </nmwgtopo:ifDescription>
+#
+# <nmwgtopo:ifAddress type='REQUIRED_TYPE'> TEXT </nmwgtopo:ifAddress>
+#
+# <nmwgtopo:ifHostName> TEXT </nmwgtopo:ifHostName>
+#
+# <nmwgtopo:ifIndex> TEXT </nmwgtopo:ifIndex>
+#
+# <nmwgtopo:type> TEXT </nmwgtopo:type>
+#
+# <nmwgtopo:direction> TEXT </nmwgtopo:direction>
+#
+# <nmwgtopo:authRealm> TEXT </nmwgtopo:authRealm>
+#
+# <nmwgtopo:classOfService> TEXT </nmwgtopo:classOfService>
+#
+# <nmwgtopo:capacity> TEXT </nmwgtopo:capacity>
+#
+# </nmwgtopo:interface>
+#
+# ##############################################################
+
+Interface =
+ element nmwgtopo:interface {
+ InterfaceContent
+ }
+
+InterfaceContent =
+ element nmwgtopo:ipAddress {
+ Address
+ }? &
+ element nmwgtopo:hostName { xsd:string }? &
+ element nmwgtopo:ifName { xsd:string }? &
+ element nmwgtopo:ifDescription { xsd:string }? &
+ element nmwgtopo:ifAddress {
+ Address
+ }? &
+ element nmwgtopo:ifHostName { xsd:string }? &
+ element nmwgtopo:ifIndex { xsd:string }? &
+ element nmwgtopo:type { xsd:string }? &
+ element nmwgtopo:direction { xsd:string }? &
+ element nmwgtopo:authRealm { xsd:string }? &
+ element nmwgtopo:classOfService { xsd:string }? &
+ element nmwgtopo:capacity { xsd:string }?
+
+Address =
+ (
+ attribute value { xsd:string } |
+ text
+ ) &
+ attribute type { xsd:string }
+
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/ping.tex
===================================================================
--- trunk/nmwg/doc/devguide/ping.tex 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/ping.tex 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,4 +1,260 @@
-egin{verbatim}
+\begin{verbatim}
+# ##############################################################
+#
+# File: ping.rnc - Specialized schema for the ping
+# tool
+# Version: $Id$
+# Purpose: Defines elements to be used in the representation
+# of ping measurements.
+#
+# ##############################################################
+
+
+# ##############################################################
+# Namespace definitions
+# ##############################################################
+namespace nmwg = "http://ggf.org/ns/nmwg/base/2.0/";
+namespace ping = "http://ggf.org/ns/nmwg/tools/ping/2.0/";
+namespace nmwgr = "http://ggf.org/ns/nmwg/result/2.0/";
+
+
+# ##############################################################
+# Include additional functionality from other files
+# ##############################################################
+include "nmtopo.rnc"
+include "nmtopo_ver3.rnc"
+include "result.rnc"
+include "nmbase.rnc" {
+ Metadata |= PingMetadata
+ Data |= PingData
+}
+
+
+# ##############################################################
+# Metadata
+# ##############################################################
+
+PingMetadata =
+ element nmwg:metadata {
+ Identifier &
+ MetadataIdentifierRef? &
+ PingMetadataContent
+ }
+
+PingMetadataBlock =
+ PingSubject? &
+ (
+ PingParameters |
+ Parameters
+ )?
+
+PingMetadataContent =
+ (
+ PingMetadataBlock |
+ FilterMetadataBlock
+ ) &
+ EventType? &
+ Key?
+
+
+# ##############################################################
+# Redefined ping subject allows only an endPointPair, and the
+# two id attributes.
+#
+# Example:
+#
+# <ping:subject id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/ping/2.0/";>
+#
+# <nmwgtopo:endPointPair
xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/";>
+#
+# <nmwgtopo:src type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# <nmwgtopo:dst type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# </nmwgtopo:endPointPair>
+#
+# </ping:subject>
+#
+# ##############################################################
+
+PingSubject =
+ element ping:subject {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ EndpointPair |
+ L4EndpointPair
+ )
+ }
+
+
+# ##############################################################
+# This is simply the regular method of doing parameters with an
+# enumeration to limit what 'names' are accepted and an outer
+# ping: namespace for the parameters.
+#
+# Example:
+#
+# <ping:parameters id="REQUIRED_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/ping/2.0/";>
+#
+# <nmwg:parameter name="REQUIRED_ENUM_NAME" value="OPTIONAL_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- ANY TEXT, (IF YOU DID NOT USE THE VALUE ATTRIBUTE) -->
+#
+# </nmwg:parameter>
+#
+# <!-- MORE PARAMETERS -->
+#
+# </ping:parameters>
+#
+# ##############################################################
+
+PingParameters =
+ element ping:parameters {
+ Identifier &
+ PingParameter+
+ }
+
+PingParameter =
+ element nmwg:parameter {
+ attribute name { "count" | "interval" | "deadline" |
+ "packetSize" | "ttl" | "arguments" |
+ "valueUnits" | "numBytes" |
+ "numBytesUnits" } &
+ (
+ attribute value { text } |
+ text
+ )
+ }
+
+
+# ##############################################################
+# The data block is complex, and has the potential to contain
+# many things. The data block can be used to return a metadata
+# block from a request, commonTime or datum elements, keys,
+# or something that we have perhaps not defined as of yet.
+#
+# Example:
+#
+# <nmwg:data id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- OPTIONAL (MULTIPLE) METADATA -->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) COMMON TIME ELEMENTS AND
+# OPTIONAL (MULTIPLE) DATUM ELEMENTS-->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- OPTIONAL (MULTIPLE) KEY ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:data>
+#
+# ##############################################################
+
+PingData =
+ element nmwg:data {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ (
+ Metadata* |
+ PingMetadata*
+ ) |
+ (
+ PingCommonTime+ &
+ (
+ PingDatum* |
+ ResultDatum*
+ )
+ ) |
+ (
+ PingDatum* |
+ ResultDatum*
+ ) |
+ Key*
+ )
+ }
+
+
+# ##############################################################
+# CommonTime
+# ##############################################################
+
+PingCommonTime =
+ element nmwg:commonTime {
+ Type &
+ (
+ TimeStamp |
+ (
+ StartTime &
+ (
+ EndTime |
+ Duration
+ )
+ )
+ ) &
+ (
+ PingDatum* |
+ ResultDatum*
+ )
+ }
+
+
+# ##############################################################
+# These are the basic elements we would expect to see in the
+# specific ping datum.
+#
+# Example:
+#
+# <ping:datum value="REQUIRED_VALUE"
+# valueUnits="OPTIONAL_VALUE_UNITS"
+# numBytes="OPTIONAL_NUM_BYTES"
+# numBytesUnits="OPTIONAL_NUM_BYTES_UNITS"
+# seqNum="OPTIONAL_SEQ_NUM"
+# ttl="OPTIONAL_TTL"
+# timeType="OPTIONAL_TIME_TYPE"
+# timeValue="OPTIONAL_TIME_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/ping/2.0/";>
+#
+# <!-- TIME ELEMENT (IF ATTRIBUTES NOT USED) -->
+#
+# </ping:datum>
+#
+# ##############################################################
+
+PingDatum =
+ element ping:datum {
+ attribute value { xsd:float } &
+ attribute valueUnits { xsd:string }? &
+ attribute numBytes { xsd:int }? &
+ attribute numBytesUnits { xsd:string }? &
+ attribute seqNum { xsd:int }? &
+ attribute ttl { xsd:int }? &
+ (
+ (
+ attribute timeType { xsd:string } &
+ attribute timeValue { xsd:string }
+ ) |
+ Time
+ )?
+ }
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/ping1.tex
===================================================================
--- trunk/nmwg/doc/devguide/ping1.tex 2009-02-09 20:41:35 UTC (rev 382)
+++ trunk/nmwg/doc/devguide/ping1.tex 2009-02-10 01:27:07 UTC (rev 383)
@@ -1,4 +1,238 @@
-egin{verbatim}
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8"?>
+<nmwg:message type="store"
+ xmlns="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:ping="http://ggf.org/ns/nmwg/tools/ping/2.0/";
+ xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";
+ xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+ xmlns:nmtl4="http://ggf.org/ns/nmwg/topology/l4/3.0/";
+ xmlns:nmtl3="http://ggf.org/ns/nmwg/topology/l3/3.0/";
+ xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
+ xmlns:average="http://ggf.org/ns/nmwg/ops/average/2.0/";
+ xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/";>
+
+ <!-- Metadata using original topology schema -->
+
+ <nmwg:metadata id="pingmeta1">
+ <ping:subject id="pingsub1">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="hostname" value="dreadnought.cis.udel.edu"
port="4543"/>
+ <nmwgt:dst type="hostname" value="alderaan.cse.psu.edu"
port="34343"/>
+ </nmwgt:endPointPair>
+ </ping:subject>
+ <ping:parameters id="pingparam1">
+ <nmwg:parameter name="count">2</nmwg:parameter>
+ <nmwg:parameter name="interval">3</nmwg:parameter>
+ <nmwg:parameter name="deadline">10</nmwg:parameter>
+ </ping:parameters>
+ </nmwg:metadata>
+
+
+ <!-- Metadata(s) using new topology schema -->
+
+ <nmwg:metadata id="pingmeta2">
+ <ping:subject id="pingsub2">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="4543" protocol="icpm">
+ <nmtl4:address value="dreadnought.cis.udel.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="34343" protocol="icpm">
+ <nmtl4:address value="alderaan.cse.psu.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </ping:subject>
+ <ping:parameters id="pingparam2">
+ <nmwg:parameter name="count">2</nmwg:parameter>
+ <nmwg:parameter name="interval">3</nmwg:parameter>
+ <nmwg:parameter name="deadline">10</nmwg:parameter>
+ </ping:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="pingmeta3">
+ <ping:subject id="pingsub3">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="4543" protocol="icpm">
+ <nmtl3:interface id="d1">
+ <nmtl3:ipAddress value="128.4.133.200" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="128.4.133.200" type="ipv4"/>
+ <nmtl3:ifHostName>dreadnought.cis.udel.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="34343" protocol="icpm">
+ <nmtl3:interface id="a1">
+ <nmtl3:ipAddress value="130.203.16.20" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="130.203.16.20" type="ipv4"/>
+ <nmtl3:ifHostName>alderaan.cse.psu.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </ping:subject>
+ <ping:parameters id="pingparam3">
+ <nmwg:parameter name="count">2</nmwg:parameter>
+ <nmwg:parameter name="interval">3</nmwg:parameter>
+ <nmwg:parameter name="deadline">10</nmwg:parameter>
+ </ping:parameters>
+ </nmwg:metadata>
+
+ <!-- metadata(s) with filter chaining -->
+
+ <nmwg:metadata id="pingmeta4">
+ <ping:subject id="pingsub4">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="hostname" value="dreadnought.cis.udel.edu"
port="4543"/>
+ <nmwgt:dst type="hostname" value="alderaan.cse.psu.edu"
port="34343"/>
+ </nmwgt:endPointPair>
+ </ping:subject>
+ <ping:parameters id="pingparam4">
+ <nmwg:parameter name="count">2</nmwg:parameter>
+ <nmwg:parameter name="interval">3</nmwg:parameter>
+ <nmwg:parameter name="deadline">10</nmwg:parameter>
+ </ping:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="pingmeta5">
+ <select:subject id="pingsub5" metadataIdRef="pingmeta4" />
+ <select:parameters id="pingparam5">
+ <nmwg:parameter name="timeValue">
+ <nmwg:parameter name="greaterThan">1107492199</nmwg:parameter>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="pingmeta6">
+ <select:subject id="pingsub6" metadataIdRef="pingmeta5" />
+ <select:parameters id="pingparam6">
+ <nmwg:parameter name="timeValue">
+ <nmwg:parameter name="lessThan">1107492207</nmwg:parameter>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="pingmeta7">
+ <average:subject id="pingsub7" metadataIdRef="pingmeta6" />
+ <average:parameters id="pingparam7">
+ <nmwg:parameter name="value" />
+ </average:parameters>
+ </nmwg:metadata>
+
+
+ <!-- Data block, with a time block, with multiple datum blocks -->
+ <nmwg:data id="data1" metadataIdRef="pingmeta1">
+ <nmwg:commonTime type="unix" value="1107492095">
+ <ping:datum seqNum="0" value="19.1" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="1" value="19.2" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block, with multiple datum blocks (other way
to show time) -->
+ <nmwg:data id="data2" metadataIdRef="pingmeta1">
+ <nmwg:commonTime type="unix">
+ <nmtm:value>1107492096</nmtm:value>
+ <ping:datum seqNum="0" value="19.3" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="1" value="19.4" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block (range), with multiple datum blocks -->
+ <nmwg:data id="data3" metadataIdRef="pingmeta1">
+ <nmwg:commonTime type="range">
+ <nmtm:start type="unix" value="1107492097"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ <ping:datum seqNum="0" value="19.2" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="1" value="17.3" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="3" value="45.4" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="88" value="21.9" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Data block, with a time block (durration), with multiple datum blocks
-->
+ <nmwg:data id="data4" metadataIdRef="pingmeta1">
+ <nmwg:commonTime type="durration" duration="300">
+ <nmtm:start type="unix" value="1107492097"/>
+ <ping:datum seqNum="0" value="19.2" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="1" value="17.3" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="3" value="45.4" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ <ping:datum seqNum="88" value="21.9" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" />
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is inline (two ways to represent time)
-->
+ <nmwg:data id="data5" metadataIdRef="pingmeta1">
+ <ping:datum seqNum="0" value="14.3" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" timeType="unix" timeValue="1107492199" />
+ <ping:datum seqNum="1" value="17.4" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes" timeType="unix" timeValue="1107492201" />
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element -->
+ <nmwg:data id="data6" metadataIdRef="pingmeta1">
+ <ping:datum seqNum="0" value="19.6" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="unix" value="1107493095" />
+ </ping:datum>
+ <ping:datum seqNum="0" value="18.5" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="unix" value="1107493095" />
+ </ping:datum>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element -->
+ <nmwg:data id="data7" metadataIdRef="pingmeta1">
+ <ping:datum seqNum="0" value="19.6" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </ping:datum>
+ <ping:datum seqNum="0" value="18.5" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="unix">
+ <nmtm:value>1107493095</nmtm:value>
+ </nmtm:time>
+ </ping:datum>
+ </nmwg:data>
+
+ <!-- data with datum blocks, time is a sub element (other way to show
time) -->
+ <nmwg:data id="data8" metadataIdRef="pingmeta1">
+ <ping:datum seqNum="0" value="19.6" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ </nmtm:time>
+ </ping:datum>
+ <ping:datum seqNum="0" value="18.5" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ </nmtm:time>
+ </ping:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data9" metadataIdRef="pingmeta1">
+ <ping:datum seqNum="0" value="19.6" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="durration" duration="300">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </ping:datum>
+ <ping:datum seqNum="0" value="18.5" valueUnits="ms" ttl="241"
numBytes="64" numBytesUnits="bytes">
+ <nmtm:time type="durration" duration="300">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </ping:datum>
+ </nmwg:data>
+
+ <!-- result datum elements -->
+ <nmwg:data id="data10" metadataIdRef="pingmeta1">
+ <nmwgr:datum type="error.ping.mp">From lager (192.168.0.200) icmp_seq=1
Destination Host Unreachable</nmwgr:datum>
+ </nmwg:data>
+
+</nmwg:message>
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/traceroute.tex
===================================================================
--- trunk/nmwg/doc/devguide/traceroute.tex 2009-02-09 20:41:35 UTC (rev
382)
+++ trunk/nmwg/doc/devguide/traceroute.tex 2009-02-10 01:27:07 UTC (rev
383)
@@ -1,4 +1,311 @@
-egin{verbatim}
+\begin{verbatim}
+# ##############################################################
+#
+# File: traceroute.rnc - Specialized schema for the
+# traceroute tool
+# Version: $Id$
+# Purpose: Describes specific elements to be used in the
+# representation and handling of traceroute
+# measurements.
+# Reference: http://books.xmlschemata.org/relaxng/page2.html
+#
+# ##############################################################
+
+
+# ##############################################################
+# Namespace definitions
+# ##############################################################
+namespace nmwg = "http://ggf.org/ns/nmwg/base/2.0/";
+namespace traceroute = "http://ggf.org/ns/nmwg/tools/traceroute/2.0/";
+namespace nmwgr = "http://ggf.org/ns/nmwg/result/2.0/";
+
+
+# ##############################################################
+# Include additional functionality from other files
+# ##############################################################
+include "nmtopo.rnc"
+include "nmtopo_ver3.rnc"
+include "result.rnc"
+include "nmbase.rnc" {
+ Metadata |= TracerouteMetadata
+ Data |= TracerouteData
+}
+
+
+# ##############################################################
+# Metadata is the 'data' that describes physical measurements.
+# Metadata can be something such as a physical address, or
+# a geographical location; any form of static, re-usable
+# designation. It is important to note that the subject
+# namespace and parameters namespace MUST match (or the parameters
+# can be a generic NMWG) or bad things will occur.
+#
+# Example:
+#
+# <nmwg:metadata id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL SUBJECT -->
+#
+# <!-- TBD OPTIONAL PARAMETERS -->
+#
+# <!-- TBD OPTIONAL EVENTTYPE -->
+#
+# <!-- TBD OPTIONAL KEY -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:metadata>
+#
+# ##############################################################
+
+TracerouteMetadata =
+ element nmwg:metadata {
+ Identifier &
+ MetadataIdentifierRef? &
+ TracerouteMetadataContent
+ }
+
+TracerouteMetadataBlock =
+ TracerouteSubject? &
+ (
+ TracerouteParameters |
+ Parameters
+ )?
+
+TracerouteMetadataContent =
+ (
+ TracerouteMetadataBlock |
+ FilterMetadataBlock
+ ) &
+ EventType? &
+ Key?
+
+# ##############################################################
+# Redefined ping subject allows only an endPointPair, and the
+# two id attributes.
+#
+# Example:
+#
+# <traceroute:subject id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/traceroute/2.0/";>
+#
+# <nmwgtopo:endPointPair
xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/";>
+#
+# <nmwgtopo:src type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# <nmwgtopo:dst type="REQUIRED_TYPE" value="REQUIRED_VALUE"
+# port="OPTIONAL_PORT"/>
+#
+# </nmwgtopo:endPointPair>
+#
+# </traceroute:subject>
+#
+# ##############################################################
+
+TracerouteSubject =
+ element traceroute:subject {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ EndpointPair |
+ L4EndpointPair
+ )
+ }
+
+
+# ##############################################################
+# This is simply the regular method of doing parameters with an
+# enumeration to limit what 'names' are accepted and an outer
+# ping: namespace for the parameters.
+#
+# Example:
+#
+# <traceroute:parameters id="REQUIRED_ID"
+#
xmlns:nmwg="http://ggf.org/ns/nmwg/tools/traceroute/2.0/";>
+#
+# <nmwg:parameter name="REQUIRED_ENUM_NAME" value="OPTIONAL_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- ANY TEXT, (IF YOU DID NOT USE THE VALUE ATTRIBUTE) -->
+#
+# </nmwg:parameter>
+#
+# <!-- MORE PARAMETERS -->
+#
+# </traceroute:parameters>
+#
+# ##############################################################
+
+TracerouteParameters =
+ element traceroute:parameters {
+ Identifier &
+ TracerouteParameter+
+ }
+
+TracerouteParameter =
+ element nmwg:parameter {
+ attribute name { "firstTtl" | "maxTtl" | "waitTime" |
+ "pause" | "packetSize" | "arguments" |

+ "valueUnits" | "numBytes" |
+ "numBytesUnits" } &
+ (
+ attribute value { text } |
+ text
+ )
+ }
+
+
+# ##############################################################
+# The data block is complex, and has the potential to contain
+# many things. The data block can be used to return a metadata
+# block from a request, commonTime or datum elements, keys,
+# or something that we have perhaps not defined as of yet.
+#
+# Example:
+#
+# <nmwg:data id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- OPTIONAL (MULTIPLE) METADATA -->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) COMMON TIME ELEMENTS AND
+# OPTIONAL (MULTIPLE) DATUM ELEMENTS-->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- OPTIONAL (MULTIPLE) KEY ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:data>
+#
+# ##############################################################
+
+TracerouteData =
+ element nmwg:data {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ (
+ Metadata* |
+ TracerouteMetadata*
+ ) |
+ (
+ TracerouteCommonTime+ &
+ (
+ TracerouteDatum* |
+ ResultDatum*
+ )
+ ) |
+ (
+ TracerouteDatum* |
+ ResultDatum*
+ ) |
+ Key*
+ )
+ }
+
+
+# ##############################################################
+# CommonTime is used a a shortcut able to 'factor out' a frequently
+# occurring time range that a bunch of datum (or other) elements
+# might share, thus reducing complexity of XML representation.
+# CommonTime is similar to the other NMWG time stamps (from
+# nmtime.rnc) in its potential time representations.
+#
+# Example:
+#
+# <nmwg:commonTime type="REQUIRED_TYPE" value="OPTIONAL_VALUE"
+# duration="OPTIONAL_DURATION"
+# inclusive="OPTIONAL_INCLUSIVE_FLAG"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL START TIME ELEMENT (USE END TIME OR DURATION) -->
+#
+# <!-- TBD OPTIONAL END TIME ELEMENT (ONLY WITH START TIME) -->
+#
+# <!-- TBD OPTIONAL TIME VALUE ELEMENT (USE IF NO VALUE ATTRIBUTE) -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+# </nmwg:commonTime>
+#
+# ##############################################################
+
+TracerouteCommonTime =
+ element nmwg:commonTime {
+ Type &
+ (
+ TimeStamp |
+ (
+ StartTime &
+ (
+ EndTime |
+ Duration
+ )
+ )
+ ) &
+ (
+ TracerouteDatum* |
+ ResultDatum*
+ )
+ }
+
+
+# ##############################################################
+# These are the basic elements we would expect to see in the
+# specific traceroute datum.
+#
+# Example:
+#
+# <traceroute:datum value="REQUIRED_VALUE"
+# valueUnits="OPTIONAL_VALUE_UNITS"
+# numBytes="OPTIONAL_NUM_BYTES"
+# numBytesUnits="OPTIONAL_NUM_BYTES_UNITS"
+# ttl="OPTIONAL_TTL"
+# queryNum="OPTIONAL_QUERY_NUM"
+# hop="OPTIONAL_HOP"
+# timeType="OPTIONAL_TIME_TYPE"
+# timeValue="OPTIONAL_TIME_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/traceroute/2.0/";>
+#
+# <!-- TIME ELEMENT (IF ATTRIBUTES NOT USED) -->
+#
+# </traceroute:datum>
+#
+# ##############################################################
+
+TracerouteDatum =
+ element traceroute:datum {
+ attribute value { xsd:float } &
+ attribute valueUnits { xsd:string }? &
+ attribute numBytes { xsd:int }? &
+ attribute numBytesUnits { xsd:string }? &
+ attribute ttl { xsd:int }? &
+ attribute queryNum { xsd:int }? &
+ attribute hop { xsd:string }? &
+ (
+ (
+ attribute timeType { xsd:string } &
+ attribute timeValue { xsd:string }
+ ) |
+ Time
+ )?
+ }
+
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/traceroute1.tex
===================================================================
--- trunk/nmwg/doc/devguide/traceroute1.tex 2009-02-09 20:41:35 UTC (rev
382)
+++ trunk/nmwg/doc/devguide/traceroute1.tex 2009-02-10 01:27:07 UTC (rev
383)
@@ -1,4 +1,277 @@
-egin{verbatim}
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8"?>
+<nmwg:message type="store"
+ xmlns="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:traceroute=
"http://ggf.org/ns/nmwg/tools/traceroute/2.0/";
+ xmlns:nmwgt= "http://ggf.org/ns/nmwg/topology/2.0/";
+ xmlns:nmtm= "http://ggf.org/ns/nmwg/time/2.0/";
+ xmlns:nmtl4="http://ggf.org/ns/nmwg/topology/l4/3.0/";
+ xmlns:nmtl3="http://ggf.org/ns/nmwg/topology/l3/3.0/";
+ xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
+ xmlns:average="http://ggf.org/ns/nmwg/ops/average/2.0/";
+ xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/";>
+
+ <!-- Metadata using original topology schema -->
+
+ <nmwg:metadata id="traceroutemeta1">
+ <traceroute:subject id="tracesub1">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="hostname" value="dreadnought.cis.udel.edu"
port="4543"/>
+ <nmwgt:dst type="hostname" value="planetlab1.cs.umd.edu"
port="34343"/>
+ </nmwgt:endPointPair>
+ </traceroute:subject>
+ <traceroute:parameters id="trparam1">
+ <nmwg:parameter name="firstTtl">2</nmwg:parameter>
+ <nmwg:parameter name="maxTtl">30</nmwg:parameter>
+ <nmwg:parameter name="waitTime">1</nmwg:parameter>
+ </traceroute:parameters>
+ </nmwg:metadata>
+
+ <!-- Metadata(s) using new topology schema -->
+
+ <nmwg:metadata id="traceroutemeta2">
+ <traceroute:subject id="tracesub2">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="4543" protocol="icpm">
+ <nmtl4:address value="dreadnought.cis.udel.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="34343" protocol="icpm">
+ <nmtl4:address value="planetlab1.cs.umd.edu" type="hostname"/>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </traceroute:subject>
+ <traceroute:parameters id="trparam2">
+ <nmwg:parameter name="firstTtl">2</nmwg:parameter>
+ <nmwg:parameter name="maxTtl">30</nmwg:parameter>
+ <nmwg:parameter name="waitTime">1</nmwg:parameter>
+ </traceroute:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="traceroutemeta3">
+ <traceroute:subject id="tracesub3">
+ <nmtl4:endPointPair>
+ <nmtl4:endPoint role="src" port="4543" protocol="icpm">
+ <nmtl3:interface id="d1">
+ <nmtl3:ipAddress value="128.4.133.200" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="128.4.133.200" type="ipv4"/>
+ <nmtl3:ifHostName>dreadnought.cis.udel.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ <nmtl4:endPoint role="dst" port="34343" protocol="icpm">
+ <nmtl3:interface id="a1">
+ <nmtl3:ipAddress value="128.8.126.12" type="ipv4"/>
+ <nmtl3:netmask>255.255.255.0</nmtl3:netmask>
+ <nmtl3:ifName>eth0</nmtl3:ifName>
+ <nmtl3:ifDescription>External Connection</nmtl3:ifDescription>
+ <nmtl3:ifAddress value="128.8.126.12" type="ipv4"/>
+ <nmtl3:ifHostName>planetlab1.cs.umd.edu</nmtl3:ifHostName>
+ <nmtl3:ifIndex>0</nmtl3:ifIndex>

+ <nmtl3:type>1000BaseT Ethernet</nmtl3:type>
+ <nmtl3:capacity>1000000000</nmtl3:capacity>
+ </nmtl3:interface>
+ </nmtl4:endPoint>
+ </nmtl4:endPointPair>
+ </traceroute:subject>
+ <traceroute:parameters id="trparam3">
+ <nmwg:parameter name="firstTtl">2</nmwg:parameter>
+ <nmwg:parameter name="maxTtl">30</nmwg:parameter>
+ <nmwg:parameter name="waitTime">1</nmwg:parameter>
+ </traceroute:parameters>
+ </nmwg:metadata>
+
+
+ <!-- metadata(s) with filter chaining -->
+
+ <nmwg:metadata id="traceroutemeta4">
+ <traceroute:subject id="traceroutesub4">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="hostname" value="dreadnought.cis.udel.edu"
port="4543"/>
+ <nmwgt:dst type="hostname" value="planetlab1.cs.umd.edu"
port="34343"/>
+ </nmwgt:endPointPair>
+ </traceroute:subject>
+ <traceroute:parameters id="tracerouteparam4">
+ <nmwg:parameter name="firstTtl">2</nmwg:parameter>
+ <nmwg:parameter name="maxTtl">30</nmwg:parameter>
+ <nmwg:parameter name="waitTime">1</nmwg:parameter>
+ </traceroute:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="traceroutemeta5">
+ <select:subject id="traceroutesub5" metadataIdRef="traceroutemeta4" />
+ <select:parameters id="tracerouteparam5">
+ <nmwg:parameter name="timeValue">
+ <nmwg:parameter name="greaterThan">1107492199</nmwg:parameter>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="traceroutemeta6">
+ <select:subject id="traceroutesub6" metadataIdRef="traceroutemeta5" />
+ <select:parameters id="tracerouteparam6">
+ <nmwg:parameter name="timeValue">
+ <nmwg:parameter name="lessThan">1107492207</nmwg:parameter>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="traceroutemeta7">
+ <average:subject id="traceroutesub7" metadataIdRef="traceroutemeta6" />
+ <average:parameters id="tracerouteparam7">
+ <nmwg:parameter name="value" />
+ </average:parameters>
+ </nmwg:metadata>
+
+
+ <!-- all info is inline in datum -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data1">
+ <traceroute:datum ttl="1" queryNum="1" value="4.503"
hop="128.4.132.100" valueUnits="ms" numBytes="64" numBytesUnits="bytes"
timeType="unix" timeValue="1108415421" />
+ <traceroute:datum ttl="1" queryNum="2" value="5.015"
hop="128.4.132.100" valueUnits="ms" numBytes="64" numBytesUnits="bytes"
timeType="unix" timeValue="1108415421" />
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933"
hop="128.175.137.1" valueUnits="ms" numBytes="64" numBytesUnits="bytes"
timeType="unix" timeValue="1108415421" />
+ <!-- ... -->
+ </nmwg:data>
+
+ <!-- Time block, with dataum all inline -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data2">
+ <nmwg:commonTime type="unix" value="1108415421">
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1" />
+ <!-- ... -->
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Time block (other method), with dataum all inline -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data3">
+ <nmwg:commonTime type="unix">
+ <nmtm:value>1108415421</nmtm:value>
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1" />
+ <!-- ... -->
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Time block (range) has inline datum -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data4">
+ <nmwg:commonTime type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1" />
+ <!-- ... -->
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Time block (range) has inline datum -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data5">
+ <nmwg:commonTime type="durration" duration="500">
+ <nmtm:start type="unix" value="1107492095"/>
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100" />
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1" />
+ <!-- ... -->
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <!-- Datum contains time -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data6">
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="unix" value="1108415421"/>
+ </traceroute:datum>
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="unix" value="1108415421"/>
+ </traceroute:datum>
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1">
+ <nmtm:time type="unix" value="1108415421"/>
+ </traceroute:datum>
+ <!-- ... -->
+ </nmwg:data>
+
+ <!-- Datum contains time -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data7">
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="unix">
+ <nmtm:value>1108415421</nmtm:value>
+ </nmtm:time>
+ </traceroute:datum>
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="unix">
+ <nmtm:value>1108415421</nmtm:value>
+ </nmtm:time>
+ </traceroute:datum>
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1">
+ <nmtm:time type="unix">
+ <nmtm:value>1108415421</nmtm:value>
+ </nmtm:time>
+ </traceroute:datum>
+ <!-- ... -->
+ </nmwg:data>
+
+ <!-- Datum contains time -->
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data8">
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ </nmtm:time>
+ </traceroute:datum>
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ </nmtm:time>
+ </traceroute:datum>
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492195"/>
+ </nmtm:time>
+ </traceroute:datum>
+ <!-- ... -->
+ </nmwg:data>
+
+ <nmwg:data metadataIdRef="traceroutemeta1" id="data9">
+ <traceroute:datum ttl="1" queryNum="1" value="4.503" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="durration" duration="500">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </traceroute:datum>
+ <traceroute:datum ttl="1" queryNum="2" value="5.015" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.4.132.100">
+ <nmtm:time type="durration" duration="500">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </traceroute:datum>
+ <!-- ... -->
+ <traceroute:datum ttl="2" queryNum="1" value="3.933" valueUnits="ms"
numBytes="64" numBytesUnits="bytes" hop="128.175.137.1">
+ <nmtm:time type="durration" duration="500">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </traceroute:datum>
+ <!-- ... -->
+ </nmwg:data>
+
+ <!-- result datum elements -->
+ <nmwg:data id="data10" metadataIdRef="traceroutemeta1">
+ <nmwgr:datum type="error.traceroute.mp">1 * * *</nmwgr:datum>
+ </nmwg:data>
+
+</nmwg:message>
+
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/utilization.tex
===================================================================
--- trunk/nmwg/doc/devguide/utilization.tex 2009-02-09 20:41:35 UTC (rev
382)
+++ trunk/nmwg/doc/devguide/utilization.tex 2009-02-10 01:27:07 UTC (rev
383)
@@ -1,4 +1,318 @@
-egin{verbatim}
+\begin{verbatim}
+# ##############################################################
+#
+# File: utilization.rnc - Specialized schema for the
+# measure of interface utilization
+# Version: $Id$
+# Purpose: Describes specific elements to be used in the
+# representation and handling of interface
+# utilization
+# Reference: http://books.xmlschemata.org/relaxng/page2.html
+#
+# ##############################################################
+
+
+# ##############################################################
+# Namespace definitions
+# ##############################################################
+namespace nmwg = "http://ggf.org/ns/nmwg/base/2.0/";
+namespace utilization =
"http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
+namespace nmwgr = "http://ggf.org/ns/nmwg/result/2.0/";
+
+
+# ##############################################################
+# Include additional functionality from other files
+# ##############################################################
+include "nmtopo.rnc"
+include "nmtopo_ver3.rnc"
+include "result.rnc"
+include "nmbase.rnc" {
+ Metadata |= UtilizationMetadata
+ Data |= UtilizationData
+}
+
+
+# ##############################################################
+# Metadata is the 'data' that describes physical measurements.
+# Metadata can be something such as a physical address, or
+# a geographical location; any form of static, re-usable
+# designation. It is important to note that the subject
+# namespace and parameters namespace MUST match (or the parameters
+# can be a generic NMWG) or bad things will occur.
+#
+# Example:
+#
+# <nmwg:metadata id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL SUBJECT -->
+#
+# <!-- TBD OPTIONAL PARAMETERS -->
+#
+# <!-- TBD OPTIONAL EVENTTYPE -->
+#
+# <!-- TBD OPTIONAL KEY -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:metadata>
+#
+# ##############################################################
+
+UtilizationMetadata =
+ element nmwg:metadata {
+ Identifier &
+ MetadataIdentifierRef? &
+ UtilizationMetadataContent
+ }
+
+UtilizationMetadataBlock =
+ UtilizationSubject? &
+ (
+ UtilizationParameters |
+ Parameters
+ )?
+
+UtilizationMetadataContent =
+ (
+ UtilizationMetadataBlock |
+ FilterMetadataBlock
+ ) &
+ EventType? &
+ Key?
+
+
+# ##############################################################
+# Redefined utilization subject allows only an interface, and
+# the two id attributes.
+#
+# Example:
+#
+# <utilization:subject id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/tools/utilization/2.0/";>
+#
+# <nmwgtopo:interface
xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/";>
+#
+# <nmwgtopo:ipAddress type='REQUIRED_TYPE'> TEXT </nmwgtopo:ipAddress>
+#
+# <nmwgtopo:hostName> TEXT </nmwgtopo:hostName>
+#
+# <nmwgtopo:ifName> TEXT </nmwgtopo:ifName>
+#
+# <nmwgtopo:ifDescription> TEXT </nmwgtopo:ifDescription>
+#
+# <nmwgtopo:ifAddress type='REQUIRED_TYPE'> TEXT </nmwgtopo:ifAddress>
+#
+# <nmwgtopo:ifHostName> TEXT </nmwgtopo:ifHostName>
+#
+# <nmwgtopo:ifIndex> TEXT </nmwgtopo:ifIndex>
+#
+# <nmwgtopo:type> TEXT </nmwgtopo:type>
+#
+# <nmwgtopo:direction> TEXT </nmwgtopo:direction>
+#
+# <nmwgtopo:authRealm> TEXT </nmwgtopo:authRealm>
+#
+# <nmwgtopo:classOfService> TEXT </nmwgtopo:classOfService>
+#
+# <nmwgtopo:capacity> TEXT </nmwgtopo:capacity>
+#
+# </nmwgtopo:interface>
+#
+# </utilization:subject>
+#
+# ##############################################################
+
+UtilizationSubject =
+ element utilization:subject {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ Interface |
+ BaseInterface |
+ L2Interface |
+ L3Interface
+ )
+ }
+
+
+# ##############################################################
+# This is simply the regular method of doing parameters with an
+# enumeration to limit what 'names' are accepted and an outer
+# utilization: namespace for the parameters.
+#
+# Example:
+#
+# <utilization:parameters id="REQUIRED_ID"
+#
xmlns:nmwg="http://ggf.org/ns/nmwg/tools/utilization/2.0/";>
+#
+# <nmwg:parameter name="REQUIRED_ENUM_NAME" value="OPTIONAL_VALUE"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- ANY TEXT, (IF YOU DID NOT USE THE VALUE ATTRIBUTE) -->
+#
+# </nmwg:parameter>
+#
+# <!-- MORE PARAMETERS -->
+#
+# </utilization:parameters>
+#
+# ##############################################################
+
+UtilizationParameters =
+ element utilization:parameters {
+ Identifier &
+ UtilizationParameter+
+ }
+
+UtilizationParameter =
+ element nmwg:parameter {
+ attribute name { "interval" | "valueUnits" } &
+ (
+ attribute value { text } |
+ text
+ )
+ }
+
+
+# ##############################################################
+# The data block is complex, and has the potential to contain
+# many things. The data block can be used to return a metadata
+# block from a request, commonTime or datum elements, keys,
+# or something that we have perhaps not defined as of yet.
+#
+# Example:
+#
+# <nmwg:data id="REQUIRED_ID"
+# metadataIdRef="OPTIONAL_REFERENCE_ID"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- OPTIONAL (MULTIPLE) METADATA -->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) COMMON TIME ELEMENTS AND
+# OPTIONAL (MULTIPLE) DATUM ELEMENTS-->
+#
+# <!-- OR -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- OPTIONAL (MULTIPLE) KEY ELEMENTS -->
+#
+# <!-- OR -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+#
+# </nmwg:data>
+#
+# ##############################################################
+
+UtilizationData =
+ element nmwg:data {
+ Identifier &
+ MetadataIdentifierRef? &
+ (
+ (
+ Metadata* |
+ UtilizationMetadata*
+ ) |
+ (
+ UtilizationCommonTime+ &
+ (
+ UtilizationDatum* |
+ ResultDatum*
+ )
+ ) |
+ (
+ UtilizationDatum* |
+ ResultDatum*
+ ) |
+ Key*
+ )
+ }
+
+
+# ##############################################################
+# CommonTime is used a a shortcut able to 'factor out' a frequently
+# occurring time range that a bunch of datum (or other) elements
+# might share, thus reducing complexity of XML representation.
+# CommonTime is similar to the other NMWG time stamps (from
+# nmtime.rnc) in its potential time representations.
+#
+# Example:
+#
+# <nmwg:commonTime type="REQUIRED_TYPE" value="OPTIONAL_VALUE"
+# duration="OPTIONAL_DURATION"
+# inclusive="OPTIONAL_INCLUSIVE_FLAG"
+# xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";>
+#
+# <!-- TBD OPTIONAL START TIME ELEMENT (USE END TIME OR DURATION) -->
+#
+# <!-- TBD OPTIONAL END TIME ELEMENT (ONLY WITH START TIME) -->
+#
+# <!-- TBD OPTIONAL TIME VALUE ELEMENT (USE IF NO VALUE ATTRIBUTE) -->
+#
+# <!-- TBD OPTIONAL (MULTIPLE) DATUM ELEMENTS -->
+#
+# <!-- ANY OPTIONAL (MULTIPLE) ELEMENT IN ANY NAMESPACE -->
+# </nmwg:commonTime>
+#
+# ##############################################################
+
+UtilizationCommonTime =
+ element nmwg:commonTime {
+ Type &
+ (
+ TimeStamp |
+ (
+ StartTime &
+ (
+ EndTime |
+ Duration
+ )
+ )
+ ) &
+ (
+ UtilizationDatum* |
+ ResultDatum*
+ )
+ }
+
+
+# ##############################################################
+# These are the basic elements we would expect to see in the
+# specific iperf datum.
+#
+# Example:
+#
+# <utilization:datum value="REQUIRED_VALUE"
+# valueUnits="OPTIONAL_VALUE_UNITS"
+# timeType="OPTIONAL_TIME_TYPE"
+# timeValue="OPTIONAL_TIME_VALUE"
+#
xmlns:nmwg="http://ggf.org/ns/nmwg/tools/utilization/2.0/";>
+#
+# <!-- TIME ELEMENT (IF ATTRIBUTES NOT USED) -->
+#
+# </utilization:datum>
+#
+# ##############################################################
+
+UtilizationDatum =
+ element utilization:datum {
+ attribute value { xsd:float } &
+ attribute valueUnits { xsd:string }? &
+ (
+ (
+ attribute timeType { xsd:string } &
+ attribute timeValue { xsd:string }
+ ) |
+ Time
+ )?
+ }
\end{verbatim}
-
-ormalsize
+\normalsize

Modified: trunk/nmwg/doc/devguide/utilization1.tex
===================================================================
--- trunk/nmwg/doc/devguide/utilization1.tex 2009-02-09 20:41:35 UTC (rev
382)
+++ trunk/nmwg/doc/devguide/utilization1.tex 2009-02-10 01:27:07 UTC (rev
383)
@@ -1,4 +1,239 @@
-egin{verbatim}
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8"?>
+<nmwg:message type="store"
+ xmlns="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+
xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
+ xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";
+ xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+ xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+ xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
+ xmlns:average="http://ggf.org/ns/nmwg/ops/average/2.0/";
+ xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/";>
+
+ <!-- Metadata using original topology schema -->
+
+ <nmwg:metadata id="iumeta1">
+ <netutil:subject id="iusub1">
+ <nmwgt:interface>
+ <nmwgt:ipAddress type="v4">10.10.11.1</nmwgt:ipAddress>
+ <nmwgt:hostName>dreadnought</nmwgt:hostName>
+ <nmwgt:ifName>eth0</nmwgt:ifName>
+ <nmwgt:ifDescription>gigE</nmwgt:ifDescription>
+ <nmwgt:ifAddress type="ipv4">128.4.133.163</nmwgt:ifAddress>
+ <nmwgt:ifIndex>0</nmwgt:ifIndex>
+ <nmwgt:type>eth0</nmwgt:type>
+ <nmwgt:authRealm>someauth</nmwgt:authRealm>
+<!--
+ goes back to queueing strategy, could be
+ more specifications?
+
+ <classOfService>Best Effort</nmwgt:classOfService>
+ <classOfService>Scavenger</nmwgt:classOfService>
+ <classOfService>OSCARS</nmwgt:classOfService>
+ <classOfService>All</nmwgt:classOfService>

+-->
+ <nmwgt:classOfService>All</nmwgt:classOfService>
+<!--
+ Can specify this up here, or use seperate metadata chains
+ to describe.
+
+ <nmwgt:direction>*</nmwgt:direction>
+ <nmwgt:direction>in</nmwgt:direction>
+ <nmwgt:direction>out</nmwgt:direction>
+-->
+ </nmwgt:interface>
+ </netutil:subject>
+
+ <netutil:parameters id="param1">
+ <nmwg:parameter name="interval">1</nmwg:parameter>
+ <nmwg:parameter name="valueUnits">octets</nmwg:parameter>
+ </netutil:parameters>
+
+ </nmwg:metadata>
+
+ <nmwg:metadata id="iumeta2" metadataIdRef="iumeta1">
+<!--
+ The metadataKey is nothing more than a file that is
+ generated by tools like cricket that describes a
+ interface on a machine. This file can be used in the
+ future for queries and saves the time of needing to
+ search on specific parameters.
+-->
+
+ <netutil:subject id="iusub2">
+ <nmwgt:interface>
+ <nmwgt:direction>in</nmwgt:direction>
+ </nmwgt:interface>
+ </netutil:subject>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="iumeta3" metadataIdRef="iumeta1">
+
+ <netutil:subject id="iusub3">
+ <nmwgt:interface>
+ <nmwgt:direction>out</nmwgt:direction>
+ </nmwgt:interface>
+ </netutil:subject>
+ </nmwg:metadata>
+
+
+ <!-- Metadata(s) using new topology schema -->
+
+ <nmwg:metadata id="iumeta4">
+ <netutil:subject id="iusub4">
+
+ <!-- we could use any of the specific interfaces from
+ topo as well ... (L2, L3) -->
+
+ <nmwgtopo3:interface id="d1">
+ <nmwgtopo3:name type="string">dreadnought</nmwgtopo3:name>
+ <nmwgtopo3:type>pc</nmwgtopo3:type>
+ <nmwgtopo3:hostName>dreadnought.cis.udel.edu</nmwgtopo3:hostName>
+ <nmwgtopo3:ifName>eth0</nmwgtopo3:ifName>
+ <nmwgtopo3:ifDescription>gigE</nmwgtopo3:ifDescription>
+ <nmwgtopo3:ifIndex>0</nmwgtopo3:ifIndex>
+ <nmwgtopo3:capacity>1000000000</nmwgtopo3:capacity>
+ </nmwgtopo3:interface>
+ </netutil:subject>
+
+ <netutil:parameters id="param4">
+ <nmwg:parameter name="interval">1</nmwg:parameter>
+ <nmwg:parameter name="valueUnits">octets</nmwg:parameter>
+ </netutil:parameters>
+
+ </nmwg:metadata>
+
+
+
+
+
+
+ <!-- The following methods deal with a factored
+ commonTime strategy.
+ -->
+
+ <nmwg:data id="data1" metadataIdRef="iumeta1">
+ <nmwg:commonTime type="unix" value="1107492095">
+ <netutil:datum value="234567890" valueUnits="octets"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <nmwg:data id="data2" metadataIdRef="iumeta1">
+ <nmwg:commonTime type="unix">
+ <nmtm:value>1107492095</nmtm:value>
+ <netutil:datum value="234567890" valueUnits="octets"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <nmwg:data id="data3" metadataIdRef="iumeta1">
+ <nmwg:commonTime type="interval" duration="30">
+ <nmtm:start type="unix" value="1107492095"/>
+ <netutil:datum value="234567890" valueUnits="octets"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <nmwg:data id="data4" metadataIdRef="iumeta1">
+ <nmwg:commonTime type="interval" duration="30">
+ <nmtm:start type="unix">
+ <nmtm:value>1107492095</nmtm:value>
+ </nmtm:start>
+ <netutil:datum value="234567890" valueUnits="octets"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <nmwg:data id="data5" metadataIdRef="iumeta1">
+ <nmwg:commonTime type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ <netutil:datum value="234567890" valueUnits="octets"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+ <nmwg:data id="data6" metadataIdRef="iumeta1">
+ <nmwg:commonTime type="range">
+ <nmtm:start type="unix">
+ <nmtm:value>1107492095</nmtm:value>
+ </nmtm:start>
+ <nmtm:end type="unix">
+ <nmtm:value>1107492095</nmtm:value>
+ </nmtm:end>
+ <netutil:datum value="234567890" valueUnits="octets"/>
+ </nmwg:commonTime>
+ </nmwg:data>
+
+
+ <!-- Inline everything for single items (not really good for
+ large groups) if you want to be compact.
+ -->
+ <nmwg:data id="data7" metadataIdRef="iumeta1">
+ <netutil:datum value="234567890" valueUnits="octets" timeType="unix"
timeValue="1021119880"/>
+ </nmwg:data>
+
+
+ <!-- If a commonTime is not applicable, and inlining time doesnt describe
+ the time well enough, make a time element be a child of each datum.
It
+ has a couple ways of being described
+ -->
+ <nmwg:data id="data8" metadataIdRef="iumeta1">
+ <netutil:datum value="234567890" valueUnits="octets">
+ <nmtm:time type="unix" value="1021119880" />
+ </netutil:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data9" metadataIdRef="iumeta1">
+ <netutil:datum value="234567890" valueUnits="octets">
+ <nmtm:time type="unix">
+ <nmtm:value>1021119880"</nmtm:value>
+ </nmtm:time>
+ </netutil:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data10" metadataIdRef="iumeta1">
+ <netutil:datum value="234567890" valueUnits="octets">
+ <nmtm:time type="interval" duration="30">
+ <nmtm:start type="unix" value="1107492095"/>
+ </nmtm:time>
+ </netutil:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data11" metadataIdRef="iumeta1">
+ <netutil:datum value="234567890" valueUnits="octets">
+ <nmtm:time type="interval" duration="30">
+ <nmtm:start type="unix">
+ <nmtm:value>1107492095</nmtm:value>
+ </nmtm:start>
+ </nmtm:time>
+ </netutil:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data12" metadataIdRef="iumeta1">
+ <netutil:datum value="234567890" valueUnits="octets">
+ <nmtm:time type="range">
+ <nmtm:start type="unix" value="1107492095"/>
+ <nmtm:end type="unix" value="1107492395"/>
+ </nmtm:time>
+ </netutil:datum>
+ </nmwg:data>
+
+ <nmwg:data id="data13" metadataIdRef="iumeta1">
+ <netutil:datum value="234567890" valueUnits="octets">
+ <nmtm:time type="range">
+ <nmtm:start type="unix">
+ <nmtm:value>1107492095</nmtm:value>
+ </nmtm:start>
+ <nmtm:end type="unix">
+ <nmtm:value>1107492395</nmtm:value>
+ </nmtm:end>
+ </nmtm:time>
+ </netutil:datum>
+ </nmwg:data>
+
+ <!-- result datum elements -->
+ <nmwg:data id="data14" metadataIdRef="iumeta1">
+ <nmwgr:datum type="error.iu.mp">eth0: error fetching interface
information: Device not found</nmwgr:datum>
+ </nmwg:data>
+
+</nmwg:message>
\end{verbatim}
-
-ormalsize
+\normalsize



  • nmwg: r383 - trunk/nmwg/doc/devguide, svnlog, 02/09/2009

Archive powered by MHonArc 2.6.16.

Top of Page