/* SPDX-License-Identifier: LGPL-2.1-only */ #ifndef NETLINK_MDB_H_ #define NETLINK_MDB_H_ #include #include #include #ifdef __cplusplus extern "C" { #endif struct rtnl_mdb; struct rtnl_mdb_entry; struct rtnl_mdb *rtnl_mdb_alloc(void); void rtnl_mdb_put(struct rtnl_mdb *mdb); int rtnl_mdb_alloc_cache(struct nl_sock *sk, struct nl_cache **result); int rtnl_mdb_alloc_cache_flags(struct nl_sock *sock, struct nl_cache **result, unsigned int flags); uint32_t rtnl_mdb_get_ifindex(struct rtnl_mdb *mdb); void rtnl_mdb_add_entry(struct rtnl_mdb *mdb, struct rtnl_mdb_entry *_entry); void rtnl_mdb_foreach_entry(struct rtnl_mdb *mdb, void (*cb)(struct rtnl_mdb_entry *, void *), void *arg); int rtnl_mdb_entry_get_ifindex(struct rtnl_mdb_entry *mdb_entry); int rtnl_mdb_entry_get_vid(struct rtnl_mdb_entry *mdb_entry); int rtnl_mdb_entry_get_state(struct rtnl_mdb_entry *mdb_entry); struct nl_addr *rtnl_mdb_entry_get_addr(struct rtnl_mdb_entry *mdb_entry); uint16_t rtnl_mdb_entry_get_proto(struct rtnl_mdb_entry *mdb_entry); #ifdef __cplusplus } #endif #endif