网络子系统4_以太网设备描述符

简介:
//分配以太网设备描述符
1.1 struct net_device *alloc_etherdev(int sizeof_priv)
{
	//设备名默认为eth%d,其中%d随系统中以太网络设备数递增
	return alloc_netdev(sizeof_priv, "eth%d", ether_setup);
}

//网络设备描述符标准分配函数
//	alloc_etherdev->alloc_netdev
1.2 struct net_device *alloc_netdev(int sizeof_priv, const char *name,
		void (*setup)(struct net_device *))
{
	void *p;
	struct net_device *dev;
	int alloc_size;

	//对齐到32bit
	alloc_size = (sizeof(*dev) + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST;
	alloc_size += sizeof_priv + NETDEV_ALIGN_CONST;

	//kmalloc物理内存上连续
	p = kmalloc(alloc_size, GFP_KERNEL);
	if (!p) {
		printk(KERN_ERR "alloc_dev: Unable to allocate device.\n");
		return NULL;
	}
	memset(p, 0, alloc_size);

	dev = (struct net_device *)
		(((long)p + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST);
	//在padded中保存为对齐dev到32bit浪费的字节数
	//dev-padded即可找到kmalloc分配的内存起始地址
	dev->padded = (char *)dev - (char *)p;

	if (sizeof_priv)
		dev->priv = netdev_priv(dev);
	//初始化设备的函数指针
	setup(dev);
	strcpy(dev->name, name);
	return dev;
}

//以太网设备通用的初始化函数
//	调用路径:alloc_netdev->ether_setup
1.3 void ether_setup(struct net_device *dev)
{
	dev->change_mtu		= eth_change_mtu;//保证ethdev的mtu > 68 && mtu < 1500
	dev->hard_header	= eth_header;//向skb填以太网报头
	dev->rebuild_header 	= eth_rebuild_header;//完成arp解析以后,重建以太网报头
	dev->set_mac_address 	= eth_mac_addr;//设置设备的mac地址
	dev->hard_header_cache	= eth_header_cache;//根据arp查询的结果,构造hh_cache,供邻居子系统使用
	dev->header_cache_update= eth_header_cache_update;//更新hh_cache中的以太网头
	dev->hard_header_parse	= eth_header_parse;//从skb中取出以太网头,填充到一个unsigned char*指针中

	dev->type		= ARPHRD_ETHER;//以太网类型
	dev->hard_header_len 	= ETH_HLEN;//以太网报头长度 14字节
	dev->mtu		= 1500; //最大支持的mtu
	dev->addr_len		= ETH_ALEN;//地址长度 6字节
	dev->tx_queue_len	= 1000;	//每个设备的传输队列长度	
	dev->flags		= IFF_BROADCAST|IFF_MULTICAST;//设备默认支持广播和多播

	memset(dev->broadcast,0xFF, ETH_ALEN);//以太网广播地址FF:FF:FF:FF:FF:FF

}



目录
相关文章
|
12天前
|
网络协议 安全 网络安全
|
17天前
|
存储 网络安全 数据安全/隐私保护
|
14天前
|
运维 监控 负载均衡
|
19天前
|
负载均衡 安全 网络安全
|
2月前
|
安全 物联网 定位技术
2G网络和基站的撤销对物联网设备的影响
2G网络和基站的撤销对物联网设备的影响是多方面的,以下是对这一影响的详细分析:
2G网络和基站的撤销对物联网设备的影响
|
2月前
|
传感器 物联网 人机交互
物联网:物联网,作为新一代信息技术的重要组成部分,通过智能感知、识别技术与普适计算等通信感知技术,将各种信息传感设备与互联网结合起来而形成的一个巨大网络,实现了物物相连、人物相连,开启了万物互联的新时代。
在21世纪,物联网(IoT)作为新一代信息技术的核心,正以前所未有的速度重塑生活、工作和社会结构。本文首先介绍了物联网的概念及其在各领域的广泛应用,强调其技术融合性、广泛的应用范围以及数据驱动的特点。接着,详细阐述了物联网行业的现状和发展趋势,包括政策支持、关键技术突破和应用场景深化。此外,还探讨了物联网面临的挑战与机遇,并展望了其未来在技术创新和模式创新方面的潜力。物联网行业正以其独特魅力引领科技发展潮流,有望成为推动全球经济发展的新引擎。
|
3月前
|
传感器 SQL 运维
常见网络安全设备:IPS(入侵防御系统)零基础入门到精通,收藏这一篇就够了
常见网络安全设备:IPS(入侵防御系统)零基础入门到精通,收藏这一篇就够了
114 3
|
2月前
|
缓存 运维 监控
|
3月前
|
监控 安全 iOS开发
|
3月前
|
监控 安全 网络协议
【网络工程师必备神器】锐捷设备命令大全:一文在手,天下我有!
【8月更文挑战第22天】锐捷网络专攻网络解决方案,其设备广泛应用在教育、政府及企业等领域。本文汇总了锐捷设备常用命令及其应用场景:包括登录与退出设备、查看系统状态、接口与VLAN配置、路由与QoS设定、安全配置及日志监控等。通过示例如telnet/ssh登录、display命令查看信息、配置IP地址与VLAN、设置静态路由与OSPF、限速与队列调度、端口安全与ACL、SNMP监控与重启设备等,助力工程师高效管理与维护网络。
155 4