Migration via unix sockets.

Implement migration via unix sockets.  While you can fake this using
exec and netcat, this involves forking another process and is
generally not very nice.  By doing this directly in qemu, we can avoid
the copy through the external nc command.  This is useful for
implementations (such as libvirt) that want to do "secure" migration;
we pipe the data on the sending side into the unix socket, libvirt
picks it up, encrypts it, and transports it, and then on the remote
side libvirt decrypts it, dumps it to another unix socket, and
feeds it into qemu.

The implementation is straightforward and looks very similar to
migration-exec.c and migration-tcp.c

Signed-off-by: Chris Lalancette <clalance@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
4 files changed
tree: 33116b194215a2e693e732eb02aefd37fb373557
  1. audio/
  2. block/
  3. bsd-user/
  4. darwin-user/
  5. fpu/
  6. gdb-xml/
  7. hw/
  8. linux-user/
  9. pc-bios/
  10. slirp/
  11. target-alpha/
  12. target-arm/
  13. target-cris/
  14. target-i386/
  15. target-m68k/
  16. target-microblaze/
  17. target-mips/
  18. target-ppc/
  19. target-sh4/
  20. target-sparc/
  21. tcg/
  22. tests/
  23. .gitignore
  24. a.out.h
  25. acl.c
  26. acl.h
  27. aes.c
  28. aes.h
  29. aio.c
  30. alpha-dis.c
  31. alpha.ld
  32. arm-dis.c
  33. arm-semi.c
  34. arm.ld
  35. balloon.h
  36. block.c
  37. block.h
  38. block_int.h
  39. bswap.h
  40. bt-host.c
  41. bt-host.h
  42. bt-vhci.c
  43. buffered_file.c
  44. buffered_file.h
  45. cache-utils.c
  46. cache-utils.h
  47. Changelog
  48. cmd.c
  49. cmd.h
  50. cocoa.m
  51. CODING_STYLE
  52. configure
  53. console.c
  54. console.h
  55. COPYING
  56. COPYING.LIB
  57. cpu-all.h
  58. cpu-common.h
  59. cpu-defs.h
  60. cpu-exec.c
  61. create_config
  62. cris-dis.c
  63. curses.c
  64. curses_keys.h
  65. cutils.c
  66. d3des.c
  67. d3des.h
  68. def-helper.h
  69. device_tree.c
  70. device_tree.h
  71. dis-asm.h
  72. disas.c
  73. disas.h
  74. dma-helpers.c
  75. dma.h
  76. dyngen-exec.h
  77. elf.h
  78. elf_ops.h
  79. envlist.c
  80. envlist.h
  81. exec-all.h
  82. exec.c
  83. feature_to_c.sh
  84. gdbstub.c
  85. gdbstub.h
  86. gen-icount.h
  87. host-utils.c
  88. host-utils.h
  89. hostregs_helper.h
  90. hpet.h
  91. hppa-dis.c
  92. hppa.ld
  93. hxtool
  94. i386-dis.c
  95. i386.ld
  96. ia64.ld
  97. ioport-user.c
  98. ioport.c
  99. ioport.h
  100. keymaps.c
  101. keymaps.h
  102. kqemu.c
  103. kqemu.h
  104. kvm-all.c
  105. kvm.h
  106. libfdt_env.h
  107. LICENSE
  108. loader.c
  109. m68k-dis.c
  110. m68k-semi.c
  111. m68k.ld
  112. MAINTAINERS
  113. Makefile
  114. Makefile.hw
  115. Makefile.target
  116. microblaze-dis.c
  117. migration-exec.c
  118. migration-tcp.c
  119. migration-unix.c
  120. migration.c
  121. migration.h
  122. mips-dis.c
  123. mips.ld
  124. module.c
  125. module.h
  126. monitor.c
  127. monitor.h
  128. nbd.c
  129. nbd.h
  130. net-checksum.c
  131. net.c
  132. net.h
  133. osdep.c
  134. osdep.h
  135. path.c
  136. pci-ids.txt
  137. posix-aio-compat.c
  138. posix-aio-compat.h
  139. ppc-dis.c
  140. ppc.ld
  141. ppc64.ld
  142. qemu-aio.h
  143. qemu-binfmt-conf.sh
  144. qemu-char.c
  145. qemu-char.h
  146. qemu-common.h
  147. qemu-config.c
  148. qemu-config.h
  149. qemu-doc.texi
  150. qemu-img-cmds.hx
  151. qemu-img.c
  152. qemu-img.texi
  153. qemu-io.c
  154. qemu-lock.h
  155. qemu-log.h
  156. qemu-malloc.c
  157. qemu-monitor.hx
  158. qemu-nbd.c
  159. qemu-nbd.texi
  160. qemu-option.c
  161. qemu-option.h
  162. qemu-options.hx
  163. qemu-sockets.c
  164. qemu-tech.texi
  165. qemu-thread.c
  166. qemu-thread.h
  167. qemu-timer.h
  168. qemu-tool.c
  169. qemu.sasl
  170. qemu_socket.h
  171. readline.c
  172. readline.h
  173. README
  174. rules.mak
  175. s390-dis.c
  176. s390.ld
  177. savevm.c
  178. sdl.c
  179. sdl_keysym.h
  180. sdl_zoom.c
  181. sdl_zoom.h
  182. sdl_zoom_template.h
  183. sh4-dis.c
  184. softmmu-semi.h
  185. softmmu_defs.h
  186. softmmu_exec.h
  187. softmmu_header.h
  188. softmmu_template.h
  189. sparc-dis.c
  190. sparc.ld
  191. sparc64.ld
  192. sys-queue.h
  193. sysemu.h
  194. tap-win32.c
  195. targphys.h
  196. texi2pod.pl
  197. thunk.c
  198. thunk.h
  199. TODO
  200. tool-osdep.c
  201. translate-all.c
  202. uboot_image.h
  203. usb-bsd.c
  204. usb-linux.c
  205. usb-stub.c
  206. VERSION
  207. vgafont.h
  208. vl.c
  209. vnc-auth-sasl.c
  210. vnc-auth-sasl.h
  211. vnc-auth-vencrypt.c
  212. vnc-auth-vencrypt.h
  213. vnc-tls.c
  214. vnc-tls.h
  215. vnc.c
  216. vnc.h
  217. vnc_keysym.h
  218. vnchextile.h
  219. x86_64.ld
  220. x_keymap.c
  221. x_keymap.h