X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fmac-learning.c;h=a9d414d2fa449081a5691af25f7ca65bebdf7360;hb=a4230dedddd1909f84947b9c6cdf88a23e10a301;hp=3f1db14613b136f640c3c44195b422e54d353b02;hpb=58fda1dab104041fc693032475ec4662c1a52849;p=openvswitch diff --git a/lib/mac-learning.c b/lib/mac-learning.c index 3f1db146..a9d414d2 100644 --- a/lib/mac-learning.c +++ b/lib/mac-learning.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2010 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -130,7 +130,7 @@ mac_learning_create(void) list_push_front(&ml->free, &s->lru_node); } ml->secret = random_uint32(); - ml->non_learning_vlans = NULL; + ml->flood_vlans = NULL; return ml; } @@ -139,24 +139,24 @@ void mac_learning_destroy(struct mac_learning *ml) { if (ml) { - bitmap_free(ml->non_learning_vlans); + bitmap_free(ml->flood_vlans); } free(ml); } -/* Provides a bitmap of VLANs which have learning disabled. It takes - * ownership of the bitmap. Returns true if the set has changed from - * the previous value. */ +/* Provides a bitmap of VLANs which have learning disabled, that is, VLANs on + * which all packets are flooded. It takes ownership of the bitmap. Returns + * true if the set has changed from the previous value. */ bool -mac_learning_set_disabled_vlans(struct mac_learning *ml, unsigned long *bitmap) +mac_learning_set_flood_vlans(struct mac_learning *ml, unsigned long *bitmap) { bool ret = (bitmap == NULL - ? ml->non_learning_vlans != NULL - : (ml->non_learning_vlans == NULL - || !bitmap_equal(bitmap, ml->non_learning_vlans, 4096))); + ? ml->flood_vlans != NULL + : (ml->flood_vlans == NULL + || !bitmap_equal(bitmap, ml->flood_vlans, 4096))); - bitmap_free(ml->non_learning_vlans); - ml->non_learning_vlans = bitmap; + bitmap_free(ml->flood_vlans); + ml->flood_vlans = bitmap; return ret; } @@ -164,8 +164,7 @@ mac_learning_set_disabled_vlans(struct mac_learning *ml, unsigned long *bitmap) static bool is_learning_vlan(const struct mac_learning *ml, uint16_t vlan) { - return !(ml->non_learning_vlans - && bitmap_is_set(ml->non_learning_vlans, vlan)); + return !(ml->flood_vlans && bitmap_is_set(ml->flood_vlans, vlan)); } /* Attempts to make 'ml' learn from the fact that a frame from 'src_mac' was