Advertisement

分析UBOOT ping命令 分析UBOOT ping命令

阅读量:

uboot ping命令相关发送流程

数据传输过程首先涉及构建ICMP数据包,由于网卡在进行ARP请求时通常无法缓存目标地址的MAC信息,因此需要先发送ARP请求以获取对应的MAC地址并更新ARP缓存,随后才能完成ICMP数据报的传输。

Ping.c

复制代码
    	static int ping_send(void)
    {
    	uchar *pkt;
    	int eth_hdr_size;
    
    	/* XXX always send arp request */
    
    	debug_cond(DEBUG_DEV_PKT, "sending ARP for %pI4\n", &NetPingIP);
    
    	NetArpWaitPacketIP = NetPingIP;
    
    	eth_hdr_size = NetSetEther(NetTxPacket, NetEtherNullAddr, PROT_IP);
    	//NetTxPacket 保存即将要发送的数据报地址
    	pkt = (uchar *)NetTxPacket + eth_hdr_size;        
    	//构造ICMP
    	set_icmp_header(pkt, NetPingIP);

全部评论 (0)

还没有任何评论哟~