icmp_ip
rt = icmp_mtudisc_clone(icp->icmp_ip.ip_dst, rtableid, 0);
mtu = ntohs(icp->icmp_ip.ip_len);
mtu -= (icp->icmp_ip.ip_hl << 2);
m_copydata(n, 0, icmplen, &icp->icmp_ip);
icp->icmp_ip.ip_hl < (sizeof(struct ip) >> 2)) {
if (IN_MULTICAST(icp->icmp_ip.ip_dst.s_addr))
if (icp->icmp_ip.ip_p == IPPROTO_IPV6) {
printf("deliver to protocol %d\n", icp->icmp_ip.ip_p);
sin.sin_addr = icp->icmp_ip.ip_dst;
ctlfunc = inetsw[ip_protox[icp->icmp_ip.ip_p]].pr_ctlinput;
&icp->icmp_ip);
icp->icmp_ip.ip_hl < (sizeof(struct ip) >> 2)) {
memcpy(&sdst.sin_addr, &icp->icmp_ip.ip_dst,
inet_ntop(AF_INET, &icp->icmp_ip.ip_dst,
#define ICMP_V6ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 40)
#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8)
offsetof(struct icmp, icmp_ip));
icp = (struct icmp *)((caddr_t) ip - offsetof(struct icmp, icmp_ip));
offsetof(struct icmp, icmp_ip));
tp->t_pmtud_ip_len = icp->icmp_ip.ip_len;
tp->t_pmtud_ip_hl = icp->icmp_ip.ip_hl;
icmp.icmp_ip.ip_len = tp->t_pmtud_ip_len;
icmp.icmp_ip.ip_hl = tp->t_pmtud_ip_hl;
icmp.icmp_ip.ip_dst = inp->inp_faddr;
TCHECK(dp->icmp_ip.ip_dst);
TCHECK(dp->icmp_ip.ip_p);
ipaddr_string(&dp->icmp_ip.ip_dst),
dp->icmp_ip.ip_p);
TCHECK(dp->icmp_ip.ip_p);
oip = &dp->icmp_ip;
ipaddr_string(&dp->icmp_ip.ip_dst), mtu);
ipaddr_string(&dp->icmp_ip.ip_dst));
ipaddr_string(&dp->icmp_ip.ip_dst));
TCHECK(dp->icmp_ip.ip_dst);
ipaddr_string(&dp->icmp_ip.ip_dst),
TCHECK(dp->icmp_ip.ip_dst);
TTEST(dp->icmp_ip)) {
oip = &dp->icmp_ip;
hip = &icp->icmp_ip;
in_addr_t *lp = (in_addr_t *)&icp->icmp_ip;