lisp_print(ndo, (const u_char *)(up + 1), length);
else if (IS_SRC_OR_DST_PORT(VXLAN_GPE_PORT))
vxlan_gpe_print(ndo, (const u_char *)(up + 1), length);
- else if (ND_TTEST(((const struct LAP *)cp)->type) &&
- ((const struct LAP *)cp)->type == lapDDP &&
- (atalk_port(sport) || atalk_port(dport))) {
+ else if (IS_SRC_OR_DST_PORT(ZEP_PORT))
+ zep_print(ndo, (const u_char *)(up + 1), length);
+ else if (IS_SRC_OR_DST_PORT(MPLS_PORT))
+ mpls_print(ndo, (const u_char *)(up + 1), length);
+ else if (ND_TTEST_1(((const struct LAP *)cp)->type) &&
+ GET_U_1(((const struct LAP *)cp)->type) == lapDDP &&
+ (atalk_port(sport) || atalk_port(dport))) {
if (ndo->ndo_vflag)
- ND_PRINT((ndo, "kip "));
+ ND_PRINT("kip ");
llap_print(ndo, cp, length);
- } else {
+ } else if (IS_SRC_OR_DST_PORT(PTP_EVENT_PORT) ||
+ IS_SRC_OR_DST_PORT(PTP_GENERAL_PORT)) {
+ ptp_print(ndo, cp, length);
+ } else if (IS_SRC_OR_DST_PORT(SOMEIP_PORT))
+ someip_print(ndo, (const u_char *)(up + 1), length);
+ else {
- if (ulen > length)
+ if (ulen > length && !fragmented)
- ND_PRINT((ndo, "UDP, bad length %u > %u",
- ulen, length));
+ ND_PRINT("UDP, bad length %u > %u",
+ ulen, length);
else
- ND_PRINT((ndo, "UDP, length %u", ulen));
+ ND_PRINT("UDP, length %u", ulen);
}
} else {
- if (ulen > length)
+ if (ulen > length && !fragmented)
- ND_PRINT((ndo, "UDP, bad length %u > %u",
- ulen, length));
+ ND_PRINT("UDP, bad length %u > %u",
+ ulen, length);
else
- ND_PRINT((ndo, "UDP, length %u", ulen));
+ ND_PRINT("UDP, length %u", ulen);
}
return;