/* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once #include "conf-parser.h" #include "netdev.h" #define LINK_BRIDGE_PORT_PRIORITY_INVALID 128U #define LINK_BRIDGE_PORT_PRIORITY_MAX 63U typedef struct Bridge { NetDev meta; int mcast_querier; int mcast_snooping; int vlan_filtering; int vlan_protocol; int stp; uint16_t priority; uint16_t group_fwd_mask; uint16_t default_pvid; uint8_t igmp_version; usec_t forward_delay; usec_t hello_time; usec_t max_age; usec_t ageing_time; } Bridge; typedef enum MulticastRouter { MULTICAST_ROUTER_NONE, MULTICAST_ROUTER_TEMPORARY_QUERY, MULTICAST_ROUTER_PERMANENT, MULTICAST_ROUTER_TEMPORARY, _MULTICAST_ROUTER_MAX, _MULTICAST_ROUTER_INVALID = -EINVAL, } MulticastRouter; DEFINE_NETDEV_CAST(BRIDGE, Bridge); extern const NetDevVTable bridge_vtable; const char* multicast_router_to_string(MulticastRouter i) _const_; MulticastRouter multicast_router_from_string(const char *s) _pure_; CONFIG_PARSER_PROTOTYPE(config_parse_multicast_router); CONFIG_PARSER_PROTOTYPE(config_parse_bridge_igmp_version); CONFIG_PARSER_PROTOTYPE(config_parse_bridge_port_priority);