/** Processes an IP packet inside an Ethernet frame, and writes the appropriate response\r
* to the output Ethernet frame if one is created by a subprotocol handler.\r
*\r
+ * \param FrameIN Pointer to the incomming Ethernet frame information structure\r
* \param InDataStart Pointer to the start of the incoming packet's IP header\r
* \param OutDataStart Pointer to the start of the outgoing packet's IP header\r
*\r
* response was generated, NO_PROCESS if the packet processing was deferred until the\r
* next Ethernet packet handler iteration\r
*/\r
-int16_t IP_ProcessIPPacket(void* InDataStart, void* OutDataStart)\r
+int16_t IP_ProcessIPPacket(Ethernet_Frame_Info_t* FrameIN, void* InDataStart, void* OutDataStart)\r
{\r
DecodeIPHeader(InDataStart);\r
\r
switch (IPHeaderIN->Protocol)\r
{\r
case PROTOCOL_ICMP:\r
- RetSize = ICMP_ProcessICMPPacket(&((uint8_t*)InDataStart)[HeaderLengthBytes],\r
+ RetSize = ICMP_ProcessICMPPacket(FrameIN,\r
+ &((uint8_t*)InDataStart)[HeaderLengthBytes],\r
&((uint8_t*)OutDataStart)[sizeof(IP_Header_t)]);\r
break;\r
case PROTOCOL_TCP:\r