Lines Matching refs:hh
275 static int parse_hip(const u8 *buf, const u32 buflen, struct hip_hdr *hh) in parse_hip() argument
283 curp = save16bit(&hh->payload_len, curp); in parse_hip()
284 curp = save8bit(&hh->msgid, curp); in parse_hip()
285 curp = save8bit(&hh->msgspecific, curp); in parse_hip()
287 padded = hh->msgid.byte & 0x80; in parse_hip()
288 hh->msgid.byte &= 0x7F; /* 7 bits */ in parse_hip()
290 hh->extmsgid.is_present = (hh->msgid.byte == SIERRA_NET_HIP_EXTENDEDID); in parse_hip()
291 if (hh->extmsgid.is_present) { in parse_hip()
295 hh->payload_len.word &= 0x3FFF; /* 14 bits */ in parse_hip()
297 curp = save16bit(&hh->extmsgid, curp); in parse_hip()
298 hh->extmsgid.word &= 0x03FF; /* 10 bits */ in parse_hip()
300 hh->hdrlen = SIERRA_NET_HIP_EXT_HDR_LEN; in parse_hip()
302 hh->payload_len.word &= 0x07FF; /* 11 bits */ in parse_hip()
303 hh->hdrlen = SIERRA_NET_HIP_HDR_LEN; in parse_hip()
307 hh->hdrlen++; in parse_hip()
308 hh->payload_len.word--; in parse_hip()
312 if (buflen < (hh->hdrlen + hh->payload_len.word)) in parse_hip()
430 struct hip_hdr *hh) in sierra_net_handle_lsi() argument
435 link_up = sierra_net_parse_lsi(dev, data + hh->hdrlen, in sierra_net_handle_lsi()
436 hh->payload_len.word); in sierra_net_handle_lsi()
442 sierra_net_set_ctx_index(priv, hh->msgspecific.byte); in sierra_net_handle_lsi()
508 struct hip_hdr hh; in sierra_net_kevent() local
513 err = parse_hip(buf, len, &hh); in sierra_net_kevent()
522 if (len != hh.hdrlen + hh.payload_len.word) { in sierra_net_kevent()
525 hh.hdrlen + hh.payload_len.word); in sierra_net_kevent()
531 switch (hh.msgid.byte) { in sierra_net_kevent()
534 hh.msgspecific.byte); in sierra_net_kevent()
535 sierra_net_handle_lsi(dev, buf, &hh); in sierra_net_kevent()
540 hh.msgspecific.byte); in sierra_net_kevent()
555 "extmsgid 0x%04x\n", hh.extmsgid.word); in sierra_net_kevent()
562 "msgid 0x%02x\n", hh.msgid.byte); in sierra_net_kevent()
820 struct hip_hdr hh; in sierra_net_rx_fixup() local
827 err = parse_hip(skb->data, skb->len, &hh); in sierra_net_rx_fixup()
838 if (!hh.extmsgid.is_present in sierra_net_rx_fixup()
839 || hh.extmsgid.word != SIERRA_NET_HIP_EXT_IP_IN_ID) { in sierra_net_rx_fixup()
848 skb_pull(skb, hh.hdrlen); in sierra_net_rx_fixup()
860 if (hh.payload_len.word == skb->len) in sierra_net_rx_fixup()
863 new_skb = sierra_net_skb_clone(dev, skb, hh.payload_len.word); in sierra_net_rx_fixup()