Re: [RFC 11/12] 6lowpan: add support for getting short address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 05/27/2016 12:05 PM, Stefan Schmidt wrote:
> Hello.
> 
> On 23/05/16 21:22, Alexander Aring wrote:
>> In case of sending RA messages we need some way to get the short address
>> from an 802.15.4 6LoWPAN interface. This patch will add a temporary
>> debugfs entry for experimental userspace api.
>>
>> Signed-off-by: Alexander Aring<aar@xxxxxxxxxxxxxx>
>> ---
>>   net/6lowpan/debugfs.c | 35 +++++++++++++++++++++++++++++++++++
>>   1 file changed, 35 insertions(+)
>>
>> diff --git a/net/6lowpan/debugfs.c b/net/6lowpan/debugfs.c
>> index acbaa3d..638ae59 100644
>> --- a/net/6lowpan/debugfs.c
>> +++ b/net/6lowpan/debugfs.c
>> @@ -245,6 +245,37 @@ static const struct file_operations lowpan_context_fops = {
>>       .release    = single_release,
>>   };
>>   +static int lowpan_short_addr_get(void *data, u64 *val)
>> +{
>> +    struct wpan_dev *wdev = data;
>> +
>> +    rtnl_lock();
>> +    *val = le16_to_cpu(wdev->short_addr);
>> +    rtnl_unlock();
>> +
>> +    return 0;
>> +}
>> +
>> +DEFINE_SIMPLE_ATTRIBUTE(lowpan_short_addr_fops, lowpan_short_addr_get,
>> +            NULL, "0x%04llx\n");
>> +
>> +static int lowpan_dev_debugfs_802154_init(const struct net_device *dev,
>> +                      struct lowpan_dev *ldev)
>> +{
>> +    struct dentry *dentry;
>> +
>> +    if (!lowpan_is_ll(dev, LOWPAN_LLTYPE_IEEE802154))
>> +        return 0;
>> +
>> +    dentry = debugfs_create_file("short_addr", 0444, ldev->iface_debugfs,
>> +                     lowpan_802154_dev(dev)->wdev->ieee802154_ptr,
>> +                     &lowpan_short_addr_fops);
>> +    if (!dentry)
>> +        return -EINVAL;
>> +
>> +    return 0;
>> +}
>> +
>>   int lowpan_dev_debugfs_init(struct net_device *dev)
>>   {
>>       struct lowpan_dev *ldev = lowpan_dev(dev);
>> @@ -272,6 +303,10 @@ int lowpan_dev_debugfs_init(struct net_device *dev)
>>               goto remove_root;
>>       }
>>   +    ret = lowpan_dev_debugfs_802154_init(dev, ldev);
>> +    if (ret < 0)
>> +        goto remove_root;
>> +
>>       return 0;
>>     remove_root:
> 
> Reviewed-by: Stefan Schmidt<stefan@xxxxxxxxxxxxxxx>
> 

grml, I changed this patch now to have an 802154/short_addr directory
inside the root of 6lowpan debugfs entry.

This is because Michael Richardson wrote that other L2 has also
short_addr (any kind of second L2 address type), see [0].

Each of them has their own "constraints" e.g. 802.15.4 2-byte length, or
sometimes 1-byte. This constraint depends on L2, so I added 802154
subdir.

Nevertheless it's debugfs and we can still change it when introduce real
UAPI, but it will remind me to introduce it as setting which has some
kind of L2 dependency naming.

- Alex

[0] http://marc.info/?l=linux-netdev&m=146360758922131&w=4
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux