Method, system and program product for equitable sharing of a CAM table in a network switch in an on-demand environment
First Claim
1. A method for equitable sharing of buffers between a plurality of users of a network switch, said method comprising:
- a processor of a computer system reserving a preset number of dedicated buffers for a respective user of the plurality of users and a subset number of shared buffers for all of said users in an address table in said network switch, said network switch comprising a plurality of ports, each port having a designated port number, said subset number of shared buffers forming a shared buffer pool for all of said users and said preset number of dedicated buffers in forming a dedicated buffer pool for said respective user, each shared buffer and each dedicated buffer in the address table configured to store a port number of a port of the plurality of ports and an associated address such that the network switch is configured to forward a packet received by the network switch to the port whose associated address in a buffer in the address table matches a destination address in the received packet;
said processor establishing, upon arrival at the network switch of a packet containing a destination address corresponding to said respective user, that said destination address is not listed in any buffer in said address table;
in response to said establishing, said processor determining whether or not an in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective userif said processor determines that said in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective user, then adding the destination address in the packet and an associated port of the plurality of ports to an unallocated dedicated buffer in said dedicated buffer pool;
if said processor determines that said in-use number of said dedicated buffers being used by said respective user is not less than said preset number of dedicated buffers allocated to said respective user, then either;
said processor determining that said subset number of buffers in said shared buffer pool is exhausted and sending to a network manager or an administrator a notification bit denoting that said subset number of buffers in said shared buffer pool is exhausted and not adding the destination address in the packet to any shared buffer in the shared buffer pool;
orsaid processor determining that said subset number of buffers in said shared buffer pool is not exhausted and adding the destination address in the packet and an associated port of the plurality of ports to an unallocated shared buffer in said shared buffer pool.
5 Assignments
0 Petitions
Accused Products
Abstract
A method, system and program product for equitable sharing of a CAM (Content Addressable Memory) table among multiple users of a switch. The method includes reserving buffers in the table to be shared, the remaining buffers being allocated to each user. The method further includes establishing whether or not an address contained in a packet from a user is listed in a buffer in the table, if the address is listed, updating a time-to-live value for the buffer for forwarding the packet and, if the address is not listed, determining whether or not the user has exceeded its allocated buffers and whether or not the reserved buffers have been exhausted, such that, if the user has exceeded its allocated buffers and the reserved buffers have been exhausted, the address is not added to the table and the user is precluded from using any additional buffers in the network switch.
-
Citations
20 Claims
-
1. A method for equitable sharing of buffers between a plurality of users of a network switch, said method comprising:
-
a processor of a computer system reserving a preset number of dedicated buffers for a respective user of the plurality of users and a subset number of shared buffers for all of said users in an address table in said network switch, said network switch comprising a plurality of ports, each port having a designated port number, said subset number of shared buffers forming a shared buffer pool for all of said users and said preset number of dedicated buffers in forming a dedicated buffer pool for said respective user, each shared buffer and each dedicated buffer in the address table configured to store a port number of a port of the plurality of ports and an associated address such that the network switch is configured to forward a packet received by the network switch to the port whose associated address in a buffer in the address table matches a destination address in the received packet; said processor establishing, upon arrival at the network switch of a packet containing a destination address corresponding to said respective user, that said destination address is not listed in any buffer in said address table; in response to said establishing, said processor determining whether or not an in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective user if said processor determines that said in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective user, then adding the destination address in the packet and an associated port of the plurality of ports to an unallocated dedicated buffer in said dedicated buffer pool; if said processor determines that said in-use number of said dedicated buffers being used by said respective user is not less than said preset number of dedicated buffers allocated to said respective user, then either; said processor determining that said subset number of buffers in said shared buffer pool is exhausted and sending to a network manager or an administrator a notification bit denoting that said subset number of buffers in said shared buffer pool is exhausted and not adding the destination address in the packet to any shared buffer in the shared buffer pool;
orsaid processor determining that said subset number of buffers in said shared buffer pool is not exhausted and adding the destination address in the packet and an associated port of the plurality of ports to an unallocated shared buffer in said shared buffer pool. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product for equitable sharing of buffers between a plurality of users of a network switch, said computer program product comprising:
-
a computer readable storage medium; first program instructions to reserve a preset number of dedicated buffers for a respective user of the plurality of users and a subset number of shared buffers for all of said users in an address table in said network switch, said network switch comprising a plurality of ports, each port having a designated port number, said subset number of shared buffers forming a shared buffer pool for all of said users and said preset number of dedicated buffers forming a dedicated buffer pool for said respective user, each shared buffer and each dedicated buffer in the address table configured to store a port number of a port of the plurality of ports and an associated address such that the network switch is configured to forward a packet received by the network switch to the port whose associated address in a buffer in the address table matches a destination address in the received packet; second program instructions to establish, upon arrival at the network switch of a packet containing a destination address corresponding to said respective user, that said destination address is not listed in any buffer in said address table; third program instructions to, in response to said second program instructions establishing that said destination address is not listed in any buffer in said address table, determine whether or not an in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective user; fourth program instructions to, if said third program instructions determines that said in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective user, add the destination address in the packet and an associated port of the plurality of ports to an unallocated dedicated buffer in said dedicated buffer pool; fifth program instructions, if said third program instructions determines that said in-use number of said dedicated buffers being used by said respective user is not less than said preset number of dedicated buffers allocated to said respective user, to either; determine that said subset number of buffers in said shared buffer pool is exhausted and send to a network manager or an administrator a notification bit denoting that said subset number of buffers in said shared buffer pool is exhausted and not add the destination address in the packet to any shared buffer in the shared buffer pool;
ordetermine that said subset number of buffers in said shared buffer pool is not exhausted and add the destination address in the packet and an associated port of the plurality of ports to an unallocated shared buffer in said shared buffer pool, wherein the first program instructions, the second program instructions, the third program instructions, the fourth program instructions, and the fifth program instructions are stored on the computer readable storage medium for execution by a processor of a computer system via a computer readable memory of the computer system. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer system for equitable sharing of buffers between a plurality of users of a network switch, said computer system comprising:
-
a processor; a computer readable memory; a computer readable storage medium; first program instructions to reserve a preset number of dedicated buffers for a respective user of the plurality of users and a subset number of shared buffers for all of said users in an address table in said network switch, said network switch comprising a plurality of ports, each port having a designated port number, said subset number of shared buffers forming a shared buffer pool for all of said users and said preset number of dedicated buffers forming a dedicated buffer pool for said respective user, each shared buffer and each dedicated buffer in the address table configured to store a port number of a port of the plurality of ports and an associated address such that the network switch is configured to forward a packet received by the network switch to the port whose associated address in a buffer in the address table matches a destination address in the received packet; second program instructions to establish, upon arrival at the network switch of a packet containing a destination address corresponding to said respective user, that said destination address is not listed in any buffer in said address table; third program instructions to, in response to said second program instructions establishing that said destination address is not listed in any buffer in said address table, determine whether or not an in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective user; fourth program instructions to, if said third program instructions determines that said in-use number of said dedicated buffers being used by said respective user is less than said preset number of dedicated buffers allocated to said respective user, add the destination address in the packet and an associated port of the plurality of ports to an unallocated dedicated buffer in said dedicated buffer pool; fifth program instructions, if said third program instructions determines that said in-use number of said dedicated buffers being used by said respective user is not less than said preset number of dedicated buffers allocated to said respective user, to either; determine that said subset number of buffers in said shared buffer pool is exhausted and send to a network manager or an administrator a notification bit denoting that said subset number of buffers in said shared buffer pool is exhausted and not add the destination address in the packet to any shared buffer in the shared buffer pool;
ordetermine that said subset number of buffers in said shared buffer pool is not exhausted and add the destination address in the packet and an associated port of the plurality of ports to an unallocated shared buffer in said shared buffer pool, wherein the first program instructions, the second program instructions, the third program instructions, the fourth program instructions, and the fifth program instructions are stored on the computer readable storage medium for execution by the processor via the computer readable memory. - View Dependent Claims (17, 18, 19, 20)
-
Specification