X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2FINTERNALS;h=6c1bdc16bf65f0201c5a58e1d692d2dcff3c3ddf;hb=16472256190e083258bfcf6a4ba4f74cb412fcd4;hp=5873dc1773fd657280ef156ec50c427cd58e0351;hpb=3a55ef14838f9552fa824b90599aa2a6493bb04a;p=openvswitch diff --git a/vswitchd/INTERNALS b/vswitchd/INTERNALS index 5873dc17..6c1bdc16 100644 --- a/vswitchd/INTERNALS +++ b/vswitchd/INTERNALS @@ -106,12 +106,13 @@ Bond Packet Output ------------------ When a packet is sent out a bond port, the bond slave actually used is -selected based on the packet's source MAC (see choose_output_iface()). -In particular, the source MAC is hashed into one of 256 values, and -that value is looked up in a hash table (the "bond hash") kept in the -"bond_hash" member of struct port. The hash table entry identifies a -bond slave. If no bond slave has yet been chosen for that hash table -entry, vswitchd chooses one arbitrarily. +selected based on the packet's source MAC and VLAN tag (see +choose_output_iface()). In particular, the source MAC and VLAN tag +are hashed into one of 256 values, and that value is looked up in a +hash table (the "bond hash") kept in the "bond_hash" member of struct +port. The hash table entry identifies a bond slave. If no bond slave +has yet been chosen for that hash table entry, vswitchd chooses one +arbitrarily. Every 10 seconds, vswitchd rebalances the bond slaves (see bond_rebalance_port()). To rebalance, vswitchd examines the @@ -121,8 +122,9 @@ more heavily than data sent less recently. It considers each of the slaves in order from most-loaded to least-loaded. If highly loaded slave H is significantly more heavily loaded than the least-loaded slave L, and slave H carries at least two hashes, then vswitchd shifts -one of H's hashes to L. However, vswitchd will not shift a hash from -H to L if that will cause L's load to exceed H's load. +one of H's hashes to L. However, vswitchd will only shift a hash from +H to L if it will decrease the ratio of the load between H and L by at +least 0.1. Currently, "significantly more loaded" means that H must carry at least 1 Mbps more traffic, and that traffic must be at least 3%