#define STATIC_BRIDGE_FDB_ENTRIES_PER_NETWORK_MAX 1024U
-/* remove and FDB entry. */
-BridgeFDB *bridge_fdb_free(BridgeFDB *fdb) {
+static BridgeFDB* bridge_fdb_free(BridgeFDB *fdb) {
if (!fdb)
return NULL;
DEFINE_SECTION_CLEANUP_FUNCTIONS(BridgeFDB, bridge_fdb_free);
-/* create a new FDB entry or get an existing one. */
+DEFINE_PRIVATE_HASH_OPS_WITH_VALUE_DESTRUCTOR(
+ bridge_fdb_hash_ops_by_section,
+ ConfigSection, config_section_hash_func, config_section_compare_func,
+ BridgeFDB, bridge_fdb_free);
+
static int bridge_fdb_new_static(
Network *network,
const char *filename,
.ntf_flags = NEIGHBOR_CACHE_ENTRY_FLAGS_SELF,
};
- r = hashmap_ensure_put(&network->bridge_fdb_entries_by_section, &config_section_hash_ops, fdb->section, fdb);
+ r = hashmap_ensure_put(&network->bridge_fdb_entries_by_section, &bridge_fdb_hash_ops_by_section, fdb->section, fdb);
if (r < 0)
return r;
/* return allocated FDB structure. */
*ret = TAKE_PTR(fdb);
-
return 0;
}
int outgoing_ifindex;
} BridgeFDB;
-BridgeFDB *bridge_fdb_free(BridgeFDB *fdb);
-
void network_drop_invalid_bridge_fdb_entries(Network *network);
int link_request_static_bridge_fdb(Link *link);
#include "networkd-manager.h"
#include "networkd-network.h"
#include "networkd-queue.h"
+#include "networkd-util.h"
#include "string-util.h"
#include "vlan-util.h"
#define STATIC_BRIDGE_MDB_ENTRIES_PER_NETWORK_MAX 1024U
-/* remove MDB entry. */
-BridgeMDB *bridge_mdb_free(BridgeMDB *mdb) {
+static BridgeMDB* bridge_mdb_free(BridgeMDB *mdb) {
if (!mdb)
return NULL;
DEFINE_SECTION_CLEANUP_FUNCTIONS(BridgeMDB, bridge_mdb_free);
-/* create a new MDB entry or get an existing one. */
+DEFINE_PRIVATE_HASH_OPS_WITH_VALUE_DESTRUCTOR(
+ bridge_mdb_hash_ops_by_section,
+ ConfigSection, config_section_hash_func, config_section_compare_func,
+ BridgeMDB, bridge_mdb_free);
+
static int bridge_mdb_new_static(
Network *network,
const char *filename,
.type = _BRIDGE_MDB_ENTRY_TYPE_INVALID,
};
- r = hashmap_ensure_put(&network->bridge_mdb_entries_by_section, &config_section_hash_ops, mdb->section, mdb);
+ r = hashmap_ensure_put(&network->bridge_mdb_entries_by_section, &bridge_mdb_hash_ops_by_section, mdb->section, mdb);
if (r < 0)
return r;
#include "conf-parser.h"
#include "in-addr-util.h"
-#include "networkd-util.h"
typedef struct Link Link;
typedef struct Network Network;
uint16_t vlan_id;
} BridgeMDB;
-BridgeMDB *bridge_mdb_free(BridgeMDB *mdb);
-
void network_drop_invalid_bridge_mdb_entries(Network *network);
int link_request_static_bridge_mdb(Link *link);
ordered_hashmap_free(network->addresses_by_section);
hashmap_free(network->routes_by_section);
ordered_hashmap_free(network->nexthops_by_section);
- hashmap_free_with_destructor(network->bridge_fdb_entries_by_section, bridge_fdb_free);
- hashmap_free_with_destructor(network->bridge_mdb_entries_by_section, bridge_mdb_free);
+ hashmap_free(network->bridge_fdb_entries_by_section);
+ hashmap_free(network->bridge_mdb_entries_by_section);
ordered_hashmap_free(network->neighbors_by_section);
hashmap_free(network->address_labels_by_section);
hashmap_free(network->prefixes_by_section);