mac-learning: Make data structures public.
[sliver-openvswitch.git] / lib / mac-learning.c
index f036680..0c169d0 100644 (file)
 #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)
 {