The present application relates to networking technologies and more particularly to techniques for handling incoming failure detection protocol packets received by a network device.
The ability to detect communication failures is an important aspect of any networking environment. Networks use several different mechanisms to detect failures. For example, several different failure detection protocols (FDP) are used that enable detection of failures in a networking environment. Examples of FDPs include “hello” protocols, “keep alive” protocols, various Organization Administration and Maintenance (OAM) protocols, and others.
Network devices (e.g., routers, switches) in a network using a failure detection protocol are generally configured to continuously transmit FDP packets at regular intervals. A network device in the network receives FDP packets transmitted by other network devices in the network and uses the periodically received packets to ascertain the health of the other devices and the network connections. For example, if a network device does not receive an FDP packet within a period of time associated with the FDP packet, then the network device may assume that there is a network failure somewhere in the network that prevented the expected FDP packet from reaching the network device. The network device itself also transmits FDP packets on a periodic basis.
A network device may receive and transmit different types of FDP packets and may be involved in one or more FDP sessions at a time. Each transmitted FDP packet comprises an identifier identifying a unique FDP session for which the packet has been transmitted.
Traditionally, FDP-related processing in a network device is performed by software executed by a CPU or processor of the network device. For example, a processor of a network device executing software configured for FDP packets processing is configured to process FDP packets received by the network device from other network devices and handle transmission of FDP at regular intervals from the network device. In older failure detection protocols, the periodic time intervals associated with FDP protocols were generally in the range of seconds such as 1 second, 5 seconds, 10 seconds, 20 seconds, and the like. Such a time interval allowed sufficient time for the software running on the CPU to handle processing of the incoming FDP packets and also to process transmission of the FDP packets within the periodic time interval without detrimentally affecting the performance of the CPU or overwhelming the CPU. However, due to the large periodic interval time values, the time required to detect network failures is also quite large (usually several seconds). While this was acceptable in the past, it is no longer acceptable in today's larger and faster networks wherein a long failure detection time translates to large amounts of data being lost at today's fast networking speeds (e.g., at gigabit speeds).
In order to reduce failure detection times, today's networks typically use newer fault detection protocols with significantly shorter periodic time intervals that dramatically reduce the failure detection times. Examples of such newer FDPs include OAM protocols such as Bidirectional Forwarding (BFD) protocol which is used to detect router link failures and the 802.1ag standard that specifies protocols, procedures, and managed objects to support transport fault management. The periodic time intervals associated with these new FDPs is usually in the order of milliseconds (msecs) or even faster.
While these new protocols reduce failure detection times, they create an undue burden on a network device that is configured to handle processing of the FDP packets. As a result of the dramatically shorter periodic time intervals, a network device has to periodically transmit FDP packets in the order of milliseconds (msecs) or even faster, which is much faster than transmission processing done previously by network device for older FDPs. Due to the faster transmission rates, the number and rate at which FDP packets are received by a network device is also much faster than in the past. As a result, more CPU cycles per unit time are needed on the network device to perform FDP packets processing, including transmission of FDP packets and processing of incoming FDP packets. However, processors in conventional network devices executing software for processing the FDP packets are unable to cope up with the processing of newer FDP packets. As a result, conventional network devices are unable to handle and support the newer failure detection protocols.
Embodiments of the present invention provide techniques that assist in processing of failure detection protocol (FDP) packets. Techniques are provided that assist a CPU of a network device in processing incoming FDP packets. In one embodiment, only a subset of FDP packets received by the network device is forwarded to the CPU for processing, the other FDP packets are dropped and not forwarded to the CPU. In this manner, the amount of processing that a CPU of the network device has to perform for incoming FDP packets is reduced. This enables the network device to support newer FDPs with shorter periodic interval requirements.
According to an embodiment of the present invention, techniques are provided for processing FDP packets transmitted according to a failure detection protocol. A set of packets are received prior to the set of packets being forwarded to a processor of a network device, where the processor is configured to execute software for processing FDP packets. A set of FDP packets is identified from the set of packets. For each packet in the set of FDP packets, it is determined if the failure detection protocol packet is to be forwarded to the processor. Based upon the determination, for at least one FDP packet from the set of FDP packets, the at least one failure detection protocol packet is dropped such that the at least one FDP packet is not forwarded to the processor. The processing may be performed by a field-programmable logic device (FPLD) included in the network device.
In one embodiment, whether or not an FDP packet is to be forwarded to the processor is determined by comparing a portion of the FDP packet with reference information. If the portion of the FDP packet matches the reference information, then the FDP packet need not be forwarded to the processor.
In one embodiment, in order to determine if the FDP packet is to be forwarded to the processor, a first entry is identified from a set of entries based upon the FDP packet. The portion of the FDP packet is then compared with the reference information in the first entry.
In another embodiment, in order to determine if the FDP packet is to be forwarded to the processor, a first entry is identified from a first set of entries based upon the FDP packet and a second entry is identified from a second set of entries based upon information in the first entry, each entry in the second set of entries corresponding to a session. The portion of the FDP packet is then compared with reference information in the second entry.
In one embodiment, identifying a first entry from the first set of entries based upon the FDP packet comprises applying a hash function to a portion of the FDP packet to obtain a hash result, and identifying the first entry from the first set of entries using the hash result.
According to an embodiment of the present invention, for at least one entry in the second set of entries, a portion of information in the at least one entry may be changed after an FDP packet corresponding to a session represented by the at least one entry has been received.
Examples of FDPs include 802.1ag, Bidirectional Forwarding (BFD) protocol, and others. The FDP packets may be received by the network device at a rate faster than one FDP packet per second.
The foregoing, together with other features, embodiments, and advantages of the present invention, will become more apparent when referring to the following specification, claims, and accompanying drawings.
In the following description, for the purposes of explanation, specific details are set forth in order to provide a thorough understanding of the invention. However, it will be apparent that the invention may be practiced without these specific details.
Embodiments of the present invention provide techniques that assist in processing of failure detection protocol (FDP) packets. Techniques are provided that assist a CPU of a network device in processing incoming FDP packets. A failure detection protocol (or FDP) is intended to include any protocol, standard, procedure, or method in which packets are transmitted at periodic intervals for purposes of monitoring, detecting, or identifying a failure in a network. A packet transmitted according to an FDP is referred to as an FDP packet. Examples of FDPs that may be supported by embodiments of the present invention include OAM protocols such as Bidirectional Forwarding (BFD) protocol which is used to detect router link failures and the 802.1ag standard that specifies protocols, procedures, and managed objects to support transport fault management.
The network devices depicted in
In accordance with an embodiment of the present invention, a network device 102 may be configured to receive FDP packets for one or more FDP sessions from other network devices. Network device 102 may also transmit FDP packets at periodic intervals for one or more FDP sessions to other devices in the network. The time intervals at which the packets are received and transmitted may vary from session to session and may be in the order of one or more milliseconds (as required by the newer FDPs) to seconds, or even faster or slower intervals. Network device 102 may be configured to ascertain the health of the other devices and the network connections based upon the FDP packets received by network device 102. For example, if network device 102 does not receive an FDP packet for an FDP session within a preconfigured time interval for that session, then network device 102 may assume that there is a network failure somewhere in the network that prevented the expected FDP packets from reaching network device 102 for the session. Network device itself may transmit FDP packets at periodic intervals for one or more FDP sessions.
As depicted in
In one embodiment, FPH module 116 is configured to filter FDP packets received by network device 102 and bound for CPU 114 such that only a subset of received FDP packets are forwarded to CPU 114 for processing, the other FDP packets are dropped by FPH module 116 and not forwarded to CPU 114. In one embodiment, FPH module 116 receives CPU-bound packets and identifies FDP packets from other CPU-bound packets. For a packet identified as an FDP packet, FPH module 116 determines whether the packet needs to be sent to CPU 114. If FPH module 116 determines that the FDP packet need not be forwarded to CPU 114, the FDP packet is dropped and not sent to CPU 114, thereby relieving CPU 114 from having to process the packet. An FDP packet is forwarded to CPU 114 only if FPH module 116 determines that the packet cannot be consumed by FPH module 116 and needs to be forwarded to CPU 114 for inspection. In this manner, only a small subset of FDP packets received by network device 102 is forwarded to CPU 114 for processing. This reduces the amount of processing that CPU 114 has to do to process FDP packets received by network device 102.
FPH module 116 is also configured to assist in transmission of FDP packets from network device 102. For each FDP session in which network device 102 participates, FDP packets for that session are transmitted from network device 102 at periodic time intervals associated with the FDP for that session. The time intervals may be different for different FDP sessions. In this manner, the task of transmitting FDP packets is partially or completely offloaded from CPU 114 of network device 102.
By assisting in processing of incoming FDP packets, FPH module 116 reduces the number of incoming FDP packets that CPU 114 has to process, thereby freeing CPU cycles for other tasks performed by CPU 114. FPH module 116 also offloads the task of transmitting FDP packets from CPU 114. In this manner, the amount of FDP packets-related processing that CPU 114 has to perform is reduced. This enables network device 102 to support various FDPs including FDPs with shorter periodic interval requirements (e.g., periodic time intervals measured in milliseconds or even faster). Network device 102 comprising a FPH module 116 may coexist in a network with other network devices that may or may not comprise FPH modules.
As depicted in
Network device 102 may support two data processing paths including a receive path (Rx path) and a transmit path (Tx path). Processing for the two paths may be performed in parallel. The Rx path is a path traversed by a packet from a port of network device 102 towards CPU 114 of network device 102. The Tx path is a path traversed by a packet from CPU 114 towards a port of network device 102.
In one embodiment, in the Rx path, packets received by network device 102 via one or more ports 202 (or a subset of the received packets) are forwarded to TM module 204. These packets may include CPU-bound packets (i.e., packets to be forwarded to CPU 114 for processing) and other packets. TM module 204 is configured to forward the CPU-bound packets to FPH module 116. The CPU-bound packets may include FDP packets, packets that enable CPU 114 to learn network topologies, and other types of packets. In the Tx path, TM module 204 is configured to receive packets, including FDP packets, from FPH module 116. The packets are then forwarded to their destinations, which may include one or more ports 202 of network device 102. The packets, including FDP packets, are then transmitted from network device 102 using the destination ports.
FPH module 116 is configured to assist with processing related to FDP packets. In one embodiment, FPH module 116 is implemented in hardware. For example, FPH module 116 may be implemented as a field programmable logic device (FPLD) such as a programmed field-programmable gate array (FPGA) device. FPH module 116 may also be implemented as an ASIC. As depicted in
Processing of Incoming FDP Packets
In the Rx path, FPH module 116 receives CPU-bound packets from TM Interface module 204. From the packets received from TM module 204, FPH module 116 is configured to identify FDP packets. FPH module 116 may use different techniques to identify FDP packets. For example, in one embodiment, contents of a packet, including the header and/or the payload of the packet, may be examined to determine if the packet is an FDP packet. For example, a BSD packet comprises a UDP header specifying a destination port that identifies the packet as a BSD packet and accordingly an FDP packet. For an 802.1ag packet, fields in the packet are used to identify if the packet is an 802.1ag packet.
For a packet identified as an FDP packet, FPH module 116 determines if the FDP packet needs to be forwarded to CPU 114 or whether the FDP packet can be dropped without forwarding to CPU 114. Various different techniques may be used by FPH module 116 to determine if a packet needs to be forwarded to CPU 114. The techniques may be different for different FDPs. According to one technique, a portion of the FDP packet is compared with preconfigured reference information and the results of the comparison are used to determine if the FDP packet needs to be sent to CPU 114 or if the packet can be dropped without sending it to CPU 114. As part of the comparison, FPH module 116 is configured to determine if a portion of an FDP packet received for a session matches a corresponding entry in the reference information for that session. In one embodiment, a match indicates that the FDP packet need not be forwarded to the CPU. In such a case, the FDP packet for that session is dropped and not forwarded to CPU 114. As a result, CPU 114 does not receive the FDP packet and consequently does not have to process the dropped packet. In one embodiment, if the portion of the FDP packet being compared does not match information in the reference information, then FPH module 116 forwards the FDP packet to CPU 114. In such a scenario, FPH module 116 may also raise an interrupt signaling to CPU 114 that a packet is being forwarded to CPU 114.
Different techniques may be used to forward an FDP packet from FPH module 116 to CPU 114. In one embodiment, a direct memory access (DMA) technique may be used to forward the packet to CPU 114. FPH module 116 may DMA the packet to a buffer stored in memory 206 associated with CPU 114. CPU 114 may then read the packet from memory 206. Various other techniques may also be used to forward FDP packets to CPU 114.
The reference information that is used by FPH module 116 to determine whether or not an FDP packet for a session needs to be forwarded to CPU 114 may be preconfigured and programmed by software executed by CPU 114. The reference information may comprise various rules configured by the software for various types of FDP sessions. The reference information may be stored in different formats. In one embodiment, the reference information is stored as a table with each row entry in the table corresponding to an FDP session. In one embodiment, the reference information is stored by FPH module 116. The reference information may also be stored in other memory locations accessible to FPH module 116. For example, in one embodiment, the reference information may be stored in one or more memories 206 associated with CPU 114.
FPH module 116 then determines if the packet is an FDP packet (step 304). As previously described, various different techniques may be used to determine if a packet is an FDP packet. For example, information stored in the header and/or payload of the packet may be used to determine if the packet is an FDP packet. As part of 304, FPH module 116 may also determine a particular FDP (e.g., BFD or 802.1ag, or other) to which the packet belongs. If it is determined in 304 that the packet is not an FDP packet, then the packet is forwarded to CPU 114 (step 306) and processing ends. Various different techniques such as DMA techniques and others may be used to forward the packet to CPU 114.
If it is determined in 304 that the packet is an FDP packet, then a portion of the packet is compared with information stored in reference information (step 308). The reference information may be stored by FPH module 116 or may be stored in some memory location accessible to FPH module 116. The portion of the packet being compared may include a portion of the header of the packet and/or a portion of the payload of the packet. In one embodiment, the packet information is compared with reference information configured for the FDP session for which the packet is received.
Different types of reference information may be stored and used for the comparison for different FDPs. Accordingly, in 308, the reference information that is used for the comparison may depend on the FDP corresponding to the FDP packet. For example, the reference information used for a BFD packet is different from the reference information used for an 802.1ag packet.
Based upon the results of the comparison performed in 308, a determination is made if the packet is to be forwarded to CPU 114 (step 310). In one embodiment, if the portion of the FDP packet being compared matches information in the reference information for that FDP then this indicates that the packet is not to be forwarded to CPU 114. If however the portion of the packet being compared does not match information in the reference information then the packet is identified to be forwarded to CPU 114. If it is determined in 310 that the packet is to be forwarded to CPU, then the FDP packet is forwarded to CPU 114 according to step 306 and processing terminates. If it is determined in 310 that the packet is not to be forwarded to CPU, then the FDP packet is dropped and not forwarded to CPU 114 (step 312) and processing terminates.
The processing depicted in
Determining Non-Receipt of FDP Packets
FPH module 116 is also configured to monitor non-receipt of FDP packets. FPH module 116 is configured to monitor and take appropriate actions in situations where an FDP packet for an FDP session is not received by network device 102 within a periodic time interval for that FDP session. As previously described, an FDP specifies a periodic time interval in which packets for that FDP are to be transmitted and received. When an FDP packet is not received within the expected time interval, FPH module 116 is configured to signal such an occurrence to CPU 114 since it may indicate a network failure.
As previously described, a network device such as network device 102 depicted in
FPH module 116 may use different techniques to monitor receipt and non-receipt of FDP packets information for various FDP sessions. In one embodiment, FPH module 116 maintains a pair of timers for each session. The pair of timers includes a first timer (interval_limit timer) that indicates a time interval limit within which an FDP packet should be received for that session. This timer is typically programmed by software executed by the CPU of the network device. The pair of timers also includes a second timer (last_received timer) that is used by FPH module 116 to monitor the time that it has waited to receive an FDP packet for the session since the last receipt of an FDP packet for that session. When an FDP packet for that session is received, the last_received timer is reset by FPH module 116. FPH module 116 iteratively checks the values of the interval_limit timer and the last_received timer for each of the FDP sessions in which the network device participates. During each iteration for a session, FPH module 116 checks if the last_received timer for a session has reached the interval_limit timer for that session. When the last_received timer reaches or exceeds the interval_limit timer, it indicates that the FDP packet for the session was not received in the expected time interval and FPH module 116 signals this to CPU 114. The FDP session may be considered to have expired due to the non-receipt of an FDP packet. In one embodiment, an interrupt is generated by FPH module 116 to flag that the particular FDP session has expired possibly due to some failure in the network (e.g., a link is down). If the last_received timer has not reached the interval_limit timer, then the last_received timer is incremented. In this manner, the timers are used to monitor receipt and non-receipt of FDP packets for each FDP session. The timers information may be stored by FPH module 116 or in some memory location accessible to FPH module 116.
The processing depicted in
As described above, in the Rx path, FPH module 116 handles processing of FDP packets received by a network device and also non-receipt of FDP packets. In the Tx path, FPH module 116 may receive packets from CPU 114 and forward the packets to TM module 204. TM module 204 may then forward the packets to the appropriate destinations for the packets.
Transmission of FDP Packets
FPH module 116 is also configured to assist in transmission of FDP packets for the various FDP sessions in which network device 102 participates. In this manner, the FDP packets transmission task is offloaded from CPU 114. In order to facilitate transmission of FDP packets, in one embodiment, FPH module 116 maintains a pair of timers for each FDP session. The pair of timers includes a first timer (trx_interval timer) that indicates the periodic transmission interval for transmitting an FDP packet for that FDP session. The trx_interval timer may be different for the different FDP sessions handled by the network device. This timer is typically programmed by software executed by CPU 114. The pair of timers also includes a second timer (last_sent timer) that is used by FPH module 116 to monitor the time when an FDP packet was last transmitted by network device 102 for the FDP session. The two timers for each session are iteratively checked at periodic intervals to determine when to transmit an FDP packet for that session. In one embodiment, when the last_sent timer is equal to the trx_interval timer, FPH module 116 transmits an FDP packet for that session and the last_sent timer is reset to zero to restart the count. The FDP packet transmitted by FPH module 116 for a session is forwarded to TM module 204 and then to a destination port of network device 102. The FDP packet is then forwarded from network device 102 using the destination port. In this manner, FPH module 116 facilitates transmission of FDP packets from network device 102 for the various FDP sessions at periodic intervals associated with the FDP sessions.
The processing depicted in
As depicted in
Various different memory structures may be used to facilitate automated transmission of FDP packets. In one embodiment, CPU 114 may provide multiple priority queues for transmitting packets. Each priority queue is implemented as a linked list that contains a set of descriptor entries. In one embodiment, one or more such linked list priority queues are assigned to FPH module 116 to facilitate transmission of FDP packets.
Timers information 608 in an entry stores the trx_interval timer and the last_sent timer values for the FDP session corresponding to the entry. The trx_interval timer value for the session is initialized by software executed by CPU 114. As previously described, the trx_interval and last_sent timers are used by FPH module 116 to determine when to send an FDP packet for the session.
According to an embodiment of the present invention, a base timer may be associated with linked list 600 used by FPH module 116 to transmit FDP packets. The base timer for a linked list determines the interval at which the entries in the linked list are visited and checked by FPH module 116. For example, if the base timer for linked list 600 depicted in
Command/status information 610 may store other information related to the FDP session. For example, if the FDP session requires any special processing then that information may be stored in information 610.
Various other types of data structures may also be used to facilitate FDP packets transmission in alternative embodiments. For example, in one embodiment multiple linked lists may be used by FPH module 116 to facilitate transmission of FDP packets, each with its own associated base timer. In one embodiment using two linked lists, one linked list may have an associated base timer of 1 msec and the other may have an associated base timer of 50 msecs. A session may be allocated to one of the two linked lists based upon the trx_interval timer values associated with the session. For example, an FDP session having a trx_interval timer of 100 msecs may be allocated to the linked list having an associated base timer of 50 msecs whereas an FDP session having a trx_interval timer of 6 msecs may be allocated to the linked list having an associated base timer of 1 msec. In one embodiment, FPH module 116 may also be configured to transmit FDP packets for all the FDP session entries in a liked list at once (referred to as a “one-shot” transmission).
New entries may be added to a transmission linked list as more FDP sessions are initiated. In one embodiment, when a new entry is to be added to a linked list, the transmit functionality is disabled for the linked list to which the entry is to be added. In one embodiment, a one-shot transmission may be first performed for the linked list prior to the disabling. The new entry is then added to the linked list. The transmit operations for the linked list, now with the new entry for a new session, are then enabled. The trx_interval timer information for a session entry in the linked list may also be changed by software executed by the CPU of a network device.
As described above, FPH module 116 offloads some of the FDP packets-related processing that was conventionally performed by software executed by a CPU of a network device. In the Rx path, FPH module 116 determines if an FDP packet received by network device 102 needs to be provided to CPU 114 for processing. If it is determined that the FDP packet does not need to be forwarded to CPU 114 then the FDP packet is dropped. If instead, it is determined that the FDP packet needs to be forwarded to CPU 114 then FPH module 116 forwards the packet to CPU 114.
Processing Using Dual Ring Structures
Various data structures may be used by FPH module 116 to facilitate processing of FDP packets in the Rx path. According to an embodiment of the present invention, a dual ring structure is used to facilitate the processing. A dual ring structure may comprise two rings, with each ring being a circular linked list of entries.
The number of entries in the two rings may be user-configurable. The entries are sometimes referred to as descriptor entries as they store information describing FDP packets. The number of entries in CPU_assist ring 702 is generally greater than the number of entries in CPU ring 704.
CPU_assist ring 702 is used by FPH module 116 to process FDP packets received by the network device and by FPH module 116 in the Rx path. CPU_assist ring 702 comprises a number of entries (“m” entries depicted in
Buffer memory 710 used for buffering the FDP packets may be located in FPH module 116 or in some other location accessible to FPH module 116. In embodiments where the memory resources of FPH module 116 are limited, buffer memory 710 may be stored for example in a memory (e.g., SDRAM 206) associated with CPU 114.
In one embodiment, each entry in CPU_assist ring 702 for an FDP packet buffered in memory 710 comprises the following information: (1) a buffer pointer 708 pointing to the location in buffer memory 710 storing the FDP packet corresponding to the entry; (2) a “processed bit” 706 indicating if the FDP packet corresponding to the entry has been processed by FPH module 116; and (3) a next pointer 712 pointing to the next descriptor entry in CPU_assist ring 702.
Processed bit 706 in an entry is used to identify the processing status of the FDP packet corresponding to the entry. In one embodiment, if the bit is set to 0 (zero), it indicates that the FDP packet corresponding to the entry needs to be processed. If the bit is set to 1 (one), it indicates that the FDP packet for the entry has already been processed and the entry is available for storing information for a new FDP packet. The bit is set to 1 (one) after the FDP packet has been processed.
A process_start_address pointer and a dma_start_addr pointer may also be provided (not shown in
FPH module 116 traverses CPU_assist ring 702 at regular time intervals to process FDP packets corresponding to entries in CPU_assist ring 702. For an unprocessed entry (as indicated by processed bit set to 0 in the entry), FPH module 116 uses the buffer pointer of the entry to access the corresponding FDP packet stored in buffer memory 710. A portion of the FDP packet is then selected and compared to information stored in reference information for the FDP. As described above, if there is a match, it indicates that the FDP packet need not be provided to CPU 114 and can be dropped. In this event, processed bit 706 of the entry in CPU_assist ring 702 is set to 1 to indicate that the FDP packet corresponding to the entry has been processed and the FDP packet is dropped.
If there is no match, it indicates that the FDP packet is to be provided to CPU 114. In this case, a buffer swap is performed between the buffer pointed to by the entry in CPU_assist ring 702 and a free entry in CPU ring 704. In one embodiment, as a result of the swap, a buffer pointer in a previously available entry in CPU ring 704 is made to point to a buffer memory location pointed to by the buffer pointer in the entry in CPU_assist ring 702. In this manner, after the buffer swap, a buffer pointer in an entry in CPU ring 704 now points to the location of the buffered FDP packet. For example, in
There may be situations where there are no available entries in CPU ring 704 for performing the buffer swap. This may occur for example when CPU 114 is backed up in its processing and is unable to process the FDP packets pointed to by entries in CPU ring 704 in a timely manner. This scenario may arise due to the rate at which FDP packets are received by the network device exceeding the rate at which CPU 114 is able to process the FDP packets. In such a scenario, FPH module 116 drops the buffered FDP packet corresponding to the entry in CPU_assist ring 702 whose pointer is to be swapped. FPH module 116 then continues processing of the next entry in CPU_assist ring 702 corresponding to the next unprocessed FDP packet. In this manner, FPH module 116 is able to continue processing the incoming FDP packets even if CPU 114 is backed up. This minimizes the number of incoming FDP packets that are dropped due to CPU 114 being busy.
The dual ring structure depicted in
TM Interface module 802 provides an interface for receiving packets from and transmitting packet to TM module 204. In the Rx path, TM Interface module 802 receives CPU-bound packets, including FDP packets, from TM module 204. The incoming packets may be buffered in Rx FIFO 816 for analysis. TM Interface module 802 identifies FDP packets from the CPU-bound packets received from TM module 204. Packets that are not FDP packets are forwarded to Rx handler module 806 for forwarding to CPU 114. For a packet identified as an FDP packet, TM Interface module 802 presents a portion of the FDP packet to Packet Inspection module 804 for analysis. In one embodiment, this is done by presenting an offset into the FDP packet to Packet Inspection module 804. The offset is programmable and may be different for different FDPs. The portion of the FDP packet presented to Packet Inspection module 804 may include a portion of the header of the FDP packet, a portion of the payload of the FDP packet, or even the entire FDP packet. The portion of the FDP packet generally includes the session identifier for the packet.
Packet Inspection module 804 is configured to take the portion of the FDP packet received from TM Interface module 802 and compare information in the portion with reference information that has been programmed by software running on CPU 114. The reference information may be stored by Packet Inspection module 804 (e.g., reference information 812 depicted in
Packet Inspection module 804 may use an indexing scheme to perform the compare operation. In one embodiment, a part of the portion of the FDP packet received from TM Interface module 802 is used as an index into the reference information to identify an entry in the reference information corresponding to a particular session. The size of the index may vary based upon the number of session entries in the reference information. For example, a 9-bit index is needed for indexing 512 reference information entries. The information stored in a particular session entry identified using the index is then compared to the information in the portion of the FDP packet received from TM Interface module 802 to determine if there is a match. Results of the match are provided to TM Interface module 802. The results identify whether or not the information in the portion of the FDP packet matched the information in the particular session entry indexed by the FDP packet portion.
As described above, TM Interface module 802 receives a result response from Packet Inspection module 804 indicating whether or not the FDP packet information matched the corresponding information in the reference information. If the received result indicates a match, then this indicates to TM Interface module 802 that the particular FDP packet can be dropped and need not be forwarded to CPU 114. TM Interface module 802 then drops the FDP packet and flushes Rx FIFO 816 buffers corresponding to the FDP packet. The FDP packet is dropped without notifying CPU 114 about the packet. If the result received from Packet Inspection module 804 indicates that the FDP packet information did not match information in the session entry in the reference information, TM Interface module 802 forwards the FDP packet to Rx handler module 806 for forwarding to CPU 114.
TM Interface module 802 is also configured to flag an error when an FDP packet for an FDP session is not received within a periodic time interval corresponding to the FDP session. In one embodiment, for each FDP session handled by the network device, TM Interface module 802 stores information (e.g., timers information) tracking when the last FDP packet for the session was received and when the next FDP packet is due to be received. If the next FDP packet for that session is not received within the time interval for that FDP session, then an error is flagged. CPU 114 may be notified about the error.
Rx Handler 806 is configured to receive CPU-bound packets, including FDP packets, from TM Interface module 802 and provide the packets to CPU Interface module 810 for forwarding to CPU 114. Rx Handler 806 may also comprise a FIFO for storing the CPU-bound packets before being forwarded to CPU 114.
CPU Interface module 810 is configured to forward packets to CPU 114. In one embodiment, a DMA technique is used to forward packets to CPU 114. In such an embodiment, CPU Interface Module 810 acts as a DMA engine that DMAs the packets to CPU 114. In one embodiment, the packet is written to a memory 206 associated with CPU 114 from where the packet can be accessed by CPU 114. Different interfaces may be used to forward packets from FPH module 116 to CPU 114. For example, in one embodiment, a PCI bus interface may be used to forward packets to CPU 114. In such an embodiment, CPU Interface Module 810 may comprise PCI-related modules for forwarding packets to CPU 114. In one embodiment, the DMA engine is part of Rx handler 806 and CPU interface module 810 initiates the DMA process.
CPU Interface Module 810 is also configured to receive packets from CPU 114. These packets are then forwarded to Tx Handler module 808. Tx Handler module 808 may comprise a FIFO for storing the packets. The packets are then forwarded to TM Interface module 802. In one embodiment, Tx Handler module 808 comprises a DMA engine that retrieves FDP packets from the CPU SDRAM. TM Interface module 802 may comprise a Tx FIFO 818 for storing the packets prior to transmission. A descriptor entries scheme may be used for retrieving and storing the packets. TM Interface module 204 then forwards the packets to TM module 204. The packets may then be forwarded to the appropriate destination ports and transmitted from network device 102 via the destination ports.
According to an embodiment of the present invention, Tx Handler module 808 is configured to handle transmission of FDP packets from network device 102 for various FDP sessions. In one embodiment, Tx Handler module 808 maintains a pair of timers for each FDP session handled by the network device. As previously described, the pair of timers may include a trx_interval timer that indicates that transmission interval for transmitting an FDP packet for that FDP session and a last_sent timer that is used to monitor the time when an FDP packet was last transmitted by the network device for the FDP session. The two timers for each session are iteratively checked at periodic intervals to determine when to transmit an FDP packet for each session.
Tx Handler module 808 may use different structures to facilitate automated transmission of FDP packets. For example, in one embodiment, one or more circular linked lists (such as linked list 600 depicted in
The FDP packets transmitted by Tx Handler 808 are forwarded to TM Interface module 802 and then to TM module 204. The FDP packets are then forwarded to one or more ports of the network device and then transmitted from the network device using the one or more ports.
As described above, embodiments of the present invention reduce the amount of FDP packets-related processing that a CPU of a network device has to perform. For incoming FDP packets, FPH module 116 assists the CPU by reducing the number of incoming FDP packets that a CPU has to process. FPH module 116 is also able to flag when an FDP packet for an FDP session is not received within the periodic time interval for the session. FPH module 116 also handles transmission of FDP packets for various sessions at regular time intervals. The FDP packets transmission task is thus offloaded from the CPU of the network device. This further reduces the processing cycles that the CPU of the network device has to spend on FDP-packets related processing. This enables the network device to be able to support newer FDPs such as 802.1ag and BFD having very short periodic time intervals for transmission of FDP packets (e.g., faster than 1 second, more typically in milliseconds such as 1 millisecond, 5 milliseconds, or even shorter) without adversely affecting CPU performance. Accordingly, embodiments of the present invention enable a network device to process reception and transmission of FDP packets that may be received and transmitted at a rate faster than 1 FDP packet per second. Embodiments of the present invention are able to handle FDPs having periodic time intervals that may be one or more milliseconds (msecs), one or more seconds, or other shorter or longer time intervals.
As previously indicated, there are several different types of FDPs. Examples include BFD and 802.1ag. The following sections of the application describe embodiments of present invention for BFD and 802.1ag packets processing.
Processing of Bidirectional Forwarding (BFD) Protocol Packets
As previously described, BFD is a type of FDP.
EtherType Field 910 indicates whether the IP Header is IPv4 or IPv6. For example, a value of 0x0800 indicates IPv4 while 0x86DD indicates IPv6. In case of an IPv4 packet, IP header field 912 comprises 20 bytes of an IPv4 header (as specified by the IPv4 protocol). In case of an IPv6 packet, IP header field 912 comprises 40 bytes of an IPv6 header (as specified by the IPv6 protocol).
UDP header section 914 of the packet is used by FPH module 116 to identify a packet as a BFD packet. The following Table A shows the contents of UDP header section 914.
A BFD echo packet is addressed to the router who is sending it, so that the next-hop router will send the packet back to the initiating router. FPH module 116 uses the “Destination Port” field to identify a packet as a BFD packet.
(1) Version (3-bit): The version number of the protocol.
(2) Diagnostic (Diag) (5-bit): A diagnostic code specifying the local system's reason for the last session state change. This field allows remote systems to determine the reason that the previous session failed. Values are: 0—No Diagnostic; 1—Control Detection Time Expired; 2—Echo Function Failed; 3—Neighbor Signaled Session Down; 4—Forwarding Plane Reset; 5—Path Down; 6—Concatenated Path Down; 7—Administratively Down; 8—Reverse Concatenated Path Down; 9-31—Reserved for future use.
(3) State (STA) (2-bit): The current BFD session state as seen by the transmitting system. Values are: 0—AdminDown; 1—Down; 2—Init; 3—UpPoll (P) (1-bit): If set, the transmitting system is requesting verification of connectivity, or of a parameter change. If clear, the transmitting system is not requesting verification.
(4) Final (F) (1-bit): If set, the transmitting system is responding to a received BFD Control packet that had the Poll (P) bit set. If clear, the transmitting system is not responding to a Poll.
(5) Control Plane Independent (C) (1-bit): If set, the transmitting system's BFD implementation does not share fate with its control plane. If clear, the transmitting system's BFD implementation shares fate with its control plane.
(6) Authentication Present (A) (1-bit): If set, the Authentication Section is present and the session is to be authenticated.
(7) Demand (D) (1-bit): If set, the transmitting system wishes to operate in Demand Mode. If clear, the transmitting system does not wish to or is not capable of operating in Demand Mode.
(8) Reserved (R) (1-bit): This bit must be zero on transmit, and ignored on receipt. Detect Multiple (8-bit): Detect time multiplier. The negotiated transmit interval, multiplied by this value, provides the detection time for the transmitting system in Asynchronous mode.
(9) Length (8-bit): Length of the BFD Control packet, in bytes.
(10) My Discriminator (32-bit): A unique, nonzero discriminator value generated by the transmitting system, used to demultiplex multiple BFD sessions between the same pair of systems.
(11) Your Discriminator (32-bit): The discriminator received from the corresponding remote system. This field reflects back the received value of My Discriminator, or is zero if that value is unknown.
(12) Desired Min TX Interval (32-bit): This is the minimum interval (in microseconds) that the local system would like to use when transmitting BFD Control packets.
(13) Required Min RX Interval (32-bit): This is the minimum interval, in microseconds, between received BFD Control packets that this system is capable of supporting.
(14) Required Min Echo RX Interval (32-bit): This is the minimum interval, in microseconds, between received BFD Echo packets that this system is capable of supporting. If this value is zero, the transmitting system does not support the receipt of BFD Echo packets.
In the receive (Rx) path, TM Interface module 802 determines if an incoming packet is a BFD packet based upon the “Destination Port” information in the UDP header portion of the packet. TM Interface module 802 then determines if the BFD packet should be dropped (or terminated) or otherwise should be sent to CPU 114 for inspection. As part of this determination, TM Interface module 802 presents a portion of the BFD packet to Packet Inspection module 804. Generally, an offset into the BFD packet is provided to Packet Inspection module 804.
Packet Inspection module 804 then compares the information in the BFD packet portion received from TM Interface module 802 to information stored in the reference information to see if there is a match. In one embodiment, the reference information for BFD packets comparison is stored by FPH module 116 and comprises 512 BFD session entries, each entry 12-bytes long.
Packet Inspection module 804 uses an index to select which one of the 512 reference information session entries of structure 1100 is to be selected for comparison with BFD packet information. As previously described, a BFD packet has a 24-byte BFD header section 916. The 24-byte header section or a portion thereof (e.g., a 12-byte section of the BFD header) may be used as an index. In one embodiment, the least significant 9 bits of the “Your Discriminator” of the BFD header section of a BFD packet that are unique per BFD session are used by the TM Interface module 802 as an index to the BFD reference memory structure. The size of the index depends upon the number of entries stored in the BFD reference information. In alternative embodiments, any unique portion of the BFD packet may be used as an index.
The index, which is based upon a portion of the BFD packet, is then used to identify a particular session entry in the BFD reference information. The reference information from the selected session entry is then compared to the information in the portion of the BFD packet received by Packet Inspection module 804 to see if there is a match. For example, for an entry in memory structure 1100 depicted in
If TM Interface module 802 receives a signal from Packet Inspection module 804 indicating a match, then the particular BFD packet is dropped or terminated. In this manner, the BFD packet is not forwarded to CPU 114. If the signal received from Packet Inspection module 804 indicates that there was no match, it indicates to TM Interface module 802 that the BFD packet needs to be forwarded to CPU 114 for inspection and processing. TM Interface module 802 then forwards the BFD packet to CPU 114 via Rx Handler 806 and CPU Interface Module 810.
FPH module 116 is also configured to flag non-receipt of BFD packets for a BFD session. In one embodiment, this may be performed by TM Interface module 802. This is facilitated by counter information 1006 that is included in each session entry in the BFD reference information 1100 as depicted in
FPH module 116 iteratively checks the counters information for the various BFD session entries in memory structure 1100. When FPH module 116 determines for a session that last_received timer 1204 for the session reaches or exceeds interval_limit timer 1202, it indicates that a BFD packet for the session was not received in the expected time interval and FPH module 116 signals this error condition to CPU 114. In one embodiment, an interrupt is generated by FPH module 116 to flag that the particular BFD session has expired and there may be some failure in the network (e.g., a link is down). In this manner, non-reception of a BFD packet for a session is detected and flagged.
Counters information 1106 is monitored and checked by FPH module 116 on a periodic basis for the BFD entries. During a check, FPH module 116 walks through the session entries in the BFD reference information 1100 and checks the timers for each entry. In one embodiment, the frequency at which the checks are repeated is user-programmable. The frequency may also be determined automatically based upon the interval_limit timers for the sessions. For example, in one embodiment, the iteration frequency is set to the least common denominator of the various interval_limit timers being monitored for the various sessions by FPH module 116. In this manner, the frequency is programmable and/or may be automatically determined from the interval_limit timers information for the BFD sessions in the reference information.
In the transmit (Tx) path, FPH module 116 is configured to perform automated transmission of BFD packets for the various BFD sessions. In one embodiment, this may be performed by Tx handler 808. In one embodiment, a memory structure such as linked list 600 depicted in
Processing of 802.1ag Packets
As previously indicated, 801.1ag packets are a type of FDP packets. The 802.1ag standard specifies protocols, procedures, and managed objects to support transport fault management. These allow discovery and verification of the path, through bridges and LANs, taken for frames addressed to and from specified network users, detection, and isolation of a connectivity fault to a specific bridge or LAN. 802.1ag Connectivity Fault Management (CFM) provides capabilities for detecting, verifying and isolating connectivity failures in multi-vendor networks. FPH module 116 assists the CPU of a network device in processing 802.1ag packets, both in processing of incoming 802.1ag packets (e.g., determining if an 802.1ag packet should be forwarded to the CPU) and transmission of 802.1 ag packets.
FPH module 116 is capable of supporting multiple types (e.g., five different types in one embodiment) of 802.1ag packets.
Each 802.1ag packet has a data section (e.g., section 1302 depicted in
FPH module 116 identifies a packet as an 802.1ag packet using an 802.1ag packet reference information table.
(1) Etype 1 (2-bytes): This is the first Etype field after the Source MAC in the 802.1ag packet header. This field is 0x8847 for VPLS/VLL uplink and 0x8902 for a regular link. This field is used in the comparison performed by FPH module 116 to determine if an 802.1ag packet needs to be sent to the CPU for processing and whether it can be dropped.
(2) Etype 2 Option (1-byte): This field consists of a 1-bit check field and a 7-bit offset field. If the check bit is set, the offset field indicates the number of bytes after Etype 1 where Etype 2 can be found. If the incoming packet is from a VPLS/VLL, FPH module 116 checks the MPLS label stack for the S bit. If the bit is 0, 4-bytes will get added to the offset field.
(3) Etype 2 (2-bytes): This is compared against an incoming packet's second Etype field if the check bit is set in the Etype 2 Option's field.
(4) Etype 3 Option (1-byte): This field consists of a 1-bit check field and a 7-bit offset field. If the check bit is set, the offset field indicates the number of bytes after Etype 1 where Etype 3 can be found. Etype 3 is considered to be 0x8902 and the 802.1ag Data always starts after it.
(5) SMAC Option (1-byte): This field consists of a 1-bit check field and a 7-bit offset field. If the check bit is set, the offset field indicates the number of bytes from the last Etype where SMAC can be found.
In one embodiment, FPH module 116 uses the 802.1ag packet reference table to determine if an incoming packet is an 802.1ag packet. If the packet is determined to be an 802.1 ag packet, then the packet is buffered and an entry for the packet created in the CPU_assist ring depicted in
The use of the dual ring structure depicted in
In one embodiment, various checks are made to determine whether an 802.1ag packet needs to be forwarded to the CPU for processing. FPH module 116 first checks the Opcode field (depicted in
As indicated above, if the 802.1ag packet is determined to be a CCM packet, then further comparisons are performed to determine if the packet needs to be forwarded to the CPU of the network device. In one embodiment, the reference information against which the comparisons are performed includes a hash table and a sessions table. The hash table and memory table may be stored in a memory location accessible to FPH module 116 and are initialized by software executed by the CPU of the network device. In one embodiment, the hash table and sessions table may be stored in RAM (e.g., SDRAM) associated with the CPU.
According to an embodiment of the present invention, each entry 1612 in hash table 1602 comprises packet reference information 1614 to be used for comparison, a session table pointer 1616 pointing to an entry in sessions table 1604, and a next pointer 1618 pointing to the next entry in hash table 1602. In one embodiment, packet reference information 1614 comprises 50 bytes corresponding to bytes 9-10 of MEPID, and bytes 13-17 and 36-58 of MAID from a CCM 802.1ag packet. In this embodiment, after an entry in hash table 1602 has been identified by hash index 1610 for a received 802.1ag packet, bytes 9-10 of MEPID, and bytes 13-17 and 36-58 of MAID from the received 802.1ag packet are compared with the 50 bytes 1614 stored in the hash table entry indexed by the 8-bit hash result. If the received packet information matches the packet reference information 1614 stored in the hash table entry, then session table pointer 1616 of the hash table entry is used to identify an entry in sessions table 1604. If there is no match, then the entries in hash table 1602 may be traversed using next pointer 1618 until a matching packet reference information is identified or until all entries have been traversed. The session table pointer 1616 of the entry comprising the matching packet reference information is then used to identify an entry in sessions table 1604. If no matching information is found in the hash table, then the received 802.1ag packet is forwarded to the CPU of the network device.
As depicted in
(1) Ownership (1-bit): The ownership bit is used to indicate if FPH module 116 can modify the sequence number of the entry. When the bit is set, the session can be used by FPH module 116.
(2) Accept (1-bit): When this bit is set, FPH module 116 disregards the sequence number of the first 802.1ag packet matching the session. FPH module 116 saves the incremented CCM packet sequence number in the session entry and resets the accept bit.
(3) Version (5-bits): If the version field in the session table entry does not match the corresponding information in the received 802.1 ag packet, the packet is forwarded to the CPU.
(4) Flags (8-bits): If this field in the session table entry does not match the corresponding information in the received 802.1ag packet, the received packet is sent to the CPU.
(5) Sequence number (32-bits): Software executing on the CPU initializes a value. When the Accept bit is set, FPH module 116 accepts whatever sequence number it sees and stores it in the session entry and then resets the Accept bit. When the Accept bit is not set (i.e., is zero), FPH module 116 checks to see if the sequence number of an incoming 802.1ag packet is 1 greater than the stored sequence number in the session table entry. If true, the sequence number of the incoming packet is correct. If the ownership bit is 1, the sequence number value is incremented and saved into the sessions table entry, so that the right value is available for comparison for that session for the next received 802.1ag packet that will also have an incremented sequence number. If sequence number of an incoming 802.1ag packet is not 1 greater than the stored sequence number in the session table entry, there is a potential problem and a packet with the correct expected sequence number may have been dropped. In this case, the new sequence number of the packet is stored in the session entry in the session status FIFO (described below), but the received 802.1ag packet is not forwarded to the CPU. The updating of the sequence number in the session table entry prevents every packet, after a mismatch of sequence numbers, of being treated as a mismatch and being forwarded to the CPU.
(6) Source Port (10-bits) and VC Label (20-bits): Source port of a packet is internal header bits 64-73 and VC label is MPLS stack bits 0-19. An incoming 802.1ag packet is sent to the CPU if the field checks below against the session entry do not match:
(7) Source MAC (6-bytes): It can be outer or inner Source MAC.
(8) Session Status (8-bits): These bits are set by FPH module 116 and encode conditions related to the session corresponding to the sessions table entry. The conditions are:
8′h01=Session timeout
8′h02=Sequence number mismatch
Others=Reserved.
(9) SW_timer (16-bits) (referred to above as the interval_limit timer): This field is set by software executed by the CPU and indicates the time interval that an 802.1ag packet is expected to be received in for that session. This may be expressed as a multiple of some base timer. This is same as the interval_limit timer previously described.
(10) HW_timer (16-bits) (referred to above as the last-received timer): This field is used by FPH module 116 to keep track of aging, i.e., the time that an 802.1ag packet matching the session has not been received. It is reset by FPH module 116 every time it processes a matching 802.1ag packet whether it is dropped or sent to the CPU. This is same as the trx_interval timer previously described.
(11) Error counter (8-bits): This field is incremented by FPH module 116 every time there is a Sequence number mismatch. At a programmable interval, FPH module 116 writes the Session pointer of a session entry and the non-zero Error counter into the Session Status FIFO.
(12) Session counter (16-bits): This field keeps track of how many packets matching a session have been received. This field is incremented by FPH module 116 every time a packet matching the session is received. Software executing on the CPU of the network device may reset the timer when it takes over the ownership of the session.
As previously described, if the received packet information matches the packet reference information 1614 stored in the hash table entry, session table pointer 1616 of the hash table entry is used to identify an entry in session table 1604. The reference information in the session table entry is then compared to information in the packet. In one embodiment, one or more fields of the particular session table entry are compared to corresponding fields of the received packet. If the compared information matches, then the received packet is dropped and not forwarded to the CPU. If the compared information does not match, then the packet is forwarded to CPU. The fields of a session table entry that are compared to the corresponding information in a received packet may differ based upon the type of the received packet, for example, the type of 802.1 ag packet. In this manner, a received 802.1 ag packet is dropped if information from the packet matches reference information 1614 of an entry 1612 in hash table 1602 and information from the packet also matches reference information in a session table entry pointed to by session table pointer 1616 of the matching hash table entry 1612—else, the packet is not dropped and forwarded to the CPU for processing.
As depicted in
(1) Session Pointer (16-bits): Indicates the list significant 16 bits of the pointer where there is a sequence number mismatch.
(2) Error Counter (8-bits): It is the same value as the Error Counter field in the Session Table entry. Relevant for Sequence number mismatch.
(3) Used FIFO Entries (4-bits): Indicates the number of used FIFO entries in the Session Status FIFO in 32-bit increments i.e., 4′h0: 0-32 entries, 4′h1: 33-64 entries, . . . , 4′hF: 481-512.
(4) Status (4-bits). This field indicates the condition that the entry was recorded for. The values are: 4′h1: Session timeout; 4′h2: Sequence number mismatch; Others: Reserved.
In one embodiment, an 802.1ag packet is also sent to the CPU for processing if the following conditions below hold true: (1) The “First TLV Offset” (byte 4 of the 802.1ag data section of a packet) is less than 70; or (2) If the “First TLV Offset” is equal to or more than 70 and the “Optional CCM TLVs” (byte 75 of CCM data) is not zero.
As indicated in
Timers information 1808 in an entry stores the trx_interval timer and the last_sent timer values for the 802.1 ag session corresponding to the entry. The trx_interval timer value for the session is initialized by software executed by CPU 114. As previously described, the trx_interval and last_sent timers are used to determine when to send an 802.1 ag packet for the session.
According to an embodiment of the present invention, a base timer may be associated with linked list 1800. The base timer determines the interval at which the entries in linked list 1800 are visited and checked by FPH module 116. For example, if the base timer for linked list 1800 depicted in
Command/status information 1810 may store other information related to the 802.1ag session. For example, if the 802.1ag session requires any special processing then that information may be stored in information 1810.
Offset information 1812 provides an offset into the 802.1ag packet pointed to by buffer pointer 1804 pointing to information in the packet that needs to be changed prior to periodic transmission of the packet. Offset information 1812 thus identifies the location within an 802.1ag packet that needs to be changed prior to transmission. For example, as previously described, the sequence number within an 802.1ag needs to be incremented with each transmitted 802.1ag packet. In such an embodiment, offset information 1812 may provide an offset to a location in the 802.1 ag packet storing sequence number information that needs to be incremented with every transmitted packet. In other types of FDP packets, other one or more offsets may be provided that may be used to access one or more sections or portions of the packet that need to be changed prior to transmission of the packet.
The sequence number information in an 802.1ag packet is incremented by FPH module 116 with each transmission of an 802.1ag packet for that session. The initial sequence number value may be set by software executed by the CPU of a network device. The sequence number information 1814 is then updated (e.g., incremented) after each 802.1 ag packet transmission such that the updated value may subsequently be used for the next transmitted 802.1 ag packet. In this manner, a parameter within an FDP packet may be updated with transmission of each FDP packet such that the correct parameter value is used for the next transmission.
If it is determined in 1902 that the last_sent timer has reached or exceeded the trx_interval timer for the session, FPH module 116 prepares an 802.1 ag packet for transmission. As part of this process, FPH module 116 first accesses the 802.1ag packet pointed to by buffer pointer 1804 of the entry corresponding to the session (step 1906). Offset information 1812 of the linked list entry is then used to locate the sequence number field within the 802.1ag packet accessed in 1906 (step 1908). An 802.1ag packet is then transmitted based upon the packet accessed in 1906 and having the sequence number located in 1908 (step 1910). As part of 1910, FPH module 116 may transmit the 802.1ag packet to TM module 204. The 802.1ag packet may then be forwarded to a port of the network device and transmitted from the network device via the port.
The sequence number located in 1908 in the packet accessed in 1906 is then incremented by one (step 1912). In this manner, an incremented sequence number is available for the next transmission of an 802.1ag packet for that session. The last_sent timer in timer information 1808 for the entry is then reset to zero (step 1914) to restart the countdown to the next packet transmission.
As described above with respect to
In the examples provided above, a linked list memory structure was used to facilitate transmission of FDP packets. Embodiments of the present invention are however not restricted to using linked lists. Other types of memory structures may also be used in alternative embodiments.
Although specific embodiments of the invention have been described, various modifications, alterations, alternative constructions, and equivalents are also encompassed within the scope of the invention. The described invention is not restricted to operation within certain specific data processing environments, but is free to operate within a plurality of data processing environments. Additionally, although the present invention has been described using a particular series of transactions and steps, it should be apparent to those skilled in the art that the scope of the present invention is not limited to the described series of transactions and steps.
Further, while the present invention has been described using a particular combination of hardware and software, it should be recognized that other combinations of hardware and software are also within the scope of the present invention. The present invention may be implemented only in hardware, or only in software, or using combinations thereof.
The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that additions, subtractions, deletions, and other modifications and changes may be made thereunto without departing from the broader spirit and scope of the invention as set forth in the claim.
This application is a continuation of U.S. patent application Ser. No. 11/953,742 filed Dec. 10, 2007, now U.S. Pat. No. 8,395,996, issued Mar. 12, 2013, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 60/880,074 filed Jan. 11, 2007 entitled TIMING SENSITIVE PROTOCOL PACKET HARDWARE ASSIST. The entire contents of the Ser. No. 11/953,742 and 60/880,074 applications are herein incorporated by reference for all purposes. The present application also incorporates by reference for all purposes the entire contents of the following applications: (1) U.S. Non-Provisional application Ser. No. 11/953,743 filed Dec. 10, 2007, now U.S. Pat. No. 7,978,614 issued Jul. 12, 2011, titled TECHNIQUES FOR DETECTING NON-RECEIPT OF FAULT DETECTION PROTOCOL PACKETS; (2) U.S. Non-Provisional application Ser. No. 11/953,745 filed Dec. 10, 2007, now abandoned, titled TECHNIQUES FOR TRANSMITTING FAILURE DETECTION PROTOCOL PACKETS; and (3) U.S. Non-Provisional application Ser. No. 11/953,751 filed Dec. 10, 2007, now U.S. Pat. No. 8,155,011 issued Apr. 10, 2012, titled TECHNIQUES FOR USING DUAL MEMORY STRUCTURES FOR PROCESSING FAILURE DETECTION PROTOCOL PACKETS.
Number | Name | Date | Kind |
---|---|---|---|
3866175 | Seifert, Jr. et al. | Feb 1975 | A |
4325119 | Grandmaison et al. | Apr 1982 | A |
4348725 | Farrell et al. | Sep 1982 | A |
4628480 | Floyd | Dec 1986 | A |
4667323 | Engdahl et al. | May 1987 | A |
4679190 | Dias et al. | Jul 1987 | A |
4683564 | Young et al. | Jul 1987 | A |
4698748 | Juzswik et al. | Oct 1987 | A |
4723243 | Joshi et al. | Feb 1988 | A |
4754482 | Weiss | Jun 1988 | A |
4791629 | Burns et al. | Dec 1988 | A |
4794629 | Pastyr et al. | Dec 1988 | A |
4807280 | Posner et al. | Feb 1989 | A |
4876681 | Hagiwara et al. | Oct 1989 | A |
4896277 | Vercellotti et al. | Jan 1990 | A |
4985889 | Frankish et al. | Jan 1991 | A |
5101404 | Kunimoto et al. | Mar 1992 | A |
5136584 | Hedlund | Aug 1992 | A |
5195181 | Bryant et al. | Mar 1993 | A |
5208856 | Leduc et al. | May 1993 | A |
5224108 | McDysan et al. | Jun 1993 | A |
5231633 | Hluchyj et al. | Jul 1993 | A |
5280582 | Yang et al. | Jan 1994 | A |
5282196 | Clebowicz | Jan 1994 | A |
5287477 | Johnson et al. | Feb 1994 | A |
5299190 | LaMaire et al. | Mar 1994 | A |
5299195 | Shah | Mar 1994 | A |
5301192 | Henrion | Apr 1994 | A |
5307345 | Lozowick et al. | Apr 1994 | A |
5323386 | Wiher et al. | Jun 1994 | A |
5365512 | Combs et al. | Nov 1994 | A |
5377189 | Clark | Dec 1994 | A |
5390173 | Spinney et al. | Feb 1995 | A |
5392279 | Taniguchi | Feb 1995 | A |
5406643 | Burke et al. | Apr 1995 | A |
5408469 | Opher et al. | Apr 1995 | A |
5430442 | Kaiser et al. | Jul 1995 | A |
5436893 | Barnett | Jul 1995 | A |
5461615 | Henrion | Oct 1995 | A |
5490258 | Fenner | Feb 1996 | A |
5506840 | Pauwels et al. | Apr 1996 | A |
5506841 | Sandquist | Apr 1996 | A |
5521923 | Willmann et al. | May 1996 | A |
5530302 | Hamre et al. | Jun 1996 | A |
5539733 | Anderson et al. | Jul 1996 | A |
5546385 | Caspi et al. | Aug 1996 | A |
5550816 | Hardwick et al. | Aug 1996 | A |
5563948 | Diehl et al. | Oct 1996 | A |
5566170 | Bakke et al. | Oct 1996 | A |
5598410 | Stone | Jan 1997 | A |
5600795 | Du | Feb 1997 | A |
5619497 | Gallagher et al. | Apr 1997 | A |
5640504 | Johnson, Jr. | Jun 1997 | A |
5646878 | Samra | Jul 1997 | A |
5649089 | Kilner | Jul 1997 | A |
5663952 | Gentry, Jr. | Sep 1997 | A |
5663959 | Nakagawa | Sep 1997 | A |
5666353 | Klausmeier et al. | Sep 1997 | A |
5721819 | Galles et al. | Feb 1998 | A |
5732080 | Ferguson et al. | Mar 1998 | A |
5734826 | Olnowich et al. | Mar 1998 | A |
5740176 | Gupta et al. | Apr 1998 | A |
5745708 | Weppler et al. | Apr 1998 | A |
5751710 | Crowther et al. | May 1998 | A |
5802287 | Rostoker et al. | Sep 1998 | A |
5802394 | Baird et al. | Sep 1998 | A |
5815146 | Youden et al. | Sep 1998 | A |
5818816 | Chikazawa et al. | Oct 1998 | A |
5835496 | Yeung et al. | Nov 1998 | A |
5838684 | Wicki et al. | Nov 1998 | A |
5862350 | Coulson | Jan 1999 | A |
5864555 | Mathur et al. | Jan 1999 | A |
5867675 | Lomelino et al. | Feb 1999 | A |
5870538 | Manning et al. | Feb 1999 | A |
5872769 | Caldara et al. | Feb 1999 | A |
5872783 | Chin | Feb 1999 | A |
5875200 | Glover et al. | Feb 1999 | A |
5896380 | Brown et al. | Apr 1999 | A |
5907566 | Benson et al. | May 1999 | A |
5907660 | Inoue et al. | May 1999 | A |
5909686 | Muller et al. | Jun 1999 | A |
5915094 | Kouloheris et al. | Jun 1999 | A |
5920566 | Hendel et al. | Jul 1999 | A |
5920886 | Feldmeier | Jul 1999 | A |
5936939 | Des Jardins et al. | Aug 1999 | A |
5936966 | Ogawa et al. | Aug 1999 | A |
5956347 | Slater | Sep 1999 | A |
5999528 | Chow et al. | Dec 1999 | A |
6000016 | Curtis et al. | Dec 1999 | A |
6011910 | Chau et al. | Jan 2000 | A |
6016310 | Muller et al. | Jan 2000 | A |
6023471 | Haddock et al. | Feb 2000 | A |
6031843 | Swanbery et al. | Feb 2000 | A |
6035414 | Okazawa et al. | Mar 2000 | A |
6038288 | Thomas et al. | Mar 2000 | A |
6067298 | Shinohara | May 2000 | A |
6067606 | Holscher et al. | May 2000 | A |
6076115 | Sambamurthy et al. | Jun 2000 | A |
6081522 | Hendel et al. | Jun 2000 | A |
6088356 | Hendel et al. | Jul 2000 | A |
6094434 | Kotzur et al. | Jul 2000 | A |
6101552 | Chiang et al. | Aug 2000 | A |
6104696 | Kadambi et al. | Aug 2000 | A |
6104700 | Haddock et al. | Aug 2000 | A |
6104969 | Beeks | Aug 2000 | A |
6108306 | Kalkunte et al. | Aug 2000 | A |
6118787 | Kalkunte et al. | Sep 2000 | A |
6125417 | Bailis et al. | Sep 2000 | A |
6128666 | Muller et al. | Oct 2000 | A |
6144668 | Bass et al. | Nov 2000 | A |
6147996 | Laor et al. | Nov 2000 | A |
6151301 | Holden | Nov 2000 | A |
6151497 | Yee et al. | Nov 2000 | A |
6154446 | Kadambi et al. | Nov 2000 | A |
6157643 | Ma | Dec 2000 | A |
6160809 | Adiletta et al. | Dec 2000 | A |
6160812 | Bauman et al. | Dec 2000 | A |
6172990 | Deb et al. | Jan 2001 | B1 |
6178520 | DeKoning et al. | Jan 2001 | B1 |
6181699 | Crinion et al. | Jan 2001 | B1 |
6185208 | Liao | Feb 2001 | B1 |
6185222 | Hughes | Feb 2001 | B1 |
6194666 | Hayashida et al. | Feb 2001 | B1 |
6195335 | Calvignac et al. | Feb 2001 | B1 |
6201492 | Amar et al. | Mar 2001 | B1 |
6212586 | Mros et al. | Apr 2001 | B1 |
6222845 | Shue et al. | Apr 2001 | B1 |
6229788 | Graves et al. | May 2001 | B1 |
6243388 | Mussman et al. | Jun 2001 | B1 |
6243667 | Kerr et al. | Jun 2001 | B1 |
6249528 | Kothary | Jun 2001 | B1 |
6263374 | Olnowich et al. | Jul 2001 | B1 |
6272144 | Berenbaum et al. | Aug 2001 | B1 |
6304903 | Ward | Oct 2001 | B1 |
6307839 | Gerszberg et al. | Oct 2001 | B1 |
6320859 | Momirov | Nov 2001 | B1 |
6333929 | Drottar et al. | Dec 2001 | B1 |
6335932 | Kadambi et al. | Jan 2002 | B2 |
6335935 | Kadambi et al. | Jan 2002 | B2 |
6343072 | Bechtolsheim et al. | Jan 2002 | B1 |
6351143 | Guccione et al. | Feb 2002 | B1 |
6356550 | Williams | Mar 2002 | B1 |
6356942 | Bengtsson et al. | Mar 2002 | B1 |
6359879 | Carvey et al. | Mar 2002 | B1 |
6363077 | Wong et al. | Mar 2002 | B1 |
6366557 | Hunter | Apr 2002 | B1 |
6369855 | Chauvel et al. | Apr 2002 | B1 |
6370579 | Partridge | Apr 2002 | B1 |
6421352 | Manaka et al. | Jul 2002 | B1 |
6424658 | Mathur | Jul 2002 | B1 |
6424659 | Viswanadham et al. | Jul 2002 | B2 |
6427185 | Ryals et al. | Jul 2002 | B1 |
6430190 | Essbaum et al. | Aug 2002 | B1 |
6442067 | Chawla et al. | Aug 2002 | B1 |
6457175 | Lerche | Sep 2002 | B1 |
6459705 | Cheng | Oct 2002 | B1 |
6460088 | Merchant | Oct 2002 | B1 |
6463063 | Bianchini, Jr. et al. | Oct 2002 | B1 |
6466608 | Hong et al. | Oct 2002 | B1 |
6470436 | Croft et al. | Oct 2002 | B1 |
6473428 | Nichols et al. | Oct 2002 | B1 |
6473433 | Bianchini, Jr. et al. | Oct 2002 | B1 |
6477174 | Dooley et al. | Nov 2002 | B1 |
6480477 | Treadaway et al. | Nov 2002 | B1 |
6490280 | Leung | Dec 2002 | B1 |
6493347 | Sindhu et al. | Dec 2002 | B2 |
6496502 | Fite, Jr. et al. | Dec 2002 | B1 |
6505281 | Sherry | Jan 2003 | B1 |
6510138 | Pannell | Jan 2003 | B1 |
6522656 | Gridley | Feb 2003 | B1 |
6532229 | Johnson et al. | Mar 2003 | B1 |
6532234 | Yoshikawa et al. | Mar 2003 | B1 |
6535504 | Johnson et al. | Mar 2003 | B1 |
6549519 | Michels et al. | Apr 2003 | B1 |
6553370 | Andreev et al. | Apr 2003 | B1 |
6556208 | Congdon et al. | Apr 2003 | B1 |
6567404 | Wilford | May 2003 | B1 |
6570884 | Connery et al. | May 2003 | B1 |
6577631 | Keenan et al. | Jun 2003 | B1 |
6587432 | Putzolu et al. | Jul 2003 | B1 |
6591302 | Boucher et al. | Jul 2003 | B2 |
6601186 | Fox et al. | Jul 2003 | B1 |
6606300 | Blanc et al. | Aug 2003 | B1 |
6628650 | Saite et al. | Sep 2003 | B1 |
6633580 | Torudbakken et al. | Oct 2003 | B1 |
6636483 | Pannell | Oct 2003 | B1 |
6643269 | Fan et al. | Nov 2003 | B1 |
6654342 | Dittia et al. | Nov 2003 | B1 |
6654346 | Mahalingaiah et al. | Nov 2003 | B1 |
6654370 | Quirke et al. | Nov 2003 | B1 |
6654373 | Maher, III et al. | Nov 2003 | B1 |
6658002 | Ross et al. | Dec 2003 | B1 |
6661791 | Brown | Dec 2003 | B1 |
6671275 | Wong et al. | Dec 2003 | B1 |
6675258 | Bramhall et al. | Jan 2004 | B1 |
6677952 | Baldwin | Jan 2004 | B1 |
6678248 | Haddock et al. | Jan 2004 | B1 |
6681332 | Byrne et al. | Jan 2004 | B1 |
6683872 | Saito | Jan 2004 | B1 |
6687217 | Chow et al. | Feb 2004 | B1 |
6687247 | Wilford et al. | Feb 2004 | B1 |
6690757 | Bunton et al. | Feb 2004 | B1 |
6691202 | Vasquez et al. | Feb 2004 | B2 |
6696917 | Heitner et al. | Feb 2004 | B1 |
6697359 | George | Feb 2004 | B1 |
6697368 | Chang et al. | Feb 2004 | B2 |
6700894 | Shung | Mar 2004 | B1 |
6708000 | Nishi et al. | Mar 2004 | B1 |
6721229 | Cole | Apr 2004 | B1 |
6721268 | Ohira et al. | Apr 2004 | B1 |
6721313 | Van Duyne | Apr 2004 | B1 |
6721338 | Sato | Apr 2004 | B1 |
6731875 | Kartalopoulos | May 2004 | B1 |
6735218 | Chang et al. | May 2004 | B2 |
6745277 | Lee et al. | Jun 2004 | B1 |
6747971 | Hughes et al. | Jun 2004 | B1 |
6751224 | Parruck et al. | Jun 2004 | B1 |
6754881 | Kuhlmann et al. | Jun 2004 | B2 |
6760305 | Pasternak et al. | Jul 2004 | B1 |
6765866 | Wyatt | Jul 2004 | B1 |
6775706 | Fukumoto et al. | Aug 2004 | B1 |
6778546 | Epps et al. | Aug 2004 | B1 |
6781990 | Puri et al. | Aug 2004 | B1 |
6785290 | Fujisawa et al. | Aug 2004 | B1 |
6788697 | Aweya et al. | Sep 2004 | B1 |
6792484 | Hook | Sep 2004 | B1 |
6792502 | Pandya et al. | Sep 2004 | B1 |
6798740 | Senevirathne et al. | Sep 2004 | B1 |
6804220 | Odenwalder et al. | Oct 2004 | B2 |
6804731 | Chang et al. | Oct 2004 | B1 |
6804815 | Kerr et al. | Oct 2004 | B1 |
6807179 | Kanuri et al. | Oct 2004 | B1 |
6807363 | Abiko et al. | Oct 2004 | B1 |
6810038 | Isoyama et al. | Oct 2004 | B1 |
6810046 | Abbas et al. | Oct 2004 | B2 |
6813243 | Epps et al. | Nov 2004 | B1 |
6813266 | Chiang et al. | Nov 2004 | B1 |
6816467 | Muller et al. | Nov 2004 | B1 |
6831923 | Laor et al. | Dec 2004 | B1 |
6831932 | Boyle et al. | Dec 2004 | B1 |
6836808 | Bunce et al. | Dec 2004 | B2 |
6839346 | Kametani | Jan 2005 | B1 |
6842422 | Bianchini | Jan 2005 | B1 |
6842903 | Weschler | Jan 2005 | B1 |
6854117 | Roberts | Feb 2005 | B1 |
6856600 | Russell et al. | Feb 2005 | B1 |
6859438 | Haddock et al. | Feb 2005 | B2 |
6865153 | Hill et al. | Mar 2005 | B1 |
6873630 | Muller et al. | Mar 2005 | B1 |
6895528 | Cantwell et al. | May 2005 | B2 |
6901072 | Wong | May 2005 | B1 |
6906936 | James et al. | Jun 2005 | B1 |
6912637 | Herbst | Jun 2005 | B1 |
6920154 | Achler | Jul 2005 | B1 |
6925516 | Struhsaker et al. | Aug 2005 | B2 |
6934305 | Duschatko et al. | Aug 2005 | B1 |
6937606 | Basso et al. | Aug 2005 | B2 |
6946948 | McCormack et al. | Sep 2005 | B2 |
6952419 | Cassiday et al. | Oct 2005 | B1 |
6957258 | Maher, III et al. | Oct 2005 | B2 |
6959007 | Vogel et al. | Oct 2005 | B1 |
6961347 | Bunton et al. | Nov 2005 | B1 |
6965615 | Kerr et al. | Nov 2005 | B1 |
6973092 | Zhou et al. | Dec 2005 | B1 |
6975599 | Johnson et al. | Dec 2005 | B1 |
6978309 | Dorbolo | Dec 2005 | B1 |
6980552 | Belz et al. | Dec 2005 | B1 |
6982974 | Saleh et al. | Jan 2006 | B1 |
6990102 | Kaniz et al. | Jan 2006 | B1 |
6993032 | Dammann et al. | Jan 2006 | B1 |
6996663 | Marsteiner | Feb 2006 | B1 |
7005812 | Mitchell | Feb 2006 | B2 |
7009968 | Ambe et al. | Mar 2006 | B2 |
7009976 | Michelson et al. | Mar 2006 | B1 |
7010607 | Bunton | Mar 2006 | B1 |
7012919 | So et al. | Mar 2006 | B1 |
7050430 | Kalkunte et al. | May 2006 | B2 |
7050505 | Kaku | May 2006 | B2 |
7065673 | Subramaniam et al. | Jun 2006 | B2 |
7080238 | Van Hoof et al. | Jul 2006 | B2 |
7082133 | Lor et al. | Jul 2006 | B1 |
7095753 | Milliken et al. | Aug 2006 | B1 |
7103041 | Speiser et al. | Sep 2006 | B1 |
7106692 | Schulz | Sep 2006 | B1 |
7120744 | Klein | Oct 2006 | B2 |
7126948 | Gooch et al. | Oct 2006 | B2 |
7126956 | Scholten | Oct 2006 | B2 |
7151797 | Limberg | Dec 2006 | B2 |
7161948 | Sampath et al. | Jan 2007 | B2 |
7167471 | Calvignac et al. | Jan 2007 | B2 |
7176911 | Kidono et al. | Feb 2007 | B1 |
7185141 | James et al. | Feb 2007 | B1 |
7185266 | Blightman et al. | Feb 2007 | B2 |
7187687 | Davis et al. | Mar 2007 | B1 |
7188237 | Zhou et al. | Mar 2007 | B2 |
7190696 | Manur et al. | Mar 2007 | B1 |
7191277 | Broyles | Mar 2007 | B2 |
7191468 | Hanner | Mar 2007 | B2 |
7194652 | Zhou et al. | Mar 2007 | B2 |
7203194 | Chang et al. | Apr 2007 | B2 |
7206283 | Chang et al. | Apr 2007 | B2 |
7212536 | Mackiewich | May 2007 | B2 |
7218637 | Best et al. | May 2007 | B1 |
7219293 | Tsai et al. | May 2007 | B2 |
7228509 | Dada et al. | Jun 2007 | B1 |
7236490 | Chang et al. | Jun 2007 | B2 |
7237058 | Srinivasan | Jun 2007 | B2 |
7249306 | Chen | Jul 2007 | B2 |
7266117 | Davis | Sep 2007 | B1 |
7272611 | Cuppett et al. | Sep 2007 | B1 |
7272613 | Sim et al. | Sep 2007 | B2 |
7277425 | Sikdar | Oct 2007 | B1 |
7283547 | Hook et al. | Oct 2007 | B1 |
7284236 | Zhou et al. | Oct 2007 | B2 |
7286534 | Kloth | Oct 2007 | B2 |
7298752 | Moriwaki et al. | Nov 2007 | B2 |
7324509 | Ni | Jan 2008 | B2 |
7324553 | Varier et al. | Jan 2008 | B1 |
7355970 | Lor | Apr 2008 | B2 |
7356030 | Chang et al. | Apr 2008 | B2 |
7366100 | Anderson et al. | Apr 2008 | B2 |
7391769 | Rajkumar et al. | Jun 2008 | B2 |
7414979 | Jarvis | Aug 2008 | B1 |
7428693 | Obuchi et al. | Sep 2008 | B2 |
7468975 | Davis | Dec 2008 | B1 |
7512127 | Chang et al. | Mar 2009 | B2 |
7543077 | Milliken et al. | Jun 2009 | B1 |
7558193 | Bradbury et al. | Jul 2009 | B2 |
7561590 | Walsh | Jul 2009 | B1 |
7590760 | Banks et al. | Sep 2009 | B1 |
7596139 | Patel et al. | Sep 2009 | B2 |
7606968 | Branscome et al. | Oct 2009 | B2 |
7609617 | Appanna et al. | Oct 2009 | B2 |
7613991 | Bain | Nov 2009 | B1 |
7624283 | Bade et al. | Nov 2009 | B2 |
7636369 | Wong | Dec 2009 | B2 |
7649885 | Davis | Jan 2010 | B1 |
7657703 | Singh | Feb 2010 | B1 |
7721297 | Ward | May 2010 | B2 |
7738450 | Davis | Jun 2010 | B1 |
7782805 | Belhadj et al. | Aug 2010 | B1 |
7813367 | Wong et al. | Oct 2010 | B2 |
7817659 | Wong | Oct 2010 | B2 |
7821972 | Finn et al. | Oct 2010 | B1 |
7830884 | Davis | Nov 2010 | B2 |
7903654 | Bansal | Mar 2011 | B2 |
7933947 | Fleischer et al. | Apr 2011 | B2 |
7948872 | Patel et al. | May 2011 | B2 |
7953922 | Singh | May 2011 | B2 |
7953923 | Singh | May 2011 | B2 |
7978614 | Wong et al. | Jul 2011 | B2 |
7978702 | Chang et al. | Jul 2011 | B2 |
7995580 | Patel et al. | Aug 2011 | B2 |
8014278 | Subramanian et al. | Sep 2011 | B1 |
8037399 | Wong et al. | Oct 2011 | B2 |
8090901 | Lin et al. | Jan 2012 | B2 |
8140044 | Villain et al. | Mar 2012 | B2 |
8149839 | Hsu et al. | Apr 2012 | B1 |
8155011 | Wong et al. | Apr 2012 | B2 |
8170044 | Davis et al. | May 2012 | B2 |
8201180 | Briscoe et al. | Jun 2012 | B2 |
8238255 | Suresh et al. | Aug 2012 | B2 |
8271859 | Wong et al. | Sep 2012 | B2 |
8395996 | Wong et al. | Mar 2013 | B2 |
8448162 | Ramanathan et al. | May 2013 | B2 |
8493988 | Wong et al. | Jul 2013 | B2 |
8509236 | Zhang et al. | Aug 2013 | B2 |
8514716 | Patel et al. | Aug 2013 | B2 |
8599850 | Jha et al. | Dec 2013 | B2 |
8619781 | Patel et al. | Dec 2013 | B2 |
8671219 | Davis | Mar 2014 | B2 |
8718051 | Wong | May 2014 | B2 |
8730961 | Wong | May 2014 | B1 |
8811390 | Wong | Aug 2014 | B2 |
8964754 | Patel et al. | Feb 2015 | B2 |
8989202 | Davis et al. | Mar 2015 | B2 |
20010001879 | Kubik et al. | May 2001 | A1 |
20010007560 | Masuda et al. | Jul 2001 | A1 |
20010026551 | Horlin | Oct 2001 | A1 |
20010048785 | Steinberg | Dec 2001 | A1 |
20010053150 | Clear et al. | Dec 2001 | A1 |
20020001307 | Nguyen et al. | Jan 2002 | A1 |
20020012585 | Kalkunte et al. | Jan 2002 | A1 |
20020040417 | Winograd et al. | Apr 2002 | A1 |
20020048280 | Lee et al. | Apr 2002 | A1 |
20020054594 | Hoof et al. | May 2002 | A1 |
20020054595 | Ambe et al. | May 2002 | A1 |
20020069294 | Herkersdorf et al. | Jun 2002 | A1 |
20020073073 | Cheng | Jun 2002 | A1 |
20020083111 | Row et al. | Jun 2002 | A1 |
20020085499 | Toyoyama et al. | Jul 2002 | A1 |
20020087788 | Morris | Jul 2002 | A1 |
20020089937 | Venkatachary et al. | Jul 2002 | A1 |
20020089977 | Chang et al. | Jul 2002 | A1 |
20020091844 | Craft et al. | Jul 2002 | A1 |
20020091884 | Chang et al. | Jul 2002 | A1 |
20020097713 | Chang et al. | Jul 2002 | A1 |
20020105966 | Patel et al. | Aug 2002 | A1 |
20020126672 | Chow et al. | Sep 2002 | A1 |
20020131437 | Tagore-Brage | Sep 2002 | A1 |
20020141403 | Akahane et al. | Oct 2002 | A1 |
20020146013 | Karlsson et al. | Oct 2002 | A1 |
20020161929 | Longerbeam et al. | Oct 2002 | A1 |
20020161967 | Kirihata et al. | Oct 2002 | A1 |
20020169786 | Richek | Nov 2002 | A1 |
20020181476 | Badamo et al. | Dec 2002 | A1 |
20020191605 | Lunteren et al. | Dec 2002 | A1 |
20030009466 | Ta et al. | Jan 2003 | A1 |
20030012198 | Kaganoi et al. | Jan 2003 | A1 |
20030033435 | Hanner | Feb 2003 | A1 |
20030043800 | Sonksen et al. | Mar 2003 | A1 |
20030043848 | Sonksen | Mar 2003 | A1 |
20030048785 | Calvignac et al. | Mar 2003 | A1 |
20030061459 | Aboulenein et al. | Mar 2003 | A1 |
20030074657 | Bramley, Jr. | Apr 2003 | A1 |
20030081608 | Barri et al. | May 2003 | A1 |
20030095548 | Yamano | May 2003 | A1 |
20030103499 | Davis et al. | Jun 2003 | A1 |
20030103500 | Menon et al. | Jun 2003 | A1 |
20030108052 | Inoue et al. | Jun 2003 | A1 |
20030110180 | Calvignac et al. | Jun 2003 | A1 |
20030115403 | Bouchard et al. | Jun 2003 | A1 |
20030120861 | Calle et al. | Jun 2003 | A1 |
20030128668 | Yavatkar et al. | Jul 2003 | A1 |
20030137978 | Kanetake | Jul 2003 | A1 |
20030152084 | Lee et al. | Aug 2003 | A1 |
20030152096 | Chapman | Aug 2003 | A1 |
20030156586 | Lee et al. | Aug 2003 | A1 |
20030159086 | Arndt | Aug 2003 | A1 |
20030165160 | Minami et al. | Sep 2003 | A1 |
20030169470 | Alagar et al. | Sep 2003 | A1 |
20030174719 | Sampath et al. | Sep 2003 | A1 |
20030177209 | Kwok et al. | Sep 2003 | A1 |
20030177221 | Ould-Brahim et al. | Sep 2003 | A1 |
20030198182 | Pegrum et al. | Oct 2003 | A1 |
20030200343 | Greenblat et al. | Oct 2003 | A1 |
20030214956 | Navada et al. | Nov 2003 | A1 |
20030215029 | Limberg | Nov 2003 | A1 |
20030223424 | Anderson et al. | Dec 2003 | A1 |
20030223466 | Noronha, Jr. et al. | Dec 2003 | A1 |
20030227943 | Hallman et al. | Dec 2003 | A1 |
20040022263 | Zhao et al. | Feb 2004 | A1 |
20040028060 | Kang | Feb 2004 | A1 |
20040037302 | Varma et al. | Feb 2004 | A1 |
20040054867 | Stravers et al. | Mar 2004 | A1 |
20040062130 | Chiang | Apr 2004 | A1 |
20040062245 | Sharp et al. | Apr 2004 | A1 |
20040062246 | Boucher et al. | Apr 2004 | A1 |
20040083404 | Subramaniam et al. | Apr 2004 | A1 |
20040083475 | Todd et al. | Apr 2004 | A1 |
20040088469 | Levy | May 2004 | A1 |
20040120322 | Wu | Jun 2004 | A1 |
20040128434 | Khanna et al. | Jul 2004 | A1 |
20040141504 | Blanc | Jul 2004 | A1 |
20040179548 | Chang et al. | Sep 2004 | A1 |
20040190547 | Gordy et al. | Sep 2004 | A1 |
20040196859 | Benner | Oct 2004 | A1 |
20040205393 | Kitamorn et al. | Oct 2004 | A1 |
20040208177 | Ogawa | Oct 2004 | A1 |
20040208181 | Clayton et al. | Oct 2004 | A1 |
20040223502 | Wybenga et al. | Nov 2004 | A1 |
20040235480 | Rezaaifar et al. | Nov 2004 | A1 |
20040264380 | Kalkunte et al. | Dec 2004 | A1 |
20050010630 | Doering et al. | Jan 2005 | A1 |
20050010849 | Ryle et al. | Jan 2005 | A1 |
20050041684 | Reynolds et al. | Feb 2005 | A1 |
20050089049 | Chang et al. | Apr 2005 | A1 |
20050097432 | Obuchi et al. | May 2005 | A1 |
20050120122 | Farnham | Jun 2005 | A1 |
20050132132 | Rosenbluth et al. | Jun 2005 | A1 |
20050132179 | Glaum et al. | Jun 2005 | A1 |
20050138276 | Navada et al. | Jun 2005 | A1 |
20050144369 | Jaspers | Jun 2005 | A1 |
20050152324 | Benveniste | Jul 2005 | A1 |
20050152335 | Lodha et al. | Jul 2005 | A1 |
20050169317 | Pruecklmayer | Aug 2005 | A1 |
20050175018 | Wong | Aug 2005 | A1 |
20050185577 | Sakamoto et al. | Aug 2005 | A1 |
20050185652 | Iwamoto | Aug 2005 | A1 |
20050193316 | Chen | Sep 2005 | A1 |
20050201387 | Willis | Sep 2005 | A1 |
20050226236 | Klink | Oct 2005 | A1 |
20050246508 | Shaw | Nov 2005 | A1 |
20050249124 | Elie-Dit-Cosaque et al. | Nov 2005 | A1 |
20060031610 | Liav et al. | Feb 2006 | A1 |
20060034452 | Tonomura | Feb 2006 | A1 |
20060050690 | Epps et al. | Mar 2006 | A1 |
20060077891 | Smith et al. | Apr 2006 | A1 |
20060092829 | Brolin et al. | May 2006 | A1 |
20060092929 | Chun | May 2006 | A1 |
20060114876 | Kalkunte | Jun 2006 | A1 |
20060146374 | Ng et al. | Jul 2006 | A1 |
20060165089 | Klink | Jul 2006 | A1 |
20060209685 | Rahman et al. | Sep 2006 | A1 |
20060221841 | Lee et al. | Oct 2006 | A1 |
20060268680 | Roberts et al. | Nov 2006 | A1 |
20060274749 | Beier | Dec 2006 | A1 |
20070038798 | Bouchard et al. | Feb 2007 | A1 |
20070088974 | Chandwani et al. | Apr 2007 | A1 |
20070127464 | Jain et al. | Jun 2007 | A1 |
20070179909 | Channasagara | Aug 2007 | A1 |
20070208876 | Davis | Sep 2007 | A1 |
20070253420 | Chang et al. | Nov 2007 | A1 |
20070258475 | Chinn et al. | Nov 2007 | A1 |
20070288690 | Wang et al. | Dec 2007 | A1 |
20080002707 | Davis | Jan 2008 | A1 |
20080025309 | Swallow | Jan 2008 | A1 |
20080031263 | Ervin et al. | Feb 2008 | A1 |
20080037544 | Yano et al. | Feb 2008 | A1 |
20080049742 | Bansal et al. | Feb 2008 | A1 |
20080069125 | Reed et al. | Mar 2008 | A1 |
20080092020 | Hasenplaugh et al. | Apr 2008 | A1 |
20080095169 | Chandra et al. | Apr 2008 | A1 |
20080117075 | Seddigh et al. | May 2008 | A1 |
20080126652 | Vembu et al. | May 2008 | A1 |
20080159309 | Sultan et al. | Jul 2008 | A1 |
20080181103 | Davies | Jul 2008 | A1 |
20080205407 | Chang et al. | Aug 2008 | A1 |
20080307288 | Ziesler et al. | Dec 2008 | A1 |
20090175178 | Yoon et al. | Jul 2009 | A1 |
20090207838 | Milliken et al. | Aug 2009 | A1 |
20090279423 | Suresh et al. | Nov 2009 | A1 |
20090279440 | Wong et al. | Nov 2009 | A1 |
20090279441 | Wong et al. | Nov 2009 | A1 |
20090279541 | Wong et al. | Nov 2009 | A1 |
20090279542 | Wong et al. | Nov 2009 | A1 |
20090279546 | Davis | Nov 2009 | A1 |
20090279548 | Davis et al. | Nov 2009 | A1 |
20090279549 | Ramanathan et al. | Nov 2009 | A1 |
20090279558 | Davis et al. | Nov 2009 | A1 |
20090279559 | Wong et al. | Nov 2009 | A1 |
20090279561 | Chang et al. | Nov 2009 | A1 |
20090282148 | Wong et al. | Nov 2009 | A1 |
20090282322 | Wong et al. | Nov 2009 | A1 |
20090287952 | Patel et al. | Nov 2009 | A1 |
20090290499 | Patel et al. | Nov 2009 | A1 |
20100034215 | Patel et al. | Feb 2010 | A1 |
20100046521 | Wong | Feb 2010 | A1 |
20100061393 | Wong | Mar 2010 | A1 |
20100100671 | Singh | Apr 2010 | A1 |
20100135313 | Davis | Jun 2010 | A1 |
20100161894 | Singh | Jun 2010 | A1 |
20100246588 | Davis | Sep 2010 | A1 |
20100293327 | Lin et al. | Nov 2010 | A1 |
20110002340 | Davis | Jan 2011 | A1 |
20110044340 | Bansal et al. | Feb 2011 | A1 |
20110069711 | Jha et al. | Mar 2011 | A1 |
20110173386 | Milliken et al. | Jul 2011 | A1 |
20120023309 | Abraham et al. | Jan 2012 | A1 |
20120026868 | Chang et al. | Feb 2012 | A1 |
20120236722 | Patel et al. | Sep 2012 | A1 |
20120294312 | Davis et al. | Nov 2012 | A1 |
20130034098 | Davis | Feb 2013 | A1 |
20130305236 | Ramanathan et al. | Nov 2013 | A1 |
20140133488 | Patel et al. | May 2014 | A1 |
20140153389 | Wong et al. | Jun 2014 | A1 |
20140233423 | Jha et al. | Aug 2014 | A1 |
20150078211 | Wong | Mar 2015 | A1 |
Number | Date | Country |
---|---|---|
1380127 | Jan 2004 | EP |
2003289359 | Oct 2003 | JP |
2004-537871 | Dec 2004 | JP |
WO 0184728 | Nov 2001 | WO |
WO 0241544 | May 2002 | WO |
Entry |
---|
Final Office Action for U.S. Appl. No. 13/398,725 mailed on Mar. 13, 2014, 10 pages. |
Notice of Allowance for U.S. Appl. No. 10/832,086 mailed on Mar. 14, 2014 5 pages. |
Notice of Allowance for U.S. Appl. No. 12/608,972 mailed on Apr. 9, 2014, 7 pages. |
Non-Final Office Action for U.S. Appl. No. 13/548,116 mailed on Jun. 6, 2014, 20 pages. |
Non-Final Office Action for U.S. Appl. No. 13/862,160 mailed on Jun. 17, 2014, 11 pages. |
Final Office Action for U.S. Appl. No. 12/624,300 mailed on Jun. 27, 2014, 15 pages. |
Notice of Allowance for U.S. Appl. No. 13/398,725 mailed on Jun. 24, 2014, 7 pages. |
International Search Report for Application No. PCT/US03/08719, mailed Jun. 17, 2003, 1 page. |
Belhadj et al., “Feasibility of a 100GE MAC”, PowerPoint Presentation, IEEE Meeting Nov. 2006, Nov. 13-15, 2006, 18 pages. |
Braun et al., “Fast incremental CRC updates for IP over ATM networks,” IEEE Workshop on High Performance Switching and Routing, 2001, 6 pages. |
10 Gigabit Ethernet—Technology Overview White Paper, Sep. 2001, 16 pages. |
10 Gigabit Ethernet Alliance, Interconnection with Wide Area Networks, Version 1.0, Mar. 2002, 6 pages. |
Degermark, M., et al., “Small Forwarding Tables for Fast Routing Lookups,” ACM Computer Communications Review 27(4): Oct. 1997, 12 pages. |
Foundry Networks, “BigIron Architecture Technical Brief,” Oct. 1998—Version 1.0, 15 pages. |
Foundry Networks, “BigIron Architecture Technical Brief,” Oct. 1998—Version 1.02, 15 pages. |
Foundry Networks, “BigIron Architecture Technical Brief,” Dec. 1998—Version 1.03, 14 pages. |
Foundry Networks, “BigIron Architecture Technical Brief,” May 1999—Version 2.0, 15 pages. |
Foundry Networks, “BigIron Architecture Technical Brief,” May 1999—Version 2.01, 15 pages. |
Foundry Networks, “BigIron Architecture Technical Brief,” Jul. 2001—Version 2.02, 16 pages. |
Foundry Networks, “Foundry Networks, Next Generation Terabit System Architecture—The High Performance Revolution for 10 Gigabit Networks,” Nov. 17, 2003, 27 pages. |
Gigabit Ethernet Alliance—“Accelerating the Standard for Speed,” Copyright 1998, 19 pages. |
Kichorowsky, R., et al., “Mindspeed.TM. Switch Fabric Offers the Most Comprehensive Solution for Multi-Protocol Networking Equipment,” Apr. 30, 2001, 3 pages. |
Matsumoto, C., et al., “Switch Fabrics Touted At Interconnects Conference,” Aug. 21, 2000, URL= http://www.eetimes.com/story/OEG2000821S0011, accessed Aug. 12, 2002, 2 pages. |
McAuley, A., et al., “Fast Routing Table Lookup Using CAMs,” Proceedings of INFOCOM, Mar.-Apr. 1993, 10 pages. |
Foundry Networks, “JetCore™ Based Chassis Systems—An Architecture Brief on NetIron, BigIron, and FastIron Systems,” Jan. 17, 2003, 27 pages. |
Mier Communications, Inc., “Lab Testing Summary Report—Product Category: Layer-3 Switches, Vendor Tested:, Product Tested: Foundry Networks, BigIron 4000,” Report No. 231198, Oct. 1998, 6 pages. |
Mier Communications, Inc.,“Lab Testing Summary Report—Product Category: Gigabit Backbone Switches, Vendor Tested: Foundry Networks, Product Tested: BigIron 4000,” Report No. 210998, Sep. 1998, 6 pages. |
Mindspeed—A Conexant Business, “Switch Fabric Chipset—CX27300 iScale.TM.,” Apr. 30, 2001, 2 pages. |
Mindspeed—A Conexant Business, “17x17 3.2 Gbps Crosspoint Switch with Input Equalization—M21110,” Feb. 1, 2001, 2 pages. |
The Tolly Group, “Foundry Networks, Inc.—BigIron 4000, Layer 2 & Layer 3 Interoperability Evaluation,” No. 199133, Oct. 1999, 4 pages. |
The Tolly Group, “Foundry Networks, Inc.—BigIron 8000 Gigabit Ethernet Switching Router, Layer 2 & Layer 3 Performance Evaluation,” No. 199111, May 1999, 4 pages. |
Satran et al., “Out of Order Incremental CRC Computation,” IEEE Transactions on Computers, Feb. 25, 2003, 11 pages, vol. 54, Issue 9. |
Spurgeon, C., “Éthernet, The Definitive Guide,” O'Reilly & Associates, Inc., Sebastopol, CA, Feb. 2000. |
ANSI/IEEE Standard 802.1D, 1998 Edition (373 pages). |
Newton, Newton's Telecom Dictionary, CMP Books, Mar. 2004, 20th Ed., 3 pages. |
International Preliminary Examination Report for Application No. PCT/US2001/043113, mailed Nov. 6, 2003, 6 pages. |
Written Opinion of the International Searching Authority for Application No. PCT/US2001/043113, mailed May 1, 2003, 6 pages. |
International Search Report for Application No. PCT/US2001/043113, mailed Dec. 13, 2002, 2 pages. |
“Skip Lists: A Probabilistic Alternative to Balanced Trees,” 8 pages, at URL: http://epaperpress.com/sortsearch/download/skiplist.pdf. |
Shah et al., “Fast Incremental Updates on Ternary-CAMs for Routing Lookups and Packet Classification,” 9 pages, at URL: http://www.hoti.org/archive/hoti8papers/018.pdf. |
“Ethernet now offers the most comprehensive OAM for packet-based solutions,” Nortel, White Paper, Copyright 2006, 6 pages. |
Katz, et al., “Generic Application of BFD draft-ietf-bfd-generic-03.txt,” Network Working Group, Internet Draft, Mar. 2007, 15 pages—(Printed from URL: http://www.ietf.org/internet-drafts/draft-ietf-bfd-generic-03.txt, Aug. 7, 2007). |
Katz, et al., “Bidirectional Forwarding Detection draft-ietf-bfd-base-06.txt,” Network Working Group, Internet Draft, Mar. 2007, 45 pages—(Printed from URL: http://www.ietf.org/internet-drafts/draft-ietf-bfd-base-06.txt, Aug. 7, 2007). |
“OAM —Operations, Administration and Maintenance,” World Wide Packets, White Paper, Copyright 2006, 12 pages. |
Gupta et al., “Packet Classification on Multiple Fields,” SIGCOMM '99, Aug. 1999, 14 pages, ACM, Cambridge, MA. |
Final Office Action for U.S. Appl. No. 11/745,008, mailed on Jun. 28, 2012, 13 pages. |
Final Office Action for U.S. Appl. No. 11/646,845, mailed on Jul. 5, 2012, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 12/900,279 mailed Aug. 30, 2012, 9 pages. |
Non-Final Office Action for U.S. Appl. No. 12/198,710 mailed Sep. 13, 2012, 18 pages. |
Non-Final Office Action for U.S. Appl. No. 13/083,481 mailed Oct. 4, 2012, 9 pages. |
Non-Final Office Action for U.S. Appl. No. 12/880,518 mailed Oct. 30, 2012, 7 pages. |
Non-Final Office Action for U.S. Appl. No. 13/152,715 mailed on Nov. 13, 2012, 6 pages. |
Notice of Allowance for U.S. Appl. No. 11/953,742 mailed on Nov. 13, 2012, 7 pages. |
Non-Final Office Action for U.S. Appl. No. 13/398,725 mailed on Nov. 28, 2012, 10 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,024. mailed Jun. 4, 2002, 9 pages. |
Final Office Action for U.S. Appl. No. 09/855,024, mailed Jan. 15, 2003, 14 pages. |
Advisory Action for U.S. Appl. No. 09/855,024, mailed May 2, 2003, 7 pages. |
Notice of Allowance for U.S. Appl. No. 09/855,024, mailed Nov. 3, 2003, 5 pages. |
Notice of Allowance for U.S. Appl. No. 09/855,024, mailed Dec. 15, 2003. 3 pages. |
Non-Final Office Action for U.S. Appl. No. 10/810,301, mailed Mar. 17, 2005, 11 pages. |
Non-Final Office Action for U.S. Appl. No. 10/810,301, mailed Feb. 16, 2006, 12 pages. |
Non-Final Office Action for U.S. Appl. No. 10/210,041, mailed Sep. 10, 2003, 12 pages. |
Final Office Action for U.S. Appl. No. 10/210,041, mailed Jan. 7, 2004, 14 pages. |
Non-Final Office Action for U.S. Appl. No. 10/210,041, mailed Mar. 11, 2004, 12 pages. |
Final Office Action for U.S. Appl. No. 10/210,041, mailed Jul. 7, 2004, 13 pages. |
Non-Final Office Action for U.S. Appl. No. 10/210,041, mailed Feb. 9, 2005, 7 pages. |
Final Office Action for U.S. Appl. No. 10/210,041, mailed Aug. 24, 2005, 7 pages. |
Advisory Action for U.S. Appl. No. 10/210,041, mailed Dec. 13, 2005, 4 pages. |
Notice of Allowance for U.S. Appl. No. 10/810,301, mailed Feb. 6, 2007, 9 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,025, mailed Nov. 23, 2004, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,031, mailed May 22, 2002, 10 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,031, mailed Dec. 10, 2002, 10 pages. |
Final Office Action for U.S. Appl. No. 09/855,031, mailed Jul. 30, 2003, 13 pages. |
Notice of Allowance for U.S. Appl. No. 09/855,031, mailed Nov. 4, 2003, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 10/736,680, mailed Feb. 16, 2006, 18 pages. |
Final Office Action for U.S. Appl. No. 10/736,680, mailed Aug. 3, 2006, 10 pages. |
Notice of Allowance for U.S. Appl. No. 10/736,680, mailed Feb. 22, 2007, 12 pages. |
Non-Final Office Action for U.S. Appl. No. 10/210,108, mailed Jun. 12, 2003, 5 pages. |
Notice of Allowance for U.S. Appl. No. 10/210,108, mailed Oct. 7, 2003, 5 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 10/438,545, mailed Oct. 31, 2003, 3 pages. |
Non-Final Office Action for U.S. Appl. No. 10/438,545, mailed Dec. 19, 2003, 5 pages. |
Notice of Allowance for U.S. Appl. No. 10/438,545, mailed Jun. 15, 2004, 6 pages. |
Non-Final Office Action for U.S. Appl. No. 10/832,086, mailed Sep. 19, 2007, 11 pages. |
Final Office Action for U.S. Appl. No. 10/832,086, mailed May 1, 2008, 31 pages. |
Advisory Action for U.S. Appl. No. 10/832,086, mailed Jul. 21, 2008, 4 pages. |
Non-Final Office Action for U.S. Appl. No. 10/832,086, mailed Sep. 18, 2008, 18 pages. |
Non Final Office Action for U.S. Appl. No. 10/832,086, mailed Apr. 1, 2009 , 17 pages. |
Final Office Action for U.S. Appl. No. 10/832,086, mailed Sep. 29, 2009, 26 pages. |
Non-Final Office Action for U.S. Appl. No. 11/586,991, mailed Oct. 2, 2008, 23 pages. |
Non-Final Office Action for U.S. Appl. No. 11/646,845, mailed on Oct. 4, 2010, 47 pages. |
Final Office Action for U.S. Appl. No. 11/646,845, mailed on Jun. 9, 2011, 22 pages. |
Non-Final Office Action for U.S. Appl. No. 11/646,845, mailed on Oct. 14, 2011, 19 pages. |
Final Office Action for U.S. Appl. No. 12/900,279 mailed on Dec. 5, 2012, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 11/831,950, mailed Aug. 18, 2009, 49 pages. |
Final Office Action for U.S. Appl. No. 11/831,950, mailed on Jan. 6, 2010, 23 pages. |
Advisory Action for U.S. Appl. No. 11/831,950, mailed on Mar. 4, 2010, 4 pages. |
Non-Final Office Action for U.S. Appl. No. 11/831,950, mailed Aug. 26, 2011, 45 pages. |
Final Office Action for U.S. Appl. No. 11/831,950, mailed on Feb. 28, 2012, 20 pages. |
Notice of Allowance for U.S. Appl. No. 11/831,950, mailed May 16, 2012, 9 pages. |
Non-Final Office Action for U.S. Appl. No. 11/953,742, mailed on Nov. 19, 2009, 51 pages. |
Final Office Action for U.S. Appl. No. 11/953,742, mailed on Jun. 14, 2010, 21 pages. |
Non-Final Office Action for U.S. Appl. No. 11/953,742, mailed on Mar. 30, 2011, 23 pages. |
Final Office Action for U.S. Appl. No. 11/953,742, mailed on Oct. 26, 2011, 19 pages. |
Non-Final Office Action for U.S. Appl. No. 11/953,743, mailed on Nov. 23, 2009, 47 pages. |
Final Office Action for U.S. Appl. No. 11/953,743, mailed on Jul. 15, 2010, 21 pages. |
Notice of Allowance for U.S. Appl. No. 11/953,743, mailed on Apr. 28, 2011, 19 pages. |
Non-Final Office Action for U.S. Appl. No. 11/953,745, mailed on Nov. 24, 2009, 48 pages. |
Non-Final Office Action for U.S. Appl. No. 11/953,745, mailed on Jun. 14, 2010, 19 pages. |
Non-Final Office Action for U.S. Appl. No. 11/953,751, mailed on Nov. 16, 2009, 55 pages. |
Final Office Action for U.S. Appl. No. 11/953,751, mailed on Jun. 25, 2010, 24 pages. |
Non-Final Office Action for U.S. Appl. No. 11/953,751, mailed on Mar. 29, 2011, 31 pages. |
Notice of Allowance for U.S. Appl. No. 11/953,751, mailed Dec. 7, 2011, 12 pages. |
Supplemental Notice of Allowance for U.S. Appl. No. 11/953,751, mailed Dec. 27, 2011, 6 pages. |
Non-Final Office Action for U.S. Appl. No. 11/779,778, mailed on Feb. 2, 2011, 63 pages. |
Notice of Allowance for U.S. Appl. No. 11/779,778, mailed on Jul. 28, 2011, 11 pages. |
Non-Final Office Action for U.S. Appl. No. 11/779,714, mailed Sep. 1, 2009, 58 pages. |
Non-Final Office Action for U.S. Appl. No. 11/779,714, mailed on Mar. 31, 2010, 29 pages. |
Final Office Action for U.S. Appl. No. 11/779,714, mailed on Nov. 9, 2010, 24 pages. |
Non-Final Office Action for U.S. Appl. No. 12/624,300 mailed on Dec. 31, 2012, 13 pages. |
Non-Final Office Action for U.S. Appl. No. 10/810,208, mailed Jul. 16, 2007, 24 pages. |
Non-Final Office Action for U.S. Appl. No. 10/810,208, mailed Dec. 18, 2007, 40 pages. |
Final Office Action for U.S. Appl. No. 10/810,208, mailed Jun. 11, 2008, 34 pages. |
Advisory Action for U.S. Appl. No. 10/810,208, mailed Aug. 27, 2008, 4 pages. |
Non-Final Office Action for U.S. Appl. No. 10/810,208, mailed Feb. 13, 2009, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 10/810,208, mailed Aug. 24, 2009, 38 pages. |
Non-Final Office Action for U.S. Appl. No. 10/810,208, mailed on Feb. 5, 2010, 15 pages. |
Notice of Allowance for U.S. Appl. No. 10/810,208, mailed on Jul. 15, 2010, 15 pages. |
Non-Final Office Action for U.S. Appl. No. 11/668,322, mailed on Jun. 22, 2010, 16 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 10/140,752, mailed May 18, 2006, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,752, mailed Dec. 14, 2006, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,752, mailed Apr. 23, 2007, 6 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,752, mailed Jan. 24, 2008, 8 pages. |
Notice of Allowance of U.S. Appl. No. 10/140,752, mailed Jul. 24, 2008, 14 pages. |
Notice of Allowance of U.S. Appl. No. 10/140,752, mailed Sep. 10, 2008, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 11/668,322, Dated Mar. 23, 2009, 19 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 11/668,322, mailed on Oct. 29, 2009, 6 pages. |
Final Office Action for U.S. Appl. No. 11/668,322, mailed on Feb. 24, 2010, 33 pages. |
Final Office Action for U.S. Appl. No. 11/668,322, mailed on Feb. 1, 2011, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 11/668,322, mailed on Aug. 30, 2011 17 pages. |
Notice of Allowance for U.S. Appl. No. 11/668,322, mailed on Feb. 10, 2012, 20 pages. |
Non-Final Office Action for U.S. Appl. No. 11/854,486, mailed Jul. 20, 2009, 29 pages. |
Non-Final Office Action for U.S. Appl. No. 11/854,486, mailed on Jan. 12, 2010, 23 pages. |
Notice of Allowance for U.S. Appl. No. 11/854,486, mailed on Jul. 13, 2010, 12 pages. |
Non-Final Office Action for U.S. Appl. No. 10/139,912, mailed Jan. 25, 2006, 14 pages. |
Final Office Action for U.S. Appl. No. 10/139,912, mailed Aug. 11, 2006, 26 pages. |
Non-Final Office Action for U.S. Appl. No. 10/139,912, mailed Apr. 20, 2007, 20 pages. |
Final Office Action for U.S. Appl. No. 10/139,912, mailed Nov. 28, 2007, 20 pages. |
Non-Final Office Action for U.S. Appl. No. 10/139,912, mailed Aug. 1, 2008, 21 pages. |
Notice of Allowance for U.S. Appl. No. 10/139,912, mailed Feb. 5, 2009, 8 pages. |
Notice of Allowance for U.S. Appl. No. 10/139,912, mailed Jun. 8, 2009, 8 pages. |
Notice of Allowance for U.S. Appl. No. 10/139,912, mailed on Oct. 19, 2009, 17 pages. |
Supplemental Notice of Allowance for U.S. Appl. No. 10/139,912, mailed on Nov. 23, 2009, 4 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 10/140,751, mailed Apr. 27, 2006, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,751, mailed Aug. 10, 2006, 15 pages. |
Final Office Action for U.S. Appl. No. 10/140,751, mailed Apr. 10, 2007, 16 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,751, mailed Oct. 30, 2007, 14 pages. |
Final Office Action for U.S. Appl. No. 10/140,751, mailed May 28, 2008, 19 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,751, mailed Sep. 17, 2008, 16 pages. |
Final Office Action for U.S. Appl. No. 10/140,751, Mailed Mar. 17, 2009, 17 pages. |
Advisory Action for U.S. Appl. No. 10/140,751, mailed Jun. 1, 2009, 3 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,751, mailed on Sep. 28, 2009, 34 pages. |
Final Office Action for U.S. Appl. No. 10/140,751, mailed on Mar. 25, 2010, 29 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,751, mailed Dec. 20, 2010, 23 pages. |
Final Office Action for U.S. Appl. No. 10/140,751, mailed on Jun. 28, 2011, 23 pages. |
Non-Final Office Action for U.S. Appl. No. 11/745,008, Mailed May 14, 2009, 27 pages. |
Final Office Action for U.S. Appl. No. 11/745,008, mailed on Dec. 30, 2009, 27 pages. |
Advisory Action for U.S. Appl. No. 11/745,008, mailed on Apr. 21, 2010, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 11/745,008, mailed on Sep. 14, 2011, 26 pages. |
Notice of Allowance for U.S. Appl. No. 11/646,845 mailed on Jan. 8, 2013, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 10/141,223, mailed Feb. 23, 2006, 25 pages. |
Non-Final Office Action for U.S. Appl. No. 10/141,223, mailed Feb. 13, 2007, 29 pages. |
Final Office Action for U.S. Appl. No. 10/141,223, mailed Aug. 21, 2007, 25 pages. |
Non-Final Office Action for U.S. Appl. No. 10/141,223, mailed Dec. 28, 2007, 13 pages. |
Non-Final Office Action for U.S. Appl. No. 10/141,223, mailed Sep. 3, 2008, 22 pages. |
Non-Final Office Action for U.S. Appl. No. 10/139,831, mailed Oct. 17, 2005, 7 pages. |
Notice of Allowance for U.S. Appl. No. 10/139,831, mailed Feb. 9, 2006, 7 pages. |
Non-Final Office Action for U.S. Appl. No. 10/139,831, mailed Jun. 27, 2006, 9 pages. |
Final Office Action for U.S. Appl. No. 10/139,831, mailed Nov. 28, 2006, 17 pages. |
Notice of Allowance for U.S. Appl. No. 10/139,831, mailed Jun. 14, 2007, 26 pages. |
Notice of Allowance for U.S. Appl. No. 10/139,831, mailed Jun. 26, 2007, 10 pages. |
Non-Final Office Action for U.S. Appl. No. 11/828,246, mailed Jun. 15, 2009, 26 pages. |
Notice of Allowance for U.S. Appl. No. 11/828,246, mailed on Nov. 16, 2009, 4 pages. |
Non-Final Office Action for U.S. Appl. No. 12/702,031, mailed on Apr. 29, 2011, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,088, mailed Apr. 27, 2006, 13 pages. |
Notice of Allowance for U.S. Appl. No. 10/140,088, mailed Sep. 7, 2006, 13 pages. |
Notice of Allowance for U.S. Appl. No. 10/140,088, mailed Oct. 24, 2006, 8 pages. |
Notice of Allowance for U.S. Appl. No. 10/140,088, mailed Jan. 11, 2007, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 11/621,038, Mailed Apr. 23, 2009, 44 pages. |
Final Office Action for U.S. Appl. No. 11/621,038, mailed on Dec. 23, 2009, 10 pages. |
Notice of Allowance for U.S. Appl. No. 11/621,038, mailed on Apr. 28, 2010, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 12/795,492, mailed on Mar. 17, 2011, 15 pages. |
Final Office Action for U.S. Appl. No. 12/795,492, mailed on Jul. 20, 2011, 11 pages. |
Notice of Allowance for U.S. Appl. No. 12/795,492, mailed on Nov. 14, 2011, 10 pages. |
Non-Final Office Action for U.S. Appl. No. 12/198,697, mailed on Feb. 2, 2010, 19 pages. |
Final Office Action for U.S. Appl. No. 12/198,697, mailed on Aug. 2, 2010, 22 pages. |
Non-Final Office Action for U.S. Appl. No. 12/198,697, mailed on Oct. 25, 2010, 23 pages. |
Non-Final Office Action for U.S. Appl. No. 12/198,697, mailed on May 20, 2011, 43 pages. |
Notice of Allowance for U.S. Appl. No. 12/198,697, mailed Nov. 28, 2011, 12 pages. |
Notice of Allowance for U.S. Appl. No. 12/198,697, mailed Jan. 5, 2012, 4 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,749, mailed Aug. 10, 2006, 22 pages. |
Final Office Action for U.S. Appl. No. 10/140,749, mailed Jun. 27, 2007, 23 pages. |
Final Office Action for U.S. Appl. No. 10/140,749, mailed Jan. 8, 2008, 23 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,749, mailed Jun. 6, 2008, 28 pages. |
Final Office Action for U.S. Appl. No. 10/140,749, mailed Dec. 8, 2008, 30 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,749, mailed May 27, 2009, 38 pages. |
Final Office Action for U.S. Appl. No. 10/140,749, mailed Jan. 13, 2010, 28 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,753, mailed Apr. 20, 2006, 11 pages. |
Final Office Action for U.S. Appl. No. 10/140,753, mailed Jan. 10, 2007, 27 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,753, mailed Aug. 22, 2007, 14 pages. |
Non-Final Office Action for U.S. Appl. No. 10/140,753, mailed Jan. 8, 2008, 14 pages. |
Final Office Action for U.S. Appl. No. 10/140,753, mailed Aug. 25, 2008, 22 pages. |
Non-Final Office Action for U.S. Appl. No. 12/198,710, mailed on Sep. 28, 2010, 14 pages. |
Non-Final Office Action for U.S. Appl. No. 12/198,710, mailed on Mar. 24, 2011, 39 pages. |
Final Office Action for U.S. Appl. No. 12/198,710, mailed on Oct. 19, 2011, 58 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 11/000,359, mailed Jun. 20, 2008, 7 pages. |
Non-Final Office Action for U.S. Appl. No. 11/000,359, mailed Oct. 23, 2008, 10 pages. |
Non-Final Office Action for U.S. Appl. No. 11/000,359, mailed May 29, 2009, 14 pages. |
Notice of Allowance for U.S. Appl. No. 11/000,359, mailed on Sep. 22, 2009, 4 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 12/608,972, mailed May 17, 2012, 5 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 11/118,697, mailed Jun. 2, 2009, 8 pages. |
Notice of Allowance for U.S. Appl. No. 11/118,697, mailed on Sep. 30, 2009, 7 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 12/639,749, mailed on Dec. 7, 2010, 6 pages. |
Notice of Allowance for U.S. Appl. No. 12/639,749, mailed on Feb. 11, 2011, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,038, mailed Jun. 2, 2005, 14 pages. |
Final Office Action for U.S. Appl. No. 09/855,038, mailed Feb. 7, 2006, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,038, mailed Oct. 4, 2006, 14 pages. |
Notice of Allowance for U.S. Appl. No. 09/855,038, mailed Apr. 26, 2007, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 12/639,762, mailed on Sep. 1, 2010, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 09/988,066, mailed Jul. 14, 2006, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 09/988,066, mailed Apr. 6, 2007, 22 pages. |
Final Office Action for U.S. Appl. No. 09/988,066, mailed Oct. 31, 2007, 16 pages. |
Notice of Allowance for U.S. Appl. No. 12/639,762, mailed on Mar. 4, 2011, 5 pages. |
Notice of Allowance for U.S. Appl. No. 09/988,066, mailed Oct. 30, 2008, 8 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 09/988,066, mailed Dec. 13, 2005, 7 pages. |
Advisory Action for U.S. Appl. No. 09/988,066, mailed May 28, 2008, 4 pages. |
Notice of Allowance for U.S. Appl. No. 09/988,066, Mailed Jan. 9, 2009, 13 pages. |
Non Final Office Action U.S. Appl. No. 11/804,977, mailed Jan. 14, 2008, 13 pages. |
Notice of Allowance for U.S. Appl. No. 11/804,977, mailed Nov. 19, 2008, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 12/400,594, mailed on May 14, 2010, 19 pages. |
Final Office Action for U.S. Appl. No. 12/400,594, mailed on Oct. 28, 2010, 9 pages. |
Notice of Allowance for U.S. Appl. No. 12/400,594, mailed on Mar. 23, 2011, 8 pages. |
Non-Final Office for U.S. Appl. No. 12/400,645, mailed on Sep. 1, 2010, 8 pages. |
Notice of Allowance for U.S. Appl. No. 12/400,645, mailed on Jan. 26, 2011, 12 pages. |
Non-Final Office Action for U.S. Appl. No. 12/372,390, mailed on Apr. 22, 2010, 12 pages. |
Non-Final Office Action for U.S. Appl. No. 12/372,390, mailed on Sep. 13, 2010, 6 pages. |
Notice of Allowance for U.S. Appl. No. 12/372,390, mailed on Mar. 9, 2011, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,015, mailed Oct. 28, 2004, 12 pages. |
Non-Final Office Action for U.S. Appl. No. 09/855,015, mailed Jan. 12, 2006, 6 pages. |
Notice of Allowance for U.S. Appl. No. 09/855,015, mailed Sep. 8, 2006, 3 pages. |
Non-Final Office Action for U.S. Appl. No. 12/505,390, mailed on Oct. 28, 2010, 16 pages. |
Notice of Allowance for U.S. Appl. No. 09/855,015, mailed Jan. 7, 2008, 8 pages. |
Supplemental Notice of Allowance for U.S. Appl. No. 09/855,015, mailed Feb. 4, 2008, 18 pages. |
Non-Final Office Action for U.S. Appl. No. 13/083,481, mailed on Dec. 1, 2011, 7 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 09/855,015, mailed Nov. 3, 2006, 6 pages. |
Non-Final Office Action for U.S. Appl. No. 12/070,893, mailed on Jun. 10, 2010, 9 pages. |
Final Office Action for U.S. Appl. No. 12/070,893, mailed on Nov. 24, 2010, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 12/070,893, mailed on Mar. 18, 2011, 6 pages. |
Final Office Action for U.S. Appl. No. 12/070,893, mailed on Sep. 21, 2011, 12 pages. |
Requirement for Restriction/Election for U.S. Appl. No. 12/466,277, mailed on Aug. 9, 2011, 6 pages. |
Notice of Allowance for U.S. Appl. No. 12/466,277, mailed on Nov. 2, 2011, 47 pages. |
Non-Final Office Action for U.S. Appl. No. 12/684,022 mailed Jul. 30, 2012, 18 pages. |
Non-Final Office Action for U.S. Appl. No. 11/611,067, mailed Feb. 20, 2009, 11 pages. |
Final Office Action for U.S. Appl. No. 11/611,067, mailed on Oct. 16, 2009, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 11/611,067, mailed on Dec. 8, 2009, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 11/615,769, mailed Apr. 15, 2009, 11 pages. |
Final Office Action for U.S. Appl. No. 11/615,769, mailed on Jan. 22, 2010, 7 pages. |
Advisory Action for U.S. Appl. No. 11/615,769, mailed on May 25, 2010, 3 pages. |
Notice of Allowance for U.S. Appl. No. 11/615,769, mailed on Jul. 12, 2010, 8 pages. |
Notice of Allowance for U.S. Appl. No. 11/779,714, mailed on Jun. 18, 2012, 7 pages. |
Final Office Action for U.S. Appl. No. 12/198,710 mailed on Mar. 21, 2013, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 13/083,481 mailed on Mar. 1, 2013, 14 pages. |
Notice of Allowance for U.S. Appl. No. 10/810,301, mailed Jul. 28, 2006, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 11/745,008 mailed on Mar. 7, 2013, 18 pages. |
Non-Final Office Action for U.S. Appl. No. 13/548,116 mailed on Apr. 15, 2013, 8 pages. |
Non-Final Office Action for U.S. Appl. No. 12/900,279 mailed on Apr. 11, 2013, 7 pages. |
Non-Final Office Action for U.S. Appl. No. 12/608,985 mailed on May 31, 2013, 9 pages. |
Notice of Allowance for U.S. Appl. No. 12/198,710 mailed on May 28, 2013, 10 pages. |
U.S. Appl. No. 13/862,160, filed Apr. 12, 2013 by Ramanathan et al. (Unpublished.). |
U.S. Appl. No. 13/925,564, filed Jun. 24, 2013 by Wong et al. (Unpublished.). |
Notice of Allowance for U.S. App. No. 12/684,022 mailed on Aug. 20, 2013, 10 pages. |
Non-Final Office Action for U.S. Appl. No. 13/398,725 mailed on Aug. 30, 2013, 8 pages. |
Notice of Allowance for U.S. Appl. No. 13/083,481 mailed on Sep. 3, 2013, 9 pages. |
Non-Final Office Action for U.S. Appl. No. 10/832,086 mailed on Sep. 9, 2013, 13 pages. |
Non-Final Office Action for U.S. Appl. No. 12/608,972 mailed on Sep. 16, 2013, 6 pages. |
Notice of Allowance for U.S. Appl. No. 11/745,008 mailed on Oct. 7, 2013, 9 pages. |
U.S. Appl. No. 14/326,859, filed Jul. 17, 2014 by Wong. (Unpublished.). |
Final Office Action for U.S. Appl. No. 13/485,650 mailed on Jul. 17, 2014, 10 pages. |
U.S. Appl. No. 14/082,546, filed Nov. 18, 2013 by Jha et al. (Unpublished.). |
U.S. Appl. No. 14/075,331, filed Nov. 8, 2013 by Patel et al. (Unpublished.). |
Non-Final Office Action for U.S. Appl. No. 13/485,650 mailed on Oct. 2, 2013, 5 pages. |
Final Office Action for U.S. Appl. No. 12/624,300 mailed on Oct. 31, 2013, 16 pages. |
Final Office Action for U.S. Appl. No. 12/900,279 mailed on Sep. 27, 2013, 8 pages. |
Final Office Action for U.S. Appl. No. 13/548,116 mailed on Nov. 7, 2013, 19 pages. |
Notice of Allowance for U.S. Appl. No. 12/608,985 mailed on Dec. 24, 2013, 7 pages. |
Final Office Action for U.S. Appl. No. 12/608,972 mailed on Jan. 17, 2014, 5 pages. |
Non-Final Office Action for U.S. Appl. No. 14/075,331 mailed on Aug. 15, 2014, 17 pages. |
Non-Final Office Action for U.S. Appl. No. 13/925,564 mailed on Oct. 3, 2014, 9 pages. |
Non-Final Office Action for U.S. Appl. No. 13/939,730 mailed on Sep. 25, 2014, 11 pages. |
Notice of Allowance for U.S. Appl. No. 14/075,331 mailed on Nov. 12, 2014, 10 pages. |
U.S. Appl. No. 14/277,889, filed Dec. 19, 2014 by Davis et al. (Unpublished.). |
Notice of Allowance for U.S. Appl. No. 13/548,116 mailed on Jan. 13, 2015, 14 pages. |
Non-Final Office Action for U.S. Appl. No. 14/082,546 mailed on Jan. 22, 2015, 9 pages. |
Final Office Action for U.S. Appl. No. 13/862,160 mailed on Jan. 23, 2015, 16 pages. |
Notice of Allowance for U.S. Appl. No. 13/939,730 mailed on Feb. 27, 2015, 9 pages. |
Number | Date | Country | |
---|---|---|---|
20130343199 A1 | Dec 2013 | US |
Number | Date | Country | |
---|---|---|---|
60880074 | Jan 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11953742 | Dec 2007 | US |
Child | 13766330 | US |