This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RDI target via UDP and router (don't)



Hello ARM fans!

I discovered today that using the Jeeni RDI target via a router is bad news.

The Angle Debug Protocol used by the RDI target is fragile and can't handle
any packet loss.  Rather than UDP, it really should be using the mythical
"reliable datagram" or "sequential packet" service spoken of in the "socket"
man-page of some Unices.  Unfortunately nobody ever got around to
implementing either of those (AFAIK).

So, if your router is not absolutely, postitively, 100% reliable, it's going
to break the Angle/UDP connection between gdb and the Jeeni.  I've no idea
_why_ our router was dropping UDP packets, but every minute or two the damn
thing (the router) apparently flushes its ARP tables, because it sends an
ARP request out to find the Ethernet address of the Jeeni.  If it receives
an Angel/UDP packet from gdb destined for the Jeeni before it gets an ARP
reply from the Jeeni, it flushes the UDP packet, and the gdb<-->Jeeni
connection seizes up.

It's possible that receiving an ARP request caused the Jeeni to loose a UDP
packet somehow -- I don't think I could differentiate between these two
cases with the data I gathered.

Either way, using the router caused the Angel protocol connection to die
within a minute or two of starting up gdb.  Reconfiguring things so that the
Jeeni was on the same subnet as the gdb host made the problem go away.

-- 
Grant Edwards
grante@visi.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]