am79c973 missed frame?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
maxtyson123
Posts: 19
Joined: Wed Apr 19, 2023 1:40 am
Freenode IRC: maxtyson123

am79c973 missed frame?

Post by maxtyson123 »

Hi, my am79c973 driver works with virtual box and its forwarding, however when running in qemu and testinf thru ncat my am79c973 reports the "MISSING FRAME" error? Is this becuase I've set qemu up wrong?

(My args: -m 512 -serial stdio -accel whpx,kernel-irqchip=off -accel tcg -display sdl -net nic,model=pcnet -net user,hostfwd=tcp::1234-:1234 -drive file=\wsl.localhost\kali-linux\home\max\max-os\maxOS.img,
format=raw,if=ide,cache=directsync,id=disk0)

Src code https://github.com/maxtyson123/max-os/
Octocontrabass
Member
Member
Posts: 5218
Joined: Mon Mar 25, 2013 7:01 pm

Re: am79c973 missed frame?

Post by Octocontrabass »

The missed frame error means the NIC dropped a packet because your driver isn't updating the receive descriptors fast enough.

Try increasing the size of your receive descriptor ring. That will help if it's just a short burst of traffic.

If there are too many incoming packets, it may not be possible to receive all of them without dropping any.
maxtyson123
Posts: 19
Joined: Wed Apr 19, 2023 1:40 am
Freenode IRC: maxtyson123

Re: am79c973 missed frame?

Post by maxtyson123 »

So I should increase these lines:

Code: Select all

                BufferDescriptor* recvBufferDescr;               //Descriptor entry
                uint8_t recvBufferDescrMemory[2048+15];  //RAM for the recive buffer, also 16 byte aligned
                uint8_t recvBuffers[2*1024+15][8];       //8 Send Buffers, 2KB + 15 bytes
                uint8_t currentRecvBuffer;               //Which buffers are active
Post Reply