Another Ethernet problem for Thomas :) Cont.

Sergei Organov osv at javad.com
Wed Jan 30 17:06:54 UTC 2008


Leon Pollak <leonp at plris.com> writes:
> Thomas,
>
>> > ************ INTERFACE STATISTICS ************
>> > ***** eth0 *****
>> > Ethernet Address: 00:80:7F:22:61:77
>> > Address:192.168.50.133  Broadcast Address:192.168.50.255  Net
>> > mask:255.255.255.0
>> >
>> > Flags: Up Broadcast Running Simplex
>>
>>                                ^^^^^^^^^^
>> Back to the driver level: What would happen if your driver really works
>> in simplex (half duplex) mode? If it sends a packet while receiving one,
>> one of the two packets might get lost?
>>
>> I am not sure how you really set up the ethernet controller, so the
>> flagged "simplex" might be misleading, but you should check it anyway.
>>
>> Thomas.
> After searhes and scans: this is what all rtems drivers set in if->if_flags 
> after initializing. I put this too without thinking...:(
> My driver is full duplex and works this way, so I removed this assignment. Now 
> the line shows : Up Broadcast Running
> and no simplex. I tried to set IFF_DUPLEX
> Tests showed no visible influence.

I believe you can leave it to be IFF_SIMPLEX, -- it has no influence on
actual simplex/duplex mode of ethernet/phy operation, and will do no
harm:

   "... the only uses of IFF_SIMPLEX in if_ethersubr.c are to ensure that
   broadcast packets transmitted over an IFF_SIMPLEX interface are fed
   back into the kernel's receive path."

In other words it just tells the stack that device doesn't receive its
own broadcast packets, so they need to be echoed back to the TCP/IP
stack internally (i.e., in software).

-- Sergei.



More information about the users mailing list