return 0;
}
+static int mdb_entry_verify(MdbEntry *mdb_entry) {
+ if (section_is_invalid(mdb_entry->section))
+ return -EINVAL;
+
+ if (mdb_entry->family == AF_UNSPEC)
+ return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
+ "%s: [BridgeMDB] section without MulticastGroupAddress= field configured. "
+ "Ignoring [BridgeMDB] section from line %u.",
+ mdb_entry->section->filename, mdb_entry->section->line);
+
+ if (!in_addr_is_multicast(mdb_entry->family, &mdb_entry->group_addr))
+ return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
+ "%s: MulticastGroupAddress= is not a multicast address. "
+ "Ignoring [BridgeMDB] section from line %u.",
+ mdb_entry->section->filename, mdb_entry->section->line);
+
+ if (mdb_entry->family == AF_INET) {
+ if (in4_addr_is_local_multicast(&mdb_entry->group_addr.in))
+ return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
+ "%s: MulticastGroupAddress= is a local multicast address. "
+ "Ignoring [BridgeMDB] section from line %u.",
+ mdb_entry->section->filename, mdb_entry->section->line);
+ } else {
+ if (in6_addr_is_link_local_all_nodes(&mdb_entry->group_addr.in6))
+ return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
+ "%s: MulticastGroupAddress= is the multicast all nodes address. "
+ "Ignoring [BridgeMDB] section from line %u.",
+ mdb_entry->section->filename, mdb_entry->section->line);
+ }
+
+ return 0;
+}
+
+void network_verify_mdb_entries(Network *network) {
+ MdbEntry *mdb_entry;
+
+ assert(network);
+
+ HASHMAP_FOREACH(mdb_entry, network->mdb_entries_by_section)
+ if (mdb_entry_verify(mdb_entry) < 0)
+ mdb_entry_free(mdb_entry);
+}
+
/* parse the VLAN Id from config files. */
int config_parse_mdb_vlan_id(
const char *unit,
return 0;
}
-
-int mdb_entry_verify(MdbEntry *mdb_entry) {
- if (section_is_invalid(mdb_entry->section))
- return -EINVAL;
-
- if (mdb_entry->family == AF_UNSPEC)
- return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
- "%s: [BridgeMDB] section without MulticastGroupAddress= field configured. "
- "Ignoring [BridgeMDB] section from line %u.",
- mdb_entry->section->filename, mdb_entry->section->line);
-
- if (!in_addr_is_multicast(mdb_entry->family, &mdb_entry->group_addr))
- return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
- "%s: MulticastGroupAddress= is not a multicast address. "
- "Ignoring [BridgeMDB] section from line %u.",
- mdb_entry->section->filename, mdb_entry->section->line);
-
- if (mdb_entry->family == AF_INET) {
- if (in4_addr_is_local_multicast(&mdb_entry->group_addr.in))
- return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
- "%s: MulticastGroupAddress= is a local multicast address. "
- "Ignoring [BridgeMDB] section from line %u.",
- mdb_entry->section->filename, mdb_entry->section->line);
- } else {
- if (in6_addr_is_link_local_all_nodes(&mdb_entry->group_addr.in6))
- return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
- "%s: MulticastGroupAddress= is the multicast all nodes address. "
- "Ignoring [BridgeMDB] section from line %u.",
- mdb_entry->section->filename, mdb_entry->section->line);
- }
-
- return 0;
-}