Abstract:
The invention relates to a network management system ( 12 ) and a method therefore, in a broadband network, configuring ( 1, 2, 3 ) and updating network elements ( 14 ) through a command language. A difference file ( 20 ) is created for new configuration versions in the element ( 14 ). Deployment of the new configuration version in the network element is thus performing configuration updating on network elements ( 14 ) utilizing the main part of earlier configuration software.

Description:
CROSS REFERENCE TO RELATED APPLICATION  
       [0001]     This application claims the benefit of U.S. Provisional Application Ser. No. 60/607,144 filed on Sep. 2, 2004. 
     
    
     TECHNICAL FIELD  
       [0002]     The present invention pertains to a network management system, in a broadband network, configuring and updating network elements through a command language, and a method therefore.  
       BACKGROUND ART  
       [0003]     Network elements such as routers, switches, multiplexers, and other equipment to be controlled in a network are managed and controlled through a configuration language. To control the network element devices, commands corresponding to certain syntax are entered. A command executes a function in a controlled network element device. Commands may often have one or multiple parameters to control specifics of the function. For instance, a command may be utilized to turn on the fans in a network element. A parameter to the command may be the temperature that must be reached before the fans are turned on.  
         [0004]     A person is able to interpret documentation and understand the functionality of the command syntax as well as to react to any unexpected behaviour detected when the command is executed. Such unexpected behaviour may be invalid command syntaxes, or utilizing a parameter that is not available in the particular system.  
         [0005]     If the functionality and configuration of network elements instead is controlled by software, the human interactivity is no longer a factor. The software is able to operate only under the constraints or with the flexibility designed into the system. If the command syntax changes from one version of network element image to another, a management software application may have to be rewritten in order to understand the new syntax. As the number of elements and versions of system images running on those elements increase, the complexity for a network management system (NMS) to manage becomes increasingly complex and unmanageable.  
         [0006]     A NMS is utilized to manage portions of a network by talking to network agents residing in nodes via a protocol. The NMS implements functions at the network management layer, and can manage other MNS.  
       SUMMARY OF THE INVENTION  
       [0007]     One aim of the present invention among others is to solve problems related to changed configurations through new syntaxes as the number of network element devices and versions of system images running on those elements increase. The complexity for a network management system to manage becomes increasingly complex and unmanageable under such circumstances. Hence, the present invention introduces that only parts of management software have to be changed when updating network element configurations.  
         [0008]     Current configurations changes are accomplished by a programmer (person for hand) writing a new program. The present invention introduces an interpreter, which automatically changes a devices configuration through being given new values for variables.  
         [0009]     To achieve aims and goals, the present invention sets forth a network management system, in a broadband network, configuring and updating network elements through a command language. The system thus comprises:  
         [0010]     a defined syntax for configuration of the network elements;  
         [0011]     compilation of the syntax definition into a machine readable form, deployed in the network element to configure the element, and further stored in a data file in the management system, thus having stored an exact configuration version copy running in a network element also in the management system;  
         [0012]     a software interpreter comprised of describing text, having limits for every variable in a syntax field, and how this should be changed, said interpreter utilizing a dynamic library, which is connected to every network element ( 12 ), and the type of software, said compiled syntax source code file constitutes said library, which defines the command statements, and said interpreter creating a difference file for new configuration versions in said element ( 12 );  
         [0013]     verifying the new configuration versions in the management system by changing the stored data file in accordance with data in the difference file, and deployment of the new configuration version in the network element, thus performing configuration updating on network elements utilizing the main part of earlier configuration.  
         [0014]     One embodiment of the present invention comprises that the new configuration is utilized in verifying that the command semantics and syntax is correct.  
         [0015]     Another embodiment comprises that multiple ways of writing a statement exists, thus normalising the statement to a common syntax.  
         [0016]     A further embodiment comprises a change of command statements to reach a defined goal, thus recognizing that different commands are similar, but having different parameters.  
         [0017]     Yet another embodiment comprises that groupings of commands are recognized so that in order to address configuration related to a specific context, the context is provided before the command lines configuring that context in a running configuration.  
         [0018]     Yet still a further embodiment comprises that the steps of normalisation and verification of commands to be deployed is made without the actual network element being online and reachable.  
         [0019]     Moreover, the present invention comprises a method in a network management system residing in a broadband network, configuring and updating network elements through a command language. The method comprises:  
         [0020]     defining a syntax for configuration of the network elements;  
         [0021]     compiling of the syntax definition into a machine readable form, deployed in the network element to configure the element, and further stored in a data file in the management system, thus having stored an exact configuration version copy running in a network element also in the management system;  
         [0022]     creating a difference file for new configuration versions through a software interpreter in said element ( 12 ) comprised of describing text, having limits for every variable in a syntax field, and how this should be changed, said interpreter utilizing a dynamic library, which is connected to every network element ( 12 ), and the type of software, said compiled syntax source code file constitutes said library, which defines the command statements verifying the new configuration versions in the management system by changing the stored data file in accordance with data in the difference file, and  
         [0023]     deploying the new configuration version in the network element, thus performing configuration updating on network elements utilizing the main part of earlier configuration software.  
         [0024]     The method of the present invention is able to perform embodiments of the above described system embodiments in accordance with the attached dependent method claims.  
     
    
     BRIEF DESCRIPTION OF THE DRAWING  
       [0025]     Henceforth, reference is had to the accompanying single drawing of  FIG. 1  for a better understanding of the present invention with its embodiments and given examples, wherein the single figure:  
         [0026]      FIG. 1  schematically illustrates a configuration of a network element controlled by an NMS in accordance with the present invention.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0027]     The present invention introduces that only parts of management software have to be changed when updating network element configurations. Network elements are such devices as routers, switches, multiplexers, and other equipment aimed to handle transfer of data packets in a broadband network, which are software configured.  
         [0028]     In the following description, command syntaxes are highlighted through bold characters.  
         [0000]     Example of a Command Syntax:  
         [0029]     [no] ip pim rp-candidate &lt;interface&gt; [&lt;0-255&gt; 
         [0000]     Syntax Word List  
         [0030]     ip—internet protocol  
         [0031]     pim—protocol independent multicast. Enabling IP multicast on existing IP networks  
         [0032]     rp-candidate—rendevouz point candidate  
         [0033]     This type of command syntax is commonly used in documentations to teach for instance programmers how to utilize the command. Brackets [ ], in this example, indicate optional parameters, and the separate signs &lt; &gt; are used to indicate a textual variable input, in this case the name of an interface in the system. Such a command syntax definition implies multiple possible combinations in utilizing the command:  
         [0034]     no ip pim rp-candidate ethernet0  
         [0035]     no ip pim rp-candidate ethernet0 0  
         [0036]     ip pim rp-candidate ethernet0  
         [0037]     ip pim rp-candidate ethernet0 0  
         [0038]     The resulting action of the command is different depending on which combination utilized. The no keyword implies that the command functionality should be returned to its default, but if there are multiple parameters to the command (such as both the interface name and the numeric value) the no keyword may remove the complete command or only part of the functionality. This is decided by the network element vendor and varies from element to element and vendor to vendor.  
         [0039]     It is appreciated that the syntax provided is an example, and that other variables could be utilized for a configuration.  
         [0040]     A user or programmer is able to interpret the documentation and understand the functionality of the command syntax as well as to react to any unexpected behaviour detected when the command is executed. One such unexpected behaviour may be invalid command syntax (ip pmi rp-candidate) or using a parameter (ethernet0) that is not available in the particular system (should for instance be fastethernet0).  
         [0041]     If the functionality and configuration  10  of network elements  12  instead is controlled by software as in the present invention schematically depicted in  FIG. 1 , the interactivity by programmers is no longer a factor. The software is able to operate only under the constraints or with the flexibility designed into the system. If the command syntax changes from one version of network element image to another, a management software application may need to be rewritten in order to understand the new syntax. As the number of elements and versions of system images running on those elements increase, the complexity for a network management system  14  to manage becomes increasingly complex and unmanageable.  
         [0042]     A developed command description language and method is set forth through the present invention,  FIG. 1 , where the command syntax of an element is defined. The definition is then compiled into machine readable form and deployed both into the network element  12  and as a data file that can be used by a network management station  14 . The data file is unique to each version of the system image  16  running in the network element  12 .  
         [0043]     The command structure of the data file is stored in dynamically loaded libraries, which means that the NMS  14  is able to handle new commands regarding new versions of network element software without inducing any changes to the software.  
         [0044]     According to the present invention, the content of the data file enables the network management system  14  to perform verification, normalisation and differentiation of command statements through a software interpreter. This solves two problems, firstly to ensure that the command statements kept in the network management system to be deployed into the network is accurate and valid, it is actually a working configuration. Secondly, to optimize command updates so that only necessary commands are deployed to the network element instead of a completely new configuration that may require restart of applications or functions in the network element.  
         [0045]     The software interpreter of the present invention is comprised of describing text, having limits for every variable in a syntax field, and how this should be changed and/or removed. For this purpose, the interpreter utilizes a dynamic (changeable or updated) library, which is connected to every network element  12 , and the type of software. A compiled source code file constitutes the library, which defines/equals the command statements.  
         [0046]     According to the solution of the present invention, the Network Management System  14  has communication with a Network Element  12 . The NMS knows the configuration, consisting of command statements from the library controlled by the NMS software interpreter as exemplified  16 ,  18  in  FIG. 1 , and parameters&#39; running in the network element as the NMS has previously deployed the configuration  16  to the network element  12 . A configuration change  18  is initialized by the NMS. In this example, the address on the ethernet0 interface changes from 192.168.1.0 to 192.168.1.1. The metric value  55  used with ip pim rp-candidate is removed but the rp-candidate will remain on ethernet0. Through the content of the data file generated by the present invention, the NMS  14  is able to accomplish the following; go through the new configuration  18  verifying that the command semantics and syntax is correct. Where multiple ways of writing a statement exists, normalise the statement to a common syntax (ip address 192.168.1.1 with netmask 255.255.255.0 can also be written as 192.168.1.1/24, two ways of providing a similar objective. A possible time consuming task for programmers, but difficult to make software understand it. Understand or recognize how to change command statements to reach a defined goal (understanding that the ip pim rp-candidate ethernet0 55 and ip pim rp-candidate ethernet0 are the same commands but with different parameters and that in order to remove only the 55 parameter but to retain the rest of the command the no keyword is applied on the command line. If the entire line was to be removed, a different command would have been issued (no ip pim rp-candidate ethernet0). Recognize groupings of commands so that in order to address configuration related to a certain context (interface ethernet0) the context must be provided before the command lines configuring that context. The steps of normalisation and verification of the commands to be deployed can be made without the actual network element being online and reachable. Because the NMS has what essentially is an exact copy of the command language used on the element, configuration and commands can be prepared before the unit is even installed in the network. Hence, this is accomplished by the interpreter of the present invention as described above.  
         [0047]     Thereby the NMS  14 , through its software interpreter, is able to generate a difference  20  between the running configuration  16  and the new configuration  18 . The difference  20  provided by the interpreter contains the exact configuration commands required to convert the running configuration  16  into the new configuration  18  without having to completely rewrite the entire configuration to the network element  16 .  
         [0048]     The Diff field  20  contains the exact command statements, as determined by the NMS  14  copy data file in the library of the running configuration data and verification functions, required to make the running configuration into the new configuration.  
         [0049]     The present invention is not restricted to its described embodiments and given examples. The attached claims do suggest further embodiments to a person skilled in the art.