WIZnet Developer Forum

[W7500P] DHCP 관련 문의 드립니다.

안녕하세요. 제이스테판이라고 합니다.(구 세우테크)

2019년 7월 4일경 저희 엔지니어가 정형기 마스터님께 메일로 문의드린 사항이 있습니다.
상황은 아래와 같습니다.

당사에서 출하한 Ethernet Card를 사용하는 해외 업체에서 사용중에 연결이 끊기는 증상이 있어서 문의 드립니다.

증상)
- 장치를 켜면 약 5분정도 연결이 잘 되다가 연결이 끊긴다고 합니다(재부팅하면 연결이 되지만 이후 연결 끊김)

사용 네트워크 장비)
1. Linksys 52Port POE Smart Switch
2. Barracuda F80 Firewall

위 문제의 원인을 확인하기 위해서 어떤 방법으로 확인해야 할까요?
혹시 네트워크 장비와의 호환이 문제된 History가 있나요?

확인 부탁드립니다.
감사합니다.

이후 펌웨어를 새롭게 보내주셨다고 들었는데(v 3.15), 전달주신 펌웨어를 고객사에 보내 확인 결과 여전히 연결이 끊어지는 현상이 발생한다고 합니다.

추가적으로 위 업체에서 DHCP를 사용하여 IP를 할당받아 사용한다고 합니다.
소스 분석 결과 DHCP 관련 함수
DHCP_run(void)
check_DHCP_leasedIP(void)
check_DHCP_timeout(void)
에서
dhcp_tick_1s 변수가 문제를 발생시키는 것 같아 문의를 드리게 되었습니다.

ret = dhcp_tick_1s;
while((dhcp_tick_1s - ret) < 2);

위와같이 사용되어 의미 없는 코드가 됩니다.
또는

if (dhcp_tick_next < dhcp_tick_1s) {
...........(DISCOVER 를 다시 보내는 코드)
dhcp_tick_1s = 0;
dhcp_tick_next = dhcp_tick_1s + DHCP_WAIT_TIME;
dhcp_retry_count++;
}

위와같이 사용되어 time out이 걸렸을 시 DISCOVER 신호를 다시 보내지 않습니다.

그리하여 문의 사항으로는

  1. 보내주셨던 3.15 버전은 어떤 사항들이 업데이트 된 것인지요?
  2. 해당 dhcp_tick_1s 변수 관련하여 DHCP 기능에 문제가 없는지 테스트 해주실 수 있을까요?

답변 부탁드립니다. 감사합니다.

안녕하세요.
내부적으로 확인한 결과, 귀사에서는 저희 레퍼런스 코드를 이용해서 직접 펌웨어를 개발하셨다고 합니다.
V3.15라는 코드는 저희쪽에는 없는 코드입니다. 아마도 귀사에서 개발하신 펌웨어의 버전인 것으로 판단됩니다.

지금 사용중인 펌웨어의 DHCP 관련 부분 코드를 보내주시면 어떤 부분이 잘못되었는지 확인해 드리도록 하겠습니다.

감사합니다.

네 확인 감사합니다.

코드를 어느 분에게 보내드리면 될까요? 메일 주소를 알려주시면 감사하겠습니다.

support@wiznet.io 로 보내주세요.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.