Lines Matching +full:hdr +full:- +full:v2
28 #include "netdissect-stdinc.h"
61 ntp64 sr_ntp; /* 64-bit ntp timestamp */
69 * Time stamps are middle 32-bits of ntp timestamp.
96 vat_print(netdissect_options *ndo, const u_char *hdr, u_int length) in vat_print() argument
101 ndo->ndo_protocol = "vat"; in vat_print()
106 ts = GET_BE_U_2(hdr); in vat_print()
120 i0 = GET_BE_U_4(&((const u_int *)hdr)[0]); in vat_print()
121 i1 = GET_BE_U_4(&((const u_int *)hdr)[1]); in vat_print()
123 length - 8, in vat_print()
135 rtp_print(netdissect_options *ndo, const u_char *hdr, u_int len) in rtp_print() argument
137 /* rtp v1 or v2 */ in rtp_print()
138 const u_int *ip = (const u_int *)hdr; in rtp_print()
143 ndo->ndo_protocol = "rtp"; in rtp_print()
148 i0 = GET_BE_U_4(&((const u_int *)hdr)[0]); in rtp_print()
149 i1 = GET_BE_U_4(&((const u_int *)hdr)[1]); in rtp_print()
150 dlen = len - 8; in rtp_print()
153 len -= 2; in rtp_print()
157 /* rtp v1 - draft-ietf-avt-rtp-04 */ in rtp_print()
163 /* rtp v2 - RFC 3550 */ in rtp_print()
171 dlen -= 4; in rtp_print()
174 len -= 1; in rtp_print()
184 if (ndo->ndo_vflag) { in rtp_print()
185 ND_PRINT(" %u", GET_BE_U_4(&((const u_int *)hdr)[2])); in rtp_print()
196 len -= optlen; in rtp_print()
215 rtcp_print(netdissect_options *ndo, const u_char *hdr, const u_char *ep) in rtcp_print() argument
217 /* rtp v2 control (rtcp) */ in rtcp_print()
220 const struct rtcphdr *rh = (const struct rtcphdr *)hdr; in rtcp_print()
226 ndo->ndo_protocol = "rtcp"; in rtcp_print()
230 len = (GET_BE_U_2(rh->rh_len) + 1) * 4; in rtcp_print()
231 flags = GET_BE_U_2(rh->rh_flags); in rtcp_print()
239 if (ndo->ndo_vflag) in rtcp_print()
240 ND_PRINT(" %u", GET_BE_U_4(rh->rh_ssrc)); in rtcp_print()
244 ts = (double)(GET_BE_U_4(sr->sr_ntp.upper)) + in rtcp_print()
245 ((double)(GET_BE_U_4(sr->sr_ntp.lower)) / in rtcp_print()
247 ND_PRINT(" @%.2f %u %up %ub", ts, GET_BE_U_4(sr->sr_ts), in rtcp_print()
248 GET_BE_U_4(sr->sr_np), GET_BE_U_4(sr->sr_nb)); in rtcp_print()
256 if (ndo->ndo_vflag) in rtcp_print()
257 ND_PRINT(" %u", GET_BE_U_4(rh->rh_ssrc)); in rtcp_print()
261 if (ndo->ndo_vflag) in rtcp_print()
262 ND_PRINT(" %u", GET_BE_U_4(rh->rh_ssrc)); in rtcp_print()
267 if (ndo->ndo_vflag) in rtcp_print()
268 ND_PRINT(" %u", GET_BE_U_4(rh->rh_ssrc)); in rtcp_print()
272 ND_PRINT(" type-0x%x %u", flags & 0xff, len); in rtcp_print()
282 if (ndo->ndo_vflag) in rtcp_print()
283 ND_PRINT(" %u", GET_BE_U_4(rr->rr_srcid)); in rtcp_print()
284 ts = (double)(GET_BE_U_4(rr->rr_lsr)) / 65536.; in rtcp_print()
285 dts = (double)(GET_BE_U_4(rr->rr_dlsr)) / 65536.; in rtcp_print()
287 GET_BE_U_4(rr->rr_nl) & 0x00ffffff, in rtcp_print()
288 GET_BE_U_4(rr->rr_ls), in rtcp_print()
289 GET_BE_U_4(rr->rr_dv), ts, dts); in rtcp_print()
290 cnt--; in rtcp_print()
292 return (hdr + len); in rtcp_print()
325 if (GET_U_1(ip6->ip6_nxt) == IPPROTO_UDP) { in udpipaddr_print()
326 if (sport == -1) { in udpipaddr_print()
328 GET_IP6ADDR_STRING(ip6->ip6_src), in udpipaddr_print()
329 GET_IP6ADDR_STRING(ip6->ip6_dst)); in udpipaddr_print()
332 GET_IP6ADDR_STRING(ip6->ip6_src), in udpipaddr_print()
334 GET_IP6ADDR_STRING(ip6->ip6_dst), in udpipaddr_print()
338 if (sport != -1) { in udpipaddr_print()
345 if (GET_U_1(ip->ip_p) == IPPROTO_UDP) { in udpipaddr_print()
346 if (sport == -1) { in udpipaddr_print()
348 GET_IPADDR_STRING(ip->ip_src), in udpipaddr_print()
349 GET_IPADDR_STRING(ip->ip_dst)); in udpipaddr_print()
352 GET_IPADDR_STRING(ip->ip_src), in udpipaddr_print()
354 GET_IPADDR_STRING(ip->ip_dst), in udpipaddr_print()
358 if (sport != -1) { in udpipaddr_print()
374 const u_char *ep = ndo->ndo_snapend; in udp_print()
379 ndo->ndo_protocol = "udp"; in udp_print()
386 if (!ND_TTEST_2(up->uh_dport)) { in udp_print()
387 udpipaddr_print(ndo, ip, -1, -1); in udp_print()
391 sport = GET_BE_U_2(up->uh_sport); in udp_print()
392 dport = GET_BE_U_2(up->uh_dport); in udp_print()
396 ND_PRINT("truncated-udp %u", length); in udp_print()
399 if (!ND_TTEST_2(up->uh_ulen)) { in udp_print()
403 ulen = GET_BE_U_2(up->uh_ulen); in udp_print()
413 ND_PRINT("truncated-udplength %u", ulen); in udp_print()
416 ulen -= sizeof(struct udphdr); in udp_print()
417 length -= sizeof(struct udphdr); in udp_print()
422 if (cp > ndo->ndo_snapend) { in udp_print()
427 if (ndo->ndo_packettype) { in udp_print()
431 switch (ndo->ndo_packettype) { in udp_print()
445 direction = (enum sunrpc_msg_type) GET_BE_U_4(rp->rm_direction); in udp_print()
523 if (!ndo->ndo_qflag) { in udp_print()
528 if (ND_TTEST_4(rp->rm_direction)) { in udp_print()
529 direction = (enum sunrpc_msg_type) GET_BE_U_4(rp->rm_direction); in udp_print()
532 GET_BE_U_4(rp->rm_xid)); in udp_print()
539 GET_BE_U_4(rp->rm_xid)); in udp_print()
553 if (ndo->ndo_vflag && !ndo->ndo_Kflag && !fragmented) { in udp_print()
558 * XXX - do this even if vflag == 1? in udp_print()
559 * TCP does, and we do so for UDP-over-IPv6. in udp_print()
561 if (IP_V(ip) == 4 && (ndo->ndo_vflag > 1)) { in udp_print()
562 udp_sum = GET_BE_U_2(up->uh_sum); in udp_print()
569 ND_PRINT("[bad udp cksum 0x%04x -> 0x%04x!] ", in udp_print()
580 udp_sum = GET_BE_U_2(up->uh_sum); in udp_print()
583 ND_PRINT("[bad udp cksum 0x%04x -> 0x%04x!] ", in udp_print()
592 if (!ndo->ndo_qflag) { in udp_print()
714 else if (ND_TTEST_1(((const struct LAP *)cp)->type) && in udp_print()
715 GET_U_1(((const struct LAP *)cp)->type) == lapDDP && in udp_print()
717 if (ndo->ndo_vflag) in udp_print()