本帖最后由 jiufei19 于 2016-12-26 11:57 编辑
回复 2# jiufei19
我又仔细看了遍代码,发现我之前对fib_alias结点的排序方法有点理解错误,之前我是按understanding Linux network internal一书中如下描述进行理解的:
Given a fib_node instance, the associated list of fib_alias instances is sorted in increasing order of IP TOS (i.e., the fa_tos field). fib_alias instances with the same value of fa_tos are sorted in increasing order of the associated fib_info's fib_priroity field.
现在发现该书好像写错了,应该是tos是按降序排列,而fib_priority是按升序排列。
如果这样的话,则next_fi似乎就可以和fi不是同一个了,因为在fn_hash_select_default函数中,是从fib_node的下属首个fib_alias开始进行遍历,只要改fib_alias结点不是之前fib_semantic_match函数所返回的那个fib_alias,则next_fi就和fi不一样了。
|