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); }
/* * --------------------------------------------------------------------------- * 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() */