1 Weijing Chen [email protected] Keith Allen [email protected] XML Network Management Interface...

18
1 Weijing Chen [email protected] Keith Allen [email protected] XML Network Management Interface (draft-weijing-netconf- interface-01.txt) NETCONF Interim Sept 8-10, 2003

Transcript of 1 Weijing Chen [email protected] Keith Allen [email protected] XML Network Management Interface...

Page 1: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

1

Weijing [email protected]

Keith [email protected]

XML Network ManagementInterface

(draft-weijing-netconf-interface-01.txt)

NETCONF InterimSept 8-10, 2003

Page 2: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

2

Operating and Data Model XML Schema:Standard

CLIProprietary

Interface Components:

Protocol Operations: Message XML Schema

<get-request/get-response>,<perform-request/perform-response>,

<abort-request/abort-response>,<notif/notif-confirm>

Capabilities XML Schema

Protocol Transport:SOAP, WDSL, HTTP, BEEP, SSH

Operating XML Schema

More general purpose

More specific

Page 3: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

3

Processing Flow:

XML Schema Validato

r

XPath Parser

Protocol Message

Protocol Message

XML Schema

Operating/Data Model

XML Schema

Device Infoset

XML Document

Application

w/ XPath

w/o XPath

Error Condition

XSL Process

or

Web-based Application

XSL Template

Note: In additional to structured document (text), XML provides rich set of tools to easy application and presentation development.

Page 4: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

4

XML Schemas

Operations.XSDType:Action (nop/create/delete…)Category (all/config/state)

Element:get-request anyget-response anyperform-request anyperform-response anyabort-requestabort-response anynotif anynotif-confirm any

Capabilities.XSDElement:capabilities notification yes,no model-schema URLs notif-schema URLs

Operating.XSDElement:device candidate-config source locked-by any startup-config source locked-by any running-config source locked-by any named-config source content

Page 5: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

5

Protocol Operations: get

<get-request messageId="message id" category="all/config/state" subordinate="all/direct"/> ... any</get-request>

<get-response messageId="message id"> <error> <protocol-error code=""> ... any </protocol-error> <application-error code=""> ... any </application-error> </error> ... any</get-response>

Page 6: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

6

Protocol Operations: get config

<get-request messageId= "105" category="config" subordinate="all/direct" xmlns=operating.xsd/> <device> <running/startup/candidate xmlns=example.xsd> any </running/startup/candidate> </device></get-request>

<rpc message-id="105"> <get-config> <source> <running/startup/candidate> </source> <config xmlns=example.xsd> any </config> <format>text/xml</format> </get-config></rpc>

Page 7: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

7

Protocol Operations: get state

<get-request messageId= "105" category="state/all" subordinate="all/direct" xmlns=operating.xsd/> <device> <running/startup/candidate xmlns=example.xsd> any </running/startup/candidate> </device></get-request>

<rpc message-id="105"> <get-state> <state xmlns=example.xsd> any </state> <format>text/xml</format> </get-state></rpc>

Page 8: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

8

Protocol Operations: perform

<perform-request messageId="message id" transaction="stop-on-error/ continue-on-error/ rollback-on-error"/> ... any</perform-request>

<perform-response messageId="message id"> <error> <protocol-error code=""> ... any </protocol-error> <application-error code=""> ... any </application-error> </error> ... any</perform-response>

Page 9: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

9

Protocol Operations: perform (edit config)

<perform-request messageId="message id" transaction="stop-on-error/ continue-on-error/ rollback-on-error"/ xmlns=operating.xsd> <device> <running/startup/candidate xmlns=example.xsd> any </running/startup/candidate> </device></perform-request>

<rpc message-id="107"> <edit-config> <target> <running/startup/candidate> </target> <test-option> <test-then-set/set> </test-option> <error-option> <stop-on-error/ignore-error> <config xmlns=example.xsd any </config> </edit-config></rpc>

Page 10: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

10

Protocol Operations: abort

<abort-request messageId="message id of targeted request"/>

<abort-response messageId="message id of targeted request"> <error> <protocol-error code=""> ... any </protocol-error> <application-error code=""> ... any </application-error> </error> ... any</abort-response>

<rpc-abort message-id="102">

<rpc-abort-reply message-id="102">

Page 11: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

11

Protocol Operations: notification

<notif messageId="message id"> ... any</notif>

<notif-confirm messageId="message id"> <error> <protocol-error code=""> ... any </protocol-error> <application-error code=""> ... any </application-error> </error> ... any</notif-confirm>

<rpc message-id="122"> <open-notifications> <format>rfc3195</format> <matching>match-expression</matching> </open-notifications></rpc>

<rpc message-id="123"> <close-notifications/></rpc>

Page 12: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

12

Protocol Operations: copy config

<rpc message-id="108"> <copy-config> <source> <running/> </source> <target><url>ftp://example.com/configs/testbed-dec10.txt</url> </target> <format>text</format> </copy-config></rpc>

<perform-request messageId="message id" transaction="stop-on-error/ continue-on-error/ rollback-on-error"/ xmlns=operating.xsd> <device> <named-config action="copy"name="ftp://example.com/configs/testbed-dec10.txt"> <source> running </source> </named-config> </device></perform-request>

Page 13: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

13

Protocol Operations: delete config

<rpc message-id="108"> <delete-config> <target> <startup/> </target> </delete-config></rpc>

<perform-request messageId="message id" transaction="stop-on-error/ continue-on-error/ rollback-on-error"/ xmlns=operating.xsd> <device> <startup action="delete"> </startup> </device></perform-request>

Page 14: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

14

Protocol Operations: lock, unlock

<rpc message-id="120"> <lock> <target> <running/> </target> </lock></rpc>

<rpc message-id="121"> <unlock> <target> <running/> </target> </unlock></rpc>

<perform-request messageId="message id" transaction="stop-on-error/ continue-on-error/ rollback-on-error"/ xmlns=operating.xsd> <device> <running action="lock/unlock"> </running> </device></perform-request>

Page 15: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

15

Protocol Operations: commit, discard-change

<rpc message-id="113"> <commit/></rpc>

<rpc message-id="113"> <discard-change/></rpc>

<perform-request messageId="message id" transaction="stop-on-error/ continue-on-error/ rollback-on-error"/ xmlns=operating.xsd> <device> <candidate action="commit/discard-change"> </candidate> </device></perform-request>

Page 16: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

16

Protocol Operations: validate

<rpc message-id="118"> <validate> <candidate/> </validate></rpc>

<perform-request messageId="message id" transaction="stop-on-error/ continue-on-error/ rollback-on-error"/ xmlns=operating.xsd> <device> <candidate action="validate"> </candidate> </device></perform-request>

Page 17: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

17

Protocol Operations: rpc vs. request/response

<rpc> <get-config> <edit-config> <copy-config> <delete-config> <get-state> <kill-session>

<lock>, <unlock> <commit>, <discard-change> <validate>

<rpc-reply>

<rpc-abort>

<rpc-abort-reply>

<rpc-error>

<rpc-progress>

<get-request category="config"><perform-request><perform-request> <xxx-config action=copy><perform-request> <xxx-config action=delete><get-request category="state">no kill-session

<perform-request> <xxx-config action=lock, unlock><perform-request> <xxx-config action=commit, discard-change><perform-request> <xxx-config action=validate>

<get-response>, <perform-response><abort-request><abort-response><error> code in the response

no progress

Page 18: 1 Weijing Chen wchen@labs.sbc.com Keith Allen kallen@labs.sbc.com XML Network Management Interface (draft-weijing-netconf-interface-01.txt) NETCONF Interim.

18

This draft vs. WG I-D

• General vs. specific– No assumption about the device except it must be IP-capable. – Vs. Route-like device

• Explicit vs. implicit– Option is explicitly stated by XML schema.

• Operating.XSD

– Vs. option is implicitly inferred from URL.• <capabilities>

<capability>http://ietf.org/xmlconf/1.0/base</capability> <capability>http://ietf.org/xmlconf/1.0/base#lock</capability> <capability>http:/example.net/router/2.3/core#cool-feature</capability> </capabilities>

• Formal vs. informal– Protocol message can be validated by XML schema.– Vs. whether a device supports an option cannot be checked by XML schema.

It must be checked by upper layer application through capabilities URL inferring.