/* Allocate and initialize a IP6 route cache entry. */
IP6_ROUTE_CACHE_ENTRY* Ip6CreateRouteCacheEntry(IN EFI_IPv6_ADDRESS *Dst, IN EFI_IPv6_ADDRESS *Src, IN EFI_IPv6_ADDRESS *GateWay, IN UINTN Tag)
/* Allocate and initialize a IP6 route cache entry. */
IP6_ROUTE_CACHE_ENTRY* Ip6CreateRouteCacheEntry(IN EFI_IPv6_ADDRESS *Dst, IN EFI_IPv6_ADDRESS *Src, IN EFI_IPv6_ADDRESS *GateWay, IN UINTN Tag)
{
  IP6_ROUTE_CACHE_ENTRY  *RtCacheEntry;
  RtCacheEntry = AllocatePool (sizeof (IP6_ROUTE_CACHE_ENTRY));
  if (RtCacheEntry == NULL) {
    return NULL;
  }
  RtCacheEntry->RefCnt = 1;
  RtCacheEntry->Tag    = Tag;
  IP6_COPY_ADDRESS (&RtCacheEntry->Destination, Dst);
  IP6_COPY_ADDRESS (&RtCacheEntry->Source, Src);
  IP6_COPY_ADDRESS (&RtCacheEntry->NextHop, GateWay);
  return RtCacheEntry;
}