Claims
- 1. A system for packet forwarding, comprising:
an operating system kernel which implements a plurality of network protocol suites and has a plurality of priority levels; a plurality of packet forwarding paths, wherein the packet forwarding paths are implemented in different kernel priority levels; and a packet classifier for dynamically selecting among the plurality of forwarding paths.
- 2. The system of claim 1, further comprising a decision table to cache the results of the packet classifier.
- 3. The system of claim 2, wherein the decision table comprises a series of entries in the routing table.
- 4. The system of claim 3, wherein the entries are flow next hops.
- 5. The system of claim 3, wherein the decision table entries include a network connection context.
- 6. The system of claim 5, wherein the network context is associated with a TCP connection.
- 7. The system of claim 5, wherein the network context is associated with a UDP transaction.
- 8. The system of claim 7, wherein the packet classifier is implemented by a user-level process.
- 9. The system of claim 7, wherein the packet classifier is implemented by a loadable kernel module.
- 10. The system of claim 7, wherein the packet classifier is implemented by a device driver.
- 11. The system of claim 9, wherein the loadable kernel module may be implemented at a different priority level from the forwarding path.
- 12. The system of claim 9, wherein the loadable kernel module is cryptographically signed to authenticate its origin.
- 13. The system of claim 1, wherein the forwarding path further comprises a module that provides additional functionality beyond packet forwarding.
- 14. The system of claim 13, wherein the additional functionality module comprises a network address translator.
- 15. The system of claim 13, wherein the additional functionality module comprises a packet filter.
- 16. The system of claim 13, wherein the additional functionality module comprises a dynamic stateful packet filter.
- 17. The system of claim 13, wherein the additional functionality module comprises an IPSec tunnel implementation.
- 18. A system for packet forwarding, comprising:
means for receiving network packets; means for receiving state information from a plurality of external agents; means for selecting a forwarding path from a plurality of forwarding paths based on the state information; and means for transmitting packets.
- 19. The system of claim 18, wherein the external agents comprise a plurality of user-level processes.
- 20. The system of claim 18, wherein the external agents are implemented as a plurality of kernel tasks.
- 21. The system of claim 20, wherein the kernel tasks are implemented as a loadable kernel module.
- 22. The system of claim 20, wherein the kernel tasks are implemented as a device driver.
- 23. A method for packet forwarding, comprising:
receiving a network packet; receiving state information from external agents; selecting a forwarding path from forwarding paths based on the state information; and transmitting packets.
- 24. The method of claim 23, further comprising caching the selected forwarding path with a flow entry.
- 25. The method of claim 24, further comprising synchronizing flow entries between members of a packet forwarding cluster.
- 26. The method of claim 25, wherein the external agents comprise user-level processes.
- 27. The method of claim 23, wherein the external agents are implemented as kernel tasks.
- 28. The method of claim 27, wherein the kernel tasks are implemented as a loadable kernel module.
- 29. The method of claim 27, wherein the kernel tasks are implemented as a device driver.
- 30. An extensible forwarding path, comprising:
means for receiving packets from a first network interface; means for determining an output interface for a given packet; a plurality of extension modules to further process packets; and means for transmitting packets out a second network interface.
- 31. The forwarding path of claim 30, wherein the first network interface and the second network interface are the same.
RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/322,555 filed Sep. 14, 2001, the benefit of the earlier filing date of which is hereby claimed under 35 U.S.C. §119 (e).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60322555 |
Sep 2001 |
US |