network backend跟类型无关的实现基本都在net.c中,
全局变量:
vlans 所有vlan的链表,vlan使用VLANState结构表示
non_vlan_clients 不属于任何vlan的networkbackend链表。所有的netdev都在该链表上。
networkbackend的类型使用NetClientInfo结构来表示,其实例则使用VLanClientState表示。
当前一共定义了以下几类NetClient:
typedef enum {
NET_CLIENT_TYPE_NONE,
NET_CLIENT_TYPE_NIC,
NET_CLIENT_TYPE_SLIRP,
NET_CLIENT_TYPE_TAP,
NET_CLIENT_TYPE_SOCKET,
NET_CLIENT_TYPE_VDE,
NET_CLI......
阅读全文