US9270595B2 - Method and system for controlling a delay of packet processing using loop paths - Google Patents
Method and system for controlling a delay of packet processing using loop paths Download PDFInfo
- Publication number
- US9270595B2 US9270595B2 US12/249,244 US24924408A US9270595B2 US 9270595 B2 US9270595 B2 US 9270595B2 US 24924408 A US24924408 A US 24924408A US 9270595 B2 US9270595 B2 US 9270595B2
- Authority
- US
- United States
- Prior art keywords
- packet
- delay
- packets
- dlp
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000012545 processing Methods 0.000 title claims abstract description 126
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000003111 delayed effect Effects 0.000 claims abstract description 29
- 230000002265 prevention Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 41
- 239000012634 fragment Substances 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000001934 delay Effects 0.000 description 9
- 238000007689 inspection Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000013467 fragmentation Methods 0.000 description 5
- 238000006062 fragmentation reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 244000025221 Humulus lupulus Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 235000009809 Humulus lupulus var lupuloides Nutrition 0.000 description 1
- 235000006878 Humulus lupulus var neomexicanus Nutrition 0.000 description 1
- 235000009800 Humulus lupulus var pubescens Nutrition 0.000 description 1
- 235000009808 Humulus lupulus var. lupulus Nutrition 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001152 differential interference contrast microscopy Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
Definitions
- the present invention relates to packet processing in a packet-switched network.
- the present invention is directed to a method and system for controlling a delay of packet processing using one or more delay loop paths.
- Packet-switch networks such as the Internet, transport data between communicating devices using packets that are routed and switched across one or more links in a connection path.
- packet-switched networks have grown in size and complexity, their role in the critical functioning of businesses, institutions, and organizations has increased dramatically.
- IDS & IPS Intrusion Detection and Intrusion Prevention Systems
- IDS & IPS Intrusion Detection and Intrusion Prevention Systems
- Other devices connected at the edge of a network transport network traffic across the network to one or more other network edge devices.
- network traffic may be transported using tunneling protocols, encapsulated packets, and may be encrypted to get the packets to the destination in a timely and secure manner.
- Packet processing devices can be implemented as an in-line hardware and/or software based device that can perform deep packet inspection (DPI), examining the content encapsulated in a packet header or payload, regardless of protocol or application type and tracks the state of packet streams between network attached systems.
- DPI deep packet inspection
- packet processing devices can introduce significant packet processing actions that are performed on packets as they travel from source to destination.
- Other network security methods and devices may similarly act on individual packets, packet streams, and other packet connections.
- the performance of a system that utilizes the network services can vary based on how the traffic is delivered. For example, packets that carry the network traffic may not arrive at the destination in the same order as they where sent, the end node may have to reorder the data if the network does not provide an in-order data delivery service. The performance of the end node, and hence the whole system, may decrease if the end node has to reorder the data. If the network can provide an in-order data deliver service that reorders the delivered data, the whole system performance may increase.
- an initial order in which the packets were transmitted from a source device may become altered, so that one or more packets arrive out of sequence with respect to the initial transmission order. For instance, packets from the same communication could be routed on different links with different traffic properties, causing delayed arrival of an earlier-sequenced packet relative to a later-sequenced packet. Further, one or more intermediate routers or switches may fragment packets, and the fragments themselves could arrive out of order. As they are transported to their destination out-of-sequence packets may also traverse intermediate network elements and components as well, including IPS devices or other packets processing devices.
- Some network technologies provide packet retransmit function to replace packets that were lost due to transmission error or lack of storage. Packets may be delivered out of order due one or more packets being lost and then later being retransmitted. Knowing the time between the packet being lost and the packet being retransmitted will help determine how long to wait for a lost packet to be able to place it back in order with the other packets carrying the data sent from a source to a destination.
- out-of-sequence receipt of packets may impact the operation an IPS, other packet processing devices, or the end nodes destined to receive the network traffic.
- processing of an out-of-sequence packet may need to be delayed until the in-sequence counterpart arrives.
- it may be desirable to be able to tune the delay of a particular packet based on such factors as packet type, communication type, or known traffic characteristics, to name just a few. Therefore, a device such as an IPS or other packet processing devices may benefit by having an ability to introduce controlled delay of packet processing of packets received from the network or from internal processing components.
- the present invention is directed to a method and system for introducing controlled delay of packet processing. More particularly, a method and system is described for introducing controlled delay of packet processing by a packet processing platform using one or more delay loop paths.
- the embodiments described herein exemplify controlled delay of packet processing by a security device such as an IPS, but it should be understood that the method and system applies to any packet processing device such as a VPN server, Ethernet switch or router, intelligent network interface (NIC), or a firewall.
- NIC intelligent network interface
- out-of-sequence receipt of packets has been described as a reason for imposing controlled delay, other reasons are possible as well, such as spreading traffic out, that may not have been reordered, but may have bunched together and now presents a traffic burst.
- the present invention is not limited to controlled delay for out-of-sequence packets or to pace network traffic, but instead covers any reason for delaying the processing of a packet.
- the invention is directed to a method and system for introducing controlled delay in the processing of packets in a packet-switched data network, including determining that a packet should be delayed, selecting a delay loop path (DLP) according to a desired delay for the packet, and sending the packet to the selected DLP.
- DLP delay loop path
- the determination that a delay is need, as well as the selection of DLP according to the desired delay, can be based on a property of the packet, the communication protocol indicated by one or more fields in the packet, and whether the network provides packet retransmission.
- understanding the protocol used by communication, and retransmission parameters implemented by the protocol of the network interconnection devices may be used to determine both that a delay is required, and what the delay should be. As noted, however, there may be other properties of a packet that necessitate controlled delay of processing.
- the construction of the DLP will determine if packets can be inserted between other packets already in the DLP or if packets can only be added at the end of the DLP. If the DLP can accept new packets being adding between packets already on the DLP, then only one, or a small number of DLPs can be used. On the other hand, if the DLP can only accept new packets added to the end of the DLP, then the newly added packet can only be delayed longer than all the other packets on a single DLP and, therefore, multiple DLPs are needed.
- packets may be received at the network entity from an end node, or component in the network, such a VPN server, router, or a switch.
- packets may be received from one or more DLPs once they complete their delays. That is, once a controlled delay for a given packet is complete, the packet is returned for processing.
- a packet may either be processed or subjected to another delay. For example, following delay, an out-of-sequence packet may be processed if its in-sequence counterpart has arrived in the meantime. If not, it may be sent for a new possibly shorter last chance delay, forwarded without processing, or discarded. Other actions are possible as well.
- the present invention is directed to a system for introducing controlled delay in the processing of packets in a packet-switched network, the system comprising a processor, a network interface, one or more delay loop paths (DLPs), data storage, and machine language instructions stored in the data storage and executable by the processor to carry out the functions described above (and detailed further below).
- the functions carried out by the processor according to the machine language instructions preferably comprise receiving a packet at the network interface, determining that the packet needs to be delayed before processing, selecting a delay loop path according to its path delay (as described above), and sending the packet to the selected DLP.
- the system may receive a packet from a DLP.
- the machine language instructions will preferably also be executable to determine to delay the packet again, forward the packet or discard the packet.
- the processor, the network interface, one of more DLPs, and the data storage will each be a component of a field-programmable gate array (FPGA). Further, each of the processor, the network interface, the one or more DLPs, and the data storage will preferably comprise one or more sub-elements of the FPGA. That is, each of the specified system components will be implemented on an FPGA, and may in turn be composed, at least in part, of one or more low-level FPGA elements.
- FPGA field-programmable gate array
- FIG. 1 is a block diagram of out-of-sequence arrival of packet fragments at a packet processing platform
- FIG. 2 is a block diagram of controlled delay of packet processing using a single delay loop path with time information according to the invention
- FIG. 3 is a flowchart that illustrates exemplary operation of controlled delay of packet processing using one or more delay loop paths with time information and adding a packet to a DLP according to the invention
- FIG. 4 is a flowchart of an exemplary operation of controlled delay of packet processing using one or more delay loop paths with time information and removing a packet from a DLP according to the invention
- FIG. 5 is a block diagram of controlled delay of packet processing using multiple delay loop paths with time information according to the invention.
- the method and system described herein is based largely on introducing controlled delay of packets using a construct called a delay loop path (DLP). More particular, in order to impose a range of delay times to accommodate a possibly large number of packets and a variety of packet types and delay conditions, a single DLP with the ability to insert packets in an ordered list, or multiple delay loop paths can be employed. Packets that are determined to have arrived to a packet processing platform out of sequence may then be subject to a controlled delay appropriate to the properties of the individual packets.
- DLP delay loop path
- Packet processing platforms that can use the invention include IPS devices, virtual private network (VPN) servers, Ethernet switches, intelligent network adapters (NICs), or routers, firewalls, any network interconnect device connecting components of a LAN, or connecting a LAN to a public WAN. Additionally, other criteria, such as network conditions or routes, traffic pacing, protocols used, or network device retransmissions, may be considered as well in determining the need for and the length of delay. For further description of delay loop paths, see, e.g., U.S. patent application Ser. No. 11/745,307, titled “Method and System for Controlled Delay of Packet Processing with Multiple Loop Paths,” filed on May 7, 2007 by Smith, et al.
- SRC 102 transmits packet sequence ⁇ P 1 , P 2 , P 3 ⁇ to DST 104 by way of packet processing platform 106 .
- this packet sequence may represent only a subset of packets associated with a given transmission.
- the details of the network or networks between SRC 102 , DST 104 , and packet processing platform 106 are not critical and are represented simply as ellipses 107 , 109 , and 111 .
- transmission path is depicted in three segments (top, middle, and bottom) for illustrative purposes, and that the two circles each labeled “A” simply indicate continuity of the figure between the top and middle two segments and the two circles each labeled “B” indicate continuity of the figure between the middle and bottom segments.
- each packet is fragmented into smaller packets at some point within the network elements represented by ellipses 107 , for example at one or more packet routers.
- the exemplary fragmentation results in packet P 1 being subdivided into two packets, designated P 1 -A and P 1 -B.
- Packet P 2 is subdivided into three packets, P 2 -A, P 2 -B, and P 2 -C, while packet P 3 is subdivided into two packets P 3 -A and P 3 -B.
- all of the initial fragments are transmitted in order as sequence ⁇ P 1 -A, P 1 -B, P 2 -A, P 2 -B, P 2 -C, P 3 -A, P 3 -B ⁇ .
- the order of transmission of the packet fragments becomes altered such that they arrive at packet processing platform 106 out of sequence as ⁇ P 3 -B, P 2 -C, P 1 -B, P 2 -B, P 3 -A, P 1 -A, P 2 -A ⁇ , that is, out order with respect to the originally-transmitted fragments.
- the re-ordering could be the result of different routers and links traversed by different packet fragments, routing policy decisions at one or more packet routers, or other possible actions or circumstances of the network.
- packet processing platform 106 could be an IPS or other security device, and may require that fragmented packets be reassembled before processing can be carried out.
- packet P 3 -B must wait for P 3 -A to arrive before reassembly and subsequent processing can be performed.
- P 2 -C must wait for P 2 -B and P 2 -A, while P 1 -B must wait for P 1 -A.
- packet processing must be delayed in order to await the arrival of an earlier-sequenced packet.
- the method and system for controlled delay of packet processing may be advantageously used by packet processing platform 106 to introduce the requisite delay while earlier-arrived, out-of-sequence packets await the arrival of earlier-sequenced packets.
- the present invention ensures that delay of packet processing may be introduced in a controlled manner, regardless of the specific details of the processing or the reason(s) for controlled delay.
- TCP provides a virtual connection between two IP devices for transport and delivery of IP packets via intervening networks, routers, and interconnecting gateways, and is commonly used in IP networks to transport data associated with a variety of applications and application types.
- TCP also includes mechanisms for segmentation and reassembly of data transmitted in IP packets between the source and destination, as well as for ensuring reliable delivery of transmitted data. For instance, in transmitting a data file from a source to a destination, TCP will segment the file, generate P packets for each segment, assign a sequence number to each IP packet, and communicate control information between each end of the connection to ensure that all segments are properly delivered. At the destination, the sequence numbers will be used to reassemble the original data file.
- the TCP Maximum Segment Size is generally limited according to the largest packet size, or Maximum Transmission Unit (MTU), used in the underlying host networks of the two devices. Then, the data portion (i.e., payload) of any particular packet transmitted on the established TCP connection will not exceed the MSS. However, the IP packet size at the source may still exceed the MTU of one or more networks or links in the connection path to the destination. When an IP packet arriving, at a router exceeds the MTU of the outbound link, the router must fragment the arriving packet into smaller IP packets prior to forwarding.
- MTU Maximum Transmission Unit
- an IP packet with TCP segment size 64 kbytes must be fragmented into smaller IP packets in order to traverse an Ethernet link for which the MTU is 1.5 kbytes.
- the smaller, fragmented IP packets are ultimately delivered to the destination device, where they are reassembled into the original data transmitted from the source. That is, fragmentation introduced by intervening links generally remains all the way to the destination.
- intervening routers may reorder the initially transmitted sequence. As discussed above, this may occur for a variety of reasons. For instance, a router may queue packets for transmission, preferentially forwarding smaller packets ahead of larger ones. If a given packet stream includes smaller packets that are sequenced later than larger packets, this preferential forwarding may cause smaller packets to arrive at subsequent hops ahead of larger ones, and possibly out of sequence with respect to them. As another example, a router may forward different packets from the same TCP connection on more than one outbound link.
- later-sequenced packets and/or packet fragments of a given TCP connection may arrive at the destination (or the next common hop) ahead of earlier-sequenced ones. There may be other causes of out-of-order delivery, as well.
- a packet processing platform in the exemplary TCP connection path may thus receive out-of-sequence packets or packet fragments.
- the packet processing platform may be considered to be a network security device, and more particularly an IPS. While this is not required for operation of the present invention, an IPS is exemplary of a device or platform for which the relative order of arriving packets with respect to original transmission sequence can be an important factor.
- TCP is illustrative of packet data transport that may be subject to packet fragmentation and out-of-sequence delivery of packets
- networks and network devices in a transport path may similarly impact other forms of packet transport.
- an IPS In carrying out its functions of protecting a network against viruses, Trojan horses, worms, and other sophisticated forms of threats, an IPS effectively monitors every packet bound for the network, subnet, or other devices that it acts to protect.
- An important aspect of the monitoring is DPI, a detailed inspection of each packet in the context of the communication in which the packet is transmitted. DPI examines the content encapsulated in packet headers and payloads, tracking the state of packet streams between endpoints of a connection. Its actions may be applied to packets of any protocol or transported application type. As successive packets arrive and are examined, coherence of the inspection and tracking may require continuity of packet content from one packet to the next.
- inspection may need to be delayed until an earlier-sequenced packet arrives and is inspected. Also, due to the detailed tracking of the packets, the protocol and application using the protocol can be detected, and this information can be used to determine the desired delay for processing a packet.
- IPS operation Another important aspect of IPS operation is speed. While the primary function of an IPS is network protection, the strategy of placing DPI in the packet streams between endpoints necessarily introduces potential delays, as each packet is subject to inspection. Therefore, it is generally a matter of design principle to perform DPI efficiently and rapidly. While the introduction of controlled delay of out-of-sequence packets might appear to compete with the goal of rapid processing, in fact it may help increase efficiency since DPI may execute more smoothly for in-order inspection. Also, by reordering packets the system as a whole may gain performance, due to offloading the reorder task from the end node.
- a desirable element of controlled delay is to match the delay imposed on a given packet, based on the other related packets carrying the network traffic to a particular destination. By doing so, packet processing that depends on in-order sequencing or the pacing of packets, may be efficiently tuned to properties of the arrivals encountered by packet processing devices.
- the invention provides actual packet processing delays that correspond to a desired delay.
- a time field is added in front of the packet in a FIFO packet store, which is a preferred embodiment of a single DLP within a packet processing platform 222 .
- the embodiment shown includes queue server 228 , which uses the time field to only remove packets from the FIFO after a specified delay time, instead of always removing a packet once a time period as disclosed in Smith, et al. Packet fragments P 3 -B, P 2 -C, P 1 -B, and P 2 -B are shown to have arrived out-of-sequence.
- packet processing 224 determines if a packet need to be delayed and the desired delay value for that packet, then passes the packet with the desired delay value to queue loader 227 .
- the queue loader 227 uses the desired delay value to determine a time value and inserts the time value in the FIFO ahead of the packet.
- the time value represents the system time when the packet should be removed from the FIFO after waiting the desired delay time. This value is determined by reading system time 229 and adding the desire delay time to the present system time 229 to produce the time when the packet should be removed. This time value will be used by the queue server 228 to know when to remove the associated packet from the FIFO.
- the system time 229 can be implemented as a time of day clock with millisecond or microsecond resolution or a clocked counter that has a roll over time period at least an order of magnitude larger than the longest desired delay.
- a plurality of logic units may be configured to perform various operations of the packet processing platform 222 . More particularly, a first logic unit and a second logic unit may implement the packet processing 224 , in which the first logic unit determines that a packet should be delayed before the packet is processed or forwarded and the second logic unit determines a desired delay value for the packet. In addition, a third logic unit and a fourth logic unit may implement the queue loader 227 , in which the third logic unit adds a time field containing the desired delay value for the packet to associate a time value with the packet and the fourth logic unit sends the packet on a delay loop path (DLP).
- DLP delay loop path
- a fifth logic unit may implement the queue server 228 , in which the fifth logic unit removes the packet from the DLP when the time value associated with the packet indicates.
- the first, second, third, fourth, and fifth logic units may comprise software logic units, hardware logic units, or a combination of software and hardware logic units.
- one or more of the logic units comprise circuit components.
- one or more of the logic units comprise software code stored on a computer readable storage medium, which is executable by a processor.
- each packet returns to packet processing block 224 via DLP exit 233 .
- Queue server 228 could be invoked via a timer-based interrupt, for instance, which causes the queue server 228 to check if a packet has been added to the FIFO at the head of packet queue 226 , and remove a packet if the time value associated with the packet indicates that the desired delay has passed.
- packet queue 226 is part of the data storage of packet processing platform 222 , and can be configured according to a first-in-first-out (FIFO) access discipline.
- Packet queue server 228 periodically checks the queue to see if a packet has been entered into the queue, and if the queue is not empty, the packet queue server 228 checks the time field to determine if the packet at the head of the queue should be removed. If the packet has not waited the desired delay, the packet queue server 228 posts a timer for a next time the queue should be checked. The packet queue server 228 determines when the packet at the head of the queue should be removed by calculating the difference between the system time and the time value associated with the packet at the head of the queue. The packet queue server 228 will not be invoked until the packet at the head of queue is ready to be removed, because it has been delayed the desired amount of time, and this eliminates unnecessary polling of the queue by the packet queue server 228 .
- FIFO first-in-first-out
- Service time associated with packet queue server 228 can be the time required to copy the packet from queue memory to the input of packet processing platform 224 , for instance. Thus the delay that any given packet would experience from the time it enters the queue until it arrives back at packet processing block 224 would be approximately the desired delay time plus the service time associated with the given packet.
- FIG. 3 illustrates the steps taken 300 by the queue loader 227 to insert the time value and the packet in the FIFO.
- a packet and the desired delay time is received that is to be delay.
- the system time is read at step 320 .
- the time value that is be inserted in the FIFO before the packet is the system time when, after a desired delay time period, the packet has been delayed the desire time and should be returned to the packet processing function. This time value is determined by added the desired delay time to the present system time at step 330 .
- the time value is transferred into the FIFO followed by the packet to be delayed. These steps are repeated for each packet that has been determined to be delayed by the packet processing function.
- FIG. 4 contains the flow chart that illustrates the steps taken 400 by queue server 228 to check if there is a packet that has been delayed a desired time period and should be sent to the packet processing function.
- a check is made to determine if there is a packet at the head of the queue at step 480 . If there are no packets in the queue, then at step 488 a timer is posted to wake up this process after a poll time has passed. The process will wait at step 485 until the timer wakes up the process. If at step 480 there was a packet found at the head of the queue, then the time value associated with the packet at the head of the queue is read.
- this time value is checked, against the system time to determine if the packet has been delayed the desired delay time and is ready to be returned to the packet process function. If the time value has a time before (greater than) or equal to the present system time, then the packet has been delay long enough and is removed from the queue and passed to the packet processing function at step 486 and then the process will proceed to check the new head of the queue at step 480 . If the time value has a time after (less than) the present system time, then the packet has not been delayed the desire delay period, so the period of time left to wait for the packet at the head of the queue is determined by subtracting the time value associated with the packet at the head of the queue from the present system time at step 483 .
- a timer is posted to wakeup the process when the packet at the head of the queue has been delayed the desired time period, this eliminates unnecessary polling of the queue.
- the process waits at step 485 .
- the process awakes it proceeds to check the queue at step 480 .
- the embodiment illustrated in FIG. 2 works well when the desired delay is the same for all packets to be delayed.
- the packets where reordered by the network transferring the packet from a source to a destination. Due to packet reordering by the network, a desired delay value of 100 milliseconds for a packet may be found through network traffic studies. Another reason for delaying processing a packet could be due to packet loss and the protocol that transfers this information has a retransmission function, then the desired delay for packets believed to be delayed by packet loss and a retransmission is expected, may be found to be 550 milliseconds. There may also be other reasons for different packet delay values. Due to there being various reasons to delay processing packets, the packet processing function may decide to use multiple delay values.
- a packet arrives that has been specified to be delayed by a time period that is shorter than a packet already placed in the queue, then newly arrived packet would have to be put ahead of the packet already waiting in the queue.
- the queue used to implement the DLP had an access limitation of only being able to add packet at the tail of the queue and remove packet from the head of the queue, then a single delay queue is not the best implementation.
- the queue used to implement the DLP has the ability to insert new packet entries into an ordered list of packets, e.g., a linked list implementation, then a single delay queue could be an efficient implementation. Implementations for inserting packets into an ordered list, such as linked list implementations, are well known. There, the packet is sent to the DLP by inserting the packet in the ordered list of packets. The order of the list of packets can be ordered by the time value associated with the packet on the DLP.
- multiple delay loop paths provides an implementation option. Multiple queues allow an implementation the ability to group the desired delays into groups varying from short delays to longer delays. If the set of desired delay values are known and this set of desired delay values has fewer elements than the number of available queues to be used as DLPs, then a separate DLP queue may be dedicated to each delay value used.
- FIG. 5 illustrates an implementation with four DLP FIFO queues 522 . There are four different delays used in this example implementation.
- the longest delay of 550 milliseconds is used for a protocol that provides retransmission; by network interconnect devices such as a network switch, after 500 milliseconds to deal with lost packets.
- the delay of 550 milliseconds is used when the packet processing has identified that a packet was received out of order and the out of order condition is assumed to be due to a packet loss. This may be determined by analyzing a packet with an error indication caused the reordering by participating in a link by link protocol with other network interconnect devices, or by observing other protocol indications of packet loss
- a third delay value of 100 milliseconds is used when the packet processing function determines the packets have been received out of order, e.g., due to the network reordering the packets, as they passed through the network.
- the fourth delay of 5 milliseconds is used a catch all for a short delay. This delay can be used as a second chance to delay a packet a little longer before discarding the packet or for other reasons to delay a packet for a short period of time. Since only four delay values will be used by the packet processing function only four DLP FIFO queues are needed.
- the delay values provided in this example are for illustrative purposes and other implementation may use delay values that are orders of magnitude smaller or larger.
- DLP 581 has assigned a desired delay value of 550 milliseconds and is used for packets that arrive out of order due to a lost packet and there is packet retransmission provided by the network.
- DLP 583 has assigned a desired delay value of 300 milliseconds to re-pace traffic that has bunched up.
- DLP 585 has assigned a desired delay value of 100 milliseconds to delay traffic that has arrived out of order due to the network reordering traffic without packet loss suspected.
- DLP 587 has assigned a desired delay value of 5 milliseconds used as a last chance delay for packets.
- the first packet to arrive is packet number 2 of session number 1 P 2 -S 1 .
- the packet processing function 524 determines that packet number 1 of session number 1 was lost and that the network will retransmit packet number 1 , so packet P 2 -S 1 is assigned a desired delay of 550 milliseconds and the packet processing function 524 passes the packet and the desired delay to the queue loader 592 .
- the queue loader 592 determines a time value (TIME-A) to place in DPL FIFO 581 before the packet by adding 550 milliseconds to the current system time 529 . Then the packet P 2 -S 1 is placed in the DPL FIFO 581 , directly following the TIME-A value, by the queue loader 592 .
- TIME-A time value
- the next packet is packet number 3 of session number 2 P 3 -S 2
- the packet processing function 524 determines a desired delay value of 100 milliseconds should be applied to this packet because it has arrived out of order, due to the network reordering the packets.
- the packet processing function 524 passes the packet P 3 -S 2 and the desired delay to the queue loader 596 .
- the queue loader 596 determines a time value (TIME-B) to place in DPL FIFO 585 before the packet by adding 100 milliseconds to the current system time 529 . Then the packet P 3 -S 2 is placed in the DPL FIFO 585 , directly following the TIME-B value, by the queue loader 596 .
- TIME-B time value
- the third packet to arrive is packet number 2 of session number 2 P 2 -S 2 and again the packet processing function 524 determines a desired delay value of 100 milliseconds should be applied to this packet because it has arrived out of order, due to the network reordering the packets.
- the packet processing function 524 passes the packet P 2 -S 2 and the desired delay to the queue loader 596 .
- the queue loader 596 determines a time value (TIME-C) to place in DPL FIFO 585 before the packet by adding 100 milliseconds to the current system time 529 . Then the packet P 2 -S 2 is placed in the DPL FIFO 585 , directly following the TIME-C value, by the queue loader 596 .
- TIME-C time value
- the fourth packet is packet number 1 of session number 2 P 1 -S 2 and the packet processing function 524 again, determines that no delay is needed and processes the packet without delay.
- the fifth packet is packet number 1 of session number 3 P 1 -S 3 and the packet processing function 524 determines that no delay is needed and processes the packet.
- the sixth packet to arrive is packet number 2 of session number 3 P 2 -S 3 and the packet processing function 524 determines that the packets of this session have bunched up and this packet needs to be paced, so a desired delay of 300 milliseconds is selected.
- the packet processing function 524 passes the packet P 2 -S 3 and the desired delay to the queue loader 594 .
- the queue loader 594 determines a time value (TIME-E) to place in DPL FIFO 583 before the packet by adding 300 milliseconds to the current system time 529 . Then the packet P 2 -S 3 is placed in the DPL FIFO 583 , directly following the TIME-E value, by the queue loader 594 .
- TIME-E time value
- the packet number 3 of session number 2 P 3 -S 2 is removed from DLP 585 by queue service process 586 and passed back to the packet processing function 524 via path 533 .
- the packet processing function 524 determines further delay is needed so a short desired delay of 10 milliseconds is determined.
- the packet processing function 524 passes the packet P 3 -S 2 and the desired delay to the queue loader 598 .
- the queue loader 598 determines a time value (TIME-D) to place in DPL FIFO 587 before the packet by adding 10 milliseconds to the current system time 529 . Then the packet P 3 -S 2 is placed in the DPL FIFO 587 directly following TIME-D value by the queue loader 598 .
- the queue server function 586 removes packet P 2 -S 2 from DLP FIFO 585 and passes the packet to packet processing function 524 via path 533 .
- the packet processing function 524 can now process this packet.
- the 5 milliseconds passes since packet P 3 -S 2 was placed on DLP FIFO 587 and queue server function 588 removes packet P 3 -S 2 and passes it to the packet processing function 524 via path 533 , where the packet is processed.
- packet P 2 -S 3 will be removed from DLP FIFO 583 by queue server function 584 and passed to the packet processing function 524 via path 533 .
- packet P 2 -S 1 will be removed from DLP FIFO 581 by queue server function 582 and passed to the packet processing function 524 via path 533 .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/249,244 US9270595B2 (en) | 2008-10-10 | 2008-10-10 | Method and system for controlling a delay of packet processing using loop paths |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/249,244 US9270595B2 (en) | 2008-10-10 | 2008-10-10 | Method and system for controlling a delay of packet processing using loop paths |
Publications (2)
Publication Number | Publication Date |
---|---|
US20100091782A1 US20100091782A1 (en) | 2010-04-15 |
US9270595B2 true US9270595B2 (en) | 2016-02-23 |
Family
ID=42098795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/249,244 Active 2033-07-12 US9270595B2 (en) | 2008-10-10 | 2008-10-10 | Method and system for controlling a delay of packet processing using loop paths |
Country Status (1)
Country | Link |
---|---|
US (1) | US9270595B2 (en) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5402581B2 (en) * | 2009-12-01 | 2014-01-29 | 富士通株式会社 | Packet relay apparatus and congestion control method |
US9258666B2 (en) * | 2012-10-17 | 2016-02-09 | International Business Machines Corporation | State migration of edge-of-network applications |
US10122645B2 (en) | 2012-12-07 | 2018-11-06 | Cisco Technology, Inc. | Output queue latency behavior for input queue based device |
US9628406B2 (en) | 2013-03-13 | 2017-04-18 | Cisco Technology, Inc. | Intra switch transport protocol |
US9860185B2 (en) * | 2013-03-14 | 2018-01-02 | Cisco Technology, Inc. | Intra switch transport protocol |
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US10749711B2 (en) | 2013-07-10 | 2020-08-18 | Nicira, Inc. | Network-link method useful for a last-mile connectivity in an edge-gateway multipath system |
US10135789B2 (en) | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US10498652B2 (en) | 2015-04-13 | 2019-12-03 | Nicira, Inc. | Method and system of application-aware routing with crowdsourcing |
US10320691B1 (en) | 2016-01-30 | 2019-06-11 | Innovium, Inc. | Visibility packets |
US10355981B1 (en) | 2016-03-02 | 2019-07-16 | Innovium, Inc. | Sliding windows |
US10700987B2 (en) * | 2016-09-09 | 2020-06-30 | Wipro Limited | System and method for transmitting data over a communication network |
US11075847B1 (en) | 2017-01-16 | 2021-07-27 | Innovium, Inc. | Visibility sampling |
US10735339B1 (en) | 2017-01-16 | 2020-08-04 | Innovium, Inc. | Intelligent packet queues with efficient delay tracking |
US20200036624A1 (en) | 2017-01-31 | 2020-01-30 | The Mode Group | High performance software-defined core network |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US10523539B2 (en) | 2017-06-22 | 2019-12-31 | Nicira, Inc. | Method and system of resiliency in cloud-delivered SD-WAN |
US10805114B2 (en) | 2017-10-02 | 2020-10-13 | Vmware, Inc. | Processing data messages of a virtual network that are sent to and received from external service machines |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10999100B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US11252106B2 (en) | 2019-08-27 | 2022-02-15 | Vmware, Inc. | Alleviating congestion in a virtual network deployed over public clouds for an entity |
US11044190B2 (en) | 2019-10-28 | 2021-06-22 | Vmware, Inc. | Managing forwarding elements at edge nodes connected to a virtual network |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11438789B2 (en) | 2020-01-24 | 2022-09-06 | Vmware, Inc. | Computing and using different path quality metrics for different service classes |
US11245641B2 (en) | 2020-07-02 | 2022-02-08 | Vmware, Inc. | Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN |
US11363124B2 (en) | 2020-07-30 | 2022-06-14 | Vmware, Inc. | Zero copy socket splicing |
US11621904B1 (en) | 2020-11-06 | 2023-04-04 | Innovium, Inc. | Path telemetry data collection |
US11784932B2 (en) * | 2020-11-06 | 2023-10-10 | Innovium, Inc. | Delay-based automatic queue management and tail drop |
US11575591B2 (en) | 2020-11-17 | 2023-02-07 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11575600B2 (en) | 2020-11-24 | 2023-02-07 | Vmware, Inc. | Tunnel-less SD-WAN |
US11929903B2 (en) | 2020-12-29 | 2024-03-12 | VMware LLC | Emulating packet flows to assess network links for SD-WAN |
US12218845B2 (en) | 2021-01-18 | 2025-02-04 | VMware LLC | Network-aware load balancing |
CN116783874A (en) | 2021-01-18 | 2023-09-19 | Vm维尔股份有限公司 | Network aware load balancing |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US12368676B2 (en) | 2021-04-29 | 2025-07-22 | VMware LLC | Methods for micro-segmentation in SD-WAN for virtual networks |
US11381499B1 (en) | 2021-05-03 | 2022-07-05 | Vmware, Inc. | Routing meshes for facilitating routing through an SD-WAN |
US12009987B2 (en) | 2021-05-03 | 2024-06-11 | VMware LLC | Methods to support dynamic transit paths through hub clustering across branches in SD-WAN |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US12250114B2 (en) | 2021-06-18 | 2025-03-11 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of sub-types of resource elements in the public clouds |
US12015536B2 (en) | 2021-06-18 | 2024-06-18 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds |
US12047282B2 (en) | 2021-07-22 | 2024-07-23 | VMware LLC | Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN |
US12267364B2 (en) | 2021-07-24 | 2025-04-01 | VMware LLC | Network management services in a virtual network |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
US12184557B2 (en) | 2022-01-04 | 2024-12-31 | VMware LLC | Explicit congestion notification in a virtual environment |
US12425395B2 (en) | 2022-01-15 | 2025-09-23 | VMware LLC | Method and system of securely adding an edge device operating in a public network to an SD-WAN |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
US12166661B2 (en) | 2022-07-18 | 2024-12-10 | VMware LLC | DNS-based GSLB-aware SD-WAN for low latency SaaS applications |
US20240028378A1 (en) | 2022-07-20 | 2024-01-25 | Vmware, Inc. | Method for modifying an sd-wan using metric-based heat maps |
US12425332B2 (en) | 2023-03-27 | 2025-09-23 | VMware LLC | Remediating anomalies in a self-healing network |
US12034587B1 (en) | 2023-03-27 | 2024-07-09 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12057993B1 (en) | 2023-03-27 | 2024-08-06 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12261777B2 (en) | 2023-08-16 | 2025-03-25 | VMware LLC | Forwarding packets in multi-regional large scale deployments with distributed gateways |
US12355655B2 (en) | 2023-08-16 | 2025-07-08 | VMware LLC | Forwarding packets in multi-regional large scale deployments with distributed gateways |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5463696A (en) * | 1992-05-27 | 1995-10-31 | Apple Computer, Inc. | Recognition system and method for user inputs to a computer system |
US5859980A (en) * | 1996-02-08 | 1999-01-12 | Advanced Micro Devices, Inc. | Network interface having adaptive transmit start point for each packet to avoid transmit underflow |
US6549617B1 (en) * | 2000-01-19 | 2003-04-15 | International Controllers, Inc. | Telephone switch with delayed mail control system |
US6760309B1 (en) * | 2000-03-28 | 2004-07-06 | 3Com Corporation | Method of dynamic prioritization of time sensitive packets over a packet based network |
US7400578B2 (en) * | 2004-12-16 | 2008-07-15 | International Business Machines Corporation | Method and system for throttling network transmissions using per-receiver bandwidth control at the application layer of the transmitting server |
US20080279189A1 (en) * | 2007-05-07 | 2008-11-13 | 3Com Corporation | Method and System For Controlled Delay of Packet Processing With Multiple Loop Paths |
US20100067604A1 (en) * | 2008-09-17 | 2010-03-18 | Texas Instruments Incorporated | Network multiple antenna transmission employing an x2 interface |
US20120087240A1 (en) * | 2005-12-16 | 2012-04-12 | Nortel Networks Limited | Method and architecture for a scalable application and security switch using multi-level load balancing |
US20120143854A1 (en) * | 2007-11-01 | 2012-06-07 | Cavium, Inc. | Graph caching |
US20120144142A1 (en) * | 2007-12-27 | 2012-06-07 | Igt | Serial advanced technology attachment write protection: mass storage data protection device |
-
2008
- 2008-10-10 US US12/249,244 patent/US9270595B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5463696A (en) * | 1992-05-27 | 1995-10-31 | Apple Computer, Inc. | Recognition system and method for user inputs to a computer system |
US5859980A (en) * | 1996-02-08 | 1999-01-12 | Advanced Micro Devices, Inc. | Network interface having adaptive transmit start point for each packet to avoid transmit underflow |
US6549617B1 (en) * | 2000-01-19 | 2003-04-15 | International Controllers, Inc. | Telephone switch with delayed mail control system |
US6760309B1 (en) * | 2000-03-28 | 2004-07-06 | 3Com Corporation | Method of dynamic prioritization of time sensitive packets over a packet based network |
US7400578B2 (en) * | 2004-12-16 | 2008-07-15 | International Business Machines Corporation | Method and system for throttling network transmissions using per-receiver bandwidth control at the application layer of the transmitting server |
US20120087240A1 (en) * | 2005-12-16 | 2012-04-12 | Nortel Networks Limited | Method and architecture for a scalable application and security switch using multi-level load balancing |
US20080279189A1 (en) * | 2007-05-07 | 2008-11-13 | 3Com Corporation | Method and System For Controlled Delay of Packet Processing With Multiple Loop Paths |
US20120143854A1 (en) * | 2007-11-01 | 2012-06-07 | Cavium, Inc. | Graph caching |
US20120144142A1 (en) * | 2007-12-27 | 2012-06-07 | Igt | Serial advanced technology attachment write protection: mass storage data protection device |
US20100067604A1 (en) * | 2008-09-17 | 2010-03-18 | Texas Instruments Incorporated | Network multiple antenna transmission employing an x2 interface |
Non-Patent Citations (1)
Title |
---|
U.S. Appl. No. 11/745,307, filed May 7, 2007, Smith, et al. |
Also Published As
Publication number | Publication date |
---|---|
US20100091782A1 (en) | 2010-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9270595B2 (en) | Method and system for controlling a delay of packet processing using loop paths | |
US12278763B2 (en) | Fabric control protocol with congestion control for data center networks | |
US12212495B2 (en) | Reliable fabric control protocol extensions for data center networks with unsolicited packet spraying over multiple alternate data paths | |
EP4030729B1 (en) | Router with bilateral tcp session monitoring | |
US7711844B2 (en) | TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks | |
CA2480461C (en) | Methods and apparatus for fibre channel frame delivery | |
US12341687B2 (en) | Reliable fabric control protocol extensions for data center networks with failure resilience | |
US7873065B1 (en) | Selectively enabling network packet concatenation based on metrics | |
US6845105B1 (en) | Method and apparatus for maintaining sequence numbering in header compressed packets | |
US7664112B2 (en) | Packet processing apparatus and method | |
US7408879B2 (en) | Router, terminal apparatus, communication system and routing method | |
US20050050358A1 (en) | Method and apparatus for defending against SYN packet bandwidth attacks on TCP servers | |
US20070230507A1 (en) | Bundled Internet Protocol Packets | |
WO2018144234A1 (en) | Data bandwidth overhead reduction in a protocol based communication over a wide area network (wan) | |
US7965708B2 (en) | Method and apparatus for using meta-packets in a packet processing system | |
US20140198658A1 (en) | Data communication apparatus, data transmission method, and computer system | |
CN110505147A (en) | Packet fragment forwarding without reassembly | |
US20060198300A1 (en) | Multi-channel TCP connections with congestion feedback for video/audio data transmission | |
US20080279189A1 (en) | Method and System For Controlled Delay of Packet Processing With Multiple Loop Paths | |
US20070291782A1 (en) | Acknowledgement filtering | |
JP5621576B2 (en) | Packet relay device | |
US20100306407A1 (en) | Method and system for managing transmission of fragmented data packets | |
JP5178573B2 (en) | Communication system and communication method | |
USH2103H1 (en) | Packet scheduling based on message length | |
US8289860B2 (en) | Application monitor apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: 3COM CORPORATION,MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HISCOCK, JAMES S.;REEL/FRAME:021671/0741 Effective date: 20081003 Owner name: 3COM CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HISCOCK, JAMES S.;REEL/FRAME:021671/0741 Effective date: 20081003 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA Free format text: MERGER;ASSIGNOR:3COM CORPORATION;REEL/FRAME:024630/0820 Effective date: 20100428 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SEE ATTACHED;ASSIGNOR:3COM CORPORATION;REEL/FRAME:025039/0844 Effective date: 20100428 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:027329/0001 Effective date: 20030131 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:028911/0846 Effective date: 20111010 |
|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001 Effective date: 20151027 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: VALTRUS INNOVATIONS LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP;HEWLETT PACKARD ENTERPRISE COMPANY;REEL/FRAME:055360/0424 Effective date: 20210121 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |