The present invention relates to network adapters, and more particularly to interfacing with computers.
In computer networks, a host computer system is normally connected to the network by a network adapter. In some designs, the network adapter is a board that plugs into the backplane bus of the host computer system. In other designs, the network adapter is built into the CPU motherboard. The host computer system typically includes a device driver which operates the network adapter.
Computer networks transfer data from one network node to another in the form of packets. For the purposes here, packets may include information for all layers of the ISO/OSI model at and above the data link layer. The network adapter transmits packets from the host computer system onto the network, and delivers packets from the network to the host computer system.
During operation, the host computer system produces two types of host memory buffers that are consumed by the network adapter: (1) transmit buffers containing packets to be transmitted onto the network, and (2) receive buffers to hold packets received from the network. The host computer system notifies the network adapter when either type of host memory buffer is produced. Similarly, the network adapter notifies the host computer system when it finishes consuming either type of buffer.
For example, to transmit a packet onto the network, the host computer system produces a transmit buffer by allocating a host memory buffer from a free pool of memory buffers, and writing the packet to the host memory buffer. The host computer system then notifies the network adapter that the transmit buffer has been produced (the packet is ready for transmission). The network adapter consumes the transmit buffer by transmitting the packet onto the network. The network adapter then notifies the host computer system that the buffer has been consumed (transmission has completed).
To receive a packet from the network, the host computer system first produces a receive buffer by allocating a host memory buffer into which a packet from the network may be received. The host computer system then notifies the network adapter that the receive buffer has been produced. When the network adapter subsequently receives a packet from the network to be stored in host memory, it consumes the receive buffer by writing the packet to it. The network adapter then notifies the host that the receive buffer has been consumed (the packet has been received).
When the host computer system is notified that a host memory buffer has been consumed (either a transmit buffer or a receive buffer), it completes the processing of that host memory buffer. The host computer system completes processing a consumed transmit buffer by returning the transmit buffer to the free pool of host memory buffers. The host computer system completes processing a consumed receive memory buffer by delivering the received packet to the appropriate user process, and then returning the receive buffer to the free pool of host memory buffers.
The host computer system typically notifies the network adapter after each host memory buffer has been produced by writing a register on the network adapter. The network adapter typically notifies the host computer system after each host memory buffer has been consumed by sending an interrupt to the host processor in the host computer system.
To date there has been no meaningful extension of the capabilities of network adapters to accomplish other tasks such as contributing to network security. Conventionally, the network adapter is often the ingress point for many untrusted packets of data, which may proliferate a virus on the associated computer. Unfortunately, such ingress point fails to provide any security features to prevent an attack on the computer.
A network adapter system and associated method are provided. Included is a network adapter having a plurality of designated trusted and untrusted ports. The network adapter includes a processor coupled to a computer. Such processor is further coupled to a network via the ports. In use, the processor is configured for conditionally preventing network traffic from accessing the computer from the network via the untrusted ports and/or preventing unauthorized software from accessing the network in an untrusted manner from the computer.
In one embodiment, the processor may be capable of being user-configured. As an option, the processor may be capable of being user-configured locally and/or remotely via a network connection with the network adapter. Further, the processor may be capable of being user-configured only after the verification of a password.
In another embodiment, the ports may include physical ports coupled to the network adapter for receiving plugs therein. Further, the trusted ports may be visually differentiated from the untrusted ports. This may or may not be accomplished utilizing color. In another embodiment, the ports may include electronic ports.
In still another embodiment, the processor may be capable of determining whether received packets are of interest. Further, this determination may be made based on an associated protocol.
In use, the processor may be capable of passing received packets that are not of interest. Further, the processor may be capable of checking whether the received packets violate predetermined rules if the received packets are of interest. As such, the processor may be capable of denying the received packets access to the computer if the received packets violate the predetermined rules.
Coupled to the networks 102 are data server computers 104 which are capable of communicating over the networks 102. Also coupled to the networks 102 and the data server computers 104 is a plurality of end user computers 106. In the context of the present description, a computer may refer to any web server, desktop computer, lap-top computer, hand-held computer, printer or any other type of hardware/software.
In order to facilitate communication among the networks 102, at least one gateway 108 is coupled therebetween. It should be noted that each of the foregoing network devices as well as any other unillustrated devices may be interconnected by way of a plurality of network segments. In the context of the present description, a network segment includes any portion of any particular network capable of connecting different portions and/or components of a network.
The workstation shown in
The workstation may have resident thereon an operating system such as the Microsoft Windows NT or Windows/95 Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system. It will be appreciated that a preferred embodiment may also be implemented on platforms and operating systems other than those mentioned. A preferred embodiment may be written using JAVA, C, and/or C++ language, or other programming languages, along with an object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications.
As shown in
As an option, the trusted ports 301 may be visually differentiated from the untrusted ports 303. This may or may not be accomplished utilizing indicia (i.e. color), or any other differentiator. As such, a user may easily select whether the firewall capabilities of the network adapter 300 are to be utilized.
The number of the trusted ports 301 and untrusted ports 303 may vary per the desires of the user. In one embodiment, the trusted ports 301 may be excluded in favor of the untrusted ports 303.
It should be noted that the network adapter 300 may include any Peripheral Component Interconnect (PCI) card, Industry Standard Architecture (ISA) card, Integrated Services Digital Network (ISDN) adapter, cable modem adapter, broadband adapter, or any other type of adapter capable of being installed on any sort of housing associated with a desktop, laptop or any other type of computer. In the alternative, the network adapter 300 may be integrally formed with the computer. Of course, the network adapter 300 may comprise any sort of interface between the network and the computer.
Such standard adapter circuit 304 may include various voltage regulating circuits, a bus, light emitting diode connections, and/or any other conventional circuitry commonly implemented in a network adapter 300. The processor 302 of the network adapter 300 may include a single semiconductor platform or multiple interconnected semiconductor platforms with associated logic to accomplish the functionality set forth herein.
The processor 302 of the network adapter 300 may include a packet assembler module 305 coupled to the standard adapter circuit 304 for assembling packets received from the network and packetizing information received from the computer. It should be noted that the processor 302 of the network adapter 300 is in communication with an operating system network driver 306 associated with the computer for receiving outbound data therefrom and further conditionally sending inbound data thereto, in a manner that will be set forth in greater detail during reference to
Also included is adapter random access memory 308 coupled to the packet assembler module 305 for storing packets received therefrom. It should be noted that the memory 308 may include any cache or fast memory capable of allowing quick storage and/or retrieval of data.
Still yet, the processor 302 of the network adapter 300 includes a firewall module 310. The firewall module 310 may include logic that protects the computer from attacks, etc. from other untrusted networks, or from applications making untrusted use of the network from the computer. In use, the firewall module 310 may operate to screen packets and conditionally deny transmission based on predetermined rules. Such rules may include any settings, criteria, etc. capable of preventing transmission of packets that are unwanted, unauthorized, etc.
For example, the firewall module 310 may be used to prevent others from accessing the computer. This may or may not be accomplished by examining each incoming packet to determine whether it should be forwarded based on a predetermined settings.
Firewall module 310 functionality may include, but is not limited to screening packets to make sure they come from acceptable (previously identified) domain name, Internet ports, and Internet Protocol (IP) addresses. Further, the firewall module 310 may only allow remote access to the computer by the use of secure logon procedures and authentication certificates.
Optionally, various settings and other related control information associated with the firewall module 310 may be stored on a non-volatile solid state memory (i.e. FLASH RAM). This may be user protected by configuring the network adapter 300 BIOS with a password that only a user can change, as will soon become apparent.
As an option, a control module 311 may be used to control the overall operation of the network adapter 300. It should be noted, however, that the overall operation may be controlled in any desired manner. For example, the processor 302 may be controlled at least in part by way of the computer or a remote administrator communicating via the network.
A user interface driver 312 is coupled to the firewall module 310 for facilitating the configuration of the firewall module 310 and various other aspects of the network adapter 300. More information on such configurability will be set forth in greater detail during reference to
In use, the packets received via the trusted ports 303 bypass the processor 302, while packets received via the untrusted ports 303 are managed by the processor 302 in the manner that will now be set forth.
Initially, packets are received in operation 402 from the network. As mentioned earlier, this may be accomplished directly or through a standard adapter circuit 304, or by any other conduit. Thereafter, the packets are assembled in operation 404. This may be accomplished in any feasible method. For example, the packet assembler module 305 may utilize header information associated with the packets for assembling the data fields of the packets.
As each packet arrives, it is determined whether the packets are of interest. Note decision 406. Such determination may be based on any desired factor such as a source of the packet, a protocol associated with the packet, a timing of the packet, contents of the packet, and/or any other desired factor. In any embodiment where certain protocols are of interest, a predetermined amount of packets may need to be assembled to first identify whether the packets are of interest.
Table #1 illustrates an exemplary list of protocols that may be of interest. It should be noted that such list may vary based on a security threat that data using a particular protocol pose.
If the packets are not of interest, as decided in decision 406, the packets are bypassed directly to the computer. See operation 407. This may be accomplished by bypassing the firewall module 310 and memory 308, and communicating directly with the network driver 306 of the computer. By this design, the packets that are not to be screened are communicated with the computer as fast as possible.
If, on the other hand, the packets are of interest, as decided in decision 406, the packets are cached in operation 408. For example, they may be stored in the memory 308. The current rules are then determined in operation 410. As mentioned earlier, the rules may include, but are not limited to any settings, criteria, etc. capable of preventing transmission of packets that are unwanted, unauthorized, etc. As an option, the rules may be user-configurable in a manner that will be set forth in greater detail hereinafter.
Once the rules are determined, it may be determined decision 412 as whether the packets violate such rules. If no violation occurs, the packets are transferred to the computer (i.e. network driver 306). See operation 418. If, however, the packet fails to comply with the current rule set, as determined by decision 412, access may be denied to the computer in operation 424. This way, no unauthorized packets and/or files reach the computer.
Further, an alert may be displayed for notifying a user of the denial of access. As an option, such alert may also provide options as to remedies for the situation. Such alert may be conveyed in any desired manner. For example, the alert may be provided to a remote administrator, using an indicator on the network adapter, and/or an interface on the computer. To accomplish this, such alert may be sent to the user interface driver 312.
To this end, the firewall capabilities are ensured and accelerated through use of the hardware processor. Further, by the critical positioning of the hardware processor on the network adapter, protection is inherently provided whenever network access is gained.
Initially, a computer user or remote administrator may be prompted for a password in operation 502. In the case of the user of the computer being prompted, this may be accomplished utilizing the user interface driver 312 of
If the password is received and verified, it is then determined whether the user or remote administrator wishes to update the rules associated with the firewall 310 of the processor 302. If the rules are to be changed, a user may alter various network adapter 300 settings in operation 514. These settings may range from conventional settings to determining which packets and files are of interest and further the specific rule base to be used in the context of the method 400 of
As an option, since the memory 308 may have a limited amount of capacity with which to store assembled packets, the user may be able to set a threshold for the maximum size of packets to be stored in memory, As a further option, direct memory access may be used to utilize desktop RAM.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. For example, any of the network elements may employ any of the desired functionality set forth hereinabove. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
This Application is a continuation (and claims the benefit of priority under 35 U.S.C. §120) of U.S. patent application Ser. No. 10/028,652, filed Dec. 20, 2001,now U.S. Pat. No. 8,185,943 entitled “NETWORK ADAPTER FIREWALL SYSTEM AND METHOD”. The disclosure of the prior Application is considered part of and is incorporated by reference in the disclosure of this Application.
Number | Name | Date | Kind |
---|---|---|---|
5440690 | Rege et al. | Aug 1995 | A |
5452442 | Kephart | Sep 1995 | A |
5502833 | Byrn et al. | Mar 1996 | A |
5511163 | Lerche et al. | Apr 1996 | A |
5623600 | Ji et al. | Apr 1997 | A |
5717855 | Norman et al. | Feb 1998 | A |
5799064 | Sridhar et al. | Aug 1998 | A |
5802277 | Cowlard | Sep 1998 | A |
5884025 | Baehr et al. | Mar 1999 | A |
5896499 | McKelvey | Apr 1999 | A |
5915008 | Dulman | Jun 1999 | A |
5968176 | Nessett et al. | Oct 1999 | A |
5987610 | Franczek et al. | Nov 1999 | A |
6006329 | Chi | Dec 1999 | A |
6009520 | Gharda | Dec 1999 | A |
6073142 | Geiger et al. | Jun 2000 | A |
6075863 | Krishnan et al. | Jun 2000 | A |
6112252 | Hausman et al. | Aug 2000 | A |
6119165 | Li et al. | Sep 2000 | A |
6161130 | Horvitz et al. | Dec 2000 | A |
6182226 | Reid et al. | Jan 2001 | B1 |
H1944 | Cheswick et al. | Feb 2001 | H |
6219706 | Fan et al. | Apr 2001 | B1 |
6279113 | Vaidya | Aug 2001 | B1 |
6298444 | Foss et al. | Oct 2001 | B1 |
6401210 | Templeton | Jun 2002 | B1 |
6453419 | Flint et al. | Sep 2002 | B1 |
6460050 | Pace et al. | Oct 2002 | B1 |
6463474 | Fuh et al. | Oct 2002 | B1 |
6513122 | Magdych et al. | Jan 2003 | B1 |
6631466 | Chopra et al. | Oct 2003 | B1 |
6631484 | Born | Oct 2003 | B1 |
6658562 | Bonomo et al. | Dec 2003 | B1 |
6661803 | Choi et al. | Dec 2003 | B1 |
6683869 | Pierson et al. | Jan 2004 | B1 |
6721424 | Radatti | Apr 2004 | B1 |
6772347 | Xie et al. | Aug 2004 | B1 |
6788315 | Kekic et al. | Sep 2004 | B1 |
6826694 | Dutta et al. | Nov 2004 | B1 |
6854020 | Kamihara et al. | Feb 2005 | B1 |
6910134 | Maher et al. | Jun 2005 | B1 |
6925572 | Amit et al. | Aug 2005 | B1 |
6981265 | Rees et al. | Dec 2005 | B1 |
7013482 | Krumel | Mar 2006 | B1 |
7023861 | Makinson et al. | Apr 2006 | B2 |
7039708 | Knobl et al. | May 2006 | B1 |
7061903 | Higuchi | Jun 2006 | B2 |
7107617 | Hursey et al. | Sep 2006 | B2 |
7111163 | Haney | Sep 2006 | B1 |
7143438 | Coss et al. | Nov 2006 | B1 |
7151744 | Sarkinen et al. | Dec 2006 | B2 |
7188367 | Edwards et al. | Mar 2007 | B1 |
7441265 | Staamann et al. | Oct 2008 | B2 |
7506155 | Stewart et al. | Mar 2009 | B1 |
7761605 | Rothwell et al. | Jul 2010 | B1 |
8185943 | Jagger et al. | May 2012 | B1 |
20010039624 | Kellum | Nov 2001 | A1 |
20020004840 | Harumoto et al. | Jan 2002 | A1 |
20020016826 | Johansson et al. | Feb 2002 | A1 |
20020032871 | Malan et al. | Mar 2002 | A1 |
20020041689 | Morimoto | Apr 2002 | A1 |
20020078190 | Ullmann | Jun 2002 | A1 |
20020078377 | Chang et al. | Jun 2002 | A1 |
20020083331 | Krumel | Jun 2002 | A1 |
20020095512 | Rana et al. | Jul 2002 | A1 |
20020162026 | Neuman et al. | Oct 2002 | A1 |
20020198800 | Shamrakov | Dec 2002 | A1 |
20030018890 | Hale et al. | Jan 2003 | A1 |
20030041266 | Ke et al. | Feb 2003 | A1 |
20030051142 | Hidalgo et al. | Mar 2003 | A1 |
20030051155 | Martin | Mar 2003 | A1 |
20030069973 | Ganesan et al. | Apr 2003 | A1 |
20030097585 | Girard | May 2003 | A1 |
20030101338 | Mullen et al. | May 2003 | A1 |
20030167410 | Rigstad et al. | Sep 2003 | A1 |
20040003284 | Campbell et al. | Jan 2004 | A1 |
20050259678 | Gaur | Nov 2005 | A1 |
Number | Date | Country |
---|---|---|
11205388 | Jul 1999 | JP |
WO 9845778 | Oct 1998 | WO |
WO 0130036 | Apr 2001 | WO |
Entry |
---|
Boran, Sean, “Personal Firewalls Tests: Conseal PC Firewall,” Oct. 10, 2001, pp. 1-7. |
3Com. 3Com Embedded Firewall Architecture for E-Business. Technical Brief 100969-001. 3Com Corporation, Apr. 2001. |
3Com. Embedded Firewall for the 3Cr990 NICs Family. Software Solutions 600478-001. 3Com Corporation, Aug. 2001. |
Edwards, Mark. “Embedded Firewalls: The Next Wave?.” WindowsIT Pro Apr. 18, 2001. Jan. 31, 2005 <http://www.windowsitpro.com/Articles/Print.cfm?ArticleID=20703>. |
VirusScan for Windows 95. User's Guide. McAfee. 1997. 4 pages. |
BlGfire User Manual, 1999, p. 14. |
Answers.com, Definition: Solid State, p. 1, Nov. 2, 2006. |
“How Firewalls Work,” Nov. 10, 2000; <http://web.archive.org/>; <http://howstuffworks.com/firewall.htm>. |
“ConSeal PC Firewall Technical Information,” May 2, 1999; <http://www.webarchive.org/web/19990502202255/signal9.com/technical/prodsummary/fwssummary.html> (pp. 1-2). |
Boran, Sean, “Personal Firewalls Tests: Conseal PC Firewall,” Oct. 10, 2001 (pp. 1-7). |
Ganger et al., “Enabling Dynamic Security Management of Networked Systems via Device-Embedded Security.” Dec. 2000, pp. 1-15. |
Payne, et al. “Architecture and Applications for a Distributed Embedded Firewall,” 17th Annual ACSAC Computer Security Applications Conference, Dec. 10-14, 2001; pp. 1-10. |
Non-Final Office Action in U.S. Appl. No. 10/028,650 mailed on Feb. 10, 2005. |
Response to Non-Final Office Action dated Feb. 10, 2005 in U.S. Appl. No. 10/028,650, filed Mar. 30, 2005. |
Final Office Action in U.S. Appl. No. 10/028,650 mailed on Jun. 30, 2005. |
Response to Final Office Action dated Jun. 30, 2005 in U.S. Appl. No. 10/028,650, filed Aug. 3, 2005. |
Final Office Action in U.S. Appl. No. 10/028,650 mailed on Sep. 7, 2005. |
Response to Final Office Action dated Sep. 7, 2005 in U.S. Appl. No. 10/028,650, filed Oct. 13, 2005. |
Advisory Action in U.S. Appl. No. 10/028,650 mailed on Nov. 16, 2005. |
Notice of Appeal in U.S. Appl. No. 10/028,650, filed Feb. 3, 2006. |
Appeal Brief in U.S. Appl. No. 10/028,650, filed Apr. 3, 2006. |
Appeal Brief in U.S. Appl. No. 10/028,650, filed Aug. 7, 2006. |
Non-Final Office Action in U.S. Appl. No. 10/028,650 mailed on Nov. 2, 2006. |
Response to Non-Final Office Action dated Nov. 2, 2006 in U.S. Appl. No. 10/028,650, filed Feb. 2, 2007. |
Final Office Action in U.S. Appl. No. 10/028,650 mailed on Apr. 9, 2007. |
Response to Final Office Action dated Apr. 9, 2007 in U.S. Appl. No. 10/028,650, filed Jun. 11, 2007. |
Advisory Action in U.S. Appl. No. 10/028,650 mailed on Jun. 25, 2007. |
Request for Continued Examination and Amendment in U.S. Appl. No. 10/028,650, filed Jul. 19, 2007. |
Non-Final Office Action in U.S. Appl. No. 10/028,650 mailed on Oct. 16, 2007. |
Response to Non-Final Office Action dated Oct. 16, 2007 in U.S. Appl. No. 10/028,650, filed Jan. 16, 2008. |
Final Office Action in U.S. Appl. No. 10/028,650 mailed on Mar. 25, 2008. |
Request for Continued Examination and Amendment in U.S. Appl. No. 10/028,650, filed May 27, 2008. |
Non-Final Office Action in U.S. Appl. No. 10/028,650 mailed on Jul. 28, 2008. |
Response to Non-Final Office Action dated Jul. 28, 2008 in U.S. Appl. No. 10/028,650, filed Oct. 28, 2008. |
Non-Final Office Action in U.S. Appl. No. 10/028,650 mailed on Jan. 22, 2009. |
Response to Non-Final Office Action dated Jan. 22, 2009 in U.S. Appl. No. 10/028,650, filed May 22, 2009. |
Non-Final Office Action in U.S. Appl. No. 10/028,650 mailed on Jul. 29, 2009. |
Response to Non-Final Office Action dated Jan. 22, 2009 in U.S. Appl. No. 10/028,650, filed Nov. 30, 2009. |
Notice of Allowance in U.S. Appl. No. 10/028,650 mailed on Jan. 28, 2010. |
312 Amendment in U.S. Appl. No. 10/028,650, filed Mar. 30, 2010. |
Response to 312 Amendment in U.S. Appl. No. 10/028,650 mailed on Jun. 1, 2010. |
Non-Final Office Action in U.S. Appl. No. 11/854,419 mailed on Aug. 15, 2008. |
Response to Non-Final Office Action dated Aug. 15, 2008 in U.S. Appl. No. 11/854,419, filed Nov. 17, 2008. |
Final Office Action in U.S. Appl. No. 11/854,419 mailed on Feb. 27, 2009. |
Notice of Appeal in U.S. Appl. No. 11/854,419, filed Jun. 5, 2009. |
Appeal Brief in U.S. Appl. No. 11/854,419, filed Aug. 5, 2009. |
Examiner's Answer to Appeal Brief in U.S. Appl. No. 11/854,419 mailed on Nov. 3, 2009. |
Reply Brief in U.S. Appl. No. 11/854,419, filed Jan. 4, 2010. |
USPTO Board of Patent Appeals Decision in U.S. Appl. No. 11/854,419 mailed on Nov. 21, 2012. |
Non-Final Office Action in U.S. Appl. No. 10/028,652 mailed on Sep. 20, 2005. |
Response to Non-Final Office Action dated Sep. 20, 2005 in U.S. Appl. No. 10/028,652, filed Dec. 12, 2005. |
Final Office Action in U.S. Appl. No. 10/028,652 mailed on Jan. 12, 2006. |
Response to Final Office Action dated Jan. 12, 2006 in U.S. Appl. No. 10/028,652, filed Mar. 13, 2006. |
Advisory Action in U.S. Appl. No. 10/028,652 mailed on Mar. 23, 2006. |
Request for Continued Examination and Amendment in U.S. Appl. No. 10/028,652, filed Apr. 12, 2006. |
Non-Final Office Action in U.S. Appl. No. 10/028,652 mailed on May 26, 2006. |
Pre-Brief Conference Request and Notice of Appeal in U.S. Appl. No. 10/028,652, filed Oct. 25, 2006. |
Pre-Brief Conference Decision in U.S. Appl. No. 10/028,652 mailed on Dec. 15, 2006. |
Appeal Brief in U.S. Appl. No. 10/028,652, filed Jan. 18, 2007. |
Examiner's Answer to Appeal Brief in U.S. Appl. No. 10/028,652 mailed on May 25, 2007. |
Reply Brief filed in U.S. Appl. No. 10/028,652, filed Jul. 24, 2007. |
BAPI Decision—Examiner Affirmed in U.S. Appl. No. 10/028,652 mailed on Apr. 1, 2009. |
Request for Continued Examination and Amendment in U.S. Appl. No. 10/028,652, filed Jun. 1, 2009. |
Non-Final Office Action in U.S. Appl. No. 10/028,652 mailed on Jun. 30, 2009. |
Response to Non-Final Office Action dated Jun. 30, 2009 in U.S. Appl. No. 10/028,652, filed Sep. 30, 2009. |
Final Office Action in U.S. Appl. No. 10/028,652 mailed on Dec. 18, 2009. |
Response to Final Office Action dated Dec. 18, 2009 in U.S. Appl. No. 10/028,652, filed Feb. 18, 2010. |
Advisory Action in U.S. Appl. No. 10/028,652 mailed on Feb. 26, 2010. |
Request for Continued Examination and Amendment in U.S. Appl. No. 10/028,652, filed Mar. 3, 2010. |
Non-Final Office Action in U.S. Appl. No. 10/028,652 mailed on Apr. 6, 2010. |
Response to Non-Final Office Action dated Apr. 6, 2010 in U.S. Appl. No. 10/028,652, filed Jul. 6, 2010. |
Final Office Action in U.S. Appl. No. 10/028,652 mailed on Aug. 12, 2010. |
Request for Continued Examination and Amendment in U.S. Appl. No. 10/028,652, filed Feb. 14, 2011. |
Non-Final Office Action in U.S. Appl. No. 10/028,652 mailed on Apr. 19, 2011. |
Response to Non-Final Office Action dated Apr. 19, 2011 in U.S. Appl. No. 10/028,652, filed Jul. 19, 2011. |
Final Office Action in U.S. Appl. No. 10/028,652 mailed on Sep. 9, 2011. |
Request for Continued Examination and Amendment in U.S. Appl. No. 10/028,652, filed Nov. 9, 2011. |
Notice of Allowance in U.S. Appl. No. 10/028,652 mailed on Mar. 20, 2012. |
Request for Continued Examination in U.S. Appl. No. 11/854,419, filed Jan. 22, 2013. |
Non-Final Office Action in U.S. Appl. No. 11/854,419 mailed on Jul. 24, 2013. |
Number | Date | Country | |
---|---|---|---|
20120192262 A1 | Jul 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10028652 | Dec 2001 | US |
Child | 13434639 | US |