IP Library Granted Patent US 9,258,228
Granted Patent B2
US 9,258,228 · App. 14/531,260 · Granted Feb 9, 2016

Filtering and route lookup in a switching device

Inventors: Dennis C. Ferguson (Palo Alto, CA); Rajiv Patel (Los Altos, CA); Gerald Cheung (Palo Alto, CA); Pradeep Sindhu (Los Altos Hills, CA)
Assignee: Juniper Networks, Inc.
H04L45/745H04L45/00H04L45/60H04L45/7457H04L47/10H04L47/11H04L47/125H04L47/20H04L63/0227H04L69/22H04L49/205H04L49/3009H04L49/3036H04L49/3072H04L63/1458
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 9,258,228
App. No.
14/531,260
Granted
Feb 9, 2016
Kind
B2
Abstract

Methods and devices for processing packets are provided. The processing device may Include an input interface for receiving data units containing header information of respective packets; a first module configurable to perform packet filtering based on the received data units; a second module configurable to perform traffic analysis based on the received data units; a third module configurable to perform load balancing based on the received data units; and a fourth module configurable to perform route lookups based on the received data units.

Claims (60)

1. A method comprising:

determining, by a device, a data transfer rate per unit time interval associated with a flow of data;

determining, by the device, a first time,

the first time being associated with receiving a first data unit included in the flow of data;

determining, by the device and based on the data transfer rate per unit time interval, a quantity of data associated with the flow of data between the first time and a second time,

the second time being associated with receiving a second data unit included in the flow of data; and

policing, by the device, the second data unit based on the quantity of data associated with the flow of data between the first time and the second time.

2. The method of claim 1 , where the second data unit is a next data unit, of the flow of data, received after the first data unit.

3. The method of claim 1 , further comprising:

determining, based on policing the second data unit, a policing decision,

the policing decision being based on the first data unit and the second data unit each triggering access to a particular counter.

4. The method of claim 3 , where, when determining the policing decision, the method includes:

reading a plurality of types of information in a single burst read operation.

5. The method of claim 3 , further comprising:

updating, based on arrival time information associated with the second data unit, the particular counter.

6. The method of claim 5 , where, when updating the particular counter, the method includes:

updating the particular counter in a single burst write operation.

7. The method of claim 1 , where, when determining the data transfer rate per unit time interval, the method includes:

determining the data transfer rate per unit time interval based on using adjustment time information and data bit count information for a plurality of flows of data,

the plurality of flows of data including the flow of data.

8. A device comprising:

a memory to store instructions; and

a processor, connected to the memory, to execute the instructions to:

determine a data transfer rate per unit time interval associated with a flow of data;

identify a first time,

the first time being associated with receiving a first data unit included in the flow of data;

identify, and based on the data transfer rate per unit time interval, a quantity of data associated with the flow of data between the first time and a second time,

the second time being associated with receiving a second data unit included in the flow of data; and

police the second data unit based on the quantity of data associated with the flow of data between the first time and the second time.

9. The device of claim 8 , where the second data unit is a next data unit, of the flow of data, received after the first data unit.

10. The device of claim 8 , where the processor is further to:

determine, based on policing the second data unit, a policing decision,

the policing decision being based on the first data unit and the second data unit each triggering access to a particular counter.

11. The device of claim 10 , where the processor, when determining the policing decision, is to:

read a plurality of types of information in a single burst read operation.

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

update, based on arrival time information associated with the second data unit, the particular counter.

13. The device of claim 12 , where the processor, when updating the particular counter, is to:

update the particular counter in a single burst write operation.

14. The device of claim 8 , where the processor, when determining the data transfer rate per unit time interval, is to:

determine the data transfer rate per unit time interval based on using adjustment time information and data bit count information for a plurality of flows of data,

the plurality of flows of data including the flow of data.

15. A non-transitory computer-readable medium storing instructions, the instructions comprising:

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

determine a data transfer rate per unit time interval associated with a flow of data;

identify a first time,

the first time being associated with receiving a first data unit included in the flow of data;

identify, and based on the data transfer rate per unit time interval, a quantity of data associated with the flow of data between the first time and a second time,

the second time being associated with receiving a second data unit included in the flow of data; and

police the second data unit based on the quantity of data associated with the flow of data between the first time and the second time.

16. The non-transitory computer-readable medium of claim 15 , where the second data unit is a next data unit, of the flow of data, received after the first data unit.

17. The non-transitory computer-readable medium of claim 15 , where the instructions further include:

one or more instructions to determine, based on policing the second data unit, a policing decision,

the policing decision being based on the first data unit and the second data unit each triggering access to a particular counter.

18. The non-transitory computer-readable medium of claim 17 , where the one or more instructions to determine the policing decision include:

one or more instructions to read a plurality of types of information in a single burst read operation.

19. The non-transitory computer-readable medium of claim 17 , where the instructions further include:

one or more instructions to update, based on arrival time information associated with the second data unit, the particular counter.

20. The non-transitory computer-readable medium of claim 15 , where the one or more instructions to determine the data transfer rate per unit time interval include:

one or more instructions to determine the data transfer rate per unit time interval based on using adjustment time information and data bit count information for a plurality of flows of data, the plurality of flows of data including the flow of data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2014
From: FERGUSON, DENNIS C.; PATEL, RAJIV; CHEUNG, GERALD; SINDHU, PRADEEP
To: JUNIPER NETWORKS, INC.
Reel/Frame 034092/0539 →
Continuity (12)
Continuation 13955383 · Jul 31, 2013
Continuation 13539164 · Jun 29, 2012
Continuation 13163477 · Jun 17, 2011
Continuation 12697101 · Jan 29, 2010
Continuation 11614583 · Dec 21, 2006
Continuation 10017719 · Dec 14, 2001
Continuation In Part 09550413 · Apr 17, 2000
Provisional Application 60258882 · Jan 2, 2001
Provisional Application 60258886 · Jan 2, 2001
Provisional Application 60258887 · Jan 2, 2001
Provisional Application 60258888 · Jan 2, 2001
Related Publication 20150156112A1 · Jun 4, 2015