METHOD AND APPARATUS FOR SELECTING A DOWNLOAD SOFTWARE IMAGE FOR A CABLE MODEM

Abstract: A data over cable modem requires initialization at each power-up. The initialization process includes downloading (88) a configuration file that includes the file name of an operating software table file. The cable modem compares (86) the operating software table file name with the version currently stored within the cable modem. If the two versions do not match, the cable modem downloads the new operating software table file. The operating software table file (90) lists cable modems according to class (based on the manufacturer and/or model number) and identifies the latest version of the operating software for each cable modem class. The cable modem determines the latest operating software version for its class and if this version differs from the version currently in use, the cable modem downloads (96) the latest operating software version.

Description: METHOD AND APPARATUS FOR SELECTING A DOWNLOAD SOFTWARE IMAGE FOR A CABLE MODEM BACKGROUND OF THE INVENTION The present invention is related generally to cable modems, and more specifically to a method and apparatus for providing modem configuration information, in a single configuration file, for a plurality of different cable modem hardware platforms. Internet access via a telephone modem is available today at speeds up to 56 Kbps. The telephone-based modem modulates and demodulates data signals for transmission over the voice band-based telephony network. Cable modems provide Internet access via the cable television system, which has a higher bandwidth and therefore can operate at higher data rates than the telephone system. The cable modem provides connectivity between a user's computer and the cable system headend, at which point the cable operator provides access to the Internet, via, for example, a Tl line. In a cable network, data transmitted from the network headend to the computer user is referred to as downstream data; data transmitted from the user to the network headend is referred to as upstream data. Figure 1 is a block diagram of a cable system 10 including a cable modem 20 in communications with a cable system headend, not shown in Figure 1, from which the cable television program signals originate and which further provides a connection to the Internet or other external network. At the subscriber's premises, a l-to-2 splitter 14 splits the incoming signal. The television program signal is displayed on a television 18 under control of a set top box 16. The second output from the l-to-2 splitter 14 provides connectivity to the cable modem 20. Downstream signals from the headend are provided to an RF (radio frequency) tuner 22, tuned to a frequency band allocated to the cable modem 20 during the modem's start-up phase. Generally, the downstream signal uses QAM (quadrature amplitude modulation) and therefore is demodulated in a QAM demodulator 24. The demodulated signal is input to a media access controller 26. The baseband data signal is input to a data and control logic unit 28 that controls overall operation of the cable modem 20 and further provides data control functions. A computer 30 is connected to the data and control logic unit 28 for receiving data sent in the downstream direction and sending data in the upstream direction. The outgoing data passes from the computer 30 or other data communications device, through the data and control logic unit 28, the media access controller 26, and finally is modulated by a QPSK (quadrature phase-shift keyed)/QAM modulator. The choice of QPSK or QAM is set forth in configuration information provided to each cable modem 20. The upstream data then passes through the l-to-2 splitter 14 for transmission to. the headend of the cable system and eventually for transmission to the external network. In one embodiment, the downstream signal employs 64/256 QAM signaling capable of delivering up to 30 to 40 Mbps of data over a 6 MHz cable channel. Upstream data uses either QPSK or 16 QAM signaling with data rates available from 320 Kbps to 10 Mbps. Both the upstream and downstream data rates may be flexibly configured to match the data rate needs of the user. For instance, the cable modem 20 utilized by a business user could be programmed to receive and transmit at relatively high data rates in both directions. A residential user, on the other hand, may have a cable modem 20 configured with wider bandwidth access (and therefore a higher data rate) in the downstream direction to download data from the Internet, while limited to a lower speed for upstream data transmissions. At a cable system headend 45, illustrated in Figure 2, upstream data from subscribers 50 transmitted over a cable network 51 is demodulated and processed by a cable modem termination system 52, that performs data switching as it routes data from the many subscribers 50 to the Internet, World Wide Web, or another external network, as shown. Similarly, the cable modem termination system 52 receives data from the external network and provides the necessary data switching to route the received data downstream to the appropriate subscriber 50 via a headend transmitter 54. The headend transmitter 54 also receives the program signals (via a satellite downlink, terrestrial microwave or landlines) for broadcast to the subscribers 50. The subscriber data is carried over a 6 MHz channel, which is the spectrum size allocated to a cable television channel for broadcast of program signals. At the subscriber's location, the program signal is received by the set top box 16 while the downstream data is separately received by the cable modem 20. The RF tuner 22 tunes out the program signal from the cable modem 20 and the set top box 16 tunes out the data signal. The number of upstream and downstream channels in a given cable modem termination system is engineered based on the service area, the number of users, the data rate promised to each user and the available spectrum. An element management system (not shown) is yet another component of the cable system 10 located at the cable headend 45 for configuring and managing a plurality of cable modem termination systems 52. The operation of the element management system includes provisioning, day-to-day administration of the system, monitoring, activating alarms and testing of the various components of the cable modem termination system 52. Generally, a single element management system is located at the cable system network operations center and can support many cable modem termination systems 52 in a wide geographic area. When the cable modem 20 is powered-up, a connection is created to the cable modem termination system 52 via the cable network 51. This connection is made using the Internet protocol (IP) format so that data from the Internet and World Wide Web received by the cable termination system 52, can be forwarded downstream to a cable modem 20 of a subscriber 50 via the cable network 51. In a typical cable modem initialization (i.e., power-up) scenario, the cable modem 20 contacts a dynamic host configuration protocol server using the dynamic host configuration protocol (DHCP). Many such DHCP servers are available on the network, and the cable modem 20 simply broadcasts to all DHCP servers. Any DHCP server can answer the broadcast request. From the DHCP server, the cable modem 20 obtains an IP address, other IP related operational parameters, and the address of its configuration file. The configuration file is then downloaded from a trivial file transfer protocol (TFTP) server, using the configuration file address supplied by the DHCP sever. As is well known in the art, TFTP is a simple protocol for transferring files where any error occurring during file transfer typically causes a termination of the file transfer process. TFTP offers limited error correcting capability. A TFTP file consists of multiple 512-byte blocks in succession. The receiver processes the 512 byte blocks until a block having fewer than 512 bytes or zero bytes is received. At this point, the receiving device recognizes that the TFTP file transfer has ended. The configuration file downloaded from the TFTP server includes various modem configuration setting such as access control information, downstream and upstream channel assignments, security configuration information, and the TFTP server address. Because the DHCP server provides only one configuration file address, all the cable modems on the cable system 10 are configured from this file. A single common configuration file is inappropriate given that many different brands and models of cable modems are available. The file name and location for the cable modem operating software is also included within the configuration file. Therefore, all cable modems on the system will have to use the same operating software. The contents of the configuration file are governed by the cable modem industry standard referred to as DOCSIS (Data Over Cable Service Interface Standard). In accord with that standard, only a single operating software file name can be included within the configuration file. Disadvantageously, use of the same operating software for the various cable modem brands and models precludes the operation of unique features and characteristics that certain cable modems may offer. However, to support multiple cable modem brands and models, each modem would be required to have a unique configuration file at the TFTP server, from which its unique operating software could be derived. Further, then the DHCP server would be required to maintain a list of configuration files for each cable modem type. Use of multiple configuration files is not deemed practical in a cable system 10. Further, modifying the DHCP servers to accommodate multiple configuration file names violates the spirit of the DHCP standard and is expensive since a large number of DHCP servers in existing cable systems would require modifications. BRIEF DESCRIPTION OF THE DRAWINGS The present invention can be more easily understood and the further advantages and uses thereof more readily apparent, when considered in view of the description of the preferred embodiments and the following figures in which: Figure 1 is a block diagram of the prior art components at a subscribers site; Figure 2 is a block diagram of a prior art cable system; Figure 3 is a flow chart for downloading the latest software configuration information for a cable modem in accordance with the teachings of the present invention; and Figure 4 illustrates the various fields of the operating software file name. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Before describing in detail the particular method and apparatus for downloading the unique configuration file (and the latest revision thereof) for a cable modem in accordance with the present invention, it should be observed that the present invention resides primarily in a combination of steps and apparatus. Accordingly, the hardware components and method steps have been represented by conventional elements in the drawings, showing only those specific details that are pertinent to the present invention so as not to obscure the disclosure with structural details that will be readily apparent to those skilled in the art having the benefit of the description herein. As discussed above, there remains a need for a method and apparatus to allow a cable modem vendor and thus a cable modem operator to use one configuration file for all cable modem hardware platforms, given the constraints of certain cable modem standards and available hardware and software elements, while providing unique operating software for the various cable modem brands and models. In particular, the DOCSIS standard (Data Over Cable Service Interface Specification) sets forth the mechanism by which configuration information and operating software version information is supplied to 'a cable modem, such as the cable modem 20 of Figure 1. Therefore, the present invention operates within the constraints of these standards. The process of configuring a cable modem, which must be executed for each power up cycle, is illustrated in the flow chart of Figure 3. The Figure 3 process begins at a start step 70 when the cable modem 20 is powered up. The cable modem 20 then contacts the cable modem termination system 52 at a step 72 to receive a channel assignment (see a step 74) for transmitting data in both the upstream and downstream directions over the cable system 10. At a step 76, the cable modem 20 issues a request to a DHCP server for an IP address and also for the name of the configuration file containing the cable modem configuration parameters. The IP address request is broadcast to all available DHCP servers. The cable modem 20 simply chooses the IP address and configuration file name from the first DHCP server to respond to the broadcast request. The IP address will be used during the interactive session to allow the cable modem 20 to reach and communicate with sites on the Internet or other external network. The IP address is "leased" to the cable modem for a configurable period of time. Upon expiration of the lease period, the cable modem requests a renewal of the IP address from the DHCP server. Generally, the renewal request is granted. At a step 78, the DHCP server sends the name and address (i.e., the TFTP server address) of the configuration file to the cable modem 20. In the prior art, each DHCP server contains the same configuration file name. Thus, each cable modem in the cable system 10 receives this same configuration file name in response to its request. In the prior art, in accordance with the DOCSIS standard, the configuration file refers to a single operating software file name. Thus, operation of each cable modem is controlled by the same operating software. In accordance with the teaching of the present invention, the contents of the configuration file are used to direct the cable modem to its unique operating software file, which is based on the cable modem brand and model number, or an assigned cable modem class designator. At a step 80, the cable modem 20 uploads the configuration file, using the name supplied at the step 78, from the TFTP server. As is known by those skilled in the art, TFTP transmits data in serial blocks of 512 bytes. At the receiving end, the blocks are processed until a block containing fewer than 512 bytes or a block containing zero bytes is received. Either of the these two conditions is an indication that the TFTP session has concluded. As is known in the art, in addition to the cable modem operating software file name, which is the subject of the present invention, the configuration file includes many configuration settings including both standard configurations that are universal across all cable systems and vendor-specific configuration settings for a particular cable modem hardware platform. The contents of the configuration file are in a binary (.bin) type/length/value format. The type field is a single byte identifier defining the configuration parameter set forth in the value field. The length field is also a single byte field identifying the length of the immediately subsequent value field. The value field can range from 1 to 254 bytes and contains the specific value for the configuration parameter. In accordance with the teachings of the present invention, the configuration file downloaded at the step 80 allows the cable system operator to configure all of its cable modems, irrespective of the manufacturer of the cable modem or the model, to operate with the operating software intended specifically for that cable modem. According to the present invention, in place of the operating software file name as taught by the prior art, the configuration file includes the name of a cable modem operating software table. Also, embedded within the table file name is the latest revision number of the table. The table itself contains a modem hardware identifier (e.g., a class designator) and the operating software file name (including the latest revision number) for each modem hardware identifier. At a step 82, the configuration file is validated. If the configuration file is valid, the operating software field of the configuration file is read at a step 84. In the prior art, this field contains the file name of the relevant cable modem operating software. Disadvantageously this single file name and the single operating software file to which it relates, cannot accommodate the wide variety of cable modems used on a cable system, including cable modems from various manufacturers and also different model numbers from a single manufacturer. For example, when a cable modem manufacturer issues a new cable modem model with a different central processing unit than previous models, the operating software must be upgraded to take advantage of the additional features available from the new processor. If all the modems on a cable system are constrained to operate using the lowest common denominator operating software, certain features and capabilities that are incorporated into the hardware components will not be available Thus it is distinctly advantageous to identify the unique and most optimum operating software for each cable modem. At a step 86, the operating software table file name read at the step 84 is compared with the software table file name downloaded during a previous power-up process and now stored in the cable modem 20. If the version numbers do not match, then processing moves to a step 88 where the latest version of the operating software table file is downloaded from the TFTP file server. Recall that the TFTP file server address was provided to the cable modem 20 from the DHCP server at the step 78. Note that since the operating software table file name includes revision information, whenever an operating software file referenced in the table is changed, the file name must be changed also. Such operating software changes could be made, for instance due to a major software revision adding new features, a minor software revision fixing software bugs, or a patch revision wherein only a few code lines are modified. It should be further noted that the cable modem 20 first stores the earlier version of the operating software table file before downloading the new version at the step 88. In the . event that the download process corrupts the file or the file is unusable for whatever reason, the cable modem 20 can continue to utilize the old file version until a new version is successfully downloaded. If the current revision file stored in the cable modem 20 is in fact the latest version of that file, or once the latest version is downloaded at the step 88, processing continues to a step 90 where the revision table file is consulted using the modem class or other hardware identifier as an index into the table. An exemplary operating software table file is shown in the table below: Modem Class Operating Software File Name 32 mot020000t51p5g2.bin 33 mot020000t51p5g2.bin 34 mot030000t51p5g2.bin 35 mot030100t51p5g2.bin 36 mot030001t51p5g2.bin The left hand column identifies each modem on the cable system 10 by a modem class number. The right hand column identifies the operating software by file name, for each modem class. Figure 4 is an exemplary operating software file name wherein the meaning of the various elements of that file name are identified. A column 110 identifies the cable modem vendor manufacturer. Columns 112, 114 and 116, identify, respectively, major revision numbers, minor revision numbers and patch revision numbers. The two columns identified by reference character 118 are utilized by the modem vendor to internally track various stages of a new software release. The reference character 120 indicates the software generation for the modem. Finally, the document extension 122 indicates that the contents of the file are in binary form. . Implementation of the present invention requires that each cable modem include a hardware identifier (which in one embodiment would be stored in non- volatile memory during the manufacturing process) so that the operating software table can be used to identify the latest operating software version. Assuming the modem class is identified by class number 34, then the file name for the applicable cable modem operating software is mot030000t51p5g2.bin. Note that each revision to an operating software file is reflected in a change to the file name. Therefore, at a step 92 the cable modem 20 compares the operating software file name from the table with the operating software file name stored in the cable modem memory, as last used for operating the cable modem 20. A match between these two file names indicates that the cable modem 20 is already using the latest operating software. Therefore, it can be concluded that the new revision table file name must have been due to a change in another operating software file name, not a change in the operating software file name for this modem. At a step 94, the cable modem 20 stores the operating software table file name, so that at the next power-up this stored value can be compared with the value in the operating software field of the configuration file (as set forth at the steps 84 and 86) to determine whether any changes have been made in the table. If the decision step 92 indicates that the cable modem 20 is not using the latest version of the cable modem operating software, then processing proceeds to a step 96 where the cable modem downloads the latest operating software version from the TFTP server using TFTP protocol, where the TFTP server address was obtained from the DHCP server at the step 76. In one embodiment of the present invention, the latest operating software version will always be downloaded, even if the file name reflects only a minor revision or a patch change from the last version. Prior to execution of the download step 96, the cable modem 20 first copies and stores the old software version into another memory location so that when the new download overwrites the old version in memory, the old version will still be available in the event the new operating software is corrupted during the download process or for some reasons is unusable. After the download at the step 96 the table file name is stored at the step 94. The modem then begins its operational state as shown at a step 98. In accordance with the teaching of the present invention, whenever operating software is revised for a particular cable modem, the operating software file name must be changed to reflect the revision. The operating software table file is then updated with the revised operating software file name in accord with the modem identifier. Finally, the table file name must also be revised to reflect the operating software revision. In another embodiment of the present invention, the DHCP server can interrogate the. cable modem 20 to determine the cable modem brand and model number, i.e., the modem class. Based on this information, the DHCP server identifies the applicable cable modem operating software file name as shown in the table above. The DHCP server then sends this file name to the cable modem 20 for comparison with the current operating software version stored in the cable modem. If the two software versions are the same, then the cable modem can move to its operational state. If the two versions are different, then the cable modem 20 must download the new operating software version as shown at the step 96 of Figure 3. In yet another embodiment of the present invention, in lieu of the file name set forth in the operating software table file, (see table above) there can be displayed simply a version number indicative of the latest version of the operating software for the associated cable modem class. In this embodiment, upon retrieving and reading the operating software table, the cable modem determines the version number for the currently used operating software and compares that value with the version value set forth in the table. If the version numbers do not match, the cable modem is not using the latest operating software version and should therefore download that version before proceeding, to ensure that all the capabilities included within the cable modem are utilized during operation. In yet another embodiment of the present invention, the process of version checking as indicated by the steps 86 and 92 of Figure 3, can be deleted and in its place the files can be downloaded each time the Figure 3 process is executed. Thus, in this embodiment, the operating software table and the operating software file are downloaded during each start-up process, as compared with the Figure 3 process where these files are downloaded only if the version number has changed from the last download. While the invention has been described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes made be made and equivalent elements may be substituted for elements thereof without departing from the scope of the present invention. In addition, modifications may be made to adapt the teachings of the present invention to a particular situation without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims.

Claims: WHAT IS CLAIMED IS: 1. In a network including a plurality of network devices, each network device assigned to a class based on device characteristics, a method for providing a software file to the network device, said method comprising: (a) downloading a table to the network device, wherein the table includes a list of software file names, wherein each software file name is associated with a network device class; (b) determining the network device class; (c) using the network device class as an index into the table, determining the software file applicable to the network device; and (d) downloading the software file identified at the step (c). 2. The method of claim 1 wherein the network device is a cable modem operational in a data-over-cable network. 3. The method of claim 1 wherein the network device class is determined by at least one of the network device manufacturer and the network device model number. 4. The method of claim 3 wherein the network device class is stored within the network device. 5. The method of claim 1 wherein the downloaded software file provides certain operational information for the network device. 6. The method of claim 1 wherein the downloaded software file includes the network device operating software. 7. The method of claim 1 wherein step (c) further comprises: (cl) using the network device as an index into the table, determining the software file applicable to the network device; and (c2) comparing the version of the software file determined at the step (cl) with the version of the software file used by the network device, wherein if the result of the step (c2) indicates a difference between the compared versions, then the step (d) is executed. 8. The method of claim 7 wherein the version number of the software file is included within the software file name. 9. The method of claim 1 wherein the table is included within a configuration file for the network device. 10. The method of claim 9 wherein the table file name is included within the operating software field of the configuration file, and wherein the table is downloaded using the table file name. 11. In a network including a plurality of network devices, wherein each network device is assigned to a class based on device characteristics, a method for providing operational software to each network device, said method comprising: (a) downloading a configuration file to the network device, wherein the configuration file includes the file name of a software table; (b) determining the version of the software table; (c) comparing the version of the software table with the version stored in the network device; (d) if the result of the step (c) indicates a difference between the compared versions, downloading the software table identified at the step (b), wherein the software table includes a list of operational software file names, wherein each file name is associated with a network device class; (e) determining the network device class; (f) using the network device class as an index into the software table, determining the operational software applicable to the network device; (g) comparing the version of the operational software determined at the step (f) with the version of the operational software used by the network device; and (h) if the result of the step (g) indicates a difference between the compared versions, downloading the operational software identified at the step (f). 12. The method of claim 11 wherein the network device is a cable modem operational in a data-over-cable network. 13. The method of claim 11 wherein the network device class is determined by at least one of the network device manufacturer and the network device model number, and wherein the network device class is stored in the network device. 14. The method of claim 11 wherein the version number of the operational software is included within the operational software file name, wherein the file name of the operational software is determined at the step (f), and wherein the step (g) further comprises comparing the file name of the operational software determined at the step (f) with the file name of the operational software used by the network device. 15. The method of claim 11 wherein the version number of the software table is included within the software table file name, wherein the file name of the software table is determined at the step (b), and wherein the step (c) further comprises comparing the file name of the software table determined at the step (b) with the file name of the software table used by the network device. 16. The method of claim 11 further comprising determining the validity of the configuration file prior to downloading the configuration file at the step (a). 17. In a network including a plurality of network devices, wherein each network device is assigned to a class based on one or more device characteristics, a method for providing operational software to each network device, said method comprising: (a) downloading a configuration file to the network device, wherein the configuration file includes a software table; (b) determining the version of the software table; (c) comparing the version of the software table with the version stored in the network device; (d) if the result of the step (c) indicates a difference between the compared versions, downloading the software table identified at the step (b), wherein the software table includes operational software file names, wherein each operational software file is associated with a network device class; (e) determining the network device class; (f) using the network device class as an index into the software table, determining the operational software file applicable to the network device; (g) comparing the version of the operational software file determined at the step (f) with the version of the operational software file used by the network device; and (h) if the result of the step (g) indicates a difference between the compared versions, downloading the operational software file identified at the step (f). 18. An article of manufacture comprising: a computer-usable medium having computer-readable program code embodied therein for providing an initialization file to a network device, comprising: (a) computer-readable program code configured to cause a computer to download a table to the network device, wherein the table includes a list of file names, wherein each file name is associated with a network device class; (b) computer-readable program code configured to determine the network device class; (c) computer-readable program code configured to cause a computer to determine the file name applicable to the network device, using the network device class as an index into the table; (d) computer-readable program code configured to cause a computer to compare the version of the file determined at the step (c) with the version of the file used by the network device; and (e) computer-readable program code configured to cause a computer to download the file identified at the step (c) if the result of the step (d) indicates a difference between the compared versions. 19. The article of manufacture of claim 18 wherein the computer-readable program code is embodied in a network device.

Inventors: DINATALE JOHN, FERREIRA THOMAS M, FOLEY STEPHEN, SCULLY BRIAN J, DINATALE, JOHN, FERREIRA, THOMAS, M., FOLEY, STEPHEN, SCULLY, BRIAN, J.
Applicants: MOTOROLA INC, MOTOROLA, INC.
Application year: 2001
Main classification: G06F15
IPC codes: G06F9