亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 求結(jié)構(gòu)體struct sock *sk 中的 sk_dst_cache變量初始化位置? [打印本頁(yè)]

作者: SCDXMOE    時(shí)間: 2014-07-29 14:00
標(biāo)題: 求結(jié)構(gòu)體struct sock *sk 中的 sk_dst_cache變量初始化位置?
我想請(qǐng)問(wèn)一下

結(jié)構(gòu)體struct sock *sk 中的 sk_dst_cache變量在什么地方初始化的?
我跟蹤了connect的過(guò)程:


connect()->sys_connect()->sock->ops->connect(() -> tcp_v4_connect() -> ip_route_connect() -> tcp_connect() -> tcp_connect_init
在函數(shù)tcp_connect_init中 有了對(duì)sk->sk_dst_cache 的調(diào)用,但是一直找不到他開始定義的地方,
謝謝
作者: Agimsn    時(shí)間: 2014-08-05 10:46
本帖最后由 Agimsn 于 2014-08-12 21:35 編輯

看錯(cuò)題目了,沒(méi)用處
作者: mrpre    時(shí)間: 2014-08-07 21:30
tcp_v4_connect是發(fā)syn包,發(fā)包前理應(yīng)查路由。我覺得是查路由ip_route_connect 帶上的。
作者: mrpre    時(shí)間: 2014-08-07 21:33
暫時(shí)沒(méi)找到。理論上成員sk_dst_cache指向路由查詢結(jié)果rtable的成員u.dst,從而套接字完全緩存路由查詢的結(jié)果。
明天繼續(xù),先睡覺
作者: Tinnal    時(shí)間: 2014-08-07 22:00
回復(fù) 4# mrpre

這么早睡覺。唉。我剛從公司回來(lái)。
   
作者: humjb_1983    時(shí)間: 2014-08-07 22:29
Tinnal 發(fā)表于 2014-08-07 22:00
回復(fù) 4# mrpre

這么早睡覺。唉。我剛從公司回來(lái)。

工作也太辛苦了~~,保重身體。
作者: mrpre    時(shí)間: 2014-08-08 09:15
不知道你說(shuō)的是初始化是指 賦值 還是 清0。
賦值:tcp_v4_connect中執(zhí)行ip_route_connect,帶出rt

        tmp = ip_route_connect(&rt, nexthop, inet->saddr,
                               RT_CONN_FLAGS(sk), sk->sk_bound_dev_if,
                               IPPROTO_TCP,
                               inet->sport, usin->sin_port, sk, 1);

依舊在tcp_v4_connect中,執(zhí)行sk_setup_caps(sk, &rt->u.dst);
sk_setup_caps調(diào)用__sk_dst_set(sk, dst);

__sk_dst_set(struct sock *sk, struct dst_entry *dst)
{
        struct dst_entry *old_dst;

        old_dst = sk->sk_dst_cache;
        sk->sk_dst_cache = dst;
        dst_release(old_dst);
}

賦值完成了。


清0:
inet_create->sk_alloc->sk_prot_alloc中 memset(sk, 0, prot->obj_size);
整個(gè)tcp_sk結(jié)構(gòu)體都清0了。


作者: SCDXMOE    時(shí)間: 2014-08-11 09:50
回復(fù) 7# mrpre


謝謝






歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2