NetworkPkg/Ip6Dxe/Ip6Output.h File Reference


Functions

EFI_STATUS Ip6SelectSourceAddress (IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *Destination, OUT EFI_IPv6_ADDRESS *Source)
VOID Ip6SysPacketSent (NET_BUF *Packet, EFI_STATUS IoStatus, UINT32 LinkFlag, VOID *Context)
EFI_STATUS Ip6Output (IN IP6_SERVICE *IpSb, IN IP6_INTERFACE *Interface, IN IP6_PROTOCOL *IpInstance, IN NET_BUF *Packet, IN EFI_IP6_HEADER *Head, IN UINT8 *ExtHdrs, IN UINT32 ExtHdrsLen, IN IP6_FRAME_CALLBACK Callback, IN VOID *Context)
VOID Ip6CancelFrames (IN IP6_INTERFACE *Interface, IN EFI_STATUS IoStatus, IN IP6_FRAME_TO_CANCEL FrameToCancel, IN VOID *Context)
VOID Ip6CancelPacket (IN IP6_INTERFACE *IpIf, IN NET_BUF *Packet, IN EFI_STATUS IoStatus)

Variables

UINT32 mIp6Id

Detailed Description

The internal functions and routines to transmit the IP6 packet.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.

This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.


Function Documentation

VOID Ip6CancelFrames ( IN IP6_INTERFACE Interface,
IN EFI_STATUS  IoStatus,
IN IP6_FRAME_TO_CANCEL  FrameToCancel,
IN VOID *  Context 
)

Remove all the frames on the interface that pass the FrameToCancel, either queued on ARP queues, or that have already been delivered to MNP and not yet recycled.

Parameters:
[in] Interface Interface to remove the frames from.
[in] IoStatus The transmit status returned to the frames' callback.
[in] FrameToCancel Function to select the frame to cancel; NULL to select all.
[in] Context Opaque parameters passed to FrameToCancel. Ignored if FrameToCancel is NULL.
Remove all the frames on the interface that pass the FrameToCancel, either queued on ARP queues or that have already been delivered to MNP and not yet recycled.

Parameters:
[in] Interface Interface to remove the frames from.
[in] IoStatus The transmit status returned to the frames' callback.
[in] FrameToCancel Function to select the frame to cancel; NULL to select all.
[in] Context Opaque parameters passed to FrameToCancel. Ignored if FrameToCancel is NULL.

References IP6_SERVICE_SIGNATURE, Ip6FreeNeighborEntry(), _IP6_SERVICE::Mnp, and IP6_LINK_TX_TOKEN::MnpToken.

Referenced by Ip6CancelPacket(), and Ip6CleanInterface().

VOID Ip6CancelPacket ( IN IP6_INTERFACE IpIf,
IN NET_BUF *  Packet,
IN EFI_STATUS  IoStatus 
)

Cancel the Packet and all its fragments.

Parameters:
[in] IpIf The interface from which the Packet is sent.
[in] Packet The Packet to cancel.
[in] IoStatus The status returns to the sender.

References Ip6CancelFrames(), and Ip6CancelPacketFragments().

Referenced by Ip6CancelTxTokens(), Ip6Output(), and Ip6SentPacketTicking().

EFI_STATUS Ip6Output ( IN IP6_SERVICE IpSb,
IN IP6_INTERFACE Interface,
IN IP6_PROTOCOL IpInstance,
IN NET_BUF *  Packet,
IN EFI_IP6_HEADER *  Head,
IN UINT8 *  ExtHdrs,
IN UINT32  ExtHdrsLen,
IN IP6_FRAME_CALLBACK  Callback,
IN VOID *  Context 
)

Transmit an IP6 packet. The packet comes either from the IP6 child's consumer (IpInstance != NULL) or the IP6 driver itself (IpInstance == NULL). It will route the packet, fragment it, then transmit all the fragments through an interface.

Parameters:
[in] IpSb The IP6 service instance to transmit the packet.
[in] Interface The IP6 interface to transmit the packet. Ignored if NULL.
[in] IpInstance The IP6 child that issues the transmission. It is NULL if the packet is from the system.
[in] Packet The user data to send, excluding the IP header.
[in] Head The caller supplied header. The caller should set the following header fields: NextHeader, HopLimit, Src, Dest, FlowLabel, PayloadLength. This function will fill in the Ver, TrafficClass.
[in] ExtHdrs The extension headers to append to the IPv6 basic header.
[in] ExtHdrsLen The length of the extension headers.
[in] Callback The callback function to issue when transmission completed.
[in] Context The opaque context for the callback.
Return values:
EFI_INVALID_PARAMETER Any input parameter or the packet is invalid.
EFI_NO_MAPPING There is no interface to the destination.
EFI_NOT_FOUND There is no route to the destination.
EFI_SUCCESS The packet successfully transmitted.
EFI_OUT_OF_RESOURCES Failed to finish the operation due to lack of resources.
Others Failed to transmit the packet.

References IP6_ROUTE_ENTRY::Flag, _IP6_NEIGHBOR_ENTRY::Interface, IP6_GET_TICKS, IP6_PACKET_TOO_BIG, IP6_SERVICE_SIGNATURE, Ip6CancelPacket(), Ip6CreateNeighborEntry(), Ip6CreateSNMulticastAddr(), Ip6FillFragmentHeader(), Ip6FindNeighborEntry(), Ip6FindRouteEntry(), Ip6FreeRouteCacheEntry(), Ip6FreeRouteEntry(), Ip6IpSecProcessPacket(), Ip6IsAnycast(), Ip6IsExtsValid(), Ip6OnArpResolved(), Ip6PrependHead(), Ip6Route(), Ip6SelectInterface(), Ip6SelectSourceAddress(), Ip6SendFrame(), Ip6SendNeighborSolicit(), Ip6SysPacketSent(), mIp6Id, _IP6_NEIGHBOR_ENTRY::Neighbor, IP6_ROUTE_CACHE_ENTRY::NextHop, _IP6_NEIGHBOR_ENTRY::Ticks, IP6_TXTOKEN_WRAP::Token, and _IP6_NEIGHBOR_ENTRY::Transmit.

Referenced by EfiIp6Transmit(), Ip6IcmpReplyEcho(), Ip6SendIcmpError(), Ip6SendMldDone(), Ip6SendMldReport(), Ip6SendNeighborAdvertise(), Ip6SendNeighborSolicit(), and Ip6SendRouterSolicit().

EFI_STATUS Ip6SelectSourceAddress ( IN IP6_SERVICE IpSb,
IN EFI_IPv6_ADDRESS *  Destination,
OUT EFI_IPv6_ADDRESS *  Source 
)

Output all the available source addresses to the list entry head SourceList. The number of source addresses are also returned.

Parameters:
[in] IpSb Points to a IP6 service binding instance.
[in] Destination The IPv6 destination address.
[out] Source The selected IPv6 source address according to the Destination.
Return values:
EFI_SUCCESS The source addresses were copied to the list entry head SourceList.
EFI_NO_MAPPING The IPv6 stack is not auto configured.
Output all the available source addresses to a list entry head SourceList. The number of source addresses are also returned.

Parameters:
[in] IpSb Points to a IP6 service binding instance.
[in] Destination The IPv6 destination address.
[out] Source The selected IPv6 source address according to the Destination.
Return values:
EFI_SUCCESS The source addresses were copied to a list entry head SourceList.
EFI_NO_MAPPING The IPv6 stack is not auto configured.

References _IP6_ADDRESS_INFO::Address, IP6_ADDR_INFO_SIGNATURE, IP6_SERVICE_SIGNATURE, Ip6CandidateSource(), Ip6CommonPrefixLen(), Ip6IsOneOfSetAddress(), Ip6RemoveAddr(), _IP6_PREFIX_LIST_ENTRY::PreferredLifetime, _IP6_PREFIX_LIST_ENTRY::Prefix, and _IP6_PREFIX_LIST_ENTRY::PrefixLength.

Referenced by EfiIp6Transmit(), Ip6ConfigProtocol(), Ip6NdFasterTimerTicking(), Ip6Output(), and Ip6SelectInterface().

VOID Ip6SysPacketSent ( NET_BUF *  Packet,
EFI_STATUS  IoStatus,
UINT32  LinkFlag,
VOID *  Context 
)

The default callback function for system generated packet. It will free the packet.

Parameters:
[in] Packet The packet that transmitted.
[in] IoStatus The result of the transmission: succeeded or failed.
[in] LinkFlag Not used when transmission. Check IP6_FRAME_CALLBACK for reference.
[in] Context The context provided by us.
The default callback function for the system generated packet. It will free the packet.

Parameters:
[in] Packet The packet that transmitted.
[in] IoStatus The result of the transmission, succeeded or failed.
[in] LinkFlag Not used when transmitted. Check IP6_FRAME_CALLBACK for reference.
[in] Context The context provided by us.

Referenced by Ip6IcmpReplyEcho(), Ip6Output(), Ip6SendIcmpError(), Ip6SendMldDone(), Ip6SendMldReport(), Ip6SendNeighborAdvertise(), Ip6SendNeighborSolicit(), and Ip6SendRouterSolicit().


Variable Documentation

UINT32 mIp6Id


Generated on Mon Sep 28 08:49:06 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1