Computer Science 881 Quiz 3 Name_______________________ 1. For each of the following actions indicates whether it occurs in the context of an application process (A), context of a hardware IRQ (H) or the context of a software IRQ (S). (If multiple answers can apply, supply them all). ___ a. Enqueuing of a UDP sk_buff on the output device queue ___ b. Dequeing the UDP sk_buff from the output device queue and passing it to the device driver ___ c. Enqueuing an sk_buff that has completed transmission on the queue on the softnet data structure. ___ d. Dequeuing an sk_buff that has completed transmission on the queue from the softnet data structure and freeing it. 2. Under what condition(s) might a packet that is dequeued by pfifo_fast_dequeue() NOT be the last packet that was enqueued by pfifo_fast_enqueue(). (Assume a UNI processor system here.. but also assume the CORRECT no-preemption in kernel mode model used in Linux) 3. For each of the following, identify whether it is done in (A) the context of the application making a system call (H) the context of the hardware IRQ associated with the packets arrival (S) the context of the softirq associated with packet arrival ___ a. Determining the identity of the network layer protocol to which a received packet is to be passed (ETH_P_IP.. etc). ___ b. Determining the identity of the transport layer protocol to which a received packet is to be passed (UDP, TCP, . etc). ___ c. Enqueuing an sk_buff that has been received on the queue on the softnet data structure. 4. The net_rx_action() function processes a. exactly one packet each time b. one or more packets each time the softirq is raised the softirq is raised c. exactly 300 packets each time the soft irq is raised. 5. Under what conditions (if any) do the softirqs, net_tx_action() and net_rx_action() reschedule themselves. a. net_tx_action - b. net_rx_action - 6. In IP reassembly a single instance struct ipq represents a. a single fragment b. a single packet being reassembled c. all packets presently being resassembled. 7. Distinguish between the use of the "meat" and "len" variables in reassembly meat - len - 8. While frags are <> they are linked via the a. skb->next pointer b. the shinfo(skb)->fraglist c. the first one in the chain d. the first one in the chain uses fraglist and the uses fraglist and the others others use next. use next. 9. After a successful reassembly << completes >> the frags are linked as follows: a. skb->next pointer b. the shinfo(skb)->fraglist c. the first one in the chain d. the first one in the chain uses fraglist and the uses fraglist and the others others use next. use next. 10. When a fragement is received and its head-end overlaps the tail-end of a single fragment that has already been received a. the overlapped tail of the b. the overlapping head of the existing fragment is new fragment is discarded discarded c. the ENTIRE existing overlapped d. the entire new fragment is fragment is discarded. discarded 11. When a packet is to be delivered to multiple raw sockets and to multiple transport protocols (e.g. multiple tcpdumps are running) a. delivery to all raw sockets b. delivery to all transports occurs first occurs first c. delivery to the first raw d. delivery to all but the last socket precedes the transports raw socket precedes the transports and the remaining raw sockets and the last raw socket follows follow the transports the transports