首页 > 其他分享 >Hi3516A开发--ethtool安装和使用

Hi3516A开发--ethtool安装和使用

时间:2023-04-03 20:44:54浏览次数:46  
标签:ethtool TSO Full 流控 -- 网卡 Hi3516A eth0


一、下载

ethtool-4.6.tar.gz下载

二、安装

解压:tar -xvf ethtool-4.6.tar.gz

配置:./configure --host=arm-hisiv300-linux  

//--host 指定的是交叉编译工具链的前缀

编译:make

生成:ethtool

查看:file ethtool
ethtool: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), not stripped

拷贝:cp ethtool /usr/sbin       //拷贝到开发板

扩展: ./configure 的配置和用法

三、测试

/usr/sbin # ethtool eth0
 Settings for eth0:
         Supported ports: [ TP AUI BNC MII FIBRE ]
         Supported link modes:   10baseT/Half 10baseT/Full 
                                 100baseT/Half 100baseT/Full 
                                 1000baseT/Half 1000baseT/Full 
         Supported pause frame use: Symmetric
         Supports auto-negotiation: Yes
         Advertised link modes:  10baseT/Half 10baseT/Full 
                                 100baseT/Half 100baseT/Full 
                                 1000baseT/Half 1000baseT/Full 
         Advertised pause frame use: Symmetric
         Advertised auto-negotiation: Yes
         Speed: 100Mb/s
         Duplex: Full
         Port: MII
         PHYAD: 1
         Transceiver: external
         Auto-negotiation: on
         Link detected: yes

也可以如下查看网卡速率:

#cat /sys/class/net/eth0/speed
100


分析:

可以看到支持10M、100M、1000M,而实际网卡速率为Speed: 100Mb/s。

那么问题来了,是不是千兆网卡Speed一定是1000M呢?

结果是不一定,网卡速率和网线,交换机端口速率都有关系,看到Auto-negotiation字段了吧,on表示开启自动协商,插上网线后会两端会自动协商一个都支持的速率。

Link detected 表示插好网线,激活网卡(ifup ethx, 其实是二层up)才会yes。

具体到我这个板卡为何支持1000兆网,网卡速度却是100Mb/s呢?

Hi3516A开发--ethtool安装和使用_sed

四、使用

输入./ethtool --help 命令可看到详细的帮助信息。

或可参看:Linux命令之Ethtool用法详解


下面主要讲一下ethtool 配置接口。

用户可以通过标准 ethtool 工具接口进行流控功能的使能。
ethtool –a eth0 命令查看 eth0 口流控功能状态;打印如下:

# ./ethtool -a eth0
 Pause parameters for eth0:
 Autonegotiate: on
 RX: on
 TX: on
 其中, RX 流控是打开的, TX 流控是打开的;
 用户可以通过以下命令打开或关闭流控:
 # ./ethtool -A eth0 rx off(关闭 RX 流控)
 # ./ethtool -A eth0 rx on(打开 RX 流控)
 # ./ethtool -A eth0 tx off(关闭 TX 流控)
 # ./ethtool -A eth0 tx on(打开 TX 流控)


GMAC 模块支持 TSO 功能且默认是打开的,如果用户希望关闭 TSO 功能,可通过工具 ethtool 将其关闭。开关 TSO 功能的方法如下:
关闭 TSO: ./ethtool –K eth0 tx off
打开 TSO: ./ethtool –K eth0 tx on
TSO( TCP Segment Offload)功能简介:
TSO (TCP Segmentation Offload)是一种利用网卡分割大数据包,减小 CPU 负荷的一种技术,也被叫做 LSO (Large segment offload),如果数据包的类型只能是TCP,则被称之为 TSO,如果硬件支持 TSO 功能的话,也需要同时支持硬件的TCP 校验计算和分散-聚集 (Scatter Gather) 功能。 TSO 的实现,其实是由软件和硬件结合起来完成的,具体说来,硬件能够对大的数据包进行分片,并对每个分片附着相关的头部。
Hi3516A 芯片使用 TSO 时,会把一部分由 CPU 处理的工作转移到由网卡来处理,减轻 CPU 的压力,提高性能。

标签:ethtool,TSO,Full,流控,--,网卡,Hi3516A,eth0
From: https://blog.51cto.com/u_15979522/6167339

相关文章

  • 第一篇 go之基本类型与函数使用
    go之基本类型与函数使用目录go之基本类型与函数使用一、go语言介绍1go语言介绍2go语言特性3go的历史发展4go语言的应用领域二、go语言开发环境1go环境配置2go常用命令三、第一个helloworld四变量1变量定义2变量定义规范2.1变量命名规范2.2go语言中的关键字五数据类......
  • CentOS7服务器搭建LAMP环境
    CentOS7.4上搭建LAMP环境,这里以centos7.4为例;工具/原料centos系统一台安全组放行80,22端口关闭防火墙和SELinux安装Apache方法/步骤使用的例子:服务器版本内核。2Xshell连接到您的服务器上,使系统处于最新状态执行以下命令,查看centos版本lsb_release-a更新centos系统yum-yupdate......
  • VGG16模型
    VGG16模型,权重由ImageNet训练而来该模型可同时构建于channels_first(通道,高度,宽度)和channels_last(高度,宽度,通道)两种输入维度顺序。模型的默认输入尺寸是224x224(一)模型参数keras.applications.vgg16.VGG16(include_top=True,#是否保留顶层的3个全连接网络weights='im......
  • 长达 1.7 万字的 explain 关键字指南!
    当你的数据里只有几千几万,那么SQL优化并不会发挥太大价值,但当你的数据里去到了几百上千万,SQL优化的价值就体现出来了!因此稍微有些经验的同学都知道,怎么让MySQL查询语句又快又好是一件很重要的事情。要让SQL又快又好的前提是,我们知道它「病」在哪里,而explain关键字就是M......
  • Spring事件详解,Spring-Event源码详解,一文搞透Spring事件管理
    文章目录一、Java中事件/监听器编程模型1、Java中Observable/Observer事件监听(1)代码实例(2)Java9新的事件监听2、面向接口的事件/监听器设计模式3、面向注解的事件/监听器设计模式二、Spring事件1、Spring标准事件-ApplicationEvent2、基于接口的Spring事件监听器代码实例3、基于注......
  • 康托展开
    一个老生常谈的问题,给定一个两两不同字符的排列x,问其在所有排列情况中的排名。很容易得到第一种暴力思路,先找到其所有字符集合的最小排列,再利用c++的next_permutation()函数不断寻找,直到找到原排列。思路清晰,代码简单,时间复杂度却是高达O(n!),可以解决n<=11的情况(如蓝桥......
  • Java多线程
    1.可见性、原子性和有序性问题多线程有三大特性,分别是可见性、原子性和有序性。1.1可见性  在单核时代,所有的线程都是在一颗CPU上执行,CPU缓存与内存的数据一致性容易解决。因为所有线程都是操作同一个CPU的缓存,一个线程对缓存的写,对另外一个线程来说一定是可见的。一个线程......
  • C语言再学习 -- 输入/输出
    一、缓冲区输入字符的立即回显是非缓冲或直接输入的一个实例,它表示你说键入的字符被收集并存储在一个被成为缓冲区的临时存储区域中。按下回车可使你所键入的字符块对程序变成可用。为什么需要缓冲区?首先,将若干个字符作为一个块传输比逐个发送这些字符耗费的时间少。其次,如果你输入......
  • C语言再学习 -- 运算符与表达式
    分三部分来讲一、左值与右值参看:左值与右值首先我们需要理解左值和右值的定义:左值指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储,那么这个表达式就可以做为一个左值。      右值指的是引用了一个存储在某个内存地址里的数据。从上面......
  • Spring注解驱动原理及源码,深入理解Spring注解驱动
    文章目录一、Java注解入门大全二、Spring注解驱动编程发展历程1、注解驱动启蒙时代:SpringFramework1.x@Transactional@ManagedResource2、注解驱动过渡时代:SpringFramework2.x@Repository@Component3、注解驱动黄金时代:SpringFramework3.x4、注解驱动完善时代:SpringFramewo......