[if gte mso 9]>

[edk2] Network - Must Ping Out First

Subject: [edk2] Network - Must Ping Out First

From: "Cohen, Eugene" <eugene@hp.com>

To: "edk2-devel@lists.sourceforge.net" <edk2-devel@lists.sourceforge.net>

Date: 2012-05-23 05:55:13

Dear MdeModulePkg Network maintainer,


I’m seeing an issue with IPv4 networking (in MdeModulePkg, not using IPv6 stuff from NetworkPkg) where the stack seems to require some outbound packets before it will respond to incoming ARPs or pings.


Here’s what fails:

1.       Run an app that starts listening on a TCP port

2.       Try to arp/ping/connect from an outside host – No response!


But this works:

1.       Try to ping another node on the network

a.       This does dhcp, gets an IP address, etc

2.       Then run the same app from #1 in the first case which listens on a TCP port

3.       Try to arp/ping/connect – Success!


The app is very simple, it basically does these steps (up to the point of failure):

1.       Configure TCP4

a.       This does dhcp, gets an IP address, etc

2.       Call TCP4 Accept() to start listening for a connection

3.       Gets the node’s IP address through GetModeData to display to the user while the listener is still active


I think something about the stack is being configured differently in the second case to enable proper response to ARP requests.  I wonder if the first case has been tested since the more common case for UEFI is to PXE boot which means that packets are originating from firmware as a client.


Has this case been tested or is this a known issue?