* 802.15.4-2006 document.
*/
static int fake_assoc_req(struct net_device *dev,
- struct ieee802154_addr *addr, u8 channel, u8 page, u8 cap)
+ struct ieee802154_addr_sa *addr, u8 channel, u8 page, u8 cap)
{
struct wpan_phy *phy = fake_to_phy(dev);
* 802.15.4-2006 document.
*/
static int fake_assoc_resp(struct net_device *dev,
- struct ieee802154_addr *addr, u16 short_addr, u8 status)
+ struct ieee802154_addr_sa *addr, u16 short_addr, u8 status)
{
return 0;
}
* document, with the reason described in 7.3.3.2.
*/
static int fake_disassoc_req(struct net_device *dev,
- struct ieee802154_addr *addr, u8 reason)
+ struct ieee802154_addr_sa *addr, u8 reason)
{
return ieee802154_nl_disassoc_confirm(dev, IEEE802154_SUCCESS);
}
* Note: This is in section 7.5.2.3 of the IEEE 802.15.4-2006
* document, with 7.3.8 describing coordinator realignment.
*/
-static int fake_start_req(struct net_device *dev, struct ieee802154_addr *addr,
- u8 channel, u8 page,
- u8 bcn_ord, u8 sf_ord, u8 pan_coord, u8 blx,
- u8 coord_realign)
+static int fake_start_req(struct net_device *dev,
+ struct ieee802154_addr_sa *addr, u8 channel, u8 page,
+ u8 bcn_ord, u8 sf_ord, u8 pan_coord, u8 blx,
+ u8 coord_realign)
{
struct wpan_phy *phy = fake_to_phy(dev);
/* address length, octets */
#define IEEE802154_ADDR_LEN 8
-struct ieee802154_addr {
+struct ieee802154_addr_sa {
int addr_type;
u16 pan_id;
union {
struct sockaddr_ieee802154 {
sa_family_t family; /* AF_IEEE802154 */
- struct ieee802154_addr addr;
+ struct ieee802154_addr_sa addr;
};
/* get/setsockopt */
*/
struct ieee802154_mac_cb {
u8 lqi;
- struct ieee802154_addr sa;
- struct ieee802154_addr da;
+ struct ieee802154_addr_sa sa;
+ struct ieee802154_addr_sa da;
u8 flags;
u8 seq;
struct ieee802154_frag_info frag_info;
/* The following fields are optional (can be NULL). */
int (*assoc_req)(struct net_device *dev,
- struct ieee802154_addr *addr,
+ struct ieee802154_addr_sa *addr,
u8 channel, u8 page, u8 cap);
int (*assoc_resp)(struct net_device *dev,
- struct ieee802154_addr *addr,
+ struct ieee802154_addr_sa *addr,
u16 short_addr, u8 status);
int (*disassoc_req)(struct net_device *dev,
- struct ieee802154_addr *addr,
+ struct ieee802154_addr_sa *addr,
u8 reason);
int (*start_req)(struct net_device *dev,
- struct ieee802154_addr *addr,
+ struct ieee802154_addr_sa *addr,
u8 channel, u8 page, u8 bcn_ord, u8 sf_ord,
u8 pan_coord, u8 blx, u8 coord_realign);
int (*scan_req)(struct net_device *dev,
#define IEEE802154_NL_H
struct net_device;
-struct ieee802154_addr;
+struct ieee802154_addr_sa;
/**
* ieee802154_nl_assoc_indic - Notify userland of an association request.
* Note: This is in section 7.3.1 of the IEEE 802.15.4-2006 document.
*/
int ieee802154_nl_assoc_indic(struct net_device *dev,
- struct ieee802154_addr *addr, u8 cap);
+ struct ieee802154_addr_sa *addr, u8 cap);
/**
* ieee802154_nl_assoc_confirm - Notify userland of association.
* Note: This is in section 7.3.3 of the IEEE 802.15.4 document.
*/
int ieee802154_nl_disassoc_indic(struct net_device *dev,
- struct ieee802154_addr *addr, u8 reason);
+ struct ieee802154_addr_sa *addr, u8 reason);
/**
* ieee802154_nl_disassoc_confirm - Notify userland of disassociation
{
const u8 *saddr = _saddr;
const u8 *daddr = _daddr;
- struct ieee802154_addr sa, da;
+ struct ieee802154_addr_sa sa, da;
/* TODO:
* if this package isn't ipv6 one, where should it be routed?
static int process_data(struct sk_buff *skb)
{
u8 iphc0, iphc1;
- const struct ieee802154_addr *_saddr, *_daddr;
+ const struct ieee802154_addr_sa *_saddr, *_daddr;
raw_dump_table(__func__, "raw skb data dump", skb->data, skb->len);
/* at least two bytes will be used for the encoding */
void ieee802154_raw_deliver(struct net_device *dev, struct sk_buff *skb);
int ieee802154_dgram_deliver(struct net_device *dev, struct sk_buff *skb);
struct net_device *ieee802154_get_dev(struct net *net,
- struct ieee802154_addr *addr);
+ struct ieee802154_addr_sa *addr);
#endif
* Utility function for families
*/
struct net_device *ieee802154_get_dev(struct net *net,
- struct ieee802154_addr *addr)
+ struct ieee802154_addr_sa *addr)
{
struct net_device *dev = NULL;
struct net_device *tmp;
struct dgram_sock {
struct sock sk;
- struct ieee802154_addr src_addr;
- struct ieee802154_addr dst_addr;
+ struct ieee802154_addr_sa src_addr;
+ struct ieee802154_addr_sa dst_addr;
unsigned int bound:1;
unsigned int want_ack:1;
goto out_put;
}
- memcpy(&ro->src_addr, &addr->addr, sizeof(struct ieee802154_addr));
+ memcpy(&ro->src_addr, &addr->addr, sizeof(struct ieee802154_addr_sa));
ro->bound = 1;
err = 0;
goto out;
}
- memcpy(&ro->dst_addr, &addr->addr, sizeof(struct ieee802154_addr));
+ memcpy(&ro->dst_addr, &addr->addr, sizeof(struct ieee802154_addr_sa));
out:
release_sock(sk);
#include "ieee802154.h"
int ieee802154_nl_assoc_indic(struct net_device *dev,
- struct ieee802154_addr *addr, u8 cap)
+ struct ieee802154_addr_sa *addr, u8 cap)
{
struct sk_buff *msg;
EXPORT_SYMBOL(ieee802154_nl_assoc_confirm);
int ieee802154_nl_disassoc_indic(struct net_device *dev,
- struct ieee802154_addr *addr, u8 reason)
+ struct ieee802154_addr_sa *addr, u8 reason)
{
struct sk_buff *msg;
int ieee802154_associate_req(struct sk_buff *skb, struct genl_info *info)
{
struct net_device *dev;
- struct ieee802154_addr addr;
+ struct ieee802154_addr_sa addr;
u8 page;
int ret = -EOPNOTSUPP;
int ieee802154_associate_resp(struct sk_buff *skb, struct genl_info *info)
{
struct net_device *dev;
- struct ieee802154_addr addr;
+ struct ieee802154_addr_sa addr;
int ret = -EOPNOTSUPP;
if (!info->attrs[IEEE802154_ATTR_STATUS] ||
int ieee802154_disassociate_req(struct sk_buff *skb, struct genl_info *info)
{
struct net_device *dev;
- struct ieee802154_addr addr;
+ struct ieee802154_addr_sa addr;
int ret = -EOPNOTSUPP;
if ((!info->attrs[IEEE802154_ATTR_DEST_HW_ADDR] &&
int ieee802154_start_req(struct sk_buff *skb, struct genl_info *info)
{
struct net_device *dev;
- struct ieee802154_addr addr;
+ struct ieee802154_addr_sa addr;
u8 channel, bcn_ord, sf_ord;
u8 page;
struct sk_buff *prev, struct net_device *dev);
static unsigned int lowpan_hash_frag(__be16 tag, u16 d_size,
- const struct ieee802154_addr *saddr,
- const struct ieee802154_addr *daddr)
+ const struct ieee802154_addr_sa *saddr,
+ const struct ieee802154_addr_sa *daddr)
{
u32 c;
static inline struct lowpan_frag_queue *
fq_find(struct net *net, const struct ieee802154_frag_info *frag_info,
- const struct ieee802154_addr *src, const struct ieee802154_addr *dst)
+ const struct ieee802154_addr_sa *src, const struct ieee802154_addr_sa *dst)
{
struct inet_frag_queue *q;
struct lowpan_create_arg arg;
struct lowpan_create_arg {
__be16 tag;
u16 d_size;
- const struct ieee802154_addr *src;
- const struct ieee802154_addr *dst;
+ const struct ieee802154_addr_sa *src;
+ const struct ieee802154_addr_sa *dst;
};
/* Equivalent of ipv4 struct ip
__be16 tag;
u16 d_size;
- struct ieee802154_addr saddr;
- struct ieee802154_addr daddr;
+ struct ieee802154_addr_sa saddr;
+ struct ieee802154_addr_sa daddr;
};
-static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a)
+static inline u32 ieee802154_addr_hash(const struct ieee802154_addr_sa *a)
{
switch (a->addr_type) {
case IEEE802154_ADDR_LONG:
}
}
-static inline bool ieee802154_addr_addr_equal(const struct ieee802154_addr *a1,
- const struct ieee802154_addr *a2)
+static inline bool
+ieee802154_addr_addr_equal(const struct ieee802154_addr_sa *a1,
+ const struct ieee802154_addr_sa *a2)
{
if (a1->pan_id != a2->pan_id)
return false;
#include "mac802154.h"
static int mac802154_mlme_start_req(struct net_device *dev,
- struct ieee802154_addr *addr,
+ struct ieee802154_addr_sa *addr,
u8 channel, u8 page,
u8 bcn_ord, u8 sf_ord,
u8 pan_coord, u8 blx,
const void *_saddr,
unsigned len)
{
- const struct ieee802154_addr *saddr = _saddr;
- const struct ieee802154_addr *daddr = _daddr;
- struct ieee802154_addr dev_addr;
+ const struct ieee802154_addr_sa *saddr = _saddr;
+ const struct ieee802154_addr_sa *daddr = _daddr;
+ struct ieee802154_addr_sa dev_addr;
struct mac802154_sub_if_data *priv = netdev_priv(dev);
int pos = 2;
u8 head[MAC802154_FRAME_HARD_HEADER_LEN];
{
const u8 *hdr = skb_mac_header(skb);
const u8 *tail = skb_tail_pointer(skb);
- struct ieee802154_addr *addr = (struct ieee802154_addr *)haddr;
+ struct ieee802154_addr_sa *addr = (struct ieee802154_addr_sa *)haddr;
u16 fc;
int da_type;
goto malformed;
}
- return sizeof(struct ieee802154_addr);
+ return sizeof(struct ieee802154_addr_sa);
malformed:
pr_debug("malformed packet\n");