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.
    水平有限,如果有错误,请帮忙提醒我。如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我。版权所有,需要转发请带上本文源地址,博客一直在更新,欢迎 关注 。
  • 相关阅读:
    莫比乌斯反演套路一--令t=pd--BZOJ2820: YY的GCD
    BZOJ2720: [Violet 5]列队春游
    BZOJ2277: [Poi2011]Strongbox
    莫(meng)比(bi)乌斯反演--BZOJ2301: [HAOI2011]Problem b
    「CodePlus 2017 11 月赛」Yazid 的新生舞会
    「CodePlus 2017 11 月赛」大吉大利,晚上吃鸡!
    用NumGo实现安卓动画
    人生
    用NumGo实现安卓动画
    html5使用canvas绘制n角星
  • 原文地址:https://www.cnblogs.com/10087622blog/p/9571055.html
Copyright © 2011-2022 走看看