Hi Sivaraman,

We did this recently in project mu, trying to find exactly the changes needed but I recall the following:

  1. Mac Address needs to be programmed before network stack fully loads (pretty sure I only got it working in DXE), possible to add changes from this PR and have an event callback to set mac address
    1. Event Add a named event that is signalled when Snp->Initialize() is executed. · microsoft/mu_basecore@7dc143d (github.com)
    2. DXE Driver code to handle the Mac programming when the SNP is installed Add MacEmulationDxe Support by Erich-McMillan · Pull Request #109 · microsoft/mu_plus (github.com)
      1. If you don't take this driver as is be very careful to copy the TPL levels from event handers not doing this will cause issues
  2. This change to reload the Snp info in ARP might be needed too ArpDriver: refetch Snp Mode data after running MnpConfigure · microsoft/mu_basecore@2b8ad03 (github.com)
Let me know if you have any issues/questions. Its been a while since I looked at this code.

-Erich