Lines Matching defs:qhd
467 static inline int parse_quic(quic_hd *qhd, __u8 *data, __u8 *data_end) {
484 qhd->type = (*data & 0x30) >> 4;
485 qhd->dcid = p;
486 qhd->dcidlen = dcidlen;
487 qhd->dcid_offset = 6;
489 qhd->type = NGTCP2_PKT_SHORT;
490 qhd->dcid = data + 1;
491 qhd->dcidlen = SV_DCIDLEN;
492 qhd->dcid_offset = 1;
507 static __u32 sk_index_from_dcid(const quic_hd *qhd,
510 __u32 len = qhd->dcidlen;
519 __builtin_memcpy(hbuf, qhd->dcid + 16, 4);
522 __builtin_memcpy(hbuf, qhd->dcid + 16, 3);
525 __builtin_memcpy(hbuf, qhd->dcid + 16, 2);
528 __builtin_memcpy(hbuf, qhd->dcid + 16, 1);
541 __builtin_memcpy(hbuf, qhd->dcid + 8, 8);
544 __builtin_memcpy(hbuf, qhd->dcid + 8, 7);
547 __builtin_memcpy(hbuf, qhd->dcid + 8, 6);
550 __builtin_memcpy(hbuf, qhd->dcid + 8, 5);
553 __builtin_memcpy(hbuf, qhd->dcid + 8, 4);
556 __builtin_memcpy(hbuf, qhd->dcid + 8, 3);
559 __builtin_memcpy(hbuf, qhd->dcid + 8, 2);
562 __builtin_memcpy(hbuf, qhd->dcid + 8, 1);
570 return hash(qhd->dcid, len, h) % num_socks;
579 quic_hd qhd;
609 rv = parse_quic(&qhd, qpktbuf, qpktbuf + sizeof(qpktbuf));
616 switch (qhd.type) {
619 if (qhd.dcidlen == SV_DCIDLEN) {
620 cid_prefix = qhd.dcid + CID_PREFIX_OFFSET;
631 sk_index = sk_index_from_dcid(&qhd, reuse_md, *pnum_socks);
636 if (qhd.dcidlen != SV_DCIDLEN) {
640 cid_prefix = qhd.dcid + CID_PREFIX_OFFSET;
645 sk_index = sk_index_from_dcid(&qhd, reuse_md, *pnum_socks);