61 return EFI_INVALID_PARAMETER;
64 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
65 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
66 IpSb = IpInstance->Service;
67 IpIf = IpInstance->Interface;
69 if (IpSb->LinkLocalDadFail) {
70 return EFI_INVALID_PARAMETER;
73 if (Ip6ModeData !=
NULL) {
78 Ip6ModeData->IsStarted = (BOOLEAN)(IpInstance->State == IP6_STATE_CONFIGED);
79 Ip6ModeData->MaxPacketSize = IpSb->MaxPacketSize;
81 Ip6ModeData->IsConfigured =
FALSE;
83 Ip6ModeData->AddressCount = 0;
84 Ip6ModeData->AddressList =
NULL;
86 Ip6ModeData->GroupCount = IpInstance->GroupCount;
87 Ip6ModeData->GroupTable =
NULL;
89 Ip6ModeData->RouteCount = 0;
90 Ip6ModeData->RouteTable =
NULL;
92 Ip6ModeData->NeighborCount = 0;
93 Ip6ModeData->NeighborCache =
NULL;
95 Ip6ModeData->PrefixCount = 0;
96 Ip6ModeData->PrefixTable =
NULL;
98 Ip6ModeData->IcmpTypeCount = 23;
103 if (Ip6ModeData->IcmpTypeList ==
NULL) {
104 Status = EFI_OUT_OF_RESOURCES;
113 &Ip6ModeData->AddressCount,
114 &Ip6ModeData->AddressList
116 if (EFI_ERROR (Status)) {
126 if (Ip6ModeData->IsStarted) {
127 Config = &Ip6ModeData->ConfigData;
130 Ip6ModeData->IsConfigured =
TRUE;
132 Ip6ModeData->IsConfigured =
FALSE;
140 &Ip6ModeData->RouteCount,
141 &Ip6ModeData->RouteTable
144 if (EFI_ERROR (Status)) {
149 if (Ip6ModeData->IsConfigured) {
153 if (IpInstance->GroupCount != 0) {
156 IpInstance->GroupList
158 if (Ip6ModeData->GroupTable ==
NULL) {
159 Status = EFI_OUT_OF_RESOURCES;
169 &Ip6ModeData->NeighborCount,
170 &Ip6ModeData->NeighborCache
172 if (EFI_ERROR (Status)) {
181 &Ip6ModeData->PrefixCount,
182 &Ip6ModeData->PrefixTable
184 if (EFI_ERROR (Status)) {
193 Status = IpSb->Mnp->GetModeData (IpSb->Mnp, MnpConfigData, SnpModeData);
198 if (Ip6ModeData !=
NULL) {
199 if (Ip6ModeData->AddressList !=
NULL) {
200 FreePool (Ip6ModeData->AddressList);
203 if (Ip6ModeData->GroupTable !=
NULL) {
207 if (Ip6ModeData->RouteTable !=
NULL) {
211 if (Ip6ModeData->NeighborCache !=
NULL) {
212 FreePool (Ip6ModeData->NeighborCache);
215 if (Ip6ModeData->PrefixTable !=
NULL) {
216 FreePool (Ip6ModeData->PrefixTable);
219 if (Ip6ModeData->IcmpTypeList !=
NULL) {
220 FreePool (Ip6ModeData->IcmpTypeList);
225 gBS->RestoreTPL (OldTpl);
262 return (BOOLEAN) !Flag;
280 if ((Protocol == IP6_HOP_BY_HOP) || (Protocol == EFI_IP_PROTO_ICMP) || (Protocol == IP4_PROTO_IGMP)) {
284 if ((Protocol == 41) || (Protocol == 43) || (Protocol == 44) || (Protocol == 59) || (Protocol == 60) || (Protocol == 124)) {
304 ASSERT ((IpSb !=
NULL) && (IpInstance !=
NULL));
308 IpInstance->Signature = IP6_PROTOCOL_SIGNATURE;
309 IpInstance->State = IP6_STATE_UNCONFIGED;
310 IpInstance->Service = IpSb;
311 IpInstance->GroupList =
NULL;
358 IpSb = IpInstance->Service;
359 Current = &IpInstance->ConfigData;
365 if (IpInstance->State == IP6_STATE_CONFIGED) {
371 if (EFI_ERROR (Status)) {
372 return EFI_DEVICE_ERROR;
385 if (StationZero && DestZero) {
390 NET_GET_REF (IpSb->DefaultInterface);
391 IpInstance->Interface = IpSb->DefaultInterface;
392 InsertTailList (&IpSb->DefaultInterface->IpInstances, &IpInstance->AddrLink);
395 IpInstance->State = IP6_STATE_CONFIGED;
400 if (StationZero && !DestZero) {
402 if (EFI_ERROR (Status)) {
406 IP6_COPY_ADDRESS (&Source, &Config->StationAddress);
411 if (AddressInfo !=
NULL) {
412 IpInstance->PrefixLength = AddressInfo->PrefixLength;
414 IpInstance->PrefixLength = IP6_LINK_LOCAL_PREFIX_LENGTH;
420 return EFI_INVALID_PARAMETER;
424 IpInstance->Interface = IpIf;
429 IpInstance->State = IP6_STATE_CONFIGED;
449 return EFI_DEVICE_ERROR;
453 return EFI_DEVICE_ERROR;
464 if (IpInstance->Interface !=
NULL) {
467 IpInstance->Interface =
NULL;
470 if (IpInstance->GroupList !=
NULL) {
472 IpInstance->GroupList =
NULL;
473 IpInstance->GroupCount = 0;
512 BOOLEAN PromiscReceive;
516 PromiscReceive =
FALSE;
524 NET_LIST_FOR_EACH (Entry, &IpSb->Interfaces) {
526 IpIf->PromiscRecv =
FALSE;
528 NET_LIST_FOR_EACH (ProtoEntry, &IpIf->IpInstances) {
529 IpInstance = NET_LIST_USER_STRUCT (ProtoEntry,
IP6_PROTOCOL, AddrLink);
532 IpIf->PromiscRecv =
TRUE;
533 PromiscReceive =
TRUE;
541 if (PromiscReceive == IpSb->MnpConfigData.EnablePromiscuousReceive) {
546 IpSb->MnpConfigData.EnablePromiscuousReceive = PromiscReceive;
549 Status = IpSb->Mnp->Configure (IpSb->Mnp, &IpSb->MnpConfigData);
554 if (EFI_ERROR (Status) && Reconfig) {
555 IpSb->MnpConfigData.EnablePromiscuousReceive = (BOOLEAN) !PromiscReceive;
625 return EFI_INVALID_PARAMETER;
628 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
629 IpSb = IpInstance->Service;
631 if (IpSb->LinkLocalDadFail && (Ip6ConfigData !=
NULL)) {
632 return EFI_DEVICE_ERROR;
635 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
637 Status = EFI_INVALID_PARAMETER;
642 if (Ip6ConfigData !=
NULL) {
662 if (IpInstance->State == IP6_STATE_CONFIGED) {
663 Current = &IpInstance->ConfigData;
665 if (!EFI_IP6_EQUAL (&Current->
StationAddress, &Ip6ConfigData->StationAddress)) {
666 Status = EFI_ALREADY_STARTED;
671 Status = EFI_NO_MAPPING;
680 if (Ip6ConfigData !=
NULL) {
691 if (IpInstance->State == IP6_STATE_CONFIGED) {
692 IpInstance->State = IP6_STATE_UNCONFIGED;
703 gBS->RestoreTPL (OldTpl);
751 if ((This ==
NULL) || (JoinFlag && (GroupAddress ==
NULL))) {
752 return EFI_INVALID_PARAMETER;
755 if ((GroupAddress !=
NULL) && !IP6_IS_MULTICAST (GroupAddress)) {
756 return EFI_INVALID_PARAMETER;
759 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
760 IpSb = IpInstance->Service;
762 if (IpSb->LinkLocalDadFail) {
763 return EFI_DEVICE_ERROR;
766 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
768 if (IpInstance->State != IP6_STATE_CONFIGED) {
769 Status = EFI_NOT_STARTED;
773 Status =
Ip6Groups (IpInstance, JoinFlag, GroupAddress);
776 gBS->RestoreTPL (OldTpl);
827 IN BOOLEAN DeleteRoute,
829 IN UINT8 PrefixLength,
838 if ((This ==
NULL) || (PrefixLength > IP6_PREFIX_MAX)) {
839 return EFI_INVALID_PARAMETER;
842 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
843 IpSb = IpInstance->Service;
845 if (IpSb->LinkLocalDadFail) {
846 return EFI_DEVICE_ERROR;
849 if (IpInstance->State != IP6_STATE_CONFIGED) {
850 return EFI_NOT_STARTED;
853 if (DeleteRoute && (Destination ==
NULL) && (GatewayAddress ==
NULL)) {
854 return EFI_INVALID_PARAMETER;
857 if (!DeleteRoute && ((Destination ==
NULL) || (GatewayAddress ==
NULL))) {
858 return EFI_INVALID_PARAMETER;
861 if (GatewayAddress !=
NULL) {
863 return EFI_INVALID_PARAMETER;
870 return EFI_INVALID_PARAMETER;
874 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
880 Status =
Ip6DelRoute (IpSb->RouteTable, Destination, PrefixLength, GatewayAddress);
882 Status =
Ip6AddRoute (IpSb->RouteTable, Destination, PrefixLength, GatewayAddress);
885 gBS->RestoreTPL (OldTpl);
939 IN BOOLEAN DeleteFlag,
951 if ((This ==
NULL) || (TargetIp6Address ==
NULL)) {
952 return EFI_INVALID_PARAMETER;
956 return EFI_INVALID_PARAMETER;
959 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
960 IpSb = IpInstance->Service;
962 if (IpSb->LinkLocalDadFail) {
963 return EFI_DEVICE_ERROR;
967 return EFI_INVALID_PARAMETER;
970 if (TargetLinkAddress !=
NULL) {
972 return EFI_INVALID_PARAMETER;
977 return EFI_INVALID_PARAMETER;
980 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
981 if (IpInstance->State != IP6_STATE_CONFIGED) {
982 Status = EFI_NOT_STARTED;
987 Status =
Ip6DelNeighbor (IpInstance->Service, TargetIp6Address, TargetLinkAddress, Timeout, Override);
989 Status =
Ip6AddNeighbor (IpInstance->Service, TargetIp6Address, TargetLinkAddress, Timeout, Override);
993 gBS->RestoreTPL (OldTpl);
1025 if ((Token == TokenInItem) || (Token->
Event == TokenInItem->
Event)) {
1026 return EFI_ACCESS_DENIED;
1051 if ((Token ==
NULL) || (Token->Event ==
NULL)) {
1052 return EFI_INVALID_PARAMETER;
1055 TxData = Token->Packet.TxData;
1058 return EFI_INVALID_PARAMETER;
1062 return EFI_INVALID_PARAMETER;
1065 for (DataLength = 0, Index = 0; Index < TxData->
FragmentCount; Index++) {
1067 return EFI_INVALID_PARAMETER;
1074 return EFI_INVALID_PARAMETER;
1088 return EFI_BAD_BUFFER_SIZE;
1129 if (Wrap->IpSecRecycleSignal !=
NULL) {
1130 gBS->SignalEvent (Wrap->IpSecRecycleSignal);
1137 Item =
NetMapFindKey (&Wrap->IpInstance->TxTokens, Wrap->Token);
1144 gBS->SignalEvent (Wrap->Token->
Event);
1179 Wrap->Token->
Status = IoStatus;
1258 return EFI_INVALID_PARAMETER;
1264 if (EFI_ERROR (Status)) {
1268 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
1269 IpSb = IpInstance->Service;
1271 if (IpSb->LinkLocalDadFail) {
1272 return EFI_DEVICE_ERROR;
1275 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
1277 if (IpInstance->State != IP6_STATE_CONFIGED) {
1278 Status = EFI_NOT_STARTED;
1282 Config = &IpInstance->ConfigData;
1288 Status = EFI_ACCESS_DENIED;
1296 TxData = Token->Packet.TxData;
1300 Status = EFI_INVALID_PARAMETER;
1323 if (EFI_ERROR (Status)) {
1341 Head.NextHeader = Override->
Protocol;
1342 Head.HopLimit = Override->
HopLimit;
1343 Head.FlowLabelL = HTONS ((UINT16)Override->
FlowLabel);
1344 Head.FlowLabelH = (UINT8)((Override->
FlowLabel >> 16) & 0x0F);
1347 Head.FlowLabelL = HTONS ((UINT16)Config->
FlowLabel);
1348 Head.FlowLabelH = (UINT8)((Config->
FlowLabel >> 16) & 0x0F);
1357 Status = EFI_OUT_OF_RESOURCES;
1363 Wrap->IpInstance = IpInstance;
1364 Wrap->Token = Token;
1376 if (Wrap->Packet ==
NULL) {
1381 Token->Status = EFI_NOT_READY;
1384 if (EFI_ERROR (Status)) {
1400 if (ExtHdrs ==
NULL) {
1401 Status = EFI_OUT_OF_RESOURCES;
1423 if (EFI_ERROR (Status)) {
1429 gBS->RestoreTPL (OldTpl);
1431 if (ExtHdrs !=
NULL) {
1491 if ((This ==
NULL) || (Token ==
NULL) || (Token->Event ==
NULL)) {
1492 return EFI_INVALID_PARAMETER;
1495 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
1496 IpSb = IpInstance->Service;
1498 if (IpSb->LinkLocalDadFail) {
1499 return EFI_DEVICE_ERROR;
1502 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
1504 if (IpInstance->State != IP6_STATE_CONFIGED) {
1505 Status = EFI_NOT_STARTED;
1514 if (EFI_ERROR (Status)) {
1515 Status = EFI_ACCESS_DENIED;
1524 if (EFI_ERROR (Status)) {
1537 gBS->RestoreTPL (OldTpl);
1575 if ((Token !=
NULL) && (Token != Item->Key)) {
1580 ASSERT (Wrap !=
NULL);
1586 Ip6CancelPacket (Wrap->IpInstance->Interface, Wrap->Packet, EFI_ABORTED);
1592 if (Token !=
NULL) {
1628 if ((Token !=
NULL) && (Token != This)) {
1634 This->
Status = EFI_ABORTED;
1638 if (Token !=
NULL) {
1673 if (EFI_ERROR (Status)) {
1674 if ((Token !=
NULL) && (Status == EFI_ABORTED)) {
1691 if (EFI_ERROR (Status)) {
1692 if ((Token !=
NULL) && (Status == EFI_ABORTED)) {
1703 if (Token !=
NULL) {
1704 return EFI_NOT_FOUND;
1712 return EFI_DEVICE_ERROR;
1758 return EFI_INVALID_PARAMETER;
1761 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
1763 OldTpl =
gBS->RaiseTPL (TPL_CALLBACK);
1765 if (IpInstance->State != IP6_STATE_CONFIGED) {
1766 Status = EFI_NOT_STARTED;
1773 gBS->RestoreTPL (OldTpl);
1813 return EFI_INVALID_PARAMETER;
1816 IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This);
1817 IpSb = IpInstance->Service;
1819 if (IpSb->LinkLocalDadFail) {
1820 return EFI_DEVICE_ERROR;
1823 if (IpInstance->State == IP6_STATE_UNCONFIGED) {
1824 return EFI_NOT_STARTED;
1827 Mnp = IpInstance->Service->Mnp;
1833 return Mnp->Poll (Mnp);
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
EFI_STATUS EFIAPI DispatchDpc(VOID)
VOID *EFIAPI AllocateZeroPool(IN UINTN AllocationSize)
VOID EFIAPI FreePool(IN VOID *Buffer)
VOID *EFIAPI AllocateCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
BOOLEAN Ip6IsOneOfSetAddress(IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *Address, OUT IP6_INTERFACE **Interface OPTIONAL, OUT IP6_ADDRESS_INFO **AddressInfo OPTIONAL)
BOOLEAN Ip6IsValidLinkAddress(IN IP6_SERVICE *IpSb, IN EFI_MAC_ADDRESS *LinkAddress)
EFI_STATUS Ip6BuildEfiAddressList(IN IP6_SERVICE *IpSb, OUT UINT32 *AddressCount, OUT EFI_IP6_ADDRESS_INFO **AddressList OPTIONAL)
VOID Ip6CleanInterface(IN IP6_INTERFACE *Interface, IN IP6_PROTOCOL *IpInstance OPTIONAL)
EFI_STATUS EFIAPI EfiIp6Receive(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token)
EFI_STATUS EFIAPI EfiIp6Transmit(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token)
EFI_STATUS EFIAPI EfiIp6Routes(IN EFI_IP6_PROTOCOL *This, IN BOOLEAN DeleteRoute, IN EFI_IPv6_ADDRESS *Destination OPTIONAL, IN UINT8 PrefixLength, IN EFI_IPv6_ADDRESS *GatewayAddress OPTIONAL)
EFI_STATUS EFIAPI EfiIp6Poll(IN EFI_IP6_PROTOCOL *This)
EFI_STATUS EFIAPI Ip6CancelRxTokens(IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Context)
EFI_STATUS Ip6Cancel(IN IP6_PROTOCOL *IpInstance, IN EFI_IP6_COMPLETION_TOKEN *Token OPTIONAL)
BOOLEAN Ip6IsIllegalProtocol(IN UINT8 Protocol)
EFI_STATUS EFIAPI Ip6CancelTxTokens(IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Context)
EFI_STATUS EFIAPI EfiIp6Neighbors(IN EFI_IP6_PROTOCOL *This, IN BOOLEAN DeleteFlag, IN EFI_IPv6_ADDRESS *TargetIp6Address, IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL, IN UINT32 Timeout, IN BOOLEAN Override)
EFI_STATUS Ip6TxTokenValid(IN EFI_IP6_COMPLETION_TOKEN *Token)
EFI_STATUS Ip6CleanProtocol(IN OUT IP6_PROTOCOL *IpInstance)
EFI_STATUS EFIAPI EfiIp6Groups(IN EFI_IP6_PROTOCOL *This, IN BOOLEAN JoinFlag, IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL)
EFI_STATUS Ip6ConfigProtocol(IN OUT IP6_PROTOCOL *IpInstance, IN EFI_IP6_CONFIG_DATA *Config)
VOID Ip6OnPacketSent(IN NET_BUF *Packet, IN EFI_STATUS IoStatus, IN UINT32 Flag, IN VOID *Context)
EFI_STATUS Ip6ServiceConfigMnp(IN IP6_SERVICE *IpSb, IN BOOLEAN Force)
VOID EFIAPI Ip6FreeTxToken(IN VOID *Context)
EFI_STATUS EFIAPI EfiIp6GetModeData(IN EFI_IP6_PROTOCOL *This, OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL, OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL)
EFI_STATUS EFIAPI Ip6TokenExist(IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Context)
VOID Ip6InitProtocol(IN IP6_SERVICE *IpSb, IN OUT IP6_PROTOCOL *IpInstance)
EFI_STATUS EFIAPI EfiIp6Configure(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_CONFIG_DATA *Ip6ConfigData OPTIONAL)
EFI_STATUS EFIAPI EfiIp6Cancel(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token OPTIONAL)
BOOLEAN Ip6IsValidAddress(IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *Ip, IN BOOLEAN Flag)
EFI_STATUS Ip6Groups(IN IP6_PROTOCOL *IpInstance, IN BOOLEAN JoinFlag, IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL)
EFI_STATUS Ip6AddNeighbor(IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *TargetIp6Address, IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL, IN UINT32 Timeout, IN BOOLEAN Override)
EFI_STATUS Ip6DelNeighbor(IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *TargetIp6Address, IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL, IN UINT32 Timeout, IN BOOLEAN Override)
EFI_STATUS Ip6BuildPrefixTable(IN IP6_PROTOCOL *IpInstance, OUT UINT32 *PrefixCount, OUT EFI_IP6_ADDRESS_INFO **PrefixTable)
EFI_STATUS Ip6BuildEfiNeighborCache(IN IP6_PROTOCOL *IpInstance, OUT UINT32 *NeighborCount, OUT EFI_IP6_NEIGHBOR_CACHE **NeighborCache)
EFI_STATUS Ip6Output(IN IP6_SERVICE *IpSb, IN IP6_INTERFACE *Interface OPTIONAL, IN IP6_PROTOCOL *IpInstance OPTIONAL, IN NET_BUF *Packet, IN EFI_IP6_HEADER *Head, IN UINT8 *ExtHdrs, IN UINT32 ExtHdrsLen, IN IP6_FRAME_CALLBACK Callback, IN VOID *Context)
VOID Ip6CancelPacket(IN IP6_INTERFACE *IpIf, IN NET_BUF *Packet, IN EFI_STATUS IoStatus)
EFI_STATUS Ip6SelectSourceAddress(IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *Destination, OUT EFI_IPv6_ADDRESS *Source)
EFI_STATUS Ip6BuildEfiRouteTable(IN IP6_ROUTE_TABLE *RouteTable, OUT UINT32 *EfiRouteCount, OUT EFI_IP6_ROUTE_TABLE **EfiRouteTable OPTIONAL)
EFI_STATUS Ip6AddRoute(IN OUT IP6_ROUTE_TABLE *RtTable, IN EFI_IPv6_ADDRESS *Destination, IN UINT8 PrefixLength, IN EFI_IPv6_ADDRESS *GatewayAddress)
EFI_STATUS Ip6DelRoute(IN OUT IP6_ROUTE_TABLE *RtTable, IN EFI_IPv6_ADDRESS *Destination, IN UINT8 PrefixLength, IN EFI_IPv6_ADDRESS *GatewayAddress)
VOID EFIAPI NetbufFree(IN NET_BUF *Nbuf)
BOOLEAN EFIAPI NetIp6IsValidUnicast(IN EFI_IPv6_ADDRESS *Ip6)
VOID EFIAPI NetMapClean(IN OUT NET_MAP *Map)
BOOLEAN EFIAPI NetIp6IsNetEqual(EFI_IPv6_ADDRESS *Ip1, EFI_IPv6_ADDRESS *Ip2, UINT8 PrefixLength)
NET_MAP_ITEM *EFIAPI NetMapFindKey(IN NET_MAP *Map, IN VOID *Key)
VOID EFIAPI NetMapInit(IN OUT NET_MAP *Map)
NET_BUF *EFIAPI NetbufFromExt(IN NET_FRAGMENT *ExtFragment, IN UINT32 ExtNum, IN UINT32 HeadSpace, IN UINT32 HeadLen, IN NET_VECTOR_EXT_FREE ExtFree, IN VOID *Arg OPTIONAL)
BOOLEAN EFIAPI NetIp6IsUnspecifiedAddr(IN EFI_IPv6_ADDRESS *Ip6)
BOOLEAN EFIAPI NetMapIsEmpty(IN NET_MAP *Map)
VOID *EFIAPI NetMapRemoveItem(IN OUT NET_MAP *Map, IN OUT NET_MAP_ITEM *Item, OUT VOID **Value OPTIONAL)
EFI_STATUS EFIAPI NetMapInsertTail(IN OUT NET_MAP *Map, IN VOID *Key, IN VOID *Value OPTIONAL)
EFI_STATUS EFIAPI NetMapIterate(IN NET_MAP *Map, IN NET_MAP_CALLBACK CallBack, IN VOID *Arg OPTIONAL)
VOID EFIAPI Exit(IN EFI_STATUS Status)
EFI_LOCK *EFIAPI EfiInitializeLock(IN OUT EFI_LOCK *Lock, IN EFI_TPL Priority)
VOID * FragmentBuffer
Pointer to fragment data. This field may not be set to NULL.
UINT32 FragmentLength
Length of fragment data. This field may not be set to zero.
UINT8 HopLimit
Hop-Limit override.
UINT32 FlowLabel
Flow-Label override.
UINT8 Protocol
Protocol type override.
EFI_IP6_FRAGMENT_DATA FragmentTable[1]
EFI_IP6_OVERRIDE_DATA * OverrideData
EFI_IPv6_ADDRESS DestinationAddress
EFI_IP6_RECEIVE_DATA * RxData
EFI_IPv6_ADDRESS DestinationAddress
EFI_IPv6_ADDRESS StationAddress
BOOLEAN AcceptPromiscuous