Next Patent: Method and device for specifying initialization tasks for a peripheral device
Next Patent: Method and device for specifying initialization tasks for a peripheral device
Plaque It!
Sponsored by: Flash of Genius |
[0001] The present invention is in the field of data-packet-routing over data-packet-networks, in particularly the hardware and software comprising a data packet router. The invention pertains particularly to methods and apparatus for upgrading software running on a data router while the router remains online and operational.
[0002] At the time of the present patent application demand for increased data capacity and efficiency in Internet traffic continues to increase dramatically as more individuals and businesses increase their use of the Internet. The ever-increasing demand also drives development of equipment for use on the Internet such as data packet routers. A number of enterprises are now developing routers that are capable of faster and higher-capacity handling of data packets routed over the Internet.
[0003] The Internet, operating globally, comprises components from a wide variety of manufacturers. It is, of course, necessary that such equipment conform to certain hardware, software and connection standards, and operate by certain data transfer standards and protocols. These standards are all well-known to the skilled artisan.
[0004] As new and better equipment for routing data traffic in the Internet continues to be developed, researchers developing such equipment are endeavoring to include such as fault tolerance, diagnostic capabilities, and redundancy into the equipment, links between instances of routing equipment, and in implementation of routing protocols.
[0005] One of the important developments in Internet technology as of the time of filing of the present patent application is in development of faster and scalable routers utilizing a distributive-processor concept. The present inventors, for example, are involved in development of what are known in the art as Terabit routers, capable of much higher packet transfer rates than for routers currently available in the art. These routers are scalable to higher and higher overall data-transfer rates and capacity, by allowing upwards of seven thousand interfaces to network traffic.
[0006] An example of a Terabit router as known to the inventor comprises three types of processor-equipped cards adapted for controlling and routing data. Each card has it's own processor lending to a relatively newer concept of distributive-processor data routers. The three types of cards are control cards, line cards, and fabric cards. Generally speaking, a line card functions as an interface for the internal network of the router and the external network to which the router connects. Data packets entering and exiting the Terabit router typically do so through a line card. Fabric cards are a part of an internal data-routing fabric or network of the data router. Fabric cards act as individual routing points within the data router. Control cards are responsible for controlling both line and fabric cards in terms of their functions including initiating routing protocols, maintenance, special processing, control-message distribution, and so on.
[0007] In the prior art, most routers use a single processor for the processing of data packets. Some routers use more than one processor, however the number of processors is relatively small compared to a distributive data router as known to the inventor. When a data router of the prior art needs updating with new software such as newer versions of routing protocols, configuration software, or the like, the router being upgraded must be shut down and taken off line in order to perform the upgrade. After the upgrade is complete, the router must be rebooted to again join the network topology with its peers.
[0008] With efficiency of data routing in mind, it is clear that the loss of a router during upgrade procedures affects network performance through the particular portion of the network occupied by the router. Data must be re-routed through peer routers on to its destination, sometimes taking a much longer or even more constricted path or paths. It is desirable, however, that data packets be routed efficiently through a given network and connected routers at all times. Taking one or more routers down for upgrade can be a major inconvenience. The nature of a distributive router as known to the inventor provides processor architecture that may be treated differently than its single-processor counterparts where upgrading is concerned.
[0009] What is clearly needed is a method and apparatus for enabling a software upgrade to be applied to a distributive-processor data router without having to take the entire router off-line and without significant performance degradation during upgrade. A system such as this would enable, in most cases, automated upgrade of data routing protocol revisions, configuration changes and the like.
[0010] In a preferred embodiment of the present invention a method for performing an in-service software upgrade to a data router comprising steps of (a) providing a source node hosting an upgrade software package; (b) causing an upgrade command to be executed; (c) establishing, as a result of the upgrade command, a network session between the data router and the source node; (d) receiving the upgrade software at the router; (e) copying and distributing, within the router, the upgrade software to designated components slated for upgrade; (f) designating one or more components in the router as backups for each component to be upgraded; (g) backing up services and software running on each target element to be upgraded to designated backup element or elements while upgrade proceeds for the target element; (h) causing a switchover at the target element to the new software; and (i) repeating steps (g) and (h) until all the components slated for upgrade are upgraded.
[0011] In some embodiments the data-packet-network is the Internet network. Also in some embodiments, in step (a), the source location node is an FTP server and the upgrade software package is stored in memory of the server. In other cases the source location node may be a PCMCIA flash card installed in a network-connected computer, the upgrade software package residing on the card. In some embodiments the source location node may be a PCMCIA flash system residing within the router, the upgrade software package residing in the flash system.
[0012] In some cases execution of the upgrade command is manual and initiated by a user, while in other cases execution of the upgrade command is automated and triggered at a pre-set time. In some cases data network session is conducted over an Ethernet network between the source location node and the receiving component of the router. The location node may be an FTP server and the receiving router component may be a primary control card. In other cases the source location node is a personal computer. In some cases the data network session is conducted over the internet network between source location node and the receiving component for the router.
[0013] In some embodiments receiving the upgrade software comes after access and request by the router receiving component, while in other embodiments receiving the upgrade software comes after access and request sent to the router receiving component. Designated elements for upgrade may include control cards, line cards, or fabric cards.
[0014] In some cases the switchover command is automatic and executed after a certain period of time, while in other cases the switchover command is pre-configured to execute at a future designated time, the switchover managed by the primary receiving component of the router. In some cases notification of upgrade status is conducted in a separate and future data session. In some embodiments backup designations are made according to an algorithm for maximizing performance during the upgrade process.
[0015] In another aspect of the invention a system for upgrading a data router while the router is forwarding data packets over a data-packet-network is provided, comprising a node having access to the router by data link, a software upgrade package stored in memory residing in or connected to the node, a component residing in the router having access to the node over the data link, and a user station having access to the router for displaying upgrade status and results. The system is characterized in that at a specified time, the router component is caused to have access to the software upgrade package, receives and makes copies of image portions of the package, distributes the image portions to router elements within the router identified as targeted for upgrade, backs up functions of targeted elements to designated backup elements, and wherein the targeted elements each install their received image portion, reboot using the new image portion, and report back to the router component, which in turn reports status to the user station.
[0016] In some embodiments elements are upgraded in groups. Also in some embodiments backups are designated according to an algorithm for maximizing performance during the upgrade process. The data packet network may be the Internet network.
[0017] In some cases the node having access to the data router is an FTP server, and in some cases may be a personal computer. The data link may be an Ethernet network link.
[0018] In some cases the memory hosting the software upgrade package is PCMCIA flash memory, and in some the element residing in the router is a primary control card. In other cases the element residing in the router may be a line card. The user station can be a personal computer. In some embodiments the upgrade package includes image portions for control cards, line cards, and fabric cards.
[0019] In another aspect of the invention a router upgrade application for upgrading at least one targeted computerized element of a router is provided, comprising at least one runtime image, the image including parameters for element boot and operation once booted, an executable command for initiating the upgrade application including distribution and install, and an executable command for applying the at least one runtime image including boot directory reset and reboot instructions. The application is characterized in that the upgrade application functions automatically after a pre-determined or user selected time in cooperation with a primary router element to effect upgrade and reboot to all of the designated target elements of the router.
[0020] In some embodiments of the router upgrade application the computerized element comprises one of a control card, a line card, or a fabric card. In preferred embodiments the upgrade occurs while the router is forwarding data over a data-packet-network, and the data-packet-network may be the Internet network.
[0021] In some embodiments the initiation command is automatically executed according to a pre-determined time, and in others the apply command is automatically executed according to a pre-determined time.
[0022] There may be multiple backup router elements to assume the operational responsibilities of a target element being upgraded, and there may be a backup router element to assume the operational responsibilities of multiple target elements being upgraded simultaneously. In some cases targeted elements include cards of different types, and elements are upgraded in groups by type.
[0023] In embodiments of the invention described in enabling detail below, for the first time a system and method is provided wherein computerized machines, such as routers, may be upgraded while they continue to perform their on-line functions.
[0024]
[0025]
[0026]
[0027]
[0028]
[0029] Interfaces
[0030] Data packets arriving through ingress of router
[0031] A user
[0032] Because router
[0033] At this point router
[0034] Router
[0035]
[0036] Router
[0037] Router
[0038] Router
[0039] Line cards
[0040] As previously described above, each card within router
[0041] The upgrade procedure of the present invention provides for designating backup cards to handle the duties of targeted cards while the targeted cards are being upgraded. Within the illustrated group of line cards
[0042] It should be noted the there doesn't need to be a 1 to 1 relationship between target cards and backup cards. It is essentially running services that are backed up. These services may run on any card or on multiple cards. For example, all target services running on card
[0043] The relationship between designations as target, backup, and GMCC are described further below.
[0044] A file transfer protocol node (FTP)
[0045] The router
[0046] FTP node
[0047] SW
[0048] Each card has a memory for receiving and storing its runtime image. In one preferred embodiment the memory is flashable.
[0049] Referring again to
[0050] In this example, line cards
[0051] When new versions of an image controlling how the card boots and is configured are part of the upgrade process, the cards will have to perform a reboot to use the new image. A reboot is always required to utilize a new software image which may contain many software enhancements. It is the fact that existing operation of the router does not have to be affected while the system is transitioning to the new enhancements. Once the system has been upgraded, the new enhancements may be turned on and utilized.
[0052] One with skill in the art will recognize that an upgrade process as described in this specification is performed systematically when upgrading many cards. For example, no more than one or a few cards will be down for any period of time. Furthermore, the upgrade images are built so as to support the last version of the image such that a newly rebooted card may cooperate operationally with a card not yet upgraded. In this way, router
[0053] This example illustrates upgrade of line and control cards. In the case of fabric cards
[0054]
[0055] In this example, line cards
[0056] Control cards
[0057] Each illustrated card in this example has a flashable memory for storing software images. LC-N has a flash memory
[0058] In this example, operational data stored on target cards (LC-N, CC-
[0059] GMCC
[0060] In LC-
[0061] GMCC
[0062] In fabric
[0063] Also present in each flash memory of each upgradeable card is a boot loader and a boot pointer. These components are known in the art and cooperate with the previously-described image table present on each card to designate which image will be used to reboot a card after upgrade and reset to which image will be used to next reboot the card. Only after successful booting using the new image, will an older version be erased from memory. This insures that if an upgraded image is corrupted or otherwise fails, the older image can still be used to boot the card. During the entire upgrade process, messages and responses or acknowledgements are propagated between GMCC
[0064] It will be apparent to one with skill in the art that GMCC
[0065] In a preferred embodiment the GMCC always has a backup regardless whether it is a target card for upgrade. This ensures that the upgrade task/process itself is fault tolerant in the event that something may happen to the GMCC while the router is being upgraded. The backup GMCC will resume upgrade responsibilities in the event of a GMCC failure.
[0066] In a case where all cards of a same type in a shelf are to be upgraded, eventually upgrade cards already using the new image will serve as backups. The process is sequential and identifies each card by ID and destination address including slot number in the shelf supporting the cards. Any logical order may be followed. It is noted herein that designating and establishing backup cards to assume responsibilities of a card being upgraded in not specifically required in order to practice the present invention. Router
[0067] In a preferred embodiment, any upgrade requiring reboot to a new version of SW would be performed in one session for an entire shelf of control cards, fabric cards, or line cards. This type of upgrade is termed a router-level upgrade. In one embodiment, it is also possible to perform a router-level upgrade on all of the cards contained in and operational in the router. However, some logic may be applied such as first upgrading all of the control cards, then all of the line cards, and then all of the fabric cards in a single session. The upgrade process in a preferred embodiment is entirely automatic from the point of issuing an upgrade command. The re-boot process is, in preferred embodiments, a timed function wherein the command is executed as part of the runtime image application command structure.
[0068]
[0069] At step
[0070] In one embodiment, step
[0071] At step
[0072] It should be remembered that there need not be a one-to-one relationship between backup elements and elements to be upgraded. Further, some elements serving as backups, may subsequently be backed up and upgraded as well. The key to in-service upgrading is that functions of elements to be upgraded must be performed by alternate elements in the system, while the primary elements are down during upgrade.
[0073] At step
[0074] Also part of the process in a preferred embodiment is that all target cards receiving data send acknowledgements back to the designated GMCC as to status and error. A reasonable timeout period for each target card may be initiated by the sending GMCC to wait for a response. If no response is received from a particular card then a retry may be initiated. Cards that report back that the upgrade was successful are formally upgraded and do not have to be included in a reattempt to upgrade any cards wherein the initial attempt failed for some reason.
[0075] At step
[0076] Once a complete image is loaded onto a target card, that card is ready to reboot if necessary to begin using the new image. At step
[0077] It is noted that throughout the process, there is a convention for reporting any error states that may occur. This is illustrated by dotted directional arrows emanating from some of the illustrated steps and connecting with a logical line labeled Status Notification drawn from step
[0078] During a multiple card upgrade, the GMCC keeps track of all of the completed, current, and pending states so that if one or more cards do fail to accept the upgrade, a retry may be automatically initiated for just those target cards which failed initially.
[0079] The following CLI (control line interface)commands can be used to upgrade the different components.
[0080] upgrade [bootldr|image][network <IPADDRESS><filepath>][cc|lc48|fc] [router|<shelfid>[<slotid>]][apply]
[0081] This command upgrades the bootldr or image on the card type specified with the provided arguments. The IP Address of where the image is present is specified when the image has to be retrieved over the network. This particular command configuration is valid only on control card upgrades. Filepath is the location of the software package. It may be on an FTP server or PCMCIA flash card.
[0082] The [apply] parameter specifies that the card automatically perform all of the more granular operational steps including but not limited to upgrading the boot pointer, converting a configuration database, performing a reboot using the new image, overwriting the old image after successful boot, and backup of running services and configurations, and so on.
[0083] boot network <cc_nodeid>[config parameters]
[0084] This command causes a network boot to happen on the next reboot of the target control card specified by nodeid parameter.
[0085] It will be apparent to one with skill in the art that many sub-steps may be added to the process taught above without departing from the spirit and scope of the present invention. For example, as image packets are received at a card targeted for upgrade, they are checked for errors and an acknowledgement, either positive or negative, is sent back to the GMCC each time. Also, once a full image is received and assembled, a final checksum of the entire image is performed and an acknowledgement to this effect is sent back to the GMCC. The inventor has chosen not to illustrated all of these more granular steps in order to more simply explain the upgrade process.
[0086] In one embodiment of the present invention, a mechanism is provided to enable a user to pre-specify a point in time for a router to perform an automated upgrade after a download session to distribute the upgrade images. Once the images are downloaded in to each card, the upgrade time is stored in configuration. A primary upgrade task manager will perform the rolling card resets when the specified time occurs.
[0087] In one embodiment of the invention, a network timestamp protocol (NTP) client is provided on all cards and on the designated GMCC. Using a timer function, each target card will delay reboot until the end of a self-starting time period. This prevents any cards from resetting before the apply command has executed.
[0088] In still another embodiment, cards that are introduced into a router as new cards can undergo automatic upgrade to the SW version currently in use within the router. In this implementation, special CLI commands are provided for a user to configure and specify a SW image version and its source location, perhaps at a remote server. When the upgrade task manager on a designated GMCC receives boot confirmation from a new card in the router, it compares its image version against the one stored in configuration for all of the cards. If there is a mismatch, an upgrade will be initiated to the card. It is noted herein that there should be no more than one version delta between the 2 images.
[0089] An image copy command may also be provided in one embodiment for enabling a user to overwrite the elder of the
[0090] For each image type (bootldr, runtime, fpga) there are two images stored in flash.
[0091] These are designated current and other. The CLI command will be provided to allow the user to copy an image from the “current” to “other”. This is useful once a new image has been qualified and the “other” can then be overwritten.
[0092] The method and apparatus of the present invention may be practiced over the Internet or other networks such as an Intranet. A WAN or LAN connection may be used as a connection from a router to an image source for an external upgrade.
[0093] In yet another embodiment, a newly inserted card that has a version of an image that is more than one or two versions older than the other cards in the router may be upgraded successively in an automatic fashion if all of the required images are available at a single source. In this embodiment, a GMCC task manager would perform an image version comparison as previously described above. Noting the existing image on the newly inserted card after boot and the number of upgrades required to attain the current image that the other cards are booting from, the GMCC can establish a session to perform the required number of upgrades until the card has the latest image.
[0094] In another aspect of the invention, the backup components are distributed based on algorithms which optimize one or both of system load and resources. In this particular embodiment no degradation in router performance will occur during the upgrade
[0095] The method and apparatus of the invention enjoys a variety of possible configurations and implementations without departing from the spirit and scope of the present invention. Therefore, the claimed invention should be afforded the broadest possible scope under examination. The scope of the present invention is limited only by the following claims.