23
All Rights Reserved Copyright © 2007,Hitachi.Ltd. VLAN data model for NETCONF (draft-iijima-ngo-vlandatamodel-00) Thursday, March 22, 2007 Tomoyuki Iijima, Kunihiko Toumura, Hideki Oki ta (Hitachi Central Research Lab) Yoshifumi Atarashi, Hiroyasu Kimura (Alaxala Networks) 68 th IETF meeting NGO BoF

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

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

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)

68th IETF meeting NGO BoF

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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.

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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.

SSH, SOAP, BEEP

<rpc>, <rpc-reply>

<get-config>, <edit-config>

Configuration data

TransportProtocol

RPC

Operations

Content

NETCONF layer

Modeling has not been done.

RFC4741

RFC4742, 4743, 4744

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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.

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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.

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-6- Network functions to be modeled

• We extracted network functions to be modeled from a typical network.

Internet

ISP Enterprisenetwork

• Filtering (ACL)• VRRP

VLAN

• Filtering (ACL)• Routing

• Filtering (ACL)• Routing

Home

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-7-Configuration data required to be incorporated

• We incorporated following configuration data into each network function’s data model.

Function Configuration data

VLAN VLAN ID, VLAN name, etc.

Filtering (Access Control List)

Source IP addr, Destination IP addr, Source port, Destination port, etc.

Route Destination IP, Next hop address, etc.

Line Port ID, Speed, Line name, PoE, etc.

Link Aggregation Link Aggregation, Group ID, port ID list, etc.

Node Node name, Location, etc.

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-8-VLAN’s UML class diagram

Vlan

- vlanid : short- vlanname : String- logicalIF : LogicalIF- assortmentPort : AssortmentPort

TaggedPort

- transtag : short

ProtocolBasedPort

- protocol : String[]

MacBasedPort

- macAddress : MacAddress[]

IpSubnetPort

- subNet : String[]

UntaggedPort

AssortmentPort

- portid : String[]- type : String

LogicalIF

- IPV4Address : IPV4Address[]- IPV6Address : IPV6Address[}

<<Interface>> IVlan

- setLocator(Locator lctr) : void- getConfig() : short[]- getConfig(short id) : Vlan- getConfig(short[] ids) : Vlans- editConfigDelete(Vlan vlan) : void- editCOnfigMerge(Vlan vlan) : void

IPV4Address

- value : IPAddress

IPV6Address

- value : IPAddress

association (has-a)

inheritance (is-a)

realization

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-9-VLAN’s APIs generated from UML

Variables Method

VLAN ID setVlanid(short vlanid)

getVlanid()

VLAN name setVlanname(string vlanname)

getVlanname()

Tag VLAN setTaggedVlan(TaggedPort taggedPort)

getTaggedVlan()

Protocol VLAN setProtocolVlan(ProtocolBasedPort protocolBasedPort)

getProtocolVlan()

MAC VLAN setMacbasedVlan(MacbasedPort macBasedPort)

getMacbasedVlan()

Untagged VLAN setUntaggedVlan(UntaggedPort untaggedPort)

getUntaggedVlan()

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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>

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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" min

Occurs="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>

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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:el

ement> </xs:sequence> </xs:complexType> </xs:element>

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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>

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-15-Comparison between XSD and Relax NG

• Available XML Development Environment– Developers/Operators use XML API and do not directly treat raw XM

L 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.

W3C Schema (XSD) RelaxNG

Environments .NET, Apache Xerces (JDK), libxml2

libxml2, relaxer

Schema Editor Visual Studio, Eclipse, Oxygen Oxygen

Language C/C++, Java, Perl C, Java

Red: major development environments in the Web app. world

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-16-NETCONF application example

• VLAN assignment app. for video streaming

VLAN 100

Configuration application implementing VLAN APIs

VLAN 100 assignby NETCONF request

Operator usingConfiguration Application

Video Server

User A

Port 0/7• Port VLANNETCONF reply

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-17-Implementation example

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) {// …

}}

}

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/s

oap/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:ns

1="urn:ietf:params:xml:ns:netconf:base:1.0"> <target> <running xmlns=""></running> </target> <config> <ns2:Vlans xmlns:ns2="urn:net:alaxala:oan:ona

pi:commons:netmod:1.0"> <ns2:Vlan operation="delete"> <VlanId xmlns="">0100</VlanId> <VlanName xmlns="">VLAN0100</VlanNam

e> <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>

What developers write: What goes on wire:

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-18-Implementation Example (cont.)

<?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>

What goes on wire (magnified one)

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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 implementati

ons of multiple vendors.

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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!!

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-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/

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-22-XML schema shown on designing tool

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

All Rights Reserved Copyright © 2007,Hitachi.Ltd.

-23-WSDL shown on designing tool