@@ -26,9 +26,6 @@ LOG_MODULE_REGISTER(wifi_esp, CONFIG_WIFI_LOG_LEVEL);
2626
2727#include "esp.h"
2828
29- #define RX_NET_PKT_ALLOC_TIMEOUT \
30- K_MSEC(CONFIG_WIFI_ESP_RX_NET_PKT_ALLOC_TIMEOUT)
31-
3229/* pin settings */
3330enum modem_control_pins {
3431#if DT_INST_NODE_HAS_PROP (0 , power_gpios )
@@ -394,48 +391,6 @@ MODEM_CMD_DEFINE(on_cmd_closed)
394391 return 0 ;
395392}
396393
397- struct net_pkt * esp_prepare_pkt (struct esp_data * dev , struct net_buf * src ,
398- size_t offset , size_t len )
399- {
400- struct net_buf * frag ;
401- struct net_pkt * pkt ;
402- size_t to_copy ;
403-
404- pkt = net_pkt_rx_alloc_with_buffer (dev -> net_iface , len , AF_UNSPEC ,
405- 0 , RX_NET_PKT_ALLOC_TIMEOUT );
406- if (!pkt ) {
407- return NULL ;
408- }
409-
410- frag = src ;
411-
412- /* find the right fragment to start copying from */
413- while (frag && offset >= frag -> len ) {
414- offset -= frag -> len ;
415- frag = frag -> frags ;
416- }
417-
418- /* traverse the fragment chain until len bytes are copied */
419- while (frag && len > 0 ) {
420- to_copy = MIN (len , frag -> len - offset );
421- if (net_pkt_write (pkt , frag -> data + offset , to_copy ) != 0 ) {
422- net_pkt_unref (pkt );
423- return NULL ;
424- }
425-
426- /* to_copy is always <= len */
427- len -= to_copy ;
428- frag = frag -> frags ;
429-
430- /* after the first iteration, this value will be 0 */
431- offset = 0 ;
432- }
433-
434- net_pkt_cursor_init (pkt );
435-
436- return pkt ;
437- }
438-
439394/*
440395 * Passive mode: "+IPD,<id>,<len>\r\n"
441396 * Other: "+IPD,<id>,<len>:<data>"
@@ -512,7 +467,6 @@ MODEM_CMD_DIRECT_DEFINE(on_cmd_ipd)
512467 cmd_handler_data );
513468 struct esp_socket * sock ;
514469 int data_offset , data_len ;
515- struct net_pkt * pkt ;
516470 uint8_t link_id ;
517471 char cmd_end ;
518472 int err ;
@@ -553,25 +507,7 @@ MODEM_CMD_DIRECT_DEFINE(on_cmd_ipd)
553507 return - EAGAIN ;
554508 }
555509
556- if ((sock -> flags & (ESP_SOCK_CONNECTED | ESP_SOCK_CLOSE_PENDING )) !=
557- ESP_SOCK_CONNECTED ) {
558- LOG_DBG ("Received data on closed link %d" , sock -> link_id );
559- return data_offset + data_len ;
560- }
561-
562- pkt = esp_prepare_pkt (dev , data -> rx_buf , data_offset , data_len );
563- if (!pkt ) {
564- LOG_ERR ("Failed to get net_pkt: len %d" , data_len );
565- if (sock -> type == SOCK_STREAM ) {
566- sock -> flags |= ESP_SOCK_CLOSE_PENDING ;
567- }
568- goto submit_work ;
569- }
570-
571- k_fifo_put (& sock -> fifo_rx_pkt , pkt );
572-
573- submit_work :
574- k_work_submit_to_queue (& dev -> workq , & sock -> recv_work );
510+ esp_socket_rx (sock , data -> rx_buf , data_offset , data_len );
575511
576512 return data_offset + data_len ;
577513}
0 commit comments