[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH COLO-Frame v17 31/34] net: Add notifier/callback for
From: |
zhanghailiang |
Subject: |
[Qemu-devel] [PATCH COLO-Frame v17 31/34] net: Add notifier/callback for netdev init |
Date: |
Fri, 3 Jun 2016 15:52:43 +0800 |
We can register some callback for this notifier,
this will be used by COLO to register a callback which
will add each netdev a buffer filter.
Signed-off-by: zhanghailiang <address@hidden>
Cc: Jason Wang <address@hidden>
Cc: Yang Hongyang <address@hidden>
---
v17:
- Rename netdev_init_add_notifier() to netdev_register_init_notifier()
v16:
- Simplify the codes by using some helpers in QEMU
v14:
- New patch
---
include/net/net.h | 3 +++
net/net.c | 12 ++++++++++++
2 files changed, 15 insertions(+)
diff --git a/include/net/net.h b/include/net/net.h
index a69e382..c5ebab3 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -8,6 +8,7 @@
#include "net/queue.h"
#include "migration/vmstate.h"
#include "qapi-types.h"
+#include "qemu/notify.h"
#define MAC_FMT "%02X:%02X:%02X:%02X:%02X:%02X"
#define MAC_ARG(x) ((uint8_t *)(x))[0], ((uint8_t *)(x))[1], \
@@ -194,6 +195,8 @@ struct NICInfo {
int nvectors;
};
+void netdev_register_init_notifier(Notifier *notify);
+
extern int nb_nics;
extern NICInfo nd_table[MAX_NICS];
extern const char *host_net_devices[];
diff --git a/net/net.c b/net/net.c
index 5f3e5a9..b19f107 100644
--- a/net/net.c
+++ b/net/net.c
@@ -56,6 +56,9 @@
static VMChangeStateEntry *net_change_state_entry;
static QTAILQ_HEAD(, NetClientState) net_clients;
+static NotifierList netdev_init_notifiers =
+ NOTIFIER_LIST_INITIALIZER(netdev_init_notifiers);
+
const char *host_net_devices[] = {
"tap",
"socket",
@@ -929,6 +932,10 @@ static int net_init_nic(const NetClientOptions *opts,
const char *name,
return idx;
}
+void netdev_register_init_notifier(Notifier *notify)
+{
+ notifier_list_add(&netdev_init_notifiers, notify);
+}
static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND__MAX])(
const NetClientOptions *opts,
@@ -1015,6 +1022,11 @@ static int net_client_init1(const void *object, int
is_netdev, Error **errp)
}
return -1;
}
+ if (is_netdev) {
+ const Netdev *netdev = object;
+
+ notifier_list_notify(&netdev_init_notifiers, netdev->id);
+ }
return 0;
}
--
1.8.3.1
- [Qemu-devel] [PATCH COLO-Frame v17 18/34] COLO: Implement failover work for Primary VM, (continued)
- [Qemu-devel] [PATCH COLO-Frame v17 18/34] COLO: Implement failover work for Primary VM, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 22/34] COLO failover: Don't do failover during loading VM's state, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 29/34] COLO: Split qemu_savevm_state_begin out of checkpoint process, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 28/34] COLO: Separate the process of saving/loading ram and device state, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 25/34] savevm: Introduce two helper functions for save/find loadvm_handlers entry, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 19/34] COLO: Implement failover work for Secondary VM, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 24/34] COLO: Update the global runstate after going into colo state, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 05/34] migration: Integrate COLO checkpoint process into loadvm, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 16/34] COLO failover: Introduce a new command to trigger a failover, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 17/34] COLO failover: Introduce state to record failover process, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 31/34] net: Add notifier/callback for netdev init,
zhanghailiang <=
- [Qemu-devel] [PATCH COLO-Frame v17 34/34] COLO: Add block replication into colo process, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 30/34] filter-buffer: Accept zero interval, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 23/34] COLO: Process shutdown command for VM in COLO state, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 20/34] qmp event: Add COLO_EXIT event to notify users while exited from COLO, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 33/34] COLO: Control the status of buffer filters for PVM, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 32/34] COLO/filter: Add each netdev a buffer filter, zhanghailiang, 2016/06/03
- [Qemu-devel] [PATCH COLO-Frame v17 26/34] migration/savevm: Add new helpers to process the different stages of loadvm, zhanghailiang, 2016/06/03
- Re: [Qemu-devel] [PATCH COLO-Frame v17 00/34] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT), Dr. David Alan Gilbert, 2016/06/07