Few C programmers like the goto statement. Without getting into the history of the goto (one of the longest and most famous controversies in computer programming), I'll summarize some of the reasons the goto is usually deprecated, but why the Linux kernel uses it anyway.
Any piece of code that uses goto can be rewritten without it. The use of goto statements can reduce the readability of the code, and make debugging harder, because at any position following a goto you can no longer derive unequivocally the conditions that led the execution to that point.
Let me make this analogy: given any node in a tree, you know what the path from the root to the node is. But if you add vines that entwine around branches randomly, you do not always have a unique path between the root and the other nodes ... (查看原文)
NETDEV_TX_OK*
The transmission succeeded. The buffer is not released yet (kfree_skb is not
issued). We will see in the section “Processing the NET_TX_SOFTIRQ: net_tx_
action” that the driver does not release the buffer itself but asks the kernel to do
so by means of the NET_TX_SOFTIRQ softirq. This provides more efficient memory
handling than if each driver did its own freeing. (查看原文)
“The function consists of a wrapper that grabs the lock, does its work by invoking a function whose name begins with two underscores, and releases the lock.”翻译成:此函数内有一个包裹函数会取得回转锁,然后调用一个以两个下划线符号开头命名的函数,接着再释放...
(展开)
342页图15-15中listening状态若是否下一个判断是否learning,图中出现两个listening 350页图15-20中,bpdu报文格式有问题,mac源地址在前,目的mac在后,和业界惯例不符,英文原版就是如此,不知道为什么. 还有一处笔误,在273页,原文是“ And a similar choice must be made going ...
(展开)
0 有用 DragonBoy 2010-07-06 22:37:38
国内的同学们,绝大多数,只学协议的理论知识,甚至连协议栈都不曾听说过,如果想真正搞懂network,这本书应该好好读读
0 有用 无所谓 2018-10-21 15:15:42
协议栈开发和调试工作必备砖头书籍,泛泛地都接触了一遍。网络驱动算是整个linux驱动中最复杂的存在了。
0 有用 lorking 2014-03-08 10:56:49
还不错,相对国内的书较详细些,可惜我想要的部分较简略
0 有用 ohnk 2016-06-05 18:52:23
翻了一遍,感觉在读之前脑海中有网络系统的整体框架会轻松一些。 以后遇到问题再来细读相关内容。
1 有用 火焰牙 2010-01-15 23:30:17
中文翻译烂到令人发指