Lines Matching refs:header

41 #define STRUCT_FIELD(header, field) \  argument
42 .struct_offset_bytes = offsetof(struct ib_unpacked_ ## header, field), \
43 .struct_size_bytes = sizeof ((struct ib_unpacked_ ## header *) 0)->field, \
44 .field_name = #header ":" #field
232 struct ib_ud_header *header) in ib_ud_header_init() argument
234 memset(header, 0, sizeof *header); in ib_ud_header_init()
239 header->lrh.link_version = 0; in ib_ud_header_init()
240 header->lrh.link_next_header = in ib_ud_header_init()
249 header->lrh.packet_length = cpu_to_be16(packet_length); in ib_ud_header_init()
253 header->eth.type = cpu_to_be16(ETH_P_8021Q); in ib_ud_header_init()
256 header->grh.ip_version = 6; in ib_ud_header_init()
257 header->grh.payload_length = in ib_ud_header_init()
263 header->grh.next_header = 0x1b; in ib_ud_header_init()
267 header->bth.opcode = IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE; in ib_ud_header_init()
269 header->bth.opcode = IB_OPCODE_UD_SEND_ONLY; in ib_ud_header_init()
270 header->bth.pad_count = (4 - payload_bytes) & 3; in ib_ud_header_init()
271 header->bth.transport_header_version = 0; in ib_ud_header_init()
273 header->lrh_present = lrh_present; in ib_ud_header_init()
274 header->eth_present = eth_present; in ib_ud_header_init()
275 header->vlan_present = vlan_present; in ib_ud_header_init()
276 header->grh_present = grh_present; in ib_ud_header_init()
277 header->immediate_present = immediate_present; in ib_ud_header_init()
289 int ib_ud_header_pack(struct ib_ud_header *header, in ib_ud_header_pack() argument
294 if (header->lrh_present) { in ib_ud_header_pack()
296 &header->lrh, buf + len); in ib_ud_header_pack()
299 if (header->eth_present) { in ib_ud_header_pack()
301 &header->eth, buf + len); in ib_ud_header_pack()
304 if (header->vlan_present) { in ib_ud_header_pack()
306 &header->vlan, buf + len); in ib_ud_header_pack()
309 if (header->grh_present) { in ib_ud_header_pack()
311 &header->grh, buf + len); in ib_ud_header_pack()
316 &header->bth, buf + len); in ib_ud_header_pack()
320 &header->deth, buf + len); in ib_ud_header_pack()
323 if (header->immediate_present) { in ib_ud_header_pack()
324 memcpy(buf + len, &header->immediate_data, sizeof header->immediate_data); in ib_ud_header_pack()
325 len += sizeof header->immediate_data; in ib_ud_header_pack()
341 struct ib_ud_header *header) in ib_ud_header_unpack() argument
344 buf, &header->lrh); in ib_ud_header_unpack()
347 if (header->lrh.link_version != 0) { in ib_ud_header_unpack()
349 header->lrh.link_version); in ib_ud_header_unpack()
353 switch (header->lrh.link_next_header) { in ib_ud_header_unpack()
355 header->grh_present = 0; in ib_ud_header_unpack()
359 header->grh_present = 1; in ib_ud_header_unpack()
361 buf, &header->grh); in ib_ud_header_unpack()
364 if (header->grh.ip_version != 6) { in ib_ud_header_unpack()
366 header->grh.ip_version); in ib_ud_header_unpack()
369 if (header->grh.next_header != 0x1b) { in ib_ud_header_unpack()
371 header->grh.next_header); in ib_ud_header_unpack()
378 header->lrh.link_next_header); in ib_ud_header_unpack()
383 buf, &header->bth); in ib_ud_header_unpack()
386 switch (header->bth.opcode) { in ib_ud_header_unpack()
388 header->immediate_present = 0; in ib_ud_header_unpack()
391 header->immediate_present = 1; in ib_ud_header_unpack()
395 header->bth.opcode); in ib_ud_header_unpack()
399 if (header->bth.transport_header_version != 0) { in ib_ud_header_unpack()
401 header->bth.transport_header_version); in ib_ud_header_unpack()
406 buf, &header->deth); in ib_ud_header_unpack()
409 if (header->immediate_present) in ib_ud_header_unpack()
410 memcpy(&header->immediate_data, buf, sizeof header->immediate_data); in ib_ud_header_unpack()