[gPXE] [Etherboot-developers] query about sending data over raw ethernet
Stefan Hajnoczi
stefanha at gmail.com
Fri Jan 29 09:01:12 EST 2010
On Fri, Jan 29, 2010 at 1:30 PM, amey borkar <ameyborkar13 at gmail.com> wrote:
> sorry....i missed one thing ........When i included the file "errno.h" &
> below statement
> then I get "ERROR FILE MISSING. WARNINIG TREATED AS ERROR"
>
> if ( ! iobuf )
> return -ENOMEM;
>
> Please help with this.
See include/errno.h and include/gpxe/errfile.h. There are comments in
there explaining how gPXE's error codes work.
> On Fri, Jan 29, 2010 at 6:53 PM, amey borkar <ameyborkar13 at gmail.com> wrote:
>>
>> Thank you for replying.
>> Yes.....that was the mistake... i resolved that and sent the data over raw
>> ethernet but wireshark shows it as "malformed FC packet".i can't understand
>> why that's happening, have attached the snapshot.
You don't have a valid FC header. The FC header bytes displayed by
Wireshark are all ASCII characters - it's your "Data send successful"
message. Build a correct FC header and Wireshark will be happy. I
was able to tell this quickly because the byte values are all in the
printable ASCII range and there were 0x20 (space) characters every few
bytes - remember this pattern because bugs like this occur every once
in a while.
I hope this helps get you going. Unfortunately I do not have time to
help you further at the level we are interacting. I'd like to explain
why I don't think this is productive:
You should learn to solve these problems yourself. Writing code
involves overcoming these issues through systematic debugging and
understanding the environment your code executes in.
Some coding errors can be difficult to track down the first time and
experience helps you identify them more quickly in the future.
However, every bug can be understood by learning how the system works.
When you get an error message from the compiler or from gPXE, read the
code where the problem originates. You are a developer but are asking
questions like a customer using black box software. gPXE is open
source (and so is Wireshark), be a hacker and try to understand it.
Follow the code path that prints the error message to find out how
your input caused the program to error.
Searching the code for the error message you are seeing. Usually it
is best to do an case-insensitive search on a unique substring of the
error message, because the error message may be formatted or split
across multiple lines. For example, grep -ri "missing" .:
include/errno.h:#define ERRFILE ( 0 * ( ( int ) missing_errfile_declaration ) )
The rate at which you are asking for help suggests that you need to
look deeper, spend more time debugging before sending emails, and
learn how things work so you can solve problems yourself.
Hope this makes sense.
Stefan
More information about the gPXE
mailing list