Lines Matching full:ie
2 * IE/TLV fragmentation/defragmentation support for
29 /* defrag a fragmented dot11 ie/tlv. if space does not permit, return the needed
30 * ie length to contain all the fragments with status BCME_BUFTOOSHORT.
38 const bcm_tlv_t *ie; in bcm_tlv_dot11_defrag() local
42 /* find the ie; includes validation */ in bcm_tlv_dot11_defrag()
43 ie = bcm_parse_tlvs_dot11(buf, buf_len, id, id_ext); in bcm_tlv_dot11_defrag()
44 if (!ie) { in bcm_tlv_dot11_defrag()
52 tot_len = id_ext ? ie->len - 1 : ie->len; in bcm_tlv_dot11_defrag()
59 memcpy(out, &ie->data[id_ext ? 1 : 0], tot_len); in bcm_tlv_dot11_defrag()
67 if (ie->len != BCM_TLV_MAX_DATA_SIZE) { in bcm_tlv_dot11_defrag()
71 /* adjust buf_len to length after ie including it */ in bcm_tlv_dot11_defrag()
72 buf_len -= (uint)(((const uint8 *)ie - (const uint8 *)buf)); in bcm_tlv_dot11_defrag()
74 /* update length from fragments, okay if no next ie */ in bcm_tlv_dot11_defrag()
75 while ((ie = bcm_next_tlv(ie, &buf_len)) && in bcm_tlv_dot11_defrag()
76 (ie->id == DOT11_MNG_FRAGMENT_ID)) { in bcm_tlv_dot11_defrag()
77 /* note: buf_len starts at next ie and last frag may be partial */ in bcm_tlv_dot11_defrag()
78 if (out_left < ie->len) { in bcm_tlv_dot11_defrag()
82 memcpy(out, &ie->data[0], ie->len); in bcm_tlv_dot11_defrag()
83 out += ie->len; in bcm_tlv_dot11_defrag()
84 out_left -= ie->len; in bcm_tlv_dot11_defrag()
87 tot_len += ie->len + BCM_TLV_HDR_SIZE; in bcm_tlv_dot11_defrag()
90 if (ie->len < BCM_TLV_MAX_DATA_SIZE) { in bcm_tlv_dot11_defrag()