summaryrefslogtreecommitdiff
path: root/lib/mac-learning.h
diff options
context:
space:
mode:
authorJesse Gross <jesse@nicira.com>2009-11-06 17:13:51 -0800
committerJesse Gross <jesse@nicira.com>2009-11-10 13:37:08 -0800
commitf2d7fd66cf51b83acbe509f8ef6d4b34538d0646 (patch)
tree6bd64d88ec02cfad33c57b9171a66f367282f06b /lib/mac-learning.h
parent93dfc06772a722abf3362606307bab9a9bf33292 (diff)
downloadopenvswitch-f2d7fd66cf51b83acbe509f8ef6d4b34538d0646.tar.gz
mirroring: Allow learning to be disabled on a VLAN.
RSPAN does not work properly unless MAC learning for the VLAN is disabled on all switches between the origin and monitoring point. This allows learning to be disabled on a given VLAN so vSwitch can acts as an intermediate switch. Feature #2136
Diffstat (limited to 'lib/mac-learning.h')
-rw-r--r--lib/mac-learning.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/mac-learning.h b/lib/mac-learning.h
index e2ee74ba4..ed843cd45 100644
--- a/lib/mac-learning.h
+++ b/lib/mac-learning.h
@@ -52,10 +52,13 @@ struct mac_learning {
struct list table[MAC_HASH_SIZE]; /* Hash table. */
struct mac_entry entries[MAC_MAX]; /* All entries. */
uint32_t secret; /* Secret for */
+ unsigned long *non_learning_vlans; /* Bitmap of learning disabled VLANs. */
};
struct mac_learning *mac_learning_create(void);
void mac_learning_destroy(struct mac_learning *);
+bool mac_learning_set_disabled_vlans(struct mac_learning *,
+ unsigned long *bitmap);
tag_type mac_learning_learn(struct mac_learning *,
const uint8_t src[ETH_ADDR_LEN], uint16_t vlan,
uint16_t src_port);