nl802154.c (9e3b71f3436415f917eb569cde792b223cceebc0) nl802154.c (e7479122befd7026cf0fb3b3740f17ebd9c64d35)
1/* This program is free software; you can redistribute it and/or modify
2 * it under the terms of the GNU General Public License version 2
3 * as published by the Free Software Foundation.
4 *
5 * This program is distributed in the hope that it will be useful,
6 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8 * GNU General Public License for more details.

--- 708 unchanged lines hidden (view full) ---

717 switch (desc->device_addr.mode) {
718 case NL802154_DEV_ADDR_SHORT:
719 if (nla_put_le16(msg, NL802154_DEV_ADDR_ATTR_SHORT,
720 desc->device_addr.short_addr))
721 return -ENOBUFS;
722 break;
723 case NL802154_DEV_ADDR_EXTENDED:
724 if (nla_put_le64(msg, NL802154_DEV_ADDR_ATTR_EXTENDED,
1/* This program is free software; you can redistribute it and/or modify
2 * it under the terms of the GNU General Public License version 2
3 * as published by the Free Software Foundation.
4 *
5 * This program is distributed in the hope that it will be useful,
6 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8 * GNU General Public License for more details.

--- 708 unchanged lines hidden (view full) ---

717 switch (desc->device_addr.mode) {
718 case NL802154_DEV_ADDR_SHORT:
719 if (nla_put_le16(msg, NL802154_DEV_ADDR_ATTR_SHORT,
720 desc->device_addr.short_addr))
721 return -ENOBUFS;
722 break;
723 case NL802154_DEV_ADDR_EXTENDED:
724 if (nla_put_le64(msg, NL802154_DEV_ADDR_ATTR_EXTENDED,
725 desc->device_addr.extended_addr))
725 desc->device_addr.extended_addr,
726 NL802154_DEV_ADDR_ATTR_PAD))
726 return -ENOBUFS;
727 break;
728 default:
729 /* userspace should handle unknown */
730 break;
731 }
732
733 nla_nest_end(msg, nl_dev_addr);
734 break;
735 case NL802154_KEY_ID_MODE_INDEX:
736 break;
737 case NL802154_KEY_ID_MODE_INDEX_SHORT:
738 /* TODO renmae short_source? */
739 if (nla_put_le32(msg, NL802154_KEY_ID_ATTR_SOURCE_SHORT,
740 desc->short_source))
741 return -ENOBUFS;
742 break;
743 case NL802154_KEY_ID_MODE_INDEX_EXTENDED:
744 if (nla_put_le64(msg, NL802154_KEY_ID_ATTR_SOURCE_EXTENDED,
727 return -ENOBUFS;
728 break;
729 default:
730 /* userspace should handle unknown */
731 break;
732 }
733
734 nla_nest_end(msg, nl_dev_addr);
735 break;
736 case NL802154_KEY_ID_MODE_INDEX:
737 break;
738 case NL802154_KEY_ID_MODE_INDEX_SHORT:
739 /* TODO renmae short_source? */
740 if (nla_put_le32(msg, NL802154_KEY_ID_ATTR_SOURCE_SHORT,
741 desc->short_source))
742 return -ENOBUFS;
743 break;
744 case NL802154_KEY_ID_MODE_INDEX_EXTENDED:
745 if (nla_put_le64(msg, NL802154_KEY_ID_ATTR_SOURCE_EXTENDED,
745 desc->extended_source))
746 desc->extended_source,
747 NL802154_KEY_ID_ATTR_PAD))
746 return -ENOBUFS;
747 break;
748 default:
749 /* userspace should handle unknown */
750 break;
751 }
752
753 /* TODO key_id to key_idx ? Check naming */

--- 60 unchanged lines hidden (view full) ---

814 nla_put_u64(msg, NL802154_ATTR_WPAN_DEV, wpan_dev_id(wpan_dev)) ||
815 nla_put_u32(msg, NL802154_ATTR_GENERATION,
816 rdev->devlist_generation ^
817 (cfg802154_rdev_list_generation << 2)))
818 goto nla_put_failure;
819
820 /* address settings */
821 if (nla_put_le64(msg, NL802154_ATTR_EXTENDED_ADDR,
748 return -ENOBUFS;
749 break;
750 default:
751 /* userspace should handle unknown */
752 break;
753 }
754
755 /* TODO key_id to key_idx ? Check naming */

--- 60 unchanged lines hidden (view full) ---

816 nla_put_u64(msg, NL802154_ATTR_WPAN_DEV, wpan_dev_id(wpan_dev)) ||
817 nla_put_u32(msg, NL802154_ATTR_GENERATION,
818 rdev->devlist_generation ^
819 (cfg802154_rdev_list_generation << 2)))
820 goto nla_put_failure;
821
822 /* address settings */
823 if (nla_put_le64(msg, NL802154_ATTR_EXTENDED_ADDR,
822 wpan_dev->extended_addr) ||
824 wpan_dev->extended_addr,
825 NL802154_ATTR_PAD) ||
823 nla_put_le16(msg, NL802154_ATTR_SHORT_ADDR,
824 wpan_dev->short_addr) ||
825 nla_put_le16(msg, NL802154_ATTR_PAN_ID, wpan_dev->pan_id))
826 goto nla_put_failure;
827
828 /* ARET handling */
829 if (nla_put_s8(msg, NL802154_ATTR_MAX_FRAME_RETRIES,
830 wpan_dev->frame_retries) ||

--- 238 unchanged lines hidden (view full) ---

1069 struct net_device *dev = info->user_ptr[1];
1070 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1071 __le16 pan_id;
1072
1073 /* conflict here while tx/rx calls */
1074 if (netif_running(dev))
1075 return -EBUSY;
1076
826 nla_put_le16(msg, NL802154_ATTR_SHORT_ADDR,
827 wpan_dev->short_addr) ||
828 nla_put_le16(msg, NL802154_ATTR_PAN_ID, wpan_dev->pan_id))
829 goto nla_put_failure;
830
831 /* ARET handling */
832 if (nla_put_s8(msg, NL802154_ATTR_MAX_FRAME_RETRIES,
833 wpan_dev->frame_retries) ||

--- 238 unchanged lines hidden (view full) ---

1072 struct net_device *dev = info->user_ptr[1];
1073 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1074 __le16 pan_id;
1075
1076 /* conflict here while tx/rx calls */
1077 if (netif_running(dev))
1078 return -EBUSY;
1079
1077 if (wpan_dev->lowpan_dev) {
1078 if (netif_running(wpan_dev->lowpan_dev))
1079 return -EBUSY;
1080 }
1081
1082 /* don't change address fields on monitor */
1083 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR ||
1084 !info->attrs[NL802154_ATTR_PAN_ID])
1085 return -EINVAL;
1086
1087 pan_id = nla_get_le16(info->attrs[NL802154_ATTR_PAN_ID]);
1088
1089 /* TODO

--- 15 unchanged lines hidden (view full) ---

1105 struct net_device *dev = info->user_ptr[1];
1106 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1107 __le16 short_addr;
1108
1109 /* conflict here while tx/rx calls */
1110 if (netif_running(dev))
1111 return -EBUSY;
1112
1080 /* don't change address fields on monitor */
1081 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR ||
1082 !info->attrs[NL802154_ATTR_PAN_ID])
1083 return -EINVAL;
1084
1085 pan_id = nla_get_le16(info->attrs[NL802154_ATTR_PAN_ID]);
1086
1087 /* TODO

--- 15 unchanged lines hidden (view full) ---

1103 struct net_device *dev = info->user_ptr[1];
1104 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1105 __le16 short_addr;
1106
1107 /* conflict here while tx/rx calls */
1108 if (netif_running(dev))
1109 return -EBUSY;
1110
1113 if (wpan_dev->lowpan_dev) {
1114 if (netif_running(wpan_dev->lowpan_dev))
1115 return -EBUSY;
1116 }
1117
1118 /* don't change address fields on monitor */
1119 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR ||
1120 !info->attrs[NL802154_ATTR_SHORT_ADDR])
1121 return -EINVAL;
1122
1123 short_addr = nla_get_le16(info->attrs[NL802154_ATTR_SHORT_ADDR]);
1124
1125 /* TODO

--- 493 unchanged lines hidden (view full) ---

1619 goto nla_put_failure;
1620
1621 if (nla_put_u32(msg, NL802154_DEV_ATTR_FRAME_COUNTER,
1622 dev_desc->frame_counter) ||
1623 nla_put_le16(msg, NL802154_DEV_ATTR_PAN_ID, dev_desc->pan_id) ||
1624 nla_put_le16(msg, NL802154_DEV_ATTR_SHORT_ADDR,
1625 dev_desc->short_addr) ||
1626 nla_put_le64(msg, NL802154_DEV_ATTR_EXTENDED_ADDR,
1111 /* don't change address fields on monitor */
1112 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR ||
1113 !info->attrs[NL802154_ATTR_SHORT_ADDR])
1114 return -EINVAL;
1115
1116 short_addr = nla_get_le16(info->attrs[NL802154_ATTR_SHORT_ADDR]);
1117
1118 /* TODO

--- 493 unchanged lines hidden (view full) ---

1612 goto nla_put_failure;
1613
1614 if (nla_put_u32(msg, NL802154_DEV_ATTR_FRAME_COUNTER,
1615 dev_desc->frame_counter) ||
1616 nla_put_le16(msg, NL802154_DEV_ATTR_PAN_ID, dev_desc->pan_id) ||
1617 nla_put_le16(msg, NL802154_DEV_ATTR_SHORT_ADDR,
1618 dev_desc->short_addr) ||
1619 nla_put_le64(msg, NL802154_DEV_ATTR_EXTENDED_ADDR,
1627 dev_desc->hwaddr) ||
1620 dev_desc->hwaddr, NL802154_DEV_ATTR_PAD) ||
1628 nla_put_u8(msg, NL802154_DEV_ATTR_SECLEVEL_EXEMPT,
1629 dev_desc->seclevel_exempt) ||
1630 nla_put_u32(msg, NL802154_DEV_ATTR_KEY_MODE, dev_desc->key_mode))
1631 goto nla_put_failure;
1632
1633 nla_nest_end(msg, nl_device);
1634 genlmsg_end(msg, hdr);
1635

--- 147 unchanged lines hidden (view full) ---

1783 if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex))
1784 goto nla_put_failure;
1785
1786 nl_devkey = nla_nest_start(msg, NL802154_ATTR_SEC_DEVKEY);
1787 if (!nl_devkey)
1788 goto nla_put_failure;
1789
1790 if (nla_put_le64(msg, NL802154_DEVKEY_ATTR_EXTENDED_ADDR,
1621 nla_put_u8(msg, NL802154_DEV_ATTR_SECLEVEL_EXEMPT,
1622 dev_desc->seclevel_exempt) ||
1623 nla_put_u32(msg, NL802154_DEV_ATTR_KEY_MODE, dev_desc->key_mode))
1624 goto nla_put_failure;
1625
1626 nla_nest_end(msg, nl_device);
1627 genlmsg_end(msg, hdr);
1628

--- 147 unchanged lines hidden (view full) ---

1776 if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex))
1777 goto nla_put_failure;
1778
1779 nl_devkey = nla_nest_start(msg, NL802154_ATTR_SEC_DEVKEY);
1780 if (!nl_devkey)
1781 goto nla_put_failure;
1782
1783 if (nla_put_le64(msg, NL802154_DEVKEY_ATTR_EXTENDED_ADDR,
1791 extended_addr) ||
1784 extended_addr, NL802154_DEVKEY_ATTR_PAD) ||
1792 nla_put_u32(msg, NL802154_DEVKEY_ATTR_FRAME_COUNTER,
1793 devkey->frame_counter))
1794 goto nla_put_failure;
1795
1796 nl_key_id = nla_nest_start(msg, NL802154_DEVKEY_ATTR_ID);
1797 if (!nl_key_id)
1798 goto nla_put_failure;
1799

--- 642 unchanged lines hidden ---
1785 nla_put_u32(msg, NL802154_DEVKEY_ATTR_FRAME_COUNTER,
1786 devkey->frame_counter))
1787 goto nla_put_failure;
1788
1789 nl_key_id = nla_nest_start(msg, NL802154_DEVKEY_ATTR_ID);
1790 if (!nl_key_id)
1791 goto nla_put_failure;
1792

--- 642 unchanged lines hidden ---