1 / 23

VLAN data model for NETCONF ( draft-iijima-ngo-vlandatamodel-00)

68 th IETF meeting NGO BoF. VLAN data model for NETCONF ( draft-iijima-ngo-vlandatamodel-00). Thursday, March 22, 2007 Tomoyuki Iijima, Kunihiko Toumura, Hideki Okita (Hitachi Central Research Lab) Yoshifumi Atarashi, Hiroyasu Kimura (Alaxala Networks). Proposed goals for NGO WG.

Télécharger la présentation

VLAN data model for NETCONF ( draft-iijima-ngo-vlandatamodel-00)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 68th IETF meeting NGO BoF VLAN data model for NETCONF (draft-iijima-ngo-vlandatamodel-00) Thursday, March 22, 2007 Tomoyuki Iijima, Kunihiko Toumura, Hideki Okita (Hitachi Central Research Lab) Yoshifumi Atarashi, Hiroyasu Kimura (Alaxala Networks)

  2. Proposed goals for NGO WG • Investigate NETCONF architecture which can collaborate with other operation sub-systems and application systems. • Publish guidelines for NETCONF application developers. • Publish data model over NETCONF to exchange configuration data between NETCONF applications and network devices.

  3. NETCONF data model • NETCONF standardization process has almost finished. • To discuss NETCONF data model, NGO (NETCONF Goes On) BoF was established after the 67th meeting. Content Configuration data Modeling has not been done. Operations <get-config>, <edit-config> RFC4741 RPC <rpc>, <rpc-reply> Transport Protocol SSH, SOAP, BEEP RFC4742, 4743, 4744 NETCONF layer

  4. Benefits of NETCONF data model • Interoperability • Vendors can exchange NETCONF message based on the defined data model. • Extensibility • If data modeling is done visually, it is easy to grasp the structure and relations of each configuration data, which makes it easier to append a new configuration data to the existing data model.

  5. Things to be considered regarding data model interoperability • Rough data model is enough • You can transform data model into another one, thanks to the features of XML technology. • XML schema • XSLT • Standardized XML parser available • Future extensibility has to be taken into account • There should be no compatibility problem by future extension.

  6. Network functions to be modeled • We extracted network functions to be modeled from a typical network. • Filtering (ACL) • Routing • Filtering (ACL) • Routing Internet Enterprise network ISP • Filtering (ACL) • VRRP VLAN Home

  7. Configuration data required to be incorporated • We incorporated following configuration data into each network function’s data model.

  8. association (has-a) inheritance (is-a) realization VLAN’s UML class diagram <<Interface>> IVlan • setLocator(Locator lctr) : void • getConfig() : short[] • getConfig(short id) : Vlan • getConfig(short[] ids) : Vlans • editConfigDelete(Vlan vlan) : void • editCOnfigMerge(Vlan vlan) : void Vlan • vlanid : short • vlanname : String • logicalIF : LogicalIF • assortmentPort : AssortmentPort LogicalIF • IPV4Address : IPV4Address[] • IPV6Address : IPV6Address[} IPV4Address IPV6Address AssortmentPort • value : IPAddress • value : IPAddress • portid : String[] • type : String TaggedPort ProtocolBasedPort MacBasedPort IpSubnetPort UntaggedPort • transtag : short • protocol : String[] • macAddress : • MacAddress[] • subNet : String[]

  9. VLAN’s APIs generated from UML

  10. VLAN’s XML schema, xsd format (1/4) <?xml version="1.0" encoding="utf-8" ?> <xs:schema id="onapi-datamodel_1.1" targetNamespace="urn:net:alaxala:oan:onapi:commons:netmod:1.1" xmlns:ncp="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:nm1_0="urn:net:alaxala:oan:onapi:commons:netmod:1.0" xmlns:nm1_1="urn:net:alaxala:oan:onapi:commons:netmod:1.1"> <xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0" schemaLocation="netconf-base_1.0.xsd"/> <xs:import namespace="urn:net:alaxala:oan:onapi:commons:netmod:1.0" schemaLocation="onapi-datamodel_1.0.xsd" /> <xs:complexType name="TaggedPortType"> <xs:complexContent> <xs:extension base="nm1_1:AssortmentPortType"> <xs:sequence> <xs:element name="TransTag" type="xs:integer" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="AssortmentPortType"> <xs:sequence> <xs:element ref="nm1_0:PortId" minOccurs="0" maxOccurs="unbounded"></xs:element> <xs:element name="Type" type="xs:string" /> </xs:sequence> </xs:complexType>

  11. VLAN’s XML schema, xsd format (2/4) <xs:complexType name="ProtocolBasedPortType"> <xs:complexContent> <xs:extension base="nm1_1:AssortmentPortType"> <xs:sequence> <xs:element name="Protocol" type="xs:string" maxOccurs="unbounded" minOccurs="0" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="MacBasedPortType"> <xs:complexContent> <xs:extension base="nm1_1:AssortmentPortType"> <xs:sequence> <xs:element name="MacAddress" type="nm1_0:MacAddress" maxOccurs="unbounded" minOccurs="0" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="IpSubnetPortType"> <xs:complexContent> <xs:extension base="nm1_1:AssortmentPortType"> <xs:sequence> <xs:element name="SubNet" type="xs:string" maxOccurs="unbounded" minOccurs="0" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>

  12. VLAN’s XML schema, xsd format (3/4) <xs:complexType name="UntaggedPortType"> <xs:complexContent> <xs:extension base="nm1_1:AssortmentPortType"> <xs:sequence /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="LogicalIF" type="nm1_0:LogicalIFType"/> <xs:element name="TaggedPort" type="nm1_1:TaggedPortType"></xs:element> <xs:element name="ProtocolBasedPort" type="nm1_1:ProtocolBasedPortType"/> <xs:element name="MacBasedPort" type="nm1_1:MacBasedPortType"/> <xs:element name="IpSubnetPort" type="nm1_1:IpSubnetPortType"/> <xs:element name="UntaggedPort" type="nm1_1:UntaggedPortType"/> <xs:element name="Vlans"> <xs:complexType> <xs:sequence> <xs:element ref="nm1_1:Vlan" maxOccurs="unbounded" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element>

  13. VLAN’s XML schema, xsd format (4/4) <xs:element name="Vlan" type="nm1_1:VlanType"></xs:element> <xs:complexType name="VlanType"> <xs:sequence> <xs:element ref="nm1_0:VlanId"></xs:element> <xs:element name="VlanName" type="xs:string" minOccurs="0" maxOccurs="1" /> <xs:element ref="nm1_1:LogicalIF" minOccurs="0" maxOccurs="1" /> <xs:element ref="nm1_1:TaggedPort" minOccurs="0" maxOccurs="1" /> <xs:element ref="nm1_1:ProtocolBasedPort" minOccurs="0" maxOccurs="1" /> <xs:element ref="nm1_1:MacBasedPort" minOccurs="0" maxOccurs="1" /> <xs:element ref="nm1_1:IpSubnetPort" minOccurs="0" maxOccurs="1" /> <xs:element ref="nm1_1:UntaggedPort" minOccurs="0" maxOccurs="1" /> </xs:sequence> <xs:attribute name="operation" type="ncp:editOperationType" /> </xs:complexType> <xs:simpleType name="VlanIdType"> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="4095"/> </xs:restriction> </xs:simpleType> </xs:schema>

  14. Expected issue in the NGO WG • Which schema should be used to express a data model? • Assumptions • Expected target users of data model • Network Operators • Network Management System Developers • Network Device Developers • Development efficiency is the most important point • XML Development Environment • Applicability to OOP concept

  15. Comparison between XSD and Relax NG • Available XML Development Environment • Developers/Operators use XML API and do not directly treat raw XML data. (Raw XML data is an intermediate expression for them) • Major Development Environment in Web app. world seem to support W3C Schema, not RelaxNG. • Applicability to OOP concept • OOP Language like C++ or Java is suitable for XML data processing. • JDK supports W3C Schema by default. Red: major development environments in the Web app. world

  16. NETCONF application example • VLAN assignment app. for video streaming Video Server VLAN 100 Operator using Configuration Application VLAN 100 assign by NETCONF request • Port 0/7 • Port VLAN NETCONF reply Configuration application implementing VLAN APIs User A

  17. Implementation example What developers write: What goes on wire: <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <rpc message-id="395"> <edit-config xsi:type="ns1:editConfigType" xmlns:ns1="urn:ietf:params:xml:ns:netconf:base:1.0"> <target> <running xmlns=""></running> </target> <config> <ns2:Vlans xmlns:ns2="urn:net:alaxala:oan:onapi:commons:netmod:1.0"> <ns2:Vlan operation="delete"> <VlanId xmlns="">0100</VlanId> <VlanName xmlns="">VLAN0100</VlanName> <TaggedPort xmlns=""> <PortId>port 0/7</PortId> <Type>UNTAGGED_PORT</Type> </TaggedPort> </ns2:Vlan> </ns2:Vlans> </config> </edit-config> </rpc> </rpc> </soapenv:Body> </soapenv:Envelope> public class AxConfig { private static short authedVlanId =100; // … public boolean setPortVlan(int portNum) { // … try { Vlan vlan = new Vlan(); vlan.setVlanid(authedVlanId); UntaggedPort utport = new UntaggedPort(); StringBuffer sb = new StringBuffer("port 0/"); sb.append(portNum); String[] strs = { sb.toString() }; utport.setPortid(strs); vlan.setUntaggedPort(utport); vlanImpl.editConfigMerge(vlan); } catch (Exception e) { // … } } }

  18. Implementation Example (cont.) What goes on wire (magnified one) <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <rpc message-id="395"> <edit-config xsi:type="ns1:editConfigType" xmlns:ns1="urn:ietf:params:xml:ns:netconf:base:1.0"> <target> <running xmlns=""></running> </target> <config> <ns2:Vlans xmlns:ns2="urn:net:alaxala:oan:onapi:commons:netmod:1.0"> <ns2:Vlan operation="delete"> <VlanId xmlns="">0100</VlanId> <VlanName xmlns="">VLAN0100</VlanName> <TaggedPort xmlns=""> <PortId>port 0/7</PortId> <Type>UNTAGGED_PORT</Type> </TaggedPort> </ns2:Vlan> </ns2:Vlans> </config> </edit-config> </rpc> </rpc> </soapenv:Body> </soapenv:Envelope>

  19. Proposal to INTAP/OSMIC • We proposed our data model to INTAP/OSMIC and it was accepted as a reference data model. • INTAP (Interoperability Technology Association for Information Processing) • Organization established by Japanese government. • Promote progress of information technologies. • OSMIC (Open Systems Management Industry Collaboration) • INTAP’s sub-committee. • Implement and evaluate interoperability among implementations of multiple vendors.

  20. Conclusion • We showed our VLAN data model as a reference in order to stimulate NETCONF data model discussion. • We would like to request this I-D to be accepted as an informational I-D for a future scope of NGO WG. • Let’s start NGO WG!!

  21. XML Tools References • Language Specifications • http://relaxng.org/ • http://www.w3.org/XML/Schema • Development Environments • http://relaxng.org/#software • http://xmlsoft.org/ • http://xerces.apache.org/

  22. XML schema shown on designing tool

  23. WSDL shown on designing tool

More Related