IP Library Granted Patent US 12,381,821
Granted Patent B2
US 12,381,821 · App. 18/633,311 · Granted Aug 5, 2025

Automatic policy configuration for packet flows

Inventor: Darrell Ball (Livermore, CA)
Assignee: Juniper Networks, Inc.
H04L45/745H04L45/38
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 12,381,821
App. No.
18/633,311
Granted
Aug 5, 2025
Kind
B2
Abstract

Techniques are disclosed for providing automatic policy configuration for packet flows. For example, a computing device comprises a virtual node and one or more virtual execution elements coupled to the virtual node. The computing device may also comprise one or more processors configured to: receive a packet originating from an application workload hosted on the one or more virtual execution elements and destined for a remote destination device; determine the packet is part of a new packet flow; in response, configure, by a kernel of the computing device and without sending the packet to a user space of the computing device, a policy for a forward packet flow for the new packet flow; configure, by the kernel, a policy for a reverse packet flow associated with the forward packet flow; and send the packet toward the remote destination device in accordance with the policy for the forward packet flow.

Claims (66)

1. A method comprising:

receiving, by a computing device, a packet originating from an application workload and destined for a destination device;

determining, by the computing device, the packet is part of a packet flow;

determining, by the computing device, the application workload is locally hosted on the computing device;

based on determining the packet is part of the packet flow and determining the application workload is locally hosted on the computing device, configuring, by a kernel of the computing device and without sending the packet to a user space of the computing device, a policy for a forward packet flow for the packet flow, wherein the policy for the forward packet flow is configured outside the user space by the kernel; and

sending, by the computing device, the packet toward the destination device in accordance with the policy for the forward packet flow.

2. The method of claim 1 , wherein configuring the policy for the forward packet flow comprises:

configuring, by the computing device and based on a lookup of a destination address of the packet within forwarding information of the computing device, a next hop for the forward packet flow.

3. The method of claim 1 , further comprising based on determining the packet is part of the packet flow, configuring, by the kernel of the computing device, a policy for a reverse packet flow.

4. The method of claim 3 , wherein:

configuring the policy for the reverse packet flow comprises mapping, by the computing device, a zone associated with the application workload with an identifier of a virtual network of the application workload, and

sending the packet toward the destination device in accordance with the policy for the forward packet flow comprises inserting, by the computing device, the identifier of the virtual network of the application workload into the packet prior to sending the packet toward the destination device.

5. The method of claim 4 , wherein the packet originating from the application workload and destined for the destination device comprises a forward packet, the method further comprising:

receiving, by the computing device, a reverse packet originating from the destination device and destined to the application workload, wherein the reverse packet specifies the identifier of the virtual network of the application workload;

determining, by the computing device and from the identifier of the virtual network of the application workload specified by the reverse packet, the zone associated with the application workload;

performing, by the computing device, a lookup of a flow table using the zone to determine the policy for the reverse packet flow; and

sending, by the computing device, the reverse packet to the application workload in accordance with the policy for the reverse packet flow.

6. The method of claim 4 , wherein the identifier of the virtual network comprises at least one of a Virtual Extensible Local Area Network (VXLAN) tag or a Multiprotocol Label Switching (MPLS) label.

7. The method of claim 1 , further comprising:

storing, by the computing device and for the policy for the forward packet flow, a respective hash entry in a flow entry hash map to track a least recently used policy;

determining, by the computing device, the policy for the forward packet flow is the least recently used policy; and

in response to determining the policy for the forward packet flow is the least recently used policy, removing, by the kernel or the user space of the computing device, the least recently used policy.

8. The method of claim 1 , further comprising:

configuring, by the computing device, a maximum number of flows to be created for a virtual interface to the application workload;

receiving, by the computing device, a subsequent packet originating from the application workload and destined for a second destination device;

determining, by the computing device, the maximum number of flows to be created for the virtual interface to the application workload is exceeded; and

sending, by the kernel of the computing device, the subsequent packet to a user space of the computing device to configure a policy for a forward packet flow for the subsequent packet.

9. A computing device, comprising:

a memory that stores instructions; and

processing circuitry coupled to the memory that executes the instructions to:

receive a packet originating from an application workload and destined for a destination device;

determine the packet is part of a packet flow;

determine the application workload is locally hosted on the computing device;

based on determining the packet is part of the packet flow and determining the application workload is locally hosted on the computing device, configure, with a kernel of the computing device and without sending the packet to a user space of the computing device, a policy for a forward packet flow for the packet flow, wherein the policy for the forward packet flow is configured outside the user space with the kernel; and

send the packet toward the destination device in accordance with the policy for the forward packet flow.

10. The computing device of claim 9 , wherein to configure the policy for the forward packet flow the processing circuitry further executes the instructions to configure, based on a lookup of a destination address of the packet within forwarding information of the computing device, a next hop for the forward packet flow.

11. The computing device of claim 9 , wherein the processing circuitry further executes the instructions to configure, with the kernel of the computing device and based on determining the packet is part of the packet flow, a policy for a reverse packet flow.

12. The computing device of claim 11 , wherein:

to configure the policy for the reverse packet flow the processing circuitry further executes the instructions to map a zone associated with the application workload with an identifier of a virtual network of the application workload, and

to send the packet toward the destination device in accordance with the policy for the forward packet flow the processing circuitry further executes the instructions to insert the identifier of the virtual network of the application workload into the packet prior to sending the packet toward the destination device.

13. The computing device of claim 12 , wherein the packet originating from the application workload and destined for the destination device comprises a forward packet and the processing circuitry further executes the instructions to:

receive a reverse packet originating from the destination device and destined to the application workload, wherein the reverse packet specifies the identifier of the virtual network of the application workload;

determine, from the identifier of the virtual network of the application workload specified by the reverse packet, the zone associated with the application workload;

perform a lookup of a flow table using the zone to determine the policy for the reverse packet flow; and

send the reverse packet to the application workload in accordance with the policy for the reverse packet flow.

14. The computing device of claim 12 , wherein the identifier of the virtual network comprises at least one of a Virtual Extensible Local Area Network (VXLAN) tag or a Multiprotocol Label Switching (MPLS) label.

15. The computing device of claim 9 , wherein the processing circuitry further executes the instructions to:

store, for the policy for the forward packet flow, a respective hash entry in a flow entry hash map to track a least recently used policy;

determine the policy for the forward packet flow is the least recently used policy; and

in response to determining the policy for the forward packet flow is the least recently used policy, remove, with the kernel or the user space of the computing device, the least recently used policy.

16. The computing device of claim 9 , wherein the processing circuitry further executes the instructions to:

configure a maximum number of flows to be created for a virtual interface to the application workload;

receive a subsequent packet originating from the application workload and destined for a second destination device;

determine the maximum number of flows to be created for the virtual interface to the application workload is exceeded; and

send, with the kernel of the computing device, the subsequent packet to a user space of the computing device to configure a policy for a forward packet flow for the subsequent packet.

17. Non-transitory computer-readable storage media comprising instructions, that when executed by processing circuitry of a computing device, cause the processing circuitry to:

receive a packet originating from an application workload and destined for a destination device;

determine the packet is part of a packet flow;

determine the application workload is locally hosted on the computing device;

based on determining the packet is part of the packet flow and determining the application workload is locally hosted on the computing device, configure, with a kernel of the computing device and without sending the packet to a user space of the computing device, a policy for a forward packet flow for the packet flow, wherein the policy for the forward packet flow is configured outside the user space with the kernel; and

send the packet toward the destination device in accordance with the policy for the forward packet flow.

18. The non-transitory computer-readable storage media of claim 17 , wherein the instructions, when further executed by processing circuitry of the computing device, cause the processing circuitry to configure, based on a lookup of a destination address of the packet within forwarding information of the computing device, a next hop for the forward packet flow.

19. The non-transitory computer-readable storage media of claim 17 , wherein the instructions, when further executed by processing circuitry of the computing device, cause the processing circuitry to configure, with the kernel of the computing device and based on determining the packet is part of the packet flow, a policy for a reverse packet flow.

20. The non-transitory computer-readable storage media of claim 19 , wherein:

to configure the policy for the reverse packet flow the instructions, when further executed by processing circuitry of the computing device, cause the processing circuitry to map a zone associated with the application workload with an identifier of a virtual network of the application workload, and

to send the packet toward the destination device in accordance with the policy for the forward packet flow the instructions, when further executed by processing circuitry of the computing device, cause the processing circuitry to insert the identifier of the virtual network of the application workload into the packet prior to sending the packet toward the destination device.

Assignments (1)
NUNC PRO TUNC ASSIGNMENT Recorded May 6, 2026
From: JUNIPER NETWORKS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 075513/0034 →
Continuity (2)
Continuation 17450147 · Oct 6, 2021
Related Publication 20240259311A1 · Aug 1, 2024
References Cited (24)
US 9356866B1 · Sivaramakrishnan et al. · 2016 [cited by applicant]
US 9455908B2 · Fernando et al. · 2016 [cited by applicant]
US 9483305B1 · Shmidt · 2016 [cited by examiner]
US 11700190B2 · Yadav et al. · 2023 [cited by applicant]
US 20140181267A1 · Wadkins · 2014 [cited by examiner]
US 20150009831A1 · Graf · 2015 [cited by applicant]
US 20150124828A1 · Cj et al. · 2015 [cited by applicant]
US 20160006654A1 · Fernando et al. · 2016 [cited by applicant]
US 20170093891A1 · Mitchell · 2017 [cited by applicant]
US 20230146525A1 · Ball · 2023 [cited by applicant]
CN 106664251A · 2017 [cited by applicant]
EP 3617879A1 · 2020 [cited by applicant]
WO 2013020126A1 · 2013 [cited by applicant]
WO 2013184846A1 · 2013 [cited by applicant]
WO 2021168727A1 · 2021 [cited by applicant]
Communication pursuant to Article 94(3) EPC from counterpart European Application No. 22200102.6 dated Jul. 30, 2024, 8 pp. [cited by applicant]
Response to Communication pursuant to Article 94(3) EPC dated Feb. 1, 2024, from counterpart European Application No. 22200102.6 filed May 24, 2024, 15 pp. [cited by applicant]
Communication pursuant to Article 94(3) EPC from counterpart European Application No. 22200102.6 dated Feb. 1, 2024, 6 pp. [cited by applicant]
Extended Search Report from counterpart European Application No. 22200102.6 dated Jan. 18, 2023, 8 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 17/450,147, dated Jul. 6, 2023 through Mar. 22, 2024, 54 pp. [cited by applicant]
Response to Extended Search Report dated Jan. 18, 2023, from counterpart European Application No. 22200102.6 filed Oct. 11, 2023, 40 pp. [cited by applicant]
Response to Communication pursuant to Article 94(3) EPC dated Jul. 30, 2024, from counterpart European Application No. 22200102.6 filed Jan. 30, 2025, 14 pp. [cited by applicant]
First Office Action and Search Report, and translation thereof, from counterpart Chinese Application No. 202211229589.3 dated Mar. 20, 2025, 19 pp. [cited by applicant]
Notice of Intent to Grant and Text Intended to Grant from counterpart European Application No. 22200102.6 dated May 21, 2025, 74 pp. [cited by applicant]