1*4dc78e53SAndroid Build Coastguard Worker /* SPDX-License-Identifier: LGPL-2.1-only */ 2*4dc78e53SAndroid Build Coastguard Worker 3*4dc78e53SAndroid Build Coastguard Worker #ifndef NETLINK_MDB_H_ 4*4dc78e53SAndroid Build Coastguard Worker #define NETLINK_MDB_H_ 5*4dc78e53SAndroid Build Coastguard Worker 6*4dc78e53SAndroid Build Coastguard Worker #include <netlink/netlink.h> 7*4dc78e53SAndroid Build Coastguard Worker #include <netlink/cache.h> 8*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link.h> 9*4dc78e53SAndroid Build Coastguard Worker 10*4dc78e53SAndroid Build Coastguard Worker #ifdef __cplusplus 11*4dc78e53SAndroid Build Coastguard Worker extern "C" { 12*4dc78e53SAndroid Build Coastguard Worker #endif 13*4dc78e53SAndroid Build Coastguard Worker 14*4dc78e53SAndroid Build Coastguard Worker struct rtnl_mdb; 15*4dc78e53SAndroid Build Coastguard Worker struct rtnl_mdb_entry; 16*4dc78e53SAndroid Build Coastguard Worker 17*4dc78e53SAndroid Build Coastguard Worker struct rtnl_mdb *rtnl_mdb_alloc(void); 18*4dc78e53SAndroid Build Coastguard Worker void rtnl_mdb_put(struct rtnl_mdb *mdb); 19*4dc78e53SAndroid Build Coastguard Worker 20*4dc78e53SAndroid Build Coastguard Worker int rtnl_mdb_alloc_cache(struct nl_sock *sk, struct nl_cache **result); 21*4dc78e53SAndroid Build Coastguard Worker int rtnl_mdb_alloc_cache_flags(struct nl_sock *sock, 22*4dc78e53SAndroid Build Coastguard Worker struct nl_cache **result, 23*4dc78e53SAndroid Build Coastguard Worker unsigned int flags); 24*4dc78e53SAndroid Build Coastguard Worker 25*4dc78e53SAndroid Build Coastguard Worker uint32_t rtnl_mdb_get_ifindex(struct rtnl_mdb *mdb); 26*4dc78e53SAndroid Build Coastguard Worker void rtnl_mdb_add_entry(struct rtnl_mdb *mdb, 27*4dc78e53SAndroid Build Coastguard Worker struct rtnl_mdb_entry *_entry); 28*4dc78e53SAndroid Build Coastguard Worker 29*4dc78e53SAndroid Build Coastguard Worker void rtnl_mdb_foreach_entry(struct rtnl_mdb *mdb, 30*4dc78e53SAndroid Build Coastguard Worker void (*cb)(struct rtnl_mdb_entry *, void *), 31*4dc78e53SAndroid Build Coastguard Worker void *arg); 32*4dc78e53SAndroid Build Coastguard Worker 33*4dc78e53SAndroid Build Coastguard Worker int rtnl_mdb_entry_get_ifindex(struct rtnl_mdb_entry *mdb_entry); 34*4dc78e53SAndroid Build Coastguard Worker int rtnl_mdb_entry_get_vid(struct rtnl_mdb_entry *mdb_entry); 35*4dc78e53SAndroid Build Coastguard Worker int rtnl_mdb_entry_get_state(struct rtnl_mdb_entry *mdb_entry); 36*4dc78e53SAndroid Build Coastguard Worker struct nl_addr *rtnl_mdb_entry_get_addr(struct rtnl_mdb_entry 37*4dc78e53SAndroid Build Coastguard Worker *mdb_entry); 38*4dc78e53SAndroid Build Coastguard Worker uint16_t rtnl_mdb_entry_get_proto(struct rtnl_mdb_entry *mdb_entry); 39*4dc78e53SAndroid Build Coastguard Worker #ifdef __cplusplus 40*4dc78e53SAndroid Build Coastguard Worker } 41*4dc78e53SAndroid Build Coastguard Worker #endif 42*4dc78e53SAndroid Build Coastguard Worker #endif 43