Driver methods
Driver methods are the probe()
and remove()
functions. They are responsible for registering and unregistering the network device with the kernel. The driver has to provide its functionalities to the kernel through the device methods by means of the struct
net_device
structure. These are the operations that can be performed on the network interface:
static const struct net_device_ops my_netdev_ops = { .ndo_open = my_netdev_open, .ndo_stop = my_netdev_close, .ndo_start_xmit = my_netdev_start_xmit, .ndo_set_rx_mode = my_netdev_set_multicast_list, .ndo_set_mac_address = my_netdev_set_mac_address, .ndo_tx_timeout = my_netdev_tx_timeout, .ndo_change_mtu = eth_change_mtu, .ndo_validate_addr = eth_validate_addr, };
The preceding operations are the operations that most drivers implement.
The probe function
The probe
function is quite basic, and only needs to perform a device's early init
, and then register our network device...