Hello,
Neil Brown wrote:
> Note that the in_pktinfo is described as "some information about the
> incoming packet". In particular ipi_ifindex is "the unique index of
> the interface the packets was received on".
>
> i.e. it is more about the incoming than the outgoing packet.
Yes, because when set as socket option you can receive
pktinfo with recvmsg. But IP_PKTINFO can be used also with sendmsg.
Just forget about interfaces, i.e. use something like this in cmsg:
.ipi = {
.ipi_ifindex = 0,
.ipi_spec_dst = local_ip,
},
Such code is needed when your UDP socket is not
connected (preferred) nor bound (with bind). In such case
it is essential to provide sendmsg with the local IP address
used for proper routing. Playing with interfaces should be
avoided if possible. If is a common error UDP users not to
provide the routing with local IP address.
Regards
--
Julian Anastasov <[email protected]>