UDP Tx and order of delivery considerations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I am developing a UDP based networking app for an embedded system on a
multicore CPU. I would like to understand the ordering of delivery in
the Tx path as we have unique requirements that packets be on the wire
in the chronological order of send()/write() calls.

1) If UDP corking is not enabled and ARP is already resolved, does
send()/write() return only after the packet is queued in the ethernet
driver?
 * I have analyzed the code paths and this seems to be the case but I
would like to double check to make sure if I haven't missed some
paths.

2) Process A on core0 does a send()/write() at t0 and Process B on the
same core does another send()/write() at later point in time, is it
guaranteed that the packets are delivered on the wire in the order of
send() calls?

3) Process A on core0 does a send()/write() at t0 and Process B on a
different core does another send()/write() at later point in time, are
there any simple tricks to guarantee order of delivery?
  * I am currently planning to implement a FIFO queue for
serialization where sends() across the cores are buffered and drained
from a single process.

The packets are delivered to a custom chip on the same board with a
direct SGMII connection from the CPU and packet loss is a non-issue
for us by design. Also as this is a point-to-point connection out of
order delivery through routers does not arise for us.

Thanks,
Mohan
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux