Chapter 2. Network device support
Prev
Next
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_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_wake_subqueue
— allow sending packets on subqueue
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_rx_handler_register
— register receive handler
netdev_rx_handler_unregister
— unregister receive handler
netif_receive_skb_sk
— process receive buffer from network
__napi_schedule
— schedule for receive
__napi_schedule_irqoff
— schedule for receive
netdev_has_upper_dev
— 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_all_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
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
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 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_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
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_prep
— check if napi can be scheduled
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_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_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 carrier present
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