libvirt/docs/schemas
Laine Stump 40961978ee conf: new network bridge device attribute macTableManager
The macTableManager attribute of a network's bridge subelement tells
libvirt how the bridge's MAC address table (used to determine the
egress port for packets) is managed. In the default mode, "kernel",
management is left to the kernel, which usually determines entries in
part by turning on promiscuous mode on all ports of the bridge,
flooding packets to all ports when the correct destination is unknown,
and adding/removing entries to the fdb as it sees incoming traffic
from particular MAC addresses.  In "libvirt" mode, libvirt turns off
learning and flooding on all the bridge ports connected to guest
domain interfaces, and adds/removes entries according to the MAC
addresses in the domain interface configurations. A side effect of
turning off learning and unicast_flood on the ports of a bridge is
that (with Linux kernel 3.17 and newer), the kernel can automatically
turn off promiscuous mode on one or more of the bridge's ports
(usually only the one interface that is used to connect the bridge to
the physical network). The result is better performance (because
packets aren't being flooded to all ports, and can be dropped earlier
when they are of no interest) and slightly better security (a guest
can still send out packets with a spoofed source MAC address, but will
only receive traffic intended for the guest interface's configured MAC
address).

The attribute looks like this in the configuration:

  <network>
    <name>test</name>
    <bridge name='br0' macTableManager='libvirt'/>
    ...

This patch only adds the config knob, documentation, and test
cases. The functionality behind this knob is added in later patches.
2014-12-08 14:41:37 -05:00
..
basictypes.rng storage: Introduce 'managed' for the fchost parent 2014-11-12 10:18:28 -05:00
capability.rng schemas: finish virTristate{Bool,Switch} transition 2014-09-17 16:10:26 +02:00
domain.rng conf: set up for per-grammar overrides in schemas 2014-04-15 21:07:59 +02:00
domaincaps.rng domaincaps: Expose UEFI binary path, if it exists 2014-09-17 16:29:49 +02:00
domaincommon.rng qemu-command: introduce new vgamem attribute for QXL video device 2014-11-24 22:20:13 +01:00
domainsnapshot.rng conf: split <disk> schema into more pieces 2014-04-16 10:45:55 +02:00
interface.rng schemas: finish virTristate{Bool,Switch} transition 2014-09-17 16:10:26 +02:00
Makefile.am Introduce domain_capabilities 2014-07-03 12:22:37 +02:00
network.rng conf: new network bridge device attribute macTableManager 2014-12-08 14:41:37 -05:00
networkcommon.rng Add '<nat>' element to '<forward>' network schemas 2013-09-05 13:45:49 +02:00
nodedev.rng Add unique_id to nodedev output 2014-07-21 12:55:11 -04:00
nwfilter.rng schemas: finish virTristate{Bool,Switch} transition 2014-09-17 16:10:26 +02:00
secret.rng schemas: finish virTristate{Bool,Switch} transition 2014-09-17 16:10:26 +02:00
storagecommon.rng conf: set up for per-grammar overrides in schemas 2014-04-15 21:07:59 +02:00
storagepool.rng storage: Fix logical pool fmt type 2014-09-29 05:59:09 -04:00
storagevol.rng storagevol: add nocow to vol xml 2014-07-16 13:35:20 +02:00