Lines Matching refs:msg
324 nl802154_put_flags(struct sk_buff *msg, int attr, u32 mask) in nl802154_put_flags() argument
326 struct nlattr *nl_flags = nla_nest_start(msg, attr); in nl802154_put_flags()
334 if ((mask & 1) && nla_put_flag(msg, i)) in nl802154_put_flags()
341 nla_nest_end(msg, nl_flags); in nl802154_put_flags()
347 struct sk_buff *msg) in nl802154_send_wpan_phy_channels() argument
352 nl_page = nla_nest_start(msg, NL802154_ATTR_CHANNELS_SUPPORTED); in nl802154_send_wpan_phy_channels()
357 if (nla_put_u32(msg, NL802154_ATTR_SUPPORTED_CHANNEL, in nl802154_send_wpan_phy_channels()
361 nla_nest_end(msg, nl_page); in nl802154_send_wpan_phy_channels()
367 nl802154_put_capabilities(struct sk_buff *msg, in nl802154_put_capabilities() argument
374 nl_caps = nla_nest_start(msg, NL802154_ATTR_WPAN_PHY_CAPS); in nl802154_put_capabilities()
378 nl_channels = nla_nest_start(msg, NL802154_CAP_ATTR_CHANNELS); in nl802154_put_capabilities()
384 if (nl802154_put_flags(msg, i, caps->channels[i])) in nl802154_put_capabilities()
389 nla_nest_end(msg, nl_channels); in nl802154_put_capabilities()
394 nl_ed_lvls = nla_nest_start(msg, in nl802154_put_capabilities()
400 if (nla_put_s32(msg, i, caps->cca_ed_levels[i])) in nl802154_put_capabilities()
404 nla_nest_end(msg, nl_ed_lvls); in nl802154_put_capabilities()
410 nl_tx_pwrs = nla_nest_start(msg, NL802154_CAP_ATTR_TX_POWERS); in nl802154_put_capabilities()
415 if (nla_put_s32(msg, i, caps->tx_powers[i])) in nl802154_put_capabilities()
419 nla_nest_end(msg, nl_tx_pwrs); in nl802154_put_capabilities()
423 if (nl802154_put_flags(msg, NL802154_CAP_ATTR_CCA_MODES, in nl802154_put_capabilities()
425 nl802154_put_flags(msg, NL802154_CAP_ATTR_CCA_OPTS, in nl802154_put_capabilities()
430 if (nla_put_u8(msg, NL802154_CAP_ATTR_MIN_MINBE, caps->min_minbe) || in nl802154_put_capabilities()
431 nla_put_u8(msg, NL802154_CAP_ATTR_MAX_MINBE, caps->max_minbe) || in nl802154_put_capabilities()
432 nla_put_u8(msg, NL802154_CAP_ATTR_MIN_MAXBE, caps->min_maxbe) || in nl802154_put_capabilities()
433 nla_put_u8(msg, NL802154_CAP_ATTR_MAX_MAXBE, caps->max_maxbe) || in nl802154_put_capabilities()
434 nla_put_u8(msg, NL802154_CAP_ATTR_MIN_CSMA_BACKOFFS, in nl802154_put_capabilities()
436 nla_put_u8(msg, NL802154_CAP_ATTR_MAX_CSMA_BACKOFFS, in nl802154_put_capabilities()
438 nla_put_s8(msg, NL802154_CAP_ATTR_MIN_FRAME_RETRIES, in nl802154_put_capabilities()
440 nla_put_s8(msg, NL802154_CAP_ATTR_MAX_FRAME_RETRIES, in nl802154_put_capabilities()
442 nl802154_put_flags(msg, NL802154_CAP_ATTR_IFTYPES, in nl802154_put_capabilities()
444 nla_put_u32(msg, NL802154_CAP_ATTR_LBT, caps->lbt)) in nl802154_put_capabilities()
447 nla_nest_end(msg, nl_caps); in nl802154_put_capabilities()
454 struct sk_buff *msg, u32 portid, u32 seq, in nl802154_send_wpan_phy() argument
461 hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); in nl802154_send_wpan_phy()
465 if (nla_put_u32(msg, NL802154_ATTR_WPAN_PHY, rdev->wpan_phy_idx) || in nl802154_send_wpan_phy()
466 nla_put_string(msg, NL802154_ATTR_WPAN_PHY_NAME, in nl802154_send_wpan_phy()
468 nla_put_u32(msg, NL802154_ATTR_GENERATION, in nl802154_send_wpan_phy()
478 if (nla_put_u8(msg, NL802154_ATTR_PAGE, in nl802154_send_wpan_phy()
480 nla_put_u8(msg, NL802154_ATTR_CHANNEL, in nl802154_send_wpan_phy()
487 if (nl802154_send_wpan_phy_channels(rdev, msg)) in nl802154_send_wpan_phy()
492 if (nla_put_u32(msg, NL802154_ATTR_CCA_MODE, in nl802154_send_wpan_phy()
497 if (nla_put_u32(msg, NL802154_ATTR_CCA_OPT, in nl802154_send_wpan_phy()
504 if (nla_put_s32(msg, NL802154_ATTR_TX_POWER, in nl802154_send_wpan_phy()
510 if (nla_put_s32(msg, NL802154_ATTR_CCA_ED_LEVEL, in nl802154_send_wpan_phy()
515 if (nl802154_put_capabilities(msg, rdev)) in nl802154_send_wpan_phy()
518 nl_cmds = nla_nest_start(msg, NL802154_ATTR_SUPPORTED_COMMANDS); in nl802154_send_wpan_phy()
527 if (nla_put_u32(msg, i, NL802154_CMD_ ## n)) \ in nl802154_send_wpan_phy()
553 nla_nest_end(msg, nl_cmds); in nl802154_send_wpan_phy()
556 genlmsg_end(msg, hdr); in nl802154_send_wpan_phy()
560 genlmsg_cancel(msg, hdr); in nl802154_send_wpan_phy()
671 struct sk_buff *msg; in nl802154_get_wpan_phy() local
674 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in nl802154_get_wpan_phy()
675 if (!msg) in nl802154_get_wpan_phy()
678 if (nl802154_send_wpan_phy(rdev, NL802154_CMD_NEW_WPAN_PHY, msg, in nl802154_get_wpan_phy()
680 nlmsg_free(msg); in nl802154_get_wpan_phy()
684 return genlmsg_reply(msg, info); in nl802154_get_wpan_phy()
697 ieee802154_llsec_send_key_id(struct sk_buff *msg, in ieee802154_llsec_send_key_id() argument
702 if (nla_put_u32(msg, NL802154_KEY_ID_ATTR_MODE, desc->mode)) in ieee802154_llsec_send_key_id()
707 nl_dev_addr = nla_nest_start(msg, NL802154_KEY_ID_ATTR_IMPLICIT); in ieee802154_llsec_send_key_id()
711 if (nla_put_le16(msg, NL802154_DEV_ADDR_ATTR_PAN_ID, in ieee802154_llsec_send_key_id()
713 nla_put_u32(msg, NL802154_DEV_ADDR_ATTR_MODE, in ieee802154_llsec_send_key_id()
719 if (nla_put_le16(msg, NL802154_DEV_ADDR_ATTR_SHORT, in ieee802154_llsec_send_key_id()
724 if (nla_put_le64(msg, NL802154_DEV_ADDR_ATTR_EXTENDED, in ieee802154_llsec_send_key_id()
733 nla_nest_end(msg, nl_dev_addr); in ieee802154_llsec_send_key_id()
739 if (nla_put_le32(msg, NL802154_KEY_ID_ATTR_SOURCE_SHORT, in ieee802154_llsec_send_key_id()
744 if (nla_put_le64(msg, NL802154_KEY_ID_ATTR_SOURCE_EXTENDED, in ieee802154_llsec_send_key_id()
755 if (nla_put_u8(msg, NL802154_KEY_ID_ATTR_INDEX, desc->id)) in ieee802154_llsec_send_key_id()
762 static int nl802154_get_llsec_params(struct sk_buff *msg, in nl802154_get_llsec_params() argument
774 if (nla_put_u8(msg, NL802154_ATTR_SEC_ENABLED, params.enabled) || in nl802154_get_llsec_params()
775 nla_put_u32(msg, NL802154_ATTR_SEC_OUT_LEVEL, params.out_level) || in nl802154_get_llsec_params()
776 nla_put_be32(msg, NL802154_ATTR_SEC_FRAME_COUNTER, in nl802154_get_llsec_params()
780 nl_key_id = nla_nest_start(msg, NL802154_ATTR_SEC_OUT_KEY_ID); in nl802154_get_llsec_params()
784 ret = ieee802154_llsec_send_key_id(msg, ¶ms.out_key); in nl802154_get_llsec_params()
788 nla_nest_end(msg, nl_key_id); in nl802154_get_llsec_params()
795 nl802154_send_iface(struct sk_buff *msg, u32 portid, u32 seq, int flags, in nl802154_send_iface() argument
802 hdr = nl802154hdr_put(msg, portid, seq, flags, in nl802154_send_iface()
808 (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex) || in nl802154_send_iface()
809 nla_put_string(msg, NL802154_ATTR_IFNAME, dev->name))) in nl802154_send_iface()
812 if (nla_put_u32(msg, NL802154_ATTR_WPAN_PHY, rdev->wpan_phy_idx) || in nl802154_send_iface()
813 nla_put_u32(msg, NL802154_ATTR_IFTYPE, wpan_dev->iftype) || in nl802154_send_iface()
814 nla_put_u64(msg, NL802154_ATTR_WPAN_DEV, wpan_dev_id(wpan_dev)) || in nl802154_send_iface()
815 nla_put_u32(msg, NL802154_ATTR_GENERATION, in nl802154_send_iface()
821 if (nla_put_le64(msg, NL802154_ATTR_EXTENDED_ADDR, in nl802154_send_iface()
823 nla_put_le16(msg, NL802154_ATTR_SHORT_ADDR, in nl802154_send_iface()
825 nla_put_le16(msg, NL802154_ATTR_PAN_ID, wpan_dev->pan_id)) in nl802154_send_iface()
829 if (nla_put_s8(msg, NL802154_ATTR_MAX_FRAME_RETRIES, in nl802154_send_iface()
831 nla_put_u8(msg, NL802154_ATTR_MAX_BE, wpan_dev->max_be) || in nl802154_send_iface()
832 nla_put_u8(msg, NL802154_ATTR_MAX_CSMA_BACKOFFS, in nl802154_send_iface()
834 nla_put_u8(msg, NL802154_ATTR_MIN_BE, wpan_dev->min_be)) in nl802154_send_iface()
838 if (nla_put_u8(msg, NL802154_ATTR_LBT_MODE, wpan_dev->lbt)) in nl802154_send_iface()
842 if (nla_put_u8(msg, NL802154_ATTR_ACKREQ_DEFAULT, wpan_dev->ackreq)) in nl802154_send_iface()
846 if (nl802154_get_llsec_params(msg, rdev, wpan_dev) < 0) in nl802154_send_iface()
850 genlmsg_end(msg, hdr); in nl802154_send_iface()
854 genlmsg_cancel(msg, hdr); in nl802154_send_iface()
903 struct sk_buff *msg; in nl802154_get_interface() local
907 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in nl802154_get_interface()
908 if (!msg) in nl802154_get_interface()
911 if (nl802154_send_iface(msg, info->snd_portid, info->snd_seq, 0, in nl802154_get_interface()
913 nlmsg_free(msg); in nl802154_get_interface()
917 return genlmsg_reply(msg, info); in nl802154_get_interface()
1406 static int nl802154_send_key(struct sk_buff *msg, u32 cmd, u32 portid, in nl802154_send_key() argument
1416 hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); in nl802154_send_key()
1420 if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) in nl802154_send_key()
1423 nl_key = nla_nest_start(msg, NL802154_ATTR_SEC_KEY); in nl802154_send_key()
1427 nl_key_id = nla_nest_start(msg, NL802154_KEY_ATTR_ID); in nl802154_send_key()
1431 if (ieee802154_llsec_send_key_id(msg, &key->id) < 0) in nl802154_send_key()
1434 nla_nest_end(msg, nl_key_id); in nl802154_send_key()
1436 if (nla_put_u8(msg, NL802154_KEY_ATTR_USAGE_FRAMES, in nl802154_send_key()
1444 if (nla_put(msg, NL802154_KEY_ATTR_USAGE_CMDS, in nl802154_send_key()
1449 if (nla_put(msg, NL802154_KEY_ATTR_BYTES, NL802154_KEY_SIZE, in nl802154_send_key()
1453 nla_nest_end(msg, nl_key); in nl802154_send_key()
1454 genlmsg_end(msg, hdr); in nl802154_send_key()
1459 genlmsg_cancel(msg, hdr); in nl802154_send_key()
1591 static int nl802154_send_device(struct sk_buff *msg, u32 cmd, u32 portid, in nl802154_send_device() argument
1600 hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); in nl802154_send_device()
1604 if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) in nl802154_send_device()
1607 nl_device = nla_nest_start(msg, NL802154_ATTR_SEC_DEVICE); in nl802154_send_device()
1611 if (nla_put_u32(msg, NL802154_DEV_ATTR_FRAME_COUNTER, in nl802154_send_device()
1613 nla_put_le16(msg, NL802154_DEV_ATTR_PAN_ID, dev_desc->pan_id) || in nl802154_send_device()
1614 nla_put_le16(msg, NL802154_DEV_ATTR_SHORT_ADDR, in nl802154_send_device()
1616 nla_put_le64(msg, NL802154_DEV_ATTR_EXTENDED_ADDR, in nl802154_send_device()
1618 nla_put_u8(msg, NL802154_DEV_ATTR_SECLEVEL_EXEMPT, in nl802154_send_device()
1620 nla_put_u32(msg, NL802154_DEV_ATTR_KEY_MODE, dev_desc->key_mode)) in nl802154_send_device()
1623 nla_nest_end(msg, nl_device); in nl802154_send_device()
1624 genlmsg_end(msg, hdr); in nl802154_send_device()
1629 genlmsg_cancel(msg, hdr); in nl802154_send_device()
1760 static int nl802154_send_devkey(struct sk_buff *msg, u32 cmd, u32 portid, in nl802154_send_devkey() argument
1769 hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); in nl802154_send_devkey()
1773 if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) in nl802154_send_devkey()
1776 nl_devkey = nla_nest_start(msg, NL802154_ATTR_SEC_DEVKEY); in nl802154_send_devkey()
1780 if (nla_put_le64(msg, NL802154_DEVKEY_ATTR_EXTENDED_ADDR, in nl802154_send_devkey()
1782 nla_put_u32(msg, NL802154_DEVKEY_ATTR_FRAME_COUNTER, in nl802154_send_devkey()
1786 nl_key_id = nla_nest_start(msg, NL802154_DEVKEY_ATTR_ID); in nl802154_send_devkey()
1790 if (ieee802154_llsec_send_key_id(msg, &devkey->key_id) < 0) in nl802154_send_devkey()
1793 nla_nest_end(msg, nl_key_id); in nl802154_send_devkey()
1794 nla_nest_end(msg, nl_devkey); in nl802154_send_devkey()
1795 genlmsg_end(msg, hdr); in nl802154_send_devkey()
1800 genlmsg_cancel(msg, hdr); in nl802154_send_devkey()
1928 static int nl802154_send_seclevel(struct sk_buff *msg, u32 cmd, u32 portid, in nl802154_send_seclevel() argument
1937 hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); in nl802154_send_seclevel()
1941 if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) in nl802154_send_seclevel()
1944 nl_seclevel = nla_nest_start(msg, NL802154_ATTR_SEC_LEVEL); in nl802154_send_seclevel()
1948 if (nla_put_u32(msg, NL802154_SECLEVEL_ATTR_FRAME, sl->frame_type) || in nl802154_send_seclevel()
1949 nla_put_u32(msg, NL802154_SECLEVEL_ATTR_LEVELS, sl->sec_levels) || in nl802154_send_seclevel()
1950 nla_put_u8(msg, NL802154_SECLEVEL_ATTR_DEV_OVERRIDE, in nl802154_send_seclevel()
1955 if (nla_put_u32(msg, NL802154_SECLEVEL_ATTR_CMD_FRAME, in nl802154_send_seclevel()
1960 nla_nest_end(msg, nl_seclevel); in nl802154_send_seclevel()
1961 genlmsg_end(msg, hdr); in nl802154_send_seclevel()
1966 genlmsg_cancel(msg, hdr); in nl802154_send_seclevel()