TianoCore EDK2 master
Loading...
Searching...
No Matches
Ip4Common.c File Reference
#include "Ip4Impl.h"

Go to the source code of this file.

Functions

INTN Ip4GetNetCast (IN IP4_ADDR IpAddr, IN IP4_INTERFACE *IpIf)
 
INTN Ip4GetHostCast (IN IP4_SERVICE *IpSb, IN IP4_ADDR Dst, IN IP4_ADDR Src)
 
IP4_INTERFACEIp4FindInterface (IN IP4_SERVICE *IpSb, IN IP4_ADDR Ip)
 
IP4_INTERFACEIp4FindNet (IN IP4_SERVICE *IpSb, IN IP4_ADDR Ip)
 
IP4_INTERFACEIp4FindStationAddress (IN IP4_SERVICE *IpSb, IN IP4_ADDR Ip, IN IP4_ADDR Netmask)
 
EFI_STATUS Ip4GetMulticastMac (IN EFI_MANAGED_NETWORK_PROTOCOL *Mnp, IN IP4_ADDR Multicast, OUT EFI_MAC_ADDRESS *Mac)
 
IP4_HEADIp4NtohHead (IN IP4_HEAD *Head)
 
BOOLEAN Ip4StationAddressValid (IN IP4_ADDR Ip, IN IP4_ADDR Netmask)
 

Detailed Description

Copyright (c) 2005 - 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Ip4Common.c.

Function Documentation

◆ Ip4FindInterface()

IP4_INTERFACE * Ip4FindInterface ( IN IP4_SERVICE IpSb,
IN IP4_ADDR  Ip 
)

Find an interface whose configured IP address is Ip.

Parameters
[in]IpSbThe IP4 service binding instance
[in]IpThe Ip address (host byte order) to find
Returns
The IP4_INTERFACE point if found, otherwise NULL

Definition at line 124 of file Ip4Common.c.

◆ Ip4FindNet()

IP4_INTERFACE * Ip4FindNet ( IN IP4_SERVICE IpSb,
IN IP4_ADDR  Ip 
)

Find an interface that Ip is on that connected network.

Parameters
[in]IpSbThe IP4 service binding instance
[in]IpThe Ip address (host byte order) to find
Returns
The IP4_INTERFACE point if found, otherwise NULL

Definition at line 153 of file Ip4Common.c.

◆ Ip4FindStationAddress()

IP4_INTERFACE * Ip4FindStationAddress ( IN IP4_SERVICE IpSb,
IN IP4_ADDR  Ip,
IN IP4_ADDR  Netmask 
)

Find an interface of the service with the same Ip/Netmask pair.

Parameters
[in]IpSbIp4 service binding instance
[in]IpThe Ip address to find (host byte order)
[in]NetmaskThe network to find (host byte order)
Returns
The IP4_INTERFACE point if found, otherwise NULL

Definition at line 183 of file Ip4Common.c.

◆ Ip4GetHostCast()

INTN Ip4GetHostCast ( IN IP4_SERVICE IpSb,
IN IP4_ADDR  Dst,
IN IP4_ADDR  Src 
)

Find the cast type of the packet related to the local host. This isn't the same as link layer cast type. For example, DHCP server may send local broadcast to the local unicast MAC.

Parameters
[in]IpSbThe IP4 service binding instance that received the packet
[in]DstThe destination address in the packet (host byte order)
[in]SrcThe source address in the packet (host byte order)
Returns
The cast type for the Dst, it will return on the first non-promiscuous cast type to a configured interface. If the packet doesn't match any of the interface, multicast address and local broadcast address are checked.

Definition at line 59 of file Ip4Common.c.

◆ Ip4GetMulticastMac()

EFI_STATUS Ip4GetMulticastMac ( IN EFI_MANAGED_NETWORK_PROTOCOL Mnp,
IN IP4_ADDR  Multicast,
OUT EFI_MAC_ADDRESS Mac 
)

Get the MAC address for a multicast IP address. Call Mnp's McastIpToMac to find the MAC address in stead of hard code the NIC to be Ethernet.

Parameters
[in]MnpThe Mnp instance to get the MAC address.
[in]MulticastThe multicast IP address to translate.
[out]MacThe buffer to hold the translated address.
Return values
EFI_SUCCESSif the multicast IP is successfully translated to a multicast MAC address.
otherOtherwise some error.

Definition at line 218 of file Ip4Common.c.

◆ Ip4GetNetCast()

INTN Ip4GetNetCast ( IN IP4_ADDR  IpAddr,
IN IP4_INTERFACE IpIf 
)

Return the cast type (Unicast/Broadcast) specific to an interface. All the addresses are host byte ordered.

Parameters
[in]IpAddrThe IP address to classify in host byte order
[in]IpIfThe interface that IpAddr received from
Returns
The cast type of this IP address specific to the interface.
Return values
IP4_LOCAL_HOSTThe IpAddr equals to the interface's address
IP4_SUBNET_BROADCASTThe IpAddr is a directed subnet broadcast to the interface
IP4_NET_BROADCASTThe IpAddr is a network broadcast to the interface
0Otherwise.

Definition at line 26 of file Ip4Common.c.

◆ Ip4NtohHead()

IP4_HEAD * Ip4NtohHead ( IN IP4_HEAD Head)

Convert the multibyte field in IP header's byter order. In spite of its name, it can also be used to convert from host to network byte order.

Parameters
[in]HeadThe IP head to convert
Returns
Point to the converted IP head

Definition at line 241 of file Ip4Common.c.

◆ Ip4StationAddressValid()

BOOLEAN Ip4StationAddressValid ( IN IP4_ADDR  Ip,
IN IP4_ADDR  Netmask 
)

Validate that Ip/Netmask pair is OK to be used as station address. Only continuous netmasks are supported. and check that StationAddress is a unicast address on the network.

Parameters
[in]IpThe IP address to validate.
[in]NetmaskThe netmask of the IP.
Return values
TRUEThe Ip/Netmask pair is valid.
FALSEThe Ip/Netmask pair is invalid.

Definition at line 267 of file Ip4Common.c.