【Linux4.1.12源码分析】IP层报文发送之ip_local_out

本文深入探讨Linux 4.1.12内核中IP层的报文发送,主要关注ip_local_out函数。内容指出该函数与ip_local_out_sk功能相同,都是处理本地产生的、带有sock对象的IP报文发送。
摘要由CSDN通过智能技术生成

IP层本地报文发送有两个函数ip_local_out和ip_local_out_sk,实际实现两者是等同的,因为本地发送的报文,skb必然关联着一个sock对象。

1、ip_local_out函数

static inline int ip_local_out(struct sk_buff *skb)
{
	return ip_local_out_sk(skb->sk, skb);	//本地报文发送,本地发送的报文都关联着一个sock对象
}
2、ip_local_out_sk函数

int ip_local_out_sk(struct sock *sk, struct sk_buff *skb)	//本地报文发送,本地发送的报文都关联着一个sock对象
{
	int err;

	err = __ip_local_out(skb);		//报文安全检测(netfilter)
	if (likely(err == 1))			//返回值为1,说明netfilter允许报文通过
		err = dst_output_sk(sk, skb);	//最终会调用ip_output函数

	return err;
}
3、__ip_local_out函数

int __ip_local_out(struct sk_buff *skb)
{
	return __ip_local_out_sk(skb->sk, skb);
}
4、__ip_local_out_sk函数

int __ip_local_out_sk(struct sock *sk, s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值