System and method for interference mitigation in wireless networks
A computer-implemented method for scheduling a packet for transmission in a wireless local area network can be used to account for hidden and/or exposed terminals. The method includes determining whether the packet is to be transmitted to a computing device through a wireless access point that is in conflict with at least one other computing device associated with a different access point. The method further includes determining whether there is a conflicting packet scheduled to be transmitted for any conflicting computing devices associated with a different access points and scheduling the packet for transmission based on any conflicting packets. The method yet further includes forwarding the packet to a wireless access point at the scheduled time.
1. A computer-implemented method for scheduling a packet for transmission in a wireless local area network, comprising:
receiving a packet from a router for forwarding to a wireless access point;
determining whether the packet is to be transmitted to a computing device through a wireless access point that is in conflict with at least one other computing device associated with a different access point;
determining whether there is a conflicting packet scheduled to be transmitted for any conflicting computing devices associated with a different access points;
scheduling the packet for transmission based on any conflicting packets; and
forwarding the packet to the wireless access point at the scheduled time,
wherein determining whether there is a conflicting packet scheduled to be transmitted includes referencing the destination computing device and wireless access point pair in a conflict graph data structure.
2. The method of claim 1 , wherein scheduling the packet for transmission includes scheduling the packet for transmission based on an estimated transmission completion for the conflicting packet.
3. The method of claim 2 , wherein the estimated transmission completion is generated based on historical transmission times.
4. The method of claim 3 , wherein the historical transmission times include average wireless transmission times generated by a wireless access point.
5. The method of claim 4 , wherein the historical transmission times are weighted based on the recency of the measurement.
6. The method of claim 1 , further including updating the conflict graph based on a detected change in the wireless network.
7. The method of claim 1 , further including updating the conflict graph based on an elapsed time.
8. The method of claim 1 , wherein scheduling the packet for transmission based on the conflict graph includes batch scheduling a plurality of received packets for transmission during a specified time period.
9. The method of claim 1 , wherein scheduling the packet for transmission based on the conflict graph includes transmitting the packets to a wireless access point wireless interface.
10. A computer-readable non-transitory medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to perform the steps of a method for scheduling a packet for transmission in a wireless local area network, comprising:
determining whether the packet is to be transmitted to a computing device through a wireless access point that is in conflict with at least one other computing device associated with a different access point;
determining whether there is a conflicting packet scheduled to be transmitted for any conflicting computing devices associated with a different access points;
scheduling the packet for transmission based on any conflicting packets; and
forwarding the packet to a wireless access point at the scheduled time,
wherein determining whether there is a conflicting packet scheduled to be transmitted includes referencing the destination computing device and wireless access point pair in a conflict graph data structure.
11. The computer-readable medium of claim 10 , wherein scheduling the packet for transmission includes scheduling the packet for transmission based on an estimated transmission completion for the conflicting packet.
12. The computer-readable medium of claim 11 , wherein the estimated transmission completion is generated based on historical transmission times.
13. The computer-readable medium of claim 12 , wherein the historical transmission times include average wireless transmission times generated by a wireless access point.
14. The computer-readable medium of claim 13 , wherein the historical transmission times are weighted based on the recency of the measurement.
15. The computer-readable medium of claim 10 , further including updating the conflict graph based on a detected change in the wireless network.
16. The computer-readable medium of claim 10 , wherein scheduling the packet for transmission based on the conflict graph includes batch scheduling a plurality of received packets for transmission during a specified time period.
17. The computer-readable medium of claim 10 , wherein scheduling the packet for transmission based on the conflict graph includes transmitting the packets to a wireless access point wireless interface.
18. A system for scheduling a packet for transmission in a wireless local area network, comprising:
an edge router configured to receive a plurality of downlink packets from an external network;
a centralized scheduling controller configured to receive packets from the edge router for forwarding to one or more wireless access points, the controller including:
a conflict graph data structure include a plurality of link pairs including a wireless access point and a computing device, each link pair including a listing of all other link pairs in the wireless local area network that are in conflict with the link pair;
a scheduler for scheduling the received packets for transmission, the schedule configured to
determine whether a packet is to be transmitted to a link pair that is in conflict with at least one other link pair using the conflict graph;
determining whether there is a conflicting packet scheduled to be transmitted for any conflicting link pair; and
scheduling the packet for transmission based on any conflicting packets.
19. The system of claim 18 , further including at least one wireless access point configured to increase transmission concurrency with a second wireless access point using at least one of fixed backoff times and packet staggering where both wireless access points are indicated as exposed terminals in the conflict graph.