W5500 tcp connect함수에서 timeout 미발생

안녕하세요?
W5500을 사용중이고요, tcp client로 구현/시험중입니다.
정상적인 ip로 connect함수를 호출하면, 정상동작합니다.
일부러 다른 ip로 connect함수를 호출하면, connect함수내의

while(getSn_SR(sn) != SOCK_ESTABLISHED)
{
if (getSn_IR(sn) & Sn_IR_TIMEOUT)
{
setSn_IR(sn, Sn_IR_TIMEOUT);
return SOCKERR_TIMEOUT;
}

	if (getSn_SR(sn) == SOCK_CLOSED)
	{
		return SOCKERR_SOCKCLOSED;
	}
}

에서 나오지못하네요. 시험을 위해 watchdog도 꺼둔 상태입니다.
감사합니다.

wiz_NetTimeout net_tm_cfg = {.retry_cnt = 3, .time_100us = 10};

ctlnetwork(CN_SET_TIMEOUT, (void *)&net_tm_cfg);
ctlnetwork(CN_GET_TIMEOUT, (void *)&net_tm_cfg);
로 설정한 상태입니다

안녕하세요 다른 IP로 connect 함수를 수행하신다면 네트워크상에 존재하지 않은 Server IP를 말씀하시는건가요?
만약 그렇다면 해당 timeout 동작은 정상으로 보시면 될것 같습니다.
Connect 커맨드를 통해 TCP SYN packet이 전송되기 이전에 ARP를 통한 IP node 확인을 수행합니다. 이 단계에서 상대방 IP node가 발견되지 않으면 timeout 에 의한 connection함수가 err return 합니다.

아뇨.
timeout이 발생하지 않고, while loop에서 빠져나오지 못해서요.

안녕하세요
W5500과 TCP Server 간의 네트워크 IP 주소 및 물리적인 연결에 대한 내용 전달을 부탁드립니다.
그리고 해당 while문에서 getSn_SR() 및 getSn_IR 값 출력을 확인해주세요
추가로 해당 동작간에 PC에서 wireshark를 통해 W5500이 전송하는 ARP를 확인해봐야 할 것 같습니다. 다만, 이러기 위해서는 최소한 PC와의 IP 주소 대역이 맞아야 합니다.
만약 PC가 192.168.10.10 이라면 Subnet mask에 맞춰서 192.168.10.100등의 주소로 전송을 하면 PC의 wireshark에서도 확인이 될 것 같습니다.
혹시, 테스트중인 컨디션에 대해서 다른 IP로 connection을 시도하시는 이유가 있을까요?
감사합니다.

현상은 다음과 같습니다.

  1. 서버 IP는 존재하는 서버의 주소이나, 서버에 올라가 있는 서버app이 listen상태가 아닌경우
  2. 아예 존재하지 않는 서버 주소

Case 1의 경우에는 connect()에서 SOCKERR_SOCKCLOSED가 리턴됩니다.
Case 2의 경우에는 connect()함수 내의 while()에서 빠져나오지 못합니다.
IR=0, SR=0x15이고요.

여러가지 오류 case를 가정해서 시험해보고 있습니다.
그리고, 시험용 서버는 로컬망이 아닌 네이버클라우드서버(고정IP)를 사용하고 있습니다.

안녕하세요
먼저 동작을 확인해본 결과 하기와 같이 PC의 wireshark에서 W5500이 전송하는 ARP가 총8번 확인이 되었고 timeout error (-13) 리턴값을 확인했습니다.


상기의 내용을 명확히 하기 위해서 PC의 wireshark에서 실제 ARP가 전송되는지에 대한 확인을 했으면 합니다. W5500의 임의의 서버주소를 PC와 서브넷 주소는 동일하고 호스트 주소만 없는 주소로 설정하시면 PC에서도 확인이 가능합니다.

답신 감사합니다.
공유기가 포트미러링이 되지 않아, wireshark로 바로 시험은 못해보겠네요
위는 로그는 동일 서브넷 상에서 서버를 동작시키신 것 같은데요, 서버가 동일 서브넷상에 있지 않은 경우에도 같은 결과인지요?
포트미러링이 가능한 공유기를 구해서 시험해보겠습니다.

네트워크 환경은 다르더라도 칩 기능을 확인하면 되는 부분이라 혹시 단말을 노트북과 다이렉트로 연결해서 확인이 가능할까요?

정정합니다. Sn_SR 0x15는 ARP 전송중인 상태입니다. wireshark를 통해 RTR 기본값에 따라 총 8번 ARP를 전송하는지 확인 후에도 timeout이 안되는 부분에 대해서는 별도의 조치방안을 확인해보겠습니다.

이 thread는 Close인가요?

wireshark를 통한 증상은 확인하셨나요? 상태는 보내주시면 다시한번 확인해보겠습니다.