Tag: pbuf
All the articles with the tag "pbuf".
-
lwIP에서 송신이 가끔 멈춘다: linkoutput에서 TX descriptor와 pbuf 수명을 같이 보자
lwIP 포팅에서 수신은 되는데 송신이 부하 중 멈추거나 linkoutput이 실패하면 TX descriptor 회수, pbuf chain 처리, zero-copy pbuf lifetime을 같이 봐야 한다. 복사 기반 송신과 DMA zero-copy 송신에서 ownership 기준이 어떻게 달라지는지 정리한다.
-
lwIP에서 RX pbuf를 넘긴 뒤 가끔 깨진다: tcpip_input ownership을 먼저 정리하자
lwIP 포팅에서 RX 패킷을 tcpip_input()으로 넘긴 뒤 간헐적인 payload 깨짐, double free, PBUF_POOL 고갈이 보이면 pbuf ownership 규칙을 먼저 확인해야 한다. ERR_OK와 실패 반환값, DMA 버퍼 재사용, ISR 컨텍스트, 예외 경로별 pbuf_free 기준을 정리한다.
-
lwIP RAW UDP callback 뒤에 수신이 멈춘다: pbuf_free를 놓치면 PBUF_POOL이 먼저 마른다
lwIP에서 UDP는 처음엔 잘 되는데 몇 분 뒤부터 recv callback이 끊기거나 pbuf_alloc 실패가 보이면, 드라이버보다 먼저 RAW UDP callback에서 pbuf_free를 빠뜨린 경로를 확인해야 한다. 작은 누수 하나가 PBUF_POOL 고갈로 이어져 전체 RX 경로를 막을 수 있다.
-
-
lwIP에서 UDP 길이가 가끔 잘못 읽힌다: pbuf 체인에서는 len 말고 tot_len을 봐야 한다
lwIP에서 UDP 수신 데이터가 가끔 중간에서 잘리거나 길이가 들쭉날쭉해 보이면 드라이버보다 먼저 pbuf 체인 처리 코드를 확인해야 한다. 첫 pbuf의 len만 보고 전체 길이로 오해하면 큰 프레임, 정렬 차이, pool 분할 상황에서 재현이 애매한 버그가 생긴다.
-
lwIP pbuf가 가끔 터진다: PBUF_REF/POOL/RAM 수명주기와 zero-copy 함정
lwIP에서 네트워크가 '가끔만' 죽는 이슈는 pbuf 수명주기 문제인 경우가 많다. 특히 PBUF_REF/zero-copy를 섞으면 버퍼 재사용 타이밍이 한 번만 어긋나도 랜덤 크래시가 난다. pbuf 타입별 수명주기와 실무에서 자주 터지는 함정을 짧게 정리한다.