1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * IEEE 802.15.4 interface for userspace 2 * IEEE 802.15.4 interface for userspace 4 * 3 * 5 * Copyright 2007, 2008 Siemens AG 4 * Copyright 2007, 2008 Siemens AG >> 5 * >> 6 * This program is free software; you can redistribute it and/or modify >> 7 * it under the terms of the GNU General Public License version 2 >> 8 * as published by the Free Software Foundation. >> 9 * >> 10 * This program is distributed in the hope that it will be useful, >> 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of >> 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> 13 * GNU General Public License for more details. 6 * 14 * 7 * Written by: 15 * Written by: 8 * Sergey Lapin <slapin@ossfans.org> 16 * Sergey Lapin <slapin@ossfans.org> 9 * Dmitry Eremin-Solenikov <dbaryshkov@gmail.c 17 * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 10 */ 18 */ 11 19 12 #ifndef _AF_IEEE802154_H 20 #ifndef _AF_IEEE802154_H 13 #define _AF_IEEE802154_H 21 #define _AF_IEEE802154_H 14 22 15 #include <linux/socket.h> /* for sa_family_t * 23 #include <linux/socket.h> /* for sa_family_t */ 16 24 17 enum { 25 enum { 18 IEEE802154_ADDR_NONE = 0x0, 26 IEEE802154_ADDR_NONE = 0x0, 19 /* RESERVED = 0x01, */ 27 /* RESERVED = 0x01, */ 20 IEEE802154_ADDR_SHORT = 0x2, /* 16-bit 28 IEEE802154_ADDR_SHORT = 0x2, /* 16-bit address + PANid */ 21 IEEE802154_ADDR_LONG = 0x3, /* 64-bit 29 IEEE802154_ADDR_LONG = 0x3, /* 64-bit address + PANid */ 22 }; 30 }; 23 31 24 /* address length, octets */ 32 /* address length, octets */ 25 #define IEEE802154_ADDR_LEN 8 33 #define IEEE802154_ADDR_LEN 8 26 34 27 struct ieee802154_addr_sa { 35 struct ieee802154_addr_sa { 28 int addr_type; 36 int addr_type; 29 u16 pan_id; 37 u16 pan_id; 30 union { 38 union { 31 u8 hwaddr[IEEE802154_ADDR_LEN] 39 u8 hwaddr[IEEE802154_ADDR_LEN]; 32 u16 short_addr; 40 u16 short_addr; 33 }; 41 }; 34 }; 42 }; 35 43 36 #define IEEE802154_PANID_BROADCAST 0xffff 44 #define IEEE802154_PANID_BROADCAST 0xffff 37 #define IEEE802154_ADDR_BROADCAST 0xffff 45 #define IEEE802154_ADDR_BROADCAST 0xffff 38 #define IEEE802154_ADDR_UNDEF 0xfffe 46 #define IEEE802154_ADDR_UNDEF 0xfffe 39 47 40 struct sockaddr_ieee802154 { 48 struct sockaddr_ieee802154 { 41 sa_family_t family; /* AF_IEEE802154 * 49 sa_family_t family; /* AF_IEEE802154 */ 42 struct ieee802154_addr_sa addr; 50 struct ieee802154_addr_sa addr; 43 }; 51 }; 44 52 45 /* get/setsockopt */ 53 /* get/setsockopt */ 46 #define SOL_IEEE802154 0 54 #define SOL_IEEE802154 0 47 55 48 #define WPAN_WANTACK 0 56 #define WPAN_WANTACK 0 49 #define WPAN_SECURITY 1 57 #define WPAN_SECURITY 1 50 #define WPAN_SECURITY_LEVEL 2 58 #define WPAN_SECURITY_LEVEL 2 51 #define WPAN_WANTLQI 3 59 #define WPAN_WANTLQI 3 52 60 53 #define WPAN_SECURITY_DEFAULT 0 61 #define WPAN_SECURITY_DEFAULT 0 54 #define WPAN_SECURITY_OFF 1 62 #define WPAN_SECURITY_OFF 1 55 #define WPAN_SECURITY_ON 2 63 #define WPAN_SECURITY_ON 2 56 64 57 #define WPAN_SECURITY_LEVEL_DEFAULT (-1) 65 #define WPAN_SECURITY_LEVEL_DEFAULT (-1) 58 66 59 #endif 67 #endif 60 68
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.