Lines Matching refs:icmph
374 check_icmp_unreach_v4(struct icmp *icmph, probe_param_t *param)
379 if (icmph->icmp_type != ICMP_UNREACH)
381 if (icmph->icmp_code != ICMP_UNREACH_PORT)
385 iph = (struct ip *)((char *)icmph + ICMP_MINLEN);
405 check_icmp_echo_v4(struct icmp *icmph, probe_param_t *param)
410 if (icmph->icmp_type != ICMP_ECHOREPLY)
412 if (icmph->icmp_id != param->echo_id)
414 if (icmph->icmp_seq != param->echo_seq)
417 bcopy(icmph->icmp_data, &cookie, sizeof (cookie));
420 bcopy(icmph->icmp_data + sizeof (cookie), &port, sizeof (port));
433 struct icmp *icmph;
443 icmph = (struct icmp *)((char *)iph + (iph->ip_hl << 2));
458 return (check_icmp_unreach_v4(icmph, param));
462 return (check_icmp_echo_v4(icmph, param));
767 struct icmp *icmph;
797 icmph = (struct icmp *)buf;
798 icmph->icmp_type = af == AF_INET ? ICMP_ECHO : ICMP6_ECHO_REQUEST;
799 icmph->icmp_code = 0;
800 icmph->icmp_cksum = 0;
801 icmph->icmp_id = htons(gethrtime() % USHRT_MAX);
802 icmph->icmp_seq = htons(gethrtime() % USHRT_MAX);
805 bcopy(¶m->echo_cookie, icmph->icmp_data,
807 bcopy(¶m->port, icmph->icmp_data + sizeof (param->echo_cookie),
809 icmph->icmp_cksum = in_cksum((ushort_t *)buf, sizeof (buf));
810 param->echo_id = icmph->icmp_id;
811 param->echo_seq = icmph->icmp_seq;