+++ /dev/null
-/** @file\r
-\r
-Copyright (c) 2005 - 2006, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __EFI_IP4_OUTPUT_H__\r
-#define __EFI_IP4_OUTPUT_H__\r
-\r
-/**\r
- The default callback function for system generated packet.\r
- It will free the packet.\r
-\r
- @param Ip4Instance The IP4 child that issued the transmission. It most\r
- like is NULL.\r
- @param Packet The packet that transmitted.\r
- @param IoStatus The result of the transmission, succeeded or failed.\r
- @param LinkFlag Not used when transmission. check IP4_FRAME_CALLBACK\r
- for reference.\r
- @param Context The context provided by us\r
-\r
-**/\r
-VOID\r
-Ip4SysPacketSent (\r
- IP4_PROTOCOL *Ip4Instance,\r
- NET_BUF *Packet,\r
- EFI_STATUS IoStatus,\r
- UINT32 LinkFlag,\r
- VOID *Context\r
- );\r
-\r
-/**\r
- Transmit an IP4 packet. The packet comes either from the IP4\r
- child's consumer (IpInstance != NULL) or the IP4 driver itself\r
- (IpInstance == NULL). It will route the packet, fragment it,\r
- then transmit all the fragments through some interface.\r
-\r
- @param[in] IpSb The IP4 service instance to transmit the packet\r
- @param[in] IpInstance The IP4 child that issues the transmission. It is\r
- NULL if the packet is from the system.\r
- @param[in] Packet The user data to send, excluding the IP header.\r
- @param[in] Head The caller supplied header. The caller should set\r
- the following header fields: Tos, TotalLen, Id, tl,\r
- Fragment, Protocol, Src and Dst. All the fields are\r
- in host byte order. This function will fill in the\r
- Ver, HeadLen, Fragment, and checksum. The Fragment\r
- only need to include the DF flag. Ip4Output will\r
- compute the MF and offset for you.\r
- @param[in] Option The original option to append to the IP headers\r
- @param[in] OptLen The length of the option\r
- @param[in] GateWay The next hop address to transmit packet to.\r
- 255.255.255.255 means broadcast.\r
- @param[in] Callback The callback function to issue when transmission\r
- completed.\r
- @param[in] Context The opaque context for the callback\r
-\r
- @retval EFI_NO_MAPPING There is no interface to the destination.\r
- @retval EFI_NOT_FOUND There is no route to the destination\r
- @retval EFI_SUCCESS The packet is successfully transmitted.\r
- @retval Others Failed to transmit the packet.\r
-\r
-**/\r
-EFI_STATUS\r
-Ip4Output (\r
- IN IP4_SERVICE *IpSb,\r
- IN IP4_PROTOCOL *IpInstance OPTIONAL,\r
- IN NET_BUF *Packet,\r
- IN IP4_HEAD *Head,\r
- IN UINT8 *Option,\r
- IN UINT32 OptLen,\r
- IN IP4_ADDR GateWay,\r
- IN IP4_FRAME_CALLBACK Callback,\r
- IN VOID *Context\r
- );\r
-\r
-/**\r
- Cancel the Packet and all its fragments.\r
-\r
- @param IpIf The interface from which the Packet is sent\r
- @param Packet The Packet to cancel\r
- @param IoStatus The status returns to the sender.\r
-\r
-**/\r
-VOID\r
-Ip4CancelPacket (\r
- IN IP4_INTERFACE *IpIf,\r
- IN NET_BUF *Packet,\r
- IN EFI_STATUS IoStatus\r
- );\r
-\r
-/**\r
- Prepend an IP4 head to the Packet. It will copy the options and\r
- build the IP4 header fields. Used for IP4 fragmentation.\r
-\r
- @param Packet The packet to prepend IP4 header to\r
- @param Head The caller supplied header. The caller should set\r
- the following header fields: Tos, TotalLen, Id,\r
- Fragment, Ttl, Protocol, Src and Dst. All the fields\r
- are in host byte order. This function will fill in\r
- the Ver, HeadLen, and checksum.\r
- @param Option The orginal IP4 option to copy from\r
- @param OptLen The length of the IP4 option\r
-\r
- @retval EFI_BAD_BUFFER_SIZE There is no enought room in the head space of\r
- Packet.\r
- @retval EFI_SUCCESS The IP4 header is successfully added to the packet.\r
-\r
-**/\r
-EFI_STATUS\r
-Ip4PrependHead (\r
- IN OUT NET_BUF *Packet,\r
- IN IP4_HEAD *Head,\r
- IN UINT8 *Option,\r
- IN UINT32 OptLen\r
- );\r
-\r
-extern UINT16 mIp4Id;\r
-\r
-#endif\r