[[Include(wiki:802.11/beta-note)]] [[TracNav(802.11/TOC)]] = Upper-level MAC Description = The upper-level MAC is responsible for inter-packet states that are not time critical. The state machine implemented by the upper-level MAC has 6 states: {{{Idle}}}, {{{MPDU Tx}}}, {{{MPDU Rx}}}, {{{Ethernet Tx}}}, {{{Ethernet Rx}}}, and {{{Scheduled Event}}}. [[Image(wiki:802.11/files:wlan_mac_cpu_high_overview.png, width=800)]] == States == * {{{Idle}}}: This state is the default state where no actions are performed by the upper-level MAC. All other states return to {{{Idle}}} when completed. * {{{MPDU Tx}}}: This state handles the transmission of wireless MPDUs from a transmit queue. * Detailed description for Access Point: [wiki:./AP/MPDU_Tx MPDU Tx for AP] * {{{MPDU Rx}}}: This state handles the reception of wireless MPDUs. * Detailed description for Access Point: [wiki:./AP/MPDU_Rx MPDU Rx for AP] * {{{Ethernet Tx}}}: This state handles the transmission of wired Ethernet frames. * Detailed description for Access Point: [wiki:./AP/Ethernet_Tx Ethernet Tx for AP] * {{{Ethernet Rx}}}: This state handles the reception of wired Ethernet frames. * Detailed description for Access Point: [wiki:./AP/Ethernet_Rx Ethernet Rx for AP] * {{{Scheduled Event}}}: This state handles actions by the high-level MAC that are internally scheduled for times in the future. * Detailed description for Access Point: [wiki:./AP/Scheduled_Event Scheduled Event for AP] == State Transitions == * {{{Idle}}} → {{{MPDU Tx}}}: This transition occurs when two conditions are met: 1. The [wiki:../Lower lower-level MAC] has indicated that it is ready to receive another packet for wireless transmission and 1. The transmit queue in the upper-level MAC contains a packet that is ready for wireless transmission. * {{{Idle}}} → {{{MPDU Rx}}}: This transition occurs when the [wiki:../Lower low-level MAC] has indicated that a reception has occurred which meets the following criteria: 1. The received packet is not a control packet (e.g. ACK, RTS, CTS) and 1. The received packet has a receiver address that is either a broadcast packet or a unicast packet whose address matches the local node's MAC address. * {{{MPDU Rx}}} → {{{Ethernet Tx}}}: This transition occurs when a wireless MPDU data reception occurs that should be de-encapsulated and sent via Ethernet. The {{{Ethernet Tx}}} state does not employ a queue, as wired transmissions are expected to be much faster than wireless receptions and the wireless PHY does not block while the Ethernet transmission proceeds. This state is entered directly from the {{{MPDU Rx}}} state without transitioning through {{{Idle}}}. * {{{Idle}}} → {{{Ethernet Rx}}}: This transition occurs when any packet has been received by the Ethernet MAC on the board. * {{{Idle}}} → {{{Scheduled Event}}}: This transition occurs when a timer indicates that a scheduled event should be processed.