mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
record/replay: add network support
This patch adds support of recording and replaying network packets in irount rr mode. Record and replay for network interactions is performed with the network filter. Each backend must have its own instance of the replay filter as follows: -netdev user,id=net1 -device rtl8139,netdev=net1 -object filter-replay,id=replay,netdev=net1 Replay network filter is used to record and replay network packets. While recording the virtual machine this filter puts all packets coming from the outer world into the log. In replay mode packets from the log are injected into the network device. All interactions with network backend in replay mode are disabled. v5 changes: - using iov_to_buf function instead of loop Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
e92fbc753d
commit
646c5478c0
10 changed files with 246 additions and 2 deletions
|
@ -50,6 +50,7 @@ enum ReplayAsyncEventKind {
|
|||
REPLAY_ASYNC_EVENT_INPUT_SYNC,
|
||||
REPLAY_ASYNC_EVENT_CHAR_READ,
|
||||
REPLAY_ASYNC_EVENT_BLOCK,
|
||||
REPLAY_ASYNC_EVENT_NET,
|
||||
REPLAY_ASYNC_COUNT
|
||||
};
|
||||
|
||||
|
@ -161,6 +162,15 @@ void replay_event_char_read_save(void *opaque);
|
|||
/*! Reads char event read from the file. */
|
||||
void *replay_event_char_read_load(void);
|
||||
|
||||
/* Network devices */
|
||||
|
||||
/*! Called to run network event. */
|
||||
void replay_event_net_run(void *opaque);
|
||||
/*! Writes network event to the file. */
|
||||
void replay_event_net_save(void *opaque);
|
||||
/*! Reads network from the file. */
|
||||
void *replay_event_net_load(void);
|
||||
|
||||
/* VMState-related functions */
|
||||
|
||||
/* Registers replay VMState.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue