基于openswan klips的IPsec实现分析(五)应用层和内核通信——内核操作
转载请注明出处:http://blog.youkuaiyun.com/rosetta
在数据发送一节讲过,加载模块时会执行pfkey_init()初始化与用户层通信的PF_KEY套接字,在这个函数里会把支持的协议和算法加到pfkey_supported_list[]全局数组中,并在sock_register ()函数里注册PF_KEY套接字操作函数sock->ops = &pfkey_ops ,pfkey_ops内容如下。
struct proto_ops SOCKOPS_WRAPPED(pfkey_ops)= {
family: PF_KEY,
owner: THIS_MODULE,
release: pfkey_release,
bind: sock_no_bind,
connect: sock_no_connect,
socketpair: sock_no_socketpair,
accept: sock_no_accept,
getname: &nb

本文详细介绍了基于openswan klips的IPsec实现中,应用层和内核通信的过程。通过pfkey_init()初始化PF_KEY套接字,并在内核中注册操作函数。pfkey_recvmsg()和pfkey_sendmsg()分别用于接收和发送应用层消息,根据不同类型的sadb_msg_satype和sadb_msg_type调用相应的处理函数。这些消息类型包括获取SPI、更新SA、增加SA等操作。
最低0.47元/天 解锁文章
4241

被折叠的 条评论
为什么被折叠?



