mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
genetlink: optionally validate strictly/dumps
Add options to strictly validate messages and dump messages,
sometimes perhaps validating dump messages non-strictly may
be required, so add an option for that as well.
Since none of this can really be applied to existing commands,
set the options everwhere using the following spatch:
@@
identifier ops;
expression X;
@@
struct genl_ops ops[] = {
...,
{
.cmd = X,
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
...
},
...
};
For new commands one should just not copy the .validate 'opt-out'
flags and thus get strict validation.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
56738f4608
commit
ef6243acb4
@@ -2003,18 +2003,22 @@ out:
|
||||
static const struct genl_ops nbd_connect_genl_ops[] = {
|
||||
{
|
||||
.cmd = NBD_CMD_CONNECT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nbd_genl_connect,
|
||||
},
|
||||
{
|
||||
.cmd = NBD_CMD_DISCONNECT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nbd_genl_disconnect,
|
||||
},
|
||||
{
|
||||
.cmd = NBD_CMD_RECONFIGURE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nbd_genl_reconfigure,
|
||||
},
|
||||
{
|
||||
.cmd = NBD_CMD_STATUS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nbd_genl_status,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1270,16 +1270,19 @@ static const struct nla_policy gtp_genl_policy[GTPA_MAX + 1] = {
|
||||
static const struct genl_ops gtp_genl_ops[] = {
|
||||
{
|
||||
.cmd = GTP_CMD_NEWPDP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = gtp_genl_new_pdp,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = GTP_CMD_DELPDP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = gtp_genl_del_pdp,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = GTP_CMD_GETPDP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = gtp_genl_get_pdp,
|
||||
.dumpit = gtp_genl_dump_pdp,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
|
||||
@@ -594,31 +594,37 @@ static const struct nla_policy hwsim_genl_policy[MAC802154_HWSIM_ATTR_MAX + 1] =
|
||||
static const struct genl_ops hwsim_nl_ops[] = {
|
||||
{
|
||||
.cmd = MAC802154_HWSIM_CMD_NEW_RADIO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_new_radio_nl,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MAC802154_HWSIM_CMD_DEL_RADIO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_del_radio_nl,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MAC802154_HWSIM_CMD_GET_RADIO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_get_radio_nl,
|
||||
.dumpit = hwsim_dump_radio_nl,
|
||||
},
|
||||
{
|
||||
.cmd = MAC802154_HWSIM_CMD_NEW_EDGE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_new_edge_nl,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MAC802154_HWSIM_CMD_DEL_EDGE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_del_edge_nl,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MAC802154_HWSIM_CMD_SET_EDGE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_set_edge_lqi,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
|
||||
@@ -2637,50 +2637,60 @@ done:
|
||||
static const struct genl_ops macsec_genl_ops[] = {
|
||||
{
|
||||
.cmd = MACSEC_CMD_GET_TXSC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.dumpit = macsec_dump_txsc,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_ADD_RXSC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_add_rxsc,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_DEL_RXSC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_del_rxsc,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_UPD_RXSC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_upd_rxsc,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_ADD_TXSA,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_add_txsa,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_DEL_TXSA,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_del_txsa,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_UPD_TXSA,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_upd_txsa,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_ADD_RXSA,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_add_rxsa,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_DEL_RXSA,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_del_rxsa,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = MACSEC_CMD_UPD_RXSA,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = macsec_upd_rxsa,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
|
||||
@@ -2757,20 +2757,24 @@ static int team_nl_cmd_port_list_get(struct sk_buff *skb,
|
||||
static const struct genl_ops team_nl_ops[] = {
|
||||
{
|
||||
.cmd = TEAM_CMD_NOOP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = team_nl_cmd_noop,
|
||||
},
|
||||
{
|
||||
.cmd = TEAM_CMD_OPTIONS_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = team_nl_cmd_options_set,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = TEAM_CMD_OPTIONS_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = team_nl_cmd_options_get,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = TEAM_CMD_PORT_LIST_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = team_nl_cmd_port_list_get,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
|
||||
@@ -3637,29 +3637,35 @@ done:
|
||||
static const struct genl_ops hwsim_ops[] = {
|
||||
{
|
||||
.cmd = HWSIM_CMD_REGISTER,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_register_received_nl,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = HWSIM_CMD_FRAME,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_cloned_frame_received_nl,
|
||||
},
|
||||
{
|
||||
.cmd = HWSIM_CMD_TX_INFO_FRAME,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_tx_info_frame_received_nl,
|
||||
},
|
||||
{
|
||||
.cmd = HWSIM_CMD_NEW_RADIO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_new_radio_nl,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = HWSIM_CMD_DEL_RADIO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_del_radio_nl,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = HWSIM_CMD_GET_RADIO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = hwsim_get_radio_nl,
|
||||
.dumpit = hwsim_dump_radio_nl,
|
||||
},
|
||||
|
||||
@@ -441,21 +441,25 @@ static int tcmu_genl_set_features(struct sk_buff *skb, struct genl_info *info)
|
||||
static const struct genl_ops tcmu_genl_ops[] = {
|
||||
{
|
||||
.cmd = TCMU_CMD_SET_FEATURES,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = tcmu_genl_set_features,
|
||||
},
|
||||
{
|
||||
.cmd = TCMU_CMD_ADDED_DEVICE_DONE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = tcmu_genl_add_dev_done,
|
||||
},
|
||||
{
|
||||
.cmd = TCMU_CMD_REMOVED_DEVICE_DONE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = tcmu_genl_rm_dev_done,
|
||||
},
|
||||
{
|
||||
.cmd = TCMU_CMD_RECONFIG_DEVICE_DONE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = tcmu_genl_reconfig_dev_done,
|
||||
},
|
||||
|
||||
@@ -68,6 +68,7 @@ static int user_cmd(struct sk_buff *skb, struct genl_info *info)
|
||||
static const struct genl_ops dlm_nl_ops[] = {
|
||||
{
|
||||
.cmd = DLM_CMD_HELLO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = user_cmd,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -121,6 +121,12 @@ static inline int genl_err_attr(struct genl_info *info, int err,
|
||||
return err;
|
||||
}
|
||||
|
||||
enum genl_validate_flags {
|
||||
GENL_DONT_VALIDATE_STRICT = BIT(0),
|
||||
GENL_DONT_VALIDATE_DUMP = BIT(1),
|
||||
GENL_DONT_VALIDATE_DUMP_STRICT = BIT(2),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct genl_ops - generic netlink operations
|
||||
* @cmd: command identifier
|
||||
@@ -141,6 +147,7 @@ struct genl_ops {
|
||||
u8 cmd;
|
||||
u8 internal_flags;
|
||||
u8 flags;
|
||||
u8 validate;
|
||||
};
|
||||
|
||||
int genl_register_family(struct genl_family *family);
|
||||
|
||||
@@ -649,12 +649,14 @@ err:
|
||||
static const struct genl_ops taskstats_ops[] = {
|
||||
{
|
||||
.cmd = TASKSTATS_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = taskstats_user_cmd,
|
||||
/* policy enforced later */
|
||||
.flags = GENL_ADMIN_PERM | GENL_CMD_CAP_HASPOL,
|
||||
},
|
||||
{
|
||||
.cmd = CGROUPSTATS_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = cgroupstats_user_cmd,
|
||||
/* policy enforced later */
|
||||
.flags = GENL_CMD_CAP_HASPOL,
|
||||
|
||||
@@ -1343,29 +1343,34 @@ static void batadv_post_doit(const struct genl_ops *ops, struct sk_buff *skb,
|
||||
static const struct genl_ops batadv_netlink_ops[] = {
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_MESH,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* can be retrieved by unprivileged users */
|
||||
.doit = batadv_netlink_get_mesh,
|
||||
.internal_flags = BATADV_FLAG_NEED_MESH,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_TP_METER,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = batadv_netlink_tp_meter_start,
|
||||
.internal_flags = BATADV_FLAG_NEED_MESH,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_TP_METER_CANCEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = batadv_netlink_tp_meter_cancel,
|
||||
.internal_flags = BATADV_FLAG_NEED_MESH,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_ROUTING_ALGOS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_algo_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_HARDIF,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* can be retrieved by unprivileged users */
|
||||
.dumpit = batadv_netlink_dump_hardif,
|
||||
.doit = batadv_netlink_get_hardif,
|
||||
@@ -1374,57 +1379,68 @@ static const struct genl_ops batadv_netlink_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_TRANSTABLE_LOCAL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_tt_local_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_TRANSTABLE_GLOBAL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_tt_global_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_ORIGINATORS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_orig_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_NEIGHBORS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_hardif_neigh_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_GATEWAYS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_gw_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_BLA_CLAIM,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_bla_claim_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_BLA_BACKBONE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_bla_backbone_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_DAT_CACHE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_dat_cache_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_MCAST_FLAGS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.dumpit = batadv_mcast_flags_dump,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_SET_MESH,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = batadv_netlink_set_mesh,
|
||||
.internal_flags = BATADV_FLAG_NEED_MESH,
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_SET_HARDIF,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = batadv_netlink_set_hardif,
|
||||
.internal_flags = BATADV_FLAG_NEED_MESH |
|
||||
@@ -1432,6 +1448,7 @@ static const struct genl_ops batadv_netlink_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_VLAN,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* can be retrieved by unprivileged users */
|
||||
.doit = batadv_netlink_get_vlan,
|
||||
.internal_flags = BATADV_FLAG_NEED_MESH |
|
||||
@@ -1439,6 +1456,7 @@ static const struct genl_ops batadv_netlink_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = BATADV_CMD_SET_VLAN,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.doit = batadv_netlink_set_vlan,
|
||||
.internal_flags = BATADV_FLAG_NEED_MESH |
|
||||
|
||||
@@ -4948,6 +4948,7 @@ static const struct nla_policy devlink_nl_policy[DEVLINK_ATTR_MAX + 1] = {
|
||||
static const struct genl_ops devlink_nl_ops[] = {
|
||||
{
|
||||
.cmd = DEVLINK_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_get_doit,
|
||||
.dumpit = devlink_nl_cmd_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
@@ -4955,6 +4956,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PORT_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_port_get_doit,
|
||||
.dumpit = devlink_nl_cmd_port_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT,
|
||||
@@ -4962,12 +4964,14 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PORT_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_port_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PORT_SPLIT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_port_split_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -4975,6 +4979,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PORT_UNSPLIT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_port_unsplit_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -4982,6 +4987,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_get_doit,
|
||||
.dumpit = devlink_nl_cmd_sb_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -4990,6 +4996,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_POOL_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_pool_get_doit,
|
||||
.dumpit = devlink_nl_cmd_sb_pool_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -4998,6 +5005,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_POOL_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_pool_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -5005,6 +5013,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_PORT_POOL_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_port_pool_get_doit,
|
||||
.dumpit = devlink_nl_cmd_sb_port_pool_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT |
|
||||
@@ -5013,6 +5022,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_PORT_POOL_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_port_pool_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT |
|
||||
@@ -5020,6 +5030,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_TC_POOL_BIND_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_tc_pool_bind_get_doit,
|
||||
.dumpit = devlink_nl_cmd_sb_tc_pool_bind_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT |
|
||||
@@ -5028,6 +5039,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_TC_POOL_BIND_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_tc_pool_bind_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT |
|
||||
@@ -5035,6 +5047,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_OCC_SNAPSHOT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_occ_snapshot_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -5042,6 +5055,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_SB_OCC_MAX_CLEAR,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_sb_occ_max_clear_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -5049,12 +5063,14 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_ESWITCH_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_eswitch_get_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_ESWITCH_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_eswitch_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -5062,42 +5078,49 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_DPIPE_TABLE_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_dpipe_table_get,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
/* can be retrieved by unprivileged users */
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_DPIPE_ENTRIES_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_dpipe_entries_get,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
/* can be retrieved by unprivileged users */
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_DPIPE_HEADERS_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_dpipe_headers_get,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
/* can be retrieved by unprivileged users */
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_dpipe_table_counters_set,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_RESOURCE_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_resource_set,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_RESOURCE_DUMP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_resource_dump,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
/* can be retrieved by unprivileged users */
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_RELOAD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_reload,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -5105,6 +5128,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PARAM_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_param_get_doit,
|
||||
.dumpit = devlink_nl_cmd_param_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
@@ -5112,12 +5136,14 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PARAM_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_param_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PORT_PARAM_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_port_param_get_doit,
|
||||
.dumpit = devlink_nl_cmd_port_param_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT,
|
||||
@@ -5125,12 +5151,14 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_PORT_PARAM_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_port_param_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_PORT,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_REGION_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_region_get_doit,
|
||||
.dumpit = devlink_nl_cmd_region_get_dumpit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
@@ -5138,18 +5166,21 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_REGION_DEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_region_del,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_REGION_READ,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.dumpit = devlink_nl_cmd_region_read_dumpit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_INFO_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_info_get_doit,
|
||||
.dumpit = devlink_nl_cmd_info_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
@@ -5157,6 +5188,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_HEALTH_REPORTER_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_health_reporter_get_doit,
|
||||
.dumpit = devlink_nl_cmd_health_reporter_get_dumpit,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
@@ -5164,24 +5196,28 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_HEALTH_REPORTER_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_health_reporter_set_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_HEALTH_REPORTER_RECOVER,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_health_reporter_recover_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_health_reporter_diagnose_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_health_reporter_dump_get_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -5189,6 +5225,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_health_reporter_dump_clear_doit,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK |
|
||||
@@ -5196,6 +5233,7 @@ static const struct genl_ops devlink_nl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = DEVLINK_CMD_FLASH_UPDATE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = devlink_nl_cmd_flash_update,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
|
||||
|
||||
@@ -355,14 +355,17 @@ out:
|
||||
static const struct genl_ops dropmon_ops[] = {
|
||||
{
|
||||
.cmd = NET_DM_CMD_CONFIG,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = net_dm_cmd_config,
|
||||
},
|
||||
{
|
||||
.cmd = NET_DM_CMD_START,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = net_dm_cmd_trace,
|
||||
},
|
||||
{
|
||||
.cmd = NET_DM_CMD_STOP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = net_dm_cmd_trace,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -437,12 +437,14 @@ fail:
|
||||
static const struct genl_ops hsr_ops[] = {
|
||||
{
|
||||
.cmd = HSR_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,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = 0,
|
||||
.doit = hsr_get_node_list,
|
||||
.dumpit = NULL,
|
||||
|
||||
@@ -2209,6 +2209,7 @@ static void nl802154_post_doit(const struct genl_ops *ops, struct sk_buff *skb,
|
||||
static const struct genl_ops nl802154_ops[] = {
|
||||
{
|
||||
.cmd = NL802154_CMD_GET_WPAN_PHY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_get_wpan_phy,
|
||||
.dumpit = nl802154_dump_wpan_phy,
|
||||
.done = nl802154_dump_wpan_phy_done,
|
||||
@@ -2218,6 +2219,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_GET_INTERFACE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_get_interface,
|
||||
.dumpit = nl802154_dump_interface,
|
||||
/* can be retrieved by unprivileged users */
|
||||
@@ -2226,6 +2228,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_NEW_INTERFACE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_new_interface,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_WPAN_PHY |
|
||||
@@ -2233,6 +2236,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_DEL_INTERFACE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_del_interface,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_WPAN_DEV |
|
||||
@@ -2240,6 +2244,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_CHANNEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_channel,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_WPAN_PHY |
|
||||
@@ -2247,6 +2252,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_CCA_MODE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_cca_mode,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_WPAN_PHY |
|
||||
@@ -2254,6 +2260,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_CCA_ED_LEVEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_cca_ed_level,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_WPAN_PHY |
|
||||
@@ -2261,6 +2268,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_TX_POWER,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_tx_power,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_WPAN_PHY |
|
||||
@@ -2268,6 +2276,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_WPAN_PHY_NETNS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_wpan_phy_netns,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_WPAN_PHY |
|
||||
@@ -2275,6 +2284,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_PAN_ID,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_pan_id,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2282,6 +2292,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_SHORT_ADDR,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_short_addr,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2289,6 +2300,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_BACKOFF_EXPONENT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_backoff_exponent,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2296,6 +2308,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_MAX_CSMA_BACKOFFS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_max_csma_backoffs,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2303,6 +2316,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_MAX_FRAME_RETRIES,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_max_frame_retries,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2310,6 +2324,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_LBT_MODE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_lbt_mode,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2317,6 +2332,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_ACKREQ_DEFAULT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_ackreq_default,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2325,6 +2341,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
#ifdef CONFIG_IEEE802154_NL802154_EXPERIMENTAL
|
||||
{
|
||||
.cmd = NL802154_CMD_SET_SEC_PARAMS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_set_llsec_params,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2332,6 +2349,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_GET_SEC_KEY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* TODO .doit by matching key id? */
|
||||
.dumpit = nl802154_dump_llsec_key,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
@@ -2340,6 +2358,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_NEW_SEC_KEY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_add_llsec_key,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2347,6 +2366,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_DEL_SEC_KEY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_del_llsec_key,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2355,6 +2375,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
/* TODO unique identifier must short+pan OR extended_addr */
|
||||
{
|
||||
.cmd = NL802154_CMD_GET_SEC_DEV,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* TODO .doit by matching extended_addr? */
|
||||
.dumpit = nl802154_dump_llsec_dev,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
@@ -2363,6 +2384,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_NEW_SEC_DEV,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_add_llsec_dev,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2370,6 +2392,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_DEL_SEC_DEV,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_del_llsec_dev,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2378,6 +2401,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
/* TODO remove complete devkey, put it as nested? */
|
||||
{
|
||||
.cmd = NL802154_CMD_GET_SEC_DEVKEY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* TODO doit by matching ??? */
|
||||
.dumpit = nl802154_dump_llsec_devkey,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
@@ -2386,6 +2410,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_NEW_SEC_DEVKEY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_add_llsec_devkey,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2393,6 +2418,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_DEL_SEC_DEVKEY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_del_llsec_devkey,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2400,6 +2426,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_GET_SEC_LEVEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* TODO .doit by matching frame_type? */
|
||||
.dumpit = nl802154_dump_llsec_seclevel,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
@@ -2408,6 +2435,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_NEW_SEC_LEVEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl802154_add_llsec_seclevel,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
.internal_flags = NL802154_FLAG_NEED_NETDEV |
|
||||
@@ -2415,6 +2443,7 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = NL802154_CMD_DEL_SEC_LEVEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
/* TODO match frame_type only? */
|
||||
.doit = nl802154_del_llsec_seclevel,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
|
||||
@@ -913,16 +913,19 @@ static int fou_nl_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
static const struct genl_ops fou_nl_ops[] = {
|
||||
{
|
||||
.cmd = FOU_CMD_ADD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = fou_nl_cmd_add_port,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = FOU_CMD_DEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = fou_nl_cmd_rm_port,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = FOU_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = fou_nl_cmd_get_port,
|
||||
.dumpit = fou_nl_dump,
|
||||
},
|
||||
|
||||
@@ -951,11 +951,13 @@ static int tcp_metrics_nl_cmd_del(struct sk_buff *skb, struct genl_info *info)
|
||||
static const struct genl_ops tcp_metrics_nl_ops[] = {
|
||||
{
|
||||
.cmd = TCP_METRICS_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = tcp_metrics_nl_cmd_get,
|
||||
.dumpit = tcp_metrics_nl_dump,
|
||||
},
|
||||
{
|
||||
.cmd = TCP_METRICS_CMD_DEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = tcp_metrics_nl_cmd_del,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
|
||||
@@ -16,21 +16,25 @@ static const struct nla_policy ila_nl_policy[ILA_ATTR_MAX + 1] = {
|
||||
static const struct genl_ops ila_nl_ops[] = {
|
||||
{
|
||||
.cmd = ILA_CMD_ADD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = ila_xlat_nl_cmd_add_mapping,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = ILA_CMD_DEL,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = ila_xlat_nl_cmd_del_mapping,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = ILA_CMD_FLUSH,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = ila_xlat_nl_cmd_flush,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = ILA_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = ila_xlat_nl_cmd_get_mapping,
|
||||
.start = ila_xlat_nl_dump_start,
|
||||
.dumpit = ila_xlat_nl_dump,
|
||||
|
||||
@@ -398,11 +398,13 @@ static struct pernet_operations ip6_segments_ops = {
|
||||
static const struct genl_ops seg6_genl_ops[] = {
|
||||
{
|
||||
.cmd = SEG6_CMD_SETHMAC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = seg6_genl_sethmac,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = SEG6_CMD_DUMPHMAC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.start = seg6_genl_dumphmac_start,
|
||||
.dumpit = seg6_genl_dumphmac,
|
||||
.done = seg6_genl_dumphmac_done,
|
||||
@@ -410,11 +412,13 @@ static const struct genl_ops seg6_genl_ops[] = {
|
||||
},
|
||||
{
|
||||
.cmd = SEG6_CMD_SET_TUNSRC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = seg6_genl_set_tunsrc,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = SEG6_CMD_GET_TUNSRC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = seg6_genl_get_tunsrc,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
|
||||
@@ -915,47 +915,56 @@ static const struct nla_policy l2tp_nl_policy[L2TP_ATTR_MAX + 1] = {
|
||||
static const struct genl_ops l2tp_nl_ops[] = {
|
||||
{
|
||||
.cmd = L2TP_CMD_NOOP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_noop,
|
||||
/* can be retrieved by unprivileged users */
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_TUNNEL_CREATE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_tunnel_create,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_TUNNEL_DELETE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_tunnel_delete,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_TUNNEL_MODIFY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_tunnel_modify,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_TUNNEL_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_tunnel_get,
|
||||
.dumpit = l2tp_nl_cmd_tunnel_dump,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_SESSION_CREATE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_session_create,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_SESSION_DELETE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_session_delete,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_SESSION_MODIFY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_session_modify,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
},
|
||||
{
|
||||
.cmd = L2TP_CMD_SESSION_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = l2tp_nl_cmd_session_get,
|
||||
.dumpit = l2tp_nl_cmd_session_dump,
|
||||
.flags = GENL_ADMIN_PERM,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user