Driver methods are the probe() and remove() functions. They are responsible for (un)registering 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.