if (ndo->ndo_packettype != PT_RPC)
udpipaddr_print(ndo, ip, sport, dport);
- if (length < sizeof(struct udphdr)) {
- ND_PRINT("undersized-udp %u", length);
- goto invalid;
- }
+ ND_ICHECKMSG_ZU("undersized-udp", length, <, sizeof(struct udphdr));
ulen = GET_BE_U_2(up->uh_ulen);
udp_sum = GET_BE_U_2(up->uh_sum);
/*
*/
if (ulen == 0 && length > 65535)
ulen = length;
- if (ulen < sizeof(struct udphdr)) {
- ND_PRINT("undersized-udplength %u", ulen);
- goto invalid;
- }
+ ND_ICHECKMSG_ZU("undersized-udplength", ulen, <,
+ sizeof(struct udphdr));
ulen -= sizeof(struct udphdr);
length -= sizeof(struct udphdr);
if (ulen < length)
/* over_tcp: FALSE, is_mdns: FALSE */
domain_print(ndo, cp, length, FALSE, FALSE);
break;
+ case PT_QUIC:
+ quic_print(ndo, cp, length);
+ break;
}
return;
}
else if (dport == BFD_CONTROL_PORT ||
dport == BFD_MULTIHOP_PORT ||
dport == BFD_LAG_PORT ||
+ dport == SBFD_PORT ||
dport == BFD_ECHO_PORT )
bfd_print(ndo, cp, length, dport);
+ else if (sport == SBFD_PORT)
+ bfd_print(ndo, cp, length, sport);
else if (IS_SRC_OR_DST_PORT(LMP_PORT))
lmp_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(VQP_PORT))
ptp_print(ndo, cp, length);
} else if (IS_SRC_OR_DST_PORT(SOMEIP_PORT))
someip_print(ndo, cp, length);
+ else if (IS_SRC_OR_DST_PORT(HTTPS_PORT) &&
+ quic_detect(ndo, cp, length))
+ quic_print(ndo, cp, length);
else {
if (ulen > length && !fragmented)
ND_PRINT("UDP, bad length %u > %u",