/*++

Copyright (c) 2015 Minoca Corp. All Rights Reserved

Module Name:

    control.c

Abstract:

    This module implements control frame handling functionality for the 802.11
    core wireless networking library.

Author:

    Chris Stevens 20-Oct-2015

Environment:

    Kernel

--*/

//
// ------------------------------------------------------------------- Includes
//

#include "net80211.h"

//
// ---------------------------------------------------------------- Definitions
//

//
// ------------------------------------------------------ Data Type Definitions
//

//
// ----------------------------------------------- Internal Function Prototypes
//

//
// -------------------------------------------------------------------- Globals
//

//
// ------------------------------------------------------------------ Functions
//

VOID
Net80211pProcessControlFrame (
    PNET80211_LINK Link,
    PNET_PACKET_BUFFER Packet
    )

/*++

Routine Description:

    This routine processes an 802.11 control frame.

Arguments:

    Link - Supplies a pointer to the 802.11 link on which the frame arrived.

    Packet - Supplies a pointer to the network packet.

Return Value:

    None.

--*/

{

    ULONG FrameSubtype;
    PNET80211_FRAME_HEADER Header;

    Header = Packet->Buffer + Packet->DataOffset;
    FrameSubtype = NET80211_GET_FRAME_SUBTYPE(Header);
    switch (FrameSubtype) {
    case NET80211_CONTROL_FRAME_SUBTYPE_ACK:
    case NET80211_CONTROL_FRAME_SUBTYPE_CONTROL_WRAPPER:
    case NET80211_CONTROL_FRAME_SUBTYPE_BLOCK_ACK_REQUEST:
    case NET80211_CONTROL_FRAME_SUBTYPE_BLOCK_ACK:
    case NET80211_CONTROL_FRAME_SUBTYPE_PS_POLL:
    case NET80211_CONTROL_FRAME_SUBTYPE_RTS:
    case NET80211_CONTROL_FRAME_SUBTYPE_CTS:
    case NET80211_CONTROL_FRAME_SUBTYPE_CF_END:
    case NET80211_CONTROL_FRAME_SUBTYPE_CF_END_ACK:
    default:
        break;
    }

    return;
}

//
// --------------------------------------------------------- Internal Functions
//

