Lines Matching defs:reply

37  * or ICMP Echo reply. Packet format is same for both IPv4 and IPv6
64 struct pr_icmp *reply, struct in6_addr fromaddr, struct timeval *recv_tvp);
66 struct pr_icmp *reply, struct in6_addr fromaddr);
68 struct pr_icmp *reply, struct in6_addr fromaddr);
88 * Probe success - A matching probe reply received before CRTT ms has elapsed
90 * Probe failure - No probe reply received and more than CRTT ms has elapsed
305 * not see a reply to the probe and will fail the interface if normal
379 struct pr_icmp *reply;
437 * reply, starting from the icmp hdr.
441 reply = (struct pr_icmp *)((char *)in_packet + iphlen);
444 if (reply->pr_icmp_type != ICMP_ECHO_REPLY)
449 * in pi_icmpid. The icmp code for reply must be 0.
450 * The reply content must be a struct pr_icmp
452 if (reply->pr_icmp_id != pii->pii_icmpid) {
457 if (reply->pr_icmp_code != 0) {
458 logtrace("probe reply code %d from %s on %s\n",
459 reply->pr_icmp_code, abuf, pii->pii_name);
464 logtrace("probe reply too short: %d bytes from %s on %s\n",
477 if (reply->pr_icmp_mtype == htonl(PROBE_UNI))
478 /* Unicast probe reply */
479 incoming_echo_reply(pii, reply, fromaddr, recv_tvp);
480 else if (reply->pr_icmp_mtype == htonl(PROBE_MULTI)) {
481 /* Multicast reply */
482 incoming_mcast_reply(pii, reply, fromaddr);
483 } else if (reply->pr_icmp_mtype == htonl(PROBE_RTT)) {
484 incoming_rtt_reply(pii, reply, fromaddr);
487 logtrace("probe reply type: %d from %s on %s\n",
488 reply->pr_icmp_mtype, abuf, pii->pii_name);
507 struct pr_icmp *reply;
554 reply = (struct pr_icmp *)in_packet;
555 if (reply->pr_icmp_type != ICMP6_ECHO_REPLY)
558 if (reply->pr_icmp_id != pii->pii_icmpid) {
567 logtrace("ICMPv6 echo reply source address not linklocal from "
579 if (reply->pr_icmp_code != 0) {
580 logtrace("probe reply code: %d from %s on %s\n",
581 reply->pr_icmp_code, abuf, pii->pii_name);
585 logtrace("probe reply too short: %d bytes from %s on %s\n",
597 if (reply->pr_icmp_mtype == htonl(PROBE_UNI)) {
598 incoming_echo_reply(pii, reply, from.sin6_addr, recv_tvp);
599 } else if (reply->pr_icmp_mtype == htonl(PROBE_MULTI)) {
600 incoming_mcast_reply(pii, reply, from.sin6_addr);
601 } else if (reply->pr_icmp_mtype == htonl(PROBE_RTT)) {
602 incoming_rtt_reply(pii, reply, from.sin6_addr);
605 logtrace("probe reply type: %d from %s on %s\n",
606 reply->pr_icmp_mtype, abuf, pii->pii_name);
611 * Process the incoming rtt reply, in response to our rtt probe.
617 incoming_rtt_reply(struct phyint_instance *pii, struct pr_icmp *reply,
638 m = (int64_t)(gethrtime() - ntohll(reply->pr_icmp_timestamp));
701 * Process the incoming echo reply, in response to our unicast probe.
705 incoming_echo_reply(struct phyint_instance *pii, struct pr_icmp *reply,
725 ntohs(reply->pr_icmp_seq), tv2ns(recv_tvp));
728 pr_icmp_timestamp = ntohll(reply->pr_icmp_timestamp);
729 pr_icmp_seq = ntohs(reply->pr_icmp_seq);
748 "reply timestamp %lld\n", cur_hrtime, pr_icmp_timestamp);
764 * Perform sanity checks, whether this probe reply that we
770 * probe reply with the target address in our tables.
775 * this target. This is a fake probe reply. Log an error
777 logtrace("probe status %d Fake probe reply seq %u "
786 * this probe reply has been acked already. So this
787 * is a duplicate probe reply. Log an error
789 logtrace("probe status %d Duplicate probe reply seq %u "
807 logtrace("probe status %d Fake probe reply seq %u "
962 * probe response, based on the echo reply we have received now, if
969 * reply corresponds to the highest sequence number we have seen
1121 incoming_mcast_reply(struct phyint_instance *pii, struct pr_icmp *reply,