[Bridge] Lost TCP packet
Louis Croisez
louis.croisez at gmail.com
Tue Feb 14 00:42:32 PST 2006
Hi,
i am testing two bridges by sending to it random packets using hping2.
First i create a random-length file, then i send it a lot of time on
the wire using this command:
for ($i=0; $i<50000; $i++) { hping2 -q -c 1 -d $data_len -E
random.file 10.0.0.10 }
My problem is that some packets are lost.
Here is my setup:
PC1 (10.0.0.1) ===== BR1 --------- BR2 ===== PC2 (10.0.0.10)
After analysis, i determined that these packets were lost because one
of the two bridges was in BR_STATE_DISABLED state when the lost packet
arrived.
In fact, the packet is thrown by the bridge because, in
br_input.c::br_handle_frame(), state==BR_STATE_DISABLED which force
the code to jump to the err: tag at the end of this function.
The state is set to this value while an event is received inside
br_notify.c::br_device_event(), which do a br_stp_disable_port().
After putting some printk in br_notify.c, i remarked that this event
come regularly, and always related to the same bridge port (eth1).
It don't hurt me that this event come regularly, but problem is when a
packet is flowing in the same time thru the bridge, which cause it to
be lost.
I suspect a wrong bridge configuration from me. What i would like to know is:
- what do i wrong to get this events fired?
- what should i do to correct this behavior?
Cheers,
Louis.
More information about the Bridge
mailing list