/* Create an empty assemble entry for the packet identified by (Dst, Src, Id). The default life for the packet is 60 seconds. */
IP6_ASSEMBLE_ENTRY* Ip6CreateAssembleEntry(IN EFI_IPv6_ADDRESS *Dst, IN EFI_IPv6_ADDRESS *Src, IN UINT32 Id)
/* Create an empty assemble entry for the packet identified by (Dst, Src, Id). The default life for the packet is 60 seconds. */
IP6_ASSEMBLE_ENTRY* Ip6CreateAssembleEntry(IN EFI_IPv6_ADDRESS *Dst, IN EFI_IPv6_ADDRESS *Src, IN UINT32 Id)
{
  IP6_ASSEMBLE_ENTRY  *Assemble;
  Assemble = AllocatePool (sizeof (IP6_ASSEMBLE_ENTRY));
  if (Assemble == NULL) {
    return NULL;
  }
  IP6_COPY_ADDRESS (&Assemble->Dst, Dst);
  IP6_COPY_ADDRESS (&Assemble->Src, Src);
  InitializeListHead (&Assemble->Fragments);
  Assemble->Id   = Id;
  Assemble->Life = IP6_FRAGMENT_LIFE + 1;
  Assemble->TotalLen = 0;
  Assemble->CurLen   = 0;
  Assemble->Head     = NULL;
  Assemble->Info     = NULL;
  Assemble->Packet   = NULL;
  return Assemble;
}