Computer Science 881 Quiz 2 Name _________________ 1. Which of the following best characterizes a "shared" sk_buff. a. Multiple struct sk_buff's b. A single struct sk_buff point to a single kmalloc'd points to multiple kmalloc'd buffer area buffer areas c. Multiple entities hold valid pointers to a single struct sk_buff 2. Which of the following best characterizes a "cloned" sk_buff. a. Multiple struct sk_buff's b. A single struct sk_buff point to a single kmalloc'd points to multiple kmalloc'd buffer area buffer areas c. Multiple entities hold valid pointers to a single struct sk_buff 3. Describe consisely and precisely how "sharing" and "cloning" of an sk_buff affect the "users" and the "dataref" elements. (No effect is a legal but not necessarily correct answer). a new entity shares an sk_buff users - dataref - an sk_buff is cloned users - dataref - 4. When a process has an excessive amount of send buffer space allocated it may have to go to sleep in: static long sock_wait_for_wmem(struct sock * sk, long timeo) Describe precisely and consisely the chain of events that will cause it to wake up. 5. Answer I, D, or N depending upon whether the specified function Increases, Decreases, or has no effect on sk_buff . ___ a. skb_reserve() ___ b. skb_put() ___ c. skb_pull() 6. Diagram the chain of pointers from the "current" task_struct pointer to the inode. 7. During a UDP connect operation a. If the socket is not already b. Any existing bind status is bound inet_autobind() is reset to null called to bind it. c. The bind status is not altered. 8. During a UDP bind operation a. If the socket is not already b. Any existing connection is connected inet_autoconn() is reset to null. called to connect it. c. The connection status is not altered. 9. a. For a UDP struct sock what is the difference in the use of saddr and rcv_saddr elements? 1 - saddr 2 - rcv_saddr b. Which (if either) could (correctly) be set to 0 during normal operation. 10. If you fail to provide a disconnect function in your protocol, how can a hacker cause your system to crash? 11. Suppose that the value of the udp_port_rover in udp_v4_get_port() is 0x9ACD and that this queue is selected but it is not empty. If port 0x9ACD is found already in use what will be the next port number tested.