Lines Matching refs:param
169 parse_probe_param(char *argv[], probe_param_t *param) in parse_probe_param() argument
176 param->probe = ping_probe; in parse_probe_param()
182 param->probe = tcp_probe; in parse_probe_param()
183 param->proto = IPPROTO_TCP; in parse_probe_param()
185 param->probe = udp_probe; in parse_probe_param()
186 param->proto = IPPROTO_UDP; in parse_probe_param()
193 if (inet_pton(AF_INET6, argv[1], ¶m->vip) == 0) in parse_probe_param()
198 IN6_INADDR_TO_V4MAPPED(&v4addr, ¶m->vip); in parse_probe_param()
209 if (inet_pton(AF_INET6, argv[2], ¶m->srv_addr) == 0) in parse_probe_param()
214 IN6_INADDR_TO_V4MAPPED(&v4addr, ¶m->srv_addr); in parse_probe_param()
220 param->mode = dsr; in parse_probe_param()
222 param->mode = nat; in parse_probe_param()
224 param->mode = half_nat; in parse_probe_param()
230 param->port = port; in parse_probe_param()
234 param->timeout = timeout; in parse_probe_param()
245 void **next_hop, probe_param_t *param) in set_sockaddr() argument
253 switch (param->mode) { in set_sockaddr()
255 param_addr = ¶m->vip; in set_sockaddr()
260 param_addr = ¶m->srv_addr; in set_sockaddr()
268 v4_addr->sin_port = htons(param->port); in set_sockaddr()
276 v6_addr->sin6_port = htons(param->port); in set_sockaddr()
292 IN6_V4MAPPED_TO_IPADDR(¶m->srv_addr, *nh_addr); in set_sockaddr()
299 nh_addr->sin6_addr = param->srv_addr; in set_sockaddr()
315 tcp_query(probe_param_t *param) in tcp_query() argument
328 af = set_sockaddr(&dst_addr, &dst_addr_len, &next_hop, param); in tcp_query()
330 if ((sd = socket(af, SOCK_STREAM, param->proto)) == -1) in tcp_query()
351 (void) alarm(param->timeout); in tcp_query()
374 check_icmp_unreach_v4(struct icmp *icmph, probe_param_t *param) in check_icmp_unreach_v4() argument
391 if (udph->uh_dport != htons(param->port)) in check_icmp_unreach_v4()
393 if (udph->uh_sport != param->lport) in check_icmp_unreach_v4()
405 check_icmp_echo_v4(struct icmp *icmph, probe_param_t *param) in check_icmp_echo_v4() argument
412 if (icmph->icmp_id != param->echo_id) in check_icmp_echo_v4()
414 if (icmph->icmp_seq != param->echo_seq) in check_icmp_echo_v4()
418 if (cookie != param->echo_cookie) in check_icmp_echo_v4()
421 if (port != param->port) in check_icmp_echo_v4()
430 check_icmp_v4(char *buf, ssize_t rcvd, probe_param_t *param) in check_icmp_v4() argument
452 if (param->probe == udp_probe) { in check_icmp_v4()
458 return (check_icmp_unreach_v4(icmph, param)); in check_icmp_v4()
462 return (check_icmp_echo_v4(icmph, param)); in check_icmp_v4()
471 check_icmp_unreach_v6(icmp6_t *icmp6h, probe_param_t *param) in check_icmp_unreach_v6() argument
488 if (udph->uh_dport != htons(param->port)) in check_icmp_unreach_v6()
490 if (udph->uh_sport != param->lport) in check_icmp_unreach_v6()
501 check_icmp_echo_v6(icmp6_t *icmp6h, probe_param_t *param) in check_icmp_echo_v6() argument
509 if (icmp6h->icmp6_id != param->echo_id) in check_icmp_echo_v6()
511 if (icmp6h->icmp6_seq != param->echo_seq) in check_icmp_echo_v6()
515 if (cookie != param->echo_cookie) in check_icmp_echo_v6()
519 if (port != param->port) in check_icmp_echo_v6()
528 check_icmp_v6(char *buf, ssize_t rcvd, probe_param_t *param) in check_icmp_v6() argument
541 if (param->probe == udp_probe) { in check_icmp_v6()
547 return (check_icmp_unreach_v6(icmp6h, param)); in check_icmp_v6()
551 return (check_icmp_echo_v6(icmp6h, param)); in check_icmp_v6()
561 probe_param_t *param) in wait_icmp_reply() argument
584 if (check_icmp_v4(buf, rcvd, param) == 0) { in wait_icmp_reply()
602 if (check_icmp_v6(buf, rcvd, param) == 0) { in wait_icmp_reply()
636 udp_query(probe_param_t *param) in udp_query() argument
650 af = set_sockaddr(&dst_addr, &addr_len, &next_hop, param); in udp_query()
652 if ((send_sd = socket(af, SOCK_DGRAM, param->proto)) == -1) in udp_query()
683 tm = (param->timeout * MICROSEC >> 2) * 3; in udp_query()
703 if ((ret = get_lport(send_sd, ¶m->lport)) != 0) in udp_query()
711 (void) wait_icmp_reply(af, recv_sd, &dst_addr, param); in udp_query()
757 ping_query(probe_param_t *param) in ping_query() argument
772 af = set_sockaddr(&dst_addr, &dst_addr_len, &next_hop, param); in ping_query()
804 param->echo_cookie = get_random(); in ping_query()
805 bcopy(¶m->echo_cookie, icmph->icmp_data, in ping_query()
806 sizeof (param->echo_cookie)); in ping_query()
807 bcopy(¶m->port, icmph->icmp_data + sizeof (param->echo_cookie), in ping_query()
808 sizeof (param->port)); in ping_query()
810 param->echo_id = icmph->icmp_id; in ping_query()
811 param->echo_seq = icmph->icmp_seq; in ping_query()
814 (void) alarm(param->timeout); in ping_query()
821 if (wait_icmp_reply(af, sd, &dst_addr, param) != 0) { in ping_query()
840 probe_param_t param; in main() local
854 if (!parse_probe_param(argv, ¶m)) { in main()
859 switch (param.probe) { in main()
861 ret = ping_query(¶m); in main()
864 ret = tcp_query(¶m); in main()
867 ret = udp_query(¶m); in main()