LWIP netif 初步学习

简单化后的netif

struct netif {
	struct netif *next; //显然可以存在多网卡组成单向链表.
#if LWIP_IPV4
	ip_addr_t ip_addr;
   ip_addr_t netmask;
   ip_addr_t gw;
#endif /* LWIP_IPV4 */
   netif_input_fn input; //网卡数据接收回调函数,面向ip协议
   netif_output_fn output; //网卡数据发送回调函数
   netif_linkoutput_fn linkoutput; //网卡数据接收回调函数,(我理解为面向arp协议)
   netif_status_callback_fn status_callback; //网卡启动/关闭回调函数
   u16_t mtu;   //最大数据传输单元
   const char*  hostname;  //主机名
   u8_t hwaddr[NETIF_MAX_HWADDR_LEN];  //mac地址,NETIF_MAX_HWADDR_LEN猜到应该是6
   u8_t hwaddr_len;  //mac地址长度
   u8_t flags; 
   u8_t num;  //网卡被用次数
    ...
}

响应网卡接入信号

  • status_callback 每次接入后,可以通过此记录日志。

ARP包分析

  • 由上面的分析,可以了解到当有PING命令时,由此接口回复数据。 之前遇到ARP运行过程中,突然双方通信结束,
    由于当时另外一方是甲方的客户环境,导致无法进行分析,也无法定位问题是哪方的责任。 当前使用的uip协议栈,
    现在了解后,其实可以在次进行日志打印就能够进一步定位问题。 当时其实也分析到出现问题时确实有3包ARP包能
    够在总线上监听而我方却没能收到,导致的问题。
    netif_linkoutput_fn linkoutput; //网卡数据接收回调函数,(我理解为面向arp协议)
    ————————————————
    版权声明:本文为CSDN博主「芋圆-钰源」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_37571125/article/details/105160412
上一篇:几种开放源码的TCPIP协议栈


下一篇:java ASE加密 (设置加密模式, 加密向量)