Lines Matching refs:iph

43 	struct iphdr *iph;  in ForwardIPPacket()  local
56 daddr = pctx->p.iph->daddr; in ForwardIPPacket()
59 pctx->out_ifidx = GetOutputInterface(pctx->p.iph->daddr); in ForwardIPPacket()
73 uint8_t *da = (uint8_t *)&(pctx->p.iph->daddr); in ForwardIPPacket()
94 iph = (struct iphdr *) EthernetOutput (mtcp, pctx, ETH_P_IP, in ForwardIPPacket()
96 if (iph) in ForwardIPPacket()
97 memcpy(iph, pctx->p.iph, pctx->p.ip_len); in ForwardIPPacket()
105 (char *)iph - sizeof(struct ethhdr), in ForwardIPPacket()
113 FillOutPacketIPContext(struct pkt_ctx *pctx, struct iphdr *iph, int ip_len) in FillOutPacketIPContext() argument
115 pctx->p.iph = iph; in FillOutPacketIPContext()
126 struct iphdr *iph; in IPOutputStandalone() local
151 iph = (struct iphdr *)EthernetOutput(mtcp, pctx, in IPOutputStandalone()
153 if (!iph) { in IPOutputStandalone()
157 iph->ihl = IP_HEADER_LEN >> 2; in IPOutputStandalone()
158 iph->version = 4; in IPOutputStandalone()
159 iph->tos = 0; in IPOutputStandalone()
160 iph->tot_len = htons(IP_HEADER_LEN + tcplen); in IPOutputStandalone()
161 iph->id = htons(ip_id); in IPOutputStandalone()
162 iph->frag_off = htons(0x4000); // no fragmentation in IPOutputStandalone()
163 iph->ttl = 64; in IPOutputStandalone()
164 iph->protocol = IPPROTO_TCP; in IPOutputStandalone()
165 iph->saddr = saddr; in IPOutputStandalone()
166 iph->daddr = daddr; in IPOutputStandalone()
167 iph->check = 0; in IPOutputStandalone()
171 rc = mtcp->iom->dev_ioctl(mtcp->ctx, nif, PKT_TX_IP_CSUM, iph); in IPOutputStandalone()
174 iph->check = ip_fast_csum(iph, iph->ihl); in IPOutputStandalone()
176 FillOutPacketIPContext(pctx, iph, tcplen + IP_HEADER_LEN); in IPOutputStandalone()
178 return (uint8_t *)(iph + 1); in IPOutputStandalone()
185 struct iphdr *iph; in IPOutput() local
213 iph = (struct iphdr *)EthernetOutput(mtcp, pctx, ETH_P_IP, in IPOutput()
215 if (!iph) { in IPOutput()
219 iph->ihl = IP_HEADER_LEN >> 2; in IPOutput()
220 iph->version = 4; in IPOutput()
221 iph->tos = 0; in IPOutput()
222 iph->tot_len = htons(IP_HEADER_LEN + tcplen); in IPOutput()
223 iph->id = htons(stream->sndvar->ip_id++); in IPOutput()
224 iph->frag_off = htons(0x4000); // no fragmentation in IPOutput()
225 iph->ttl = 64; in IPOutput()
226 iph->protocol = IPPROTO_TCP; in IPOutput()
227 iph->saddr = stream->saddr; in IPOutput()
228 iph->daddr = stream->daddr; in IPOutput()
229 iph->check = 0; in IPOutput()
233 rc = mtcp->iom->dev_ioctl(mtcp->ctx, nif, PKT_TX_IP_CSUM, iph); in IPOutput()
236 iph->check = ip_fast_csum(iph, iph->ihl); in IPOutput()
238 FillOutPacketIPContext(pctx, iph, tcplen + IP_HEADER_LEN); in IPOutput()
240 return (uint8_t *)(iph + 1); in IPOutput()