TianoCore EDK2 master
Loading...
Searching...
No Matches
Ip6Output.h File Reference

Go to the source code of this file.

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 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 Ip6CancelFrames (IN IP6_INTERFACE *Interface, IN EFI_STATUS IoStatus, IN IP6_FRAME_TO_CANCEL FrameToCancel OPTIONAL, IN VOID *Context OPTIONAL)
 
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.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Ip6Output.h.

Function Documentation

◆ Ip6CancelFrames()

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

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]InterfaceInterface to remove the frames from.
[in]IoStatusThe transmit status returned to the frames' callback.
[in]FrameToCancelFunction to select the frame to cancel; NULL to select all.
[in]ContextOpaque 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]InterfaceInterface to remove the frames from.
[in]IoStatusThe transmit status returned to the frames' callback.
[in]FrameToCancelFunction to select the frame to cancel; NULL to select all.
[in]ContextOpaque parameters passed to FrameToCancel. Ignored if FrameToCancel is NULL.

Definition at line 1024 of file Ip6Output.c.

◆ Ip6CancelPacket()

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

Cancel the Packet and all its fragments.

Parameters
[in]IpIfThe interface from which the Packet is sent.
[in]PacketThe Packet to cancel.
[in]IoStatusThe status returns to the sender.

Definition at line 1081 of file Ip6Output.c.

◆ Ip6Output()

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 
)

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]IpSbThe IP6 service instance to transmit the packet.
[in]InterfaceThe IP6 interface to transmit the packet. Ignored if NULL.
[in]IpInstanceThe IP6 child that issues the transmission. It is NULL if the packet is from the system.
[in]PacketThe user data to send, excluding the IP header.
[in]HeadThe 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]ExtHdrsThe extension headers to append to the IPv6 basic header.
[in]ExtHdrsLenThe length of the extension headers.
[in]CallbackThe callback function to issue when transmission completed.
[in]ContextThe opaque context for the callback.
Return values
EFI_INVALID_PARAMETERAny input parameter or the packet is invalid.
EFI_NO_MAPPINGThere is no interface to the destination.
EFI_NOT_FOUNDThere is no route to the destination.
EFI_SUCCESSThe packet successfully transmitted.
EFI_OUT_OF_RESOURCESFailed to finish the operation due to lack of resources.
OthersFailed to transmit the packet.

Definition at line 476 of file Ip6Output.c.

◆ Ip6SelectSourceAddress()

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]IpSbPoints to a IP6 service binding instance.
[in]DestinationThe IPv6 destination address.
[out]SourceThe selected IPv6 source address according to the Destination.
Return values
EFI_SUCCESSThe source addresses were copied to the list entry head SourceList.
EFI_NO_MAPPINGThe 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]IpSbPoints to a IP6 service binding instance.
[in]DestinationThe IPv6 destination address.
[out]SourceThe selected IPv6 source address according to the Destination.
Return values
EFI_SUCCESSThe source addresses were copied to a list entry head SourceList.
EFI_NO_MAPPINGThe IPv6 stack is not auto configured.

Definition at line 153 of file Ip6Output.c.

◆ Ip6SysPacketSent()

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]PacketThe packet that transmitted.
[in]IoStatusThe result of the transmission: succeeded or failed.
[in]LinkFlagNot used when transmission. Check IP6_FRAME_CALLBACK for reference.
[in]ContextThe context provided by us.

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

Parameters
[in]PacketThe packet that transmitted.
[in]IoStatusThe result of the transmission, succeeded or failed.
[in]LinkFlagNot used when transmitted. Check IP6_FRAME_CALLBACK for reference.
[in]ContextThe context provided by us.

Definition at line 337 of file Ip6Output.c.

Variable Documentation

◆ mIp6Id

UINT32 mIp6Id
extern

Definition at line 12 of file Ip6Output.c.