IP Library Granted Patent US 8,111,707
Granted Patent B2
US 8,111,707 · App. 11/961,895 · Granted Feb 7, 2012

Compression mechanisms for control plane—data plane processing architectures

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,111,707
App. No.
11/961,895
Granted
Feb 7, 2012
Kind
B2
Abstract

Methods, apparatuses, and systems directed to efficient compression processing in system architectures including a control plane and a data plane. Particular implementations feature integration of compression operations and mode selection with a beltway mechanism that takes advantage of atomic locking mechanisms supported by certain classes of hardware processors to handle the tasks that require atomic access to data structures while also reducing the overhead associated with these atomic locking mechanisms.

Claims (67)

1. An apparatus comprising

N processors, where N is greater than 1;

a work order module operative to provide work queue entries to the N processors, wherein the work queue entries correspond to respective tasks, and to provide, to a given processor of the N processors, exclusive access to one or more shared data structures for work queue entries including atomic tags;

a compression unit operatively coupled to a command buffer space, wherein the compression unit is operative to compress or decompress packets responsive to commands stored in the command buffer space;

a memory operative to store a beltway data structure comprising N circular buffers for corresponding ones of the N processors, wherein the N circular buffers each comprise a plurality of entries;

the memory further operative to store processor-readable instructions for a beltway producer function, a compression module, and a beltway consumer process;

wherein the beltway producer function includes instructions operative to cause the N processors, when executing the beltway producer function, to

add entries to corresponding ones of the circular buffers of the beltway data structure;

submit work queue entries to the work order module including an atomic tag associated with the beltway data structure, the atomic tag identifying one or more work entries; and

wherein the compression module includes instructions operative to cause the N processors, when executing the compression module, to

responsive to an indication of a packet to be compressed, call the beltway producer function to add a command identifying the packet to an entry of a select circular buffer of the beltway data structure;

wherein the beltway consumer process includes instructions operative to cause a processor of the N processors, responsive to a work queue entry identifying the beltway consumer process and an atomic tag corresponding to the beltway data structure, to:

read entries from the circular buffers of the beltway data structure; and

write commands stored in the entries to the command buffer space coupled to the compression unit.

2. The apparatus of claim 1 wherein the compression module further includes instructions operative to cause the N processors, when executing the compression module, to

conditionally call the beltway producer function based on the size of the packet.

3. The apparatus of claim 1 wherein the compression module further includes instructions operative to cause the N processors, when executing the compression module, to

conditionally call the beltway producer function based on an assessment of load associated with the compression unit or resources consumed by the compression unit.

4. The apparatus of claim 1 wherein the compression module further includes instructions operative to cause the N processors, when executing the compression module, to

conditionally call the beltway producer function based on utilization of command buffer space coupled to the compression unit.

5. The apparatus of claim 1 wherein the beltway consumer process includes instructions operative to cause a processor of the N processors, when executing the beltway consumer process, to set one or more parameters in the commands written to the command buffer space.

6. The apparatus of claim 1 wherein the beltway consumer process includes instructions operative to cause a processor of the N processors, when executing the beltway consumer process, to set one or more parameters in the commands written to the command buffer space based on utilization of the command buffer space.

7. The apparatus of claim 1 wherein the beltway consumer process includes instructions operative to cause a processor of the N processors, when executing the beltway consumer process, to set one or more parameters in the commands written to the command buffer space based on one or more attributes of the packet to be compressed.

8. The apparatus of claim 1 wherein the work order module is operative to

maintain a queue of work entries, one or more of the work entries including an atomic tag; and

schedule work entries in the queue for the N processors such that only a single processor of the N processors is provided a work entry labeled with a given atomic tag.

9. The apparatus of claim 1 wherein submitting work queue entries to the work order module is conditioned on whether a previous work queue entry for a consumer process for the identified instance of the beltway data structure is currently maintained by the work order module.

10. The apparatus of claim wherein the beltway consumer process further comprises instructions operative to cause a processor of the N processors to arbitrate among the circular buffers in a round robin arbitration scheme.

11. The apparatus of claim 10 wherein the beltway consumer process further comprises instructions operative to cause a processor of the N processors to read up to a limited number of entries in a given circular buffer before proceeding to a next circular buffer during the round robin arbitration scheme.

12. The apparatus of claim 1 wherein entries of the beltway data structure are associated with time stamps each corresponding to a time when a given entry is added, and wherein the beltway consumer process further comprises instructions operative to cause a processor of the N processors to select entries across the circular buffers of the beltway data structure based on the time stamps.

13. An apparatus comprising

a control plane; and

a network processing unit comprising a compression unit operatively coupled to a command buffer space, wherein the compression unit is operative to compress or decompress packets responsive to commands stored in the command buffer space;

a command buffer space allocated to the compression unit;

wherein the network processing unit is operative to:

apply one or more policies to received packets of respective data flows according to a data plane configuration;

selectively sample the received packets of the respective data flows to the control plane; and

conditionally pass packets for compression to the compression unit if available command buffer space allocated to the compression unit is above a first threshold;

wherein the control plane is operative to

process packets sampled by the network processing unit; and

transmit control messages corresponding to the respective data flows to the network processing unit to change the data plane configuration, wherein the control messages include a compression policy;

and wherein the compression unit is operative to compress one or more of the received packets of the respective data flows in accordance with compression policies of the control messages.

14. The apparatus of claim 13 wherein the compression policy in the control messages indicate whether the packets of the flow should be compressed, and wherein the network processing unit is operative to selectively pass packets to the compression unit based on observed loading conditions.

15. The apparatus of claim 13 wherein the compression policy in the control messages are expressed as a 1-bit parameter value.

16. The apparatus of claim 13 wherein the network processing unit is operative to conditionally pass packets to the compression unit based on a compression policy associated with the respective flows corresponding to the packets, and further based on assessment of load associated with the compression unit or resources consumed by the compression unit.

17. The apparatus of claim 13 wherein the network processing unit is operative to conditionally pass packets to the compression unit based on a compression policy associated with the respective flows corresponding to the packets, and further based on utilization of command buffer space allocated to the compression unit.

18. The apparatus of claim 13 wherein the network processing unit comprises a command buffer space allocated to the compression unit; and wherein the network processing unit is operative to conditionally pass packets for compression to the compression unit if available command buffer space allocated to the compression unit is above a first threshold.

19. The apparatus of claim 13 wherein compression unit supports a plurality of compression modes; and wherein the network processing unit is operative to select, responsive to a packet, a compression mode based on the available command buffer space allocated to the compression unit.

20. The apparatus of claim 19 wherein the network processing unit is operative to select a fast compression mode of the plurality of compression modes if the available command buffer space allocated to the compression unit is less than a second threshold.

21. The apparatus of claim 19 wherein the network processing unit is operative to select the compression mode further based on previously observed compression performance associated with previous packets of a given data flow.

22. The apparatus of claim 13 wherein the control plane is operative to set a compression probability value in the control messages based on link utilization along the path for the specific flow, and wherein the network processing unit is operative to

responsive to receipt of a packet corresponding to a respective data flow, compute a random value;

conditionally pass the packet to the compression unit based on a comparison of the random value to the compression probability value associated with the respective data flow.

23. The apparatus of claim 22 wherein the compression probability value is based on observed link utilization along a path for the respective data flow.

24. The apparatus of claim 13 wherein the control plane is operative to set a compression probability value in the control messages based on link utilization along the path for the specific flow, and wherein the network processing unit is operative to

responsive to receipt of a packet corresponding to a respective data flow, if the available command buffer space allocated to the compression unit is less than a second threshold, then compute a random value; and conditionally pass the packet to the compression unit based on a comparison of the random value to the compression probability value associated with the respective data flow.

25. An apparatus comprising

a data plane module coupled to a compression unit operatively coupled to a command buffer space, the data plane comprising a command buffer space allocated to the compression unit;

wherein the compression unit is operative to compress or decompress packets responsive to commands stored in the command buffer space; and

wherein the data plane module is operative to: conditionally pass packets to the compression unit based on a compression policy associated with data flows corresponding to the packets, and further based on assessment of load associated with the compression unit or resources consumed by the compression unit, wherein the compression policy is selected based on the data flow,

data plane module comprises a command buffer space allocated to the compression unit; and wherein the data plane module is operative to conditionally pass packets for compression to the compression unit if available command buffer space allocated to the compression unit is above a first threshold.

26. The apparatus of claim 25 wherein the data plane module is operative to conditionally pass packets to the compression unit based on a compression policy associated with the respective flows corresponding to the packets, and further based on utilization of command buffer space allocated to the compression unit.

27. The apparatus of claim 26 wherein compression unit supports a plurality of compression modes; and wherein the data plane module is operative to select, responsive to a packet, a compression mode based on the available command buffer space allocated to the compression unit.

28. The apparatus of claim 27 wherein the data plane module is operative to select a fast compression mode of the plurality of compression modes if the available command buffer space allocated to the compression unit is less than a second threshold.

29. The apparatus of claim 27 wherein the data plane module is operative to select the compression mode further based on previously observed compression performance associated with previous packets of a given data flow.

30. The apparatus of claim 25 wherein a compression probability value is set for data flows based on link utilization along the path for the specific flow, and wherein the data plan module is operative to

responsive to receipt of a packet corresponding to a respective data flow, if the available command buffer space allocated to the compression unit is less than a second threshold, then compute a random value; and conditionally pass the packet to the compression unit based on a comparison of the random value to the compression probability value associated with the respective data flow.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2016
From: BLUE COAT SYSTEMS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 039851/0044 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 039516/0929 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 30740/0181 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035797/0280 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 27727/0144 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035798/0006 →
SECURITY INTEREST Recorded May 22, 2015
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS THE COLLATERAL AGENT
Reel/Frame 035751/0348 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 3, 2013
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 030740/0181 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 027727/0178 Recorded Oct 16, 2012
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 029140/0170 →