Запустил шарк. 45 000 пакетов принято. А счетчик пакетов (первые 4 байта пакета)70 000. Как-то так....
Код
while (1) {
/* check if any packet received */
if (ETH_CheckFrameReceived()) {
/* process received ethernet packet */
LwIP_Pkt_Handle();
}
/* handle periodic timers for LwIP */
LwIP_Periodic_Handle(LocalTime);
/* allocate pbuf from pool*/
p = pbuf_alloc(PBUF_TRANSPORT, 1000, PBUF_POOL);
if (p != NULL) {
/* copy data to pbuf */
pbuf_take(p, (char*) data, 1000);
/* send udp data */
if (udp_send(upcb, p) == ERR_OK) {
PacketCount++;
data[0] = (PacketCount >> 24) & 0x000000FF;
data[1] = (PacketCount >> 16) & 0x000000FF;
data[2] = (PacketCount >> 8) & 0x000000FF;
data[3] = (PacketCount) & 0x000000FF;
//Delay_xx(500);
}
/* free pbuf */
pbuf_free(p);
}
}
Цитата(scifi @ Dec 9 2013, 18:15)

Можно на уровне Ethernet MAC собирать информацию ... Некрасиво, но можно попробовать.
очень не хочется...но возможно это будет самый простой вариант.