#include "protocol.h"
 #include "mib.h"
 
-/* forward declaration */
-static struct genl_family mptcp_genl_family;
-
 static int pm_nl_pernet_id;
 
 struct mptcp_pm_add_entry {
        return 0;
 }
 
-static int mptcp_nl_fill_addr(struct sk_buff *skb,
-                             struct mptcp_pm_addr_entry *entry)
+int mptcp_nl_fill_addr(struct sk_buff *skb,
+                      struct mptcp_pm_addr_entry *entry)
 {
        struct mptcp_addr_info *addr = &entry->addr;
        struct nlattr *attr;
        nlmsg_free(skb);
 }
 
-static struct genl_family mptcp_genl_family __ro_after_init = {
+struct genl_family mptcp_genl_family __ro_after_init = {
        .name           = MPTCP_PM_NAME,
        .version        = MPTCP_PM_VER,
        .netnsok        = true,
 
 #define mptcp_for_each_subflow_safe(__msk, __subflow, __tmp)                   \
        list_for_each_entry_safe(__subflow, __tmp, &((__msk)->conn_list), node)
 
+extern struct genl_family mptcp_genl_family;
+
 static inline void msk_owned_by_me(const struct mptcp_sock *msk)
 {
        sock_owned_by_me((const struct sock *)msk);
                                     const struct mptcp_options_received *mp_opt);
 void mptcp_fastopen_subflow_synack_set_params(struct mptcp_subflow_context *subflow,
                                              struct request_sock *req);
+int mptcp_nl_fill_addr(struct sk_buff *skb,
+                      struct mptcp_pm_addr_entry *entry);
 
 static inline bool mptcp_pm_should_add_signal(struct mptcp_sock *msk)
 {