2. Ethernet操作指南

2.1. 操作示例

Ethernet模块默认为编入内核,不需另外执行加载操作。

内核下使用网口的操作步骤如下:

  • 配置ip地址和子网掩码

ifconfig eth0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx up

  • 设置缺省网关

route add default gw xxx.xxx.xxx.xxx

  • 挂载 nfs

mount -t nfs -o nolock xxx.xxx.xxx.xxx:/your/path /mount-dir

  • shell下使用tftp上传下载文件

前提是在server端有tftp服务软件在运行

− 下载文件:tftp –g -r [remote file name] [server ip]

备注: remote file name 为欲下载的文件名称,server ip为下载文件所在server的ip地址 (ex:tftp -g -r test.txt 192.168.0.11)。

− 上传文件:tftp –p -l [local file name] [server ip]

备注: local file name 为本地欲上传的文件名称,server ip为上传文件的目标server的ip地址 (ex:tftp -l -p test.txt 192.168.0.11)。

备注说明:cv180x/cv181x Ethernet模块不支持TSO功能。

备注说明:nfs工具默认不会编入文件系统,需要用户在需要时候加入。

2.2. IPv6说明

SDK包中默认关闭IPv6功能。如果要开启IPv6,需要修改内核选项。具体操作如下:

  1. cv180x系列

修改

build/boards/cv180x/{board_name}/linux/cvitek_{board_name}_defconfig。

Ex: build/boards/cv180x/cv1801c_wevb_0009a_spinor/linux/

cvitek_cv1801c_wevb_0009a_spinor_defconfig新增或修改成CONFIG_IPV6=y。然后重新编译内核软件。

  1. Cv181x系列

修改

build/boards/cv181x/{board_name}/linux/cvitek_{board_name}_defconfig。

Ex: build/boards/cv181x/ cv1811c_wevb_0006a_spinor/linux/

cvitek_ cv1811c_wevb_0006a_spinor_defconfig新增或修改成CONFIG_IPV6=y。然后重新编译内核软件。

IPv6环境配置方法如下:

  • 配置ip地址以及网关

#ip -6 addr add <ipv6 address>/ipv6 prefixlen dev <port name>

Ex: ip -6 addr add 2020:abc:102::8888/24 dev eth0

  • Ping指定的IPv6地址

#ping -6 <ipv6 address>

Ex: ping -6 2020:abc:102::6666

2.3. IEEE 802.3x流控功能

2.3.1. 流控功能描述

Cv180x/cv181x Ethernet支持IEEE 802.3x所定义的流控功能,透过发送流控帧以及接收对端所发送过来的流控帧的方式来达到流控的目的。

  • 发送流控帧:

    在接收由对端发送过来的封包的过程中,若发现目前接收端的接收对列可能无法满足接收后续送达的封包时,则本地端会发送流控帧至对端,要求对端暂停一段时间不发送封包,藉此来进行流量控制。

  • 接收流控帧:

    当本地端接收到由对端发送过来的流控帧时,本地端会根据帧内的流控时间描述延迟发送封包至对端,等到过了流控延迟时间后,再启动发送。若在等待过程中收到了由对端发送的流控帧其描述的流控时间为0时,则会直接启动发送。

2.3.2. 流控功能配置

接收流控帧功能默认是关闭的,亦没有提供软件接口配置。

发送流控帧功能的相关文件配置在linux/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

static int flow_ctrl = FLOW_OFF;
module_param(flow_ctrl, int, 0644);
MODULE_PARM_DESC(flow_ctrl, "Flow control ability [on/off]");
static int pause =PAUSE_TIME;
module_param(pause, int, 0644);
MODULE_PARM_DESC(pause, "Flow Control Pause Time");

若欲默认开启流控功能,可修改flow_ctrl = FLOW_AUTO。

若欲修改默认pause time,可配置 pause至目标植。

2.3.3. ethtool配置接口流控功能

用户可以通过标准ethtool工具接口进行流控功能的使能。

ethtool –a eth0 命令查看eth0口流控功能状态;打印如下

# ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: off
TX: off

其中,RX流控是关闭的,TX流控是关闭的;用户可以通过以下命令打开或关闭TX流控:

# ethtool -A eth0 tx off(关闭TX流控)
# ethtool -A eth0 tx on(打开TX流控)

备注:ethtool工具默认不会编入文件系统,需要用户在需要时候加入。