Lines Matching refs:ip
58 register struct ip *ip; in ip_output() local
60 register int hlen = sizeof(struct ip ); in ip_output()
73 ip = mtod(m, struct ip *); in ip_output()
77 ip->ip_v = IPVERSION; in ip_output()
78 ip->ip_off &= IP_DF; in ip_output()
79 ip->ip_id = htons(ip_id++); in ip_output()
80 ip->ip_hl = hlen >> 2; in ip_output()
97 if ((u_int16_t)ip->ip_len <= IF_MTU) { in ip_output()
98 ip->ip_len = htons((u_int16_t)ip->ip_len); in ip_output()
99 ip->ip_off = htons((u_int16_t)ip->ip_off); in ip_output()
100 ip->ip_sum = 0; in ip_output()
101 ip->ip_sum = cksum(m, hlen); in ip_output()
111 if (ip->ip_off & IP_DF) { in ip_output()
132 mhlen = sizeof (struct ip); in ip_output()
133 for (off = hlen + len; off < (u_int16_t)ip->ip_len; off += len) { in ip_output()
134 register struct ip *mhip; in ip_output()
142 mhip = mtod(m, struct ip *); in ip_output()
143 *mhip = *ip; in ip_output()
152 mhip->ip_off = ((off - hlen) >> 3) + (ip->ip_off & ~IP_MF); in ip_output()
153 if (ip->ip_off & IP_MF) in ip_output()
155 if (off + len >= (u_int16_t)ip->ip_len) in ip_output()
156 len = (u_int16_t)ip->ip_len - off; in ip_output()
178 m_adj(m, hlen + firstlen - (u_int16_t)ip->ip_len); in ip_output()
179 ip->ip_len = htons((u_int16_t)m->m_len); in ip_output()
180 ip->ip_off = htons((u_int16_t)(ip->ip_off | IP_MF)); in ip_output()
181 ip->ip_sum = 0; in ip_output()
182 ip->ip_sum = cksum(m, hlen); in ip_output()