-----BEGIN PGP SIGNATURE-----

Version: GnuPG v1
 
 iQEcBAABAgAGBQJYKrs3AAoJEO8Ells5jWIRb1EH/3bAz/HiOl5COURpvwvMgq0E
 J3Mr91FPrgepHSeB3cqBBRNqDT2B1gx7DO5dWCQSFMxfGlZ1VX12MGC8ZtBK+8US
 AxNqfkzLM5tDFGn6LN4OZgV6uEJhKwSPzyasOXHzwZ7+xWG8RQ8pQc+Lj5PlCcqw
 esrm0EN7mwrw76RnDjDaDsUMiVxCZ0GBo3vWhEsXpCjUing14OFKk4pvQm0uIsac
 RL5R9xAGmTddN/0cKPG8FXh5xAOb1g/7HPHj97KIc4JrDrK1vrCF4ft6TqIOErGm
 OJyNX1o65+7HDsfz6vn2Bmiin4UN1mSQ5paCptS8Z5lyGGY6dQPs51dYThCQZ3I=
 =VMkX
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'jasowang/tags/net-pull-request' into staging

# gpg: Signature made Tue 15 Nov 2016 07:37:27 AM GMT
# gpg:                using RSA key 0xEF04965B398D6211
# gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 215D 46F4 8246 689E C77F  3562 EF04 965B 398D 6211

* jasowang/tags/net-pull-request:
  docs: fix COLO architecture diagram
  net: fix sending of data with -net socket, listen backend
  net: skip virtio-net config of deleted nic's peers

Message-id: 1479195830-4725-1-git-send-email-jasowang@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2016-11-15 12:07:53 +00:00
commit 97e53cf82c
4 changed files with 44 additions and 38 deletions

View file

@ -41,41 +41,43 @@ identical responses to all client requests. Once the differences in the outputs
are detected between the PVM and SVM, COLO withholds transmission of the
outbound packets until it has successfully synchronized the PVM state to the SVM.
Primary Node Secondary Node
+------------+ +-----------------------+ +------------------------+ +------------+
| | | HeartBeat |<----->| HeartBeat | | |
| Primary VM | +-----------|-----------+ +-----------|------------+ |Secondary VM|
| | | | | |
| | +-----------|-----------+ +-----------|------------+ | |
| | |QEMU +---v----+ | |QEMU +----v---+ | | |
| | | |Failover| | | |Failover| | | |
| | | +--------+ | | +--------+ | | |
| | | +---------------+ | | +---------------+ | | |
| | | | VM Checkpoint |-------------->| VM Checkpoint | | | |
| | | +---------------+ | | +---------------+ | | |
| | | | | | | |
|Requests<---------------------------^------------------------------------------>Requests|
|Responses----------------------\ /--|--------------\ /------------------------Responses|
| | | | | | | | | | | | |
| | | +-----------+ | | | | | | | +------------+ | | |
| | | | COLO disk | | | | | | | | | COLO disk | | | |
| | | | Manager |-|-|--|--------------|--|->| Manager | | | |
| | | +|----------+ | | | | | | | +-----------|+ | | |
| | | | | | | | | | | | | | |
+------------+ +--|------------|-|--|--+ +---|--|--------------|--+ +------------+
| | | | | | |
+-------------+ | +----------v-v--|--+ +---|--v-----------+ | +-------------+
| VM Monitor | | | COLO Proxy | | COLO Proxy | | | VM Monitor |
| | | |(compare packet) | | (adjust sequence)| | | |
+-------------+ | +----------|----^--+ +------------------+ | +-------------+
| | | |
+------------------|------------|----|--+ +---------------------|------------------+
| Kernel | | | | | Kernel | |
+------------------|------------|----|--+ +---------------------|------------------+
| | | |
+--------------v+ +--------v----|--+ +------------------+ +v-------------+
| Storage | |External Network| | External Network | | Storage |
+---------------+ +----------------+ +------------------+ +--------------+
Primary Node Secondary Node
+------------+ +-----------------------+ +------------------------+ +------------+
| | | HeartBeat +<----->+ HeartBeat | | |
| Primary VM | +-----------+-----------+ +-----------+------------+ |Secondary VM|
| | | | | |
| | +-----------|-----------+ +-----------|------------+ | |
| | |QEMU +---v----+ | |QEMU +----v---+ | | |
| | | |Failover| | | |Failover| | | |
| | | +--------+ | | +--------+ | | |
| | | +---------------+ | | +---------------+ | | |
| | | | VM Checkpoint +-------------->+ VM Checkpoint | | | |
| | | +---------------+ | | +---------------+ | | |
|Requests<--------------------------\ /-----------------\ /--------------------->Requests|
| | | ^ ^ | | | | | | |
|Responses+---------------------\ /-|-|------------\ /-------------------------+Responses|
| | | | | | | | | | | | | | | |
| | | +-----------+ | | | | | | | | | | +----------+ | | |
| | | | COLO disk | | | | | | | | | | | | COLO disk| | | |
| | | | Manager +---------------------------->| Manager | | | |
| | | ++----------+ v v | | | | | v v | +---------++ | | |
| | | |+-----------+-+-+-++| | ++-+--+-+---------+ | | | |
| | | || COLO Proxy || | | COLO Proxy | | | | |
| | | || (compare packet || | |(adjust sequence | | | | |
| | | ||and mirror packet)|| | | and ACK) | | | | |
| | | |+------------+---+-+| | +-----------------+ | | | |
+------------+ +-----------------------+ +------------------------+ +------------+
+------------+ | | | | +------------+
| VM Monitor | | | | | | VM Monitor |
+------------+ | | | | +------------+
+---------------------------------------+ +----------------------------------------+
| Kernel | | | | | Kernel | |
+---------------------------------------+ +----------------------------------------+
| | | |
+--------------v+ +---------v---+--+ +------------------+ +v-------------+
| Storage | |External Network| | External Network | | Storage |
+---------------+ +----------------+ +------------------+ +--------------+
== Components introduction ==

View file

@ -508,6 +508,10 @@ static void virtio_net_set_queues(VirtIONet *n)
int i;
int r;
if (n->nic->peer_deleted) {
return;
}
for (i = 0; i < n->max_queues; i++) {
if (i < n->curr_queues) {
r = peer_attach(n, i);

View file

@ -1653,9 +1653,8 @@ int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size)
if (rs->index >= rs->packet_len) {
rs->index = 0;
rs->state = 0;
if (rs->finalize) {
rs->finalize(rs);
}
assert(rs->finalize);
rs->finalize(rs);
}
break;
}

View file

@ -511,6 +511,7 @@ static int net_socket_listen_init(NetClientState *peer,
s->fd = -1;
s->listen_fd = ret;
s->nc.link_down = true;
net_socket_rs_init(&s->rs, net_socket_rs_finalize);
qemu_set_fd_handler(s->listen_fd, net_socket_accept, NULL, s);
qapi_free_SocketAddress(saddr);