Switch having flow control management
Abstract
A method of flow control management of data packets in a switch. The method has the steps of determining each time data is being written to memory in order to calculate a memory used amount; determining each time data is being freed from memory in order to calculate a memory freed amount; and calculating how much total memory is being used using the memory freed amount and the memory used amount. A comparison is made comparing the total memory being used to a first predetermined threshold. When the first predetermined threshold is reached a first threshold command is issued indicating that the first predetermined threshold has been reached.
Claims
exact text as granted — not AI-modified1 . A method of flow control management of data packets, said method comprising the steps of:
determining a memory used amount and a memory freed amount upon memory access; calculating how much total memory is being used using said memory freed amount and said memory used amount; comparing the total memory being used to a first predetermined threshold, wherein when said first predetermined threshold is reached a first threshold command is issued; and wherein the memory is implemented as a linked list, with pointers pointing to next memory locations in the linked list and the determining step is performed when at least one of the pointers is moved.
2 . The method as recited in claim 1 wherein said determining step comprises determining when a command indicating that memory has successfully received a data packet is transmitted over a bus.
3 . The method as recited in claim 2 wherein said command is a reception complete command.
4 . The method as recited in claim 1 , wherein said determining step comprises determining when a command indicating that a data packet in memory is no longer needed is transmitted over a bus.
5 . The method as recited in claim 4 wherein said command is a memory free command.
6 . The method as recited in claim 1 , wherein said step of calculating how much total memory is being used by said switch comprises the steps of:
incrementing a counter each time data is being written to memory; and decrementing said counter each time data is being freed from memory, wherein said counter indicates the total memory being used.
7 . The method as recited in claim 1 , wherein said determining step comprises:
determining when a reception complete command indicating that memory has successfully received a data packet is transmitted over a bus, and determining when a memory free command indicating that a data packet in memory is no longer needed is transmitted over a bus; and wherein said step of calculating how much total memory is being used by said memory comprises the steps of, incrementing a counter each time a reception complete command is transmitted over said bus; and decrementing said counter each time a memory free command is transmitted over said bus, wherein said counter indicates how much total memory is being used.
8 . The method as recited in claim 1 , wherein said first threshold command indicates that memory is becoming full.
9 . The method as recited in claim 1 , further comprising the step of comparing the total memory being used by said switch to a second predetermined threshold, wherein when said second predetermined threshold is reached a second threshold command is issued indicating that said second predetermined threshold has been reached.
10 . The method as recited in claim 9 , wherein said second threshold command indicates that data packets will be dropped.
11 . A method of flow control management of data packets, said method comprising the steps of:
determining a memory address to which a start pointer is pointing, wherein said start pointer points to a next memory location in a linked list to be read from memory; determining a memory address to which an end of list pointer is pointing, wherein said end of list pointer points to a last memory location in said linked list; calculating from said start pointer and said end of list pointer a value related to memory usage; comparing said value with a first predetermined threshold, wherein when said first predetermined threshold matches said value, a first threshold command is issued.
12 . The method as recited in claim 11 , wherein said first threshold command indicates that memory is becoming full.
13 . The method as recited in claim 11 , further comprising the step of comparing said value with a second predetermined threshold, wherein when said second predetermined threshold matches said value, a second threshold command is issued.
14 . The method as recited in claim 13 , wherein said second threshold command indicates that data packets will be dropped.
15 . A network device, comprising:
a bus; a memory interface connected to said bus and to a memory; and a flow control manager connected to said bus, said flow control manager comprising,
a bus monitor that determines when data are being transmitted to said memory and when said data are being transmitted from said memory;
a counter that is incremented each time data are transmitted to said memory and decremented each time data are transmitted from said memory, wherein said counter indicates a memory being used value; and
a first comparator that compares said counter to a first predetermined threshold, wherein when said counter meets said first predetermined threshold a first threshold command is transmitted across said bus; and wherein the memory is implemented as a linked list, with pointers pointing to next memory locations in the linked list.
16 . The network device as recited in claim 15 , wherein said bus monitor is configured to determine that said data are being transmitted to said memory when a reception complete command is transmitted over said bus;
wherein said bus monitor determines that said data are being transmitted from said memory to said transmit port when a memory free command is transmitted over said bus; and wherein said counter is incremented each time said reception complete command is transmitted over said bus and said counter is decremented each time a memory free command is transmitted over said bus.
17 . The network device as recited in claim 15 , wherein said first threshold command indicates that memory is becoming too full.
18 . The network device as recited in claim 15 , further comprising a second comparator that compares said counter to a second predetermined threshold, wherein when said counter meets said second predetermined threshold a second threshold command is transmitted across said bus indicating that said second predetermined threshold has been reached.
19 . The network device as recited in claim 15 , wherein said second threshold command indicates that data packets will be dropped.
20 . A network device, comprising:
a bus; a memory interface connected to said bus and to a memory; and a flow control manager connected to said bus, said flow control manager comprising,
a start pointer determiner that determines a memory address to which a start pointer is pointing to, wherein said start pointer points to the next memory location in a linked list to be read from memory;
a end of list pointer determiner that determines a memory address to which an end of list pointer is pointing, wherein said end of list pointer points to the last memory location in said linked list;
a memory used calculator that determines how many memory addresses are being used by said link list to determine a total amount of memory being used; and
a first comparator that compares said total amount of memory being used to a first predetermined threshold, wherein when said total amount of memory being used meets said first predetermined threshold a first threshold command is transmitted across said bus.
21 . The network device as recited in claim 20 wherein said first threshold command indicates that said memory is becoming full.
22 . The network device as recited in claim 20 further comprising a second comparator that compares said total amount of memory being used to a second predetermined threshold, wherein when said second predetermined threshold is reached a second threshold command is issued indicating that said second predetermined threshold has been reached.
23 . The network device as recited in claim 22 wherein said second threshold command indicates that data packets will be dropped.Join the waitlist — get patent alerts
Track US2005073957A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.