To avoid congestion before it happens, the traffic from the sources should be "reduced" (traffic control) or the available resources should be "Increased" (resource control) in advance. While the traffic control in the context of congestion avoidance has been extensively studied mostly through the active queue management (AQM), resource control has received little attention for congestion avoidance. In this paper, we present a congestion avoidance scheme called congestion-aware packet generalized processor sharing (CPGPS) that differentiates between transient congestion and persistent congestion and takes different actions based on the type of congestion when congestion is anticipated. Unlike persistent congestion that is avoided normally by controlling incoming traffic using the AQM algorithm, we show that transient congestion can be better handled by temporarily increasing the bandwidth available to the sources of transient congestion before packets belonging to these sources start to be dropped. To allocate bandwidth fairly among the sources of transient congestion, CPGPS is implemented on top of the packet fair queueing (PFQ) algorithm.