NETIF_F_LLTX 的属性

本文详细介绍了NETIF_F_LLTX特性的含义及其在不同网络设备中的应用情况。该特性允许在网络传输过程中无需获取锁,适用于软件隧道等场景。对于实际硬件设备,通常不启用此特性以确保数据传输的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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 in
transmit 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 return
NETDEV_TX_LOCKED when the spin lock fails.  The locking should also properly
protect against other callbacks (the rules you need to find out).

Don't use it for new drivers.

 

转载于:https://www.cnblogs.com/10087622blog/p/9571055.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值