summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/netlink-types.h7
-rw-r--r--include/netlink/genl/ctrl.h3
-rw-r--r--include/netlink/genl/family.h4
-rw-r--r--include/netlink/socket.h10
4 files changed, 24 insertions, 0 deletions
diff --git a/include/netlink-types.h b/include/netlink-types.h
index 0d00593..65f7f6c 100644
--- a/include/netlink-types.h
+++ b/include/netlink-types.h
@@ -69,6 +69,13 @@ struct nl_addr
#define GENL_OP_HAS_DOIT 2
#define GENL_OP_HAS_DUMPIT 4
+struct genl_family_grp {
+ struct genl_family *family; /* private */
+ struct nl_list_head list; /* private */
+ char name[GENL_NAMSIZ];
+ u_int32_t id;
+};
+
struct genl_family_op
{
uint32_t o_id;
diff --git a/include/netlink/genl/ctrl.h b/include/netlink/genl/ctrl.h
index 1ae62f4..26a0a99 100644
--- a/include/netlink/genl/ctrl.h
+++ b/include/netlink/genl/ctrl.h
@@ -29,6 +29,9 @@ extern struct genl_family * genl_ctrl_search_by_name(struct nl_cache *,
const char *);
extern int genl_ctrl_resolve(struct nl_sock *,
const char *);
+extern int genl_ctrl_resolve_grp(struct nl_sock *sk,
+ const char *family,
+ const char *grp);
#ifdef __cplusplus
}
diff --git a/include/netlink/genl/family.h b/include/netlink/genl/family.h
index bdce09d..777c16e 100644
--- a/include/netlink/genl/family.h
+++ b/include/netlink/genl/family.h
@@ -39,6 +39,7 @@ struct genl_family
uint32_t gf_maxattr;
struct nl_list_head gf_ops;
+ struct nl_list_head gf_mc_grps;
};
@@ -47,6 +48,9 @@ extern void genl_family_put(struct genl_family *);
extern int genl_family_add_op(struct genl_family *,
int, int);
+extern int genl_family_add_grp(struct genl_family *,
+ uint32_t , const char *);
+
/**
* @name Attributes
diff --git a/include/netlink/socket.h b/include/netlink/socket.h
index 9f7f422..bcb934c 100644
--- a/include/netlink/socket.h
+++ b/include/netlink/socket.h
@@ -166,6 +166,16 @@ static inline void nl_socket_disable_msg_peek(struct nl_sock *sk)
sk->s_flags &= ~NL_MSG_PEEK;
}
+static inline uint32_t nl_socket_get_peer_groups(struct nl_sock *sk)
+{
+ return sk->s_peer.nl_groups;
+}
+
+static inline void nl_socket_set_peer_groups(struct nl_sock *sk, uint32_t groups)
+{
+ sk->s_peer.nl_groups = groups;
+}
+
/**
* @name Callback Handler
* @{