Lines Matching refs:ipc
486 struct ipcm_cookie ipc; in raw_sendmsg() local
540 ipcm_init_sk(&ipc, inet); in raw_sendmsg()
543 ipc.protocol = IPPROTO_RAW; in raw_sendmsg()
546 err = ip_cmsg_send(sk, msg, &ipc, false); in raw_sendmsg()
548 kfree(ipc.opt); in raw_sendmsg()
551 if (ipc.opt) in raw_sendmsg()
555 saddr = ipc.addr; in raw_sendmsg()
556 ipc.addr = daddr; in raw_sendmsg()
558 if (!ipc.opt) { in raw_sendmsg()
566 ipc.opt = &opt_copy.opt; in raw_sendmsg()
571 if (ipc.opt) { in raw_sendmsg()
578 if (ipc.opt->opt.srr) { in raw_sendmsg()
581 daddr = ipc.opt->opt.faddr; in raw_sendmsg()
584 scope = ip_sendmsg_scope(inet, &ipc, msg); in raw_sendmsg()
588 if (!ipc.oif || netif_index_is_l3_master(sock_net(sk), ipc.oif)) in raw_sendmsg()
589 ipc.oif = READ_ONCE(inet->mc_index); in raw_sendmsg()
592 } else if (!ipc.oif) { in raw_sendmsg()
593 ipc.oif = uc_index; in raw_sendmsg()
601 if (ipc.oif != uc_index && in raw_sendmsg()
602 ipc.oif == l3mdev_master_ifindex_by_index(sock_net(sk), in raw_sendmsg()
604 ipc.oif = uc_index; in raw_sendmsg()
608 flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, in raw_sendmsg()
609 ipc.tos & INET_DSCP_MASK, scope, in raw_sendmsg()
610 hdrincl ? ipc.protocol : sk->sk_protocol, in raw_sendmsg()
645 &rt, msg->msg_flags, &ipc.sockc); in raw_sendmsg()
648 if (!ipc.addr) in raw_sendmsg()
649 ipc.addr = fl4.daddr; in raw_sendmsg()
653 &ipc, &rt, msg->msg_flags); in raw_sendmsg()
665 kfree(ipc.opt); in raw_sendmsg()