xref: /aosp_15_r20/external/libnl/include/netlink/route/mdb.h (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
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