网络子系统38_ip子系统初始化

简介:
//ip子系统初始化
//调用路径inet_init->ip_init
//包括路由子系统的初始化,inet_peer缓存的初始化
1.1 void __init ip_init(void)
{
	dev_add_pack(&ip_packet_type);//添加l3协议处理函数
	ip_rt_init(); //路由子系统初始化
	inet_initpeers();//inet_peer缓存
}

//调用路径ip_init->inet_initpeers
//inet_peer缓存初始化
//	1.每一个与linux通过inet协议交换过数据的主机,都会被认为是一个ip peer,linux为每个peer分配一个inet_peer结构。
//	2.inet_peer的主要目的,使不同ip使用不同的ip id生成器。
//	3.系统中所有的inet_peer实例组织成一课avl树,方便查找。
1.2 void __init inet_initpeers(void)
{
	struct sysinfo si;

	//获取系统内存信息
	si_meminfo(&si);
	//系统中inet_peer数量的阀值
	if (si.totalram <= (32768*1024)/PAGE_SIZE)
		inet_peer_threshold >>= 1; /* max pool size about 1MB on IA32 */
	if (si.totalram <= (16384*1024)/PAGE_SIZE)
		inet_peer_threshold >>= 1; /* about 512KB */
	if (si.totalram <= (8192*1024)/PAGE_SIZE)
		inet_peer_threshold >>= 2; /* about 128KB */
	//inet_peer SLAB cache
	peer_cachep = kmem_cache_create("inet_peer_cache",
			sizeof(struct inet_peer),
			0, SLAB_HWCACHE_ALIGN|SLAB_PANIC,
			NULL);
	//垃圾回收
	peer_periodic_timer.expires = jiffies
		+ net_random() % inet_peer_gc_maxtime
		+ inet_peer_gc_maxtime;
	add_timer(&peer_periodic_timer);
}

目录
相关文章
|
29天前
|
移动开发 网络协议 安全
网络面试题:什么是 TCP/IP?
网络面试题:什么是 TCP/IP?
43 0
网络面试题:什么是 TCP/IP?
|
2月前
|
运维 网络协议 网络架构
网络技术基础(6)——IP路由基础
【2月更文挑战第10天】网络基础笔记(加班了几天,中途耽搁了,预计推迟6天)
|
2月前
|
算法 网络协议 网络架构
计算机网络-网络层:IP协议
【2月更文挑战第1天】
46 0
【网络工程师】<软考中级>IP子网划分
【1月更文挑战第27天】【网络工程师】<软考中级>IP子网划分
|
3月前
|
网络协议 网络架构
【计算机网络】TCP|IP协议
【计算机网络】TCP|IP协议
46 0
|
4月前
|
网络协议
地址重叠时,用户如何通过NAT访问对端IP网络?
地址重叠时,用户如何通过NAT访问对端IP网络?
87 0
|
1月前
|
网络协议 Shell 网络架构
2. 搭建互联互通的 IP 网络
2. 搭建互联互通的 IP 网络
153 0
|
1月前
|
数据采集 SQL DataWorks
DataWorks常见问题之一样IP的分库只有部分网络连通如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
32 6
|
1月前
|
网络协议 算法 网络架构
计算机网络:网络层(IP组播)
计算机网络:网络层(IP组播)
|
1月前
|
网络协议 网络性能优化 网络安全
【计算机网络】IP协议
【计算机网络】IP协议