> On Sep 23, 2015, at 3:20 PM, David Van Arnem <dvanar...@cmlab.biz> wrote:
> 
> Hi all,
> 
> I'm trying to implement some networking (sending/receiving a couple packets) 
> in a UEFI application I'm developing and testing on a commercial motherboard. 
>  I am able to send a packet if I use SNP, using (approximately):
> 
> gBS->LocateProtocol(&gEfiSimpleNetworkProtocolGuid, NULL, (VOID 
> **)&SnpProtocol);
> SnpProtocol->Transmit(...)
> 
> Instead, though, I would like to send a TCP packet, so I tried locating the 
> gEfiTcp4ProtocolGuid and using the Transmit from that protocol. The 
> LocateProtocol function in this case is returning EFI_NOT_FOUND, which is 
> unfortunate.  Should gEfiTcp4ProtocolGuid be in the motherboard 
> manufacturer's UEFI implementation (i.e. is it up to the developer to include 
> it or not)?  I'm not sure how compliance with the spec works, so I wanted to 
> ask here before I choose an alternative.
> 

David,

The answer to your spec (UEFI 2.5) question is in:
2.6.2 Platform-Specific Elements 

7.
If a platform supports UEFI general purpose network applications, then the 
EFI_MANAGED_NETWORK_PROTOCOL, EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL, 
EFI_ARP_PROTOCOL, EFI_ARP_SERVICE_BINDING_PROTOCOL, EFI_DHCP4_PROTOCOL, 
EFI_DHCP4_SERVICE_BINDING_PROTOCOL, EFI_TCP4_PROTOCOL, 
EFI_TCP4_SERVICE_BINDING_PROTOCOL, EFI_IP4_SERVICE_BINDING_PROTOCOL, 
EFI_IP4_CONFIG2_PROTOCOL, EFI_UDP4_PROTOCOL, and 
EFI_UDP4_SERVICE_BINDING_PROTOCOL are required. If additional IPv6 support is 
needed for the platform, then EFI_DHCP6_PROTOCOL, 
EFI_DHCP6_SERVICE_BINDING_PROTOCOL, EFI_TCP6_PROTOCOL, 
EFI_TCP6_SERVICE_BINDING_PROTOCOL, EFI_IP6_SERVICE_BINDING_PROTOCOL, 
EFI_IP6_CONFIG_PROTOCOL, EFI_UDP6_PROTOCOL, and 
EFI_UDP6_SERVICE_BINDING_PROTOCOL are additionally required. If the network 
application requires DNS capability, EFI_DNS4_SERVICE_BINDING_PROTOCOL and 
EFI_DNS4_PROTOCOL are required for the IPv4 stack. 
EFI_DNS6_SERVICE_BINDING_PROTOCOL and EFI_DNS6_PROTOCOL are required for the 
IPv6 stack. If the netw
 ork environment requires TLS features, 
EFI_TLS_SERVICE_BINDING_PROTOCOL,EFI_TLS_PROTOCOL and 
EFI_TLS_CONFIGURATION_PROTOCOL are required. If the network environment 
requires VLAN features, EFI_VLAN_CONFIG_PROTOCOL is required.

Thanks,

Andrew Fish


> David
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to