-
用户层do_iptunnel
-
IPPROTO_IPV6:sit,isatap=1
- tnl_add_ioctl(SIOCADDTUNNEL, "sit0", p.name, &p);
-
参数
- remote
- local
- dev
- ttl/hoplimit
- name
-
ip6_tunnel_init
-
xfrm6_tunnel_register
-
ip4ip6_handler
- ip4ip6_rcv
-
ip6ip6_handler
- ip6ip6_rcv
-
ip6_tnl_init_net
- 注册设备:ip6tnl0
-
ip6_tnl_dev_setup
- ip6_tnl_xmit
- ip6_tnl_ioctl
-
sit_init
-
xfrm4_tunnel_register
-
sit_handler
- ipip6_rcv
-
sit_init_net
-
ipip6_tunnel_setup
- ipip6_tunnel_xmit
-
ipip6_tunnel_ioctl
- SIOCADDTUNNEL
- ipip6_tunnel_locate
- alloc_netdev
- SIOCDELTUNNEL
- 注册sit0
-
sys_ioctl
-
filp->f_op->unlocked_ioctl
-
sock_ioctl
-
cmd > SIOCDEVPRIVATE
- dev_ioctl
- dev->do_ioctl
- ipip6_tunnel_locate
- sock->ops->ioctl
-
sys_socket
-
sock_map_fd
-
sock_attach_fd
- 绑定socket_file_ops
-
sock_create
- pf->create
-
inet6_init
-
sock_register
-
inet_create
- inetsw[sock->type]
- sock->ops = answer->ops
-
sk_alloc
- sk->sk_prot = prot
- inet6_create
-
proto_register
- 注册struct proto到proto_list
-
udpv6_init
- inet6_add_protocol
-
inet6_register_protosw
- inetsw6
- tcpv6_init
-
inet6_ioctl
-
sk->sk_prot->ioctl
- udp_ioctl