Lines Matching refs:ipds

340 	       struct ip_print_demux_state *ipds)
345 switch (ipds->nh) {
348 if (!ND_TTEST(*ipds->cp)) {
352 ipds->nh = *ipds->cp;
353 ipds->advance = ah_print(ndo, ipds->cp);
354 if (ipds->advance <= 0)
356 ipds->cp += ipds->advance;
357 ipds->len -= ipds->advance;
363 ipds->advance = esp_print(ndo, ipds->cp, ipds->len,
364 (const u_char *)ipds->ip,
366 if (ipds->advance <= 0)
368 ipds->cp += ipds->advance;
369 ipds->len -= ipds->advance + padlen;
370 ipds->nh = enh & 0xff;
376 ipcomp_print(ndo, ipds->cp);
387 sctp_print(ndo, ipds->cp, (const u_char *)ipds->ip, ipds->len);
391 dccp_print(ndo, ipds->cp, (const u_char *)ipds->ip, ipds->len);
396 tcp_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip,
397 ipds->off & (IP_MF|IP_OFFMASK));
402 udp_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip,
403 ipds->off & (IP_MF|IP_OFFMASK));
408 icmp_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip,
409 ipds->off & (IP_MF|IP_OFFMASK));
426 igrp_print(ndo, ipds->cp, ipds->len);
430 eigrp_print(ndo, ipds->cp, ipds->len);
434 ND_PRINT((ndo, " nd %d", ipds->len));
438 egp_print(ndo, ipds->cp, ipds->len);
442 ospf_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip);
446 igmp_print(ndo, ipds->cp, ipds->len);
451 ip_print(ndo, ipds->cp, ipds->len);
460 ip6_print(ndo, ipds->cp, ipds->len);
464 rsvp_print(ndo, ipds->cp, ipds->len);
469 gre_print(ndo, ipds->cp, ipds->len);
473 mobile_print(ndo, ipds->cp, ipds->len);
477 pim_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip);
484 ipaddr_string(ndo, &ipds->ip->ip_src),
485 ipaddr_string(ndo, &ipds->ip->ip_dst)));
486 carp_print(ndo, ipds->cp, ipds->len, ipds->ip->ip_ttl);
490 ipaddr_string(ndo, &ipds->ip->ip_src),
491 ipaddr_string(ndo, &ipds->ip->ip_dst)));
492 vrrp_print(ndo, ipds->cp, ipds->len,
493 (const u_char *)ipds->ip, ipds->ip->ip_ttl);
498 pgm_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip);
503 pfsync_ip_print(ndo, ipds->cp, ipds->len);
508 if (ndo->ndo_nflag==0 && (p_name = netdb_protoname(ipds->nh)) != NULL)
511 ND_PRINT((ndo, " ip-proto-%d", ipds->nh));
512 ND_PRINT((ndo, " %d", ipds->len));
545 struct ip_print_demux_state *ipds=&ipd;
552 ipds->ip = (const struct ip *)bp;
553 ND_TCHECK(ipds->ip->ip_vhl);
554 if (IP_V(ipds->ip) != 4) { /* print version and fail if != 4 */
555 if (IP_V(ipds->ip) == 6)
558 ND_PRINT((ndo, "IP%u ", IP_V(ipds->ip)));
564 ND_TCHECK(*ipds->ip);
569 hlen = IP_HL(ipds->ip) * 4;
575 ipds->len = EXTRACT_16BITS(&ipds->ip->ip_len);
576 if (length < ipds->len)
578 ipds->len - length));
579 if (ipds->len < hlen) {
581 if (ipds->len) {
582 ND_PRINT((ndo, "bad-len %u", ipds->len));
587 ipds->len = length;
590 ND_PRINT((ndo, "bad-len %u", ipds->len));
598 ipend = bp + ipds->len;
602 ipds->len -= hlen;
604 ipds->off = EXTRACT_16BITS(&ipds->ip->ip_off);
607 ND_PRINT((ndo, "(tos 0x%x", (int)ipds->ip->ip_tos));
609 switch (ipds->ip->ip_tos & 0x03) {
627 if (ipds->ip->ip_ttl >= 1)
628 ND_PRINT((ndo, ", ttl %u", ipds->ip->ip_ttl));
637 EXTRACT_16BITS(&ipds->ip->ip_id),
638 (ipds->off & 0x1fff) * 8,
639 bittok2str(ip_frag_values, "none", ipds->off&0xe000),
640 tok2str(ipproto_values,"unknown",ipds->ip->ip_p),
641 ipds->ip->ip_p));
643 ND_PRINT((ndo, ", length %u", EXTRACT_16BITS(&ipds->ip->ip_len)));
647 ip_optprint(ndo, (const u_char *)(ipds->ip + 1), hlen - sizeof(struct ip));
651 if (!ndo->ndo_Kflag && (const u_char *)ipds->ip + hlen <= ndo->ndo_snapend) {
652 vec[0].ptr = (const uint8_t *)(const void *)ipds->ip;
656 ip_sum = EXTRACT_16BITS(&ipds->ip->ip_sum);
669 if ((ipds->off & 0x1fff) == 0) {
670 ipds->cp = (const u_char *)ipds->ip + hlen;
671 ipds->nh = ipds->ip->ip_p;
673 if (ipds->nh != IPPROTO_TCP && ipds->nh != IPPROTO_UDP &&
674 ipds->nh != IPPROTO_SCTP && ipds->nh != IPPROTO_DCCP) {
676 ipaddr_string(ndo, &ipds->ip->ip_src),
677 ipaddr_string(ndo, &ipds->ip->ip_dst)));
679 ip_print_demux(ndo, ipds);
693 ND_PRINT((ndo, "%s > %s:", ipaddr_string(ndo, &ipds->ip->ip_src),
694 ipaddr_string(ndo, &ipds->ip->ip_dst)));
695 if (!ndo->ndo_nflag && (p_name = netdb_protoname(ipds->ip->ip_p)) != NULL)
698 ND_PRINT((ndo, " ip-proto-%d", ipds->ip->ip_p));