1 /* 2 * IEEE 802.15.4 inteface for userspace 3 * 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. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Written by: 20 * Sergey Lapin <slapin@ossfans.org> 21 * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 22 */ 23 24 #ifndef _AF_IEEE802154_H 25 #define _AF_IEEE802154_H 26 27 #include <linux/socket.h> /* for sa_family_t */ 28 29 enum { 30 IEEE802154_ADDR_NONE = 0x0, 31 /* RESERVED = 0x01, */ 32 IEEE802154_ADDR_SHORT = 0x2, /* 16-bit address + PANid */ 33 IEEE802154_ADDR_LONG = 0x3, /* 64-bit address + PANid */ 34 }; 35 36 /* address length, octets */ 37 #define IEEE802154_ADDR_LEN 8 38 39 struct ieee802154_addr { 40 int addr_type; 41 u16 pan_id; 42 union { 43 u8 hwaddr[IEEE802154_ADDR_LEN]; 44 u16 short_addr; 45 }; 46 }; 47 48 #define IEEE802154_PANID_BROADCAST 0xffff 49 #define IEEE802154_ADDR_BROADCAST 0xffff 50 #define IEEE802154_ADDR_UNDEF 0xfffe 51 52 struct sockaddr_ieee802154 { 53 sa_family_t family; /* AF_IEEE802154 */ 54 struct ieee802154_addr addr; 55 }; 56 57 /* get/setsockopt */ 58 #define SOL_IEEE802154 0 59 60 #define WPAN_WANTACK 0 61 62 #endif 63