projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TI: OMAP3: Create common config files for TI OMAP3 platforms.
[oweals/u-boot.git]
/
net
/
ping.c
diff --git
a/net/ping.c
b/net/ping.c
index 9c690d8c85f1dbb0ff4e0f4a5af1fdb0de8e269a..0710b9228d1ea9318901faaf56fdfe4ef68743e3 100644
(file)
--- a/
net/ping.c
+++ b/
net/ping.c
@@
-40,22
+40,17
@@
static void set_icmp_header(uchar *pkt, IPaddr_t dest)
static int ping_send(void)
{
static int ping_send(void)
{
- static uchar mac[6];
uchar *pkt;
int eth_hdr_size;
/* XXX always send arp request */
uchar *pkt;
int eth_hdr_size;
/* XXX always send arp request */
- memcpy(mac, NetEtherNullAddr, 6);
-
- debug("sending ARP for %pI4\n", &NetPingIP);
+ debug_cond(DEBUG_DEV_PKT, "sending ARP for %pI4\n", &NetPingIP);
NetArpWaitPacketIP = NetPingIP;
NetArpWaitPacketIP = NetPingIP;
- NetArpWaitPacketMAC = mac;
- pkt = NetArpWaitTxPacket;
- eth_hdr_size = NetSetEther(pkt, mac, PROT_IP);
- pkt += eth_hdr_size;
+ eth_hdr_size = NetSetEther(NetTxPacket, NetEtherNullAddr, PROT_IP);
+ pkt = (uchar *)NetTxPacket + eth_hdr_size;
set_icmp_header(pkt, NetPingIP);
set_icmp_header(pkt, NetPingIP);
@@
-87,6
+82,7
@@
void ping_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)
{
struct icmp_hdr *icmph = (struct icmp_hdr *)&ip->udp_src;
IPaddr_t src_ip;
{
struct icmp_hdr *icmph = (struct icmp_hdr *)&ip->udp_src;
IPaddr_t src_ip;
+ int eth_hdr_size;
switch (icmph->type) {
case ICMP_ECHO_REPLY:
switch (icmph->type) {
case ICMP_ECHO_REPLY:
@@
-95,11
+91,10
@@
void ping_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)
net_set_state(NETLOOP_SUCCESS);
return;
case ICMP_ECHO_REQUEST:
net_set_state(NETLOOP_SUCCESS);
return;
case ICMP_ECHO_REQUEST:
- debug("Got ICMP ECHO REQUEST, return "
- "%d bytes\n", ETHER_HDR_SIZE + len);
+ eth_hdr_size = net_update_ether(et, et->et_src, PROT_IP);
- memcpy(&et->et_dest[0], &et->et_src[0], 6);
-
memcpy(&et->et_src[0], NetOurEther, 6
);
+ debug_cond(DEBUG_DEV_PKT, "Got ICMP ECHO REQUEST, return "
+
"%d bytes\n", eth_hdr_size + len
);
ip->ip_sum = 0;
ip->ip_off = 0;
ip->ip_sum = 0;
ip->ip_off = 0;
@@
-112,7
+107,7
@@
void ping_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)
icmph->checksum = 0;
icmph->checksum = ~NetCksum((uchar *)icmph,
(len - IP_HDR_SIZE) >> 1);
icmph->checksum = 0;
icmph->checksum = ~NetCksum((uchar *)icmph,
(len - IP_HDR_SIZE) >> 1);
- NetSendPacket((uchar *)et,
ETHER_HDR_SIZE
+ len);
+ NetSendPacket((uchar *)et,
eth_hdr_size
+ len);
return;
/* default:
return;*/
return;
/* default:
return;*/