Migrate the existing netlink socket code to the use the new common API. Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx> --- net/hsr-prp/hsr_netlink.c | 123 +++++++++++++++++++------------------- net/hsr-prp/hsr_netlink.h | 2 +- 2 files changed, 64 insertions(+), 61 deletions(-) diff --git a/net/hsr-prp/hsr_netlink.c b/net/hsr-prp/hsr_netlink.c index fbfa98aee13c..1f7c3be8d96e 100644 --- a/net/hsr-prp/hsr_netlink.c +++ b/net/hsr-prp/hsr_netlink.c @@ -15,13 +15,13 @@ #include "hsr_prp_device.h" #include "hsr_prp_framereg.h" -static const struct nla_policy hsr_policy[IFLA_HSR_MAX + 1] = { - [IFLA_HSR_SLAVE1] = { .type = NLA_U32 }, - [IFLA_HSR_SLAVE2] = { .type = NLA_U32 }, - [IFLA_HSR_MULTICAST_SPEC] = { .type = NLA_U8 }, - [IFLA_HSR_VERSION] = { .type = NLA_U8 }, - [IFLA_HSR_SUPERVISION_ADDR] = { .len = ETH_ALEN }, - [IFLA_HSR_SEQ_NR] = { .type = NLA_U16 }, +static const struct nla_policy hsr_policy[IFLA_HSR_PRP_MAX + 1] = { + [IFLA_HSR_PRP_SLAVE1] = { .type = NLA_U32 }, + [IFLA_HSR_PRP_SLAVE2] = { .type = NLA_U32 }, + [IFLA_HSR_PRP_SF_MC_ADDR_LSB] = { .type = NLA_U8 }, + [IFLA_HSR_PRP_VERSION] = { .type = NLA_U8 }, + [IFLA_HSR_PRP_SF_MC_ADDR] = { .len = ETH_ALEN }, + [IFLA_HSR_PRP_SEQ_NR] = { .type = NLA_U16 }, }; /* Here, it seems a netdevice has already been allocated for us, and the @@ -38,22 +38,22 @@ static int hsr_newlink(struct net *src_net, struct net_device *dev, NL_SET_ERR_MSG_MOD(extack, "No slave devices specified"); return -EINVAL; } - if (!data[IFLA_HSR_SLAVE1]) { + if (!data[IFLA_HSR_PRP_SLAVE1]) { NL_SET_ERR_MSG_MOD(extack, "Slave1 device not specified"); return -EINVAL; } link[0] = __dev_get_by_index(src_net, - nla_get_u32(data[IFLA_HSR_SLAVE1])); + nla_get_u32(data[IFLA_HSR_PRP_SLAVE1])); if (!link[0]) { NL_SET_ERR_MSG_MOD(extack, "Slave1 does not exist"); return -EINVAL; } - if (!data[IFLA_HSR_SLAVE2]) { + if (!data[IFLA_HSR_PRP_SLAVE2]) { NL_SET_ERR_MSG_MOD(extack, "Slave2 device not specified"); return -EINVAL; } link[1] = __dev_get_by_index(src_net, - nla_get_u32(data[IFLA_HSR_SLAVE2])); + nla_get_u32(data[IFLA_HSR_PRP_SLAVE2])); if (!link[1]) { NL_SET_ERR_MSG_MOD(extack, "Slave2 does not exist"); return -EINVAL; @@ -64,15 +64,15 @@ static int hsr_newlink(struct net *src_net, struct net_device *dev, return -EINVAL; } - if (!data[IFLA_HSR_MULTICAST_SPEC]) + if (!data[IFLA_HSR_PRP_SF_MC_ADDR_LSB]) multicast_spec = 0; else - multicast_spec = nla_get_u8(data[IFLA_HSR_MULTICAST_SPEC]); + multicast_spec = nla_get_u8(data[IFLA_HSR_PRP_SF_MC_ADDR_LSB]); - if (!data[IFLA_HSR_VERSION]) { + if (!data[IFLA_HSR_PRP_VERSION]) { hsr_version = 0; } else { - hsr_version = nla_get_u8(data[IFLA_HSR_VERSION]); + hsr_version = nla_get_u8(data[IFLA_HSR_PRP_VERSION]); if (hsr_version > 1) { NL_SET_ERR_MSG_MOD(extack, "Only versions 0..1 are supported"); @@ -91,19 +91,19 @@ static int hsr_fill_info(struct sk_buff *skb, const struct net_device *dev) port = hsr_prp_get_port(priv, HSR_PRP_PT_SLAVE_A); if (port) { - if (nla_put_u32(skb, IFLA_HSR_SLAVE1, port->dev->ifindex)) + if (nla_put_u32(skb, IFLA_HSR_PRP_SLAVE1, port->dev->ifindex)) goto nla_put_failure; } port = hsr_prp_get_port(priv, HSR_PRP_PT_SLAVE_B); if (port) { - if (nla_put_u32(skb, IFLA_HSR_SLAVE2, port->dev->ifindex)) + if (nla_put_u32(skb, IFLA_HSR_PRP_SLAVE2, port->dev->ifindex)) goto nla_put_failure; } - if (nla_put(skb, IFLA_HSR_SUPERVISION_ADDR, ETH_ALEN, + if (nla_put(skb, IFLA_HSR_PRP_SF_MC_ADDR, ETH_ALEN, priv->sup_multicast_addr) || - nla_put_u16(skb, IFLA_HSR_SEQ_NR, priv->sequence_nr)) + nla_put_u16(skb, IFLA_HSR_PRP_SEQ_NR, priv->sequence_nr)) goto nla_put_failure; return 0; @@ -114,7 +114,7 @@ static int hsr_fill_info(struct sk_buff *skb, const struct net_device *dev) static struct rtnl_link_ops hsr_link_ops __read_mostly = { .kind = "hsr", - .maxtype = IFLA_HSR_MAX, + .maxtype = IFLA_HSR_PRP_MAX, .policy = hsr_policy, .priv_size = sizeof(struct hsr_prp_priv), .setup = hsr_prp_dev_setup, @@ -123,14 +123,14 @@ static struct rtnl_link_ops hsr_link_ops __read_mostly = { }; /* attribute policy */ -static const struct nla_policy hsr_genl_policy[HSR_A_MAX + 1] = { - [HSR_A_NODE_ADDR] = { .len = ETH_ALEN }, - [HSR_A_NODE_ADDR_B] = { .len = ETH_ALEN }, - [HSR_A_IFINDEX] = { .type = NLA_U32 }, - [HSR_A_IF1_AGE] = { .type = NLA_U32 }, - [HSR_A_IF2_AGE] = { .type = NLA_U32 }, - [HSR_A_IF1_SEQ] = { .type = NLA_U16 }, - [HSR_A_IF2_SEQ] = { .type = NLA_U16 }, +static const struct nla_policy hsr_genl_policy[HSR_PRP_A_MAX + 1] = { + [HSR_PRP_A_NODE_ADDR] = { .len = ETH_ALEN }, + [HSR_PRP_A_NODE_ADDR_B] = { .len = ETH_ALEN }, + [HSR_PRP_A_IFINDEX] = { .type = NLA_U32 }, + [HSR_PRP_A_IF1_AGE] = { .type = NLA_U32 }, + [HSR_PRP_A_IF2_AGE] = { .type = NLA_U32 }, + [HSR_PRP_A_IF1_SEQ] = { .type = NLA_U16 }, + [HSR_PRP_A_IF2_SEQ] = { .type = NLA_U16 }, }; static struct genl_family hsr_genl_family; @@ -157,15 +157,15 @@ void hsr_nl_ringerror(struct hsr_prp_priv *priv, goto fail; msg_head = genlmsg_put(skb, 0, 0, &hsr_genl_family, 0, - HSR_C_RING_ERROR); + HSR_PRP_C_RING_ERROR); if (!msg_head) goto nla_put_failure; - res = nla_put(skb, HSR_A_NODE_ADDR, ETH_ALEN, addr); + res = nla_put(skb, HSR_PRP_A_NODE_ADDR, ETH_ALEN, addr); if (res < 0) goto nla_put_failure; - res = nla_put_u32(skb, HSR_A_IFINDEX, port->dev->ifindex); + res = nla_put_u32(skb, HSR_PRP_A_IFINDEX, port->dev->ifindex); if (res < 0) goto nla_put_failure; @@ -199,11 +199,12 @@ void hsr_nl_nodedown(struct hsr_prp_priv *priv, if (!skb) goto fail; - msg_head = genlmsg_put(skb, 0, 0, &hsr_genl_family, 0, HSR_C_NODE_DOWN); + msg_head = genlmsg_put(skb, 0, 0, &hsr_genl_family, 0, + HSR_PRP_C_NODE_DOWN); if (!msg_head) goto nla_put_failure; - res = nla_put(skb, HSR_A_NODE_ADDR, ETH_ALEN, addr); + res = nla_put(skb, HSR_PRP_A_NODE_ADDR, ETH_ALEN, addr); if (res < 0) goto nla_put_failure; @@ -222,7 +223,7 @@ void hsr_nl_nodedown(struct hsr_prp_priv *priv, rcu_read_unlock(); } -/* HSR_C_GET_NODE_STATUS lets userspace query the internal HSR node table +/* HSR_PRP_C_GET_NODE_STATUS lets userspace query the internal HSR node table * about the status of a specific node in the network, defined by its MAC * address. * @@ -252,16 +253,17 @@ static int hsr_get_node_status(struct sk_buff *skb_in, struct genl_info *info) if (!info) goto invalid; - na = info->attrs[HSR_A_IFINDEX]; + na = info->attrs[HSR_PRP_A_IFINDEX]; if (!na) goto invalid; - na = info->attrs[HSR_A_NODE_ADDR]; + na = info->attrs[HSR_PRP_A_NODE_ADDR]; if (!na) goto invalid; rcu_read_lock(); - hsr_dev = dev_get_by_index_rcu(genl_info_net(info), - nla_get_u32(info->attrs[HSR_A_IFINDEX])); + hsr_dev = + dev_get_by_index_rcu(genl_info_net(info), + nla_get_u32(info->attrs[HSR_PRP_A_IFINDEX])); if (!hsr_dev) goto rcu_unlock; if (!is_hsr_prp_master(hsr_dev)) @@ -276,20 +278,20 @@ static int hsr_get_node_status(struct sk_buff *skb_in, struct genl_info *info) msg_head = genlmsg_put(skb_out, NETLINK_CB(skb_in).portid, info->snd_seq, &hsr_genl_family, 0, - HSR_C_SET_NODE_STATUS); + HSR_PRP_C_SET_NODE_STATUS); if (!msg_head) { res = -ENOMEM; goto nla_put_failure; } - res = nla_put_u32(skb_out, HSR_A_IFINDEX, hsr_dev->ifindex); + res = nla_put_u32(skb_out, HSR_PRP_A_IFINDEX, hsr_dev->ifindex); if (res < 0) goto nla_put_failure; priv = netdev_priv(hsr_dev); res = hsr_prp_get_node_data(priv, (unsigned char *) - nla_data(info->attrs[HSR_A_NODE_ADDR]), + nla_data(info->attrs[HSR_PRP_A_NODE_ADDR]), node_addr_b, &addr_b_ifindex, &hsr_node_if1_age, @@ -299,45 +301,45 @@ static int hsr_get_node_status(struct sk_buff *skb_in, struct genl_info *info) if (res < 0) goto nla_put_failure; - res = nla_put(skb_out, HSR_A_NODE_ADDR, ETH_ALEN, - nla_data(info->attrs[HSR_A_NODE_ADDR])); + res = nla_put(skb_out, HSR_PRP_A_NODE_ADDR, ETH_ALEN, + nla_data(info->attrs[HSR_PRP_A_NODE_ADDR])); if (res < 0) goto nla_put_failure; if (addr_b_ifindex > -1) { - res = nla_put(skb_out, HSR_A_NODE_ADDR_B, ETH_ALEN, + res = nla_put(skb_out, HSR_PRP_A_NODE_ADDR_B, ETH_ALEN, node_addr_b); if (res < 0) goto nla_put_failure; - res = nla_put_u32(skb_out, HSR_A_ADDR_B_IFINDEX, + res = nla_put_u32(skb_out, HSR_PRP_A_ADDR_B_IFINDEX, addr_b_ifindex); if (res < 0) goto nla_put_failure; } - res = nla_put_u32(skb_out, HSR_A_IF1_AGE, hsr_node_if1_age); + res = nla_put_u32(skb_out, HSR_PRP_A_IF1_AGE, hsr_node_if1_age); if (res < 0) goto nla_put_failure; - res = nla_put_u16(skb_out, HSR_A_IF1_SEQ, hsr_node_if1_seq); + res = nla_put_u16(skb_out, HSR_PRP_A_IF1_SEQ, hsr_node_if1_seq); if (res < 0) goto nla_put_failure; port = hsr_prp_get_port(priv, HSR_PRP_PT_SLAVE_A); if (port) - res = nla_put_u32(skb_out, HSR_A_IF1_IFINDEX, + res = nla_put_u32(skb_out, HSR_PRP_A_IF1_IFINDEX, port->dev->ifindex); if (res < 0) goto nla_put_failure; - res = nla_put_u32(skb_out, HSR_A_IF2_AGE, hsr_node_if2_age); + res = nla_put_u32(skb_out, HSR_PRP_A_IF2_AGE, hsr_node_if2_age); if (res < 0) goto nla_put_failure; - res = nla_put_u16(skb_out, HSR_A_IF2_SEQ, hsr_node_if2_seq); + res = nla_put_u16(skb_out, HSR_PRP_A_IF2_SEQ, hsr_node_if2_seq); if (res < 0) goto nla_put_failure; port = hsr_prp_get_port(priv, HSR_PRP_PT_SLAVE_B); if (port) - res = nla_put_u32(skb_out, HSR_A_IF2_IFINDEX, + res = nla_put_u32(skb_out, HSR_PRP_A_IF2_IFINDEX, port->dev->ifindex); if (res < 0) goto nla_put_failure; @@ -381,13 +383,14 @@ static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info) if (!info) goto invalid; - na = info->attrs[HSR_A_IFINDEX]; + na = info->attrs[HSR_PRP_A_IFINDEX]; if (!na) goto invalid; rcu_read_lock(); - hsr_dev = dev_get_by_index_rcu(genl_info_net(info), - nla_get_u32(info->attrs[HSR_A_IFINDEX])); + hsr_dev = + dev_get_by_index_rcu(genl_info_net(info), + nla_get_u32(info->attrs[HSR_PRP_A_IFINDEX])); if (!hsr_dev) goto rcu_unlock; if (!is_hsr_prp_master(hsr_dev)) @@ -403,14 +406,14 @@ static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info) msg_head = genlmsg_put(skb_out, NETLINK_CB(skb_in).portid, info->snd_seq, &hsr_genl_family, 0, - HSR_C_SET_NODE_LIST); + HSR_PRP_C_SET_NODE_LIST); if (!msg_head) { res = -ENOMEM; goto nla_put_failure; } if (!restart) { - res = nla_put_u32(skb_out, HSR_A_IFINDEX, hsr_dev->ifindex); + res = nla_put_u32(skb_out, HSR_PRP_A_IFINDEX, hsr_dev->ifindex); if (res < 0) goto nla_put_failure; } @@ -420,7 +423,7 @@ static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info) if (!pos) pos = hsr_prp_get_next_node(priv, NULL, addr); while (pos) { - res = nla_put(skb_out, HSR_A_NODE_ADDR, ETH_ALEN, addr); + res = nla_put(skb_out, HSR_PRP_A_NODE_ADDR, ETH_ALEN, addr); if (res < 0) { if (res == -EMSGSIZE) { genlmsg_end(skb_out, msg_head); @@ -457,14 +460,14 @@ static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info) static const struct genl_ops hsr_ops[] = { { - .cmd = HSR_C_GET_NODE_STATUS, + .cmd = HSR_PRP_C_GET_NODE_STATUS, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .flags = 0, .doit = hsr_get_node_status, .dumpit = NULL, }, { - .cmd = HSR_C_GET_NODE_LIST, + .cmd = HSR_PRP_C_GET_NODE_LIST, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .flags = 0, .doit = hsr_get_node_list, @@ -476,7 +479,7 @@ static struct genl_family hsr_genl_family __ro_after_init = { .hdrsize = 0, .name = "HSR", .version = 1, - .maxattr = HSR_A_MAX, + .maxattr = HSR_PRP_A_MAX, .policy = hsr_genl_policy, .netnsok = true, .module = THIS_MODULE, diff --git a/net/hsr-prp/hsr_netlink.h b/net/hsr-prp/hsr_netlink.h index ae7a1c0de80d..df3d1acb08e0 100644 --- a/net/hsr-prp/hsr_netlink.h +++ b/net/hsr-prp/hsr_netlink.h @@ -10,7 +10,7 @@ #include <linux/if_ether.h> #include <linux/module.h> -#include <uapi/linux/hsr_netlink.h> +#include <uapi/linux/hsr_prp_netlink.h> struct hsr_prp_priv; struct hsr_prp_port; -- 2.17.1