Lines Matching refs:ipc
502 struct ipcm_cookie ipc; in raw_sendmsg() local
560 ipcm_init_sk(&ipc, inet); in raw_sendmsg()
563 err = ip_cmsg_send(sk, msg, &ipc, false); in raw_sendmsg()
565 kfree(ipc.opt); in raw_sendmsg()
568 if (ipc.opt) in raw_sendmsg()
572 saddr = ipc.addr; in raw_sendmsg()
573 ipc.addr = daddr; in raw_sendmsg()
575 if (!ipc.opt) { in raw_sendmsg()
583 ipc.opt = &opt_copy.opt; in raw_sendmsg()
588 if (ipc.opt) { in raw_sendmsg()
595 if (ipc.opt->opt.srr) { in raw_sendmsg()
598 daddr = ipc.opt->opt.faddr; in raw_sendmsg()
601 tos = get_rtconn_flags(&ipc, sk); in raw_sendmsg()
606 if (!ipc.oif || netif_index_is_l3_master(sock_net(sk), ipc.oif)) in raw_sendmsg()
607 ipc.oif = inet->mc_index; in raw_sendmsg()
610 } else if (!ipc.oif) { in raw_sendmsg()
611 ipc.oif = inet->uc_index; in raw_sendmsg()
619 if (ipc.oif != inet->uc_index && in raw_sendmsg()
620 ipc.oif == l3mdev_master_ifindex_by_index(sock_net(sk), in raw_sendmsg()
622 ipc.oif = inet->uc_index; in raw_sendmsg()
626 flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, in raw_sendmsg()
660 &rt, msg->msg_flags, &ipc.sockc); in raw_sendmsg()
663 if (!ipc.addr) in raw_sendmsg()
664 ipc.addr = fl4.daddr; in raw_sendmsg()
668 &ipc, &rt, msg->msg_flags); in raw_sendmsg()
680 kfree(ipc.opt); in raw_sendmsg()