Method and apparatus for internetworking buffer management
First Claim
1. A buffer management system for a network gateway, comprising:
- a network interface in communication with at least one network, said interface providing P ports for receiving a data block from and transmitting said date block to said at least one network, wherein P is a positive, non-zero integer;
a buffer memory providing B buffers in communication with said network interface, each of said B buffers assigned to one of P+1 buffer pools, wherein B is an integer not less than P;
a control memory area in communication with said network interface;
a buffer and manager in communication with said network interface, said buffer memory, and said control memory area, said manager regulating storage and retrieval of said data block within at least one of said B buffers; and
a processor interface in communication with said network interface, said buffer memory, said control memory and said manager enabling manipulation of said data block by a processor after storage within said at least one buffer and before transmission of said data block from said network interface,wherein P of said P+1 buffer pools are dedicated buffer pools, each assigned exclusively to a respective one of said P ports for storage of data blocks, or portions thereof, received at said respective port, andwherein one of said P+1 buffer pools is a common buffer pool assigned to all of said P ports for storage of data blocks, or portions thereof, received at the respective port.
8 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for receiving and transmitting network frames via an internetworking device, in which a first portion of a total number of buffers is allocated among port-dedicated buffer pools, and a second portion is placed in a common pool accessible by any of the network ports. A frame is received at a first port, and a list of buffers accessible only by that port is referenced to identify buffers not already in use. A second list of buffers in the common pool is referenced to identify unused buffers for use if insufficient unused buffer space is available in the port-dedicated buffer pool. Frame data is then stored in the identified buffer(s). Upon retransmission, the buffer(s) used to store the transmitted frame is released to the port-dedicated and/or common buffer pool(s).
217 Citations
25 Claims
-
1. A buffer management system for a network gateway, comprising:
-
a network interface in communication with at least one network, said interface providing P ports for receiving a data block from and transmitting said date block to said at least one network, wherein P is a positive, non-zero integer; a buffer memory providing B buffers in communication with said network interface, each of said B buffers assigned to one of P+1 buffer pools, wherein B is an integer not less than P; a control memory area in communication with said network interface; a buffer and manager in communication with said network interface, said buffer memory, and said control memory area, said manager regulating storage and retrieval of said data block within at least one of said B buffers; and a processor interface in communication with said network interface, said buffer memory, said control memory and said manager enabling manipulation of said data block by a processor after storage within said at least one buffer and before transmission of said data block from said network interface, wherein P of said P+1 buffer pools are dedicated buffer pools, each assigned exclusively to a respective one of said P ports for storage of data blocks, or portions thereof, received at said respective port, and wherein one of said P+1 buffer pools is a common buffer pool assigned to all of said P ports for storage of data blocks, or portions thereof, received at the respective port. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of receiving and transmitting a data block in a network gateway having a buffer set addressed by buffer lists, the buffer set associated with a port set, the method comprising:
-
receiving said data block at a first port of said port set; referring to a first buffer list having addresses of first buffers accessible only by said first port to retrieve addresses of unused first buffers by; maintaining a first control block for said first buffer list in a memory access controller, said first control block containing a label corresponding to each of said first buffer addresses in said first buffer list, and storing said first control block in a memory access controller register having multiple pointers associated with said first control block, said multiple pointers providing an indication of used first buffers and unused first buffers whose addresses are within said first buffer list; referring to a second buffer list having addresses of second buffers accessible by every port in said port set to retrieve addresses of unused second buffers; storing said data block in said unused first buffers, and in said second unused buffers after all of said unused first buffers have been used for storing; and transmitting said data block at a second port of said gateway. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of receiving and transmitting a data block in a network gateway having a buffer set addressed by buffer lists, the buffer set associated with a port set, the method comprising:
-
receiving said data block at a first port of said port set; referring to a first buffer list having addresses of first buffers accessible only by said first port to retrieve addresses of unused first buffers; referring to a second buffer list having addresses of second buffers accessible by every port in said port set to retrieve addresses of unused second buffers by; maintaining a second control block for said second buffer list in a memory access controller, said second control block containing a label corresponding to each of said second buffer addresses in said second buffer list, and storing said second control block in a memory access controller register having multiple pointers associated with said second control block, said multiple pointers providing an indication of used second buffers and unused second buffers whose addresses are within said second buffer list; storing said data block in said unused first buffers, and in said second unused buffers after all of said unused first buffers have been used for storing; and transmitting said data block at a second port of said gateway. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
Specification