Chapter 2. Network device support

Table of Contents

Driver Support
PHY Support

Driver Support

dev_add_pack — add packet handler
__dev_remove_pack — remove packet handler
dev_remove_pack — remove packet handler
dev_add_offload — register offload handlers
dev_remove_offload — remove packet offload handler
netdev_boot_setup_check — check boot time settings
dev_get_iflink — get 'iflink' value of a interface
dev_fill_metadata_dst — Retrieve tunnel egress information.
__dev_get_by_name — find a device by its name
dev_get_by_name_rcu — find a device by its name
dev_get_by_name — find a device by its name
__dev_get_by_index — find a device by its ifindex
dev_get_by_index_rcu — find a device by its ifindex
dev_get_by_index — find a device by its ifindex
dev_getbyhwaddr_rcu — find a device by its hardware address
__dev_get_by_flags — find any device with given flags
dev_valid_name — check if name is okay for network device
dev_alloc_name — allocate a name for a device
netdev_features_change — device changes features
netdev_state_change — device changes state
netdev_notify_peers — notify network peers about existence of dev
dev_open — prepare an interface for use.
dev_close — shutdown an interface.
dev_disable_lro — disable Large Receive Offload on a device
register_netdevice_notifier — register a network notifier block
unregister_netdevice_notifier — unregister a network notifier block
call_netdevice_notifiers — call all network notifier blocks
dev_forward_skb — loopback an skb to another netif
netif_set_real_num_rx_queues — set actual number of RX queues used
netif_get_num_default_rss_queues — default number of RSS queues
netif_device_detach — mark device as removed
netif_device_attach — mark device as attached
skb_mac_gso_segment — mac layer segmentation handler.
__skb_gso_segment — Perform segmentation on skb.
dev_loopback_xmit — loop back skb
rps_may_expire_flow — check whether an RFS hardware filter may be removed
netif_rx — post buffer to the network code
netdev_is_rx_handler_busy — check if receive handler is registered
netdev_rx_handler_register — register receive handler
netdev_rx_handler_unregister — unregister receive handler
netif_receive_skb — process receive buffer from network
__napi_schedule — schedule for receive
napi_schedule_prep — check if napi can be scheduled
__napi_schedule_irqoff — schedule for receive
netdev_has_upper_dev — Check if device is linked to an upper device
netdev_has_upper_dev_all_rcu — Check if device is linked to an upper device
netdev_master_upper_dev_get — Get master upper device
netdev_upper_get_next_dev_rcu — Get the next dev from upper list
netdev_lower_get_next_private — Get the next ->private from the lower neighbour list
netdev_lower_get_next_private_rcu — Get the next ->private from the lower neighbour list, RCU variant
netdev_lower_get_next — Get the next device from the lower neighbour list
netdev_lower_get_first_private_rcu — Get the first ->private from the lower neighbour list, RCU variant
netdev_master_upper_dev_get_rcu — Get master upper device
netdev_upper_dev_link — Add a link to the upper device
netdev_master_upper_dev_link — Add a master link to the upper device
netdev_upper_dev_unlink — Removes a link to upper device
netdev_bonding_info_change — Dispatch event about slave change
netdev_lower_state_changed — Dispatch event about lower device state change
dev_set_promiscuity — update promiscuity count on a device
dev_set_allmulti — update allmulti count on a device
dev_get_flags — get flags reported to userspace
dev_change_flags — change device settings
dev_set_mtu — Change maximum transfer unit
dev_set_group — Change group this device belongs to
dev_set_mac_address — Change Media Access Control Address
dev_change_carrier — Change device carrier
dev_get_phys_port_id — Get device physical port ID
dev_get_phys_port_name — Get device physical port name
dev_change_proto_down — update protocol port state information
netdev_update_features — recalculate device features
netdev_change_features — recalculate device features
netif_stacked_transfer_operstate — transfer operstate
register_netdevice — register a network device
init_dummy_netdev — init a dummy network device for NAPI
register_netdev — register a network device
dev_get_stats — get network device statistics
alloc_netdev_mqs — allocate network device
free_netdev — free network device
synchronize_net — Synchronize with packet receive processing
unregister_netdevice_queue — remove device from the kernel
unregister_netdevice_many — unregister many devices
unregister_netdev — remove device from the kernel
dev_change_net_namespace — move device to different nethost namespace
netdev_increment_features — increment feature set by one
eth_header — create the Ethernet header
eth_get_headlen — determine the length of header for an ethernet frame
eth_type_trans — determine the packet's protocol ID.
eth_header_parse — extract hardware address from packet
eth_header_cache — fill cache entry from neighbour
eth_header_cache_update — update cache entry
eth_prepare_mac_addr_change — prepare for mac change
eth_commit_mac_addr_change — commit mac change
eth_mac_addr — set new Ethernet hardware address
eth_change_mtu — set new MTU size
ether_setup — setup Ethernet network device
alloc_etherdev_mqs — Allocates and sets up an Ethernet device
netif_carrier_on — set carrier
netif_carrier_off — clear carrier
is_link_local_ether_addr — Determine if given Ethernet address is link-local
is_zero_ether_addr — Determine if give Ethernet address is all zeros.
is_multicast_ether_addr — Determine if the Ethernet address is a multicast.
is_local_ether_addr — Determine if the Ethernet address is locally-assigned one (IEEE 802).
is_broadcast_ether_addr — Determine if the Ethernet address is broadcast
is_unicast_ether_addr — Determine if the Ethernet address is unicast
is_valid_ether_addr — Determine if the given Ethernet address is valid
eth_proto_is_802_3 — Determine if a given Ethertype/length is a protocol
eth_random_addr — Generate software assigned random Ethernet address
eth_broadcast_addr — Assign broadcast address
eth_zero_addr — Assign zero address
eth_hw_addr_random — Generate software assigned random Ethernet and set device flag
ether_addr_copy — Copy an Ethernet address
eth_hw_addr_inherit — Copy dev_addr from another net_device
ether_addr_equal — Compare two Ethernet addresses
ether_addr_equal_64bits — Compare two Ethernet addresses
ether_addr_equal_unaligned — Compare two not u16 aligned Ethernet addresses
ether_addr_equal_masked — Compare two Ethernet addresses with a mask
ether_addr_to_u64 — Convert an Ethernet address into a u64 value.
u64_to_ether_addr — Convert a u64 to an Ethernet address.
eth_addr_dec — Decrement the given MAC address
is_etherdev_addr — Tell if given Ethernet address belongs to the device.
compare_ether_header — Compare two Ethernet headers
eth_skb_pad — Pad buffer to mininum number of octets for Ethernet frame
napi_schedule — schedule NAPI poll
napi_schedule_irqoff — schedule NAPI poll
napi_complete — NAPI processing complete
napi_enable — enable NAPI scheduling
napi_synchronize — wait until NAPI is not running
enum netdev_priv_flags struct net_device priv_flags
struct net_device — The DEVICE structure. Actually, this whole structure is a big mistake. It mixes I/O data with strictly high-level data, and it has to know about almost every data structure used in the INET module.
netdev_priv — access network device private data
netif_tx_napi_add — initialize a NAPI context
netif_start_queue — allow transmit
netif_wake_queue — restart transmit
netif_stop_queue — stop transmitted packets
netif_queue_stopped — test if transmit queue is flowblocked
netdev_txq_bql_enqueue_prefetchw — prefetch bql data for write
netdev_txq_bql_complete_prefetchw — prefetch bql data for write
netdev_sent_queue — report the number of bytes queued to hardware
netdev_completed_queue — report bytes and packets completed by device
netdev_reset_queue — reset the packets and bytes count of a network device
netdev_cap_txqueue — check if selected tx queue exceeds device queues
netif_running — test if up
netif_start_subqueue — allow sending packets on subqueue
netif_stop_subqueue — stop sending packets on subqueue
__netif_subqueue_stopped — test status of subqueue
netif_wake_subqueue — allow sending packets on subqueue
netif_is_multiqueue — test if device has multiple transmit queues
dev_put — release reference to device
dev_hold — get reference to device
netif_carrier_ok — test if carrier present
netif_dormant_on — mark device as dormant.
netif_dormant_off — set device as not dormant.
netif_dormant — test if device is dormant
netif_oper_up — test if device is operational
netif_device_present — is device available or removed
netif_tx_lock — grab network device transmit lock
__dev_uc_sync — Synchonize device's unicast list
__dev_uc_unsync — Remove synchronized addresses from device
__dev_mc_sync — Synchonize device's multicast list
__dev_mc_unsync — Remove synchronized addresses from device