A method performed in a network element for managing a packet memory and controlling further packet admittance into the packet memory based on a memory usage of the packet memory, the method comprises: accessing a source-based memory usage table to identify a source having a memory usage satisfying a predetermined memory usage threshold, the source-based memory usage table including a plurality of source records, each source record corresponding to a source from which packets are received by the network element, each source record including a current memory usage and a predetermined memory usage threshold of the respective source; transmitting a first flow control signal to the identified source that has a memory usage satisfying the corresponding predetermined memory usage threshold to control further packet transmission from the identified source; accessing a priority-based memory usage table to identify a priority of which a memory usage satisfies a predetermined memory usage threshold of the priority, the priority-based memory usage table including a plurality of priority records, each priority record including a current memory usage and a predetermined memory usage threshold associated with the respective priority; and transmitting a second flow control signal to one or more sources associated with the identified priority having a memory usage satisfying the corresponding predetermined memory usage threshold to control further packet transmission from the identified one or more sources, wherein each source record of the source-based memory usage table includes a current memory usage, a transmission on, XON, threshold, and a transmission off, XOFF, threshold associated with a respective source, the method further comprising: for each source record in the source-based memory usage table, determining a current flow control state of respective source, the current flow control state being one of an XON state and an XOFF state; determining whether a current memory usage of the source record is greater than the corresponding XON threshold if the current flow control state of the source is an XON state; and asserting an XOFF control signal to a source associated with the source record, if the current memory usage is greater than the corresponding XON threshold and the current flow control state of the source is an XON state; wherein the method further comprises: asserting an XON control signal to the source if the current memory usage is less than or equal to the corresponding XOFF threshold and the current flow control state of the source is an XOFF state. accessing a source-based memory usage table to identify a source having a memory usage satisfying a predetermined memory usage threshold, the source-based memory usage table including a plurality of source records, each source record corresponding to a source from which packets are received by the network element, each source record including a current memory usage and a predetermined memory usage threshold of the respective source; transmitting a first flow control signal to the identified source that has a memory usage satisfying the corresponding predetermined memory usage threshold to control further packet transmission from the identified source; accessing a priority-based memory usage table to identify a priority of which a memory usage satisfies a predetermined memory usage threshold of the priority, the priority-based memory usage table including a plurality of priority records, each priority record including a current memory usage and a predetermined memory usage threshold associated with the respective priority; and transmitting a second flow control signal to one or more sources associated with the identified priority having a memory usage satisfying the corresponding predetermined memory usage threshold to control further packet transmission from the identified one or more sources, for each source record in the source-based memory usage table, determining a current flow control state of respective source, the current flow control state being one of an XON state and an XOFF state; determining whether a current memory usage of the source record is greater than the corresponding XON threshold if the current flow control state of the source is an XON state; and asserting an XOFF control signal to a source associated with the source record, if the current memory usage is greater than the corresponding XON threshold and the current flow control state of the source is an XON state; wherein the method further comprises: asserting an XON control signal to the source if the current memory usage is less than or equal to the corresponding XOFF threshold and the current flow control state of the source is an XOFF state. asserting an XON control signal to the source if the current memory usage is less than or equal to the corresponding XOFF threshold and the current flow control state of the source is an XOFF state.