Lines Matching refs:p
127 pktbuf_t *p; in send_arp_request() local
131 if ((p = pktbuf_alloc()) == NULL) { in send_arp_request()
135 eth = pktbuf_prepend(p, sizeof(struct eth_hdr)); in send_arp_request()
136 arp = pktbuf_append(p, sizeof(struct arp_pkt)); in send_arp_request()
149 minip_tx_handler(p); in send_arp_request()
183 status_t minip_ipv4_send(pktbuf_t *p, uint32_t dest_addr, uint8_t proto) { in minip_ipv4_send() argument
185 size_t data_len = p->dlen; in minip_ipv4_send()
188 struct ipv4_hdr *ip = pktbuf_prepend(p, sizeof(struct ipv4_hdr)); in minip_ipv4_send()
189 struct eth_hdr *eth = pktbuf_prepend(p, sizeof(struct eth_hdr)); in minip_ipv4_send()
199 pktbuf_free(p, true); in minip_ipv4_send()
208 minip_tx_handler(p); in minip_ipv4_send()
219 pktbuf_t *p; in send_ping_reply() local
225 if ((p = pktbuf_alloc()) == NULL) { in send_ping_reply()
229 icmp = pktbuf_prepend(p, sizeof(struct icmp_pkt)); in send_ping_reply()
230 ip = pktbuf_prepend(p, sizeof(struct ipv4_hdr)); in send_ping_reply()
231 eth = pktbuf_prepend(p, sizeof(struct eth_hdr)); in send_ping_reply()
232 pktbuf_append_data(p, req->data, reqdatalen); in send_ping_reply()
245 minip_tx_handler(p); in send_ping_reply()
263 __NO_INLINE static void handle_ipv4_packet(pktbuf_t *p, const uint8_t *src_mac) { in handle_ipv4_packet() argument
266 ip = (struct ipv4_hdr *)p->data; in handle_ipv4_packet()
267 if (p->dlen < sizeof(struct ipv4_hdr)) in handle_ipv4_packet()
284 if (p->dlen < header_len) { in handle_ipv4_packet()
297 if (htons(ip->len) > p->dlen) { in handle_ipv4_packet()
298 … LTRACEF("REJECT: packet exceeds size of buffer (header %d, dlen %d)\n", htons(ip->len), p->dlen); in handle_ipv4_packet()
303 if (p->dlen > htons(ip->len)) { in handle_ipv4_packet()
304 pktbuf_consume_tail(p, p->dlen - htons(ip->len)); in handle_ipv4_packet()
308 if (pktbuf_consume(p, header_len) == NULL) { in handle_ipv4_packet()
327 if ((icmp = pktbuf_consume(p, sizeof(struct icmp_pkt))) == NULL) { in handle_ipv4_packet()
331 send_ping_reply(ip->src_addr, icmp, p->dlen); in handle_ipv4_packet()
337 udp_input(p, ip->src_addr); in handle_ipv4_packet()
341 tcp_input(p, ip->src_addr, ip->dst_addr); in handle_ipv4_packet()
346 __NO_INLINE static int handle_arp_pkt(pktbuf_t *p) { in handle_arp_pkt() argument
350 eth = (void *) (p->data - sizeof(struct eth_hdr)); in handle_arp_pkt()
352 if ((arp = pktbuf_consume(p, sizeof(struct arp_pkt))) == NULL) { in handle_arp_pkt()
413 void minip_rx_driver_callback(pktbuf_t *p) { in minip_rx_driver_callback() argument
416 if ((eth = (void *) pktbuf_consume(p, sizeof(struct eth_hdr))) == NULL) { in minip_rx_driver_callback()
433 handle_ipv4_packet(p, eth->src_mac); in minip_rx_driver_callback()
438 handle_arp_pkt(p); in minip_rx_driver_callback()