Lines Matching refs:icp
161 struct icmp *icp; in icmp_do_error() local
241 icp = mtod(m, struct icmp *); in icmp_do_error()
245 icp->icmp_type = type; in icmp_do_error()
247 icp->icmp_gwaddr.s_addr = dest; in icmp_do_error()
249 icp->icmp_void = 0; in icmp_do_error()
255 icp->icmp_pptr = code; in icmp_do_error()
259 icp->icmp_nextmtu = htons(destmtu); in icmp_do_error()
262 icp->icmp_code = code; in icmp_do_error()
263 m_copydata(n, 0, icmplen, &icp->icmp_ip); in icmp_do_error()
333 struct icmp *icp; in icmp_input_if() local
371 icp = (struct icmp *)(mtod(m, caddr_t) + hlen); in icmp_input_if()
377 printf("icmp_input, type %d code %d\n", icp->icmp_type, in icmp_input_if()
378 icp->icmp_code); in icmp_input_if()
380 if (icp->icmp_type > ICMP_MAXTYPE) in icmp_input_if()
384 switch (icp->icmp_type) { in icmp_input_if()
410 icmpstat_inc(icps_inhist + icp->icmp_type); in icmp_input_if()
411 code = icp->icmp_code; in icmp_input_if()
412 switch (icp->icmp_type) { in icmp_input_if()
469 if (icmplen < ICMP_ADVLENMIN || icmplen < ICMP_ADVLEN(icp) || in icmp_input_if()
470 icp->icmp_ip.ip_hl < (sizeof(struct ip) >> 2)) { in icmp_input_if()
474 if (IN_MULTICAST(icp->icmp_ip.ip_dst.s_addr)) in icmp_input_if()
478 if (icp->icmp_ip.ip_p == IPPROTO_IPV6) { in icmp_input_if()
480 icmplen < ICMP_V6ADVLEN(icp)) { in icmp_input_if()
488 printf("deliver to protocol %d\n", icp->icmp_ip.ip_p); in icmp_input_if()
493 sin.sin_addr = icp->icmp_ip.ip_dst; in icmp_input_if()
503 ctlfunc = inetsw[ip_protox[icp->icmp_ip.ip_p]].pr_ctlinput; in icmp_input_if()
506 &icp->icmp_ip); in icmp_input_if()
519 icp->icmp_type = ICMP_ECHOREPLY; in icmp_input_if()
535 icp->icmp_type = ICMP_TSTAMPREPLY; in icmp_input_if()
536 icp->icmp_rtime = iptime(); in icmp_input_if()
537 icp->icmp_ttime = icp->icmp_rtime; /* bogus, do later! */ in icmp_input_if()
564 icp->icmp_type = ICMP_MASKREPLY; in icmp_input_if()
565 icp->icmp_mask = ia->ia_sockmask.sin_addr.s_addr; in icmp_input_if()
583 icmpstat_inc(icps_outhist + icp->icmp_type); in icmp_input_if()
602 if (icmplen < ICMP_ADVLENMIN || icmplen < ICMP_ADVLEN(icp) || in icmp_input_if()
603 icp->icmp_ip.ip_hl < (sizeof(struct ip) >> 2)) { in icmp_input_if()
619 memcpy(&sdst.sin_addr, &icp->icmp_ip.ip_dst, in icmp_input_if()
621 memcpy(&sgw.sin_addr, &icp->icmp_gwaddr, in icmp_input_if()
630 inet_ntop(AF_INET, &icp->icmp_gwaddr, gw, sizeof(gw)); in icmp_input_if()
631 inet_ntop(AF_INET, &icp->icmp_ip.ip_dst, in icmp_input_if()
837 struct icmp *icp; in icmp_send() local
840 icp = (struct icmp *)(mtod(m, caddr_t) + hlen); in icmp_send()
841 icp->icmp_cksum = 0; in icmp_send()
1007 icmp_mtudisc(struct icmp *icp, u_int rtableid) in icmp_mtudisc() argument
1012 u_long mtu = ntohs(icp->icmp_nextmtu); /* Why a long? IPv6 */ in icmp_mtudisc()
1014 rt = icmp_mtudisc_clone(icp->icmp_ip.ip_dst, rtableid, 0); in icmp_mtudisc()
1028 mtu = ntohs(icp->icmp_ip.ip_len); in icmp_mtudisc()
1031 mtu -= (icp->icmp_ip.ip_hl << 2); in icmp_mtudisc()
1126 struct icmp *icp; in icmp_do_exthdr() local
1134 icp = (struct icmp *)(mtod(m, caddr_t) + hlen); in icmp_do_exthdr()
1135 if (icp->icmp_type != ICMP_TIMXCEED && icp->icmp_type != ICMP_UNREACH && in icmp_do_exthdr()
1136 icp->icmp_type != ICMP_PARAMPROB) in icmp_do_exthdr()
1140 if (icp->icmp_length != 0) in icmp_do_exthdr()
1150 icp->icmp_length = off / sizeof(u_int32_t); in icmp_do_exthdr()