IP Library › Granted Patent US 8,954,535
Granted Patent B2
US 8,954,535 · App. 13/740,781 · Granted Feb 10, 2015

Dynamic network device processing using external components

Inventors: Bruno Rijsman (Arlington, MA); Usha Sharma (Fremont, CA); Prabhakaran Ganesan (Fremont, CA); Sankar Ramamoorthi (San Jose, CA)
Assignee: Juniper Networks, Inc.
H04L67/02H04L47/2408
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,954,535
App. No.
13/740,781
Granted
Feb 10, 2015
Kind
B2
Abstract

A network device may receive information regarding a service set identifying service to apply to a data flow received via a particular interface of the network device; receive the data flow via the particular interface; identify a service to provide to the data flow based on the information regarding the service set; identify a processing device to process the data flow; and provide the data flow to the processing device. The processing device may be different than the network device and may process the data flow, on behalf of the network device, to form a processed data flow. The processed data flow may include the data flow with the service applied to the data flow. The network device may further receive the processed data flow from the processing device and transmit the processed data flow toward a destination device.

Claims (79)

1. A method comprising:

receiving, by a network device, information regarding a service set,

the service set identifying a service to apply to a data flow received via a particular interface of the network device;

receiving, by the network device, the data flow via the particular interface;

identifying, by the network device, a service to apply to the data flow based on the information regarding the service set;

identifying, by the network device, a processing device to process the data flow,

the processing device being different than the network device;

providing, by the network device, the data flow to the processing device,

the processing device processing the data flow, on behalf of the network device, to form a processed data flow,

the processed data flow including the data flow with the service applied to the data flow;

receiving, by the network device, the processed data flow from the processing device; and

transmitting, by the network device, the processed data flow toward a destination device.

2. The method of claim 1 , where the service set includes a service set identifier, the method further comprising:

adding, to the data flow, metadata including the service set identifier,

where the processing device identifies the service to apply to the data flow based on the service set identifier included in the metadata.

3. The method of claim 1 , where the processing device is a virtual machine implemented by a server.

4. The method of claim 1 , where the processing device is a virtual machine, the method further comprising:

identifying the virtual machine and establishing a tunnel with the virtual machine,

where providing the data flow to the processing device includes transmitting the data flow, via the tunnel, to the virtual machine.

5. The method of claim 1 , further comprising:

generating a virtual machine and establishing a tunnel with the virtual machine,

where the processing device is the virtual machine,

where providing the data flow to the processing device includes transmitting the data flow via the tunnel to the virtual machine.

6. The method of claim 1 , where the service is a firewall service, a network address translation (NAT) service, a wide area network (WAN) optimization service, a hyper text transfer protocol (HTTP) header writing service, a compression service, or a load balancing service.

7. The method of claim 1 , where the processing device is a virtual machine of a plurality of virtual machines,

the plurality of virtual machines being linked together to function as a single virtual machine.

8. The method of claim 1 , where identifying the processing device is based on information in the service set identifying the processing device.

9. The method of claim 1 , further comprising:

identifying the processing device using an auto-selection function to select the processing device from a plurality of processing devices capable of providing the service.

10. A system comprising:

a network device to:

receive information regarding a service set,

the service set including an identifier to identify a service to apply to a data flow received via a particular interface of the network device;

receive the data flow via the particular interface;

identify a service to provide to the data flow based on the information regarding the service set;

add metadata to the data flow,

the metadata including the identifier;

identify a processing device to process the data flow,

the processing device being different than the network device;

provide the data flow to the processing device,

the processing device identifying the service based on the identifier included in the metadata and processing the data flow, on behalf of the network device, to form a processed data flow,

the processed data flow including the data flow with the service applied to the data flow;

receive the processed data flow from the processing device; and

transmit the processed data flow toward a destination device.

11. The system of claim 10 , where the processing device is a virtual machine, the network device is further to:

identify the virtual machine and establish a tunnel with the virtual machine,

where when providing the data flow to the processing device, the network device is further to transmit the data flow, via the tunnel, to the virtual machine.

12. The system of claim 10 , where the network device is further to:

generate a virtual machine and establishing a tunnel with the virtual machine,

where the processing device is the virtual machine,

where when providing the data flow to the processing device, the network device is further to transmit the data flow via the tunnel to the virtual machine.

13. The system of claim 10 , where the service is a firewall service, a network address translation (NAT) service, a wide area network (WAN) optimization service, a hyper text transfer protocol (HTTP) header writing service, a compression service, or a load balancing service.

14. The system of claim 10 , where the network device is further to:

modify a control plane of the network device based on receiving an instruction to modify the control plane when the processing device executes an application to direct the network device to modify the control plane.

15. The system of claim 10 , where the processing device is a virtual machine of a plurality of virtual machines,

the plurality of virtual machines being linked together to function as a single virtual machine.

16. The system of claim 10 , where the network device is further to:

identify the processing device using an auto-selection function to select the processing device from a plurality of processing devices capable of providing the service.

17. A computer-readable medium for storing instructions, the instructions comprising:

a plurality of instructions which, when executed by one or more processors associated with a network device, cause the one or more processors to:

receiving information regarding a service set,

the service set identifying a service to apply to a data flow received via a particular interface of the network device;

receive the data flow via the particular interface;

identify a service to provide to the data flow based on the information regarding the service set;

identify a virtual machine, of a plurality of virtual machines, to process the data flow,

the virtual machine being different than the network device;

provide the data flow to the virtual machine,

the virtual machine identifying the service based on the service set identifier and processing the data flow, on behalf of the network device, to form a processed data flow,

the processed data flow including the data flow with the service applied to the data flow;

receive the processed data flow from the virtual machine; and

transmit the processed data flow toward a destination device.

18. The computer-readable medium of claim 17 , where the service set includes a service set identifier, the plurality of instructions further causes the one or more processors to:

add, to the data flow, including the service set identifier,

where the virtual machine identifies the service based on the service set identifier included in the metadata.

19. The computer-readable medium of claim 17 , where the plurality of instructions further causes the one or more processors to:

establish a tunnel with the virtual machine,

where one or more instructions, of the plurality of instructions, to provide the data flow to the virtual machine, further cause the one or more processors to provide the data flow to the virtual machine via the tunnel.

20. The computer-readable medium of claim 17 , where the plurality of instructions further cause the one or more processors to:

identify the processing device using an auto-selection function to select the virtual machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2013
From: RIJSMAN, BRUNO; SHARMA, USHA; GANESAN, PRABHAKARAN; RAMAMOORTHI, SANKAR
To: JUNIPER NETWORKS, INC.
Reel/Frame 029831/0844 →
Continuity (2)
Provisional Application 61747930 · Dec 31, 2012
Related Publication 20140189050A1 · Jul 3, 2014