I would like to send my packet to a UDP dst port number and send it through eth0 interface (if scapy handles my layer2 directly, then eth0 does not need to be given as an argument)
Using the scapy documentation, we see that sending an UDP packet is as simple as:
send(IP(dst="127.0.0.1")/UDP(dport=123)/Raw(load="abc"))