[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[NGO] Diff-Serv datamodel for discussion startpoint



Dear NGO members,


  I wrote a draft for the startpoint of NETCONF datamodel discussion.

	Title		: A NETCONF Datamodel for Diff-Serv QoS Control Configuration
	Author(s)	: H. Okita, T. Iijima and Y. Atarashi
	Filename	: draft-okita-ngo-diffservdatamodel-00.txt
	Pages		: 22
	Date		: 2007-2-27

  According to the datamodel discussion in San Diego, I made a NETCONF
Diff-Serv QoS datamodel under the RFC3290 "Informal Diff-Serv management
model" and tried to support the same set of configurable object defined
in RFC3289 "Diff-Serv MIB".  This draft includes an XML Schema and an 
example XML configuration data of the datamodel.

  I attach the XML Schema to this mail.  I hope comments and discussion
in Prague.


  Several points remaining are

- to follow inetAddress module that Andy has revised and posted to NGO ML.
- to support objects defined in RFC3289.
- to add explanation for each element in the draft and the XML Schema.

  And, several comments already stated are

- to make clear the sentence about the standpoint of this draft
- to move RowPointer issue section to the last of the proposal section.
- to fix editorial problem about normative and informative reference.


Regards,


Hideki Okita

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://netconfcentral.org/ncx";
	elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema";
	xmlns:ncx="http://netconfcentral.org/ncx"; xmlns:pref="http://netconfcentral.org/ncx/ncx";>

	<import namespace="http://netconfcentral.org/ncx/ncx"; schemaLocation="inetAddress.xsd"></import>
	<element name="diffServ" type="ncx:diffServType"></element>

	<complexType name="diffServType">
		<sequence>
			<element name="dataPath" type="ncx:dataPathType"
				maxOccurs="unbounded" minOccurs="1">
			</element>
			<element name="classifier" type="ncx:classifierType"
				maxOccurs="unbounded" minOccurs="0">
			</element>
			<element name="meter" type="ncx:meterType"
				maxOccurs="unbounded" minOccurs="0">
			</element>
			<element name="marker" type="ncx:markerType"
				maxOccurs="unbounded" minOccurs="0">
			</element>
			<element name="scheduler" type="ncx:schedulerType" maxOccurs="unbounded" minOccurs="0"></element>
			<element name="dropper" type="ncx:dropperType" maxOccurs="unbounded" minOccurs="0"></element>
		</sequence>
	</complexType>

	<complexType name="classifierType">
		<sequence>
			<element name="classifierUnit" type="ncx:classifierUnitType"
				maxOccurs="unbounded" minOccurs="1">
			</element>
		</sequence>
		<attribute name="name" type="ID" use="required"></attribute>
	</complexType>

	<complexType name="dataPathType">
		<sequence>
			<element name="ifIndex" type="int" maxOccurs="1"
				minOccurs="1">
			</element>
			<element name="ifDirection" maxOccurs="1" minOccurs="1">
				<simpleType>
					<restriction base="string">
						<enumeration value="in"></enumeration>
						<enumeration value="out"></enumeration>
					</restriction>
				</simpleType>
			</element>
			<element name="startElement" type="IDREF"
				maxOccurs="1" minOccurs="1">
			</element>
		</sequence>
		<attribute name="name" type="ID"></attribute>
	</complexType>

	<complexType name="classifierUnitType">
		<sequence>
			<element name="addrType" type="pref:InetAddressType"
				maxOccurs="1" minOccurs="0">
			</element>
			<element name="SrcAddr" type="pref:InetAddress"
				maxOccurs="1" minOccurs="0">
			</element>
			<element name="SrcPrefixLength"
				type="pref:InetAddressPrefixLength" maxOccurs="1" minOccurs="0">
			</element>
			<element name="DstAddr" type="pref:InetAddress"
				maxOccurs="1" minOccurs="0">
			</element>
			<element name="DstPrefixLength"
				type="pref:InetAddressPrefixLength" maxOccurs="1" minOccurs="0">
			</element>
			<element name="Dscp" maxOccurs="1" minOccurs="0"
				type="ncx:dscpType">
				<annotation>
					<documentation>
						A Differentiated Services Code-Point that may be
						used for marking a traffic stream.
					</documentation>
				</annotation>
			</element>
			<element name="Protocol" maxOccurs="1" minOccurs="0">
				<simpleType>
					<restriction base="string">
						<minLength value="0"></minLength>
						<maxLength value="255"></maxLength>
					</restriction>
				</simpleType>
			</element>
			<element name="DstL4PortMin" maxOccurs="1" minOccurs="0"
				type="pref:InetPortNumber">
			</element>
			<element name="DstL4PortMax" maxOccurs="1" minOccurs="0"
				type="pref:InetPortNumber">
			</element>
			<element name="SrcL4PortMin" type="pref:InetPortNumber"
				maxOccurs="1" minOccurs="0">
			</element>
			<element name="SrcL4PortMax" type="pref:InetPortNumber"
				maxOccurs="1" minOccurs="0">
			</element>
			<element name="nextElement" type="IDREF"
				maxOccurs="1" minOccurs="0">
			</element>
		</sequence>
		<attribute name="name" type="ID"></attribute>
	</complexType>

	<complexType name="markerType">
		<sequence>
			<element name="dscp" type="ncx:dscpType" maxOccurs="1"
				minOccurs="1">
			</element>
			<element name="nextElement" type="IDREF"
				maxOccurs="1" minOccurs="1">
			</element>
		</sequence>
		<attribute name="name" type="ID"></attribute>
	</complexType>

	<complexType name="meterType">
		<sequence>
            <element name="threshold" type="ncx:thresholdType" maxOccurs="unbounded" minOccurs="0"></element>
			<element name="nonConformOutputElement" type="IDREF"
				maxOccurs="1" minOccurs="1">
			</element>
		</sequence>
		<attribute name="name" type="ID"></attribute>
	</complexType>





	<simpleType name="dscpType">
		<restriction base="int">
			<minExclusive value="0"></minExclusive>
			<maxExclusive value="63"></maxExclusive>
		</restriction>
	</simpleType>












	<complexType name="schedulerType">
    	<sequence>
    		<element name="schedulingMethod" maxOccurs="1"
    			minOccurs="1">
    			<simpleType>
    				<restriction base="string">
    					<enumeration value="Priority"></enumeration>
    					<enumeration value="WRR"></enumeration>
    					<enumeration value="WFQ"></enumeration>
    				</restriction>
    			</simpleType>
    		</element>
            <element name="queueDropMethod" maxOccurs="1" minOccurs="1">
    			<simpleType>
    				<restriction base="string">
    					<enumeration value="taildrop"></enumeration>
    					<enumeration value="WRED"></enumeration>
    				</restriction>
    			</simpleType>
    		</element>
            <element name="queue" type="ncx:queueType"
    			maxOccurs="unbounded" minOccurs="1">
    		</element>
    		<element name="endElement" type="IDREF" maxOccurs="1"
    			minOccurs="1">
    		</element>
    	</sequence>
    	<attribute name="name" type="ID"></attribute>
    </complexType>

    <complexType name="queueType">
    	<sequence>
    		<element name="priority" type="int"></element>
    	</sequence>
    	<attribute name="name" type="ID"></attribute>
    </complexType>

    <complexType name="dropperType">
    	<attribute name="name" type="ID"></attribute>
    </complexType>

    <simpleType name="rateType">
    	<restriction base="string">
    		<pattern value="\d+[GMKk]?bps"></pattern>
    	</restriction>
    </simpleType>

    <complexType name="thresholdType">
    	<sequence>
    		<element name="rate" type="ncx:rateType"></element>
    		<element name="nextElement" type="IDREF"></element>
    	</sequence>
    </complexType>
</schema>
_______________________________________________
NGO mailing list
NGO at ietf.org
https://www1.ietf.org/mailman/listinfo/ngo