**/\r
IP6_ASSEMBLE_ENTRY *\r
Ip6CreateAssembleEntry (\r
- IN EFI_IPv6_ADDRESS *Dst,\r
- IN EFI_IPv6_ADDRESS *Src,\r
- IN UINT32 Id\r
+ IN EFI_IPv6_ADDRESS *Dst,\r
+ IN EFI_IPv6_ADDRESS *Src,\r
+ IN UINT32 Id\r
)\r
{\r
- IP6_ASSEMBLE_ENTRY *Assemble;\r
+ IP6_ASSEMBLE_ENTRY *Assemble;\r
\r
Assemble = AllocatePool (sizeof (IP6_ASSEMBLE_ENTRY));\r
if (Assemble == NULL) {\r
IP6_COPY_ADDRESS (&Assemble->Src, Src);\r
InitializeListHead (&Assemble->Fragments);\r
\r
- Assemble->Id = Id;\r
- Assemble->Life = IP6_FRAGMENT_LIFE + 1;\r
+ Assemble->Id = Id;\r
+ Assemble->Life = IP6_FRAGMENT_LIFE + 1;\r
\r
Assemble->TotalLen = 0;\r
Assemble->CurLen = 0;\r
**/\r
VOID\r
Ip6FreeAssembleEntry (\r
- IN IP6_ASSEMBLE_ENTRY *Assemble\r
+ IN IP6_ASSEMBLE_ENTRY *Assemble\r
)\r
{\r
- LIST_ENTRY *Entry;\r
- LIST_ENTRY *Next;\r
- NET_BUF *Fragment;\r
+ LIST_ENTRY *Entry;\r
+ LIST_ENTRY *Next;\r
+ NET_BUF *Fragment;\r
\r
NET_LIST_FOR_EACH_SAFE (Entry, Next, &Assemble->Fragments) {\r
Fragment = NET_LIST_USER_STRUCT (Entry, NET_BUF, List);\r
VOID\r
EFIAPI\r
Ip6OnFreeFragments (\r
- IN VOID *Arg\r
+ IN VOID *Arg\r
)\r
{\r
- Ip6FreeAssembleEntry ((IP6_ASSEMBLE_ENTRY *) Arg);\r
+ Ip6FreeAssembleEntry ((IP6_ASSEMBLE_ENTRY *)Arg);\r
}\r
\r
/**\r
**/\r
VOID\r
Ip6TrimPacket (\r
- IN OUT NET_BUF *Packet,\r
- IN INTN Start,\r
- IN INTN End\r
+ IN OUT NET_BUF *Packet,\r
+ IN INTN Start,\r
+ IN INTN End\r
)\r
{\r
- IP6_CLIP_INFO *Info;\r
- INTN Len;\r
+ IP6_CLIP_INFO *Info;\r
+ INTN Len;\r
\r
Info = IP6_GET_CLIP_INFO (Packet);\r
\r
ASSERT (Info->Start + Info->Length == Info->End);\r
ASSERT ((Info->Start < End) && (Start < Info->End));\r
\r
- if (Info->Start < Start) {\r
+ if (Info->Start < Start) {\r
Len = Start - Info->Start;\r
\r
- NetbufTrim (Packet, (UINT32) Len, NET_BUF_HEAD);\r
- Info->Start = (UINT32) Start;\r
- Info->Length -= (UINT32) Len;\r
+ NetbufTrim (Packet, (UINT32)Len, NET_BUF_HEAD);\r
+ Info->Start = (UINT32)Start;\r
+ Info->Length -= (UINT32)Len;\r
}\r
\r
if (End < Info->End) {\r
Len = End - Info->End;\r
\r
- NetbufTrim (Packet, (UINT32) Len, NET_BUF_TAIL);\r
- Info->End = (UINT32) End;\r
- Info->Length -= (UINT32) Len;\r
+ NetbufTrim (Packet, (UINT32)Len, NET_BUF_TAIL);\r
+ Info->End = (UINT32)End;\r
+ Info->Length -= (UINT32)Len;\r
}\r
}\r
\r
**/\r
NET_BUF *\r
Ip6Reassemble (\r
- IN OUT IP6_ASSEMBLE_TABLE *Table,\r
- IN NET_BUF *Packet\r
+ IN OUT IP6_ASSEMBLE_TABLE *Table,\r
+ IN NET_BUF *Packet\r
)\r
{\r
- EFI_IP6_HEADER *Head;\r
- IP6_CLIP_INFO *This;\r
- IP6_CLIP_INFO *Node;\r
- IP6_ASSEMBLE_ENTRY *Assemble;\r
- IP6_ASSEMBLE_ENTRY *Entry;\r
- LIST_ENTRY *ListHead;\r
- LIST_ENTRY *Prev;\r
- LIST_ENTRY *Cur;\r
- NET_BUF *Fragment;\r
- NET_BUF *TmpPacket;\r
- NET_BUF *NewPacket;\r
- NET_BUF *Duplicate;\r
- UINT8 *DupHead;\r
- INTN Index;\r
- UINT16 UnFragmentLen;\r
- UINT8 *NextHeader;\r
+ EFI_IP6_HEADER *Head;\r
+ IP6_CLIP_INFO *This;\r
+ IP6_CLIP_INFO *Node;\r
+ IP6_ASSEMBLE_ENTRY *Assemble;\r
+ IP6_ASSEMBLE_ENTRY *Entry;\r
+ LIST_ENTRY *ListHead;\r
+ LIST_ENTRY *Prev;\r
+ LIST_ENTRY *Cur;\r
+ NET_BUF *Fragment;\r
+ NET_BUF *TmpPacket;\r
+ NET_BUF *NewPacket;\r
+ NET_BUF *Duplicate;\r
+ UINT8 *DupHead;\r
+ INTN Index;\r
+ UINT16 UnFragmentLen;\r
+ UINT8 *NextHeader;\r
\r
Head = Packet->Ip.Ip6;\r
This = IP6_GET_CLIP_INFO (Packet);\r
//\r
// Find the corresponding assemble entry by (Dst, Src, Id)\r
//\r
- Assemble = NULL;\r
- Index = IP6_ASSEMBLE_HASH (&Head->DestinationAddress, &Head->SourceAddress, This->Id);\r
+ Assemble = NULL;\r
+ Index = IP6_ASSEMBLE_HASH (&Head->DestinationAddress, &Head->SourceAddress, This->Id);\r
\r
NET_LIST_FOR_EACH (Cur, &Table->Bucket[Index]) {\r
Entry = NET_LIST_USER_STRUCT (Cur, IP6_ASSEMBLE_ENTRY, Link);\r
\r
- if (Entry->Id == This->Id &&\r
+ if ((Entry->Id == This->Id) &&\r
EFI_IP6_EQUAL (&Entry->Src, &Head->SourceAddress) &&\r
EFI_IP6_EQUAL (&Entry->Dst, &Head->DestinationAddress)\r
- ) {\r
+ )\r
+ {\r
Assemble = Entry;\r
break;\r
}\r
// overlaps, trim the overlapped part off THIS fragment.\r
//\r
if ((Prev = Cur->BackLink) != ListHead) {\r
- Fragment = NET_LIST_USER_STRUCT (Prev, NET_BUF, List);\r
- Node = IP6_GET_CLIP_INFO (Fragment);\r
+ Fragment = NET_LIST_USER_STRUCT (Prev, NET_BUF, List);\r
+ Node = IP6_GET_CLIP_INFO (Fragment);\r
\r
if (This->Start < Node->End) {\r
if (This->End <= Node->End) {\r
//\r
DupHead = NetbufGetByte (Duplicate, 0, NULL);\r
ASSERT (DupHead != NULL);\r
- Duplicate->Ip.Ip6 = Ip6NtohHead ((EFI_IP6_HEADER *) DupHead);\r
+ Duplicate->Ip.Ip6 = Ip6NtohHead ((EFI_IP6_HEADER *)DupHead);\r
Assemble->Packet = Duplicate;\r
\r
//\r
// Adjust the unfragmentable part in first fragment\r
//\r
- UnFragmentLen = (UINT16) (This->HeadLen - sizeof (EFI_IP6_HEADER));\r
+ UnFragmentLen = (UINT16)(This->HeadLen - sizeof (EFI_IP6_HEADER));\r
if (UnFragmentLen == 0) {\r
//\r
// There is not any unfragmentable extension header.\r
// queue ends at the total length, all data is received.\r
//\r
if ((Assemble->TotalLen != 0) && (Assemble->CurLen >= Assemble->TotalLen)) {\r
-\r
RemoveEntryList (&Assemble->Link);\r
\r
//\r
// is a fake, drop it now.\r
//\r
Fragment = NET_LIST_USER_STRUCT (ListHead->BackLink, NET_BUF, List);\r
- if (IP6_GET_CLIP_INFO (Fragment)->End != (INTN) Assemble->TotalLen) {\r
+ if (IP6_GET_CLIP_INFO (Fragment)->End != (INTN)Assemble->TotalLen) {\r
Ip6FreeAssembleEntry (Assemble);\r
goto Error;\r
}\r
return NULL;\r
}\r
\r
-\r
/**\r
The callback function for the net buffer that wraps the packet processed by\r
IPsec. It releases the wrap packet and also signals IPsec to free the resources.\r
VOID\r
EFIAPI\r
Ip6IpSecFree (\r
- IN VOID *Arg\r
+ IN VOID *Arg\r
)\r
{\r
- IP6_IPSEC_WRAP *Wrap;\r
+ IP6_IPSEC_WRAP *Wrap;\r
\r
- Wrap = (IP6_IPSEC_WRAP *) Arg;\r
+ Wrap = (IP6_IPSEC_WRAP *)Arg;\r
\r
if (Wrap->IpSecRecycleSignal != NULL) {\r
gBS->SignalEvent (Wrap->IpSecRecycleSignal);\r
IN VOID *Context\r
)\r
{\r
- NET_FRAGMENT *FragmentTable;\r
- NET_FRAGMENT *OriginalFragmentTable;\r
- UINT32 FragmentCount;\r
- UINT32 OriginalFragmentCount;\r
- EFI_EVENT RecycleEvent;\r
- NET_BUF *Packet;\r
- IP6_TXTOKEN_WRAP *TxWrap;\r
- IP6_IPSEC_WRAP *IpSecWrap;\r
- EFI_STATUS Status;\r
- EFI_IP6_HEADER *PacketHead;\r
- UINT8 *Buf;\r
- EFI_IP6_HEADER ZeroHead;\r
-\r
- Status = EFI_SUCCESS;\r
+ NET_FRAGMENT *FragmentTable;\r
+ NET_FRAGMENT *OriginalFragmentTable;\r
+ UINT32 FragmentCount;\r
+ UINT32 OriginalFragmentCount;\r
+ EFI_EVENT RecycleEvent;\r
+ NET_BUF *Packet;\r
+ IP6_TXTOKEN_WRAP *TxWrap;\r
+ IP6_IPSEC_WRAP *IpSecWrap;\r
+ EFI_STATUS Status;\r
+ EFI_IP6_HEADER *PacketHead;\r
+ UINT8 *Buf;\r
+ EFI_IP6_HEADER ZeroHead;\r
+\r
+ Status = EFI_SUCCESS;\r
\r
if (!mIpSec2Installed) {\r
goto ON_EXIT;\r
}\r
+\r
ASSERT (mIpSec != NULL);\r
\r
Packet = *Netbuf;\r
FragmentTable = NULL;\r
PacketHead = NULL;\r
Buf = NULL;\r
- TxWrap = (IP6_TXTOKEN_WRAP *) Context;\r
+ TxWrap = (IP6_TXTOKEN_WRAP *)Context;\r
FragmentCount = Packet->BlockOpNum;\r
ZeroMem (&ZeroHead, sizeof (EFI_IP6_HEADER));\r
\r
IpSb->MaxPacketSize = IpSb->OldMaxPacketSize - IP6_MAX_IPSEC_HEADLEN;\r
}\r
\r
-\r
//\r
// Bypass all multicast inbound or outbound traffic.\r
//\r
goto ON_EXIT;\r
}\r
\r
- Status = NetbufBuildExt (Packet, FragmentTable, &FragmentCount);\r
+ Status = NetbufBuildExt (Packet, FragmentTable, &FragmentCount);\r
OriginalFragmentTable = FragmentTable;\r
OriginalFragmentCount = FragmentCount;\r
\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
FreePool (FragmentTable);\r
goto ON_EXIT;\r
}\r
mIpSec,\r
IpSb->Controller,\r
IP_VERSION_6,\r
- (VOID *) (*Head),\r
+ (VOID *)(*Head),\r
LastHead,\r
- (VOID **) ExtHdrs,\r
+ (VOID **)ExtHdrs,\r
ExtHdrsLen,\r
- (EFI_IPSEC_FRAGMENT_DATA **) (&FragmentTable),\r
+ (EFI_IPSEC_FRAGMENT_DATA **)(&FragmentTable),\r
&FragmentCount,\r
Direction,\r
&RecycleEvent\r
goto ON_EXIT;\r
}\r
\r
- if (OriginalFragmentCount == FragmentCount && OriginalFragmentTable == FragmentTable) {\r
+ if ((OriginalFragmentCount == FragmentCount) && (OriginalFragmentTable == FragmentTable)) {\r
//\r
// For ByPass Packet\r
//\r
FreePool (OriginalFragmentTable);\r
}\r
\r
- if (Direction == EfiIPsecOutBound && TxWrap != NULL) {\r
+ if ((Direction == EfiIPsecOutBound) && (TxWrap != NULL)) {\r
TxWrap->IpSecRecycleSignal = RecycleEvent;\r
TxWrap->Packet = NetbufFromExt (\r
FragmentTable,\r
);\r
if (TxWrap->Packet == NULL) {\r
TxWrap->Packet = *Netbuf;\r
- Status = EFI_OUT_OF_RESOURCES;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
goto ON_EXIT;\r
}\r
\r
sizeof (IP6_CLIP_INFO)\r
);\r
\r
- NetIpSecNetbufFree(Packet);\r
+ NetIpSecNetbufFree (Packet);\r
*Netbuf = TxWrap->Packet;\r
-\r
} else {\r
-\r
IpSecWrap = AllocateZeroPool (sizeof (IP6_IPSEC_WRAP));\r
\r
if (IpSecWrap == NULL) {\r
goto ON_EXIT;\r
}\r
\r
- if (Direction == EfiIPsecInBound && 0 != CompareMem (&ZeroHead, *Head, sizeof (EFI_IP6_HEADER))) {\r
-\r
- PacketHead = (EFI_IP6_HEADER *) NetbufAllocSpace (\r
- Packet,\r
- sizeof (EFI_IP6_HEADER) + *ExtHdrsLen,\r
- NET_BUF_HEAD\r
- );\r
+ if ((Direction == EfiIPsecInBound) && (0 != CompareMem (&ZeroHead, *Head, sizeof (EFI_IP6_HEADER)))) {\r
+ PacketHead = (EFI_IP6_HEADER *)NetbufAllocSpace (\r
+ Packet,\r
+ sizeof (EFI_IP6_HEADER) + *ExtHdrsLen,\r
+ NET_BUF_HEAD\r
+ );\r
if (PacketHead == NULL) {\r
*Netbuf = Packet;\r
Status = EFI_OUT_OF_RESOURCES;\r
}\r
\r
CopyMem (PacketHead, *Head, sizeof (EFI_IP6_HEADER));\r
- *Head = PacketHead;\r
+ *Head = PacketHead;\r
Packet->Ip.Ip6 = PacketHead;\r
\r
if (*ExtHdrs != NULL) {\r
- Buf = (UINT8 *) (PacketHead + 1);\r
+ Buf = (UINT8 *)(PacketHead + 1);\r
CopyMem (Buf, *ExtHdrs, *ExtHdrsLen);\r
}\r
\r
sizeof (IP6_CLIP_INFO)\r
);\r
}\r
+\r
*Netbuf = Packet;\r
}\r
\r
**/\r
EFI_STATUS\r
Ip6PreProcessPacket (\r
- IN IP6_SERVICE *IpSb,\r
- IN OUT NET_BUF **Packet,\r
- IN UINT32 Flag,\r
- OUT UINT8 **Payload,\r
- OUT UINT8 **LastHead,\r
- OUT UINT32 *ExtHdrsLen,\r
- OUT UINT32 *UnFragmentLen,\r
- OUT BOOLEAN *Fragmented,\r
- OUT EFI_IP6_HEADER **Head\r
+ IN IP6_SERVICE *IpSb,\r
+ IN OUT NET_BUF **Packet,\r
+ IN UINT32 Flag,\r
+ OUT UINT8 **Payload,\r
+ OUT UINT8 **LastHead,\r
+ OUT UINT32 *ExtHdrsLen,\r
+ OUT UINT32 *UnFragmentLen,\r
+ OUT BOOLEAN *Fragmented,\r
+ OUT EFI_IP6_HEADER **Head\r
)\r
{\r
- UINT16 PayloadLen;\r
- UINT16 TotalLen;\r
- UINT32 FormerHeadOffset;\r
- UINT32 HeadLen;\r
- IP6_FRAGMENT_HEADER *FragmentHead;\r
- UINT16 FragmentOffset;\r
- IP6_CLIP_INFO *Info;\r
- EFI_IPv6_ADDRESS Loopback;\r
+ UINT16 PayloadLen;\r
+ UINT16 TotalLen;\r
+ UINT32 FormerHeadOffset;\r
+ UINT32 HeadLen;\r
+ IP6_FRAGMENT_HEADER *FragmentHead;\r
+ UINT16 FragmentOffset;\r
+ IP6_CLIP_INFO *Info;\r
+ EFI_IPv6_ADDRESS Loopback;\r
\r
HeadLen = 0;\r
PayloadLen = 0;\r
//\r
// Get header information of the packet.\r
//\r
- *Head = (EFI_IP6_HEADER *) NetbufGetByte (*Packet, 0, NULL);\r
+ *Head = (EFI_IP6_HEADER *)NetbufGetByte (*Packet, 0, NULL);\r
if (*Head == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
ZeroMem (&Loopback, sizeof (EFI_IPv6_ADDRESS));\r
Loopback.Addr[15] = 0x1;\r
if ((CompareMem (&Loopback, &(*Head)->DestinationAddress, sizeof (EFI_IPv6_ADDRESS)) == 0) ||\r
- (NetIp6IsUnspecifiedAddr (&(*Head)->DestinationAddress))) {\r
+ (NetIp6IsUnspecifiedAddr (&(*Head)->DestinationAddress)))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
-\r
PayloadLen = (*Head)->PayloadLength;\r
\r
Info->Start = 0;\r
Info->Length = PayloadLen;\r
Info->End = Info->Start + Info->Length;\r
- Info->HeadLen = (UINT16) sizeof (EFI_IP6_HEADER);\r
+ Info->HeadLen = (UINT16)sizeof (EFI_IP6_HEADER);\r
Info->Status = EFI_SUCCESS;\r
Info->LastFrag = FALSE;\r
\r
- TotalLen = (UINT16) (PayloadLen + sizeof (EFI_IP6_HEADER));\r
+ TotalLen = (UINT16)(PayloadLen + sizeof (EFI_IP6_HEADER));\r
\r
//\r
// Mnp may deliver frame trailer sequence up, trim it off.\r
// Check the extension headers, if exist validate them\r
//\r
if (PayloadLen != 0) {\r
- *Payload = AllocatePool ((UINTN) PayloadLen);\r
+ *Payload = AllocatePool ((UINTN)PayloadLen);\r
if (*Payload == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
*Packet,\r
&(*Head)->NextHeader,\r
*Payload,\r
- (UINT32) PayloadLen,\r
+ (UINT32)PayloadLen,\r
TRUE,\r
&FormerHeadOffset,\r
LastHead,\r
ExtHdrsLen,\r
UnFragmentLen,\r
Fragmented\r
- )) {\r
+ ))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- HeadLen = sizeof (EFI_IP6_HEADER) + *UnFragmentLen;\r
+ HeadLen = sizeof (EFI_IP6_HEADER) + *UnFragmentLen;\r
\r
if (*Fragmented) {\r
//\r
// Get the fragment offset from the Fragment header\r
//\r
- FragmentHead = (IP6_FRAGMENT_HEADER *) NetbufGetByte (*Packet, HeadLen, NULL);\r
+ FragmentHead = (IP6_FRAGMENT_HEADER *)NetbufGetByte (*Packet, HeadLen, NULL);\r
if (FragmentHead == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
Info->NextHeader = FragmentHead->NextHeader;\r
}\r
\r
- Info->HeadLen = (UINT16) HeadLen;\r
- HeadLen += sizeof (IP6_FRAGMENT_HEADER);\r
+ Info->HeadLen = (UINT16)HeadLen;\r
+ HeadLen += sizeof (IP6_FRAGMENT_HEADER);\r
Info->Start = FragmentOffset;\r
- Info->Length = TotalLen - (UINT16) HeadLen;\r
+ Info->Length = TotalLen - (UINT16)HeadLen;\r
Info->End = Info->Start + Info->Length;\r
Info->Id = FragmentHead->Identification;\r
Info->FormerNextHeader = FormerHeadOffset;\r
//\r
// Re-check the assembled packet to get the right values.\r
//\r
- *Head = (*Packet)->Ip.Ip6;\r
- PayloadLen = (*Head)->PayloadLength;\r
+ *Head = (*Packet)->Ip.Ip6;\r
+ PayloadLen = (*Head)->PayloadLength;\r
if (PayloadLen != 0) {\r
if (*Payload != NULL) {\r
FreePool (*Payload);\r
}\r
\r
- *Payload = AllocatePool ((UINTN) PayloadLen);\r
+ *Payload = AllocatePool ((UINTN)PayloadLen);\r
if (*Payload == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
*Packet,\r
&(*Head)->NextHeader,\r
*Payload,\r
- (UINT32) PayloadLen,\r
+ (UINT32)PayloadLen,\r
TRUE,\r
NULL,\r
LastHead,\r
ExtHdrsLen,\r
UnFragmentLen,\r
Fragmented\r
- )) {\r
+ ))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
**/\r
VOID\r
Ip6AcceptFrame (\r
- IN NET_BUF *Packet,\r
- IN EFI_STATUS IoStatus,\r
- IN UINT32 Flag,\r
- IN VOID *Context\r
+ IN NET_BUF *Packet,\r
+ IN EFI_STATUS IoStatus,\r
+ IN UINT32 Flag,\r
+ IN VOID *Context\r
)\r
{\r
- IP6_SERVICE *IpSb;\r
- EFI_IP6_HEADER *Head;\r
- UINT8 *Payload;\r
- UINT8 *LastHead;\r
- UINT32 UnFragmentLen;\r
- UINT32 ExtHdrsLen;\r
- BOOLEAN Fragmented;\r
- EFI_STATUS Status;\r
- EFI_IP6_HEADER ZeroHead;\r
-\r
- IpSb = (IP6_SERVICE *) Context;\r
+ IP6_SERVICE *IpSb;\r
+ EFI_IP6_HEADER *Head;\r
+ UINT8 *Payload;\r
+ UINT8 *LastHead;\r
+ UINT32 UnFragmentLen;\r
+ UINT32 ExtHdrsLen;\r
+ BOOLEAN Fragmented;\r
+ EFI_STATUS Status;\r
+ EFI_IP6_HEADER ZeroHead;\r
+\r
+ IpSb = (IP6_SERVICE *)Context;\r
NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE);\r
\r
Payload = NULL;\r
if (EFI_ERROR (Status)) {\r
goto Restart;\r
}\r
+\r
//\r
// After trim off, the packet is a esp/ah/udp/tcp/icmp6 net buffer,\r
// and no need consider any other ahead ext headers.\r
// Packet may have been changed. The ownership of the packet\r
// is transferred to the packet process logic.\r
//\r
- Head = Packet->Ip.Ip6;\r
+ Head = Packet->Ip.Ip6;\r
IP6_GET_CLIP_INFO (Packet)->Status = EFI_SUCCESS;\r
\r
switch (*LastHead) {\r
- case IP6_ICMP:\r
- Ip6IcmpHandle (IpSb, Head, Packet);\r
- break;\r
- default:\r
- Ip6Demultiplex (IpSb, Head, Packet);\r
+ case IP6_ICMP:\r
+ Ip6IcmpHandle (IpSb, Head, Packet);\r
+ break;\r
+ default:\r
+ Ip6Demultiplex (IpSb, Head, Packet);\r
}\r
\r
Packet = NULL;\r
NetbufFree (Packet);\r
}\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
**/\r
VOID\r
Ip6CreateAssembleTable (\r
- IN OUT IP6_ASSEMBLE_TABLE *Table\r
+ IN OUT IP6_ASSEMBLE_TABLE *Table\r
)\r
{\r
- UINT32 Index;\r
+ UINT32 Index;\r
\r
for (Index = 0; Index < IP6_ASSEMLE_HASH_SIZE; Index++) {\r
InitializeListHead (&Table->Bucket[Index]);\r
**/\r
VOID\r
Ip6CleanAssembleTable (\r
- IN OUT IP6_ASSEMBLE_TABLE *Table\r
+ IN OUT IP6_ASSEMBLE_TABLE *Table\r
)\r
{\r
- LIST_ENTRY *Entry;\r
- LIST_ENTRY *Next;\r
- IP6_ASSEMBLE_ENTRY *Assemble;\r
- UINT32 Index;\r
+ LIST_ENTRY *Entry;\r
+ LIST_ENTRY *Next;\r
+ IP6_ASSEMBLE_ENTRY *Assemble;\r
+ UINT32 Index;\r
\r
for (Index = 0; Index < IP6_ASSEMLE_HASH_SIZE; Index++) {\r
NET_LIST_FOR_EACH_SAFE (Entry, Next, &Table->Bucket[Index]) {\r
}\r
}\r
\r
-\r
/**\r
The signal handle of IP6's recycle event. It is called back\r
when the upper layer releases the packet.\r
VOID\r
EFIAPI\r
Ip6OnRecyclePacket (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- IP6_RXDATA_WRAP *Wrap;\r
+ IP6_RXDATA_WRAP *Wrap;\r
\r
- Wrap = (IP6_RXDATA_WRAP *) Context;\r
+ Wrap = (IP6_RXDATA_WRAP *)Context;\r
\r
EfiAcquireLockOrFail (&Wrap->IpInstance->RecycleLock);\r
RemoveEntryList (&Wrap->Link);\r
**/\r
IP6_RXDATA_WRAP *\r
Ip6WrapRxData (\r
- IN IP6_PROTOCOL *IpInstance,\r
- IN NET_BUF *Packet\r
+ IN IP6_PROTOCOL *IpInstance,\r
+ IN NET_BUF *Packet\r
)\r
{\r
- IP6_RXDATA_WRAP *Wrap;\r
- EFI_IP6_RECEIVE_DATA *RxData;\r
- EFI_STATUS Status;\r
+ IP6_RXDATA_WRAP *Wrap;\r
+ EFI_IP6_RECEIVE_DATA *RxData;\r
+ EFI_STATUS Status;\r
\r
Wrap = AllocatePool (IP6_RXDATA_WRAP_SIZE (Packet->BlockOpNum));\r
\r
\r
InitializeListHead (&Wrap->Link);\r
\r
- Wrap->IpInstance = IpInstance;\r
- Wrap->Packet = Packet;\r
- RxData = &Wrap->RxData;\r
+ Wrap->IpInstance = IpInstance;\r
+ Wrap->Packet = Packet;\r
+ RxData = &Wrap->RxData;\r
\r
ZeroMem (&RxData->TimeStamp, sizeof (EFI_TIME));\r
\r
//\r
// The application expects a network byte order header.\r
//\r
- RxData->HeaderLength = sizeof (EFI_IP6_HEADER);\r
- RxData->Header = (EFI_IP6_HEADER *) Ip6NtohHead (Packet->Ip.Ip6);\r
- RxData->DataLength = Packet->TotalSize;\r
+ RxData->HeaderLength = sizeof (EFI_IP6_HEADER);\r
+ RxData->Header = (EFI_IP6_HEADER *)Ip6NtohHead (Packet->Ip.Ip6);\r
+ RxData->DataLength = Packet->TotalSize;\r
\r
//\r
// Build the fragment table to be delivered up.\r
//\r
RxData->FragmentCount = Packet->BlockOpNum;\r
- NetbufBuildExt (Packet, (NET_FRAGMENT *) RxData->FragmentTable, &RxData->FragmentCount);\r
+ NetbufBuildExt (Packet, (NET_FRAGMENT *)RxData->FragmentTable, &RxData->FragmentCount);\r
\r
return Wrap;\r
}\r
**/\r
BOOLEAN\r
Ip6InstanceFrameAcceptable (\r
- IN IP6_PROTOCOL *IpInstance,\r
- IN EFI_IP6_HEADER *Head,\r
- IN NET_BUF *Packet\r
+ IN IP6_PROTOCOL *IpInstance,\r
+ IN EFI_IP6_HEADER *Head,\r
+ IN NET_BUF *Packet\r
)\r
{\r
- IP6_ICMP_ERROR_HEAD Icmp;\r
- EFI_IP6_CONFIG_DATA *Config;\r
- IP6_CLIP_INFO *Info;\r
- UINT8 *Proto;\r
- UINT32 Index;\r
- UINT8 *ExtHdrs;\r
- UINT16 ErrMsgPayloadLen;\r
- UINT8 *ErrMsgPayload;\r
+ IP6_ICMP_ERROR_HEAD Icmp;\r
+ EFI_IP6_CONFIG_DATA *Config;\r
+ IP6_CLIP_INFO *Info;\r
+ UINT8 *Proto;\r
+ UINT32 Index;\r
+ UINT8 *ExtHdrs;\r
+ UINT16 ErrMsgPayloadLen;\r
+ UINT8 *ErrMsgPayload;\r
\r
Config = &IpInstance->ConfigData;\r
Proto = NULL;\r
Packet,\r
&Head->NextHeader,\r
ExtHdrs,\r
- (UINT32) Head->PayloadLength,\r
+ (UINT32)Head->PayloadLength,\r
TRUE,\r
NULL,\r
&Proto,\r
NULL,\r
NULL,\r
NULL\r
- )) {\r
+ ))\r
+ {\r
return FALSE;\r
}\r
\r
// invoked by its packet, like UDP.\r
//\r
if ((*Proto == IP6_ICMP) && (!Config->AcceptAnyProtocol) && (*Proto != Config->DefaultProtocol)) {\r
- NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *) &Icmp);\r
+ NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *)&Icmp);\r
\r
if (Icmp.Head.Type <= ICMP_V6_ERROR_MAX) {\r
if (!Config->AcceptIcmpErrors) {\r
NULL,\r
NULL,\r
NULL\r
- )) {\r
+ ))\r
+ {\r
return FALSE;\r
}\r
}\r
**/\r
EFI_STATUS\r
Ip6InstanceEnquePacket (\r
- IN IP6_PROTOCOL *IpInstance,\r
- IN EFI_IP6_HEADER *Head,\r
- IN NET_BUF *Packet\r
+ IN IP6_PROTOCOL *IpInstance,\r
+ IN EFI_IP6_HEADER *Head,\r
+ IN NET_BUF *Packet\r
)\r
{\r
- IP6_CLIP_INFO *Info;\r
- NET_BUF *Clone;\r
+ IP6_CLIP_INFO *Info;\r
+ NET_BUF *Clone;\r
\r
//\r
// Check whether the packet is acceptable to this instance.\r
// Set the receive time out for the assembled packet. If it expires,\r
// packet will be removed from the queue.\r
//\r
- Info = IP6_GET_CLIP_INFO (Clone);\r
- Info->Life = IP6_US_TO_SEC (IpInstance->ConfigData.ReceiveTimeout);\r
+ Info = IP6_GET_CLIP_INFO (Clone);\r
+ Info->Life = IP6_US_TO_SEC (IpInstance->ConfigData.ReceiveTimeout);\r
\r
InsertTailList (&IpInstance->Received, &Clone->List);\r
return EFI_SUCCESS;\r
**/\r
EFI_STATUS\r
Ip6InstanceDeliverPacket (\r
- IN IP6_PROTOCOL *IpInstance\r
+ IN IP6_PROTOCOL *IpInstance\r
)\r
{\r
EFI_IP6_COMPLETION_TOKEN *Token;\r
// Deliver a packet if there are both a packet and a receive token.\r
//\r
while (!IsListEmpty (&IpInstance->Received) && !NetMapIsEmpty (&IpInstance->RxTokens)) {\r
-\r
Packet = NET_LIST_HEAD (&IpInstance->Received, NET_BUF, List);\r
\r
if (!NET_BUF_SHARED (Packet)) {\r
}\r
\r
RemoveEntryList (&Packet->List);\r
-\r
} else {\r
//\r
// Create a duplicated packet if this packet is shared\r
// headless. Trim the head off after copy. The IP head\r
// may be not continuous before the data.\r
//\r
- Head = NetbufAllocSpace (Dup, sizeof (EFI_IP6_HEADER), NET_BUF_HEAD);\r
+ Head = NetbufAllocSpace (Dup, sizeof (EFI_IP6_HEADER), NET_BUF_HEAD);\r
ASSERT (Head != NULL);\r
- Dup->Ip.Ip6 = (EFI_IP6_HEADER *) Head;\r
+ Dup->Ip.Ip6 = (EFI_IP6_HEADER *)Head;\r
\r
CopyMem (Head, Packet->Ip.Ip6, sizeof (EFI_IP6_HEADER));\r
NetbufTrim (Dup, sizeof (EFI_IP6_HEADER), TRUE);\r
**/\r
INTN\r
Ip6InterfaceEnquePacket (\r
- IN IP6_SERVICE *IpSb,\r
- IN EFI_IP6_HEADER *Head,\r
- IN NET_BUF *Packet,\r
- IN IP6_INTERFACE *IpIf\r
+ IN IP6_SERVICE *IpSb,\r
+ IN EFI_IP6_HEADER *Head,\r
+ IN NET_BUF *Packet,\r
+ IN IP6_INTERFACE *IpIf\r
)\r
{\r
- IP6_PROTOCOL *IpInstance;\r
- IP6_CLIP_INFO *Info;\r
- LIST_ENTRY *Entry;\r
- INTN Enqueued;\r
- INTN LocalType;\r
- INTN SavedType;\r
+ IP6_PROTOCOL *IpInstance;\r
+ IP6_CLIP_INFO *Info;\r
+ LIST_ENTRY *Entry;\r
+ INTN Enqueued;\r
+ INTN LocalType;\r
+ INTN SavedType;\r
\r
//\r
// First, check that the packet is acceptable to this interface\r
// and pass the local cast type to the IP children on the\r
// interface. The global cast type will be restored later.\r
//\r
- SavedType = Info->CastType;\r
- Info->CastType = (UINT32) LocalType;\r
+ SavedType = Info->CastType;\r
+ Info->CastType = (UINT32)LocalType;\r
\r
- Enqueued = 0;\r
+ Enqueued = 0;\r
\r
NET_LIST_FOR_EACH (Entry, &IpIf->IpInstances) {\r
IpInstance = NET_LIST_USER_STRUCT (Entry, IP6_PROTOCOL, AddrLink);\r
}\r
}\r
\r
- Info->CastType = (UINT32) SavedType;\r
+ Info->CastType = (UINT32)SavedType;\r
return Enqueued;\r
}\r
\r
**/\r
VOID\r
Ip6InterfaceDeliverPacket (\r
- IN IP6_SERVICE *IpSb,\r
- IN IP6_INTERFACE *IpIf\r
+ IN IP6_SERVICE *IpSb,\r
+ IN IP6_INTERFACE *IpIf\r
)\r
{\r
- IP6_PROTOCOL *IpInstance;\r
- LIST_ENTRY *Entry;\r
+ IP6_PROTOCOL *IpInstance;\r
+ LIST_ENTRY *Entry;\r
\r
NET_LIST_FOR_EACH (Entry, &IpIf->IpInstances) {\r
IpInstance = NET_LIST_USER_STRUCT (Entry, IP6_PROTOCOL, AddrLink);\r
**/\r
EFI_STATUS\r
Ip6Demultiplex (\r
- IN IP6_SERVICE *IpSb,\r
- IN EFI_IP6_HEADER *Head,\r
- IN NET_BUF *Packet\r
+ IN IP6_SERVICE *IpSb,\r
+ IN EFI_IP6_HEADER *Head,\r
+ IN NET_BUF *Packet\r
)\r
{\r
-\r
- LIST_ENTRY *Entry;\r
- IP6_INTERFACE *IpIf;\r
- INTN Enqueued;\r
+ LIST_ENTRY *Entry;\r
+ IP6_INTERFACE *IpIf;\r
+ INTN Enqueued;\r
\r
//\r
// Two pass delivery: first, enqueue a shared copy of the packet\r
EFI_STATUS\r
EFIAPI\r
Ip6SentPacketTicking (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
)\r
{\r
- IP6_TXTOKEN_WRAP *Wrap;\r
+ IP6_TXTOKEN_WRAP *Wrap;\r
\r
- Wrap = (IP6_TXTOKEN_WRAP *) Item->Value;\r
+ Wrap = (IP6_TXTOKEN_WRAP *)Item->Value;\r
ASSERT (Wrap != NULL);\r
\r
if ((Wrap->Life > 0) && (--Wrap->Life == 0)) {\r
**/\r
VOID\r
Ip6PacketTimerTicking (\r
- IN IP6_SERVICE *IpSb\r
+ IN IP6_SERVICE *IpSb\r
)\r
{\r
- LIST_ENTRY *InstanceEntry;\r
- LIST_ENTRY *Entry;\r
- LIST_ENTRY *Next;\r
- IP6_PROTOCOL *IpInstance;\r
- IP6_ASSEMBLE_ENTRY *Assemble;\r
- NET_BUF *Packet;\r
- IP6_CLIP_INFO *Info;\r
- UINT32 Index;\r
+ LIST_ENTRY *InstanceEntry;\r
+ LIST_ENTRY *Entry;\r
+ LIST_ENTRY *Next;\r
+ IP6_PROTOCOL *IpInstance;\r
+ IP6_ASSEMBLE_ENTRY *Assemble;\r
+ NET_BUF *Packet;\r
+ IP6_CLIP_INFO *Info;\r
+ UINT32 Index;\r
\r
//\r
// First, time out the fragments. The packet's life is counting down\r
// Time Exceeded message should be sent to the source of that fragment.\r
//\r
if ((Assemble->Packet != NULL) &&\r
- !IP6_IS_MULTICAST (&Assemble->Head->DestinationAddress)) {\r
+ !IP6_IS_MULTICAST (&Assemble->Head->DestinationAddress))\r
+ {\r
Ip6SendIcmpError (\r
IpSb,\r
Assemble->Packet,\r
NetMapIterate (&IpInstance->TxTokens, Ip6SentPacketTicking, NULL);\r
}\r
}\r
-\r