Yes, I know that the NE2000 sends and receives ethernet packets. However, loooking at wikipedia ( https://en.wikipedia.org/wiki/Ethernet_frame ) it talks about a specific format of an ethernet frame, which start with a preamable etc. However, looking at Linux code, I could only find one structure relating to Ethernet packets: this structure contains only the source MAC address, destination MAC address, and the EtherType.
This is where my confusion arises. Should an NE2000 driver pass payload within this header structure that Linux defines, or should it create a full Ethernet frame as given on that wikipedia article? (And, I assume, the format of received packets is exactly the same as the format of sent packets?)
What "packet" does NE2000 actually use?
Re: What "packet" does NE2000 actually use?
Just create the ethernet frame and its contents. The rest is handled by the NIC.
Re: What "packet" does NE2000 actually use?
Hi,
The network card driver would need to provide source and destination MAC addresses, optional tag, ethertype/length, payload and CRC. The driver can calculate the CRC itself, so normal software doesn't/wouldn't provide that; although some ethernet cards (not NE2000) have hardware to calculate the CRC for the driver.
Normal software would only need to provide source and destination MAC addresses, optional tag, ethertype/length and payload.
Cheers,
Brendan
This is what you'd see if you connected some sort of measuring device (e.g. an oscilloscope) to the wire/s in the network cable. The ethernet card's hardware is responsible for the preamble, start of frame delimiter and interpacket gap.mariuszp wrote:Yes, I know that the NE2000 sends and receives ethernet packets. However, loooking at wikipedia ( https://en.wikipedia.org/wiki/Ethernet_frame ) it talks about a specific format of an ethernet frame, which start with a preamable etc.
The network card driver would need to provide source and destination MAC addresses, optional tag, ethertype/length, payload and CRC. The driver can calculate the CRC itself, so normal software doesn't/wouldn't provide that; although some ethernet cards (not NE2000) have hardware to calculate the CRC for the driver.
Normal software would only need to provide source and destination MAC addresses, optional tag, ethertype/length and payload.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.