Lines Matching full:ie
2 * IE/TLV fragmentation/defragmentation support for
35 /* defrag a fragmented dot11 ie/tlv. if space does not permit, return the needed
36 * ie length to contain all the fragments with status BCME_BUFTOOSHORT.
44 const bcm_tlv_t *ie; in bcm_tlv_dot11_defrag() local
48 /* find the ie; includes validation */ in bcm_tlv_dot11_defrag()
49 ie = bcm_parse_tlvs_dot11(buf, buf_len, id, id_ext); in bcm_tlv_dot11_defrag()
50 if (!ie) { in bcm_tlv_dot11_defrag()
58 tot_len = id_ext ? ie->len - 1 : ie->len; in bcm_tlv_dot11_defrag()
65 memcpy(out, &ie->data[id_ext ? 1 : 0], tot_len); in bcm_tlv_dot11_defrag()
73 if (ie->len != BCM_TLV_MAX_DATA_SIZE) { in bcm_tlv_dot11_defrag()
77 /* adjust buf_len to length after ie including it */ in bcm_tlv_dot11_defrag()
78 buf_len -= (uint)(((const uint8 *)ie - (const uint8 *)buf)); in bcm_tlv_dot11_defrag()
80 /* update length from fragments, okay if no next ie */ in bcm_tlv_dot11_defrag()
81 while ((ie = bcm_next_tlv(ie, &buf_len)) && in bcm_tlv_dot11_defrag()
82 (ie->id == DOT11_MNG_FRAGMENT_ID)) { in bcm_tlv_dot11_defrag()
83 /* note: buf_len starts at next ie and last frag may be partial */ in bcm_tlv_dot11_defrag()
84 if (out_left < ie->len) { in bcm_tlv_dot11_defrag()
88 memcpy(out, &ie->data[0], ie->len); in bcm_tlv_dot11_defrag()
89 out += ie->len; in bcm_tlv_dot11_defrag()
90 out_left -= ie->len; in bcm_tlv_dot11_defrag()
93 tot_len += ie->len + BCM_TLV_HDR_SIZE; in bcm_tlv_dot11_defrag()
96 if (ie->len < BCM_TLV_MAX_DATA_SIZE) { in bcm_tlv_dot11_defrag()