I 'm planning to write a network device driver for RTLinux. But, I would like to start with linux since I'm very new to Linux.
I havent really understood how the driver interacts with the tcp-ip module or other protocols. What all parameters should be set by the drivers? Is the packet size set by the driver or by the NIC. Does a NIC driver implement the datalink layer ?
Also, how does the device driver interface with the hardware through PCI slot. Is there any disadvantage in using the pci-dma for an NIC in Linux and RTLinux. Also, where do we use ioctl() for writing a driver for a pci NIC.