#ifndef __EFI_IP6_INPUT_H__\r
#define __EFI_IP6_INPUT_H__\r
\r
-#define IP6_MIN_HEADLEN 40\r
-#define IP6_MAX_HEADLEN 120\r
+#define IP6_MIN_HEADLEN 40\r
+#define IP6_MAX_HEADLEN 120\r
///\r
/// 8(ESP header) + 16(max IV) + 16(max padding) + 2(ESP tail) + 12(max ICV) = 54\r
///\r
-#define IP6_MAX_IPSEC_HEADLEN 54\r
+#define IP6_MAX_IPSEC_HEADLEN 54\r
\r
-\r
-#define IP6_ASSEMLE_HASH_SIZE 127\r
+#define IP6_ASSEMLE_HASH_SIZE 127\r
///\r
/// Lift time in seconds.\r
///\r
-#define IP6_FRAGMENT_LIFE 60\r
-#define IP6_MAX_PACKET_SIZE 65535\r
-\r
+#define IP6_FRAGMENT_LIFE 60\r
+#define IP6_MAX_PACKET_SIZE 65535\r
\r
-#define IP6_GET_CLIP_INFO(Packet) ((IP6_CLIP_INFO *) ((Packet)->ProtoData))\r
+#define IP6_GET_CLIP_INFO(Packet) ((IP6_CLIP_INFO *) ((Packet)->ProtoData))\r
\r
#define IP6_ASSEMBLE_HASH(Dst, Src, Id) \\r
((*((UINT32 *) (Dst)) + *((UINT32 *) (Src)) + (Id)) % IP6_ASSEMLE_HASH_SIZE)\r
// life. If it isn't consumed before Life reaches zero, the packet is released.\r
//\r
typedef struct {\r
- UINT32 LinkFlag;\r
- INT32 CastType;\r
- INT32 Start;\r
- INT32 End;\r
- INT32 Length;\r
- UINT32 Life;\r
- EFI_STATUS Status;\r
- UINT32 Id;\r
- UINT16 HeadLen;\r
- UINT8 NextHeader;\r
- UINT8 LastFrag;\r
- UINT32 FormerNextHeader;\r
+ UINT32 LinkFlag;\r
+ INT32 CastType;\r
+ INT32 Start;\r
+ INT32 End;\r
+ INT32 Length;\r
+ UINT32 Life;\r
+ EFI_STATUS Status;\r
+ UINT32 Id;\r
+ UINT16 HeadLen;\r
+ UINT8 NextHeader;\r
+ UINT8 LastFrag;\r
+ UINT32 FormerNextHeader;\r
} IP6_CLIP_INFO;\r
\r
//\r
// Structure used to assemble IP packets.\r
//\r
typedef struct {\r
- LIST_ENTRY Link;\r
- LIST_ENTRY Fragments; // List of all the fragments of this packet\r
+ LIST_ENTRY Link;\r
+ LIST_ENTRY Fragments; // List of all the fragments of this packet\r
\r
//\r
// Identity of one IP6 packet. Each fragment of a packet has\r
// the same (Dst, Src, Id).\r
//\r
- EFI_IPv6_ADDRESS Dst;\r
- EFI_IPv6_ADDRESS Src;\r
- UINT32 Id;\r
+ EFI_IPv6_ADDRESS Dst;\r
+ EFI_IPv6_ADDRESS Src;\r
+ UINT32 Id;\r
\r
- UINT32 TotalLen;\r
- UINT32 CurLen;\r
- UINT32 Life; // Count down life for the packet.\r
+ UINT32 TotalLen;\r
+ UINT32 CurLen;\r
+ UINT32 Life; // Count down life for the packet.\r
\r
- EFI_IP6_HEADER *Head; // IP head of the first fragment\r
- IP6_CLIP_INFO *Info; // Per packet information of the first fragment\r
- NET_BUF *Packet; // The first fragment of the packet\r
+ EFI_IP6_HEADER *Head; // IP head of the first fragment\r
+ IP6_CLIP_INFO *Info; // Per packet information of the first fragment\r
+ NET_BUF *Packet; // The first fragment of the packet\r
} IP6_ASSEMBLE_ENTRY;\r
\r
//\r
// as hash table.\r
//\r
typedef struct {\r
- LIST_ENTRY Bucket[IP6_ASSEMLE_HASH_SIZE];\r
+ LIST_ENTRY Bucket[IP6_ASSEMLE_HASH_SIZE];\r
} IP6_ASSEMBLE_TABLE;\r
\r
/**\r
**/\r
VOID\r
Ip6AcceptFrame (\r
- IN NET_BUF *Packet,\r
- IN EFI_STATUS IoStatus,\r
- IN UINT32 Flag,\r
- IN VOID *Context\r
+ IN NET_BUF *Packet,\r
+ IN EFI_STATUS IoStatus,\r
+ IN UINT32 Flag,\r
+ IN VOID *Context\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
Ip6InstanceDeliverPacket (\r
- IN IP6_PROTOCOL *IpInstance\r
+ IN IP6_PROTOCOL *IpInstance\r
);\r
\r
/**\r
**/\r
VOID\r
Ip6CreateAssembleTable (\r
- IN OUT IP6_ASSEMBLE_TABLE *Table\r
+ IN OUT IP6_ASSEMBLE_TABLE *Table\r
);\r
\r
/**\r
**/\r
VOID\r
Ip6CleanAssembleTable (\r
- IN OUT IP6_ASSEMBLE_TABLE *Table\r
+ IN OUT IP6_ASSEMBLE_TABLE *Table\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
Ip6Demultiplex (\r
- IN IP6_SERVICE *IpSb,\r
- IN EFI_IP6_HEADER *Head,\r
- IN NET_BUF *Packet\r
+ IN IP6_SERVICE *IpSb,\r
+ IN EFI_IP6_HEADER *Head,\r
+ IN NET_BUF *Packet\r
);\r
\r
/**\r
**/\r
VOID\r
Ip6PacketTimerTicking (\r
- IN IP6_SERVICE *IpSb\r
+ IN IP6_SERVICE *IpSb\r
);\r
\r
#endif\r