Claims
- 1. A rate policing method for a data communication switch, the method comprising the steps of:
receiving a packet; determining if the packet is in compliance with a first bandwidth contract; and if the packet is not in compliance with the first bandwidth contract: determining if the packet is in compliance with a second bandwidth contract; and admitting the packet if the packet is in compliance with the second bandwidth contract.
- 2. The method of claim 1, wherein the ones of bandwidth contracts are associated with policing data including information on bandwidth constraints, the step of determining if the packet is in compliance with the first or second bandwidth contract further comprising the steps of:
retrieving the policing data associated with the first or second bandwidth contract; and producing a policing result based on the policing data.
- 3. The method of claim 2, wherein the policing result indicates whether the packet is to be admitted.
- 4. The method of claim 2, wherein the policing result indicates whether the packet is to be discarded.
- 5. The method of claim 2 further comprising the step of updating the policing data if the packet is admitted.
- 6. The method of claim 1 further comprising the step of admitting the packet if the packet is in compliance with the first bandwidth contract.
- 7. The method of claim 1 further comprising the step of discarding the packet if the packet is not in compliance with the second bandwidth contract.
- 8. The method of claim 7, wherein the second bandwidth contract is a lowest priority bandwidth contract.
- 9. The method of claim 1, wherein the ones of the bandwidth contracts are applicable to a switch, interface, port, or flow.
- 10. The method of claim 1, wherein a first priority associated with the first bandwidth contract is higher than a second priority associated with the second bandwidth contract.
- 11. The method of claim 1 further comprising the steps of:
classifying the packet; and identifying an application program based on the packet classification.
- 12. A rate policing method for a data communication switch comprising the steps of:
(A) receiving an inbound packet; (B) determining if the inbound packet is in compliance with a current bandwidth contract; (C) if the inbound packet is in compliance with the current bandwidth contract, admitting the packet; (D) if the inbound packet is not in compliance with the current bandwidth contract and the current bandwidth contract is a lowest priority bandwidth contract, discarding the inbound packet; and (E) if the packet is not admitted or discarded, repeating steps (B)-(E).
- 13. The method of claim 12, wherein the ones of bandwidth contracts are associated with policing data including information on bandwidth constraints, the step of determining if the inbound packet is in compliance with the current bandwidth contract further comprising the steps of:
retrieving the policing data associated with the current bandwidth contract; and producing a policing result based on the policing data.
- 14. The method of claim 13, wherein the policing result indicates whether the packet is to be admitted.
- 15. The method of claim 13, wherein the policing result indicates whether the packet is to be discarded.
- 16. The method of claim 13 further comprising updating the policing data if the packet is admitted.
- 17. The method of claim 13, wherein the ones of the bandwidth contracts are applicable to a switch, interface, port, or flow.
- 18. A packet processing system comprising:
an input for receiving an inbound packet; a packet processor coupled to the input, characterized in that the packet processor polices data packets received by the input based on ones of bandwidth contracts, the packet processor determining if the packet is in compliance with a first bandwidth contract, and if the packet is not in compliance with the first bandwidth contract, determining if the packet is in compliance with a second bandwidth contract, and admitting the packet if the packet is in compliance with the second bandwidth contract.
- 19. The system of claim 18, wherein the ones of bandwidth contracts are associated with policing data including information on bandwidth constraints, the packet processor retrieving the policing data associated with the first or second bandwidth contract and producing a policing result based on the policing data.
- 20. The system of claim 19, wherein the packet processor updates the policing data if the packet is admitted.
- 21. The system of claim 19, wherein the policing result indicates whether the packet is to be admitted.
- 22. The system of claim 18, wherein the packet processor admits the packet if the packet is in compliance with the first bandwidth contract.
- 23. The system of claim 18, wherein the packet processor discards the packet if the packet is not in compliance with the second bandwidth contract.
- 24. The system of claim 23, wherein the second bandwidth contract is a lowest priority bandwidth contract.
- 25. The system of claim 18, wherein the ones of the bandwidth contracts are applicable to a switch, interface, port, or flow.
- 26. The system of claim 18, wherein a first priority associated with the first bandwidth contract is higher than a second priority associated with the second bandwidth contract.
- 27. A packet processing system comprising:
an input for receiving an inbound packet; and a policing engine coupled to the input, the policing engine including logic for:
(A) receiving the inbound packet; (B) determining if the inbound packet is in compliance with a current bandwidth contract; (C) if the inbound packet is in compliance with the current bandwidth contract, recommending that the packet be admitted; (D) if the inbound packet is not in compliance with the current bandwidth contract and the current bandwidth contract is a lowest priority bandwidth contract, recommending that the inbound packet be discarded; and (E) if the packet is not admitted or discarded, repeating steps (B)-(E).
- 28. The system of claim 27, wherein the ones of bandwidth contracts are associated with policing data including information on bandwidth constraints, the logic for determining if the packet is in compliance with the current bandwidth contract further comprising logic for:
retrieving the policing data associated with the first or second bandwidth contract; and producing a policing result based on the policing data.
- 29. The system of claim 28, wherein the policing result indicates whether the packet is to be admitted.
- 30. The system of claim 28, wherein the policing result indicates whether the packet is to be discarded.
- 31. The system of claim 28, wherein the policing engine further includes logic for updating the policing data if the packet is admitted.
- 32. The system of claim 27, wherein the ones of the bandwidth contracts are applicable to a switch, interface, port, or flow.
- 33. The system of claim 27 further comprising a disposition engine receiving a packet disposition recommendation from the policing engine.
- 34. The system of claim 27 further comprising a packet classification engine including logic for classifying the packet and identifying an application program based on the packet classification.
- 35. A policing engine in a data communication switch, wherein the policing engine polices data packets flowing into the switch, the policing engine being configured to receive a packet and determine if the packet is in compliance with a first bandwidth contract, and if the packet is not in compliance with the first bandwidth contract, the policing engine being further configured to determine if the packet is in compliance with a second bandwidth contract and admit the packet if the packet is in compliance with the second bandwidth contract.
- 36. The policing engine of claim 35, wherein the ones of bandwidth contracts are associated with policing data including information on bandwidth constraints, the policing engine being further configured to retrieve the policing data associated with the first or second bandwidth contract and produce a policing result based on the policing data.
- 37. The policing engine of claim 36, wherein the policing engine is further configured to update the policing data if the packet is admitted.
- 38. The policing engine of claim 36, wherein the policing result indicates whether the packet is to be admitted.
- 39. The policing engine of claim 37 further configured to recommend that the packet be admitted if the packet is in compliance with the first bandwidth contract.
- 40. The policing engine of claim 37 further configured to recommend that the packet be discarded if the packet is not in compliance with the second bandwidth contract.
- 41. The policing engine of claim 40, wherein the second bandwidth contract is a lowest priority bandwidth contract.
- 42. The policing engine of claim 37, wherein the ones of the bandwidth contracts are applicable to ones of a switch, interface, port, or flow.
- 43. The policing engine of claim 37, wherein a first priority associated with the first bandwidth contract is higher than a second priority associated with the second bandwidth contract.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] The present application contains subject matter related to the subject matter disclosed in U.S. patent application Ser. No. 09/757,361 entitled “Packet Processor with Multi-Level Policing Logic” (Attorney Docket No. 40032/JEJ/X2/134026) filed Jan. 8, 2001, and U.S. patent application Ser. No. 09/751,194 (Attorney Docket No. 40029/JEJ/X2/134021) entitled “Programmable Packet Processor with Flow Resolution Logic” filed Dec. 28, 2000, the contents of both of which are incorporated herein by reference.