Lines Matching refs:hh
251 static int parse_hip(const u8 *buf, const u32 buflen, struct hip_hdr *hh) in parse_hip() argument
259 curp = save16bit(&hh->payload_len, curp); in parse_hip()
260 curp = save8bit(&hh->msgid, curp); in parse_hip()
261 curp = save8bit(&hh->msgspecific, curp); in parse_hip()
263 padded = hh->msgid.byte & 0x80; in parse_hip()
264 hh->msgid.byte &= 0x7F; /* 7 bits */ in parse_hip()
266 hh->extmsgid.is_present = (hh->msgid.byte == SIERRA_NET_HIP_EXTENDEDID); in parse_hip()
267 if (hh->extmsgid.is_present) { in parse_hip()
271 hh->payload_len.word &= 0x3FFF; /* 14 bits */ in parse_hip()
273 curp = save16bit(&hh->extmsgid, curp); in parse_hip()
274 hh->extmsgid.word &= 0x03FF; /* 10 bits */ in parse_hip()
276 hh->hdrlen = SIERRA_NET_HIP_EXT_HDR_LEN; in parse_hip()
278 hh->payload_len.word &= 0x07FF; /* 11 bits */ in parse_hip()
279 hh->hdrlen = SIERRA_NET_HIP_HDR_LEN; in parse_hip()
283 hh->hdrlen++; in parse_hip()
284 hh->payload_len.word--; in parse_hip()
288 if (buflen < (hh->hdrlen + hh->payload_len.word)) in parse_hip()
401 struct hip_hdr *hh) in sierra_net_handle_lsi() argument
406 link_up = sierra_net_parse_lsi(dev, data + hh->hdrlen, in sierra_net_handle_lsi()
407 hh->payload_len.word); in sierra_net_handle_lsi()
413 sierra_net_set_ctx_index(priv, hh->msgspecific.byte); in sierra_net_handle_lsi()
481 struct hip_hdr hh; in sierra_net_kevent() local
486 err = parse_hip(buf, len, &hh); in sierra_net_kevent()
495 if (len != hh.hdrlen + hh.payload_len.word) { in sierra_net_kevent()
498 hh.hdrlen + hh.payload_len.word); in sierra_net_kevent()
504 switch (hh.msgid.byte) { in sierra_net_kevent()
507 hh.msgspecific.byte); in sierra_net_kevent()
508 sierra_net_handle_lsi(dev, buf, &hh); in sierra_net_kevent()
513 hh.msgspecific.byte); in sierra_net_kevent()
528 "extmsgid 0x%04x\n", hh.extmsgid.word); in sierra_net_kevent()
535 "msgid 0x%02x\n", hh.msgid.byte); in sierra_net_kevent()
806 struct hip_hdr hh; in sierra_net_rx_fixup() local
813 err = parse_hip(skb->data, skb->len, &hh); in sierra_net_rx_fixup()
824 if (!hh.extmsgid.is_present in sierra_net_rx_fixup()
825 || hh.extmsgid.word != SIERRA_NET_HIP_EXT_IP_IN_ID) { in sierra_net_rx_fixup()
834 skb_pull(skb, hh.hdrlen); in sierra_net_rx_fixup()
841 if (hh.payload_len.word == skb->len) in sierra_net_rx_fixup()
844 new_skb = sierra_net_skb_clone(dev, skb, hh.payload_len.word); in sierra_net_rx_fixup()