SylixOS 网卡初始化配置参数设置

SylixOS 网卡初始化配置参数设置

Q:如何配置 SylixOS 网卡的初始化参数?
ifconfig 命令对 ip 地址的修改仅仅是一个临时修改,当系统掉电重启后,设备ip地址还是由相应 bsp 文件来配置的,但是系统每次启动都会读取 ifparam.ini 文件,该文件存储着系统网络方面的配置信息且掉电不丢失。
ifparam.ini 文件存储在根目录 etc 文件夹下(可自行创建),文件内容如:
[dw_0]                                     // 网卡型号,可以在系统下通过 ifconfig 命令查看需要配置的网卡
ipaddr=10.4.0.101                 // ip地址
netmask=255.255.0.0           // 子网掩码
gateway=10.4.0.1                  // 网关
default=1                                // 是否设为默认启动网卡

  有其他需要设置的参数可以参考以下:
  本配置系统, 供网卡驱动程序初始化部分使用, 具体行为需要网卡驱动程序实现.
[dm9000a]                              // 网卡型号
  enable=1
  ipaddr=192.168.1.2
  netmask=255.255.255.0
  gateway=192.168.1.1
  default=1
  mac=00:11:22:33:44:55         // 除非网卡没有 MAC 地址, 否则不建议设置 MAC
  ipv6_auto_cfg=1                      // 如果将 SylixOS 作为 IPv6 路由器, 则 ipv6_auto_cfg=0
  tcp_ack_freq=2                        // TCP Delay ACK 响应频率 (2~127), 默认为 2, 既接收两个总和大于 MSS 长度数据包立即发送 ACK
  tcp_wnd=8192                        // TCP window (tcp_wnd > 2 * MSS) && (tcp_wnd < (0xffffu << TCP_RCV_SCALE))
  
  txqueue=0                               // >0 表示使用异步队列发送功能 (16 ~ 4096)
  txqblock=1                              // 1: 发送队列遇到阻塞时进行等待 (通常为 1, 窄带无线网络可为 0)
  
  ipaddr_6=fec0::c0a8:10         // 添加一个 IPv6 地址
  gateway_6=fec0::c0a8:1        // 添加一个 IPv6 网关地址
  
  mipaddr=10.0.0.2                    // 添加一个辅助 IP 地址
  mnetmask=255.0.0.0
  mgateway=10.0.0.1
  
  mipaddr=172.168.0.2             // 添加一个辅助 IP 地址
  mnetmask=255.255.0.0
  mgateway=172.168.0.2
  
  或者
  
  [dm9000a]
  enable=1
  dhcp=1
  dhcp6=1
  mac=00:11:22:33:44:55         // 除非网卡没有 MAC 地址, 否则不建议设置 MAC

  resolver 类库配置文件范例 /etc/resolv.conf
  nameserver x.x.x.x


    • Related Articles

    • SylixOS 如何配置 IP 地址?

      (1) 使用 ifconfig 命令进行配置(临时配置,重启无效) 可手动创建 shell 脚本 /etc/startup.sh,并写入 ifconfig 配置(脚本生效,重启有效) ifconfig [ifname] [{inet | netmask | gateway}] [address] eg: ifconfig en1 inet 192.168.0.3 ifconfig en1 netmask 255.255.255.0 ifconfig en1 gateway 192.168.0.1 ...
    • SylixOS 协议栈学习(一)网络接口结构

             1) netif 的结构体来描述一个硬件网络接口的。     struct netif {                                                         struct netif *next;    // 指向下一个 netif 结构的指针         struct ip_addr ip_addr;    // IP 地址相关配置         struct ip_addr netmask;         struct ...
    • SylixOS使用的网络协议栈是?

      Q:SylixOS使用的网络协议栈是? SylixOS使用的网络协议栈是 lwip 版本为 v2.1.0。 /** X.x.x: Major version of the stack */ #define LWIP_VERSION_MAJOR 2 /** x.X.x: Minor version of the stack */ #define LWIP_VERSION_MINOR 1 /** x.x.X: Revision of the stack */ #define ...
    • 如何使用代码添加额外 IP,并获得额外 IP 对应网卡接口名称

      Q:如何使用代码添加额外 IP,并获得额外 IP 对应网卡接口名称? 使用 ifmip 命令给指定网卡添加 IP 地址后,会生成 "mi" 开头的虚拟网卡。同样也可以使用 API 来添加网卡。 这里只进行代码分析和思路的展示,示例代码可见附件。 添加额外 IP,主要使用的是 netdev_mipif_add 函数。该函数原型为: int  netdev_mipif_add(       netdev_t *netdev,       const ip4_addr_t *ip4,        ...
    • 【网络攻击】阿基里斯测试仪测试导致协议栈崩溃解决办法

      问:【网络攻击】阿基里斯测试仪测试导致协议栈崩溃解决办法 测试方法: 发送 ip fragment 报文,10M 流量,测试报文一直没有最后一片的标志,就是相当于无限分片。 这些报文先把协议栈 pbuf 全部占满了,一直没有释放,在等最后一片或者超时。 所以在测试过程中,协议栈资源一直是满的,无法提供服务。 分析: ( 由源码可知,协议栈针对这个的超时时间应该是 15s ),如果支持无限分片,资源迟早会消耗光 答:修改IP分片