Patent Description:
This section is intended to provide a background to the various embodiments of the technology described in this disclosure. The description in this section may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and/or claims of this disclosure and is not admitted to be prior art by the mere inclusion in this section.

The NETCONF protocol is a network management protocol developed and standardized by the Internet Engineering Task Force (IETF). It provides mechanisms to install, manipulate, and delete the configuration of network devices. Its operations are realized on top of a simple Remote Procedure Call (RPC) layer. The NETCONF protocol uses an Extensible Markup Language (XML) based data encoding for the configuration data as well as the protocol messages. The protocol messages are exchanged on top of a secure transport protocol.

The NETCONF protocol uses a simple RPC-based mechanism to facilitate communication between a client (also referred to as a NETCONF client) and a server (also referred to as a NETCONF server). The client can be a script or application typically running as part of a network manager. The server is typically a network device. The terms "device" and "server" are used interchangeably in this document, as are "client" and "application".

<FIG> illustrates a structure diagram of the NETCONF protocol. As shown in <FIG>, the NETCONF protocol can be conceptually partitioned into four layers: a Content layer, an Operations layer, a RPC layer and a Transport layer. The Transport layer provides a communication path between a client and a server. The RPC layer provides a simple, transport-independent framing mechanism for encoding RPCs. The Operations layer defines a set of base protocol operations to retrieve and edit the configuration data. The base operations may be invoked as RPC methods with XML-encoded parameters. The Content layer consists of configuration data and notification data.

The NETCONF Data Modeling Language (NETMOD) Working Group has completed work to define a "human-friendly" modeling language for defining the semantics of operational data, configuration data, notifications, and operations, called YANG. YANG is defined in RFC <NUM>, and is accompanied by the "Common YANG Data Types" found in RFC <NUM>. YANG is a data modeling language used to model configuration and state data manipulated by the NETCONF protocol, NETCONF remote procedure calls, and NETCONF notifications.

A Yang module has been defined to allow a NETCONF client to receive notifications for some common system events. The YANG module specifies a small number of event notification messages for use within the 'NETCONF' stream, and accessible to clients via the subscription mechanism described in [RFC5277].

These notifications pertain to configuration and monitoring portions of the managed system, not the entire system. A server MUST report events that are directly related to the NETCONF protocol. A server MAY report events for non-NETCONF management sessions, using the 'session-id' value of zero. This module defines a notification (i.e., the "netconf-config-change" notification) for the 'NETCONF' stream to notify a client application that the NETCONF server state has changed. The "netconf-config-change" notification is generated when the NETCONF server detects that the server capabilities have changed, and indicates which capabilities have been added, deleted, and/or modified.

<FIG> depicts a tree structure of the "netconf-config-change" notification. Event type itself indicates that the system configuration has changed. This event could alert an attacker that specific configuration data nodes have been altered.

As shown in <FIG>, the "netconf-config-change" notification may have three elements, i.e., "changed-by", "datastore" and "edit". The "changed-by" element may indicate whether the server or a specific user management session made the configuration change, and identify the user name, session-id, and source host address associated with the configuration change, if any. The "datastore" element may indicate which datastore has been changed. This data can be used to determine if the non-volatile startup configuration data has been changed. The "edit" element identifies the specific edit operations and specific datastore subtree(s) that have changed. This data could be used to determine if specific server vulnerabilities may now be present.

As illustrated in <FIG>, the "edit" element contains two leaves, i.e., target and operation. No leaf is defined for its value. So, from the "netconf-config-change" notification, the user can only know which node is changed and what the operation is. But, the user can't know the value configured to. If the user wants to know what value is configured, he/she has to send another RPC message to get the node's value in datastore.

<CIT> describes a method and devices for communicating configuration management notification from a network element to a network manager in a packet-switched network.

<NPL>] discloses the parameter settings of the Netconf protocol, improving the protocol capabilities and operations to reduce network usage and transaction complexity.

<NPL>] discloses the Netconf Protocol providing mechanisms to install, manipulate and delete the configuration of network devices.

It is an object of the present disclosure to provide a method to add a new leaf "value" by augmenting the "edit" element, so that the "netconf-config-change" notification contains all the necessary information for an edit operation: a target of the edit operation, a type of the edit operation, and a value of the edit operation (i.e., a value configured for the edit operation).

In a first aspect, a method used in a network device for network management based on NETCONF protocol comprises the steps of independent claim <NUM>.

In a preferred embodiment, said generating the configuration change notification based on the configuration difference includes: setting the value of the edit operation based on the configuration difference.

In a preferred embodiment, the type of the edit operation indicates deleting the target, and the value of the edit operation is null.

In a preferred embodiment, the type of the edit operation indicates creating or modifying the target, and the value of the edit operation indicates a value the target of the edit operation is created or modified to have.

In a second aspect, a network device is provided for network management based on NETCONF protocol according to independent claim <NUM>.

In a third aspect, a computer program product is provided according to independent claim <NUM>.

The network device thus may inform the network management system of all necessary information for an edit operation by adding a "value" element in the "netconf-config-change" notification, so that the network management system can monitor the network device just based on the notification without extra actions or tools. This may result in an improvement in efficiency and convenience of the network management.

The above and other objects, features and advantages will be more apparent from the following description of embodiments with reference to the figures, in which:.

Hereinafter, the present disclosure is described with reference to the attached drawings. However, it is to be understood that those descriptions are just provided for illustrative purpose, rather than limiting the present disclosure. Further, in the following, descriptions of known structures and techniques are omitted so as not to unnecessarily obscure the concept of the present disclosure.

<FIG> is a schematic diagram illustrating an exemplary network architecture for use in network management according to the present disclosure. The network architecture involves a network management system <NUM>, a network <NUM> and a network device <NUM>. The network management system <NUM> and the network device <NUM> are examples of a NETCONF client and a NETCONF server, respectively. The network <NUM> may be either a wireless network such as the <NUM>th Generation (<NUM>) network, or a wired network.

As shown in <FIG>, there are two user sessions connected to the network device <NUM> in the network management system <NUM>. Session <NUM> is responsible for configurations on the network device <NUM>. Session <NUM> is responsible for monitoring configuration operations on the network device <NUM>. For example, when Session <NUM> is to make a specific configuration on the network device <NUM> (e.g., this may be done by configuring the "edit-config" in the Yang module), a RPC message is sent from the network management system <NUM> to the network device <NUM> via the network <NUM>. In response to the RPC message, the configuration is applied on the network device <NUM>. Thereafter, the network device <NUM> will generate and send a "netconf-config-change" notification to Session <NUM> to indicate that the network device <NUM>'s configuration has changed.

The "netconf-config-change" notification indicates a target of the edit operation, a type of the edit operation, and a value of the edit operation.

<FIG> illustrates an exemplary tree structure of the "netconf-config-change" notification according to the present disclosure.

As shown in <FIG>, the "netconf-config-change" notification may have three elements, i.e., "changed-by", "datastore" and "edit". The "changed-by" element and the "datastore" element are the same as those illustrated in <FIG>, and thus detailed explanations thereof are omitted here. As illustrated, in addition to the leafs "Target" and "Operation," the "edit" element further involves a new leaf, i.e., "Value. " The leaf "Value" indicates a value of the edit operation, i.e., a value configured for the edit operation.

An example of the YANG module definition according to the present disclosure may be presented as follows:
augment "/ncn:netconf-config-change/ncn:edit" {
description "augment the edit list to report configuration changes";
leaf value {
type string;
description "if the operation is create or modify, it is the value which is
configured to. if the operation is delete, it is null";
}
}.

Assume that the edit operation is to create a specific target, e.g., A, as a value of "a". In this case, the "Target" is A, the "Operation" is "create," and then the "Value" is "a". In other words, the edit operation is to create A as "a" on the network device <NUM>.

With the "netconf-config-change" notification configured in this way, the network management system can monitor the network device just based on the notification without extra actions or tools. This may result in an improvement in efficiency and convenience of the network management.

<FIG> is a flowchart illustrating a method <NUM> used in a network device for network management based on the NETCONF protocol according to the present disclosure. For example, the network device may be the network device <NUM> in <FIG>.

At step S510, the network device receives a RPC message from a network management system. For example, the network management system may be the network management system <NUM> in <FIG>. The RPC message instructs the network device to perform an edit operation on the network device's configuration. At step S520, the network device generates a configuration change notification based on the received RPC message. The configuration change notification indicates that the network device's configuration has changed. The configuration change notification may specifically indicate a target of the edit operation, a type of the edit operation, and a value of the edit operation. For example, the configuration change notification may be "netconf-config-change" notification as illustrated in <FIG>.

In an implementation, the type of the edit operation indicates deleting the target, and then the value of the edit operation is null.

In another implementation, the type of the edit operation indicates creating or modifying the target, and then the value of the edit operation indicates a value the target of the edit operation is created or modified to have.

At step S530, the network device transmits the configuration change notification to the network management system.

According to the invention step S520 includes the following steps of: building a new datastore based on the received RPC message and a current datastore, the current datastore storing a current configuration before the edit operation and the new datastore storing a new configuration after the edit operation; comparing the new datastore with the current datastore; creating a difference datastore based on the comparing, the difference datastore storing a configuration difference between the new configuration and the current configuration; and generating the configuration change notification based on the configuration difference. As an example of this implementation, said generating the configuration change notification based on the configuration difference may include: setting the value of the edit operation based on the configuration difference.

<FIG> is a schematic block diagram of a network device <NUM> according to the present disclosure. The network device <NUM> is to perform network management based on the NETCONF protocol.

The part of the network device <NUM> which is most affected by the adaptation to the herein described method, e.g., the method <NUM>, is illustrated as an arrangement <NUM>, surrounded by a dashed line. The network device <NUM> and arrangement <NUM> are further configured to communicate with other entities such as a network management system via a communication unit <NUM> which may be regarded as part of the arrangement <NUM>. The communication unit <NUM> comprises means for wireless or wired communication. The arrangement <NUM> or the network device <NUM> may further comprise other functional units <NUM>, such as functional units providing regular functions for a network device, and may further comprise one or more memories <NUM>.

The arrangement <NUM> could be implemented, e.g., by one or more of: a processor or a microprocessor and adequate software and memory for storing of the software, a Programmable Logic Device (PLD), or other electronic component(s) or processing circuitry configured to perform the actions described above, and illustrated, e.g., in <FIG>. The arrangement part of the network device <NUM> may be implemented and/or described as follows.

Referring to <FIG>, the network device <NUM> comprises a receiving unit <NUM>, a generating unit <NUM> and a transmitting unit <NUM>.

The receiving unit <NUM> may be configured to receive a RPC message from a network management system. The RPC message instructs the network device to perform an edit operation on the network device's configuration.

The generating unit <NUM> may be configured to generate a configuration change notification (e.g., the "netconf-config-change" notification as illustrated in <FIG>) based on the received RPC message to indicate that the network device's configuration has changed. The configuration change notification may specifically indicate a target of the edit operation, a type of the edit operation, and a value of the edit operation.

According to the invention the generating unit <NUM> is further configured to: build a new datastore based on the received RPC message and a current datastore, the current datastore storing a current configuration before the edit operation and the new datastore storing a new configuration after the edit operation; compare the new datastore with the current datastore; create a difference datastore based on the comparing, the difference datastore storing a configuration difference between the new configuration and the current configuration; and generate the configuration change notification based on the configuration difference. As an example of this implementation, said generating the configuration change notification based on the configuration difference may include: setting the value of the edit operation based on the configuration difference.

The transmitting unit <NUM> may be configured to transmit the configuration change notification to the network management system.

In another implementation, the type of the edit operation indicates creating or modifying the target, and the value of the edit operation indicates a value the target of the edit operation is created or modified to have.

<FIG> schematically shows an an arrangement <NUM> comprising at least one particular computer program product <NUM> according to the present disclosure. The arrangement <NUM> may be used in the network device <NUM> according to the present disclosure. Comprised in the arrangement <NUM> are here a processing unit <NUM>, e.g., with a Digital Signal Processor (DSP). The processing unit <NUM> may be a single unit or a plurality of units to perform different actions of procedures described herein. The arrangement <NUM> may also comprise an input unit <NUM> for receiving signals from other entities, and an output unit <NUM> for providing signal(s) to other entities. The input unit and the output unit may be arranged as an integrated entity or as illustrated in the example of <FIG>.

Furthermore, the at least one computer program product <NUM> may be in the form of a non-volatile or volatile memory, e.g., an Electrically Erasable Programmable Read-Only Memory (EEPROM), a flash memory and a hard drive. The computer program product <NUM> comprises a computer program <NUM>, which comprises code/computer readable instructions, which when executed by the processing unit <NUM> in the arrangement <NUM> causes the arrangement <NUM> and/or the network device in which it is comprised to perform the actions, e.g., of the procedure described earlier in conjunction with <FIG>.

The computer program <NUM> may be configured as a computer program code structured in comouter program modules 710A-710D. Hence, in an example when the arrangement <NUM> is used in the network device <NUM>, the code in the computer program of the arrangement <NUM> includes a receiving module 710A, for receiving a RPC message from a network management system. The RPC message instructs the network device to perform an edit operation on the network device's configuration. The code in the computer program <NUM> further includes a generating module 710B, for generating a configuration change notification based on the received RPC message to indicate that the network device's configuration has changed. The configuration change notification indicates a target of the edit operation, a type of the edit operation, and a value of the edit operation. The code in the computer program <NUM> may further include a transmitting module 710C, for transmitting the configuration change notification to the network management system. The code in the computer program <NUM> may comprise further modules, illustrated as module 710D, e.g. for controlling and performing other related procedures associated with the network device's operations.

The computer program modules could essentially perform the actions of the flow illustrated in <FIG>, to emulate the network device <NUM>. In other words, when the different computer program modules are executed in the processing unit <NUM>, they may correspond, e.g., to the units <NUM> -<NUM> of <FIG>.

Although the code means in the disclosure above in conjunction with <FIG> are implemented as computer program modules which when executed in the processing unit causes the device to perform the actions described above in conjunction with the figures mentioned above, at least one of the code means may alternatively be implemented at least partly as hardware circuits.

The processor may be a single CPU (Central processing unit), but could also comprise two or more processing units. For example, the processor may include general purpose microprocessors; instruction set processors and/or related chips sets and/or special purpose microprocessors such as Application Specific Integrated Circuit (ASICs). The processor may also comprise board memory for caching purposes. The computer program may be carried by a computer program product connected to the processor. The computer program product may comprise a computer readable medium on which the computer program is stored. For example, the computer program product may be a flash memory, a Random-access memory (RAM), a Read-Only Memory (ROM), or an EEPROM, and the computer program modules described above could in alternative examples be distributed on different computer program products in the form of memories within the network device.

Claim 1:
A method (<NUM>) used in a network device for network management based on NETwork CONFiguration, NETCONF, protocol, the method comprising:
receiving (S510) a Remote Procedure Call, RPC, message from a network management system, the RPC message instructing the network device to perform an edit operation on the network device's configuration;
generating (S520) a configuration change notification based on the received RPC message to indicate that the network device's configuration has changed, the configuration change notification indicating a target of the edit operation, a type of the edit operation, and a value of the edit operation, wherein said generating (S520) the configuration change notification comprises:
building a new datastore based on the received RPC message and a current datastore, the current datastore storing a current configuration before the edit operation and the new datastore storing a new configuration after the edit operation;
comparing the new datastore with the current datastore;
creating a difference datastore based on the comparing, the difference datastore storing a configuration difference between the new configuration and the current configuration; and
generating the configuration change notification based on the configuration difference; and
transmitting (S530) the configuration change notification to the network management system.