- 論壇徽章:
- 1
|
不知道你說(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了。
|
|