[CRIU] [PATCH 00/12] Support for packet's msg_name in receive queue of promiscous DGRAM sockets
Kirill Tkhai
ktkhai at virtuozzo.com
Fri Apr 29 07:34:52 PDT 2016
DGRAM packet, received using recvmsg, have msghdr populated:
recvmsg(int sockfd, struct msghdr *msg, int flags)
struct msghdr {
void *msg_name;
int msg_namelen;
...
};
msg_name and msg_namelen contain the name of the sender of packet,
which it's bound to.
Currently, we do not support this. We restore the whole queue with
the only sender (the receiver is peer for it, but there may be several
senders), or with empty sender.
This series add a support for "promiscous" receive queues and restore
them correct.
To do that, we determine sockets, which queue has several senders, and
senders, who are involved it there. Sender's fds are sent to receives,
and receivers restore their queues it correct order and with correct
msg_names.
This patchset should have a sequel, which introduces "ghost sockets",
that are not supported there. Their packets are restored as having
noname senders now.
---
Kirill Tkhai (12):
unix: Link all sockets in unix_sockets list
unix: Add find_unix_sk_by_name()
unix: Add sender_ino of packets and socket
sk-queue: Allow to dump a skb sender
unix: Dump DGRAM packets and sockets senders
unix: Fixup queuer of promiscuous DGRAM receivers
unix: Resolve senders of packets in receive queue of DGRAM socket
files: Add file_desc_ops::receive method
files: Add get_unused_fd() helper
unix: Send senders fds of packets in receive queue to receiver
sk-queue: Allow to use several file descriptors to restore a queue
unix: Add a method for choosing sender of packet in promiscous DGRAM queue
criu/cr-restore.c | 2
criu/files.c | 102 +++++++++++++++
criu/include/files.h | 12 ++
criu/include/image.h | 2
criu/include/pstree.h | 1
criu/include/sk-queue.h | 15 ++
criu/sk-queue.c | 146 ++++++++++++++++++++-
criu/sk-unix.c | 322 ++++++++++++++++++++++++++++++++++++++++++++---
images/sk-packet.proto | 1
images/sk-unix.proto | 2
10 files changed, 567 insertions(+), 38 deletions(-)
--
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
More information about the CRIU
mailing list