IP Library Granted Patent US 7,853,679
Granted Patent B2
US 7,853,679 · App. 11/685,175 · Granted Dec 14, 2010

Systems and methods for configuring handling of undefined policy events

Assignee: Citrix Systems, Inc.
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 7,853,679
App. No.
11/685,175
Granted
Dec 14, 2010
Kind
B2
Abstract

Systems and methods for configuring and evaluating policies that direct processing of one or more data streams are described. A configuration interface is described for allowing users to specify object oriented policies. These object oriented policies may allow any data structures to be applied with respect to a payload of a received packet stream, including any portions of HTTP traffic. A configuration interface may also allow the user to control the order in which policies and policy groups are executed, in addition to specifying actions to be taken if one or more policies are undefined. Systems and methods for processing the policies may allow efficient processing of object-oriented policies by applying potentially complex data structures to unstructured data streams. A device may also interpret and process a number of flow control commands and policy group invocation statements to determine an order of execution among a number of policies and policy groups. These policy configurations and processing may allow configuration and processing of complex network behaviors relating to load balancing, VPNs, SSL offloading, content switching, application security, acceleration, and caching.

Claims (46)

1. A method of configuring a policy used by a network device by specifying an action to be taken in the event an element of the policy is undefined, the method comprising:

(a) providing a configuration interface for configuring a policy of a network device;

(b) identifying, by the configuration interface, a policy comprising a first action to be taken based on an evaluation of an expression;

(c) receiving, via the configuration interface, information identifying a second action for the policy, the second action to be taken if an element of the policy is undefined.

2. The method of claim 1 , wherein step (a) comprises providing a command-line configuration interface for configuring a policy of a network device.

3. The method of claim 1 , wherein step (a) comprises providing a configuration interface comprising one or more of a drag-and-drop interface, a list-selection interface, or a syntax-highlighting interface.

4. The method of claim 1 , wherein step (a) comprises executing the configuration interface on a device in communication with the network device.

5. The method of claim 1 , wherein step (a) comprises executing the configuration interface on a device in communication with the network device.

6. The method of claim 1 , wherein step (b) comprises configuring, by the user via the configuration interface, an object-oriented expression for the policy.

7. The method of claim 1 , wherein step (b) comprises receiving, from the user via the configuration interface, an expression for the policy, the expression having an object class and a member of the object class.

8. The method of claim 1 , wherein the second action comprises no action.

9. The method of claim 1 , wherein the second action comprises blocking transmission of a portion of a packet stream from the network device.

10. The method of claim 1 , wherein at least one of the first action or the second action specifies a function performing one of: load balancing, content switching, application security, application delivery, network acceleration, or application acceleration.

11. The method of claim 1 , wherein at least one of the first action and the second action specifies rewriting a portion of the payload of the packet stream.

12. The method of claim 1 , wherein at least one of the first action and the second action specifies rewriting a URL contained in an HTTP response.

13. The method of claim 1 , wherein at least one of the first action and the second action comprises an object-oriented expression.

14. The method of claim 1 , wherein step (c) comprises receiving, via the configuration interface, information identifying a second action for the policy, the second action to be taken if an expression of the policy is undefined.

15. The method of claim 1 , wherein step (c) comprises receiving, via the configuration interface, information identifying a second action for the policy, the second action to be taken if a rule of the policy is undefined.

16. The method of claim 1 , wherein step (c) comprises receiving, via the configuration interface, information identifying a second action for the policy, the second action to be taken if the first action of the policy is undefined.

17. In an appliance, a method of applying a policy specifying an action to be taken in the event an element of the policy is undefined, the method comprising:

(a) identifying, by an appliance, a policy to evaluate with respect to a payload of a received packet stream, the policy specifying (i) an expression, (ii) a first action to be taken based on an evaluation of the expression and (iii) a second action to be taken if an element of the policy is undefined;

(b) determining, by the appliance, an element of the policy is undefined with respect to the payload; and

(c) taking, by the appliance in response to the determination, the second action.

18. The method of claim 17 , wherein step (b) comprises evaluating an object-oriented expression.

19. The method of claim 17 , wherein step (b) comprises evaluating an expression having an object class and a member of the object class.

20. The method of claim 17 , wherein step (b) comprises determining, by the appliance, the expression is undefined with respect to the packet stream.

21. The method of claim 17 , wherein step (b) comprises determining, by the appliance, a rule of the policy is undefined.

22. The method of claim 17 , wherein step (b) comprises determining, by the appliance, the first action of the policy is undefined.

23. The method of claim 17 , wherein step (c) comprises taking no action.

24. The method of claim 17 , wherein step (c) comprises blocking transmission of the packet stream from the appliance.

25. The method of claim 17 , wherein step (c) comprises performing one of: load balancing, content switching, application security, application delivery, network acceleration, or application acceleration.

26. The method of claim 17 , wherein step (c) comprises rewriting a portion of the payload of the packet stream.

27. The method of claim 17 , wherein step (c) comprises rewriting a URL contained in an HTTP response.

28. An appliance which enables users to specify an action to be taken in the event an expression contained in a policy cannot be evaluated by the appliance, the appliance comprising:

a packet processor which receives a packet stream; and

a policy engine which identifies a policy to evaluate with respect to the payload of the received packet stream, the policy specifying (i) an expression, (ii) a first action to be taken based on an evaluation of the expression and (iii) a second action to be taken if the expression is not successfully evaluated; determines the expression cannot be successfully evaluated with respect to the packet stream; and takes the second action.

29. The system of claim 28 , wherein the policy engine evaluates an object-oriented expression.

30. The system of claim 28 , wherein the policy engine evaluates an expression having an object class and a member of the object class.

31. The system of claim 28 , wherein the second action comprises no action.

32. The system of claim 28 , wherein the second action comprises blocking a portion of a packet stream.

33. The system of claim 28 , wherein at least one of the first action and second action specifies a function directed to at least one of: load balancing, content switching, application security, application delivery, network acceleration, and application acceleration.

34. The system of claim 28 , wherein at least one of the first action or the second action specifies rewriting a portion of the payload of the packet stream.

35. The system of claim 28 , wherein at least one of the first action or the second action specifies rewriting a URL contained in an HTTP response.

36. The system of claim 28 , wherein the policy engine determines the expression is undefined with respect to the packet stream.

37. The system of claim 28 , wherein the policy engine determines a rule of the policy is undefined with respect to the packet stream.

38. The system of claim 28 , wherein the policy engine determines the first action is undefined with respect to the packet stream.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2007
From: KHEMANI, PRAKASH; BANDEKAR, VISHAL
To: CITRIX SYSTEMS, INC.
Reel/Frame 019601/0427 →
Continuity (1)
Related Publication 20080225753A1 · Sep 18, 2008