ROBUST METHOD AND APPARATUS FOR PROCESSING CABLE MODEM CONFIGURATION FILES

Abstract: An apparatus for processing simple network management protocol (SNMP) object identifiers (OID's) in a network management file. The objects are classified as to scalar or tabular values and further classified according to the number of digits in each object identifier and the number of unlike values within the digits. Packet data units are then created incorporating similar object types. Each packet data unit is then individually processed. By first classifying (222) and then processing (224) the SNMP objects, the impact of corrupted or erred objects on the network management process is minimized.

Description: ROBUST METHOD AND APPARATUS FOR PROCESSING CABLE MODEM CONFIGURATION FILES FIELD OF THE INVENTION 5 The present invention is related generally to cable modems, and more specifically to a method and apparatus for robust processing of cable modem configuration files where the file is formatted as simple network management protocol (SNMP) objects. i o BACKGROUND OF THE INVENTION 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 telephony network. By contrast, a cable modem provides Internet access via the cable television system, which offers a higher bandwidth 15 and therefore operates at higher data rates than the telephone system. The cable modem provides connectivity between the user's computer or other communications device and the cable system headend, from which access is available to the Internet or other external network, via, for example Tl transmission line. In a cable network, data transmitted f om the network headend to the user or subscriber is referred to as downstream data; 2 o data transmitted from the user to the network headend is referred to as upstream data. An exemplary prior art two-way cable system is illustrated in block diagram form in FIG. 1. The prior art cable system includes headend equipment 101, a hybrid fiber coaxial (HFC) cable plant 103, a plurality of cable modems 105 and 106 (only two shown), and a corresponding plurality of subscriber communications devices 107 25 and 108 (only two shown) coupled to the cable modems 105 and 106 via corresponding communications links 116 and 117. Exemplary communications devices 107 and 108 include a computer, a television or a telephone. As is well known in the are, the headend equipment 101 includes processors, routers, switches, a broadband downstream transmitter, upstream receivers, splitters, combiners, 30 subscriber databases, network management stations, dynamic host configuration protocol (DHCP) servers and trivial file transfer protocol (TFTP) servers, call agents, media gateways, and billing systems . The HFC cable plant 103 includes fiber optic cables, coaxial cables, fiber/coax nodes, amplifiers, filters and taps, which support transmissions from the headend equipment 101 to the cable modems 105 and 106 over a shared downstream channel 110 and transmissions from the cable modems 105 and 106 to the headend equipment 101 over a shared upstream channel 112. Program signals are input to the headend equipment 101 as shown for broadcast to the cable subscribers, as discussed hereinbelow. Each channel 110 and 112 may utilize a different transmission protocol to communicate information. Typically, the modulation used to convey information over the downstream channel 110 (e.g., 64-ary quadrature amplitude modulation (QAM)) is of a higher order than the modulation used to convey information over the upstream channel 112 (e.g., differential quaternary phase shift keying (DQPSK) or 16-ary QAM), resulting in higher speed downstream transmissions than upstream transmissions. Cable systems in which upstream transmission speeds are less than downstream transmission speeds are typically referred to as "asymmetric" systems. Cable systems in which upstream transmission speeds are substantially equivalent to downstream transmission speeds are typically referred to as "symmetric" systems. In addition to the particular type of modulation used on each channel 110 and 112, the shared nature of each channel 110 and 112 introduces other protocol requirements. For example, since the downstream channel 110 is shared, the downstream protocol includes address information and each cable modem 105 and 106 monitors the downstream channel 110 for information packets addressed to it. Only information packets addressed to a particular cable modem 105 or 106 (or the attached communications devices 107 or 108) or addressed to all (i.e., broadcast messages) cable modems 105 or 106 (or the attached communications devices 107 or 108) are processed by the cable modems 105 and 106 and forwarded to the associated subscriber communications device 107 and 108 as appropriate. Since the upstream channel 112 is shared, the upstream channel access protocol is designed to reduce the likelihood of collisions of communicated information emanating from the cable modems 105 and 106. A number of multiple access protocols exist to define upstream channel access, including well-known protocols such as ALOHA, slotted- ALOHA, code division multiple access (CDMA), time division multiple access (TDMA), TDMA-with collision detect, and carrier sense multiple access (CSMA). Some two-way cable systems abide by and use the upstream and downstream channel protocols defined in the recently published standard entitled, Data-Over-Cable System Interface Specification (DOCSIS) Version 1.0. The upstream protocol defined by the DOCSIS standard is a TDMA approach where timing is controlled by the headend equipment 101 (referred to as the "cable modem termination station" (CMTS) in the DOCSIS standard) and communicated to the cable modems 105, 106 via time stamp synchronization messages transmitted over the downstream channel 110. Thus, for upstream communication to occur in an orderly, high quality manner, a time reference in each cable modem 105 and 106 must be substantially synchronized with a similar time reference in the headend equipment 101, before the modems 105 and 106 begin transmitting information provided by the subscriber communication devices 107 and 108. Absent proper synchronization, a transmission from one modem 105 may collide with a transmission from another modem 106. The headend equipment 101 is typically coupled via an appropriate communication link 119, such as a fiber-distributed data interface (FDDI) link or a 100 baseT Ethernet link, to an external network 114, such as the public switched telephone network (PSTN) or a wide area packetized network, such as the Internet. Thus, the two-way cable system provides communication connectivity between the subscriber communication devices 107 and 108 (and other similar devices not shown in Figure 1), and Internet servers, computer networks, and so forth on the external network 114. Figure 2 is a block diagram of the cable components at a user or subscriber site, including the cable modem 105. At the subscriber's premises, a splitter 134 splits the incoming signal so that a program signal is displayed on a television 140 under control of a set top box 138. The second output terminal from the splitter 134 provides connectivity to the cable modem 105. Downstream signals from the HFC cable plant 103 are supplied to an RF (Radio Frequency) turner 142, which is tuned to a frequency allocated to the cable modem 105 during the modem's start-up phase. The downstream signal is demodulated in a demodulator 144 and the output therefrom is input to a media access controller 26. The signal from the media access controller 146 is input to a data and control logic unit 148 that controls overall operation of the cable modem 105 and further provides data control and collection functions. The communication device 108 is connected to the data and control logic unit 148 of the cable modem 105 for receiving data sent in the downstream direction from the HFC cable plant 103 and for transmitting data in the upstream direction, typically with an ultimate destination of the external network 114. The outgoing data from the communication device 108 passes through the data and control logic unit 28, through the media access controller 26 and finally is modulated by a modulator 150. The upstream data then passes through the splitter 134 for transmission to the HFC cable plant 103. Returning to Figure 1, the headend equipment 101 also receives program signals (via satellite downlink, terrestrial microwaves or landlines) for broadcast to the communication devices 107 and 108 via the cable modem 105 and 106, respectively. The program signals are carried over a 6 MHz segment of the downstream channel 110, which is the spectrum bandwidth allocated to a cable television channel for the broadcast of program signals to all subscribers. (The International spectral bandwidth is 8 MHz.) At the subscriber's location, the program signal is received by the set top box 138, while the downstream data is separately received by the cable modem 105 or 106. The number of upstream and downstream data channels in a given cable modem system is engineered based on the service area, the number of users, the data rate allocated to each user and the available spectrum. When the cable modem 105 or 106 is powered up, a connection is created to the headend equipment 101 using the Internet protocol (IP) so that IP-formatted data from the external network 114 can be forwarded downstream to the cable modem 105 or 106. After power-up, the cable modems 105 and 106 receive a channel assignment from the headend equipment 101. The cable modems 105 and 106 also contact a dynamic host configuration protocol (DHCP) sever to download the name of the modem configuration file. Using this configuration file name, the cable modems 105 and 106 contact the appropriate trivial file transfer protocol (TFTP) server where the configuration file is stored. Finally, the configuration file is downloaded from the TFTP server to the cable modems 105 and 106. Information in the configuration file allows the cable modems 105 and 106 to identify the applicable cable modem operating software and the location from which that operating software can be downloaded to the cable modems 105 and 106. A network manager executes network management functions that monitor and control the various network elements. Exemplary network elements include, the cable modems 105 and 106, hosts, gateways, terminals and servers. Each network element includes a management agent for performing the network management functions as requested by the network manager. The SNMP (simple network management protocol) protocol is used to communicate the network management information between the network management station and the agents within each network element. The SNMP protocol defines the scope of management information, the format for representing that management information, the operations amenable to management control and, the format and interpretation of data exchanges between the management entities, i.e., the network management station and the management agents. The cable modems 105 and 106 can be configured to block access by non-authorized management stations. According to the SNMP protocol, the network management information is represented in the ASN.l language (Abstract Syntax Notation, Version 1). The SNMP protocol defines the various network management operations as alterations to or inspections of variables in a TLV (type-length-value) data string that is stored within each network device agent. Thus the network agent of a hardware device using the SNMP protocol interacts with the management station to retrieve (get) or alter (set) variables in the data string. Use of the TLV format limits the number of management functions that can be implemented by the management station to two: one operation assigns a value to a specified configuration or parameter data string and the other operation retrieves a value. The configurations or parameters that can be managed by the network manager are set forth in a management information base (MIB) within each network device agent. The simple network management protocol is the most common protocol used by network management software applications to query or control a network agent. A network agent is software that executes on network devices, such as a work station or a router, and has the ability to gather information about device operation, which in turn can be retrieved by the network management station. The network management station gathers and stores this data. Both the network manager and the network agent execute network management software that enables data interchange between the network manager and the controlled network agents. Also, the network management station runs network management software that enables it to perform network management functions, as is well known to those skilled in the art. The Internet protocol version of SNMP is used by most network management software applications. The SNMP protocol operates on top of the Internet protocol. The management information base (MIB) describes the data that is retrievable or modifiable over a network by a network management station. Through the management information base, the network management station knows what information the network agent has and the aspects of the device that are controllable. The control functions executed by the network manager include those related to the device's interaction with the network and operation of the device itself. The management information base on the network agent is a repository of characters that identify certain operational parameters of the network device, such as a network interface card, hub, switch or router. By modifying these parameters, the network manager controls the network device. In addition to controlling the network device with which it is associated, the network agent gathers statistics and responds to queries from the network manager in a manner specified by the applicable protocol. As mentioned above, a DOCSIS certificated cable modem is configured by downloading a configuration file from a TFTP server. The configuration file can include parameters formatted as SNMP type-length value words. The type field of the type-length-value format 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 subsequently value field. The value field can range from one to 254 bytes and contains the specific values of the configuration parameter. The cable modems 105 and 106 must process all the SNMP TLV's in the file, but ignore improperly formatted or unknown TLV's. Once an error in a file type is detected, no further TLV's of that type are processed. Therefore, a need exists for more efficient processing of the TLV's, allowing the corrupted or unknown TLV's to be ignored, while allowing processing of the valid TLV's. The cable modems 105 and 106 each include a network management agent and its associated MIB's. The DOCSIS specification identifies those MIB's that must be supported by the network management agent of the cable modem. Each MIB refers to one or more attributes or features of the device, where each such attribute or feature is designated by an object identifier, also referred to as an OID. Each ODD is a multi- digit number with the digits separated by periods. For example, 1.3.5.7.8.10.12.3 is an OID. The OID's for configurable or settable device attributes also are associated with a value for that attribute, e.g., speed, time, temperature. Non-configurable device attributes simply provide information and thus the OID is not associated with a configurable element. One technique for configuring the cable modem places the OID in the configuration file and requires the cable modem to treat the OID's as if they were being set by a network management station. As an example, there are certain OID's that determine which network managers are allowed access to a cable modem. Someone familiar with the detailed operation of a cable modem could power cycle the modem and thereby enable several features (by setting certain objects via the object identifiers) and then further set other objects to block access to the cable modem by other network managers. With access blocked, the objects cannot be read or reset by a network management station associated with the cable system. To prevent such an occurrence, appropriate information is contained in the configuration file that sets the security features when the cable modem is powered up. Once the security features are set, only network management stations as identified in the security settings can access and write or set the cable modem objects. In this way, the cable system operator ensures that only qualified network management stations can access the cable modem network agent. 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: Figures 1 and 2 are electrical block diagram of a typical prior-art two-way cable communications system; Figure 2 illustrates a data packet unit in accordance with the teachings of the present invention; and Figure 3 is a process flow chart implementing the teachings of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Before describing in detail the particular method and apparatus for processing the simple management protocol-type-length-value words in accordance with the present invention, it should be observed that the present invention resides primarily in a novel combination of steps and apparatus elements. Accordingly the hardware components and the 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. Under the SNMP standard, each object identifier is a numeric value that represents some aspect or feature of a managed device, such as the cable modems 105 and 106. Object identifiers (or OID's) are used to identify a particular object or a column in a table, and each consists of a series of numbers. The MIB defines the series of numbers such that both the network agent and the network management station are able to interpret the numbers. Upon receipt of the configuration file at modem start-up, the modems 105 and 106 receive a plurality of TLV's for processing. The cable modems 105 and 106 segregate the TLV words into a plurality of packet-data units based on the type field. The OID's represent one type of the TLV words, and thus all OID's are grouped into one packet data unit for processing. The OID number strings are the values in the TLV format. A prior art SNMP agent, according to the applicable standards, for processing TLV's, processes all the OID's as a single group until an error is detected. Once an error is detected, no further OID's in the packet data unit are processed. Failure to process the erred and the remaining OID's can create configuration errors or limit the ability of the network manager to control and monitor the network agent. In accordance with the teachings of the present invention, in the cable modems 105 and 106, the OID's are first sorted by lexicographical ordering by the network agent. That is, based on the number of digits in the OID. For example, all six digit OID's are grouped together; all seven digit OID's are grouped together, etc. In addition to or in lieu of the lexicographical ordering, the OID's are sorted into scalar (i.e., a single object value) and tabular object values. A tabular object value is one in which multiple objects are contained within a single row. Rather than processing all the OID's as a group, the present invention groups the OID's into multiple packet data units. In one embodiment, all scalar values are packaged in a single packet data unit and then processed. All tabular objects are also packaged into a single packet data unit for processing or all the OID's for a single tabular row are grouped into a packet data unit. In another embodiment, all same-digit OID's are packaged into a single packet data unit. The following examples are intended to clarify the teachings of the present invention. Scalar values, which always terminate in a "0", such as the two set forth below, are grouped together. 1.3.6.1.2.1.1.4.0 sysContact 1.3.6.1.2.1.1.5.0 sysName The OID digits 1.3.6.1.2.1.1 identifies a systems group for a network agent. Two objects are identified above, one identified by the ".4" digit and the other object identified by the ".5" digit. Both object identifiers terminate with a zero, indicating that they are sealer values. According to the definitions for these objects, both provide read/write access by the network management station. The "sysContact" object is the textual identification of the contact person for this managed node, together with information on how to contact that person. The "sysName" object is an administratively-assigned name for the managed node. By convention, this is the node's fully-qualified domain name. The following three objects are tabular values taken from the same table and are accordingly grouped together. The final (7) indicates that these objects are from the seventh row in the table. The penultimate digits (2, 3 and 4) identify the second, third, and fourth columns of the seventh row. Tabular OID's never end in a zero; instead, they terminate with the row number. Note further that according to the present invention, these objects are segregated from the two objects set forth above due to the different number of digits in the OID. 1.3.6.1.2.1.1.9.1.2.7 sysORID 1.3.6.1.2.1.1.9.1.3.7 sysORDESCR 1.3.6.1.2.1.1.9.1.4.7 sysORUptimeNODE The following three objects are also grouped together and because they are located in the fifteenth row of the table, identifying columns two, three and four. 1.3.6.1.2.1.2.2.1.2.15 ifDEFCR 1.3.6.1.2.1.2.2.1.3.15 ifTYPE 1.3.6.1.2.1.2.2.1.4.15 ifMTU As explained above, objects that are defined in the same MIB share all the same ODD digits up to the point where unique OID's are needed to identify a different object as defined by the MIB. Figure 4 illustrates the process for processing the objects in accordance with the teachings of the present invention. Figure 4 begins at start step 210 and proceeds to a step 212 where the configuration file is received by the cable modem 105 or 106. Although the configuration file is used as an example to which the teachings of the present invention can be applied, those skilled in the art recognize that the teachings can be applied to any network management file that employs TLV and SNMP parameters in ODD form. At a step 214 the SNMP objects within the configuration file are identified. Recall that the configuration file includes multiple parameters for setting up and configuring the cable modem; many of the these parameters are not related to the network management aspects associated with the SNMP protocol. At a decision step 215, a determination is made whether there are any ODD's left to process. If there are none, processing moves to an operational state 226. If there are OID's remaining to be processed, processing moves to a step 216 where ODD's are evaluated. Essentially, the ODD's are segregated into groups having the same number of digits and differing by only one digit value from other ODD's in the group. To implement this grouping arrangement, at the step 216, the number of digits in the ODD is counted. Processing then moves to a decision step 218 for comparing the number of digits in the currently processed ODD with the number of digits in the most previous ODD. For the first pass through the decision step 218, the result is affirmative, since there is no previous value for comparison. With an affirmative answer from the decision step 218, processing moves to a decision step 220 for comparing the individual digit values of each ODD. Recall that all ODD's for a given object differ by only one digit. For the first pass through the decision step 220, the answer is affirmative and processing then returns to the step 216 to retrieve and evaluate the next ODD. Now processing moves to the decision step 218 for evaluating the next ODD. If the first and second ODD's have the same number of digits, then the result from the decision step 218 is affirmative and processing moves to the decision step 220. Here, the individual digits of the ODD's are examined and if they differ by only one digit value, processing returns to the step 216. In this way, as the steps 216, 218, and 220 are executed, a group of similar (defined as having the same number of digits and differing by only one digit value) is formed. This group is closed (see a step 222) when either of the decision steps 218 or 220 generates a negative response. Once a group of similar ODD's is formed, referred to as a packet data unit, they are processed at a step 224. As discussed above, the group is referred to as a packet data unit. Processing of the ODD's involves determining whether there are any errors or corrupted bits and setting the object to which the ODD refers to the value associated with the OID. Further, in accordance with the teachings of the present invention, all sealer ODD's are separated from tabular ODD's and tabular ODD's from the same table now are grouped together into one packet data unit. Thus, in accordance with the teachings of the present invention, individual corrupted or unreadable objects within a packet data unit do not cause all ODD's in the configuration file to be ignored. Instead, since each packet data unit includes only related ODD's, if a single ODD within the packet is corrupted, and therefore the whole packet is discarded, ODD's in other packets are not affected and can therefore be operative to establish or set device features or aspects. This technique ensures maximum use of the various SNMP objects and therefore, provides maximum network manageability via the network/manager agent relationship. In the prior art multiple objects in a packet data unit are ignored when only a single object is corrupted or unreadable, thus limiting the network management functionality. 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 may 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 a particular situation more material to the teachings of the present invention 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 this invention will include all embodiments falling within the scope of the appended claims.

Claims: WHAT IS CLAIMED IS: 1. In a network having a network manager for controlling a plurality of network agents through the use of object identifiers, a method for processing a plurality of object identifiers, comprising: 5 classifying the object identifiers into groups of similar object identifiers; aggregating each group of similar object identifiers into a packet data unit; and independently processing each packet data unit. 2. The method of claim 1 wherein the similar object identifiers include all object identifiers including n digits. o 3. The method of claim 2 wherein the similar object identifiers include all object identifiers having n digits and wherein all values of the n digits, except one value, are the same. 4. The method of claim 1 wherein the similar object identifiers include all scalar object identifiers. 5 5. The method of claim 1 wherein the similar object identifiers include all tabular object identifiers. 6. The method of claim 4 wherein the tabular object identifiers are grouped according to tabular row number. 7. The method of claim 1 wherein the network agents are associated with o network devices. 8. The method of claim 6 wherein the network devices include cable modems. 9. h a cable system wherein network devices are configured through a configuration file containing configuration variables in a format identifiable by a 5 network agent, a method for processing a plurality of configuration variables, comprising: (a) identifying the configuration variables having n digits; (b) from among each group of configuration variables having n digits, identifying the configuration variables that differ by only one digit value in the n digits; o (c) aggregating the identified configuration variables into a packet data unit; and (d) processing each packet data unit. 10. The method of claim 9 wherein the packet data unit includes all sealer configuration variables having an equal number of digits and differing by only one value among the digits. 11. The method of claim 9 wherein each packet data unit includes tabular 5 configuration variables from among the same tabular row. 12. The method of claim 9 wherein the configuration variables include object identifiers. 13. The method of claim 9 wherein the network devices include cable modems. o 14. -An article of manufacture comprising: a computer usable medium having computer readable program code therein for processing a plurality of object identifiers in a network having a network manager for controlling a plurality of network agents through the use of object identifiers, comprising: s computer readable program code configured to classify the object identifiers into groups of similar object identifiers; computer readable program code configured to aggregate each group of similar object identifiers into a packet data unit; and computer readable program code configured to independently process o each packet data unit. 15. The method of claim 14 wherein the similar object identifiers include all object identifiers having n digits and differing in value in only one of the n digits. 16. The method of claim 14 wherein the similar object identifiers include all tabular object identifiers. 5 17. The method of claim 14 wherein the similar object identifiers include all tabular object identifiers from the same tabular row number. 18. The method of claim 14 wherein the network agents include cable modems. 19. h a network having a network manager for controlling a plurality of 0 network agents through the use of object identifiers, an apparatus for processing a plurality of object identifiers, comprising: a first module for classifying the object identifiers into groups of similar object identifiers; a second module for aggregating each group of similar object identifiers into a packet data unit; and a third module for independently processing each packet data unit.

Inventors: CATALANI PAUL, HARVEY JOHN, SCULLY BRIAN J, CATALANI, PAUL,, HARVEY, JOHN,, SCULLY, BRIAN J.,
Applicants: MOTOROLA INC, MOTOROLA, INC., A CORPORATION OF THE STATE OF DELAWARE
Application year: 2001
Main classification: G06F
IPC codes: H04L12