• Home
  • Raw
  • Download

Lines Matching refs:ip

51 static struct ip *ip_reass(register struct ip *ip,
78 register struct ip *ip; in ip_input() local
87 if (m->m_len < sizeof (struct ip)) { in ip_input()
92 ip = mtod(m, struct ip *); in ip_input()
94 if (ip->ip_v != IPVERSION) { in ip_input()
99 hlen = ip->ip_hl << 2; in ip_input()
100 if (hlen<sizeof(struct ip ) || hlen>m->m_len) {/* min header length */ in ip_input()
117 NTOHS(ip->ip_len); in ip_input()
118 if (ip->ip_len < hlen) { in ip_input()
122 NTOHS(ip->ip_id); in ip_input()
123 NTOHS(ip->ip_off); in ip_input()
131 if (m->m_len < ip->ip_len) { in ip_input()
137 if (ip_geth(ip->ip_dst) != special_addr_ip) { in ip_input()
138 if (ip_getn(ip->ip_dst) == 0xffffffffu && ip->ip_p != IPPROTO_UDP) in ip_input()
141 int host = ip_geth(ip->ip_dst) & 0xff; in ip_input()
157 if (m->m_len > ip->ip_len) in ip_input()
158 m_adj(m, ip->ip_len - m->m_len); in ip_input()
161 if(ip->ip_ttl==0 || ip->ip_ttl==1) { in ip_input()
185 if (ip->ip_off &~ IP_DF) { in ip_input()
194 if (ip->ip_id == fp->ipq_id && in ip_input()
195 ip_equal(ip->ip_src, fp->ipq_src) && in ip_input()
196 ip_equal(ip->ip_dst, fp->ipq_dst) && in ip_input()
197 ip->ip_p == fp->ipq_p) in ip_input()
208 ip->ip_len -= hlen; in ip_input()
209 if (ip->ip_off & IP_MF) in ip_input()
210 ip->ip_tos |= 1; in ip_input()
212 ip->ip_tos &= ~1; in ip_input()
214 ip->ip_off <<= 3; in ip_input()
221 if (ip->ip_tos & 1 || ip->ip_off) { in ip_input()
223 ip = ip_reass(ip, fp); in ip_input()
224 if (ip == NULL) in ip_input()
227 m = dtom(ip); in ip_input()
233 ip->ip_len -= hlen; in ip_input()
239 switch (ip->ip_p) { in ip_input()
260 #define fragtoip(P) ((struct ip*)(((char*)(P)) + sizeof(struct qlink)))
267 static struct ip *
268 ip_reass(register struct ip *ip, register struct ipq *fp) in ip_reass() argument
270 register struct mbuf *m = dtom(ip); in ip_reass()
272 int hlen = ip->ip_hl << 2; in ip_reass()
276 DEBUG_ARG("ip = %lx", (long)ip); in ip_reass()
297 fp->ipq_p = ip->ip_p; in ip_reass()
298 fp->ipq_id = ip->ip_id; in ip_reass()
300 fp->ipq_src = ip->ip_src; in ip_reass()
301 fp->ipq_dst = ip->ip_dst; in ip_reass()
311 if (q->ipf_off > ip->ip_off) in ip_reass()
321 i = pq->ipf_off + pq->ipf_len - ip->ip_off; in ip_reass()
323 if (i >= ip->ip_len) in ip_reass()
325 m_adj(dtom(ip), i); in ip_reass()
326 ip->ip_off += i; in ip_reass()
327 ip->ip_len -= i; in ip_reass()
336 ip->ip_off + ip->ip_len > q->ipf_off) { in ip_reass()
337 i = (ip->ip_off + ip->ip_len) - q->ipf_off; in ip_reass()
354 ip_enq(iptofrag(ip), q->ipf_prev); in ip_reass()
401 ip = fragtoip(q); in ip_reass()
402 ip->ip_len = next; in ip_reass()
403 ip->ip_tos &= ~1; in ip_reass()
404 ip->ip_src = fp->ipq_src; in ip_reass()
405 ip->ip_dst = fp->ipq_dst; in ip_reass()
408 m->m_len += (ip->ip_hl << 2); in ip_reass()
409 m->m_data -= (ip->ip_hl << 2); in ip_reass()
411 return ip; in ip_reass()
503 register struct ip *ip = mtod(m, struct ip *); local
513 dst = ip->ip_dst;
514 cp = (u_char *)(ip + 1);
515 cnt = (ip->ip_hl << 2) - sizeof (struct ip);
525 code = &cp[IPOPT_OLEN] - (u_char *)ip;
546 code = &cp[IPOPT_OFFSET] - (u_char *)ip;
549 ipaddr.sin_addr = ip->ip_dst;
569 save_rte(cp, ip->ip_src);
589 ip->ip_dst = ipaddr.sin_addr;
596 forward = !IN_MULTICAST(ntohl(ip->ip_dst.s_addr));
601 code = &cp[IPOPT_OFFSET] - (u_char *)ip;
610 bcopy((caddr_t)(&ip->ip_dst), (caddr_t)&ipaddr.sin_addr,
628 code = cp - (u_char *)ip;
707 struct ip *ip = mtod(m, struct ip *);
711 olen = (ip->ip_hl<<2) - sizeof (struct ip);
712 opts = (caddr_t)(ip + 1);
713 i = m->m_len - (sizeof (struct ip) + olen);
717 ip->ip_hl = sizeof(struct ip) >> 2;