zoukankan      html  css  js  c++  java
  • NETIF_F_LLTX 的属性

    在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.
    水平有限,如果有错误,请帮忙提醒我。如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我。版权所有,需要转发请带上本文源地址,博客一直在更新,欢迎 关注 。
  • 相关阅读:
    顺序表的C语言实现
    Nginx模块开发(5)————开发简单的HTTP过滤模块
    python集合(set)
    python——封装、解构
    python——杨辉三角
    python——bytes、bytearray
    python算法——求10万以内的质数
    python算法——打印菱形、对等三角、闪电
    python字符串操作
    python—冒泡排序
  • 原文地址:https://www.cnblogs.com/10087622blog/p/9571055.html
Copyright © 2011-2022 走看看