|Número de publicación||US8706839 B2|
|Tipo de publicación||Concesión|
|Número de solicitud||US 13/369,439|
|Fecha de publicación||22 Abr 2014|
|Fecha de presentación||9 Feb 2012|
|Fecha de prioridad||30 Dic 2004|
|También publicado como||US8150973, US20060168099, US20120143990|
|Número de publicación||13369439, 369439, US 8706839 B2, US 8706839B2, US-B2-8706839, US8706839 B2, US8706839B2|
|Cesionario original||Intel Corporation|
|Exportar cita||BiBTeX, EndNote, RefMan|
|Citas de patentes (41), Otras citas (56), Clasificaciones (3), Eventos legales (1)|
|Enlaces externos: USPTO, Cesión de USPTO, Espacenet|
This application is a continuation of prior co-pending U.S. patent application Ser. No. 11/027,917 filed Dec. 30, 2004.
Embodiments of the present invention relate to computing systems that may utilize serial-over-LAN communication schemes, and more particularly to computing systems that may utilize a serial-over-LAN communication scheme with a virtual serial port and a protocol tailored for such an application.
Oftentimes, it is the case that when a computing system requires a diagnostic or maintenance procedure, keystrokes must be entered into the computing system. For example, to update a setting in the basic input/output system (BIOS) of a computing system, a user must typically be present at the system to enter keystrokes into the BIOS screens. Of course, other sorts of diagnostic or maintenance procedures require the same form of keystroke input.
In the context of a large network of computers, such as in a workplace environment with many offices, it may be cumbersome and expensive to generate even simple keystroke input to a computing system. In such circumstances, information technology (IT) professionals may physically travel to the computer in need of diagnostics or maintenance in order to use its keyboard and monitor. This option is time consuming, and may be expensive. Alternatively, an IT professional may attempt to telephonically direct a computer user who is physically in the presence of the computer, so that the computer user can enter the keystrokes using the computer's keyboard. Again, this option may be error-prone and time consuming.
To address the aforementioned issue, some computing systems allow for text-mode screen data to be redirected to a serial port, and allow for keystroke data to be redirected from the serial port.
The switch 112 may direct data from the CPU 102 to either the microcontroller 108 on the baseboard management controller 106 or to a serial communications port connector (COM port connector) 118. The COM port connector 118 is a physical arrangement of pins (such as a DB-9 or DB-25 connector, used with an RS-232 serial port) usually accessible from the exterior of the computing system 100. The state of the switch 112 is under the control of the microcontroller 108. When the switch 112 provides connectivity to the COM port 118, the COM port 118 may be utilized as any ordinary COM port 118 would otherwise be used. When the switch 112 provides connectivity to the microcontroller 108 (via the UART 110), the COM port is unavailable for use. Therefore, the COM port 118 is unavailable for use when the CPU 102 is redirecting text-mode screen data or keystroke data through the baseboard management controller 106.
The aforementioned scheme exhibits certain shortcomings. The inclusion of the switch 112 adds complexity and cost for the design of the baseboard management controller 106. Moreover, the need to manage the state of the switch 112 adds complexity to the software/firmware executed by the microcontroller 108. Additionally, data redirected from the CPU 102 to the microcontroller 108 is limited in data rate by the baud rate supported by the UARTs 104 and 110.
For the foregoing reasons, it is evident that there exists a need for a redirection scheme that addresses one or more of the aforementioned shortcomings.
Coupled to the I/O bus 216 is an integrated multifunction device 218. As discussed in more detail below, an integrated multifunction device is a single device that provides more than one function. In the particular example depicted in
The integrated multifunction device 218 may include a microcontroller 220 coupled to a UART 222 and a LAN controller 224. Alternatively, the UART 222 circuitry may be physically absent, and present in a virtual sense only, as discussed below. The UART function includes a set of twelve registers (not depicted in
Notably, in one embodiment, the integrated multifunction device 218 does not actually contain a UART or a COM port. Rather, the integrated multifunction device 218 contains a set of twelve registers that appear, from the vantage of the CPU 202, to be COM port registers of an ordinary COM port. Firmware or software running on the microcontroller 220 controls the registers in a manner so as to mimic the behavior of a COM port with a device coupled thereto, although no such COM port or device is actually present. Such an arrangement of registers and firmware or software may be referred to as a “virtual COM port” herein. In this way, software running on the CPU 202 may be structured so as to interface with the registers as though they were a vehicle to interact with an actual COM port, although no physical COM port exists.
Each of the aforementioned registers is typically assigned a particular function in the context of an ordinary COM port. Briefly, their functions are as follows. The transmit/hold register (THR) is generally used to store an outgoing data byte, and is write-only. The receiver buffer register (RBR) contains an incoming data byte, and is read-only. The THR and RBR registers share an I/O address. An attempt to read from the shared I/O address results in a read from the RBR register; an attempt to write thereto results in a write to the THR register.
The interrupt enable register (IER) is generally used to enable and disable interrupts that may be generated during use of the associated COM port.
The interrupt identification register (IIR) is generally used to identify the source of a given interrupt, and is read-only. The FIFO control register (FCR) controls internal FIFO operation in the UART, and is write-only. The IIR and FCR registers share an I/O address. An attempt to read from the shared I/O address results in a read from the IIR register; an attempt to write thereto results in a write to the FCR register.
The line control register (LCR) is generally used to store the communication parameter settings (parity, number of stop bits, etc.). The eighth bit of the line control register is termed the divisor latch bit (DLAB bit). When the DLAB bit is asserted, a write or read command to THR and IER registers results in a write or read to or from the DLL and DLM registers, respectively.
The time base of the UART may be divided, to allow for applications that demand slower speed. A divisor (least significant byte and most significant byte) may be entered in the DLL and DLM registers, when the DLAB bit in the LCR is asserted. The rate of the time base is divided by the divisor entered in these registers, thereby slowing the communication speed of the UART.
The modem control register (MCR) is used to send certain control signals (e.g., this register may be used to set the RTS control signal when the host CPU wants to signal the modem that it wants to send data, or this register may be used to put the port into a loop-back mode in which data that is to be transmitted is returned are received data, as well).
The line status register (LSR) is used to indicate events that may occur on the data line (e.g., received data is ready, received data corrupted by parity error, etc.).
Finally, the modem status register (MSR) is used to store various modem status indicators (e.g., an indication of a ring, an indication that the data set is ready, and indication known as clear to send, which means that the modem is ready to receive input from the PC, etc.).
As stated above, the microcontroller 220 executes firmware or software stored in a memory device 221, which causes the microcontroller to read from and write to the registers 300 as though an actual UART were present. (The memory device 221 is one example of a computer-readable medium upon which the methods disclosed herein may be stored. Other examples include magnetic or optical storage media.) Below is an example of how a real device uses the registers when a real UART is present, followed by an example describing a virtual serial port using the registers 300 in a parallel manner. The examples are intended to provide a flavor of the manner in which the microcontroller 220 can read from and write to the registers 300 to emulate the behavior of an actual COM port.
An ordinary set of COM port registers is coupled to UART. A CPU writes data to be communicated through the COM port to the transmit/hold register (mentioned above). In response, the UART generally enters the data into an internal first-in-first-out (FIFO) buffer. Thereafter, the data is removed from the FIFO buffer and transmitted, one bit at a time (i.e., the data is serialized) through a connector (such as a DB-9 connector), along a serial port transmission line, whereupon the data is received by a device (e.g., a modem) coupled to the other end of the transmission line. If the device coupled to the COM port becomes busy, it may drop the clear to send bit in the modem status register (mentioned above). This generally signals the application utilizing the COM port to stop sending data to the device. As discussed below, a virtual COM port may behave in an identical manner—in this regard and in every other regard, too.
The system 200 depicted in
If the integrated multifunction device 218 is a PCI compatible device, then the virtual serial port may be made available to a CPU by providing a configuration space that announces the presence of a serial port function in a device. For example, such a PCI compatible device includes a PCI configuration space 302, which is a set of registers including a class code register 304 and a base address register (BAR) 306. The class code register 304 contains a value identifying the sort of function provided by the device. Thus, in the context of a device providing a virtual serial port (or an ordinary serial port), the class code register 304 contains a value identifying a serial port function. The base address register 306 is provided in the configuration space 302 so that the BIOS may store therein an I/O address pointing to the COM port registers 300. During startup, the BIOS traverses each I/O bus (such as PCI bus 216) and seeks out each device. Each device found is enumerated. Furthermore, the BIOS seeks out each function offered by each device. Each function of each device is also enumerated. During this process, the BIOS stores an I/O address in the base address register of the configuration space associated with each function of each device. Based on the I/O address stored in the base address register, the BIOS and operating system can determine how to address a particular function on a particular device.
The integrated multifunction device 218 may execute a protocol stack 400, such as the one shown in
The software/firmware making up the network layer 402 may be executed by the LAN controller 224 or by the microcontroller 220. The software/firmware making up the other layers 404-410 may be executed by the microcontroller 220 in the integrated multifunction device 218.
In operation, the serial-over-LAN layer 410 receives data from the registers 300, and packages the data therein into commands that are passed downwardly through the protocol stack, destined to be received by a management console (discussed below). As the protocol stack is executed, the commands are packetized and ultimately transmitted through the network, eventually being received by the aforementioned management console.
The management console (not depicted) is a computer system that communicates with the managed computing system 200 (
As shown in
As can also be seen from
The StartRedirectionSession command is received by the session manager 600, which causes the session manager 600 to transition to the starting state 700. During the starting state 700, the session manager 600 determines whether opening the requested redirection session would result in more than a maximum number of permitted sessions to be opened. If so, the session manager 600 does not open the requested redirection session. On the other hand, if opening the requested session would not result in more than a maximum number of permitted sessions, the session manager 600 continues forward in its procedure to open a session. Either way, the session manager 600 replies to the management console by sending a StartRedirectionSessionReply message. This message indicates whether the maximum number of redirection sessions is already open, and also indicates whether the particular variety of redirection session requested by the management console is supported by the computing system under management 200.
The session manager 600 remains in the starting state 700 until it receives an AuthenticateSession command from the management console, whereupon it transitions to the authenticating state 702. The AuthenticateSession command identifies a process by which the management console may identify itself, so that the managed computing system 200 can verify that the console indeed has the authority to start the redirection session. For example, the AuthenticateSession command may include arguments such as a user name and password, for the aforementioned purpose. If the authentication fails (e.g., the username or password provided by the management console is incorrect), then the session manager 600 remains in the authenticating state 702, awaiting an AuthenticateSession command with a correct username and password. An AuthenticateSessionReply message is returned to the management console indicating that the authentication failed. On the other hand, if the authentication is successful, an AuthenticateSessionReply message is returned to the management console indicating the success, and the serial-over-LAN layer 410 transitions to the starting serial-over-LAN (SOL) state 704.
In the starting SOL state 704, the serial-over-LAN layer 410 awaits a StartSOLRedirection command from the management console. The StartSOLRedirection command tells the serial-over-LAN layer 410 that it should start forwarding serial-over-LAN messages to the management console. In other words, it marks the beginning of the serial-over-LAN session. The SartSOLRedirection command may contain certain arguments that configure the serial-over-LAN layer 410.
During operation, redirected data from the CPU 202 is received from the COM port registers 801 (which may be a set of virtual COM port registers, as shown in
Commands from the management console are received from the multiplex layer 408 and are placed into a reception buffer 802. Like the transmission buffer 800, the reception buffer 802 may be a FIFO buffer. As discussed in more detail below, upon the occurrence of certain events, commands are removed from the reception buffer 802 and unpacked into the COM port registers 801. Such commands may contain data bytes to be conveyed to the host CPU 202 via the RBR register, or may contain control signals conveyed via the MSR register.
The serial-over-LAN layer 410 includes a transmission buffer timer 804. When the transmission buffer timer 804 expires, data in the transmission buffer 800 is removed and packaged into commands that are communicated to the multiplex layer 808. The StartSOLRedirection command may configure the transmission buffer timer 804 to expire after a selected period of time (e.g., the StartSOLRedirection command may configure the transmission buffer 804 to expire after 10 ms or 20 ms). Data is also removed from the transmission buffer 800 when the buffer 800 becomes full. Each time the transmission buffer 800 is emptied, the transmission buffer timer 804 is reset.
As mentioned above, the serial-over-LAN layer 410 also includes a reception buffer 802. When the reception buffer timer 806 elapses, data bytes in the reception buffer 802 are dropped, because the host appears to be too slow to read the data. The StartSOLRedirection command may configure the reception buffer timer 806 to elapse after a selected period of time. Data is also removed from the reception buffer 802 when the buffer 802 becomes full. Each time the reception buffer 802 is emptied, the reception buffer timer 806 is reset.
The StartSOLRedirection command may also configure the heartbeat timer 808 to expire after a chosen period of time. Upon expiration of the heartbeat timer 808, a heartbeat message is communicated to the management console to indicate that the serial-over-LAN session is still active. The heartbeat timer 808 is reset every time a heartbeat message is sent or any other message/command is sent to the management console.
The StartSOLRedirection command may also configure the session timeout timer 810 to expire after a chosen period of time. Upon expiration of the session timeout timer 810, the serial-over-LAN session is terminated, as it is inferred that the management console is no longer in communication with the computing system under management 200 for one reason or another. The session timeout timer 810 is reset every time a message is received from the management console.
The StartSOLRedirection command may also set an initial value for a console sequence number. Each subsequent message from the management console includes a console sequence number, with each successive message containing a sequence number that has been incremented by one. The console sequence number ensures that its messages are received and acted upon in the correct order at the managed computing system 200.
Upon reception of the StartSOLRedirection command, the serial-over-LAN layer 410 transitions from the starting SOL state 704 to the connected state 706. To indicate that such a transition has been made, a StartSOLRedirectionReply message is sent to the management console. The StartSOLRedirectionReply message informs the management console that the serial-over-LAN session has started. Additionally, it may indicate the size of the reception buffer 802. The management console should not send data in blocks larger than the size of the reception buffer 802, because the serial-over-LAN layer 410 would not be able to enter such a block of data into the buffer 802.
Although the state transition flow depicted in
During the tenure of the connected state 706, the serial-over-LAN layer 410 awaits the occurrence of certain events. In response to these events, the serial-over-LAN layer 410 reacts as depicted in
As discussed briefly above, whenever the transmission buffer 800 becomes full, or whenever the transmission buffer timer 804 elapses, the connected state 706 transitions from an awaiting event operation 900 to a send DataFromHost message operation 902. During this operation 902, a DataFromHost message is sent from the serial-over-LAN layer 410 to the multiplex layer 408, for ultimate delivery to the management console. The DataFromHost message communicates the data retrieved from the transmission buffer 800 to the management console, using a message type identifier to identify the block of data as being redirected data (such as redirected text-mode screen data), as opposed to some other type of data, such as control data from the COM port registers 801. After sending the DataFromHost message to the multiplex layer 408, the connected state 706 returns to the awaiting event operation 900.
As shown in
As is also shown in
When a COM port control line changes state, the connected state 706 transitions from the awaiting event operation 900 to the send ControlsFromHost message operation 908. During this operation 908, a ControlsFromHost message is sent to the management console. The ControlsFromHost message includes a message type identifier that indicates that the message is delivering control data (as opposed to text-mode screen data). The control data follows the message type identifier. By forwarding control data to the management console, the management console may be informed of standard COM port status information (e.g., the request to send (RTS) line in the COM port is asserted or deasserted, indicating that the CPU is not ready to transmit data, or the data terminal ready (DTR) line in the COM port is asserted or deasserted, indicating either that the CPU 202 is or is not ready to communicate).
When redirected keystroke data is received from the management console, it is embedded within a DataToHost message. Upon reception of such a message, the connected state transitions from the awaiting event operation 900 to a pass upstream operation 910. During this operation 910, the DataToHost message is unpacked, meaning that the keystroke data embedded therein is extracted and placed into the proper register within the set of COM port registers 801 for communication to the CPU 202. Alternatively, the data may also be placed into the reception buffer 802, if such an option is enabled. Upon completion of operation 910, the connected state reverts to the awaiting event operation 900.
When COM port control data is received from the management console, it is embedded within a ControlsToHost message. Upon reception of such a message, the connected state transitions from the awaiting event operation 900 to a pass upstream operation 912, as shown in
As mentioned above briefly, the serial-over-LAN layer 410 includes a session timeout timer 810. The session timeout timer 810 is reset every time a message is received from the management console. Should the session timeout timer 810 expire, the serial-over-LAN layer 410 transitions to the socket invalid state 710 (see
When finally the IT professional at the management console has completed his or her remote diagnosis or configuration work upon the managed computing system 200, he may close the redirection session. The management console commands the closing of the redirection session by sending an EndSOLRedirection command, as shown in
The serial-over-LAN layer remains in the closing state 708 until the reception of an EndRedirectionSession command. The EndRedirectionSession command is received by the session manager 600, and informs the session manager that the redirection session has come to an end. In response, the session manager 600 closes the communication socket that had been utilized by the serial-over-LAN layer 410 during the redirection session. Therefore, the session manager 600 transitions to a socket invalid state 710. Although not depicted, reception of a StartRedirectionSession command causes the session manager 600 to transition from the socket invalid state 710 to the starting state 700, and the aforementioned state flow commences again.
Thus, in an embodiment, the device 218 may receive from a remote computer 1002 (via network 226) a first command 1004 for communication via the LAN with the remote computer 1002 (see
Embodiments of the invention may be implemented in one or a combination of hardware, firmware, and software. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium (such as memory device 221, shown in
The Abstract is provided to comply with 37 C.F.R. Section 1.72(b) requiring an abstract that will allow the reader to ascertain the nature and gist of the technical disclosure. It is submitted with the understanding that it will not be used to limit or interpret the scope or meaning of the claims.
In the foregoing detailed description, various features are occasionally grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the subject matter require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separate preferred embodiment.
|Patente citada||Fecha de presentación||Fecha de publicación||Solicitante||Título|
|US4539655||16 Mar 1982||3 Sep 1985||Phoenix Digital Corporation||Microcomputer based distributed control network|
|US4792896||29 Nov 1983||20 Dic 1988||516277 Ontario Limited||Storage controller emulator providing transparent resource sharing in a computer system|
|US5581715||22 Jun 1994||3 Dic 1996||Oak Technologies, Inc.||IDE/ATA CD drive controller having a digital signal processor interface, dynamic random access memory, data error detection and correction, and a host interface|
|US5812820||29 Sep 1995||22 Sep 1998||Pacific Commware, Inc.||Virtual UART|
|US5889965||1 Oct 1997||30 Mar 1999||Micron Electronics, Inc.||Method for the hot swap of a network adapter on a system including a dynamically loaded adapter driver|
|US6530050||10 Dic 1998||4 Mar 2003||Advanced Micro Devices Inc.||Initializing and saving peripheral device configuration states of a microcontroller using a utility program|
|US6606164||24 Ago 1999||12 Ago 2003||International Business Machines Corporation||Technique for controlling the execution of an action in a low layer system by a high layer system|
|US6826387||30 Nov 2000||30 Nov 2004||Palmsource, Inc.||Efficient service registration for legacy applications in a bluetooth environment|
|US6834326||17 Mar 2000||21 Dic 2004||3Com Corporation||RAID method and device with network protocol between controller and storage devices|
|US6881096||15 Abr 2002||19 Abr 2005||Lantronix, Inc.||Compact serial-to-ethernet conversion port|
|US7003563||2 Nov 2001||21 Feb 2006||Hewlett-Packard Development Company, L.P.||Remote management system for multiple servers|
|US7043205||11 Sep 2001||9 May 2006||3Com Corporation||Method and apparatus for opening a virtual serial communications port for establishing a wireless connection in a Bluetooth communications network|
|US7155512||23 May 2002||26 Dic 2006||Tekelec||Methods and systems for automatically configuring network monitoring system|
|US7162638||5 Ene 2001||9 Ene 2007||Honda Giken Kogyo Kabushiki Kaisha||Electronic data management system and method|
|US7284278||4 Mar 2003||16 Oct 2007||Dell Products L.P.||Secured KVM switch|
|US7400648||28 May 2004||15 Jul 2008||International Business Machines Corporation||Virtual USB communications port|
|US7457847||2 Ene 2002||25 Nov 2008||International Business Machines Corporation||Serial redirection through a service processor|
|US7543277||24 Jun 2004||2 Jun 2009||American Megatrends, Inc.||Method and system for remote software debugging|
|US7721013||21 May 2007||18 May 2010||Intel Corporation||Communicating graphics data via an out of band channel|
|US7949798||30 Dic 2004||24 May 2011||Intel Corporation||Virtual IDE interface and protocol for use in IDE redirection communication|
|US7986844||22 Nov 2005||26 Jul 2011||Intel Corporation||Optimized video compression using hashing function|
|US8150973||30 Dic 2004||3 Abr 2012||Intel Corporation||Virtual serial port and protocol for use in serial-over-LAN communication|
|US20020054029||28 Nov 2001||9 May 2002||Glancy John Thomas||Interactive display system|
|US20030061401||25 Sep 2001||27 Mar 2003||Luciani Luis E.||Input device virtualization with a programmable logic device of a server|
|US20030105850||23 May 2002||5 Jun 2003||Yoogin Lean||Methods and systems for automatically configuring network monitoring system|
|US20030172171 *||12 Nov 2002||11 Sep 2003||Fujitsu Limited||Communication control unit and information terminal unit equipped with the same|
|US20030194908||15 Abr 2002||16 Oct 2003||Brown Curtis D.||Compact serial -to ethernet conversion port|
|US20030229727||2 Jun 2003||11 Dic 2003||Ene Technology Inc.||Method and apparatus of virtual COM port|
|US20040128412||27 Dic 2002||1 Jul 2004||Harrison Edward R.||Remoting peripheral devices|
|US20040177264||4 Mar 2003||9 Sep 2004||Dell Products L.P.||Secured KVM switch|
|US20040181590||14 Mar 2003||16 Sep 2004||Wen-Shan Liou||Device for switching frame and inputting command via network transmission|
|US20040249985||7 Oct 2002||9 Dic 2004||Toshiaki Mori||Host network interface device and drive network interface device|
|US20050015430||25 Jun 2003||20 Ene 2005||Rothman Michael A.||OS agnostic resource sharing across multiple computing platforms|
|US20060059336 *||30 Ago 2004||16 Mar 2006||Miller Daryl R||Secure communication port redirector|
|US20060149860||30 Dic 2004||6 Jul 2006||Nimrod Diamant||Virtual IDE interface and protocol for use in IDE redirection communication|
|US20060168099||30 Dic 2004||27 Jul 2006||Nimrod Diamant||Virtual serial port and protocol for use in serial-over-LAN communication|
|US20070005821||30 Jun 2005||4 Ene 2007||Nimrod Diamant||Enabling and disabling device images on a platform without disrupting BIOS or OS|
|US20070005828||30 Jun 2005||4 Ene 2007||Nimrod Diamant||Interrupts support for the KCS manageability interface|
|US20070005867||30 Jun 2005||4 Ene 2007||Nimrod Diamant||Virtual peripheral device interface and protocol for use in peripheral device redirection communication|
|US20080244212||29 Mar 2007||2 Oct 2008||Rothman Michael A||System and method to enable hierarchical data spilling|
|US20110196970||15 Abr 2011||11 Ago 2011||Nimrod Diamant||Redirection communication|
|1||*||"Intelligent Platform Management Interface Specification", version 2, revision 1, section 1, 14 and 15, Feb. 12, 2004.|
|2||"IPMI-Intelligent Platform Management Interface Specification Second Generation V2.0", Table of Contents; Document Revision 1.0, GTPP Standard # 17, Feb. 12, 2004, 23 pages.|
|3||"MegaRAC M200 OPMA Based Remote Management Controller", Data Sheet, American Megatrends, Northbelt Parkway, Norcross GA 30071, Aug. 22, 2005, 2 pages.|
|4||"Secure Hash Standard", Federal Information Processing Standards Publication 180-1, Apr. 17, 1995, 18 pages.|
|5||"IPMI—Intelligent Platform Management Interface Specification Second Generation V2.0", Table of Contents; Document Revision 1.0, GTPP Standard # 17, Feb. 12, 2004, 23 pages.|
|6||Microsoft, "Virtual PC 2004 Evaluation Guide", Nov. 2003, pp. 1-20.|
|7||Notice of Allowance received for the U.S. Appl. No. 11/804,836, mailed on Dec. 28, 2009, 7 pages.|
|8||Notice of Allowance received for U.S. Appl. No. 11/027,754, mailed on Feb. 10, 2011, 6 pages.|
|9||Notice of Allowance received for U.S. Appl. No. 11/027,917, mailed on Nov. 10, 2011, 17 pages.|
|10||Notice of Allowance received for U.S. Appl. No. 11/286,513, mailed on Mar. 30, 2011, 7 pages.|
|11||Notice of Allowance received for U.S. Appl. No. 13/088,116, mailed on Nov. 8, 2012.|
|12||Office Action for U.S. Appl. No. 11/286,513 mailed on Jan. 26, 2011, 16 pages.|
|13||Office Action received for U.S. Appl. No. 11/027,754, mailed on Aug. 8, 2007, 24 pages.|
|14||Office Action received for U.S. Appl. No. 11/027,754, mailed on Dec. 9, 2008, 9 pages.|
|15||Office Action received for U.S. Appl. No. 11/027,754, mailed on Jun. 2, 2009, 9 pages.|
|16||Office Action received for U.S. Appl. No. 11/027,754, mailed on Mar. 15, 2010, 20 pages.|
|17||Office Action received for U.S. Appl. No. 11/027,754, mailed on May 8, 2008, 26 pages.|
|18||Office Action received for U.S. Appl. No. 11/027,917, mailed on Apr. 15, 2009, 23 pages.|
|19||Office Action received for U.S. Appl. No. 11/027,917, mailed on Aug. 31, 2009, 13 pages.|
|20||Office Action received for U.S. Appl. No. 11/027,917, mailed on Dec. 24, 2009, 23 pages.|
|21||Office Action received for U.S. Appl. No. 11/027,917, mailed on Jun. 22, 2010, 19 pages.|
|22||Office Action received for U.S. Appl. No. 11/027,917, mailed on May 25, 2011, 18 pages.|
|23||Office Action received for U.S. Appl. No. 11/027,917, mailed on Oct. 29, 2010, 20 pages.|
|24||Office Action received for U.S. Appl. No. 11/027,917, mailed on Sep. 4, 2008, 16 pages.|
|25||Office Action received for U.S. Appl. No. 11/286,513, mailed on Jul. 15, 2010, 11 pages.|
|26||Office Action received for U.S. Appl. No. 11/286,513, mailed on May 4, 2010, 14 pages.|
|27||Office Action received for U.S. Appl. No. 11/286,513, mailed on Nov. 5, 2010, 11 pages.|
|28||Office Action received for U.S. Appl. No. 11/804,836, mailed on Mar. 18, 2009, 10 pages.|
|29||Office Action received for U.S. Appl. No. 11/804,836, mailed on Sep. 17, 2009, 9 pages.|
|30||Office Action received for U.S. Appl. No. 13/088,116, mailed Jun. 6, 2012; 24 pages.|
|31||Office Action received fro the U.S. Appl. No. 11/027,754, mailed on Sep. 23, 2010, 18 pages.|
|32||Response to Office Action and Request for Continued Examination for U.S. Appl. No. 11/027,917, filed on Mar. 29, 2011, 15 pages.|
|33||Response to Office Action and Request for Continued Examination for U.S. Appl. No. 11/286,513, filed on Sep. 15, 2010, 11 pages.|
|34||Response to Office Action and Request for Continued Examination for U.S. Appl. No. 11/804,836, filed on Nov. 12, 2009, 15 pages.|
|35||Response to Office Action for U.S. Appl. No. 11/027,754 , filed on Jul. 15, 2010, 20 pages.|
|36||Response to Office Action for U.S. Appl. No. 11/027,754, filed on Jun. 17, 2008, 10 pages.|
|37||Response to Office Action for U.S. Appl. No. 11/027,754, filed on Mar. 9, 2009, 25 pages.|
|38||Response to Office Action for U.S. Appl. No. 11/027,917, filed on Aug. 25, 2011, 15 pages.|
|39||Response to Office Action for U.S. Appl. No. 11/027,917, filed on Feb. 25, 2011, 15 pages.|
|40||Response to Office Action for U.S. Appl. No. 11/027,917, filed on Feb. 26, 2010, 11 pages.|
|41||Response to Office Action for U.S. Appl. No. 11/027,917, filed on Jan. 5, 2009, 15 pages.|
|42||Response to Office Action for U.S. Appl. No. 11/027,917, filed on Jun. 12, 2009, 12 pages.|
|43||Response to Office Action for U.S. Appl. No. 11/027,917, filed on Oct. 9, 2009, 11 pages.|
|44||Response to Office Action for U.S. Appl. No. 11/027,917, filed on Sep. 22, 2010, 12 pages.|
|45||Response to Office Action for U.S. Appl. No. 11/286,513, filed on Jan. 3, 2011, 10 pages.|
|46||Response to Office Action for U.S. Appl. No. 11/286,513, filed on Jun. 10, 2010, 8 pages.|
|47||Response to Office Action for U.S. Appl. No. 11/286,513, filed on Mar. 9, 2011, 8 pages.|
|48||Response to Office Action for U.S. Appl. No. 11/804,836, filed on Jun. 16, 2009, 12 pages.|
|49||Response to Office Action received for U.S. Appl. No. 11/027,754, filed on Jan. 24, 2011, 10 pages.|
|50||Response to Office Action received for U.S. Appl. No. 11/027,754, filed on Jan. 31, 2008, 42 pages.|
|51||Response to Office Action received for U.S. Appl. No. 11/027,754, filed on Jun. 24, 2009, 16 pages.|
|52||Response to Office Action received for U.S. Appl. No. 11/027,917, filed on Mar. 29, 2010, 11 pages.|
|53||Response to Office Action received for U.S. Appl. No. 13/088,116, filed on Aug. 15, 2012, 9 pages.|
|54||Supplemental Amendment for U.S. Appl. No. 11/027,917, filed on Dec. 28, 2009, 8 pages.|
|55||Supplemental Response to Office Action for U.S. Appl. No. 11/027,754 , filed on Dec. 28, 2009, 10 pages.|
|56||Supplemental Response to Office Action for U.S. Appl. No. 11/804,836, filed on Dec. 28, 2009, 8 pages.|
|Clasificación de EE.UU.||709/217|
|5 Oct 2017||MAFP|
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)
Year of fee payment: 4