WIZnet Developer Forum

Can W5500 send packet to itself

For example, W5500 ip address is 192.168.1.1, then send a IP packet to 192.168.1.1, can W5500 receive this packet?
When I send this packet, the IR register tells timeout. Is there any solution?

Try the following: include router into the network segment, and configure it in GAR register. Will it work then?

At first, thanks a lot for you suggestion.
No, it does not work. And I can’t capture the outgoing packet on ethernet.
If the target address is itself, I think the TCP/IP stack should not send packet to PHY, and the packet should be handled internally.
It seems W5500 does not support this feature, and it will send every packet to ethernet. Is that correct?

I do not know. From application point of view such loopback of not much use, thus I would not be surprised that it is not implemented as you suggest.
However, if W5500 would use its standard algorithm, it would need to resolve its IP address into MAC address (using its internal ARP cache [not sure if it has one BTW] or sending broadcast ARP request - and this one you would see with Wireshark), and then transmitting the packet to its another listening socket.

For example, ping 127.0.0.1
When ethernet is not working, we can use this to verify that TCP/IP stack is still working.
It seems that W5500 does not have any arp cache, when I ping the same address for 5 times, I can capture 5 arp packets.
If the target address is itself or 127.0.0.1, this chip only needs to copy the packet from TX buffer to RX buffer.
Anyway, really appreciate your help!

Localhost is supported by the operating system and not NIC, do not forget about it.

Let’s look at it differently. Why do you need to send information to self? Would it be better to manage data transfer on the driver/application level? Probably you can change your goal so that this issue would not need to be solved at all.

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