C 为什么最后一次接收总是0?
我需要获取C 为什么最后一次接收总是0?,c,linux-kernel,C,Linux Kernel,我需要获取net\u设备结构中的last\u rx和trans\u start字段的值。。。但是由于某种原因,dev->last\u rx始终为0(trans\u start有一个有效值)…这是为什么?是否有其他字段提供此值 这里有一个片段 struct net_device *dev; dev = first_net_device(&init_net); while (dev) { printk(KERN_ALERT "last received time is %
net\u设备
结构中的last\u rx
和trans\u start
字段的值。。。但是由于某种原因,dev->last\u rx
始终为0(trans\u start
有一个有效值)…这是为什么?是否有其他字段提供此值
这里有一个片段
struct net_device *dev;
dev = first_net_device(&init_net);
while (dev)
{
printk(KERN_ALERT "last received time is %li\n", dev->last_rx );
printk(KERN_ALERT "last transmit time is %li\n", dev->trans_start );
dev = next_net_device(dev);
}
我正在使用linux内核2.6.35编写一个内核模块,last\u rx
当前未使用,因此驱动程序可能没有更新该值。Per,last\u rx
当前未使用,因此驱动程序可能没有更新该值。我只是简单地添加了一句
dev->last\u rx=jiffies代码>
成功了!:D
struct net_device *dev;
dev = first_net_device(&init_net);
while (dev)
{
dev->last_rx = jiffies;
printk(KERN_ALERT "last received time is %li\n", dev->last_rx );
printk(KERN_ALERT "last transmit time is %li\n", dev->trans_start );
dev = next_net_device(dev);
}
我只是加了一句
dev->last\u rx=jiffies代码>
成功了!:D
struct net_device *dev;
dev = first_net_device(&init_net);
while (dev)
{
dev->last_rx = jiffies;
printk(KERN_ALERT "last received time is %li\n", dev->last_rx );
printk(KERN_ALERT "last transmit time is %li\n", dev->trans_start );
dev = next_net_device(dev);
}
对您的问题的简短回答是更新驱动程序。驱动程序负责更新值。在前面提到的文档中,它声明该值未使用,内核也未使用该值,但是还有其他东西将使用它。如果您想在绑定驱动程序中使用arp轮询,它是必需的
从
无符号长传输开始
未签名的长上次接收
包含jiffies值的字段。驱动程序分别负责在传输开始和接收数据包时更新这些值。网络子系统使用trans_启动值检测变送器锁定。last_rx当前未使用,但驾驶员应保留此字段,以备将来使用
请参见此处的键合驱动程序中最后一次接收的参考:
对您的问题的简短回答是更新驱动程序。驱动程序负责更新值。在前面提到的文档中,它声明该值未使用,内核也未使用该值,但是还有其他东西将使用它。如果您想在绑定驱动程序中使用arp轮询,它是必需的
从
无符号长传输开始
未签名的长上次接收
包含jiffies值的字段。驱动程序分别负责在传输开始和接收数据包时更新这些值。网络子系统使用trans_启动值检测变送器锁定。last_rx当前未使用,但驾驶员应保留此字段,以备将来使用
请参见此处的键合驱动程序中最后一次接收的参考:
还有其他方法可以得到那个值吗?还有其他方法可以得到那个值吗?