tipc: move netlink policies to netlink.c
Make the c files less cluttered and enable netlink attributes to be shared between files. Signed-off-by: Richard Alpe <richard.alpe@ericsson.com> Reviewed-by: Jon Maloy <jon.maloy@ericsson.com> Acked-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
8dfd329fbc
Коммит
49cc66eaee
|
@ -40,6 +40,7 @@
|
|||
#include "link.h"
|
||||
#include "discover.h"
|
||||
#include "bcast.h"
|
||||
#include "netlink.h"
|
||||
|
||||
#define MAX_ADDR_STR 60
|
||||
|
||||
|
@ -54,23 +55,6 @@ static struct tipc_media * const media_info_array[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static const struct nla_policy
|
||||
tipc_nl_bearer_policy[TIPC_NLA_BEARER_MAX + 1] = {
|
||||
[TIPC_NLA_BEARER_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_BEARER_NAME] = {
|
||||
.type = NLA_STRING,
|
||||
.len = TIPC_MAX_BEARER_NAME
|
||||
},
|
||||
[TIPC_NLA_BEARER_PROP] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_BEARER_DOMAIN] = { .type = NLA_U32 }
|
||||
};
|
||||
|
||||
static const struct nla_policy tipc_nl_media_policy[TIPC_NLA_MEDIA_MAX + 1] = {
|
||||
[TIPC_NLA_MEDIA_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_MEDIA_NAME] = { .type = NLA_STRING },
|
||||
[TIPC_NLA_MEDIA_PROP] = { .type = NLA_NESTED }
|
||||
};
|
||||
|
||||
static void bearer_disable(struct net *net, struct tipc_bearer *b);
|
||||
|
||||
/**
|
||||
|
|
|
@ -192,14 +192,6 @@ struct tipc_link {
|
|||
static const char *link_co_err = "Link tunneling error, ";
|
||||
static const char *link_rst_msg = "Resetting link ";
|
||||
|
||||
/* Properties valid for media, bearar and link */
|
||||
static const struct nla_policy tipc_nl_prop_policy[TIPC_NLA_PROP_MAX + 1] = {
|
||||
[TIPC_NLA_PROP_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_PROP_PRIO] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_PROP_TOL] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_PROP_WIN] = { .type = NLA_U32 }
|
||||
};
|
||||
|
||||
/* Send states for broadcast NACKs
|
||||
*/
|
||||
enum {
|
||||
|
|
|
@ -47,12 +47,6 @@
|
|||
|
||||
#define TIPC_NAMETBL_SIZE 1024 /* must be a power of 2 */
|
||||
|
||||
static const struct nla_policy
|
||||
tipc_nl_name_table_policy[TIPC_NLA_NAME_TABLE_MAX + 1] = {
|
||||
[TIPC_NLA_NAME_TABLE_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_NAME_TABLE_PUBL] = { .type = NLA_NESTED }
|
||||
};
|
||||
|
||||
/**
|
||||
* struct name_info - name sequence publication info
|
||||
* @node_list: circular list of publications made by own node
|
||||
|
|
|
@ -41,11 +41,7 @@
|
|||
#include "socket.h"
|
||||
#include "node.h"
|
||||
#include "bcast.h"
|
||||
|
||||
static const struct nla_policy tipc_nl_net_policy[TIPC_NLA_NET_MAX + 1] = {
|
||||
[TIPC_NLA_NET_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_NET_ID] = { .type = NLA_U32 }
|
||||
};
|
||||
#include "netlink.h"
|
||||
|
||||
/*
|
||||
* The TIPC locking policy is designed to ensure a very fine locking
|
||||
|
|
|
@ -55,6 +55,75 @@ static const struct nla_policy tipc_nl_policy[TIPC_NLA_MAX + 1] = {
|
|||
[TIPC_NLA_NAME_TABLE] = { .type = NLA_NESTED, }
|
||||
};
|
||||
|
||||
const struct nla_policy
|
||||
tipc_nl_name_table_policy[TIPC_NLA_NAME_TABLE_MAX + 1] = {
|
||||
[TIPC_NLA_NAME_TABLE_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_NAME_TABLE_PUBL] = { .type = NLA_NESTED }
|
||||
};
|
||||
|
||||
const struct nla_policy tipc_nl_sock_policy[TIPC_NLA_SOCK_MAX + 1] = {
|
||||
[TIPC_NLA_SOCK_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_SOCK_ADDR] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_SOCK_REF] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_SOCK_CON] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_SOCK_HAS_PUBL] = { .type = NLA_FLAG }
|
||||
};
|
||||
|
||||
const struct nla_policy tipc_nl_net_policy[TIPC_NLA_NET_MAX + 1] = {
|
||||
[TIPC_NLA_NET_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_NET_ID] = { .type = NLA_U32 }
|
||||
};
|
||||
|
||||
const struct nla_policy tipc_nl_link_policy[TIPC_NLA_LINK_MAX + 1] = {
|
||||
[TIPC_NLA_LINK_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_LINK_NAME] = { .type = NLA_STRING,
|
||||
.len = TIPC_MAX_LINK_NAME },
|
||||
[TIPC_NLA_LINK_MTU] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_LINK_BROADCAST] = { .type = NLA_FLAG },
|
||||
[TIPC_NLA_LINK_UP] = { .type = NLA_FLAG },
|
||||
[TIPC_NLA_LINK_ACTIVE] = { .type = NLA_FLAG },
|
||||
[TIPC_NLA_LINK_PROP] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_LINK_STATS] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_LINK_RX] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_LINK_TX] = { .type = NLA_U32 }
|
||||
};
|
||||
|
||||
const struct nla_policy tipc_nl_node_policy[TIPC_NLA_NODE_MAX + 1] = {
|
||||
[TIPC_NLA_NODE_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_NODE_ADDR] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_NODE_UP] = { .type = NLA_FLAG }
|
||||
};
|
||||
|
||||
/* Properties valid for media, bearer and link */
|
||||
const struct nla_policy tipc_nl_prop_policy[TIPC_NLA_PROP_MAX + 1] = {
|
||||
[TIPC_NLA_PROP_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_PROP_PRIO] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_PROP_TOL] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_PROP_WIN] = { .type = NLA_U32 }
|
||||
};
|
||||
|
||||
const struct nla_policy tipc_nl_bearer_policy[TIPC_NLA_BEARER_MAX + 1] = {
|
||||
[TIPC_NLA_BEARER_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_BEARER_NAME] = { .type = NLA_STRING,
|
||||
.len = TIPC_MAX_BEARER_NAME },
|
||||
[TIPC_NLA_BEARER_PROP] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_BEARER_DOMAIN] = { .type = NLA_U32 }
|
||||
};
|
||||
|
||||
const struct nla_policy tipc_nl_media_policy[TIPC_NLA_MEDIA_MAX + 1] = {
|
||||
[TIPC_NLA_MEDIA_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_MEDIA_NAME] = { .type = NLA_STRING },
|
||||
[TIPC_NLA_MEDIA_PROP] = { .type = NLA_NESTED }
|
||||
};
|
||||
|
||||
const struct nla_policy tipc_nl_udp_policy[TIPC_NLA_UDP_MAX + 1] = {
|
||||
[TIPC_NLA_UDP_UNSPEC] = {.type = NLA_UNSPEC},
|
||||
[TIPC_NLA_UDP_LOCAL] = {.type = NLA_BINARY,
|
||||
.len = sizeof(struct sockaddr_storage)},
|
||||
[TIPC_NLA_UDP_REMOTE] = {.type = NLA_BINARY,
|
||||
.len = sizeof(struct sockaddr_storage)},
|
||||
};
|
||||
|
||||
/* Users of the legacy API (tipc-config) can't handle that we add operations,
|
||||
* so we have a separate genl handling for the new API.
|
||||
*/
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
#ifndef _TIPC_NETLINK_H
|
||||
#define _TIPC_NETLINK_H
|
||||
#include <net/netlink.h>
|
||||
|
||||
extern struct genl_family tipc_genl_family;
|
||||
int tipc_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr ***buf);
|
||||
|
@ -45,6 +46,16 @@ struct tipc_nl_msg {
|
|||
u32 seq;
|
||||
};
|
||||
|
||||
extern const struct nla_policy tipc_nl_name_table_policy[];
|
||||
extern const struct nla_policy tipc_nl_sock_policy[];
|
||||
extern const struct nla_policy tipc_nl_net_policy[];
|
||||
extern const struct nla_policy tipc_nl_link_policy[];
|
||||
extern const struct nla_policy tipc_nl_node_policy[];
|
||||
extern const struct nla_policy tipc_nl_prop_policy[];
|
||||
extern const struct nla_policy tipc_nl_bearer_policy[];
|
||||
extern const struct nla_policy tipc_nl_media_policy[];
|
||||
extern const struct nla_policy tipc_nl_udp_policy[];
|
||||
|
||||
int tipc_netlink_start(void);
|
||||
int tipc_netlink_compat_start(void);
|
||||
void tipc_netlink_stop(void);
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "socket.h"
|
||||
#include "bcast.h"
|
||||
#include "discover.h"
|
||||
#include "netlink.h"
|
||||
|
||||
#define INVALID_NODE_SIG 0x10000
|
||||
|
||||
|
@ -164,28 +165,6 @@ struct tipc_sock_conn {
|
|||
struct list_head list;
|
||||
};
|
||||
|
||||
static const struct nla_policy tipc_nl_link_policy[TIPC_NLA_LINK_MAX + 1] = {
|
||||
[TIPC_NLA_LINK_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_LINK_NAME] = {
|
||||
.type = NLA_STRING,
|
||||
.len = TIPC_MAX_LINK_NAME
|
||||
},
|
||||
[TIPC_NLA_LINK_MTU] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_LINK_BROADCAST] = { .type = NLA_FLAG },
|
||||
[TIPC_NLA_LINK_UP] = { .type = NLA_FLAG },
|
||||
[TIPC_NLA_LINK_ACTIVE] = { .type = NLA_FLAG },
|
||||
[TIPC_NLA_LINK_PROP] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_LINK_STATS] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_LINK_RX] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_LINK_TX] = { .type = NLA_U32 }
|
||||
};
|
||||
|
||||
static const struct nla_policy tipc_nl_node_policy[TIPC_NLA_NODE_MAX + 1] = {
|
||||
[TIPC_NLA_NODE_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_NODE_ADDR] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_NODE_UP] = { .type = NLA_FLAG }
|
||||
};
|
||||
|
||||
static struct tipc_link *node_active_link(struct tipc_node *n, int sel)
|
||||
{
|
||||
int bearer_id = n->active_links[sel & 1];
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "name_distr.h"
|
||||
#include "socket.h"
|
||||
#include "bcast.h"
|
||||
#include "netlink.h"
|
||||
|
||||
#define SS_LISTENING -1 /* socket is listening */
|
||||
#define SS_READY -2 /* socket is connectionless */
|
||||
|
@ -126,14 +127,6 @@ static const struct proto_ops stream_ops;
|
|||
static const struct proto_ops msg_ops;
|
||||
static struct proto tipc_proto;
|
||||
|
||||
static const struct nla_policy tipc_nl_sock_policy[TIPC_NLA_SOCK_MAX + 1] = {
|
||||
[TIPC_NLA_SOCK_UNSPEC] = { .type = NLA_UNSPEC },
|
||||
[TIPC_NLA_SOCK_ADDR] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_SOCK_REF] = { .type = NLA_U32 },
|
||||
[TIPC_NLA_SOCK_CON] = { .type = NLA_NESTED },
|
||||
[TIPC_NLA_SOCK_HAS_PUBL] = { .type = NLA_FLAG }
|
||||
};
|
||||
|
||||
static const struct rhashtable_params tsk_rht_params;
|
||||
|
||||
/*
|
||||
|
|
|
@ -48,20 +48,13 @@
|
|||
#include <linux/tipc_netlink.h>
|
||||
#include "core.h"
|
||||
#include "bearer.h"
|
||||
#include "netlink.h"
|
||||
|
||||
/* IANA assigned UDP port */
|
||||
#define UDP_PORT_DEFAULT 6118
|
||||
|
||||
#define UDP_MIN_HEADROOM 28
|
||||
|
||||
static const struct nla_policy tipc_nl_udp_policy[TIPC_NLA_UDP_MAX + 1] = {
|
||||
[TIPC_NLA_UDP_UNSPEC] = {.type = NLA_UNSPEC},
|
||||
[TIPC_NLA_UDP_LOCAL] = {.type = NLA_BINARY,
|
||||
.len = sizeof(struct sockaddr_storage)},
|
||||
[TIPC_NLA_UDP_REMOTE] = {.type = NLA_BINARY,
|
||||
.len = sizeof(struct sockaddr_storage)},
|
||||
};
|
||||
|
||||
/**
|
||||
* struct udp_media_addr - IP/UDP addressing information
|
||||
*
|
||||
|
|
Загрузка…
Ссылка в новой задаче