Guys,
I've been working on porting a custom OS (with Networking) onto the Cortex-R52 FVP Model, and so far everything has worked well. We have been able to get the OS ported with the ARM Memory Protection unit. For Networking, we are using the lan91c111 driver with User Networking support enabled (-C bp.hostbridge.userNetworking=true). In order to map ports between the host machine and the fvp model, we are using the -C bp.hostbridge.userNetPorts="<host_port>=<fvp_port>" command. This command seems to work well for TCP, but not for UDP. For example, If I add a port mapping of 8080<->8080 between the host and fvp and send a TCP packet to the 8080 port, it is received. However if I send a UDP packet to the same port, it is rejected and not received by the OS. I searched through the R52 FVP documentation and was not able to find anything specific to UDP. The documentation says that User Networking supports TCP / UDP where the port mappings are dictated by userNetPorts command. Is there anything that is not mentioned in the document or something that I'm doing wrong ?
Hoping to hear from you guys soon.
UDP should work per the documentation. I am checking into whether there are additional settings that are needed for this mode.
Hi Rob,
I wasn't able to find any specific settings for UDP in the documentation. The docs says that User Networking supports UDP / TCP and the way to add port mappings is via UserNetPorts command. This is somewhat obscure for me as I come from QEMU background where we have to explicitly specify whether the port mapping is for TCP or UDP. Currently, I've added -C bp.hostbridge.userNetPorts="8069=8069" to the CADI parameters and have a TCP / UDP client on the Windows machine. The TCP client can get to the OS (I get an Interrupt in the Ethernet driver), but the UDP client can't (on the same port, 8069). Let me know if I've missed something here..
Thanks,
Hi Bilal, we had a look at the underlying code. UDP is not supported, only TCP. I'm sorry to say this looks like a documentation error claiming support where we do not.
Do you need UDP support, or is TCP sufficient for your needs?
Well, we do need this to claim full support for Networking on FVP as some of the protocols can only work with UDP (DHCP Server, TFTP etc). Is it possible for you guys to add this support in your next release ? For now, I can think about using the TAP-TUN Networking, but I've always had troubles with using this support on the Windows host. Can you confirm that the documentation related to TAP-TUN Networking is completely updated, and it can support ICMP / TCP / UDP like a normal Network Interface ? Note that I'm using the FVP Model 11.7, which is the latest release AFAIK..
Hi Bilal, TAP/TUN operates at a lower layer in the stack than TCP and UDP so it should work with either.
some additional information on user-mode networking and UDP: it will support outgoing UDP. It odes not support forwarding UDP ports on the host to the model.
If you would like us to consider extending the user-mode networking support of UDP, could I ask that you submit a request to the support email alias making the request so we have a record and can track it.
Thanks for confirming that TAP-TUN works with UDP / TCP (that was my expectation, but needed confirmation). And Yes, I've seen outgoing UDP traffic when I request the In-built DHCP Server for an IP Address. However, that's not useful for cases where OS wants to act as a server.. In any case, thanks for the help on this..