static void event_to_unifi_sys_traffic_protocol_ind(FsmContext* context, CsrUint8* inputbuffer, CsrUint16 length)
{
    CsrUint8* buffer = &inputbuffer[6];
    UnifiSysTrafficProtocolInd_Evt evt;

    evt.packetType = (unifi_TrafficPacketType) event_unpack_CsrUint16(&buffer);
    evt.direction = (unifi_ProtocolDirection) event_unpack_CsrUint16(&buffer);
    event_unpack_buffer(&buffer, evt.srcAddress.data, 6);

    unifi_sys_traffic_protocol_ind(context, evt.packetType, evt.direction, &evt.srcAddress);

}
Exemple #2
0
/*
 * ---------------------------------------------------------------------------
 *  uf_ta_ind_wq
 *
 *      Deferred work queue function to send Traffic Analysis protocols
 *      indications to the SME.
 *      These are done in a deferred work queue for two reasons:
 *       - the unifi_sys_.._ind() functions are not safe for atomic context
 *       - we want to load the main driver data path as lightly as possible
 *
 *      The TA classifications already come from a workqueue.
 *
 *  Arguments:
 *      work    Pointer to work queue item.
 *
 *  Returns:
 *      None.
 * ---------------------------------------------------------------------------
 */
void
uf_ta_ind_wq(struct work_struct *work)
{
    struct ta_ind *ind = container_of(work, struct ta_ind, task);
    unifi_priv_t *priv = container_of(ind, unifi_priv_t, ta_ind_work);


    unifi_sys_traffic_protocol_ind(priv->smepriv,
                                   ind->packet_type,
                                   ind->direction,
                                   &ind->src_addr);
    ind->in_use = 0;

} /* uf_ta_ind_wq() */