draft-ietf-netconf-notification-10.txt   draft-ietf-netconf-notification-11.txt 
Network Working Group S. Chisholm Network Working Group S. Chisholm
Internet-Draft Nortel Internet-Draft Nortel
Intended status: Standards Track H. Trevino Intended status: Standards Track H. Trevino
Expires: April 19, 2008 Cisco Expires: May 14, 2008 Cisco
October 17, 2007 November 11, 2007
NETCONF Event Notifications NETCONF Event Notifications
draft-ietf-netconf-notification-10.txt draft-ietf-netconf-notification-11.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 34 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 19, 2008. This Internet-Draft will expire on May 14, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This document defines mechanisms that provide an asynchronous message This document defines mechanisms that provide an asynchronous message
notification delivery service for the NETCONF protocol. This is an notification delivery service for the NETCONF protocol. This is an
optional capability built on top of the base NETCONF definition. optional capability built on top of the base NETCONF definition.
skipping to change at page 3, line 13 skipping to change at page 3, line 13
6.4. New Operations . . . . . . . . . . . . . . . . . . . . . . 35 6.4. New Operations . . . . . . . . . . . . . . . . . . . . . . 35
6.5. Modifications to Existing Operations . . . . . . . . . . . 35 6.5. Modifications to Existing Operations . . . . . . . . . . . 35
7. Security Considerations . . . . . . . . . . . . . . . . . . . 36 7. Security Considerations . . . . . . . . . . . . . . . . . . . 36
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 38 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 38
10. Normative References . . . . . . . . . . . . . . . . . . . . . 39 10. Normative References . . . . . . . . . . . . . . . . . . . . . 39
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 40 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 40
A.1. Version -08 . . . . . . . . . . . . . . . . . . . . . . . 40 A.1. Version -08 . . . . . . . . . . . . . . . . . . . . . . . 40
A.2. Version -09 . . . . . . . . . . . . . . . . . . . . . . . 42 A.2. Version -09 . . . . . . . . . . . . . . . . . . . . . . . 42
A.3. Version -10 . . . . . . . . . . . . . . . . . . . . . . . 44 A.3. Version -10 . . . . . . . . . . . . . . . . . . . . . . . 44
A.4. Version -11 . . . . . . . . . . . . . . . . . . . . . . . 44
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45
Intellectual Property and Copyright Statements . . . . . . . . . . 46 Intellectual Property and Copyright Statements . . . . . . . . . . 46
1. Introduction 1. Introduction
[NETCONF] can be conceptually partitioned into four layers: [NETCONF] can be conceptually partitioned into four layers:
Layer Example Layer Example
+-------------+ +-------------------------------------------+ +-------------+ +-------------------------------------------+
| Content | | Configuration data | | Content | | Configuration data |
skipping to change at page 9, line 44 skipping to change at page 9, line 44
out of range, pattern mismatch. out of range, pattern mismatch.
2.1.1.1. Usage Example 2.1.1.1. Usage Example
The following demonstrates creating a simple subscription. More The following demonstrates creating a simple subscription. More
complex examples can be found in section 5. complex examples can be found in section 5.
<netconf:rpc message-id="101" <netconf:rpc message-id="101"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"/> xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"/>
<create-subscription <create-subscription
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
</create-subscription> </create-subscription>
</netconf:rpc> </netconf:rpc>
2.2. Sending Event Notifications 2.2. Sending Event Notifications
Once the subscription has been set up, the NETCONF server sends the Once the subscription has been set up, the NETCONF server sends the
event notifications asynchronously over the connection. event notifications asynchronously over the connection.
2.2.1. <notification> 2.2.1. <notification>
skipping to change at page 17, line 49 skipping to change at page 17, line 49
This Schema is used to learn about the event streams supported on the This Schema is used to learn about the event streams supported on the
system. It also contains the definition of the <replayComplete> and system. It also contains the definition of the <replayComplete> and
<notificationComplete> notifications, which are sent to indicate that <notificationComplete> notifications, which are sent to indicate that
an event replay has sent all applicable notifications and that the an event replay has sent all applicable notifications and that the
subscription has terminated, respectively. subscription has terminated, respectively.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns:ncEvent="urn:ietf:params:netconf:capability:notification:1.0" xmlns:ncEvent="urn:ietf:params:xml:ns:netconf:notification:1.0"
xmlns:manageEvent="urn:ietf:params:xml:ns:netmod:notification" xmlns:manageEvent="urn:ietf:params:xml:ns:netmod:notification"
targetNamespace="urn:ietf:params:xml:ns:netmod:notification" targetNamespace="urn:ietf:params:xml:ns:netmod:notification"
elementFormDefault="qualified" elementFormDefault="qualified"
attributeFormDefault="unqualified" attributeFormDefault="unqualified"
xml:lang="en" version="1.0"> xml:lang="en" version="1.0">
<xs:annotation> <xs:annotation>
<xs:documentation xml:lang="en"> <xs:documentation xml:lang="en">
A schema that can be used to learn about current A schema that can be used to learn about current
event streams. It also contains the replayComplete event streams. It also contains the replayComplete
and notificationComplete notification. and notificationComplete notification.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" <xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/> schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0" <xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0"
schemaLocation= schemaLocation=
"http://www.iana.org/assignments/xml-registry/schema/netconf.xsd"/> "http://www.iana.org/assignments/xml-registry/schema/netconf.xsd"/>
<xs:import namespace= <xs:import namespace=
"urn:ietf:params:netconf:capability:notification:1.0" "urn:ietf:params:xml:ns:netconf:notification:1.0"
schemaLocation= schemaLocation=
"http://www.iana.org/assignments/xml-registry/schema/notification.xsd"/> "http://www.iana.org/assignments/xml-registry/schema/notification.xsd"/>
<!-- The above schemaLocation value is a placeholder and the actual <!-- The above schemaLocation value is a placeholder and the actual
value will be assigned by IANA --> value will be assigned by IANA -->
<xs:element name="netconf" type="manageEvent:Netconf"/> <xs:element name="netconf" type="manageEvent:Netconf"/>
<xs:complexType name="Netconf"> <xs:complexType name="Netconf">
<xs:sequence> <xs:sequence>
<xs:element name="streams" > <xs:element name="streams" >
skipping to change at page 29, line 13 skipping to change at page 29, line 13
state. state.
Examples in this section are generated from the following fictional Examples in this section are generated from the following fictional
Schema. Schema.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://example.com/event/1.0" <xs:schema targetNamespace="http://example.com/event/1.0"
xmlns="http://example.com/event/1.0" xmlns="http://example.com/event/1.0"
elementFormDefault="qualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ncEvent="urn:ietf:params:netconf:capability:notification:1.0"> xmlns:ncEvent="urn:ietf:params:xml:ns:netconf:notification:1.0">
<xs:import namespace= <xs:import namespace=
"urn:ietf:params:netconf:capability:notification:1.0" "urn:ietf:params:xml:ns:netconf:notification:1.0"
schemaLocation= schemaLocation=
"http://www.iana.org/assignments/xml-registry/schema/notification.xsd"/> "http://www.iana.org/assignments/xml-registry/schema/notification.xsd"/>
<xs:complexType name="eventType"> <xs:complexType name="eventType">
<xs:complexContent> <xs:complexContent>
<xs:extension base="ncEvent:NotificationContentType"> <xs:extension base="ncEvent:NotificationContentType">
<xs:sequence> <xs:sequence>
<xs:element name="eventClass" /> <xs:element name="eventClass" />
<xs:element name="reportingEntity"> <xs:element name="reportingEntity">
<xs:complexType> <xs:complexType>
skipping to change at page 31, line 6 skipping to change at page 31, line 6
type="eventType" type="eventType"
substitutionGroup="ncEvent:notificationContent"/> substitutionGroup="ncEvent:notificationContent"/>
</xs:schema> </xs:schema>
The above fictional notification definition could result in the The above fictional notification definition could result in the
following is a sample notification list, which is used in the following is a sample notification list, which is used in the
examples in this section. examples in this section.
<notification <notification
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<eventTime>2007-07-08T00:01:00Z</eventTime> <eventTime>2007-07-08T00:01:00Z</eventTime>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>fault</eventClass> <eventClass>fault</eventClass>
<reportingEntity> <reportingEntity>
<card>Ethernet0</card> <card>Ethernet0</card>
</reportingEntity> </reportingEntity>
<severity>major</severity> <severity>major</severity>
</event> </event>
</notification> </notification>
<notification <notification
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<eventTime>2007-07-08T00:02:00Z</eventTime> <eventTime>2007-07-08T00:02:00Z</eventTime>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>fault</eventClass> <eventClass>fault</eventClass>
<reportingEntity> <reportingEntity>
<card>Ethernet2</card> <card>Ethernet2</card>
</reportingEntity> </reportingEntity>
<severity>critical</severity> <severity>critical</severity>
</event> </event>
</notification> </notification>
<notification <notification
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<eventTime>2007-07-08T00:04:00Z</eventTime> <eventTime>2007-07-08T00:04:00Z</eventTime>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>fault</eventClass> <eventClass>fault</eventClass>
<reportingEntity> <reportingEntity>
<card>ATM1</card> <card>ATM1</card>
</reportingEntity> </reportingEntity>
<severity>minor</severity> <severity>minor</severity>
</event> </event>
</notification> </notification>
<notification <notification
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<eventTime>2007-07-08T00:10:00Z</eventTime> <eventTime>2007-07-08T00:10:00Z</eventTime>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>state</eventClass> <eventClass>state</eventClass>
<reportingEntity> <reportingEntity>
<card>Ethernet0</card> <card>Ethernet0</card>
</reportingEntity> </reportingEntity>
<operState>enabled</operState> <operState>enabled</operState>
</event> </event>
</notification> </notification>
skipping to change at page 32, line 25 skipping to change at page 32, line 25
The following example illustrates how to select fault events which The following example illustrates how to select fault events which
have severities of critical, major, or minor. The filtering criteria have severities of critical, major, or minor. The filtering criteria
evaluation is as follows: evaluation is as follows:
((fault & severity=critical) | (fault & severity=major) | (fault & ((fault & severity=critical) | (fault & severity=major) | (fault &
severity=minor)) severity=minor))
<netconf:rpc netconf:message-id="101" <netconf:rpc netconf:message-id="101"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"> xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0">
<create-subscription <create-subscription
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<filter netconf:type="subtree"> <filter netconf:type="subtree">
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>fault</eventClass> <eventClass>fault</eventClass>
<severity>critical</severity> <severity>critical</severity>
</event> </event>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>fault</eventClass> <eventClass>fault</eventClass>
<severity>major</severity> <severity>major</severity>
</event> </event>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
skipping to change at page 33, line 8 skipping to change at page 33, line 8
The following example illustrates how to select state or config The following example illustrates how to select state or config
EventClasses or fault events that are related to card Ethernet0. The EventClasses or fault events that are related to card Ethernet0. The
filtering criteria evaluation is as follows: filtering criteria evaluation is as follows:
( state | config | ( fault & ( card=Ethernet0))) ( state | config | ( fault & ( card=Ethernet0)))
<netconf:rpc netconf:message-id="101" <netconf:rpc netconf:message-id="101"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"> xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0">
<create-subscription <create-subscription
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<filter netconf:type="subtree"> <filter netconf:type="subtree">
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>state</eventClass> <eventClass>state</eventClass>
</event> </event>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>config</eventClass> <eventClass>config</eventClass>
</event> </event>
<event xmlns="http://example.com/event/1.0"> <event xmlns="http://example.com/event/1.0">
<eventClass>fault</eventClass> <eventClass>fault</eventClass>
<reportingEntity> <reportingEntity>
skipping to change at page 33, line 38 skipping to change at page 33, line 38
The following [XPATH] example illustrates how to select fault The following [XPATH] example illustrates how to select fault
EventClass notifications that have severities of critical, major, or EventClass notifications that have severities of critical, major, or
minor. The filtering criteria evaluation is as follows: minor. The filtering criteria evaluation is as follows:
((fault) & ((severity=critical) | (severity=major) | (severity = ((fault) & ((severity=critical) | (severity=major) | (severity =
minor))) minor)))
<netconf:rpc netconf:message-id="101" <netconf:rpc netconf:message-id="101"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"> xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0">
<create-subscription <create-subscription
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<filter netconf:type="xpath" <filter netconf:type="xpath"
xmlns:ex="http://example.com/event/1.0" xmlns:ex="http://example.com/event/1.0"
select="/ex:event[ex:eventClass='fault' and select="/ex:event[ex:eventClass='fault' and
(ex:severity='minor' or ex:severity='major' (ex:severity='minor' or ex:severity='major'
or ex:severity='critical')]"/> or ex:severity='critical')]"/>
</create-subscription> </create-subscription>
</netconf:rpc> </netconf:rpc>
The following example illustrates how to select state and config The following example illustrates how to select state and config
EventClasses or fault events of any severity that come from card EventClasses or fault events of any severity that come from card
Ethernet0. The filtering criteria evaluation is as follows: Ethernet0. The filtering criteria evaluation is as follows:
( state | config | (fault & card=Ethernet0)) ( state | config | (fault & card=Ethernet0))
<netconf:rpc message-id="101" <netconf:rpc message-id="101"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"> xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0">
<create-subscription <create-subscription
xmlns="urn:ietf:params:netconf:capability:notification:1.0"> xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
<filter netconf:type="xpath" <filter netconf:type="xpath"
xmlns:ex="http://example.com/event/1.0" xmlns:ex="http://example.com/event/1.0"
select="/ex:event[ select="/ex:event[
(ex:eventClass='state' or ex:eventClass='config') or (ex:eventClass='state' or ex:eventClass='config') or
((ex:eventClass='fault' and ex:card='Ethernet0'))]"/> ((ex:eventClass='fault' and ex:card='Ethernet0'))]"/>
</create-subscription> </create-subscription>
</netconf:rpc> </netconf:rpc>
6. Interleave Capability 6. Interleave Capability
6.1. Description 6.1. Description
The Interleave capability indicates that the NETCONF peer supports The Interleave capability indicates that the NETCONF peer supports
the ability to interleave other NETCONF operations within a the ability to interleave other NETCONF operations within a
Notification subscription. This means the NETCONF server is able to Notification subscription. This means the NETCONF server MUST
receive, process and respond to NETCONF requests on a session with an receive, process and respond to NETCONF requests on a session with an
active notification subscription. active notification subscription.
6.2. Dependencies 6.2. Dependencies
This capability is dependant on the notification capability being This capability is dependant on the notification capability being
supported. supported.
6.3. Capability Identifier 6.3. Capability Identifier
skipping to change at page 35, line 42 skipping to change at page 35, line 42
When a <create-subscription> is sent while another subscription is When a <create-subscription> is sent while another subscription is
active on that session, the following error will be returned: active on that session, the following error will be returned:
Tag: operation-failed Tag: operation-failed
Error-type: protocol Error-type: protocol
Severity: error Severity: error
Error-info: <bad-element>: startTime Error-info: none
Description: Request could not be completed because the requested Description: Request could not be completed because the requested
operation failed for some reason not covered by any other error operation failed for some reason not covered by any other error
condition. condition.
7. Security Considerations 7. Security Considerations
The security considerations from the base [NETCONF] document also The security considerations from the base [NETCONF] document also
apply to the Notification capability. apply to the Notification capability.
skipping to change at page 45, line 5 skipping to change at page 44, line 41
future. future.
2. Added interleave capability 2. Added interleave capability
3. Clarified create-subscription error messages. 3. Clarified create-subscription error messages.
4. Corrected targetNamespace in Netconf Notification XSD 4. Corrected targetNamespace in Netconf Notification XSD
5. Fixed typos and made minor edits. 5. Fixed typos and made minor edits.
A.4. Version -11
1. Fixed namespaces
2. In section 6.5, fixed error message Error-info
3. In section 6.1 clarify that if the interleave capability is
supported, then the server must respond to requests.
Authors' Addresses Authors' Addresses
Sharon Chisholm Sharon Chisholm
Nortel Nortel
3500 Carling Ave 3500 Carling Ave
Nepean, Ontario K2H 8E9 Nepean, Ontario K2H 8E9
Canada Canada
Email: schishol@nortel.com Email: schishol@nortel.com
 End of changes. 21 change blocks. 
19 lines changed or deleted 30 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/