int rtw_get_wfd_ie_from_scan_queue(u8 *in_ie, int in_len, u8 *wfd_ie, uint *wfd_ielen, u8 frame_type) { int match; match=_FALSE; DBG_871X( "[%s] frame_type = %d\n", __FUNCTION__, frame_type ); switch( frame_type ) { case 1: case 3: { // Beacon or Probe Response match = rtw_get_wfd_ie(in_ie + _PROBERSP_IE_OFFSET_, in_len - _PROBERSP_IE_OFFSET_, wfd_ie, wfd_ielen); break; } case 2: { // Probe Request match = rtw_get_wfd_ie(in_ie + _PROBEREQ_IE_OFFSET_ , in_len - _PROBEREQ_IE_OFFSET_ , wfd_ie, wfd_ielen); break; } } return match; }
void dump_wfd_ie(u8 *ie, u32 ie_len) { u8* pos = (u8*)ie; u8 id; u16 len; u8 *wfd_ie; uint wfd_ielen; if(!rtw_get_wfd_ie(ie, ie_len, NULL, &wfd_ielen)) return; pos+=6; while(pos-ie < ie_len){ id = *pos; len = RTW_RB16(pos+1); DBG_871X("%s ID:%u, LEN:%u\n", __FUNCTION__, id, len); pos+=(3+len); } }