- 论坛徽章:
- 1
|
不知道你说的是初始化是指 赋值 还是 清0。
赋值:tcp_v4_connect中执行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中,执行sk_setup_caps(sk, &rt->u.dst);
sk_setup_caps调用__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);
整个tcp_sk结构体都清0了。
|
|