分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

NETIF_F_LLTX 的属性

发布时间:2023-09-06 02:13责任编辑:白小东关键词:暂无标签

在bond初始化的时候,我们可以看到如下属性:

/* don‘t acquire bond device‘s netif_tx_lock when transmitting */
    bond_dev->features |= NETIF_F_LLTX;
 
在lo口设置的时候,也可以看到这个属性:
static void loopback_setup(struct net_device *dev){ ???dev->mtu ???????= 64 * 1024; ???dev->hard_header_len ???= ETH_HLEN; ???/* 14 ???*/ ???dev->addr_len ???????= ETH_ALEN; ???/* 6 ???*/ ???dev->type ???????= ARPHRD_LOOPBACK; ???/* 0x0001*/ ???dev->flags ???????= IFF_LOOPBACK; ???dev->priv_flags ???????|= IFF_LIVE_ADDR_CHANGE | IFF_NO_QUEUE; ???netif_keep_dst(dev); ???dev->hw_features ???= NETIF_F_GSO_SOFTWARE; ???dev->features ????????= NETIF_F_SG | NETIF_F_FRAGLIST ???????| NETIF_F_GSO_SOFTWARE ???????| NETIF_F_HW_CSUM ???????| NETIF_F_RXCSUM ???????| NETIF_F_SCTP_CRC ???????| NETIF_F_HIGHDMA ???????| NETIF_F_LLTX ???????| NETIF_F_NETNS_LOCAL ???????| NETIF_F_VLAN_CHALLENGED ???????| NETIF_F_LOOPBACK; ???dev->ethtool_ops ???= &loopback_ethtool_ops; ???dev->header_ops ???????= &eth_header_ops; ???dev->netdev_ops ???????= &loopback_ops; ???dev->destructor ???????= loopback_dev_free;}

NETIF_F_LLTX 属性代表的是,我们在发包的时候,不需要获取锁。

而对于非虚拟设备,如实际网卡,则这个属性一般是不设置的,也就是需要获取TX的锁。

不过,也有注释说后面的驱动最好不要用这个特性:

* LLTX driver (deprecated for hardware drivers)NETIF_F_LLTX should be set in drivers that implement their own locking intransmit path or don‘t need locking at all (e.g. software tunnels).In ndo_start_xmit, it is recommended to use a try_lock and returnNETDEV_TX_LOCKED when the spin lock fails. ?The locking should also properlyprotect against other callbacks (the rules you need to find out).Don‘t use it for new drivers.

NETIF_F_LLTX 的属性

原文地址:https://www.cnblogs.com/10087622blog/p/9571055.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved