Abstract:
A method and apparatus for providing access to configuration files even if a remote server containing configuration profile information is unavailable includes caching known configuration files locally, and using the known configuration files in the event of a remote server failure or overload.

Description:
[0001]    The present invention relates generally to telecommunications, and more specifically to startup processes for telecommunications devices.  
         BACKGROUND  
         [0002]    Whenever an end user communications access device boots up, it must be configured. For communications devices attached to an internet, intranet, or other communications network, the boot process typically involves retrieving from a central server associated with an internet service provider or the like a series of configuration profiles containing profile and configuration information for such communications devices. The configuration profile is configured by a local server such as a dynamic host configuration protocol (DHCP) server into a configuration file. This configuration file provides the communication device with the initialization sequences that it needs to properly configure itself for communication with the network, and for proper operation. Configuration files are used for configuring such communications devices as cable modems, modems, and the like.  
           [0003]    Centralized storage allows an internet service provider the opportunity to control access and to make configuration settings changes according to potentially dynamically changing situations. However, for the most part, the majority of a configuration file remains constant from one boot sequence to another. Further, minor changes in a configuration file do not necessarily render the configuration file invalid. An older configuration file may simply be not as up to date as a new configuration file, but will serve to allow the device to boot, and even to connect to the network or the like.  
           [0004]    There are instances when a central server storing configuration profiles and configuration information is not available. Such times include, by way of example only and not by way of limitation, situations in which a power outage has occurred or a communication line has been cut. Following a power outage, a large number of devices may attempt to reconnect to the network at the same time. An overload of the resources of the central server can lead to server malfunctions, lockouts of some devices trying to access the configuration information, or very slow access times. In cases of power outages and other unanticipated interruptions of availability of the central server, configuration information is unlikely to have changed significantly, if at all.  
           [0005]    In other instances, the central server may be unavailable due to system maintenance or problems at the internet service provider. This does not necessarily mean that the network itself is unavailable, but if an access device cannot get configuration information, it will not be able to boot properly.  
           [0006]    Therefore, there is a need in the art for an improved method for booting access devices when a central server containing configuration profile information is not available.  
         SUMMARY  
         [0007]    In one embodiment, a method of booting a communications access device includes contacting a central server for a configuration profile for the access device, and retrieving a new configuration profile for the access device if the central server is available. If a new configuration profile is retrieved, a new configuration file is created from the retrieved profile, and a copy of the new configuration file is stored in a secondary location. If the central server is unavailable, a known configuration file is retrieved from a secondary location. The device is booted using the known configuration file if the central server is unavailable and the new configuration file if the central server is available.  
           [0008]    In another embodiment, a method for providing boot access to a network includes storing a known configuration file for an access device locally, attempting to retrieve a new configuration profile from a remote server upon receiving a boot request at a local server, retrieving the new configuration profile and creating a new configuration file from the retrieved profile if the remote server is available, and retrieving the stored known configuration file if the remote server is not available.  
           [0009]    In still another embodiment, a boot access configuration method includes retrieving a configuration profile from a central server, creating a new configuration file from the profile, and storing a copy of the configuration file on a local server. The new configuration file is provided to an access device if created, and a retrieved copy is provided to the access device if the central server is unavailable during a subsequent access.  
           [0010]    In yet another embodiment, a method of re-registering a communications access device after a failure condition includes determining whether a predetermined failure condition of a central server connection has occurred, and retrieving a cached configuration file from a local storage device if the predetermined failure condition is met.  
           [0011]    In another embodiment, a communications system includes a provisioning server connected to a central server, with the central server storing configuration settings for access devices connected to the provisioning server, a data structure on the provisioning server storing configuration files created from configuration settings for the access devices connected to the provisioning server, and a computer program executing a method. The method includes retrieving a new configuration profile from the central server for an access device requesting access, creating a new configuration file from the retrieved profile, caching the new configuration file to the data structure, and booting the device using the new configuration file if the central server is available. If the central server is unavailable, a known configuration file is retrieved from the provisioning server if the central server is unavailable, and the device is booted using the known configuration file.  
           [0012]    Other embodiments are described and claimed.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]    [0013]FIG. 1 is a block diagram of a system according to one embodiment of the present invention;  
         [0014]    [0014]FIG. 2 is a flow chart diagram of a method according to another embodiment of the present invention;  
         [0015]    [0015]FIG. 3A is a block diagram of a system according to yet another embodiment of the present invention;  
         [0016]    [0016]FIG. 3B is a message flow diagram according to another embodiment of the present invention;  
         [0017]    [0017]FIG. 3C is a message flow diagram according to yet another embodiment of the present invention;  
         [0018]    [0018]FIG. 4 is a flow chart diagram of a method according to still another embodiment of the present invention;  
         [0019]    [0019]FIG. 5 is a block diagram of a communications system according to another embodiment of the present invention;  
         [0020]    [0020]FIG. 6 is a flow chart diagram of a method according to another embodiment of the present invention; and  
         [0021]    [0021]FIG. 7 is a block diagram of a system according to yet another embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0022]    In the following detailed description of the embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention.  
         [0023]    Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.  
         [0024]    Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.  
         [0025]    Referring to FIG. 1, a system  100  according to one embodiment of the present invention is shown. System  100  comprises a provisioning or secondary server  102 . In one embodiment, the provisioning server is a distributed server connectable to multiple cable modems or other customer provided equipment (CPE). The provisioning server stores configuration files created from configuration profile information that is stored on a central server to which the provisioning server connects. A computer program resident on the provisioning server receives access requests from one or more of the access devices  104  connected to the provisioning server  102 .  
         [0026]    When a request is received to connect an access device that is being booted to the network, the computer program requests the configuration information for the particular access device from the central server. If the central server is operable, and the access device  104  is registered with the central server, the configuration information is returned from the central server to the provisioning server, a configuration file is created from the configuration information, and the configuration file is passed to the access device. If the central server is unavailable, the computer program consults a locally stored data file of known configuration files for the access devices, and retrieves a last known configuration file for the particular access device, based on unique information present on each access device.  
         [0027]    The provisioning server  102  stores the known configuration files on a hard drive or other mass storage within the server  102  in one embodiment, and stores the known configuration files on an external, local mass storage device such as a hard disk or the like in another embodiment.  
         [0028]    [0028]FIG. 2 is a flow chart diagram of a method  200  according to another embodiment of the present invention. Method  200  comprises an access device contacting a local server connected to a central server for a configuration file in block  202 , and determining in block  204  whether the central server is available. If the central server is available, configuration profile information is retrieved from the central server in block  206 , and a configuration file is created from the profile information in block  207 . If the central server is not available, a known configuration file is retrieved from a secondary location in block  208 . In block  210 , the device is booted with either a new configuration file generated with configuration profile information from the central server if it is available, or with the known configuration file retrieved from the secondary location. The secondary location in one embodiment is a local provisioning server. The central server in one embodiment is a remote server.  
         [0029]    The various process blocks of method  200  are carried out for a cable modem in the following ways. Referring to FIG. 3A, a communications network is shown. The communications network comprises a cable modem  302  or other CPE connected to a personal computer (PC)  304 . The cable modem  302  is connected to a cable modem termination system (CMTS)  308 , which is in turn connected to communicate with a dynamic host configuration protocol (DHCP) server  306  with trivial file transfer protocol (TFTP) capability. The DHCP server  306  is connected to communicate with a directory server  310 , and with a disk or other mass storage system  310 . The directory server  310  is in one embodiment a remote server. In another embodiment, the directory server  310  is a locally maintained server separate from the DHCP server  306 .  
         [0030]    [0030]FIG. 3B is a message flow diagram for a process of creating a configuration file for an access device in which a central server is available. When a user wishes to access the communications network to which it is connected, it sends a request ( 350 ) to a dynamic host configuration protocol (DHCP) server  306  for configuration information. The request is received at a cable modem termination system (CMTS)  308 . The CTMS inserts a gateway interface address and forwards the request  3 ( 52 ) to the DHCP server  306 . The DHCP receives the request, and attempts to retrieve a cable modem profile ( 354 ) for creating a configuration file from a directory server  310 . If the directory server is available, a cable modem profile is retrieved ( 356 ) from the directory server  310 , a new configuration file is created from the retrieved profile, and the configuration file is stored or cached locally on the DHCP server  306  or other locally available storage such as disk  312 . Once the cable modem profile has been received and stored locally, the DHCP server  306  sends a DHCP offer ( 358 ) to the cable modem  302 . The DHCP offer contains information regarding the internet protocol (IP) address, a subnet mask, the domain naming system (DNS), the gateway interface address, and a trivial file transfer protocol (TFTP) file name for the configuration file.  
         [0031]    Once the DHCP offer has been received by the cable modem  302 , the cable modem sends a DHCP request message ( 360 ) confirming receipt of the offer, requesting access given the IP address, subnet mask, DNS, and gateway interface address. If this message sent to the DHCP server  306  from the cable modem  302  contains the proper information, that is the information transmitted in the DHCP offer, the DHCP server  306  acknowledges the request ( 362 ). Once the request is made and acknowledged, the cable modem  302  obtains the new configuration file ( 364 ) having the transmitted configuration file name via TFTP.  
         [0032]    [0032]FIG. 3C is a message flow diagram for a process of creating a configuration file for an access device in which a central server is not available. Messages  350 ,  352 , and  354  are identical to those of FIG. 3B. If the central server is not available, a refusal ( 370 ) or no message at all is received from the central server. At this point, if a cable modem profile is not received from the directory server  310 , then a locally cached copy of the last known configuration file created from a cable modem profile received from the directory server  310  is retrieved from local storage. As has been mentioned, such storage is on the DHCP server  306 , disk  312 , or the like. Once the last known configuration has been retrieved locally, the DHCP server  306  sends a DHCP offer ( 358 ) to the cable modem  302 . The DHCP offer contains information regarding the internet protocol (IP) address, a subnet mask, the domain naming system (DNS), the gateway interface address, and a trivial file transfer protocol (TFTP) file name for the locally retrieved configuration file. Once the DHCP offer has been received by the cable modem  302 , the cable modem sends a DHCP request message ( 360 ) confirming receipt of the offer, requesting access given the IP address, subnet mask, DNS, and gateway interface address. If this message sent to the DHCP server  306  from the cable modem  302  contains the proper information, that is the information transmitted in the DHCP offer, the DHCP server  306  acknowledges the request ( 362 ). Once the request is made and acknowledged, the cable modem  302  obtains the locally retrieved configuration file ( 372 ) 1having the transmitted locally retrieved configuration file name via TFTP.  
         [0033]    In one embodiment, the directory server and the DHCP server are maintained at different locations and by different entities. The DHCP server relies on the directory server for configuration files, but stores known good files locally so that in the event of unavailability of the directory server, a request for configuration information from a cable modem or other CPE requiring configuration information is still granted.  
         [0034]    In another embodiment, the directory server and the DHCP server are maintained at the same location. Storage of the cable modem profile is still at the directory server, but the directory server is maintained at the same location as the DHCP server. The main profile information is maintained on the directory server, and cached configuration files are stored on the DHCP server or other local disk storage and the like, as discussed above.  
         [0035]    The storage of cached configuration files for cable modems or other CPEs connected to the local DHCP server allows for fast re-registration of devices after a mass interruption of service, such as occurs with a power outage, DHCP server failure, severed pipeline, or the like. Such a mass interruption of service is typically remedied all at once, and therefore a large number of CPEs or cable modems attempt to re-register with the DHCP server all at once. When such an event occurs, the DHCP server is often taxed beyond its capabilities, and it may fail, run very slowly, or the like. This results in an inability of users to reconnect to a network. In the case of business connections, such a network failure compounds with an inability to quickly reconnect after the failure is remedied, resulting in dissatisfied customers. Further, in some situations, a directory server may be overwhelmed with requests for configuration information, for example, early on a Monday morning when businesses typically open.  
         [0036]    In another embodiment  400  shown in flow chart diagram in FIG. 4, a method for fast re-registration of cable modems and CPEs to a network is shown. This method  400  is used, for example, after power is restored or recovery from a failure occurs. In such circumstances, it is likely that a large number of CPEs and cable modems will be attempting to re-register with the network, and it is unlikely that many significant or major changes will have occurred with the configuration information normally obtained from a directory server. Therefore, the method  400  retrieves cached configuration file information without contacting the directory server.  
         [0037]    Method  400  comprises determining whether a predetermined failure condition of a type not likely to have caused major configuration information changes has occurred and been remedied in block  402 , and retrieving a cached configuration file from local storage if the predetermined failure condition has been met in block  404 . Once the cached configuration file is retrieved in block  404 , the configuration file is made available to the device requesting access in block  406 . One process for making the file available is described above with respect to FIG. 3. Predetermined failure conditions for which fast re-registration methods are appropriate include, by way of example only and not by way of limitation, recovery from a central directory or DHCP server failure, restoration of power after an outage, restoration of line service after a failure, and the like. If a predetermined failure condition is not met, normal procedures for configuration file retrieval, such as those described above in methods  200  or  300 , are initiated in block  403 .  
         [0038]    In another embodiment shown in FIG. 5, a communications system  500  comprises a provisioning server  502  which is connectable to a central server such as directory server  550 . The central server  550  stores configuration settings and information for access devices such as cable modems and other CPEs which are connectable to a network via the provisioning server. A computer program  504  is stored on the provisioning server  502 , and executes from main memory of the provisioning server  502 . The computer program  504  accepts signals representative of a request from a cable modem or CPE, and sends a request to a directory server such as directory server  550  for a configuration profile for the specific cable modem or CPE which is requesting the information. The program monitors the response of the directory server. If the directory server is unavailable, no response is received, or information relating to the unavailability of the directory server is received. When no information or an unavailable signal is received from the directory server, the program retrieves a known good configuration file from local storage, either on a hard drive or other mass storage of the provisioning server, or on a separate local mass storage medium such as disk  506 , and is conveyed to the cable modem or CPE. If the directory server is available, the configuration information is retrieved from the directory server, a new configuration file is created from the retrieved information, and the new configuration file is conveyed to the cable modem or CPE.  
         [0039]    The program  504  in one embodiment executes a method  600  according to the flow chart diagram of FIG. 6. Method  600  comprises receiving a request for access to a network in block  602 , and determining the availability of a directory server in decision block  604 . If the directory server is available, process flow continues with retrieving configuration profile information from the directory server in block  606 . Once the configuration profile is retrieved, the configuration file profile is used to dynamically generate a configuration file in block  607 . The new configuration file is stored locally in block  608 , such as in a local server such as server  502  or a local disk such as disk  506 . A configuration file that has been cached or stored locally is retrieved in block  612  if the directory server is determined to be unavailable in block  604 . The appropriate configuration file is conveyed to access device in block  610 .  
         [0040]    A backup communications access system  700  is shown in FIG. 7. Backup communications access system  700  comprises a server  702  storing cached known good configuration information files for cable modems or other CPEs for which the server  702  provides access. The known good configuration files are stored in one embodiment in a data file or lookup table for quick access by the server  702 . In another embodiment, the configuration files are stored in a separate mass storage device such as disk  704 . A computer program such as computer program  504  discussed above runs on the server in the manner described above.  
         [0041]    It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.