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 --- |