register const struct udphdr *up,
register u_int len)
{
- struct phdr {
- u_int32_t src;
- u_int32_t dst;
- u_char mbz;
- u_char proto;
- u_int16_t len;
- } ph;
- struct cksum_vec vec[2];
-
- /* pseudo-header.. */
- ph.len = htons((u_int16_t)len);
- ph.mbz = 0;
- ph.proto = IPPROTO_UDP;
- memcpy(&ph.src, &ip->ip_src.s_addr, sizeof(u_int32_t));
- if (IP_HL(ip) == 5)
- memcpy(&ph.dst, &ip->ip_dst.s_addr, sizeof(u_int32_t));
- else
- ph.dst = ip_finddst(ip);
-
- vec[0].ptr = (const u_int8_t *)(void *)&ph;
- vec[0].len = sizeof(ph);
- vec[1].ptr = (const u_int8_t *)(void *)up;
- vec[1].len = len;
- return (in_cksum(vec, 2));
+ return (nextproto4_cksum(ip, (const u_int8_t *)(void *)up, len,
+ IPPROTO_UDP));
}
#ifdef INET6
0);
#endif
break;
+
+ case PT_RADIUS:
+ udpipaddr_print(ip, sport, dport);
+ radius_print(cp, length);
+ break;
+
+ case PT_VXLAN:
+ udpipaddr_print(ip, sport, dport);
+ vxlan_print((const u_char *)(up + 1), length);
+ break;
+
+ case PT_PGM:
+ case PT_PGM_ZMTP1:
+ udpipaddr_print(ip, sport, dport);
+ pgm_print(cp, length, bp2);
+ break;
}
return;
}
else if (ISPORT(NETBIOS_DGRAM_PORT))
nbt_udp138_print((const u_char *)(up + 1), length);
#endif
- else if (dport == 3456)
+ else if (dport == VAT_PORT)
vat_print((const void *)(up + 1), up);
else if (ISPORT(ZEPHYR_SRV_PORT) || ISPORT(ZEPHYR_CLT_PORT))
zephyr_print((const void *)(up + 1), length);
ripng_print((const u_char *)(up + 1), length);
else if (ISPORT(DHCP6_SERV_PORT) || ISPORT(DHCP6_CLI_PORT))
dhcp6_print((const u_char *)(up + 1), length);
- else if (ISPORT(BABEL_PORT))
+ else if (ISPORT(BABEL_PORT) || ISPORT(BABEL_PORT_OLD))
babel_print((const u_char *)(up + 1), length);
#endif /*INET6*/
/*
* Kludge in test for whiteboard packets.
*/
- else if (dport == 4567)
+ else if (dport == WB_PORT)
wb_print((const void *)(up + 1), length);
else if (ISPORT(CISCO_AUTORP_PORT))
cisco_autorp_print((const void *)(up + 1), length);
sip_print((const u_char *)(up + 1), length);
else if (ISPORT(SYSLOG_PORT))
syslog_print((const u_char *)(up + 1), length);
+ else if (ISPORT(OTV_PORT))
+ otv_print((const u_char *)(up + 1), length);
+ else if (ISPORT(VXLAN_PORT))
+ vxlan_print((const u_char *)(up + 1), length);
else
(void)printf("UDP, length %u",
(u_int32_t)(ulen - sizeof(*up)));