* [U-Boot-Users] eth_rx implementation
@ 2005-03-06 8:44 Rodel Miguel
2005-03-06 9:26 ` Wolfgang Denk
0 siblings, 1 reply; 5+ messages in thread
From: Rodel Miguel @ 2005-03-06 8:44 UTC (permalink / raw)
To: u-boot
Hi All,
I am having problems implementing my eth_rx function. I have seen
from other implementations that eth_rx will return any packet that has
been received from the network, however, if there are no data to
retrieve, i.e. NetReceive(NetRxPackets[0], 0), the PING function
re-sends the ping request in at most two times.
I have implemented a polling eth_rx function. Of course there should
be no packet type checking on this level, however, is the network loop
function checking if the packets for a specific network command is
satisfied, and if not, what does our network loop do?
Thank you for your time.
Best Regards,
Rodel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot-Users] eth_rx implementation
2005-03-06 8:44 [U-Boot-Users] eth_rx implementation Rodel Miguel
@ 2005-03-06 9:26 ` Wolfgang Denk
2005-03-06 12:15 ` Rodel Miguel
0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Denk @ 2005-03-06 9:26 UTC (permalink / raw)
To: u-boot
In message <698a2fda0503060044189b8b1c@mail.gmail.com> you wrote:
>
> I am having problems implementing my eth_rx function. I have seen
And what exactly is your problem?
> from other implementations that eth_rx will return any packet that has
> been received from the network, however, if there are no data to
Rigth.
> retrieve, i.e. NetReceive(NetRxPackets[0], 0), the PING function
> re-sends the ping request in at most two times.
Yes, but this is a different issue and unrelated to the implemen-
tation of eth_rx.
> I have implemented a polling eth_rx function. Of course there should
> be no packet type checking on this level, however, is the network loop
OK.
> function checking if the packets for a specific network command is
> satisfied, and if not, what does our network loop do?
I'm not exactly sure what you are asking here. Are there any problems
with your eth_rx code as you claimed above, or did you modify
anything in the NetLoop() function, or what?
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
A witty saying proves nothing, but saying something pointless gets
people's attention.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot-Users] eth_rx implementation
2005-03-06 9:26 ` Wolfgang Denk
@ 2005-03-06 12:15 ` Rodel Miguel
2005-03-06 12:49 ` Wolfgang Denk
0 siblings, 1 reply; 5+ messages in thread
From: Rodel Miguel @ 2005-03-06 12:15 UTC (permalink / raw)
To: u-boot
Hi Wolfgang,
I'm sorry I wasnt clear enough with my query.
My implementation of eth_rx is somewhat like the ff:
- check if data is available
- if not, return 0
- call NetReceive(NetRxPackets[0], len)
- return len
Questions:
1. If network data is not available, eth_rx returns 0 and does not
call NetReceive(), how many times does NetworkLoop retry to send the
first data it requested?
2. If data is available, eth_rx calls NetReceive, however, if it is
not intended for the initial U-Boot request, how many times does does
NetworkLoop retry to send the first data it requested?
3. Do you need to enable a U-Boot configuration flag to support my
implementation of eth_rx?
I am currently having problems with my eth_send implementation, so
there are really no network requests done on the PHY layer yet,
however, the eth_rx can receive data, I just noticed that there's not
much error handlers on the higher layers. The ARP requests are only
done twice, at least in PING command.
Thank you very much for your help.
Best Regards,
Rodel
On Sun, 06 Mar 2005 10:26:00 +0100, Wolfgang Denk <wd@denx.de> wrote:
> In message <698a2fda0503060044189b8b1c@mail.gmail.com> you wrote:
> >
> > I am having problems implementing my eth_rx function. I have seen
>
> And what exactly is your problem?
>
> > from other implementations that eth_rx will return any packet that has
> > been received from the network, however, if there are no data to
>
> Rigth.
>
> > retrieve, i.e. NetReceive(NetRxPackets[0], 0), the PING function
> > re-sends the ping request in at most two times.
>
> Yes, but this is a different issue and unrelated to the implemen-
> tation of eth_rx.
>
> > I have implemented a polling eth_rx function. Of course there should
> > be no packet type checking on this level, however, is the network loop
>
> OK.
>
> > function checking if the packets for a specific network command is
> > satisfied, and if not, what does our network loop do?
>
> I'm not exactly sure what you are asking here. Are there any problems
> with your eth_rx code as you claimed above, or did you modify
> anything in the NetLoop() function, or what?
>
> Best regards,
>
> Wolfgang Denk
>
> --
> Software Engineering: Embedded and Realtime Systems, Embedded Linux
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> A witty saying proves nothing, but saying something pointless gets
> people's attention.
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot-Users] eth_rx implementation
2005-03-06 12:15 ` Rodel Miguel
@ 2005-03-06 12:49 ` Wolfgang Denk
2005-03-06 23:47 ` Rodel Miguel
0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Denk @ 2005-03-06 12:49 UTC (permalink / raw)
To: u-boot
Dear Rodel,
in message <698a2fda05030604151688be50@mail.gmail.com> you wrote:
>
> My implementation of eth_rx is somewhat like the ff:
>
> - check if data is available
> - if not, return 0
> - call NetReceive(NetRxPackets[0], len)
> - return len
OK.
> 1. If network data is not available, eth_rx returns 0 and does not
> call NetReceive(), how many times does NetworkLoop retry to send the
> first data it requested?
What has sending to do with receiving?
> 2. If data is available, eth_rx calls NetReceive, however, if it is
> not intended for the initial U-Boot request, how many times does does
> NetworkLoop retry to send the first data it requested?
What exactly do you want to know? The transmit side (sendign of data)
is completely independend from the receive side. If any data is sent,
or if it might be resent, is only dependent on the current state of
the protocol machine, i. e. which command is being executed.
You cannot make any statements about this from just looking at the
receive code.
> 3. Do you need to enable a U-Boot configuration flag to support my
> implementation of eth_rx?
I don't even understand this question.
> I am currently having problems with my eth_send implementation, so
Arghhh. Now what exactly is it you re asking for? First you talk
about ethernet receive, then you raise protocol issues, and now you
mention the transmit side?
> there are really no network requests done on the PHY layer yet,
> however, the eth_rx can receive data, I just noticed that there's not
> much error handlers on the higher layers. The ARP requests are only
> done twice, at least in PING command.
The network code contains a small (you may even say a minimal)
implementation of some UDP based network protocols like BOOTP, DHCP,
TFTP, and NFS. For details of the protocols please see the relevant
RFC's.
Please be specific if you have any concerns that this implementation
might be incomplete or buggy.
If it's just that your ethernet transmit code doesn't work - well,
it's trivial to hook a debugger in the transmit routine and a network
sniffer (like ethereal) on the wire. Same for the receive side.
Retransmission of data does not play any role here.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I'm a programmer: I don't buy software, I write it.
-- Tom Christiansen
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot-Users] eth_rx implementation
2005-03-06 12:49 ` Wolfgang Denk
@ 2005-03-06 23:47 ` Rodel Miguel
0 siblings, 0 replies; 5+ messages in thread
From: Rodel Miguel @ 2005-03-06 23:47 UTC (permalink / raw)
To: u-boot
Hi Wolfgang,
I was thinking that if you send an ARP request, the NetworkLoop will
wait for incoming data, i.e. block and wait for the correct ARP reply.
That is why I was asking how many times that the NetworkLoop would
retry to send the data if an error in the receiving of ARP replies
occur.
Ok, I got to check the network layer code and throw a better question later.
Thank you very much for your help.
Best Regards,
Rodel
On Sun, 06 Mar 2005 13:49:26 +0100, Wolfgang Denk <wd@denx.de> wrote:
> Dear Rodel,
>
> in message <698a2fda05030604151688be50@mail.gmail.com> you wrote:
> >
> > My implementation of eth_rx is somewhat like the ff:
> >
> > - check if data is available
> > - if not, return 0
> > - call NetReceive(NetRxPackets[0], len)
> > - return len
>
> OK.
>
> > 1. If network data is not available, eth_rx returns 0 and does not
> > call NetReceive(), how many times does NetworkLoop retry to send the
> > first data it requested?
>
> What has sending to do with receiving?
>
> > 2. If data is available, eth_rx calls NetReceive, however, if it is
> > not intended for the initial U-Boot request, how many times does does
> > NetworkLoop retry to send the first data it requested?
>
> What exactly do you want to know? The transmit side (sendign of data)
> is completely independend from the receive side. If any data is sent,
> or if it might be resent, is only dependent on the current state of
> the protocol machine, i. e. which command is being executed.
>
> You cannot make any statements about this from just looking at the
> receive code.
>
> > 3. Do you need to enable a U-Boot configuration flag to support my
> > implementation of eth_rx?
>
> I don't even understand this question.
>
> > I am currently having problems with my eth_send implementation, so
>
> Arghhh. Now what exactly is it you re asking for? First you talk
> about ethernet receive, then you raise protocol issues, and now you
> mention the transmit side?
>
> > there are really no network requests done on the PHY layer yet,
> > however, the eth_rx can receive data, I just noticed that there's not
> > much error handlers on the higher layers. The ARP requests are only
> > done twice, at least in PING command.
>
> The network code contains a small (you may even say a minimal)
> implementation of some UDP based network protocols like BOOTP, DHCP,
> TFTP, and NFS. For details of the protocols please see the relevant
> RFC's.
>
> Please be specific if you have any concerns that this implementation
> might be incomplete or buggy.
>
> If it's just that your ethernet transmit code doesn't work - well,
> it's trivial to hook a debugger in the transmit routine and a network
> sniffer (like ethereal) on the wire. Same for the receive side.
> Retransmission of data does not play any role here.
>
> Best regards,
>
> Wolfgang Denk
>
> --
> Software Engineering: Embedded and Realtime Systems, Embedded Linux
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> I'm a programmer: I don't buy software, I write it.
> -- Tom Christiansen
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-03-06 23:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-06 8:44 [U-Boot-Users] eth_rx implementation Rodel Miguel
2005-03-06 9:26 ` Wolfgang Denk
2005-03-06 12:15 ` Rodel Miguel
2005-03-06 12:49 ` Wolfgang Denk
2005-03-06 23:47 ` Rodel Miguel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox