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 * Written by: 16 * Sergey Lapin <slapin@ossfans.org> 17 * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 18 */ 19 20 #ifndef _AF_IEEE802154_H 21 #define _AF_IEEE802154_H 22 23 #include <linux/socket.h> /* for sa_family_t */ 24 25 enum { 26 IEEE802154_ADDR_NONE = 0x0, 27 /* RESERVED = 0x01, */ 28 IEEE802154_ADDR_SHORT = 0x2, /* 16-bit address + PANid */ 29 IEEE802154_ADDR_LONG = 0x3, /* 64-bit address + PANid */ 30 }; 31 32 /* address length, octets */ 33 #define IEEE802154_ADDR_LEN 8 34 35 struct ieee802154_addr_sa { 36 int addr_type; 37 u16 pan_id; 38 union { 39 u8 hwaddr[IEEE802154_ADDR_LEN]; 40 u16 short_addr; 41 }; 42 }; 43 44 #define IEEE802154_PANID_BROADCAST 0xffff 45 #define IEEE802154_ADDR_BROADCAST 0xffff 46 #define IEEE802154_ADDR_UNDEF 0xfffe 47 48 struct sockaddr_ieee802154 { 49 sa_family_t family; /* AF_IEEE802154 */ 50 struct ieee802154_addr_sa addr; 51 }; 52 53 /* get/setsockopt */ 54 #define SOL_IEEE802154 0 55 56 #define WPAN_WANTACK 0 57 #define WPAN_SECURITY 1 58 #define WPAN_SECURITY_LEVEL 2 59 60 #define WPAN_SECURITY_DEFAULT 0 61 #define WPAN_SECURITY_OFF 1 62 #define WPAN_SECURITY_ON 2 63 64 #define WPAN_SECURITY_LEVEL_DEFAULT (-1) 65 66 #endif 67