Answer
There are two reasons to send out null packets with p bit enabled. 1. Its RSSI has crossed over the Roam Trigger and the client radio is supposed to start scanning for a new AP. 2. The client radio is running one of our power-save modes (Fast or Max) and is going to sleep for a brief (e.g. 20 ms) period and is telling the AP so it will buffer traffic for it while it sleeps. After a radio has slept for some period of time (defined as the interval between DTIM periods) it is supposed to wake up and indicate to the AP that it is awake by sending a null packet with the P-bit turned off. The radio should only wake if it has traffic to send or it sees from the DTIM in the AP?s beacons that the AP has traffic to send to it.