linux net dev.c,Linux内核中的struct net_device的dev_addr和perm_addr之间有什么区别

我正在阅读Linux(3.10版本)以太网驱动程序的源代码。在内核Netwoking中有一个重要的结构net_device。Linux内核中的struct net_device的dev_addr和perm_addr之间有什么区别

内部 “结构net_device中”,有两个变量命名dev_addr和perm_addr显示NIC的MAC地址。但是,某些供应商驱动程序同时设置了dev_addr和perm_addr,而某些设置只有dev_addr。

虽然在头文件,它是评价为:

unsigned char perm_addr[MAX_ADDR_LEN]; /* permanent hw address */

/* Interface address info used in eth_type_trans() */

unsigned char *dev_addr; /* hw address, (before bcast

because most packets are

unicast) */

尽管如此,我不能让他们之间的区别。

感谢skrrgwasme,也是我在内核文件网/核心/ dev.c reigster_netdev()函数发现:

/* If the device has permanent device address, driver should

* set dev_addr and also addr_assign_type should be set to

* NET_ADDR_PERM (default value).

*/

if (dev->addr_assign_type == NET_ADDR_PERM)

memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);

所以这个变量是在网卡驱动程序很少使用。

2015-05-20

Jim Cao

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值