diff options
author | Ben Pfaff <blp@nicira.com> | 2009-06-08 12:20:38 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2009-06-08 12:26:11 -0700 |
commit | 962ff3d674784ff2addac840d8a0bae0e4e9dbd2 (patch) | |
tree | 8dc54d8dab23bcecf5661bdb2755f6253ba29aec /lib/mac-learning.c | |
parent | ce87c728133414f2d49f3e83f67aed5e5a4b7953 (diff) |
mac-learning: Make data structures public.
The vswitchd bonding code needs to iterate through the table entries to
be able to send out gratuitous learning packets when bond slaves go down.
It might be best to create an abstract interface to the MAC learning table,
but this commit does the simpler thing and exposes the data structures in
the header file.
Diffstat (limited to 'lib/mac-learning.c')
-rw-r--r-- | lib/mac-learning.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/lib/mac-learning.c b/lib/mac-learning.c index f0366808..0c169d03 100644 --- a/lib/mac-learning.c +++ b/lib/mac-learning.c @@ -32,33 +32,6 @@ #define THIS_MODULE VLM_mac_learning #include "vlog.h" -#define MAC_HASH_BITS 10 -#define MAC_HASH_MASK (MAC_HASH_SIZE - 1) -#define MAC_HASH_SIZE (1u << MAC_HASH_BITS) - -#define MAC_MAX 1024 - -/* A MAC learning table entry. */ -struct mac_entry { - struct list hash_node; /* Element in a mac_learning 'table' list. */ - struct list lru_node; /* Element in 'lrus' or 'free' list. */ - time_t expires; /* Expiration time. */ - uint8_t mac[ETH_ADDR_LEN]; /* Known MAC address. */ - uint16_t vlan; /* VLAN tag. */ - int port; /* Port on which MAC was most recently seen. */ - tag_type tag; /* Tag for this learning entry. */ -}; - -/* MAC learning table. */ -struct mac_learning { - struct list free; /* Not-in-use entries. */ - struct list lrus; /* In-use entries, least recently used at the - front, most recently used at the back. */ - struct list table[MAC_HASH_SIZE]; /* Hash table. */ - struct mac_entry entries[MAC_MAX]; /* All entries. */ - uint32_t secret; /* Secret for */ -}; - static uint32_t mac_table_hash(const uint8_t mac[ETH_ADDR_LEN], uint16_t vlan) { |