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