]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.h
NetworkPkg: Move Network library and drivers from MdeModulePkg to NetworkPkg
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Ip4Dxe / Ip4Input.h
diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.h b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.h
deleted file mode 100644 (file)
index f4d45d1..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-/** @file\r
-\r
-Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __EFI_IP4_INPUT_H__\r
-#define __EFI_IP4_INPUT_H__\r
-\r
-#define IP4_MIN_HEADLEN        20\r
-#define IP4_MAX_HEADLEN        60\r
-///\r
-/// 8(ESP header) + 16(max IV) + 16(max padding) + 2(ESP tail) + 12(max ICV) = 54\r
-///\r
-#define IP4_MAX_IPSEC_HEADLEN  54\r
-\r
-#define IP4_ASSEMLE_HASH_SIZE  31\r
-#define IP4_FRAGMENT_LIFE      120\r
-#define IP4_MAX_PACKET_SIZE    65535\r
-\r
-///\r
-/// Per packet information for input process. LinkFlag specifies whether\r
-/// the packet is received as Link layer unicast, multicast or broadcast.\r
-/// The CastType is the IP layer cast type, such as IP multicast or unicast.\r
-/// Start, End and Length are staffs used to assemble the packets. Start\r
-/// is the sequence number of the first byte of data in the packet. Length\r
-/// is the number of bytes of data. End = Start + Length, that is, the\r
-/// sequence number of last byte + 1. Each assembled packet has a count down\r
-/// life. If it isn't consumed before Life reaches zero, the packet is released.\r
-///\r
-typedef struct {\r
-  UINTN                     LinkFlag;\r
-  INTN                      CastType;\r
-  INTN                      Start;\r
-  INTN                      End;\r
-  INTN                      Length;\r
-  UINT32                    Life;\r
-  EFI_STATUS                Status;\r
-} IP4_CLIP_INFO;\r
-\r
-///\r
-/// Structure used to assemble IP packets.\r
-///\r
-typedef struct {\r
-  LIST_ENTRY                Link;\r
-\r
-  //\r
-  // Identity of one IP4 packet. Each fragment of a packet has\r
-  // the same (Dst, Src, Id, Protocol).\r
-  //\r
-  IP4_ADDR                  Dst;\r
-  IP4_ADDR                  Src;\r
-  UINT16                    Id;\r
-  UINT8                     Protocol;\r
-\r
-  INTN                      TotalLen;\r
-  INTN                      CurLen;\r
-  LIST_ENTRY                Fragments;  // List of all the fragments of this packet\r
-\r
-  IP4_HEAD                  *Head;      // IP head of the first fragment\r
-  IP4_CLIP_INFO             *Info;      // Per packet info of the first fragment\r
-  INTN                      Life;       // Count down life for the packet.\r
-} IP4_ASSEMBLE_ENTRY;\r
-\r
-///\r
-/// Each Ip service instance has an assemble table to reassemble\r
-/// the packets before delivery to its children. It is organized\r
-/// as hash table.\r
-///\r
-typedef struct {\r
-  LIST_ENTRY      Bucket[IP4_ASSEMLE_HASH_SIZE];\r
-} IP4_ASSEMBLE_TABLE;\r
-\r
-#define IP4_GET_CLIP_INFO(Packet) ((IP4_CLIP_INFO *) ((Packet)->ProtoData))\r
-\r
-#define IP4_ASSEMBLE_HASH(Dst, Src, Id, Proto)  \\r
-          (((Dst) + (Src) + ((Id) << 16) + (Proto)) % IP4_ASSEMLE_HASH_SIZE)\r
-\r
-#define IP4_RXDATA_WRAP_SIZE(NumFrag) \\r
-          (sizeof (IP4_RXDATA_WRAP) + sizeof (EFI_IP4_FRAGMENT_DATA) * ((NumFrag) - 1))\r
-\r
-/**\r
-  Initialize an already allocated assemble table. This is generally\r
-  the assemble table embedded in the IP4 service instance.\r
-\r
-  @param[in, out]  Table                  The assemble table to initialize.\r
-\r
-**/\r
-VOID\r
-Ip4InitAssembleTable (\r
-  IN OUT IP4_ASSEMBLE_TABLE     *Table\r
-  );\r
-\r
-/**\r
-  Clean up the assemble table: remove all the fragments\r
-  and assemble entries.\r
-\r
-  @param[in]  Table                  The assemble table to clean up\r
-\r
-**/\r
-VOID\r
-Ip4CleanAssembleTable (\r
-  IN IP4_ASSEMBLE_TABLE     *Table\r
-  );\r
-\r
-/**\r
-  The IP4 input routine. It is called by the IP4_INTERFACE when a\r
-  IP4 fragment is received from MNP.\r
-\r
-  @param[in]  Ip4Instance        The IP4 child that request the receive, most like\r
-                                 it is NULL.\r
-  @param[in]  Packet             The IP4 packet received.\r
-  @param[in]  IoStatus           The return status of receive request.\r
-  @param[in]  Flag               The link layer flag for the packet received, such\r
-                                 as multicast.\r
-  @param[in]  Context            The IP4 service instance that own the MNP.\r
-\r
-**/\r
-VOID\r
-Ip4AccpetFrame (\r
-  IN IP4_PROTOCOL           *Ip4Instance,\r
-  IN NET_BUF                *Packet,\r
-  IN EFI_STATUS             IoStatus,\r
-  IN UINT32                 Flag,\r
-  IN VOID                   *Context\r
-  );\r
-\r
-/**\r
-  Demultiple the packet. the packet delivery is processed in two\r
-  passes. The first pass will enque a shared copy of the packet\r
-  to each IP4 child that accepts the packet. The second pass will\r
-  deliver a non-shared copy of the packet to each IP4 child that\r
-  has pending receive requests. Data is copied if more than one\r
-  child wants to consume the packet because each IP child needs\r
-  its own copy of the packet to make changes.\r
-\r
-  @param[in]  IpSb               The IP4 service instance that received the packet.\r
-  @param[in]  Head               The header of the received packet.\r
-  @param[in]  Packet             The data of the received packet.\r
-  @param[in]  Option             Point to the IP4 packet header options.\r
-  @param[in]  OptionLen          Length of the IP4 packet header options.\r
-\r
-  @retval EFI_NOT_FOUND          No IP child accepts the packet.\r
-  @retval EFI_SUCCESS            The packet is enqueued or delivered to some IP\r
-                                 children.\r
-\r
-**/\r
-EFI_STATUS\r
-Ip4Demultiplex (\r
-  IN IP4_SERVICE            *IpSb,\r
-  IN IP4_HEAD               *Head,\r
-  IN NET_BUF                *Packet,\r
-  IN UINT8                  *Option,\r
-  IN UINT32                 OptionLen\r
-  );\r
-\r
-/**\r
-  Enqueue a received packet to all the IP children that share\r
-  the same interface.\r
-\r
-  @param[in]  IpSb               The IP4 service instance that receive the packet.\r
-  @param[in]  Head               The header of the received packet.\r
-  @param[in]  Packet             The data of the received packet.\r
-  @param[in]  Option             Point to the IP4 packet header options.\r
-  @param[in]  OptionLen          Length of the IP4 packet header options.\r
-  @param[in]  IpIf               The interface to enqueue the packet to.\r
-\r
-  @return The number of the IP4 children that accepts the packet\r
-\r
-**/\r
-INTN\r
-Ip4InterfaceEnquePacket (\r
-  IN IP4_SERVICE            *IpSb,\r
-  IN IP4_HEAD               *Head,\r
-  IN NET_BUF                *Packet,\r
-  IN UINT8                  *Option,\r
-  IN UINT32                 OptionLen,\r
-  IN IP4_INTERFACE          *IpIf\r
-  );\r
-\r
-/**\r
-  Deliver the received packets to upper layer if there are both received\r
-  requests and enqueued packets. If the enqueued packet is shared, it will\r
-  duplicate it to a non-shared packet, release the shared packet, then\r
-  deliver the non-shared packet up.\r
-\r
-  @param[in]  IpInstance         The IP child to deliver the packet up.\r
-\r
-  @retval EFI_OUT_OF_RESOURCES   Failed to allocate resources to deliver the\r
-                                 packets.\r
-  @retval EFI_SUCCESS            All the enqueued packets that can be delivered\r
-                                 are delivered up.\r
-\r
-**/\r
-EFI_STATUS\r
-Ip4InstanceDeliverPacket (\r
-  IN IP4_PROTOCOL           *IpInstance\r
-  );\r
-\r
-/**\r
-  Timeout the fragment and enqueued packets.\r
-\r
-  @param[in]  IpSb                   The IP4 service instance to timeout\r
-\r
-**/\r
-VOID\r
-Ip4PacketTimerTicking (\r
-  IN IP4_SERVICE            *IpSb\r
-  );\r
-\r
-/**\r
-  The work function to locate IPsec protocol to process the inbound or\r
-  outbound IP packets. The process routine handls the packet with following\r
-  actions: bypass the packet, discard the packet, or protect the packet.\r
-\r
-  @param[in]       IpSb          The IP4 service instance.\r
-  @param[in, out]  Head          The The caller supplied IP4 header.\r
-  @param[in, out]  Netbuf        The IP4 packet to be processed by IPsec.\r
-  @param[in, out]  Options       The caller supplied options.\r
-  @param[in, out]  OptionsLen    The length of the option.\r
-  @param[in]       Direction     The directionality in an SPD entry,\r
-                                 EfiIPsecInBound or EfiIPsecOutBound.\r
-  @param[in]       Context       The token's wrap.\r
-\r
-  @retval EFI_SUCCESS            The IPsec protocol is not available or disabled.\r
-  @retval EFI_SUCCESS            The packet was bypassed and all buffers remain the same.\r
-  @retval EFI_SUCCESS            The packet was protected.\r
-  @retval EFI_ACCESS_DENIED      The packet was discarded.\r
-  @retval EFI_OUT_OF_RESOURCES   There is no suffcient resource to complete the operation.\r
-  @retval EFI_BUFFER_TOO_SMALL   The number of non-empty block is bigger than the\r
-                                 number of input data blocks when build a fragment table.\r
-\r
-**/\r
-EFI_STATUS\r
-Ip4IpSecProcessPacket (\r
-  IN     IP4_SERVICE            *IpSb,\r
-  IN OUT IP4_HEAD               **Head,\r
-  IN OUT NET_BUF                **Netbuf,\r
-  IN OUT UINT8                  **Options,\r
-  IN OUT UINT32                 *OptionsLen,\r
-  IN     EFI_IPSEC_TRAFFIC_DIR  Direction,\r
-  IN     VOID                   *Context\r
-  );\r
-\r
-#endif\r