Table 12-2. Functions, variables, and data structures related to interrupts and frame handling
Name | Description |
---|
Functions | |
netif_rx | Queues an input frame into a CPU's queue. See the section "Old Versus New Driver Interfaces" in Chapter 10. |
netif_rx_schedule _ _netif_rx_schedule | Schedules the NET_RX_SOFTIRQ software interrupt for execution. See the section "Old Versus New Driver Interfaces" in Chapter 10. |
netif_rx_complete | Called by the net_device->poll virtual function when the latter has cleared the queue. |
netif_start_queue netif_stop_queue | Enables and disables transmission on a device, respectively. See the section "Enabling and Disabling Transmissions" in Chapter 11. |
netif_queue_stopped | Checks whether a device is enabled for transmission. |
netif_schedule netif_wake_queue | netif_schedule schedules a device for transmission. netif_wake_queue enables transmission on a device and schedules the device for transmission. See the section "Scheduling a Device for Transmission" in Chapter 11. |
qdisc_run | Dequeues a frame from the egress queue of a device and pushes it down to the device driver for transmission. See the section "Queuing Discipline Interface" in Chapter 11. |
process_backlog | poll virtual function used by non-NAPI device drivers. See the section "Backlog Processing: The process_backlog Poll Virtual Function" in Chapter 10. |
netif_receive_skb | Processes input frames by passing them to higher-layer protocol handlers. See the section "Ingress Frame Processing" in Chapter 10. |
dev_queue_xmit | Main function for frame transmission. See the section "dev_queue_xmit Function" in Chapter 11. |
dev_kfree_skb dev_kfree_skb_irq dev_kfree_skb_any | Releases an sk_buff structure. See the section "Processing the NET_TX_SOFTIRQ: net_tx_action" in Chapter 11. |
do_IRQ | Takes care of a hardware interrupt notification by invoking the associated handler. |
open_softirq raise_softirq, raise_softirq_irqoff | Registers and schedules for execution a software interrupt, respectively. See the section "Bottom-half handlers in kernel 2.4 and above: the introduction of the softirq" in Chapter 9. |
do_softirq invoke_softirq | Takes care of the pending software interrupts by invoking the associated handlers. See the section "Pending softirq Handling" in Chapter 9. |
net_rx_action net_tx_action | The handlers for the NET_RX_SOFTIRQ and NET_TX_SOFTIRQ software interrupts, respectively. See the section "How the Networking Code Uses softirqs" in Chapter 9. |
tasklet_init | Initializes a tasklet_struct structure. |
tasklet_action tasklet_hi_action | Handlers for the TASKLET_SOFTIRQ and HI_SOFTIRQ software interrupts, respectively. See the section "Tasklets" in Chapter 9. |
tasklet_enable, tasklet_hi_enable tasklet_disable, tasklet_disable_nosync | Enables and disables a tasklet, respectively. See the section "Tasklets" in Chapter 9. |
tasklet_schedule tasklet_hi_schedule | Schedules a tasklet for execution. See the section "Tasklets" in Chapter 9. |
Variables | |
mod_cong lo_cong no_cong no_cong_thresh | Congestion levels for the input queue (used with non-NAPI devices). See the section "Fields of softnet_data" in Chapter 9. |
netdev_max_backlog | Maximum size for the CPU's input queues. See Figure 9-4 in Chapter 9. |
Data structures | |
softnet_data | The two NET_XXX_SOFTIRQ software interrupts use one such structure for each CPU. See the section "softnet_data Structure" in Chapter 9. |
tasklet_struct | Represents a tasklet. See the section "Tasklets" in Chapter 9. |