Claims
- 1. A method of filtering data packets in a network device, said method comprising:
receiving an incoming packet from a port; inspecting and extracting packet fields of the incoming packet; classifying the incoming packet and generating action instructions based on the extracted packet fields; and modifying the incoming packet based on the action instructions; wherein the step of inspecting and extracting packet fields comprises applying inspection mask windows to any portion of the incoming packet to extract programmable packet fields.
- 2. A method as recited in claim 1, wherein said network device comprises one of a switch and a router and the step of modifying the incoming packet comprises discarding the incoming packet, forwarding incoming packet, modifying the packet or modifying a forwarding control message for the incoming packet.
- 3. A method as recited in claim 1, wherein said network device comprises a network co-processor and the step of classifying the incoming packet comprises classifying the incoming packet based on protocol type and data payload of the incoming packet.
- 4. A method as recited in claim 1, wherein said network device comprises a network interface controller and the step of classifying the incoming packet comprises classifying the incoming packet based on one of a flow identification for packets having a particular source and a particular destination and a flow identification parameter.
- 5. A method as recited in claim 1, wherein said network device comprises one of a cable modem, an asymmetric digital subscriber line modem and a wireless networking processor and the step of modifying the incoming packet comprises processing and forwarding the incoming packet based on criteria set for the network device.
- 6. A method as recited in claim 1, wherein said network device comprises a streaming media processor and the step of classifying the incoming packet comprises authenticating the incoming packet based on criteria set for the network device.
- 7. A data filter for data packets in a network device, said data filter comprising:
receiving means for receiving an incoming packet from a port; inspecting means for inspecting and extracting packet fields of the incoming packet; classifying means for classifying the incoming packet and generating action instructions based on the extracted packet fields; and modifying means for modifying the incoming packet based on the action instructions; wherein the step of inspecting means comprises applying means for applying inspection mask windows to any portion of the incoming packet to extract programmable packet fields.
- 8. A data filter as recited in claim 7, wherein said network device comprises one of a switch and a router and the modifying means for modifying the incoming packet comprises processing means for discarding the incoming packet, forwarding incoming packet, modifying the incoming packet or modifying a forwarding control message for the incoming packet.
- 9. A data filter as recited in claim 7, wherein said network device comprises a network co-processor and the classifying means for classifying the incoming packet comprises classifying means for classifying the incoming packet based on protocol type and data payload of the incoming packet.
- 10. A data filter as recited in claim 7, wherein said network device comprises a network interface controller and the classifying means for classifying the incoming packet comprises classifying means for classifying the incoming packet based on one of a flow identification for packets having a particular source and a particular destination a flow identification parameter.
- 11. A data filter as recited in claim 7, wherein said network device comprises one of a cable modem, an asymmetric digital subscriber line modem and a wireless networking processor and the modifying means for modifying the incoming packet comprises processing means for processing and forwarding the incoming packet based on criteria set for the network device.
- 12. A data filter as recited in claim 7, wherein said network device comprises a streaming media processor and the classifying means for classifying the incoming packet comprises authenticating means for authenticating the incoming packet based on criteria set for the network device.
- 13. A fast flexible filter processor for data packets in a network device, said fast flexible filter processor comprising:
an inspection engine, configured to receive an incoming data packet and extract selected packet fields from the incoming data packet; a classification engine communicating with the inspection engine, configured to receive the extracted selected packet fields and generate action instructions based on the extracted selected packet fields; and a packet processing engine communicating with the classification engine, configured to receive the action instructions and the incoming data packet, modify the incoming packet based on the action instructions and output the modified incoming data packet.
- 14. A fast flexible filter processor as recited in claim 13, wherein said network device comprises one of a switch and a router and the packet processing engine is configured to discard the incoming packet, forward incoming packet, modify the incoming packet or modify a forwarding control message for the incoming packet based on the action instructions.
- 15. A fast flexible filter processor as recited in claim 13, wherein said network device comprises a network co-processor and the classification engine is configured to classify the incoming packet based on protocol type and data payload of the incoming packet.
- 16. A fast flexible filter processor as recited in claim 13, wherein said network device comprises a network interface controller and the classification engine is configured to classify the incoming packet based on one of a flow identification for packets have a particular source and a particular destination and a flow identification parameter.
- 17. A fast flexible filter processor as recited in claim 13, wherein said network device comprises one of a cable modem, asymmetric digital subscriber line modem and a wireless networking processor and the packet processing engine is configured to process and forward the incoming packet based on criteria set for the network device.
- 18. A fast flexible filter processor as recited in claim 13, wherein said network device comprises a streaming media processor and the classification engine is configured to authenticate the incoming packet based on criteria set for the network device.
- 19. A network device for network communications, said network device comprising:
a data port interface, said data port interface supporting at least one data port transmitting and receiving data; a programmable interface, said programmable interface configured to communicate with a CPU or a programming source; a memory, said memory communicating with said data port interface and said second data port interface; a communication channel, said communication channel for communicating data and messaging information between said data port interface, the programmable interface, and said memory; and a fast flexible filtering processor, said fast flexible filtering being configured to receive packets coming into the data port interface, extract packet fields from said packets, determine action instructions from the extracted packet fields and take selective filter action based upon the action instructions.
- 20. A network switch as recited in claim 19, wherein said fast flexible filtering processor is configured to be programmable by inputs from the CPU or the programming source through the programmable interface.
- 21. A network switch as recited in claim 19, wherein said data port interface, programmable interface, memory, communications channel, and said fast flexible filtering processor are implemented on a common semiconductor substrate.
- 22. A network switch as recited in claim 19, wherein the fast flexible filtering processor filters the packets independent of the programmable interface, and therefore without communicating with the CPU or the programming source.
- 23. A method of handling data packets in a network device, said method comprising:
placing data packets into an input queue; performing a lookup to determine whether certain packet fields are stored in a lookup table; filtering the data packets through a fast flexible filtering processor in order to determine what specific actions should be taken to modify the data packets for further handling; and discarding, forwarding, or modifying the data packets based upon the filtering; wherein filtering step further comprises:
extracting a selectable packet field within the data packets; using the extracted selectable packet field to classify the data packets and determine action instructions for the data packets; taking said specific actions to modify the data packets based on said action instructions.
- 24. A method as recited in claim 23, wherein filtering the incoming packet includes filtering the packet independent of control from a remote processor.
- 25. A method as recited in claim 23, wherein said step of taking said specific actions comprises taking programmable, specific actions, where the programmable, specific actions are implemented through programming instructions.
REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a continuation-in-part of U.S. patent application Ser. No. 09/983,157, filed Nov. 23, 2001, which is a continuation of U.S. patent application Ser. No. 09/343,411, filed Jun. 30,1999 now U.S. Pat. No. 6,335,935, which, in turn, claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Applications Serial No. 60/092,220, filed on Jul. 8, 1998, and Serial No. 60/095,972, filed on Aug. 10, 1998. The contents of these applications are hereby incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60092220 |
Jul 1998 |
US |
|
60095972 |
Aug 1998 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09343411 |
Jun 1999 |
US |
Child |
09983157 |
Oct 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09983157 |
Oct 2001 |
US |
Child |
10222787 |
Aug 2002 |
US |