5. 許容される。パラメーターはdateTime型でRFC3339に準拠する。タイムゾー
ンをサポートすること。
Positive Response デバイスがrequestを完了できた場合、<ok>elementを含む
<rpc-reply>が送信される。
Negative Response デバイスがrequestを完了できない場合、<rpc-error>elementが
<rpc-reply>に含まれる。無効な構文のフィルタが存在する場合、存在しない
streamが指定されている場合、subscriptionのrequestは失敗する。
<startTime>を指定せ
ずに<stopTime>を指
定した場合
Tag:missing-element
Error-type: protocol
Severity: error
Error-info: <bad-element>: startTime
Description: An expected element is missing.
NETCONFサーバーが
replay機能をサポート
していない場合
Tag: operation-failed
Error-type: protocol
Severity: error
Error-info: none
Description: Request could not be completed because the
requested operation failed for some reason not covered by
any other error condition.
<stopTime>が
<startTime>より前の
時刻の場合
Tag: bad-element
Error-type: protocol
Severity: error
Error-info: <bad-element>: stopTime
Description: An element value is not correct; e.g., wrong
type, out of range, pattern mismatch.
<startTime>が現在時
刻よりも後の場合
Tag: bad-element
Error-type: protocol
Severity: error
Error-info: <bad-element>: startTime
Description: An element value is not correct; e.g., wrong
type, out of range, pattern mismatch.
Example
複雑な例はsection 5参照。
<netconf:rpc message-id="101"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0">
<create-subscription
xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
</create-subscription>
</netconf:rpc>
2.2. Sending Event Notifications
Subscriptionが設定されると、NETCONFサーバーはイベントnotificationを非同期に送信する。
2.1.1. <notification>
名前 notification
概要 所望のイベント、つまり指定されたフィルタ条件を満たすイベントが発生し
たときに非同期に<create-subscription> operationを実行したクライ
アントにイベントnotificationが送信される。イベントnotificationは
wll-formed XMLである。<notification>はRPCメソッドではなく、片方
5
10. Replayのログのサイズ、フォーマットに制限はない。Streamがreplayをサポートするかどうかは、<streams>elementに
<get>operationし、<replaySupport>objectの値を調べることで確認できる。このスキーマは利用可能な最も古い
notificationを示す<replayLogCreationTime>elementも提供する。
#こんな感じでわかる
<replaySupport>true</replaySupport>
<replayLogCreationTime>
2007-07-08T00:00:00Z
</replayLogCreationTime>
3.3.2. Creating a Subscription with Replay
この機能は<startTime>、<stopTime>という<create-subscription>operationのオプションパラメーターを使用す
る。<startTime>はイベントnotificationがreplayされる最古の時刻を設定し、replayを実施することを示す。この時刻
より前に生成されたイベントはマッチしない。<stopTime>はイベントnotificationがreplayされる最新の時刻を指定する。
存在しない場合、subscriptionが終了するまで送信され続ける。
<startTime>と<stopTime>はイベントが生成された時刻に関連付くことに注意せよ。
<replayComplete>notificationは全てのreplay notificationが送信されたことを示すために送信される。
SubscriptionにstopTimeがある場合、そのセッションは通常のNETCONFセッションに戻り、NETCONFサーバーは
<rpc>operationを受け入れる。Stoptimeのないsubscriptionの場合、<replayComplete>が送信された時点で
subscription開始以降に生成された全てのnotificationが送信され、以降も発生したnotificationが送信される。
<replayComplete> notificationと<notificationComplete> notificationは省略できず、replay
subscriptionでは必ず送信される。
3.4. Notification Management Schema
このスキーマはシステムでサポートされているイベントstreamを確認するための例として使用される。<replayComplete>
notificationと<notificationComplete>notificationの定義も含まれる。これらのnotificationはイベント
replayが適用可能な全てのnotificationを送信し、subscriptionが終了したことを示す。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns:ncEvent="urn:ietf:params:xml:ns:netconf:notification:1.0"
xmlns:manageEvent="urn:ietf:params:xml:ns:netmod:notification"
targetNamespace="urn:ietf:params:xml:ns:netmod:notification"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xml:lang="en" version="1.0">
<xs:annotation>
<xs:documentation xml:lang="en">
A schema that can be used to learn about current
event streams. It also contains the replayComplete
and notificationComplete notification.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0"
schemaLocation="netconf.xsd"/>
<xs:import namespace=
10
11. "urn:ietf:params:xml:ns:netconf:notification:1.0"
schemaLocation="notification.xsd"/>
<xs:element name="netconf" type="manageEvent:Netconf"/>
<xs:complexType name="Netconf">
<xs:sequence>
<xs:element name="streams" > #システムがサポートするstreamのリスト
<xs:annotation>
<xs:documentation>
The list of event streams supported by the
system. When a query is issued, the returned
set of streams is determined based on user
privileges.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="stream"> #stream
<xs:annotation>
<xs:documentation>
Stream name, description, and other information.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="name"
type="ncEvent:streamNameType"> #stream名
<xs:annotation>
<xs:documentation>
The name of the event stream. If this is
the default NETCONF stream, this must have
the value "NETCONF".
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description"
type="xs:string">#streamのdescription
<xs:annotation>
<xs:documentation>
A description of the event stream, including
such information as the type of events that
are sent over this stream.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="replaySupport"
type="xs:boolean">#replayのサポート有無
<xs:annotation>
<xs:documentation>
An indication of whether or not event replay
is available on this stream.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="replayLogCreationTime"
11
12. type="xs:dateTime" minOccurs="0">#ログが作成された時刻。最古の
ログより古い場合があることに注意せよ。ログがリセットされたときに更新される。Replayをサポートする場合は必須(MUST
)。
<xs:annotation>
<xs:documentation>
The timestamp of the creation of the log
used to support the replay function on
this stream.
Note that this might be earlier then
the earliest available
notification in the log. This object
is updated if the log resets
for some reason. This
object MUST be present if replay is
supported.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="replayLogAgedTime"
type="xs:dateTime" minOccurs="0">#ログの最新のnotification時刻。
Replayをサポートする場合でログの最新のnotification時刻が更新された場合は必須(MUST)。
<xs:annotation>
<xs:documentation>
The timestamp of the last notification
aged out of the log. This
object MUST be present if replay is
supported and any notifications
have been aged out of the log.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReplayCompleteNotificationType">
<xs:complexContent>
<xs:extension base="ncEvent:NotificationContentType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="replayComplete"
type="manageEvent:ReplayCompleteNotificationType"
substitutionGroup="ncEvent:notificationContent"> #subscriptionのreplayが終了したことを示
す。
<xs:annotation>
<xs:documentation>
This notification is sent to signal the end of a replay
portion of a subscription.
</xs:documentation>
</xs:annotation>
12
13. </xs:element>
<xs:complexType name="NotificationCompleteNotificationType">
<xs:complexContent>
<xs:extension base="ncEvent:NotificationContentType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="notificationComplete"
type="manageEvent:NotificationCompleteNotificationType"
substitutionGroup="ncEvent:notificationContent">#notification subscriptionが終了したこ
とを示す。stopTimeが設定された場合に送信される。
<xs:annotation>
<xs:documentation>
This notification is sent to signal the end of a
notification subscription. It is sent in the case
that stopTime was specified during the creation of
the subscription.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>
3.5. Subscriptions Data
Subscriptionは永続的ではないstate informationで、セッションまたは<stopTime>により定義される。
3.6. Filter Mechanics
特定のデータを抽出するためにfilter elementが設定され、その値がイベントnotificationに存在しない場合、
notificationは除外される。例えば、'severity=critical'が設定されていた場合にイベントnotificationに該当項目
がない場合、notificationは除外される。
サブツリーフィルタリングの場合、空でないnodeは一致するフィルタであることを意味する。XPathフィルタリングの場合、
XPathで定義されたメカニズムにより返った値をbool型に変換する。
3.6.1. Filtering
イベントnotification subscriptionが作成時にフィルタリングが明示的に'filter'パラメーターで設定される。
3.7. Message Flow
以下の図はsubscriptionを作成し、notification送受信を開始するためのNETCONFクライアントとNETCONFサーバーの間
のメッセージフローである。このsubscriptionでは<startTime>を設定するため、サーバーはログに記録された
notificationをreplayする。Subscriptionが作成される前に他にもrpc/rpc-replyが発生する可能性があるが、図では
省略している。
13
15. 4. XML Schema for Event Notifications
NETCONF Event NotificationのXMLスキーマである。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"
xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
targetNamespace=
"urn:ietf:params:xml:ns:netconf:notification:1.0"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xml:lang="en">
<!-- import standard XML definitions -->
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd">
<xs:annotation>
<xs:documentation>
This import accesses the xml: attribute groups for the
xml:lang as declared on the error-message element.
</xs:documentation>
</xs:annotation>
</xs:import>
<!-- import base netconf definitions -->
<xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0"
schemaLocation="netconf.xsd"/>
<!-- ************** Symmetrical Operations ********************-->
<!-- <create-subscription> operation -->
<xs:complexType name="createSubscriptionType">
<xs:complexContent>
<xs:extension base="netconf:rpcOperationType">
<xs:sequence>
<xs:element name="stream"
type="streamNameType" minOccurs="0">
<xs:annotation>
<xs:documentation>
An optional parameter that indicates
which stream of events is of interest.
If not present, then events in the
default NETCONF stream will be sent.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="filter"
type="netconf:filterInlineType"
minOccurs="0">
<xs:annotation>
<xs:documentation>
An optional parameter that indicates
15
16. which subset of all possible events
is of interest. The format of this
parameter is the same as that of the
filter parameter in the NETCONF
protocol operations. If not
present, all events not precluded
by other parameters will be sent.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="startTime" type="xs:dateTime"
minOccurs="0" >
<xs:annotation>
<xs:documentation>
A parameter used to trigger the replay
feature indicating that the replay
should start at the time specified. If
start time is not present, this is not a
replay subscription.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="stopTime" type="xs:dateTime"
minOccurs="0" >
<xs:annotation>
<xs:documentation>
An optional parameter used with the
optional replay feature to indicate the
newest notifications of interest. If
stop time is not present, the
notifications will continue until the
subscription is terminated. Must be
used with startTime.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="streamNameType">
<xs:annotation>
<xs:documentation>
The name of an event stream.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:element name="create-subscription"
type="createSubscriptionType"
substitutionGroup="netconf:rpcOperation">
<xs:annotation>
<xs:documentation>
The command to create a notification subscription. It
takes as argument the name of the notification stream
and filter. Both of those options
16
17. limit the content of the subscription. In addition,
there are two time-related parameters, startTime and
stopTime, which can be used to select the time interval
of interest to the notification replay feature.
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- ************** One-way Operations ******************-->
<!-- <Notification> operation -->
<xs:complexType name="NotificationContentType"/>
<xs:element name="notificationContent"
type="NotificationContentType" abstract="true"/>
<xs:complexType name="NotificationType">
<xs:sequence>
<xs:element name="eventTime" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
The time the event was generated by the event source.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="notificationContent"/>
</xs:sequence>
</xs:complexType>
<xs:element name="notification" type="NotificationType"/>
</xs:schema>
5. Filtering Examples
イベントnotification subscriptionでコンテンツをフィルタリングする方法の例を示す。
フィルタの説明をするためにイベントnotification コンテンツの例を示す。以下の例では、イベントnotificationスキー
マ定義がイベントクラス(例:障害、状態、config)、エンティティ、severity、operational stateをもち、最上位レベ
ルに<event> elementをもつと仮定する。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://example.com/event/1.0"
xmlns="http://example.com/event/1.0"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ncEvent="urn:ietf:params:xml:ns:netconf:notification:1.0">
<xs:import namespace=
"urn:ietf:params:xml:ns:netconf:notification:1.0"
schemaLocation="notification.xsd"/>
<xs:complexType name="eventType">
<xs:complexContent>
17