Chapter 11. Frame Transmission
Transmission is the term used for frames that leave the system, either because they were sent by the system or because they are being forwarded. In this chapter, we will cover the main tasks involved during the frame transmission data path:
Enabling and disabling frame transmission for a device
Scheduling a device for transmission
Selecting the next frame to transmit among the ones waiting in the device’s egress queue
The transmission itself (we will examine the main function)
Much about transmission is symmetric to the reception process we discussed in Chapter 10: NET_TX_SOFTIRQ
is the transmission counterpart of the NET_RX_SOFTIRQ
softirq, net_tx_action
is the
counterpart of net_rx_action
, and so on. Thus, if you
have studied the earlier chapter, you should find it easy to follow this one. Figure 11-1 compares the logic behind
scheduling a device for reception and scheduling a device for transmission. Here are some
more similarities:
poll_list
is the list of devices that are polled because they have a nonempty receive queue.output_queue
is the list of devices that have something to transmit.poll_list
andoutput_queue
are two fields of thesoftnet_data
structure introduced in Chapter 9.Only open devices (ones with the
_ _LINK_STATE_START
flag set) can be scheduled for reception. Only devices with transmission enabled (ones with the_ _LINK_STATE_XOFF
flag cleared) can be scheduled for transmission.When a device is scheduled for reception, its
_ _LINK_STATE_RX_SCHED ...
Get Understanding Linux Network Internals now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.