METHOD AND APPARATUS FOR DOWNLOADING A PLURALITY OF
IMAGES
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit of US Provisional Application No. 60/584,356 filed June 30, 2004.
FIELD OF THE INVENTION
[0002] The present invention relates to a method and apparatus for downloading software on a plurality of network devices in a communications network, and more particularly, to a method and apparatus for downloading a plurality of images to a plurality of intelligent network devices.
BACKGROUND
[0003] A typical communications network includes numerous devices each having software to perform communications functionalities. For example, a Passive Optical Network (PON) would typically have a plurality of Optical Network Units (ONUs). An ONU that is capable of providing service to a plurality of subscribers is called a Multiple Distribution Unit (MDU) whereas an ONTJ that may only supply service to a single subscriber is called a Single Family Unit (SFU). The software that executes on the MDU may differ from the software on the SFU since they have a different functionality, e.g. supplying service to one versus multiple subscribers. Additionally, some of the ONUs may have different core processors than other ONTJs in which case the ONUs may require different versions of the software, where each version is a different image of the software. For example, a NIOS processor from Altera Corporation and a PowerPC ® processor from IBM might require different images of the software. Even if the ONU had the same core processor such as a MIPS ® core processor from MIPS Technologies Incorporated, the coprocessors may be different such that different images of the^ software may be desirable. For example, Wintegra Incorporated and Broadcom Corporation communications processors both use a MIPS core processor but may have different coprocessors.
[0004] Managing the software on the devices of a communications network is cumbersome when software upgrades to the devices are made. A software upgrade may be for a new release of the product having different and/or improved functionality and in some cases the upgrade provides fixes to the current software. A management system may upgrade the software by downloading the image to the device; however, the management of which device gets which image is typically a manual process. Therefore, there exists a need to provide an improved way to download images to devices for software upgrades.
SUMMARY OF THE INVENTION
[0005] In one aspect of the invention, a download file for use in a communications network is provided, the download file comprising a plurality of target blocks, each target block including an image to be downloaded to an intelligent device, a target identifier indicating an intelligent device that may use the image, and a qualifier that qualifies how the image is to be downloaded, and an end indicator indicating the end of the download file.
[0006] In another aspect of the invention, a method for downloading an image to an intelligent device in a broadband communications network is provided, the method comprising receiving a download file by intelligent device, the download file having a signature, a plurality of target blocks, and an end indicator, and validating the signature in the download file by the intelligent device, if the signature is valid determining a target block that has an image compatible with the intelligent device by comparing a target identifier in the target block with a device identifier in the intelligent device, copying the compatible image from the target block to the intelligent device, if the signature is invalid disregarding the download file.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The above mentioned and other concepts of the present invention will now be described with reference to the drawings of the exemplary and preferred embodiments of the present invention. The illustrated embodiments are intended to illustrate, but not to limit the invention. The drawings contain the following figures, in which like numbers
refer to like parts throughout the description and drawings wherein:
Figure 1 illustrates an exemplary prior art schematic diagram of a communications network having a plurality of download files communicated to a plurality of devices;
Figure 2 illustrates an embodiment of an exemplary schematic diagram of the present invention having a download file communicated to a plurality of devices; and
Figure 3 illustrates an exemplary download file layout in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0008] The invention described herein may employ one or more of the following concepts. For example, one concept relates a download file having a plurality of images to a plurality of intelligent devices. Another concept relates to a modified management system to send a download file having a plurality of images. Yet another concept relates to an intelligent device to determine which image(s) to use from a plurality of images in a download file.
[0009] The present invention is disclosed in context of use of a Passive Optical Network (PON) having a plurality of Optical Network Units (ONTJs) managed by a management system. The principles of the present invention, however, are not limited to use within a PON but may be applied to networks having high speed, such as broadband networks, as well as networks having lower bandwidth. For example, the present invention may be used in Internet, Digital Subscriber Line (DSL), cable, wireless, and optical networks. While the present invention is disclosed having a plurality of ONUs any device having software that may be accessed via the management system, such as a DSL modem may be used. Embedded processors for embedded systems are applicable to the exemplary context of use. However, it would be appreciated by those skilled in the art that any presently available or future developed processor may be used with the present invention with the exemplary or other contexts of use. One skilled in the art may find additional application for the apparatus, processes, systems, components, configurations, methods and applications disclosed herein. Thus, the illustration and description of the present invention disclosed in context of use of a PON having a plurality of ONUs
managed by management system is merely one possible application of the present invention. However, the present invention has particular applicability for use in a PON having a plurality of ONUs managed by management system.
[0010] Referring to Figure 1 , an exemplary prior art schematic diagram of a method and apparatus is provided. A communications network 10 includes a management system 12 that communicates download files toward a plurality of devices 20 via a network 14. Each download file having an "image" of a software executable file, a text file, a script file, picture file or any other file or data to be copied to the device 20.
[0011] In the illustrated exemplary embodiment, each of the devices 20 is an ONU. The device 20(1) includes a Wintegra Incorporated communications processor type from a MIPS core processor family and is a Single Family Unit (SFU) target type. Device 20(2) includes a Broadcom Corporation communications processor type from a MIPS core processor family, and is a Multiple Distribution Unit (MDU) target type. Device 20(3) has a processor from a PowerPC core processor family and is a SFU target type. Device 20(4) includes a MPC8260 core variation from the PowerPC core processor family and is a MDU target type. Device 20(5) includes a MPC860 core variation from the PowerPC core processor family and is a MDU target type.
[0012] In this example, a first download file having a first image is directed to 16(al), 16(bl) the device 20(1) via the PON. A second download file having a second image is directed to 16(a2), 16(b2) the device 20(2) via the PON. A third download file having a third image is directed to 16(a3), 16(b3) the device 20(3) via the PON. A forth image ■Ftmay be used for the MPC8260 and MPC860 variations of the PowerPC core Processor and therefore may be used for devices 20(4), 20(5). A fourth download file having the fourth image therefore may be used for devices 20(4), 20(5). In the exemplary embodiment the fourth image is sent separately 16(a4), 16(b4), 16(a5), 16(b5), in this case twice, once to each of the two devices.
[0013] Referring now to Figure 2, an exemplary embodiment of a Communications network 10 in accordance to the present invention is shown. The communications network 10 includes a management system 12 communicating a download file having a plurality of images toward a plurality of intelligent devices 22 having download
intelligent via a network 14.
[0014] Each, of the exemplary intelligent devices 22 illustrated in Figure 2 is an ONU. Exemplary intelligent device 22(1) includes a Wintegra Incorporated communications processor type from the MIPS core processor family and is a SFU target type. Exemplary intelligent device 22(2) includes a Broadcom Corporation communications processor type from a MIPS core processor family, and is a MDU target type. Exemplary intelligent device 22(3) has a processor from a PowerPC core processor family and is a SFU target type. Exemplary intelligent device 22(4) includes a MPC8260 core variation from the PowerPC core processor family and is a MDU target type. Exemplary intelligent device 22(5) includes a MPC860 core variation from the PowerPC core processor family and is a MDU target type.
[0015] The download file including the first image, the second image, the third, and the fourth images is directed to 18 the intelligent devices 22. The illustrated exemplary embodiment makes use of broadcasting the file to the intelligent devices 22; however, the file may be sent via a unicast method. As each intelligent device 22 receives the download file, the intelligent device 22 compares data in the file to information within the intelligent device 22 to intelligently determine if one or more images are compatible with the intelligent device 22. Each compatible image is copied to the intelligent device 22 whereas a non-compatible image is ignored. For this example, intelligent device 22(1) determines the first image is compatible, intelligent device 22(2) determines the second image is compatible, intelligent device 22(3) determines the third image is compatible, and intelligent devices 22(4), 22(5) both determine the fourth image is compatible. The compatible image is copied to the intelligent device 22. Although, in this example only one image is compatible per intelligent device 22, more than one image may be compatible such as is described in further detail below.
[0016] Referring now to Figures 2 and 3, an exemplary layout of a download file 30 in accordance with the present invention is provided. The download file 30 includes information to allow the intelligent device 22 to intelligently determine which image is compatible with the intelligent device 22. In the illustrated embodiment of the present invention, the download file 30 includes a signature 32, an end 36 and a plurality of target
blocks 34.
[0017] The signature 32 is an expected data, such as a string, that the intelligent device 22 can look at to determine if the download file 30 is valid. If the file 30 is invalid, the intelligent device 22 disregards the file 30; otherwise, it processes the file 30 to determine a compatible image. Disregard may include for example, not processing the rest of the download file 30 or not storing the download file 30 or combinations or portions thereof. It would be appreciated by those skilled in the art that the download file 30 may not include the signature 32 in which case the intelligent device 22 would process the file 30 to determine a compatible image. The end indicates the end of the download file 30. Each target block 34 includes a target identifier, one or more qualifiers, and one or more images.
[0018] The target identifier describes which intelligent devices 20 may use the image(s). The target identifier may include one or more target elements, such as a family identifier, a core variation, a type, a function type, a version, combinations thereof, and the like. The family identifier indicates which core processor family may use the image, e.g. NIOS, MIPS, PowerPC, or Intelx86. The core variation is based on the iamily identifier and indicates the variation of the core processor that is valid for the image. For example, when the femily identifier is PowerPC, the core variation might indicate MPC860 or MPC8260. The type is also based on the family identifier and indicates a type of communication s processor. For example, when the femily identifier is a MIPS, the type may be Wintegra Incorporated or Broadcom Corporation. The function type describes target functionality of the intelligent device 22, such as,.for an ONU the target may be a SFU or a MDU. The version indicates a version of the image. Depending on the context of use, different target elements maybe used. For example, if all the intelligent devices 22 within a network 14 have the same functionality the function type target element may be omitted. Likewise, depending on the context of use, one skilled in the art would recognize that additional target elements might be used.
[0019] The target identifier may be formatted in any suitable way, such as a bit field, ordinal, or combinations thereof, to provide the target elements for describing which intelligent devices 22 may use the image. Additionally, the target identifier may be
formatted as part of a header wherein the header has a header identifier and may include a header length and a next header field. The target identifier may have different formats based on the header identifier for example a target identifier may be formatted in a bit field for one header identifier and another target identifier may be formatted as an ordinal in a different header identifier. The header length provides the length of the header and the next header field provides information to access a next header.
[0020] The target identifier may indicate that the image is compatible to more than intelligent device 22. For example, the fourth image is compatible for intelligent device 22(4) and intelligent device 22(5). In this example the target identifier can indicate that the family identifier is the PowerPC and that the core variation indicates both MPC8260 and MPC860 in which case any images for the target identifier would be copied to the intelligent devices 22(4), 22(5). Those skilled in the art would appreciate that other combinations could also be made, such as, an image might be compatible with both an SFU and MDU target.
[0021] A qualifier advantageously provides information for downloading the image and/or updating memory in the intelligent device 22 for a specific target identifier. The qualifier may be an image type, an address, a compression identifier, a size, a start address, a filler, combinations thereof, and the like. The image type indicates the type of image such as boot or operational to allow different operations based on the type of image. The address provides a device address to where the image is to be written. The compression identifier identifies if the image is in a compressed format. When the image is in a compressed format it may be uncompressed before writing to the address. This is preferable for a boot image since image should be in an executable form upon rebooting. Alternatively, the file may be written in the compressed format, for example when writing an operation image it may be desirable to keep the image compressed to save memory, such as a flash memory, within the intelligent device 22. Also, it is advantageous when writing the image in the compressed format to also write the qualifiers to memory so that when the image is uncompressed the qualifiers relating to the uncompressing the image are available. The size may indicate the size of the compressed and/or uncompressed image. A start address indicates an address to start execution of the image. The filler qualifier includes a value, fill size and fill address
fields. The fill qualifier allows certain areas of memory, including a disk memory, to be written to using the value. The area of memory is specified by the fill address. The fill size determines how much memory to fill with the fill value.
[0022] Depending on the context of use more than one qualifier may be used to qualify information about the target identifier. For example, a target block 32 having a boot image may include the image type, the address, and the start address. In the foregoing example, the image type might not be needed when the intelligent device 22 doesn't specifically need to know the image type but simply uses the other qualifiers. Additional qualifiers may be used without departing from the present invention.
[0023] The qualifier may be formatted in any suitable way, such as a bit field, or ordinal to provide the qualifying information about a target identifier. Additionally, the qualifier may be formatted as part of a header wherein the header has a header identifier and may include a header length and a next header field. Similarly to the target identifier, the qualifier may have different formats based on the header identifier. The header length provides the length of the header and the next header field provides information to access a next header.
[0024] After the intelligent device 22 determines the signature to be valid, the intelligent device 22 checks each target block 34 to determine a compatible image. The intelligent device 22 includes one or more device identifiers having information corresponding to the target identifiers. The device identifier may include one or more target elements, such as a device family identifier, a device core variation, a device type, a device target, a device version, combinations thereof, and the like. The device family identifier indicates the core processor family used by the device. The device core variation is based on the device family identifier and indicates the variation of the core processor used by the device. The device type is also based on the family identifier and indicates a type of communication s processor used by the device. The device version indicates a version of the image used by the device As with the target identifier, the device identifier may be formatted in any suitable way, such as a bit field or ordinal, to provide the identifiers for describing what is used by the device.
[0025] Once a target block 34 has been identified as compatible, the qualifiers are
used to download the image. Once the image is downloaded, the address provided in the start address may be used if the device is restarted.
[0026] As would be recognized by those skilled in the art, it would be possible that more than one target block 34 would be identified as having a compatible image for the intelligent device 22. It is preferable that the download file 30 be organized such that the target blocks 34 having more specific target identifiers would precede the target blocks 34 having more generic target identifiers. If. for example, a first target block had target identifiers indicating an image compatible with a MPC8260 core variation of PowerPC core processor family and a second target block had a target identifiers indicating image compatible with a MPC8260 or a MPC860 core variations of PowerPC core processor family. The first target block has more specific target identifiers since it only matches with one type of core variation. If the target blocks 34 are organized from more specific to more general format the device could discard the remainder of the file 30 once a target block is identified as compatible. It would be appreciated by those skilled in the art that a target black 34 may not be identified as having a compatible image for the intelligent device 22 in which case an image is not downloaded.
[0027] Depending on the context of use, it may be desirable to have separate download files 30 for different vendors since each vendor might have a different signature 32. Additionally, it may be desirable, depending on the context of use, to have separate download files for different network elements managed by the management system 12. It is preferable that the download file 30 be used in a broadband network having a higher bandwidth such as a PON3 DSL, wireless, or cable networks.
[0028] The invention may be embodied in many different forms and may be applied to many different types of networks, protocols, and protocol versions and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Thus, the scope of the invention should be determined based upon the appended claims and their legal equivalents, rather than the specific embodiments described above.